{ "pandav:/dist/maptalks.3dtiles.es.js": { "cubeCode": "Cube(\"pandav:/npm/@maptalks/3dtiles/0.105.5/dist/maptalks.3dtiles.es\", [\"pandav:/npm/maptalks/1.2.1\", \"pandav:/npm/@maptalks/gl/0.108.1\", \"pandav:/npm/frustum-intersects/0.2.4\", \"pandav:/npm/gl-matrix/3.4.0\"], function (module, exports, require, load, process, global) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true });\n\n exports.Geo3DTransform = exports.Geo3DTilesUtil = exports.Geo3DTilesLayer = exports.CMPTLoader = exports.B3DMLoader = void 0;\n var t = _interopRequireWildcard(require('pandav:/npm/maptalks/1.2.1'));\n var _gl = _interopRequireWildcard(require('pandav:/npm/@maptalks/gl/0.108.1'));\n var e = _gl;\n var _frustumIntersects = require('pandav:/npm/frustum-intersects/0.2.4');\n var _glMatrix = require('pandav:/npm/gl-matrix/3.4.0');\n function _getRequireWildcardCache(e) {if (\"function\" != typeof WeakMap) return null;var r = new WeakMap(),t = new WeakMap();return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {return e ? t : r;})(e);}\n function _interopRequireWildcard(e, r) {if (!r && e && e.__esModule) return e;if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return { default: e };var t = _getRequireWildcardCache(r);if (t && t.has(e)) return t.get(e);var n = { __proto__: null },a = Object.defineProperty && Object.getOwnPropertyDescriptor;for (var u in e) if (\"default\" !== u && {}.hasOwnProperty.call(e, u)) {var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];}return n.default = e, t && t.set(e, n), n;}\n function _superPropGet(t, o, e, r) {var p = _get(_getPrototypeOf(1 & r ? t.prototype : t), o, e);return 2 & r && \"function\" == typeof p ? function (t) {return p.apply(e, t);} : p;}\n function _get() {return _get = \"undefined\" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) {var p = _superPropBase(e, t);if (p) {var n = Object.getOwnPropertyDescriptor(p, t);return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value;}}, _get.apply(null, arguments);}\n function _superPropBase(t, o) {for (; !{}.hasOwnProperty.call(t, o) && null !== (t = _getPrototypeOf(t)););return t;}\n function _createForOfIteratorHelper(r, e) {var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];if (!t) {if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) {t && (r = t);var _n73 = 0,F = function F() {};return { s: F, n: function n() {return _n73 >= r.length ? { done: !0 } : { done: !1, value: r[_n73++] };}, e: function e(r) {throw r;}, f: F };}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");}var o,a = !0,u = !1;return { s: function s() {t = t.call(r);}, n: function n() {var r = t.next();return a = r.done, r;}, e: function e(r) {u = !0, o = r;}, f: function f() {try {a || null == t.return || t.return();} finally {if (u) throw o;}} };}\n function _toConsumableArray(r) {return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();}\n function _nonIterableSpread() {throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");}\n function _iterableToArray(r) {if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);}\n function _arrayWithoutHoles(r) {if (Array.isArray(r)) return _arrayLikeToArray(r);}\n function _slicedToArray(r, e) {return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();}\n function _nonIterableRest() {throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");}\n function _unsupportedIterableToArray(r, a) {if (r) {if (\"string\" == typeof r) return _arrayLikeToArray(r, a);var t = {}.toString.call(r).slice(8, -1);return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;}}\n function _arrayLikeToArray(r, a) {(null == a || a > r.length) && (a = r.length);for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];return n;}\n function _iterableToArrayLimit(r, l) {var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];if (null != t) {var e,n,i,u,a = [],f = !0,o = !1;try {if (i = (t = t.call(r)).next, 0 === l) {if (Object(t) !== t) return;f = !1;} else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);} catch (r) {o = !0, n = r;} finally {try {if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;} finally {if (o) throw n;}}return a;}}\n function _arrayWithHoles(r) {if (Array.isArray(r)) return r;}\n function _readOnlyError(r) {throw new TypeError('\"' + r + '\" is read-only');}\n function _classCallCheck(a, n) {if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");}\n function _defineProperties(e, r) {for (var t = 0; t < r.length; t++) {var o = r[t];o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o);}}\n function _createClass(e, r, t) {return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e;}\n function _toPropertyKey(t) {var i = _toPrimitive(t, \"string\");return \"symbol\" == _typeof(i) ? i : i + \"\";}\n function _toPrimitive(t, r) {if (\"object\" != _typeof(t) || !t) return t;var e = t[Symbol.toPrimitive];if (void 0 !== e) {var i = e.call(t, r || \"default\");if (\"object\" != _typeof(i)) return i;throw new TypeError(\"@@toPrimitive must return a primitive value.\");}return (\"string\" === r ? String : Number)(t);}\n function _callSuper(t, o, e) {return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e));}\n function _possibleConstructorReturn(t, e) {if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");return _assertThisInitialized(t);}\n function _assertThisInitialized(e) {if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e;}\n function _isNativeReflectConstruct() {try {var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));} catch (t) {}return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {return !!t;})();}\n function _getPrototypeOf(t) {return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {return t.__proto__ || Object.getPrototypeOf(t);}, _getPrototypeOf(t);}\n function _inherits(t, e) {if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, \"prototype\", { writable: !1 }), e && _setPrototypeOf(t, e);}\n function _setPrototypeOf(t, e) {return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {return t.__proto__ = e, t;}, _setPrototypeOf(t, e);}\n function _typeof(o) {\"@babel/helpers - typeof\";return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {return typeof o;} : function (o) {return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;}, _typeof(o);}\n var _ = \"${\",\n M = \"function(t){\\n/*!\\n * @maptalks/gl v0.108.1\\n * LICENSE : UNLICENSED\\n * (c) 2016-2025 maptalks.com\\n */\\nconst e=function(){if(\\\"undefined\\\"!=typeof undefinedThis)return globalThis;if(\\\"undefined\\\"!=typeof self)return self;if(\\\"undefined\\\"!=typeof window)return window;if(\\\"undefined\\\"!=typeof undefined)return global;throw new Error(\\\"unable to locate global object\\\")},n=e(),r=n.gl_trans__coders=n.gl_trans__coders||{};function a(){return e().maptalks_gltf_loader}r.inject=function(t){const r=t.toString(),a=r.indexOf(\\\"{\\\")+1,o=r.substring(0,a),i=n.gl_trans__coders=n.gl_trans__coders||{};let s=`\".concat(_, \"o}\\\\n const _____getGlobal = \").concat(_, \"e.toString()};\\\\n const g___lobals = _____getGlobal()\\\\n const tran_____scoders = g___lobals['gl_trans__coders'] = g___lobals['gl_trans__coders'] || {};`;for(const t in i)\\\"inject\\\"!==t&&\\\"getTranscoder\\\"!==t&&\\\"registerTranscoder\\\"!==t&&(s+='tran_____scoders[\\\"'+t+'\\\"] ='+i[t].toString()+\\\"\\\\n;\\\");return s+=\\\"\\\\n(\\\"+e().maptalks_gltf_loader_bundle.toString()+\\\")({});\\\\n\\\",s+=\\\"\\\\n\\\"+r.substring(o.length),s},r.registerTranscoder=function(t,e){r[t]=e},r.getTranscoder=function(t){return r[t]};var o=\\\"undefined\\\"!=typeof Float32Array?Float32Array:Array;function i(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function s(t,e,n){var r=e[0],a=e[1],o=e[2],i=e[3],s=e[4],c=e[5],u=e[6],l=e[7],f=e[8],h=e[9],y=e[10],d=e[11],b=e[12],m=e[13],p=e[14],g=e[15],v=n[0],w=n[1],M=n[2],T=n[3];return t[0]=v*r+w*s+M*f+T*b,t[1]=v*a+w*c+M*h+T*m,t[2]=v*o+w*u+M*y+T*p,t[3]=v*i+w*l+M*d+T*g,v=n[4],w=n[5],M=n[6],T=n[7],t[4]=v*r+w*s+M*f+T*b,t[5]=v*a+w*c+M*h+T*m,t[6]=v*o+w*u+M*y+T*p,t[7]=v*i+w*l+M*d+T*g,v=n[8],w=n[9],M=n[10],T=n[11],t[8]=v*r+w*s+M*f+T*b,t[9]=v*a+w*c+M*h+T*m,t[10]=v*o+w*u+M*y+T*p,t[11]=v*i+w*l+M*d+T*g,v=n[12],w=n[13],M=n[14],T=n[15],t[12]=v*r+w*s+M*f+T*b,t[13]=v*a+w*c+M*h+T*m,t[14]=v*o+w*u+M*y+T*p,t[15]=v*i+w*l+M*d+T*g,t}function c(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]&&t[4]===e[4]&&t[5]===e[5]&&t[6]===e[6]&&t[7]===e[7]&&t[8]===e[8]&&t[9]===e[9]&&t[10]===e[10]&&t[11]===e[11]&&t[12]===e[12]&&t[13]===e[13]&&t[14]===e[14]&&t[15]===e[15]}function u(){var t=new o(3);return o!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t}function l(t){var e=t[0],n=t[1],r=t[2];return Math.hypot(e,n,r)}function f(t,e,n){var r=new o(3);return r[0]=t,r[1]=e,r[2]=n,r}function h(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function y(t,e,n,r){return t[0]=e,t[1]=n,t[2]=r,t}function d(t,e,n){return t[0]=e[0]+n[0],t[1]=e[1]+n[1],t[2]=e[2]+n[2],t}function b(t,e){var n=e[0],r=e[1],a=e[2],o=n*n+r*r+a*a;return o>0&&(o=1/Math.sqrt(o)),t[0]=e[0]*o,t[1]=e[1]*o,t[2]=e[2]*o,t}function m(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function p(t,e,n){var r=e[0],a=e[1],o=e[2],i=n[3]*r+n[7]*a+n[11]*o+n[15];return i=i||1,t[0]=(n[0]*r+n[4]*a+n[8]*o+n[12])/i,t[1]=(n[1]*r+n[5]*a+n[9]*o+n[13])/i,t[2]=(n[2]*r+n[6]*a+n[10]*o+n[14])/i,t}Math.hypot||(Math.hypot=function(){for(var t=0,e=arguments.length;e--;)t+=arguments[e]*arguments[e];return Math.sqrt(t)});var g=function(t,e,n){return t[0]=e[0]-n[0],t[1]=e[1]-n[1],t[2]=e[2]-n[2],t},v=function(t,e,n){return t[0]=e[0]*n[0],t[1]=e[1]*n[1],t[2]=e[2]*n[2],t},w=l;function M(){var t=new o(4);return o!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t[3]=1,t}u(),function(){var t,e=(t=new o(4),o!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0),t)}();var T;function A(t){return t&&t.t&&Object.prototype.hasOwnProperty.call(t,\\\"default\\\")?t.default:t}u(),f(1,0,0),f(0,1,0),M(),M(),T=new o(9),o!=Float32Array&&(T[1]=0,T[2]=0,T[3]=0,T[5]=0,T[6]=0,T[7]=0),T[0]=1,T[4]=1,T[8]=1;var k={exports:{}},_={exports:{}},O=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))},S=Array.prototype.concat,x=Array.prototype.slice,F=_.exports=function(t){for(var e=[],n=0,r=t.length;n=4&&1!==t[3]&&(e=\\\", \\\"+t[3]),\\\"hwb(\\\"+t[0]+\\\", \\\"+t[1]+\\\"%, \\\"+t[2]+\\\"%\\\"+e+\\\")\\\"},L.to.keyword=function(t){return N[t.slice(0,3)]};var P=k.exports,B={exports:{}},q={\\\"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]},R={};for(var V in q)q.hasOwnProperty(V)&&(R[q[V]]=V);var G=B.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 $ in G)if(G.hasOwnProperty($)){if(!(\\\"channels\\\"in G[$]))throw new Error(\\\"missing channels property: \\\"+$);if(!(\\\"labels\\\"in G[$]))throw new Error(\\\"missing channel labels property: \\\"+$);if(G[$].labels.length!==G[$].channels)throw new Error(\\\"channel and label counts mismatch: \\\"+$);var X=G[$].channels,H=G[$].labels;delete G[$].channels,delete G[$].labels,Object.defineProperty(G[$],\\\"channels\\\",{value:X}),Object.defineProperty(G[$],\\\"labels\\\",{value:H})}G.rgb.hsl=function(t){var e,n,r=t[0]/255,a=t[1]/255,o=t[2]/255,i=Math.min(r,a,o),s=Math.max(r,a,o),c=s-i;return s===i?e=0:r===s?e=(a-o)/c:a===s?e=2+(o-r)/c:o===s&&(e=4+(r-a)/c),(e=Math.min(60*e,360))<0&&(e+=360),n=(i+s)/2,[e,100*(s===i?0:n<=.5?c/(s+i):c/(2-s-i)),100*n]},G.rgb.hsv=function(t){var e,n,r,a,o,i=t[0]/255,s=t[1]/255,c=t[2]/255,u=Math.max(i,s,c),l=u-Math.min(i,s,c),f=function(t){return(u-t)/6/l+.5};return 0===l?a=o=0:(o=l/u,e=f(i),n=f(s),r=f(c),i===u?a=r-n:s===u?a=1/3+e-r:c===u&&(a=2/3+n-e),a<0?a+=1:a>1&&(a-=1)),[360*a,100*o,100*u]},G.rgb.hwb=function(t){var e=t[0],n=t[1],r=t[2];return[G.rgb.hsl(t)[0],100*(1/255*Math.min(e,Math.min(n,r))),100*(r=1-1/255*Math.max(e,Math.max(n,r)))]},G.rgb.cmyk=function(t){var e,n=t[0]/255,r=t[1]/255,a=t[2]/255;return[100*((1-n-(e=Math.min(1-n,1-r,1-a)))/(1-e)||0),100*((1-r-e)/(1-e)||0),100*((1-a-e)/(1-e)||0),100*e]},G.rgb.keyword=function(t){var e=R[t];if(e)return e;var n,r,a,o=1/0;for(var i in q)if(q.hasOwnProperty(i)){var s=q[i],c=(r=t,a=s,Math.pow(r[0]-a[0],2)+Math.pow(r[1]-a[1],2)+Math.pow(r[2]-a[2],2));c.04045?Math.pow((e+.055)/1.055,2.4):e/12.92)+.3576*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)+.1805*(r=r>.04045?Math.pow((r+.055)/1.055,2.4):r/12.92)),100*(.2126*e+.7152*n+.0722*r),100*(.0193*e+.1192*n+.9505*r)]},G.rgb.lab=function(t){var e=G.rgb.xyz(t),n=e[0],r=e[1],a=e[2];return r/=100,a/=108.883,n=(n/=95.047)>.008856?Math.pow(n,1/3):7.787*n+16/116,[116*(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116)-16,500*(n-r),200*(r-(a=a>.008856?Math.pow(a,1/3):7.787*a+16/116))]},G.hsl.rgb=function(t){var e,n,r,a,o,i=t[0]/360,s=t[1]/100,c=t[2]/100;if(0===s)return[o=255*c,o,o];e=2*c-(n=c<.5?c*(1+s):c+s-c*s),a=[0,0,0];for(var u=0;u<3;u++)(r=i+1/3*-(u-1))<0&&r++,r>1&&r--,o=6*r<1?e+6*(n-e)*r:2*r<1?n:3*r<2?e+(n-e)*(2/3-r)*6:e,a[u]=255*o;return a},G.hsl.hsv=function(t){var e=t[0],n=t[1]/100,r=t[2]/100,a=n,o=Math.max(r,.01);return n*=(r*=2)<=1?r:2-r,a*=o<=1?o:2-o,[e,100*(0===r?2*a/(o+a):2*n/(r+n)),100*((r+n)/2)]},G.hsv.rgb=function(t){var e=t[0]/60,n=t[1]/100,r=t[2]/100,a=Math.floor(e)%6,o=e-Math.floor(e),i=255*r*(1-n),s=255*r*(1-n*o),c=255*r*(1-n*(1-o));switch(r*=255,a){case 0:return[r,c,i];case 1:return[s,r,i];case 2:return[i,r,c];case 3:return[i,s,r];case 4:return[c,i,r];case 5:return[r,i,s]}},G.hsv.hsl=function(t){var e,n,r,a=t[0],o=t[1]/100,i=t[2]/100,s=Math.max(i,.01);return r=(2-o)*i,n=o*s,[a,100*(n=(n/=(e=(2-o)*s)<=1?e:2-e)||0),100*(r/=2)]},G.hwb.rgb=function(t){var e,n,r,a,o,i,s,c=t[0]/360,u=t[1]/100,l=t[2]/100,f=u+l;switch(f>1&&(u/=f,l/=f),r=6*c-(e=Math.floor(6*c)),1&e&&(r=1-r),a=u+r*((n=1-l)-u),e){default:case 6:case 0:o=n,i=a,s=u;break;case 1:o=a,i=n,s=u;break;case 2:o=u,i=n,s=a;break;case 3:o=u,i=a,s=n;break;case 4:o=a,i=u,s=n;break;case 5:o=n,i=u,s=a}return[255*o,255*i,255*s]},G.cmyk.rgb=function(t){var e=t[0]/100,n=t[1]/100,r=t[2]/100,a=t[3]/100;return[255*(1-Math.min(1,e*(1-a)+a)),255*(1-Math.min(1,n*(1-a)+a)),255*(1-Math.min(1,r*(1-a)+a))]},G.xyz.rgb=function(t){var e,n,r,a=t[0]/100,o=t[1]/100,i=t[2]/100;return n=-.9689*a+1.8758*o+.0415*i,r=.0557*a+-.204*o+1.057*i,e=(e=3.2406*a+-1.5372*o+-.4986*i)>.0031308?1.055*Math.pow(e,1/2.4)-.055:12.92*e,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:12.92*n,r=r>.0031308?1.055*Math.pow(r,1/2.4)-.055:12.92*r,[255*(e=Math.min(Math.max(0,e),1)),255*(n=Math.min(Math.max(0,n),1)),255*(r=Math.min(Math.max(0,r),1))]},G.xyz.lab=function(t){var e=t[0],n=t[1],r=t[2];return n/=100,r/=108.883,e=(e/=95.047)>.008856?Math.pow(e,1/3):7.787*e+16/116,[116*(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116)-16,500*(e-n),200*(n-(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116))]},G.lab.xyz=function(t){var e,n,r,a=t[0];e=t[1]/500+(n=(a+16)/116),r=n-t[2]/200;var o=Math.pow(n,3),i=Math.pow(e,3),s=Math.pow(r,3);return n=o>.008856?o:(n-16/116)/7.787,e=i>.008856?i:(e-16/116)/7.787,r=s>.008856?s:(r-16/116)/7.787,[e*=95.047,n*=100,r*=108.883]},G.lab.lch=function(t){var e,n=t[0],r=t[1],a=t[2];return(e=360*Math.atan2(a,r)/2/Math.PI)<0&&(e+=360),[n,Math.sqrt(r*r+a*a),e]},G.lch.lab=function(t){var e,n=t[0],r=t[1];return e=t[2]/360*2*Math.PI,[n,r*Math.cos(e),r*Math.sin(e)]},G.rgb.ansi16=function(t){var e=t[0],n=t[1],r=t[2],a=1 in arguments?arguments[1]:G.rgb.hsv(t)[2];if(0===(a=Math.round(a/50)))return 30;var o=30+(Math.round(r/255)<<2|Math.round(n/255)<<1|Math.round(e/255));return 2===a&&(o+=60),o},G.hsv.ansi16=function(t){return G.rgb.ansi16(G.hsv.rgb(t),t[2])},G.rgb.ansi256=function(t){var e=t[0],n=t[1],r=t[2];return e===n&&n===r?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(n/255*5)+Math.round(r/255*5)},G.ansi16.rgb=function(t){var e=t%10;if(0===e||7===e)return t>50&&(e+=3.5),[e=e/10.5*255,e,e];var n=.5*(1+~~(t>50));return[(1&e)*n*255,(e>>1&1)*n*255,(e>>2&1)*n*255]},G.ansi256.rgb=function(t){if(t>=232){var e=10*(t-232)+8;return[e,e,e]}var n;return t-=16,[Math.floor(t/36)/5*255,Math.floor((n=t%36)/6)/5*255,n%6/5*255]},G.rgb.hex=function(t){var e=(((255&Math.round(t[0]))<<16)+((255&Math.round(t[1]))<<8)+(255&Math.round(t[2]))).toString(16).toUpperCase();return\\\"000000\\\".substring(e.length)+e},G.hex.rgb=function(t){var e=t.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];var n=e[0];3===e[0].length&&(n=n.split(\\\"\\\").map((function(t){return t+t})).join(\\\"\\\"));var r=parseInt(n,16);return[r>>16&255,r>>8&255,255&r]},G.rgb.hcg=function(t){var e,n=t[0]/255,r=t[1]/255,a=t[2]/255,o=Math.max(Math.max(n,r),a),i=Math.min(Math.min(n,r),a),s=o-i;return e=s<=0?0:o===n?(r-a)/s%6:o===r?2+(a-n)/s:4+(n-r)/s+4,e/=6,[360*(e%=1),100*s,100*(s<1?i/(1-s):0)]},G.hsl.hcg=function(t){var e=t[1]/100,n=t[2]/100,r=1,a=0;return(r=n<.5?2*e*n:2*e*(1-n))<1&&(a=(n-.5*r)/(1-r)),[t[0],100*r,100*a]},G.hsv.hcg=function(t){var e=t[1]/100,n=t[2]/100,r=e*n,a=0;return r<1&&(a=(n-r)/(1-r)),[t[0],100*r,100*a]},G.hcg.rgb=function(t){var e=t[0]/360,n=t[1]/100,r=t[2]/100;if(0===n)return[255*r,255*r,255*r];var a,o=[0,0,0],i=e%1*6,s=i%1,c=1-s;switch(Math.floor(i)){case 0:o[0]=1,o[1]=s,o[2]=0;break;case 1:o[0]=c,o[1]=1,o[2]=0;break;case 2:o[0]=0,o[1]=1,o[2]=s;break;case 3:o[0]=0,o[1]=c,o[2]=1;break;case 4:o[0]=s,o[1]=0,o[2]=1;break;default:o[0]=1,o[1]=0,o[2]=c}return a=(1-n)*r,[255*(n*o[0]+a),255*(n*o[1]+a),255*(n*o[2]+a)]},G.hcg.hsv=function(t){var e=t[1]/100,n=e+t[2]/100*(1-e),r=0;return n>0&&(r=e/n),[t[0],100*r,100*n]},G.hcg.hsl=function(t){var e=t[1]/100,n=t[2]/100*(1-e)+.5*e,r=0;return n>0&&n<.5?r=e/(2*n):n>=.5&&n<1&&(r=e/(2*(1-n))),[t[0],100*r,100*n]},G.hcg.hwb=function(t){var e=t[1]/100,n=e+t[2]/100*(1-e);return[t[0],100*(n-e),100*(1-n)]},G.hwb.hcg=function(t){var e=t[1]/100,n=1-t[2]/100,r=n-e,a=0;return r<1&&(a=(n-r)/(1-r)),[t[0],100*r,100*a]},G.apple.rgb=function(t){return[t[0]/65535*255,t[1]/65535*255,t[2]/65535*255]},G.rgb.apple=function(t){return[t[0]/255*65535,t[1]/255*65535,t[2]/255*65535]},G.gray.rgb=function(t){return[t[0]/100*255,t[0]/100*255,t[0]/100*255]},G.gray.hsl=G.gray.hsv=function(t){return[0,0,t[0]]},G.gray.hwb=function(t){return[0,100,t[0]]},G.gray.cmyk=function(t){return[0,0,0,t[0]]},G.gray.lab=function(t){return[t[0],0,0]},G.gray.hex=function(t){var e=255&Math.round(t[0]/100*255),n=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return\\\"000000\\\".substring(n.length)+n},G.rgb.gray=function(t){return[(t[0]+t[1]+t[2])/3/255*100]};var J=B.exports,Y=J;function K(t){var e=function(){for(var t={},e=Object.keys(Y),n=e.length,r=0;r1&&(e=Array.prototype.slice.call(arguments));var n=t(e);if(\\\"object\\\"==typeof n)for(var r=n.length,a=0;a1&&(e=Array.prototype.slice.call(arguments)),t(e))};return\\\"conversion\\\"in t&&(e.conversion=t.conversion),e}(r)}))}));var nt=P,rt=et,at=[].slice,ot=[\\\"keyword\\\",\\\"gray\\\",\\\"hex\\\"],it={};Object.keys(rt).forEach((function(t){it[at.call(rt[t].labels).sort().join(\\\"\\\")]=t}));var st={};function ct(t,e){if(!(this instanceof ct))return new ct(t,e);if(e&&e in ot&&(e=null),e&&!(e in rt))throw new Error(\\\"Unknown model: \\\"+e);var n,r;if(null==t)this.model=\\\"rgb\\\",this.color=[0,0,0],this.valpha=1;else if(t instanceof ct)this.model=t.model,this.color=t.color.slice(),this.valpha=t.valpha;else if(\\\"string\\\"==typeof t){var a=nt.get(t);if(null===a)throw new Error(\\\"Unable to parse color from string: \\\"+t);this.model=a.model,r=rt[this.model].channels,this.color=a.value.slice(0,r),this.valpha=\\\"number\\\"==typeof a.value[r]?a.value[r]:1}else if(t.length){this.model=e||\\\"rgb\\\",r=rt[this.model].channels;var o=at.call(t,0,r);this.color=ft(o,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 i=Object.keys(t);\\\"alpha\\\"in t&&(i.splice(i.indexOf(\\\"alpha\\\"),1),this.valpha=\\\"number\\\"==typeof t.alpha?t.alpha:0);var s=i.sort().join(\\\"\\\");if(!(s in it))throw new Error(\\\"Unable to parse color from object: \\\"+JSON.stringify(t));this.model=it[s];var c=rt[this.model].labels,u=[];for(n=0;nn?(e+.05)/(n+.05):(n+.05)/(e+.05)},level:function(t){var e=this.contrast(t);return e>=7.1?\\\"AAA\\\":e>=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(),e=0;e<3;e++)t.color[e]=255-t.color[e];return t},lighten:function(t){var e=this.hsl();return e.color[2]+=e.color[2]*t,e},darken:function(t){var e=this.hsl();return e.color[2]-=e.color[2]*t,e},saturate:function(t){var e=this.hsl();return e.color[1]+=e.color[1]*t,e},desaturate:function(t){var e=this.hsl();return e.color[1]-=e.color[1]*t,e},whiten:function(t){var e=this.hwb();return e.color[1]+=e.color[1]*t,e},blacken:function(t){var e=this.hwb();return e.color[2]+=e.color[2]*t,e},grayscale:function(){var t=this.rgb().color,e=.3*t[0]+.59*t[1]+.11*t[2];return ct.rgb(e,e,e)},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 e=this.hsl(),n=e.color[0];return n=(n=(n+t)%360)<0?360+n:n,e.color[0]=n,e},mix:function(t,e){if(!t||!t.rgb)throw new Error('Argument to \\\"mix\\\" was not a Color instance, but rather an instance of '+typeof t);var n=t.rgb(),r=this.rgb(),a=void 0===e?.5:e,o=2*a-1,i=n.alpha()-r.alpha(),s=((o*i==-1?o:(o+i)/(1+o*i))+1)/2,c=1-s;return ct.rgb(s*n.red()+c*r.red(),s*n.green()+c*r.green(),s*n.blue()+c*r.blue(),n.alpha()*a+r.alpha()*(1-a))}},Object.keys(rt).forEach((function(t){if(-1===ot.indexOf(t)){var e=rt[t].channels;ct.prototype[t]=function(){if(this.model===t)return new ct(this);if(arguments.length)return new ct(arguments,t);var n,r=\\\"number\\\"==typeof arguments[e]?e:this.valpha;return new ct((n=rt[this.model][t].raw(this.color),Array.isArray(n)?n:[n]).concat(r),t)},ct[t]=function(n){return\\\"number\\\"==typeof n&&(n=ft(at.call(arguments),e)),new ct(n,t)}}}));const bt=[1,1,1,1,2,2,3,0];function mt(t){const e=t.length;let n=\\\"\\\";for(let r=0;r>3&7];if(!(64&a)||!n||r+n>e)return null;for(a&=63>>n;n>0;n-=1){const e=t[r++];if(128!=(192&e))return null;a=a<<6|63&e}}n+=String.fromCharCode(a)}return n}new Array(3),new Array(3);const pt=[1/6378137,1/6378137,1/6356752.314245179],gt=[1/40680631590769,1/40680631590769,1/40408299984661.445],vt=new Array(3),wt=new Array(3),Mt=new Array(3);function Tt(t,e){const n=gt,r=function(t,e,n,r,a){const o=e[0],i=e[1],s=e[2],c=n[0],u=n[1],l=n[2],f=o*o*c*c,h=i*i*u*u,y=s*s*l*l,d=f+h+y,b=Math.sqrt(1/d),m=function(t,e,n){return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t}(At,e,b);if(d_t);return t[0]=o*A,t[1]=i*k,t[2]=s*_,t}(vt,e,pt,n,.1);let a=v(wt,r,n);a=function(t,e){const n=e[0],r=e[1],a=e[2];let o=n*n+r*r+a*a;o>0&&(o=Math.sqrt(o),t[0]=e[0]/o,t[1]=e[1]/o,t[2]=e[2]/o);return t}(a,a);const o=g(Mt,e,r),i=Math.atan2(a[1],a[0]),s=Math.asin(a[2]),c=(u=m(o,e),(Math.sign?Math.sign(u):0==(u=+u)||isNaN(u)?Number(u):u>0?1:-1)*Ot(o));var u;return t[0]=dt(i),t[1]=dt(s),t[2]=c,t}const At=new Array(3),kt=new Array(3),_t=1e-12;function Ot(t){return l(t)}function St(t,e){let n=\\\"\\\";for(let r=0;r<4;r++){const a=t.getUint8(e+r);n+=String.fromCharCode(a)}return n}const xt=\\\"undefined\\\"!=typeof TextDecoder?new TextDecoder(\\\"utf-8\\\"):null;function Ft(t,e,n){const r=new Uint8Array(t,e,n);return xt?JSON.parse(xt.decode(r)):JSON.parse(mt(r))}function It(t,e,n){const r=new Uint8Array(t,e,n);return xt?JSON.parse(xt.decode(r)):JSON.parse(mt(r))}function Ct(t,e,n){return{offset:e,byteLength:n}}function Et(t,e,n,r){const{byteOffset:a,componentType:o,type:i}=t,{ctor:s,type:c}=function(t){return zt[t]}(o||\\\"UNSIGNED_SHORT\\\"),u=function(t){if(!t)return 1;return Nt[t]}(i);return{byteStride:0,byteOffset:a+n,itemSize:u,count:r*u,componentType:c,array:new s(e,n+a,r*u)}}function Ut(t,e,n,r){const a=Et(t,e,n,r);return a.array.buffer.byteLength!==e.byteLength&&(a.array=a.array.slice()),a}const Nt={\\\"SCALAR\\\":1,\\\"VEC2\\\":2,\\\"VEC3\\\":3,\\\"VEC4\\\":4};const zt={\\\"BYTE\\\":{ctor:Int8Array,type:5120,name:\\\"Int8Array\\\"},\\\"UNSIGNED_BYTE\\\":{ctor:Uint8Array,type:5121,name:\\\"Uint8Array\\\"},\\\"SHORT\\\":{ctor:Int16Array,type:5122,name:\\\"Int16Array\\\"},\\\"UNSIGNED_SHORT\\\":{ctor:Uint16Array,type:5123,name:\\\"Uint16Array\\\"},\\\"INT\\\":{ctor:Int32Array,type:5124,name:\\\"Int32Array\\\"},\\\"UNSIGNED_INT\\\":{ctor:Uint32Array,type:5125,name:\\\"Uint32Array\\\"},\\\"FLOAT\\\":{ctor:Float32Array,type:5126,name:\\\"Float32Array\\\"},\\\"DOUBLE\\\":{ctor:Float64Array,type:5126,name:\\\"Float64Array\\\"}};function Lt(t){for(const e in zt)if(t===zt[e].ctor)return zt[e].type;throw new Error(\\\"unrecognized ctor:\\\"+t)}function jt(t,e,n,r){const a=t,o=e.length/3;for(let t=0;t0&&(u=Ft(s,e,r),e+=r),a>0&&(c=function(t,e,n){return{offset:e,byteLength:n}}(0,e,a),e+=a),o>0&&(l=It(s,e,o),e+=o);const h=Ct(0,e,i);return f=s.slice(h.offset,h.offset+h.byteLength),n.push(f),{featureTable:u,featureTableBin:c,batchTable:l,batchTableBin:f}}const Pt={5120:Int8Array,5122:Int16Array,5124:Int32Array,5121:Uint8Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array};function Bt(t){for(const e in Pt)if(t===Pt[e])return+e;throw new Error(\\\"unrecognized ctor:\\\"+t)}let qt=null;function Rt(){return qt||(qt={\\\"image/crn\\\":r.crn&&r.crn(),\\\"image/ktx2\\\":r.ktx2&&r.ktx2(),\\\"image/cttf\\\":r.ktx2&&r.ktx2(),\\\"draco\\\":r.draco&&r.draco()}),qt}const{Ajax:Vt,GLTFLoader:Gt}=a();class $t{constructor(t,e,n){this.o=t,this.i=e||Gt,this.u=n,this.h=Rt()}static createEmptyB3DM(){return{featureTable:null,batchTable:null,gltf:{}}}load(t,e,n=0,r=0,a){return e?(r||(r=e.byteLength),this.m(t,e,n,r,a)):Vt.getArrayBuffer(t,{}).then((e=>{const a=e.data;return r||(r=a.byteLength),this.m(t,a,n,r)}))}m(t,e,n,r,a){const o=a&&a.maxTextureSize,i=this.p(e,n,r,t);if(i.error)return Promise.resolve(i);const s=t.substring(0,t.lastIndexOf(\\\"/\\\"));let c;try{c=new this.i(s,i.glb,{transferable:!0,requestImage:this.o,decoders:this.h,supportedFormats:this.u,maxTextureSize:o})}catch(t){return Promise.resolve({error:t})}return c.load({skipAttributeTransform:!1}).then((e=>{e.url=`\").concat(_, \"t}-\").concat(_, \"n}-\").concat(_, \"r}`;const a=c.transferables;for(let t=0;t=570425344?(f-=8,i=s,u=c,l=0,s=0,c=0):l>=570425344&&(f-=4,i=u,u=s,l=c,s=0,c=0);const h=[t];let y,d,b;if(s>0?(y=Ft(t,f,s),f+=s,i=y.BATCH_LENGTH):y={\\\"BATCH_LENGTH\\\":i},c>0&&(f+=c),u>0&&(d=It(t,f,u),f+=u,l>0)){const e=Ct(0,f,l);b=t.slice(e.offset,e.offset+e.byteLength),f+=l,h.push(b)}const m=y.BATCH_LENGTH,p={};if(y&&y.BATCH_ID){p.BATCH_ID=Ut(y.BATCH_ID,t,undefined.offset,m);const e=p.BATCH_ID.array&&p.BATCH_ID.array.buffer;e&&h.indexOf(e)<0&&h.push(e)}return{count:i,transferables:h,featureTable:y,batchTable:d,batchTableBin:b,b3dm:p,glb:{buffer:t,byteOffset:f,byteLength:a.byteLength+a.byteOffset-f}}}v(){return null}}const{Ajax:Xt,GLTFLoader:Ht}=a();class Jt{constructor(t,e,n,r){this.o=t,this.i=e||Ht,this.u=n,this.h=Rt(),this.M=r}load(t,e,n=0,r=0,a){return e?(r||(r=e.byteLength),this.m(t,e,n,r,a)):Xt.getArrayBuffer(t,{}).then((e=>{const a=e.data;return r||(r=a.byteLength),this.m(t,a,n,r)}))}m(t,e,n,r,a){return this.T(t,e,n,r,a).then((({gltf:a,transferables:o})=>{const i=this.A(e,n,r,t);if(i.error)return Promise.resolve(i);for(let t=0;t0?Xt.getArrayBuffer(r,{}).then((t=>this.k(r,{buffer:t.data,byteOffset:0},i))):Xt.getJSON(r,{}).then((t=>this.k(r,t,i)))}{const r={buffer:e,byteOffset:c+n,byteLength:s.byteLength-c};return this.k(t,r,i)}}k(t,e,n){const r=t.substring(0,t.lastIndexOf(\\\"/\\\")),a=new this.i(r,e,n);return a.load({skipAttributeTransform:!0}).then((n=>{let r=0,o=0;return e.buffer&&(r=e.byteOffset||0,o=e.byteLength||0),n.url=`\").concat(_, \"t}-\").concat(_, \"r}-\").concat(_, \"o}`,{transferables:a.transferables,gltf:n}}))}A(t,e,n,r){const a=new DataView(t,e,n),o=a.getUint32(4,!0);if(1!==o){const t=\\\"Unsupported pnts version: \\\"+o+\\\", url:\\\"+r;return console.warn(t),{error:t}}if(a.getUint32(8,!0)!==a.byteLength){const t=\\\"Length in pnts header is inconsistent with pnts's byte length, url: \\\"+r;return console.warn(t),{error:t}}const i=[t],{featureTable:s,featureTableBin:c,batchTable:u,batchTableBin:l}=Dt(a,32+e,i),f={},h=s.INSTANCES_LENGTH;if(s.POSITION){const{byteOffset:e}=s.POSITION;f.POSITION={byteStride:0,byteOffset:0,itemSize:3,count:h,componentType:5126,array:new Float32Array(t,e+c.offset,3*h).slice()},i.push(f.POSITION.array.buffer)}else if(s.POSITION_QUANTIZED){const e=s.QUANTIZED_VOLUME_OFFSET,n=s.QUANTIZED_VOLUME_SCALE,{byteOffset:r}=s.POSITION_QUANTIZED;f.POSITION={byteStride:12,byteOffset:0,itemSize:3,count:h,componentType:5126,array:this._(new Uint16Array(t,r+c.offset,3*h),e,n)},i.push(f.POSITION.array.buffer)}if(s.BATCH_ID){f.BATCH_ID=Ut(s.BATCH_ID,t,c.offset,h);const e=f.BATCH_ID.array&&f.BATCH_ID.array.buffer;e&&i.indexOf(e)<0&&i.push(e)}if(s.NORMAL_UP){let{byteOffset:e}=s.NORMAL_UP;f.NORMAL_UP={byteStride:0,byteOffset:0,itemSize:3,count:h,componentType:5126,array:new Float32Array(t,e+c.offset,3*h).slice()},i.push(f.NORMAL_UP.array.buffer),e=s.NORMAL_RIGHT.byteOffset,f.NORMAL_RIGHT={byteStride:0,byteOffset:0,itemSize:3,count:h,componentType:5126,array:new Float32Array(t,e+c.offset,3*h).slice()},i.push(f.NORMAL_RIGHT.array.buffer)}else if(s.NORMAL_UP_OCT32P){let{byteOffset:e}=s.NORMAL_UP_OCT32P;f.NORMAL_UP={byteStride:0,byteOffset:0,itemSize:3,count:h,componentType:5126,array:this.O(new Uint16Array(t,e+c.offset,2*h))},i.push(f.NORMAL_UP.array.buffer),e=s.NORMAL_RIGHT_OCT32P.byteOffset,f.NORMAL_RIGHT={byteStride:0,byteOffset:0,itemSize:3,count:h,componentType:5126,array:this.O(new Uint16Array(t,e+c.offset,2*h))},i.push(f.NORMAL_RIGHT.array.buffer)}if(s.SCALE){const{byteOffset:e}=s.SCALE;f.SCALE={byteStride:0,byteOffset:0,itemSize:1,count:h,componentType:5126,array:new Float32Array(t,e+c.offset,h).slice()},i.push(f.SCALE.array.buffer)}else if(s.SCALE_NON_UNIFORM){const{byteOffset:e}=s.SCALE_NON_UNIFORM;f.SCALE_NON_UNIFORM={byteStride:0,byteOffset:0,itemSize:3,count:h,componentType:5126,array:new Float32Array(t,e+c.offset,3*h).slice()},i.push(f.SCALE_NON_UNIFORM.array.buffer)}return{count:h,batchTable:u,batchTableBin:l,featureTable:s,i3dm:f,transferables:i}}O(t){const e=t.length/2,n=new Float32Array(3*e),r=[];for(let a=0;an?n:t}(t,0,e=function(t,e){if(null!=t)return t;return e}(e,255))/e*2-1}function Qt(t){return t<0?-1:1}const{Ajax:Zt}=a();class Wt{constructor(){}load(t,e,n=0,r=0){return e?(r||(r=e.byteLength),this.m(t,e,n,r)):Zt.getArrayBuffer(t,{}).then((e=>{const a=e.data;return r||(r=a.byteLength),this.m(t,a,n,r)}))}m(t,e,n,r){return this.S(e,n,r,t).then((t=>t.error?t:{magic:\\\"pnts\\\",count:t.count,transferables:t.transferables,featureTable:t.featureTable,batchTable:t.batchTable,batchTableBin:t.batchTableBin,pnts:t.pnts}))}S(t,e,n,r){const a=new DataView(t,e,n),o=a.getUint32(4,!0);if(1!==o){const t=\\\"Unsupported pnts version: \\\"+o+\\\", url:\\\"+r;return console.warn(t),{error:t}}if(a.getUint32(8,!0)!==a.byteLength){const t=\\\"Length in pnts header is inconsistent with pnts's byte length, url: \\\"+r;return console.warn(t),{error:t}}const i=[t],{featureTable:s,featureTableBin:c,batchTable:u,batchTableBin:l}=Dt(a,e+28,i),f=s.QUANTIZED_VOLUME_OFFSET,h=s.QUANTIZED_VOLUME_SCALE,y=s.POINTS_LENGTH;let d,b={};if(s.extensions&&s.extensions[\\\"3DTILES_draco_point_compression\\\"]){b=s.extensions[\\\"3DTILES_draco_point_compression\\\"],d=new DataView(t,b.byteOffset+c.offset,b.byteLength);const e={attributes:b.properties,useUniqueIDs:!1};return this.F||(this.F=Rt().draco),this.F(d,e).then((e=>{const n=e.attributes;!s.POSITION&&!s.POSITION_QUANTIZED||n.POSITION||n.POSITION_QUANTIZED||(n.POSITION=s.POSITION,n.POSITION_QUANTIZED=s.POSITION_QUANTIZED),!(s.RGB||s.RGBA||s.RGB565)||n.RGB||n.RGBA||n.RGB565||(n.RGB=s.RGB,n.RGBA=s.RGBA,n.RGB565=s.RGB565),!s.NORMAL&&!s.NORMAL_OCT16P||n.NORMAL||n.NORMAL_OCT16P||(n.NORMAL=s.NORMAL,n.NORMAL_OCT16P=s.NORMAL_OCT16P);const r=this.I(t,e.attributes,c.offset,y,i,f,h);if(e.attributes.BATCH_ID){const t=e.attributes.BATCH_ID.array;r.BATCH_ID={byteStride:0,byteOffset:0,itemSize:1,count:t.length,componentType:Lt(t.constructor),array:t},i.push(t.buffer)}else if(s.BATCH_ID||Object.keys(u).length){s.BATCH_ID?r.BATCH_ID=Ut(s.BATCH_ID,t,c.offset,y):r.BATCH_ID=te(y);const e=r.BATCH_ID.array&&r.BATCH_ID.array.buffer;e&&i.indexOf(e)<0&&i.push(e)}return{count:y,batchTable:u,batchTableBin:l,featureTable:s,pnts:r,transferables:i}}))}const m=this.I(t,s,c.offset,y,i,f,h);if(s.BATCH_ID||Object.keys(u).length){s.BATCH_ID?m.BATCH_ID=Ut(s.BATCH_ID,t,c.offset,y):m.BATCH_ID=te(y);const e=m.BATCH_ID.array&&m.BATCH_ID.array.buffer;e&&i.indexOf(e)<0&&i.push(e)}return Promise.resolve({count:y,batchTable:u,batchTableBin:l,featureTable:s,pnts:m,transferables:i})}I(t,e,n,r,a,o,i){const s={};if(e.POSITION){let{byteOffset:o,array:i}=e.POSITION;o=o||0;const c=i?0:n;if(!i){const e=t.slice(o+c,o+c+3*r*4);i=new Float32Array(e)}s.POSITION={byteStride:0,byteOffset:0,itemSize:3,count:r,componentType:5126,array:i},a.push(i.buffer)}else if(e.POSITION_QUANTIZED){let{byteOffset:c}=e.POSITION_QUANTIZED;const{array:u}=e.POSITION_QUANTIZED;c=c||0;const l=u?0:n;s.POSITION={byteStride:0,byteOffset:0,itemSize:3,count:r,componentType:5126,array:this._(u||new Uint16Array(t,c+l,3*r),o,i)},a.push(s.POSITION.array.buffer)}if(e.RGBA){let{byteOffset:o,array:i}=e.RGBA;o=o||0;const c=i?0:n;if(!i){const e=t.slice(o+c,o+c+4*r);i=new Uint8Array(e)}s.RGBA={byteStride:0,byteOffset:0,itemSize:4,count:r,componentType:5121,array:i},a.push(i.buffer)}else if(e.RGB){let{byteOffset:o,array:i}=e.RGB;o=o||0;const c=i?0:n;if(!i){const e=t.slice(o+c,o+c+3*r);i=new Uint8Array(e)}s.RGB={byteStride:0,byteOffset:0,itemSize:3,count:r,componentType:5121,array:i},a.push(i.buffer)}else if(e.RGB565){let{byteOffset:o,array:i}=e.RGB565;o=o||0;const c=i?0:n;if(!i){const e=t.slice(o+c,o+c+2*r);i=new Uint16Array(e)}s.RGB565={byteStride:0,byteOffset:0,itemSize:1,count:r,componentType:5123,array:i},a.push(i.buffer)}if(e.NORMAL){let{byteOffset:o,array:i}=e.NORMAL;o=o||0;const c=i?0:n;if(!i){const e=t.slice(o+c,o+c+3*r*4);i=new Float32Array(e)}s.NORMAL={byteStride:0,byteOffset:0,itemSize:3,count:r,componentType:5126,array:i},a.push(i.buffer)}else if(e.NORMAL_OCT16P){let{byteOffset:o,array:i}=e.NORMAL_OCT16P;o=o||0;const c=i?0:n;if(!i){const e=t.slice(o+c,o+c+2*r);i=new Uint8Array(e)}s.NORMAL_OCT16P={byteStride:0,byteOffset:0,itemSize:2,count:r,componentType:5121,array:i},a.push(i.buffer)}return s}_(t,e,n){return jt(new Float32Array(t.length),t,e,n)}v(){return null}}function te(t){const e=(n=t)<256?Uint8Array:n<65536?Uint16Array:Uint32Array;var n;const r=new e(t);for(let e=0;e{const a=e.data;return this.m(t,a,n,r)}))}m(t,e,n,r,a){r||(r=e.byteLength);const o=this.C(e,t,n,r),i=[];for(let n=0;nt)))}return Promise.all(i).then((t=>({magic:\\\"cmpt\\\",tiles:t})))}C(t,e,n,r){const a=new DataView(t,n,r),o=a.getUint32(4,!0);if(1!==o){const t=\\\"Unsupported cmpt version: \\\"+o+\\\", url:\\\"+e;return console.warn(t),{error:t}}if(16===a.byteLength)return[];const i=[],s=a.getUint32(12,!0);let c=16;for(let e=0;e>8&255,s>>16&255,s>>24&255)))}var s;var c=r[2],u=1;131072&c&&(u=Math.max(1,r[7]));var l=!1;512&r[28]&&(l=!0);var f,h=r[4],y=r[3],d=r[1]+4,b=h,m=y,p=[];a===pe&&(d+=20);if(l)for(var g=0;g<6;g++){if(\\\"rgba32f\\\"!==n)throw new Error(\\\"Only RGBA32f cubemaps are supported\\\");h=b,y=m;for(var v=Math.log(h)/Math.log(2)+1,w=0;w=0;)n=r*o-i+t[a],i=o,o=n;return e+n*Me(2*e)}function h(t,e,n){for(var r,a,o=Me(e),i=Te(e),s=Fe(n),c=Ie(n),u=2*i*c,l=-2*o*s,f=t.length-1,h=t[f],y=0,d=0,b=0;--f>=0;)r=d,a=y,h=u*(d=h)-r-l*(y=b)+t[f],b=l*d-a+u*y;return[(u=o*c)*h-(l=i*s)*b,u*b+l*h]}t.es,o=a=(r=t.es/(1+Oe(1-t.es)))/(2-r),s[0]=a*(2+a*(-2/3+a*(a*(116/45+a*(26/45+a*(-2854/675)))-2))),c[0]=a*(a*(2/3+a*(4/3+a*(-82/45+a*(32/45+a*(4642/4725)))))-2),o*=a,s[1]=o*(7/3+a*(a*(-227/45+a*(2704/315+a*(2323/945)))-1.6)),c[1]=o*(5/3+a*(-16/15+a*(-13/9+a*(904/315+a*(-1522/945))))),o*=a,s[2]=o*(56/15+a*(-136/35+a*(-1262/105+a*(73814/2835)))),c[2]=o*(-26/15+a*(34/21+a*(1.6+a*(-12686/2835)))),o*=a,s[3]=o*(4279/630+a*(-332/35+a*(-399572/14175))),c[3]=o*(1237/630+a*(a*(-24832/14175)-2.4)),o*=a,s[4]=o*(4174/315+a*(-144838/6237)),c[4]=o*(-734/315+a*(109598/31185)),o*=a,s[5]=o*(601676/22275),c[5]=o*(444337/155925),o=a*a,e=t.k0/(1+a)*(1+o*(1/4+o*(1/64+o/256))),u[0]=a*(a*(2/3+a*(-37/96+a*(1/360+a*(81/512+a*(-96199/604800)))))-.5),l[0]=a*(.5+a*(-2/3+a*(5/16+a*(41/180+a*(-127/288+a*(7891/37800)))))),u[1]=o*(-1/48+a*(-1/15+a*(437/1440+a*(-46/105+a*(1118711/3870720))))),l[1]=o*(13/48+a*(a*(557/1440+a*(281/630+a*(-1983433/1935360)))-.6)),o*=a,u[2]=o*(-17/480+a*(37/840+a*(209/4480+a*(-5569/90720)))),l[2]=o*(61/240+a*(-103/140+a*(15061/26880+a*(167603/181440)))),o*=a,u[3]=o*(-4397/161280+a*(11/504+a*(830251/7257600))),l[3]=o*(49561/161280+a*(-179/168+a*(6601661/7257600))),o*=a,u[4]=o*(-4583/161280+a*(108847/3991680)),l[4]=o*(34729/80640+a*(-3418889/1995840)),o*=a,u[5]=o*(-20648693/638668800),l[5]=.6650675310896665*o,i=f(c,t.phi0),n=-e*(i+function(t,e){var n,r=2*Te(e),a=t.length-1,o=t[a],i=0;for(;--a>=0;)n=r*o-i+t[a],i=o,o=n;return Me(e)*n}(l,2*i)),t.fwd=function(t,r){var a,o,i,s,u,y=t.phi,d=t.lam;y=f(c,y),a=Me(y),o=Te(y),s=Me(d),i=Te(d),y=_e(a,i*o),d=_e(s*o,xe(a,o*i)),d=function(t){var e=we(t);return e=function(t){var e=1+t,n=e-1;return 0===n?t:t*Se(e)/n}(e*(1+e/(xe(1,e)+1))),t<0?-e:e}(Ae(d)),u=h(l,2*y,2*d),y+=u[0],d+=u[1],we(d)<=2.623395162778?(r.y=e*y+n,r.x=e*d):r.x=r.y=Ce},t.inv=function(t,r){var a,o,i,c,l,y=t.y,d=t.x;y=(y-n)/e,we(d/=e)<=2.623395162778?(y+=(l=h(u,2*y,2*d))[0],d+=l[1],d=ke(Fe(d)),a=Me(y),o=Te(y),c=Me(d),i=Te(d),d=_e(c,i*o),y=_e(a*i,xe(c,i*o)),r.phi=f(s,y),r.lam=d):r.phi=r.lam=Ce}}const Ue=Math.PI/180,Ne=6378137*Math.PI/180,ze=85.0511287798,Le={};function je(t,e,n,r){if(\\\"EPSG:3857\\\"===n)return function(t,e){const n=ze,r=e[0],a=Math.max(Math.min(n,e[1]),-n);let o;o=0===a?0:Math.log(Math.tan((90+a)*Ue/2))/Ue;return t[0]=r*Ne,t[1]=o*Ne,t}(t,e);if(!n||\\\"EPSG:9807\\\"!==n.code&&\\\"Traverse_Mercator\\\"!==n.code){if(\\\"EPSG:4326\\\"===n||\\\"EPSG:4490\\\"===n||\\\"identity\\\"===n)return De(t,e);if(\\\"baidu\\\"===n)return De(t,e);throw new Error(\\\"unsupported projection:\\\"+n)}{if(!(!r||4326===r.wkid))return function(t,e){return t[0]=e[0],t[1]=e[1],t}(t,e);const a=JSON.stringify(n);let o=Le[a];return o||(o=Le[a]=function(t){const e={a:Be,es:qe,x0:ht(t.falseEasting)?5e5:t.falseEasting,y0:ht(t.falseNorthing)?0:t.falseNorthing,k0:t.scaleFactor||.9996,lam0:(t.centralMeridian||0)*Pe,phi0:(t.latitudeOfOrigin||0)*Pe,originLam0:t.startLongtitude||0,originPhi0:t.startLatitude||0};Ee(e);const n={lam:0,phi:0},r={};let a=0,o=0;(e.originLam0||e.originPhi0)&&(n.lam=e.originLam0*Pe-e.lam0,n.phi=e.originPhi0*Pe,e.fwd(n,r),a=e.a*r.x+e.x0,o=e.a*r.y+e.y0);return{project:function(t,i){n.lam=t[0]*Pe-e.lam0,n.phi=t[1]*Pe,e.fwd(n,r);const s=e.a*r.x+e.x0-a,c=e.a*r.y+e.y0-o;return i[0]=s,i[1]=c,i}}}(n)),o.project(e,t)}}function De(t,e){return t[0]=e[0],t[1]=e[1],t}const Pe=.017453292519943295,Be=6378137,qe=.0066943799901413165;const{Ajax:Re}=a(),Ve=i([]),Ge=Rt().draco,$e=Rt().ktx2,Xe={\\\"pbrMetallicRoughness\\\":{\\\"baseColorFactor\\\":[.5,.5,.5,1],\\\"metallicFactor\\\":0,\\\"roughnessFactor\\\":.5}},He={\\\"position\\\":{name:\\\"POSITION\\\",accessor:{\\\"componentType\\\":5126,\\\"type\\\":\\\"VEC3\\\"}},\\\"normal\\\":{name:\\\"NORMAL\\\",accessor:{\\\"componentType\\\":5126,\\\"type\\\":\\\"VEC3\\\"}},\\\"uv0\\\":{name:\\\"TEXCOORD_0\\\",accessor:{\\\"componentType\\\":5126,\\\"type\\\":\\\"VEC2\\\"}},\\\"color\\\":{name:\\\"COLOR_0\\\",accessor:{\\\"componentType\\\":5121,\\\"type\\\":\\\"VEC4\\\"}},\\\"uv-region\\\":{name:\\\"uvRegion\\\",accessor:{\\\"componentType\\\":5123,\\\"type\\\":\\\"VEC4\\\"}},\\\"feature-index\\\":{name:\\\"_BATCHID\\\",accessor:{\\\"componentType\\\":5125,\\\"type\\\":\\\"SCALAR\\\"}},\\\"faceRange\\\":{name:\\\"faceRange\\\",accessor:{\\\"componentType\\\":5125,\\\"type\\\":\\\"VEC2\\\"}}};function Je(t,e,n,r,a,o){const s=[],c=[],u=[];for(let e=0;e({buffer:t})));s.push(i);const l=[];if(nn(r,l),l.length){const t=l.map((t=>{const e=Re.getArrayBuffer(t.url,o);return e.xhr.url=t.url,u.push(e.xhr),e.then((e=>e&&e.status?null:{buffer:e,mimeType:t.mimeType,format:t.format}))}));s.push(...t)}c[e]=l.length}const l=Promise.all(s).then((o=>{for(let t=0;t({data:t.buffer.data,mimeType:t.mimeType,format:t.format})))}),u+=1+e}const l=function(t,e,n,r,a,o){const s={asset:{generator:\\\"i3s\\\",version:\\\"2.0\\\"},extensions:{},scene:0,scenes:[{nodes:[]}],nodes:{},meshes:{},materials:[],skins:[],animations:null,textures:[],transferables:[]},c=[];for(let u=0;u({gltf:s,featureTable:{BATCH_LENGTH:0},transferables:s.transferables})))}(t,s,e,a,n,r);return l}));return l.xhr=u,l}const Ye={\\\"magFilter\\\":9728,\\\"minFilter\\\":9728,\\\"wrapR\\\":33071,\\\"wrapS\\\":33071,\\\"wrapT\\\":33071};function Ke(t,e,n,r,a,o,i,s){const c=n.info.compressedAttributes.attributes.reduce(((t,e,n)=>{const r=He[e];if(!r)return t;return t[r.name||e]=n,t}),{});return Ge(r,{attributes:c,metadatas:{\\\"POSITION\\\":[{name:\\\"i3s-scale_x\\\",type:\\\"double\\\"},{name:\\\"i3s-scale_y\\\",type:\\\"double\\\"}]},useUniqueIDs:!1,skipAttributeTransform:!1}).then((n=>We(n,t,e,a,o,i,s)))}const Qe={position:function(t,e,n){const r=3*t.vertexCount,a=new Float32Array(e,n,r);return t.position={array:a,componentType:5126,itemSize:3,count:r/3,meta:{\\\"i3s-scale_x\\\":1,\\\"i3s-scale_y\\\":1},type:\\\"VEC3\\\"},n+=4*r},normal:function(t,e,n){const r=3*t.vertexCount,a=new Float32Array(e,n,r);return t.normal={array:a,componentType:5126,itemSize:3,count:r/3,type:\\\"VEC3\\\"},n+=4*r},uv0:function(t,e,n){const r=2*t.vertexCount,a=new Float32Array(e,n,r);return t.uv0={array:a,componentType:5126,itemSize:2,count:r/2,type:\\\"VEC2\\\"},n+=4*r},color:function(t,e,n){const r=4*t.vertexCount,a=new Uint8Array(e,n,r);return t.color={array:a,componentType:5121,itemSize:4,count:r/4,type:\\\"VEC4\\\"},n+=r},featureId:function(t,e,n){return n+=8*t.featureCount},id:function(t,e,n){return n+=8*t.featureCount},faceRange:function(t,e,n){const r=2*t.featureCount,a=new Uint32Array(e,n,r);return t.faceRange={array:a,componentType:5125,itemSize:2,count:r/2,type:\\\"VEC2\\\"},n+=4*r},uvRegion:function(t,e,n){const r=4*t.vertexCount,a=new Uint16Array(e,n,r);return t[\\\"uv-region\\\"]={array:a,componentType:5123,itemSize:4,count:r/4,type:\\\"VEC4\\\"},n+=2*r},region:function(t,e,n){const r=4*t.vertexCount,a=new Uint16Array(e,n,r);return t[\\\"uv-region\\\"]={array:a,componentType:5123,itemSize:4,count:r/4,type:\\\"VEC4\\\"},n+=2*r}};function Ze(t,e,n,r,a,o,i,s){const c={vertexCount:0},u=new DataView(r);try{let t=0;c.vertexCount=u.getUint32(t,1),t+=4,c.featureCount=u.getUint32(t,1),t+=4;const e=n.info.ordering?null:n.info;if(e){const n=[];for(const t in e)\\\"offset\\\"!==t&&\\\"\\\"!==t&&n.push(t);for(let e=0;e(i[0]=t[0],i[1]=t[1],i[2]=t[2],l||(i=p(i,i,e)),n&&d(i,i,n),je(s,i,r,a),o=i[2],t[0]=s[0]-u[0],t[1]=s[1]-u[1],t[2]=o-u[2],t))),u}(t.attributes.POSITION,r,a,o,i);e.meshes[n]={primitives:[s],index:n},e.extensions.MAPTALKS_RTC={projCenter:u},e.extensions.CESIUM_RTC={rtcCoord:a};for(const n in t.attributes)cn(e.transferables,t.attributes[n].array.buffer);return t.indices&&cn(e.transferables,t.indices.array.buffer),s}function tn(t,e,n,r,a,o){const i=r.map((t=>function(t,e,n,r,a){if(\\\"dds\\\"===e){const e=ve(t),r=e.images.map((e=>new Uint8Array(t,e.offset,e.length))),a=\\\"dxt1\\\"===e.format?33777:33779;return Promise.resolve({image:{mipmap:r,width:e.shape[0],height:e.shape[1],mimeType:n},sampler:Ye,format:a})}if(\\\"png\\\"===e||\\\"jpg\\\"===e)return function(t,e){rn||(rn=new OffscreenCanvas(2,2),an=rn.getContext(\\\"2d\\\",{willReadFrequently:!0}));const n=new Blob([new Uint8Array(t)]);return createImageBitmap(n).then((t=>{let{width:n,height:r}=t;on(n)||(n=sn(n)),on(r)||(r=sn(r));const a=e;a&&(n=Math.min(a,n),r=Math.min(a,r)),rn.width=n,rn.height=r,an.drawImage(t,0,0,n,r),t.close();const o=an.getImageData(0,0,n,r);return{width:n,height:r,array:new Uint8Array(o.data)}})).catch((()=>({width:2,height:2,array:new Uint8Array(4)})))}(t,a).then((t=>{t.mimeType=n;return{image:t,sampler:Ye,format:6408}}));if(\\\"ktx2\\\"===e)return $e(t,r).then((t=>(t.mimeType=n,{image:t,sampler:Ye,format:t.format})));return null}(t.data,t.format,t.mimeType,a,o).then((t=>{if(t.image)if(t.image.array)cn(e.transferables,t.image.array.buffer);else if(t.image.mipmap)for(let n=0;n{en(t,e,n,r)}))}function en(t,e,n,r){const a=JSON.parse(JSON.stringify(n)),o=e.textures;r.ptr||(r.ptr=0);for(const t in n)n[t]&&n[t].url?(o.push(r[r.ptr++]),a[t]={index:o.length-1},void 0!==n[t].factor&&(a[t].scale=n[t].factor)):yt(n[t])&&(a[t]=en(-1,e,n[t],r));return t>=0&&(e.materials[t]=a),a}function nn(t,e){for(const n in t)t[n]&&t[n].url?e.push({url:t[n].url,mimeType:t[n].mimeType,format:t[n].format}):yt(t[n])&&nn(t[n],e)}let rn,an;function on(t){return!(t&t-1)&&0!==t}function sn(t){return Math.pow(2,Math.floor(Math.log(t)/Math.LN2))}function cn(t,e){e&&(t.indexOf(e)>=0||t.push(e))}function un(t){const e=new Uint8Array(t,0,5);return e[0]===\\\"D\\\".charCodeAt()&&e[1]===\\\"R\\\".charCodeAt()&&e[2]===\\\"A\\\".charCodeAt()&&e[3]===\\\"C\\\".charCodeAt()&&e[4]===\\\"O\\\".charCodeAt()}var ln=\\\"undefined\\\"!=typeof Float32Array?Float32Array:Array;function fn(t,e,n,r){return t[0]=e,t[1]=n,t[2]=r,t}var hn=function(t,e,n){return t[0]=e[0]-n[0],t[1]=e[1]-n[1],t[2]=e[2]-n[2],t};!function(){var t=function(){var t=new ln(3);return ln!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t}()}();const yn=[];const dn=[],bn=[],mn=[],pn=[],gn=[],vn=[],wn=[];function Mn(t,e,n,r,a,o){fn(pn,t[3*e],t[3*e+1],t[3*e+2]),fn(gn,t[3*n],t[3*n+1],t[3*n+2]),fn(vn,t[3*r],t[3*r+1],t[3*r+2]);const i=hn(dn,vn,gn),s=hn(bn,pn,gn),c=function(t,e,n){var r=e[0],a=e[1],o=e[2],i=n[0],s=n[1],c=n[2];return t[0]=a*c-o*s,t[1]=o*i-r*c,t[2]=r*s-a*i,t}(mn,i,s);!function(t,e){var n=e[0],r=e[1],a=e[2],o=n*n+r*r+a*a;o>0&&(o=1/Math.sqrt(o),t[0]=e[0]*o,t[1]=e[1]*o,t[2]=e[2]*o)}(wn,c),a[3*e]=a[3*e]||0,a[3*n]=a[3*n]||0,a[3*r]=a[3*r]||0,a[3*e+1]=a[3*e+1]||0,a[3*n+1]=a[3*n+1]||0,a[3*r+1]=a[3*r+1]||0,a[3*e+2]=a[3*e+2]||0,a[3*n+2]=a[3*n+2]||0,a[3*r+2]=a[3*r+2]||0,a[3*e]+=wn[0],a[3*n]+=wn[0],a[3*r]+=wn[0],a[3*e+1]+=wn[1],a[3*n+1]+=wn[1],a[3*r+1]+=wn[1],a[3*e+2]+=wn[2],a[3*n+2]+=wn[2],a[3*r+2]+=wn[2],o[e]+=1,o[n]+=1,o[r]+=1}const{Ajax:Tn,GLTFLoader:An}=a(),kn=[1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1],_n=[0,0,1,0,0,1,0,0,-1,0,0,0,0,0,0,1],On=2*Math.PI*6378137/360,Sn=\\\"undefined\\\"!=typeof TextDecoder?new TextDecoder(\\\"utf-8\\\"):null;let xn,Fn,In=!1;if(\\\"undefined\\\"!=typeof OffscreenCanvas){try{Fn=new OffscreenCanvas(2,2).getContext(\\\"2d\\\",{willReadFrequently:!0})}catch(t){}Fn&&\\\"undefined\\\"!=typeof createImageBitmap&&(In=!0)}const Cn=i([]),En=[0,0,0],Un=[],Nn=[],zn=[],Ln=[],jn={\\\"POSITION\\\":1,\\\"TEXCOORD_0\\\":1,\\\"TEXCOORD_1\\\":1,\\\"NORMAL\\\":1,\\\"TANGENT\\\":1},Dn={\\\"TEXCOORD_0\\\":1e-4,\\\"TEXCOORD_1\\\":1e-4};let Pn;class Bn{constructor(t,e,n,r){this.id=t,this.options=e,this.U=(...t)=>this.requestImage.call(this,...t),this.N=n,this.L={},r(null,{},[])}j(t){this.D||(this.u=t,this.P=new Wt,this.D=new $t(this.U,An,t),this.B=new Jt(this.U,An,t))}requestImage(t,e){In?fetch(t).then((t=>t.arrayBuffer())).then((t=>{const e=new self.Blob([new Uint8Array(t)]);return createImageBitmap(e)})).then((t=>{xn.width=t.width,xn.height=t.height,Fn.drawImage(t,0,0);const n=Fn.getImageData(0,0,xn.width,xn.height);t.close(),e(null,{width:t.width,height:t.height,data:new Uint8Array(n.data)})})):this.N(\\\"requestImage\\\",{url:t},null,e)}loadTile(t,e){this.j(t.supportedFormats);const{service:n,url:r,arraybuffer:a}=t,o=n.fetchOptions||{};if(o.referrer=t.referrer,o.referrerPolicy=o.referrerPolicy||\\\"origin\\\",function(t){return t.indexOf(\\\"i3s:\\\")>=0}(r)){const a=t.i3sInfo,i=n.maxTextureSize||0,s=Je(a,t.supportedFormats,this.options.projection,t.projection,i,o);return s.then((t=>{if(delete this.L[r],!t)return void e({status:404,url:r,i3sInfo:a});if(!Object.keys(t.gltf.meshes).length)return void e({status:404,url:r,i3sInfo:a});t.gltf.url=r;const{transferables:o}=t;t.magic=\\\"b3dm\\\",n.createNormalIfMissed&&this.q(t.gltf),Yn(n)&&this.R(t.gltf),e(null,t,o)})),void(this.L[r]=s.xhr)}if(a){delete this.L[r];const n=St(new DataView(a),0);if(\\\"{\\\"===n[0]||\\\" \\\"===n[0]||\\\"<\\\"===n[0]){const n=function(t,e,n){if(Sn){const r=new Uint8Array(t,e,n);return Sn.decode(r)}return mt(new Uint8Array(t,e,n))}(a,0,a.byteLength),o=JSON.parse(n);o.accessors?this.V(o,r,t,\\\"gltf\\\",e):this.G(t.rootIdx,o,a,r,e)}else this.V(a,r,t,n,e)}else{let a=n.urlParams;a&&(a=(r.indexOf(\\\"?\\\")>0?\\\"&\\\":\\\"?\\\")+a);const i=r.replace(/\\\\+/g,\\\"%2B\\\");let s=Tn.getArrayBuffer(i+(a||\\\"\\\"),o);const c=s.xhr;s=s.then((n=>{delete this.L[r],n&&n.status?e(n):(t.arraybuffer=n&&n.data,this.loadTile(t,e))})).catch((t=>{delete this.L[r],e(t)})),this.L[r]=c}}V(t,e,n,r,a){r=r&&r.toLowerCase();const{service:o}=n;if(\\\"b3dm\\\"===r){this.D.load(e,t,0,0,{maxTextureSize:o.maxTextureSize||0}).then((t=>{if(t.error)return void a(t);const{content:e,transferables:r}=this.$(t,n);o.createNormalIfMissed&&this.q(e.gltf),Yn(o)&&this.R(e.gltf),a(null,e,r)})).catch((t=>{a(t)}))}else if(\\\"pnts\\\"===r){const r=n.transform||Cn;this.P.load(e,t).then((t=>{const{content:e,transferables:o}=this.X(t,r,n.rootIdx);this.H(e),a(null,e,o)}))}else if(\\\"i3dm\\\"===r){const r=n.transform||Cn;this.B.load(e,t,0,0,{maxTextureSize:o.maxTextureSize||0}).then((t=>{const{content:e,transferables:i}=this.J(t,r,n.rootIdx);o.createNormalIfMissed&&this.q(e.gltf),Yn(o)&&this.R(e.gltf),a(null,e,i)}))}else if(\\\"cmpt\\\"===r){new re(this.U,An,this.u,o.maxTextureSize||0).load(e,t,0,0,{maxTextureSize:o.maxTextureSize||0}).then((t=>{const{content:e,transferables:r}=this.Y(t,n);this.K(e,o),Yn(o)&&this.Z(e),a(null,e,r)})).catch((t=>{a(t)}))}else if(\\\"gltf\\\"===r){this.h||(this.h=Rt());const r=e.substring(0,e.lastIndexOf(\\\"/\\\")),i=t instanceof ArrayBuffer&&{buffer:t,byteOffset:0,byteLength:t.byteLength}||t;let s;try{s=new An(r,i,{transferable:!0,requestImage:this.U,decoders:this.h,supportedFormats:this.u,maxTextureSize:o.maxTextureSize||0})}catch(t){a(t)}s.load({skipAttributeTransform:!1}).then((t=>{t.url=e,this.W(t,null,n),o.createNormalIfMissed&&this.q(t),Yn(o)&&this.R(t),a(null,{magic:\\\"gltf\\\",gltf:t},s.transferables)}))}else a(new Error(\\\"unsupported tile format: \\\"+r))}K(t,e){t.content?t.content.forEach((t=>{this.K(t,e)})):e.createNormalIfMissed&&this.q(t.gltf)}Z(t){t.content?t.content.forEach((t=>{this.Z(t)})):this.R(t.gltf)}tt(t,e){if(this.et(t,e)&&!t.attributes.NORMAL){const e=t.attributes.POSITION.array,n=e.length,r=this.nt()?Pn.subarray(0,n):e,a=function(t,e,n){const r=n||[];r.setLength&&r.setLength(t.length);const a=yn;a.length-1)return;if(t.asset&&t.asset.sharePosition)return;const e=t.meshes;for(const t in e){e[t].primitives.forEach((t=>{t.compressed_int16_params={};const e=t.attributes;for(const n in e)if(jn[n]&&e[n].array&&e[n].array instanceof Float32Array){let r=1;this.nt()&&\\\"POSITION\\\"===n&&(r=On,t.compressed_int16_params.compressed_ratio=r);const a=Xn(e[n].array,r,e[n].min,e[n].max,n);if(!a)continue;const{array:o,range:i}=a;e[n].componentType=5124,e[n].array=o,t.compressed_int16_params[n]=i}}))}}q(t){if(!t||!t.meshes||t.extensionsUsed&&t.extensionsUsed.indexOf(\\\"KHR_techniques_webgl\\\")>-1)return;if(t.asset&&t.asset.sharePosition)return;const e=t.meshes;for(const n in e){e[n].primitives.forEach((e=>{this.tt(e,t)}))}}H(t){if(!t||!t.pnts)return;const e=t.pnts;t.compressed_int16_params={};for(const n in e)if(jn[n]&&e[n].array&&e[n].array instanceof Float32Array){let r=1;this.nt()&&\\\"POSITION\\\"===n&&(r=On,t.compressed_int16_params.compressed_ratio=r);const{array:a,range:o}=Xn(e[n].array,r,e[n].min,e[n].max,n);e[n].array=a,t.compressed_int16_params[n]=o}}rt(t){const e=[];for(let n=0;n=0)return!0;r.push(o)}}return!1}(t);this.ot(t);n.service.createNormalIfMissed||this.it(t),t.asset||(t.asset={}),r?(t.asset.sharePosition=!0,this.st(t,e,n.upAxis,n.transform)):this.ct(t,e,n.upAxis,n.transform)}J(t,e,n){const{featureTable:r}=t,a=t.i3dm,o=r&&r.RTC_CENTER||[0,0,0],i=this.options.projection,s=e&&c(Cn,e),u={xmin:1/0,xmax:-1/0,ymin:1/0,ymax:-1/0,hmin:1/0,hmax:-1/0};Rn(a.POSITION.array,3,o,Cn,u);const l=Vn(u);e&&!s&&p(l,l,e);const f=this.ut(l),d=[];je(d,f,i),d[2]=f[2];const b=h([],l),m=[0,0,0],g=[0,0,0],v=[0,0],M=[1/0,1/0,1/0],T=[-1/0,-1/0,-1/0];ye(a.POSITION,(t=>{m[0]=t[0]+o[0],m[1]=t[1]+o[1],m[2]=t[2]+o[2],e&&!s&&p(m,m,e),0===w(m)?y(g,0,0,-6378137):Tt(g,m),je(v,g,i),t[0]=v[0]-d[0],t[1]=v[1]-d[1],t[2]=g[2]-d[2],t[0]T[0]&&(T[0]=t[0]),t[1]>T[1]&&(T[1]=t[1]),t[2]>T[2]&&(T[2]=t[2])})),a.POSITION.min=M,a.POSITION.max=T,e&&p(l,l,e),t.rtcCenter=b,t.rtcCoord=f,t.projCenter=d,t.rootIdx=n;const A=t.transferables;return delete t.transferables,{content:t,transferables:A}}X(t,e,n){const{featureTable:r}=t,a=t.pnts,o=r&&r.RTC_CENTER||[0,0,0],i=this.options.projection,s=e&&c(Cn,e),u={xmin:1/0,xmax:-1/0,ymin:1/0,ymax:-1/0,hmin:1/0,hmax:-1/0};Rn(a.POSITION.array,3,o,e,u);const l=Vn(u),f=this.lt(l),d=h([],l),b=[1/0,1/0,1/0],m=[-1/0,-1/0,-1/0];let g=[0,0,0,1];const v=[0,0,0],M=[0,0];ye(a.POSITION,(t=>(g[0]=t[0]+o[0],g[1]=t[1]+o[1],g[2]=t[2]+o[2],e&&!s&&(g=p(g,g,e)),0===w(g)?y(v,0,0,-6378137):Tt(v,g),je(M,v,i),t[0]=M[0]-f[0],t[1]=M[1]-f[1],t[2]=v[2]-f[2],t[0]m[0]&&(m[0]=t[0]),t[1]>m[1]&&(m[1]=t[1]),t[2]>m[2]&&(m[2]=t[2]),t))),a.POSITION.min=b,a.POSITION.max=m,e&&p(l,l,e);const T=this.ut(l);t.rtcCenter=d,t.projCenter=f,t.rtcCoord=T,t.rootIdx=n;const A=t.transferables;return delete t.transferables,{content:t,transferables:A}}ot(t){if(!Array.isArray(t.textures))return;const e=t.textures;for(let t=0;t{if(!(t.attributes&&t.attributes.POSITION))return;const e=i(Un);t.matrices&&$n(e,t.matrices);const n=t.attributes.POSITION.array,u=t.attributes.POSITION.itemSize;s(e,o,e),r&&s(e,r,e),Rn(n,u,a||En,e,c,t.compressUniforms)}));const u=Vn(c);return{rtcCenter:a,modelCenter:u,upAxisTransform:o}}st(t,e,n,r){const{modelCenter:a,upAxisTransform:o,rtcCenter:c}=this.ft(t,e,n),u=this.lt(a);t.extensions.MAPTALKS_RTC.projCenter=u,t.extensions.MAPTALKS_RTC.rtcCoord=t.extensions.CESIUM_RTC.rtcCoord=this.ut(a);const l=h([],a);r&&p(a,a,r),t.extensions.CESIUM_RTC.rtcCoord=this.ut(a),c||(oe(t,(t=>{if(t.attributes&&t.attributes.POSITION){const e=t.attributes.POSITION;if(e.array.buffer.projected&&e.array.buffer.projected[e.byteOffset])return;const n=i(Un);t.matrices&&$n(n,t.matrices),s(n,o,n);const r=function(t,e){var n=e[0],r=e[1],a=e[2],o=e[3],i=e[4],s=e[5],c=e[6],u=e[7],l=e[8],f=e[9],h=e[10],y=e[11],d=e[12],b=e[13],m=e[14],p=e[15],g=n*s-r*i,v=n*c-a*i,w=n*u-o*i,M=r*c-a*s,T=r*u-o*s,A=a*u-o*c,k=l*b-f*d,_=l*m-h*d,O=l*p-y*d,S=f*m-h*b,x=f*p-y*b,F=h*p-y*m,I=g*F-v*x+w*S+M*O-T*_+A*k;return I?(I=1/I,t[0]=(s*F-c*x+u*S)*I,t[1]=(a*x-r*F-o*S)*I,t[2]=(b*A-m*T+p*M)*I,t[3]=(h*T-f*A-y*M)*I,t[4]=(c*O-i*F-u*_)*I,t[5]=(n*F-a*O+o*_)*I,t[6]=(m*w-d*A-p*v)*I,t[7]=(l*A-h*w+y*v)*I,t[8]=(i*x-s*O+u*k)*I,t[9]=(r*O-n*x-o*k)*I,t[10]=(d*T-b*w+p*g)*I,t[11]=(f*w-l*T-y*g)*I,t[12]=(s*_-i*S-c*k)*I,t[13]=(n*S-r*_+a*k)*I,t[14]=(b*v-d*M-m*g)*I,t[15]=(l*M-f*v+h*g)*I,t):null}(Nn,n),a=[1/0,1/0,1/0],c=[-1/0,-1/0,-1/0];ye(e,(t=>{p(t,t,n),t[0]=t[0]-l[0],t[1]=t[1]-l[1],t[2]=t[2]-l[2],p(t,t,r),t[0]c[0]&&(c[0]=t[0]),t[1]>c[1]&&(c[1]=t[1]),t[2]>c[2]&&(c[2]=t[2])})),e.min=a,e.max=c,e.array.buffer.projected||(e.array.buffer.projected={}),e.array.buffer.projected[e.byteOffset]=1}})),t.extensions.CESIUM_RTC.center=l)}ct(t,e,n,r){const{modelCenter:a,rtcCenter:o}=this.ft(t,e,n,r),i=this.lt(a);t.extensions.MAPTALKS_RTC.projCenter=i,t.extensions.MAPTALKS_RTC.rtcCoord=t.extensions.CESIUM_RTC.rtcCoord=this.ut(a),oe(t,(e=>{if(e.attributes&&e.attributes.POSITION){const a=this.et(e,t);if(a){const t=e.attributes.POSITION.array.length;(!Pn||Pn.length(function(t,e,n){var r=e[0],a=e[1],o=e[2];t[0]=r*n[0]+a*n[3]+o*n[6],t[1]=r*n[1]+a*n[4]+o*n[7],t[2]=r*n[2]+a*n[5]+o*n[8]}(i,t,o),b(i,i),h(t,i),i)))}yt(t,e,n,r,a,o,s,u){if(t.array.buffer.projected&&t.array.buffer.projected[t.byteOffset])return null;const l=i([]);$n(l,e);const f=this.options.projection;a=a&&a.toUpperCase();const h=n;let b=null;\\\"Y\\\"===a?b=kn:\\\"X\\\"===a&&(b=_n);let m=[0,0,0,1];const g=[0,0,0],v=[0,0],M=r.projCenter,T=je([],r.rtcCoord,\\\"EPSG:3857\\\"),A=o&&c(Cn,o),k=t.min=t.min||[],_=t.max=t.max||[];y(k,1/0,1/0,1/0),y(_,-1/0,-1/0,-1/0);const O=s||{},{decode_position_min:S,decode_position_normConstant:x}=O;let F=[0,0,0,0],I=1;S&&(F=S),x&&(I=x);const C=[];return ye(t,((e,n)=>{if(m[0]=e[0]*I+F[0],m[1]=e[1]*I+F[1],m[2]=e[2]*I+F[2],m=p(m,m,l),b&&(m=p(m,m,b)),h&&d(m,m,h),o&&!A&&(m=p(m,m,o)),0===w(m)?y(g,0,0,-6378137):Tt(g,m),u){const t=Pn;je(v,g,f),t[3*n]=v[0]-T[0],t[3*n+1]=v[0]-T[1],t[3*n+2]=v[0]-T[2]}if(je(v,g,f),e instanceof Float32Array)e[0]=v[0]-M[0],e[1]=v[1]-M[1],e[2]=g[2]-M[2];else{const n=v[0]-M[0],r=v[1]-M[1],a=g[2]-M[2];5126!==t.componentType&&(C.push(n),C.push(r),C.push(a),C.push(e[3]))}return e[0]_[0]&&(_[0]=e[0]),e[1]>_[1]&&(_[1]=e[1]),e[2]>_[2]&&(_[2]=e[2]),e})),t.array.buffer.projected||(t.array.buffer.projected={}),t.array.buffer.projected[t.byteOffset]=1,{projCenter:M,newPositions:C}}ut(t){return 0===w(t)?y([],0,0,-6378137):Tt([],t)}onRemove(){}nt(){return\\\"EPSG:4326\\\"===this.options.projection||\\\"EPSG:4490\\\"===this.options.projection}et(t,e){if(!t.attributes.POSITION||function(t,e){const n=e.materials[t.material],r=n&&n.extensions&&n.extensions.KHR_materials_unlit;return r}(t,e))return!1;return!t.attributes.TANGENT}}const qn=[];function Rn(t,e,n,r,a,o){const i=o||{},{decode_position_min:s,decode_position_normConstant:c}=i;let u=[0,0,0,0],l=1;s&&(u=s),c&&(l=c);for(let o=0,i=t.length;oc&&(a.xmax=m[0]),m[1]f&&(a.ymax=m[1]),e>2&&(m[2]b&&(a.hmax=m[2]))}}function Vn(t){const{xmax:e,ymax:n,xmin:r,ymin:a,hmin:o,hmax:i}=t,s=[(r+e)/2,(a+n)/2,(o+i)/2];return e===-1/0&&(s[0]=0),n===-1/0&&(s[1]=0),i===-1/0&&(s[2]=0),isNaN(s[2])&&(s[2]=0),s}function Gn(t,e){for(let n=0;n=0;t--)s(n,e[t],n);return n}function Xn(t,e,n,r,a){if(e&&e>1)for(let n=0;nn&&(n=t[r]),t[r]Dn[r])return!1}return!0}(t,o,i,a)&&Dn[a]?null:function(t,e,n){const r=new Int16Array(t.length);for(let a=0;a=32768?-(65536-t)/32768:t/32767)+1)*(n-e)/2+e}function Jn(t,e,n){const r=2*(t-e)/(n-e)-1,a=Math.max(-1,Math.min(1,r));return a<0?32768*a:32767*a}function Yn(t){return void 0===t.compressGeometry||t.compressGeometry}let Kn=0;class Qn{constructor(t){this.workerId=t,this.workers={},this.dt={}}addLayer({actorId:t,mapId:e,layerId:n,params:r},a){if(this.bt(e,n))return;const o=this.gt(e,n),i=r.options;this.workers[o]=new Bn(n,i,((...e)=>this.send.call(this,t,...e)),a)}removeLayer({mapId:t,layerId:e},n){const r=this.bt(t,e),a=this.gt(t,e);delete this.workers[a],r&&r.onRemove(n)}loadTile({mapId:t,layerId:e,params:n},r){const a=this.bt(t,e);a&&a.loadTile(n,r)}abortTileLoading({mapId:t,layerId:e,params:n},r){const a=this.bt(t,e);a&&a.abortTileLoading(n,r)}receive(t){const e=t.callback,n=this.dt[e];delete this.dt[e],n&&t.error?n(new Error(t.error)):n&&n(null,t.data)}send(t,e,n,r,a){const o=a?`\").concat(_, \"t}-\").concat(_, \"Kn++}`:null;a&&(this.dt[o]=a),postMessage({type:\\\"\\\",workerId:this.workerId,actorId:t,command:e,params:n,callback:String(o)},r||[])}gt(t,e){return`\").concat(_, \"t}-\").concat(_, \"e}`}bt(t,e){const n=this.gt(t,e);return this.workers[n]}}t.initialize=function(){},t.onmessage=function(t,e){const n=t.data;this.dispatcher||(this.dispatcher=new Qn(t.workerId)),\\\"\\\"===t.type?this.dispatcher.workerId===t.workerId&&this.dispatcher.receive(t):this.dispatcher[n.command]({actorId:n.actorId,mapId:n.mapId,layerId:n.layerId,params:n.params},((t,n,r)=>{t&&404!==t.status&&204!==t.status&&console.error(t),t instanceof Error&&(t={message:t.message}),e(t,n,r)}))}}\");\n function O(t) {\n return t && t.t && Object.prototype.hasOwnProperty.call(t, \"default\") ? t.default : t;\n }\n var A = {\n exports: {} },\n\n x = {\n exports: {} },\n\n I = function I(t) {\n 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));\n },\n S = Array.prototype.concat,\n C = Array.prototype.slice,\n k = x.exports = function (t) {\n for (var e = [], n = 0, r = t.length; n < r; n++) {\n var s = t[n];\n I(s) ? e = S.call(e, C.call(s)) : e.push(s);\n }\n return e;\n };\n k.wrap = function (t) {\n return function () {\n return t(k(arguments));\n };\n };\n var N = x.exports,\n L = {\n \"aliceblue\": [240, 248, 255],\n \"antiquewhite\": [250, 235, 215],\n \"aqua\": [0, 255, 255],\n \"aquamarine\": [127, 255, 212],\n \"azure\": [240, 255, 255],\n \"beige\": [245, 245, 220],\n \"bisque\": [255, 228, 196],\n \"black\": [0, 0, 0],\n \"blanchedalmond\": [255, 235, 205],\n \"blue\": [0, 0, 255],\n \"blueviolet\": [138, 43, 226],\n \"brown\": [165, 42, 42],\n \"burlywood\": [222, 184, 135],\n \"cadetblue\": [95, 158, 160],\n \"chartreuse\": [127, 255, 0],\n \"chocolate\": [210, 105, 30],\n \"coral\": [255, 127, 80],\n \"cornflowerblue\": [100, 149, 237],\n \"cornsilk\": [255, 248, 220],\n \"crimson\": [220, 20, 60],\n \"cyan\": [0, 255, 255],\n \"darkblue\": [0, 0, 139],\n \"darkcyan\": [0, 139, 139],\n \"darkgoldenrod\": [184, 134, 11],\n \"darkgray\": [169, 169, 169],\n \"darkgreen\": [0, 100, 0],\n \"darkgrey\": [169, 169, 169],\n \"darkkhaki\": [189, 183, 107],\n \"darkmagenta\": [139, 0, 139],\n \"darkolivegreen\": [85, 107, 47],\n \"darkorange\": [255, 140, 0],\n \"darkorchid\": [153, 50, 204],\n \"darkred\": [139, 0, 0],\n \"darksalmon\": [233, 150, 122],\n \"darkseagreen\": [143, 188, 143],\n \"darkslateblue\": [72, 61, 139],\n \"darkslategray\": [47, 79, 79],\n \"darkslategrey\": [47, 79, 79],\n \"darkturquoise\": [0, 206, 209],\n \"darkviolet\": [148, 0, 211],\n \"deeppink\": [255, 20, 147],\n \"deepskyblue\": [0, 191, 255],\n \"dimgray\": [105, 105, 105],\n \"dimgrey\": [105, 105, 105],\n \"dodgerblue\": [30, 144, 255],\n \"firebrick\": [178, 34, 34],\n \"floralwhite\": [255, 250, 240],\n \"forestgreen\": [34, 139, 34],\n \"fuchsia\": [255, 0, 255],\n \"gainsboro\": [220, 220, 220],\n \"ghostwhite\": [248, 248, 255],\n \"gold\": [255, 215, 0],\n \"goldenrod\": [218, 165, 32],\n \"gray\": [128, 128, 128],\n \"green\": [0, 128, 0],\n \"greenyellow\": [173, 255, 47],\n \"grey\": [128, 128, 128],\n \"honeydew\": [240, 255, 240],\n \"hotpink\": [255, 105, 180],\n \"indianred\": [205, 92, 92],\n \"indigo\": [75, 0, 130],\n \"ivory\": [255, 255, 240],\n \"khaki\": [240, 230, 140],\n \"lavender\": [230, 230, 250],\n \"lavenderblush\": [255, 240, 245],\n \"lawngreen\": [124, 252, 0],\n \"lemonchiffon\": [255, 250, 205],\n \"lightblue\": [173, 216, 230],\n \"lightcoral\": [240, 128, 128],\n \"lightcyan\": [224, 255, 255],\n \"lightgoldenrodyellow\": [250, 250, 210],\n \"lightgray\": [211, 211, 211],\n \"lightgreen\": [144, 238, 144],\n \"lightgrey\": [211, 211, 211],\n \"lightpink\": [255, 182, 193],\n \"lightsalmon\": [255, 160, 122],\n \"lightseagreen\": [32, 178, 170],\n \"lightskyblue\": [135, 206, 250],\n \"lightslategray\": [119, 136, 153],\n \"lightslategrey\": [119, 136, 153],\n \"lightsteelblue\": [176, 196, 222],\n \"lightyellow\": [255, 255, 224],\n \"lime\": [0, 255, 0],\n \"limegreen\": [50, 205, 50],\n \"linen\": [250, 240, 230],\n \"magenta\": [255, 0, 255],\n \"maroon\": [128, 0, 0],\n \"mediumaquamarine\": [102, 205, 170],\n \"mediumblue\": [0, 0, 205],\n \"mediumorchid\": [186, 85, 211],\n \"mediumpurple\": [147, 112, 219],\n \"mediumseagreen\": [60, 179, 113],\n \"mediumslateblue\": [123, 104, 238],\n \"mediumspringgreen\": [0, 250, 154],\n \"mediumturquoise\": [72, 209, 204],\n \"mediumvioletred\": [199, 21, 133],\n \"midnightblue\": [25, 25, 112],\n \"mintcream\": [245, 255, 250],\n \"mistyrose\": [255, 228, 225],\n \"moccasin\": [255, 228, 181],\n \"navajowhite\": [255, 222, 173],\n \"navy\": [0, 0, 128],\n \"oldlace\": [253, 245, 230],\n \"olive\": [128, 128, 0],\n \"olivedrab\": [107, 142, 35],\n \"orange\": [255, 165, 0],\n \"orangered\": [255, 69, 0],\n \"orchid\": [218, 112, 214],\n \"palegoldenrod\": [238, 232, 170],\n \"palegreen\": [152, 251, 152],\n \"paleturquoise\": [175, 238, 238],\n \"palevioletred\": [219, 112, 147],\n \"papayawhip\": [255, 239, 213],\n \"peachpuff\": [255, 218, 185],\n \"peru\": [205, 133, 63],\n \"pink\": [255, 192, 203],\n \"plum\": [221, 160, 221],\n \"powderblue\": [176, 224, 230],\n \"purple\": [128, 0, 128],\n \"rebeccapurple\": [102, 51, 153],\n \"red\": [255, 0, 0],\n \"rosybrown\": [188, 143, 143],\n \"royalblue\": [65, 105, 225],\n \"saddlebrown\": [139, 69, 19],\n \"salmon\": [250, 128, 114],\n \"sandybrown\": [244, 164, 96],\n \"seagreen\": [46, 139, 87],\n \"seashell\": [255, 245, 238],\n \"sienna\": [160, 82, 45],\n \"silver\": [192, 192, 192],\n \"skyblue\": [135, 206, 235],\n \"slateblue\": [106, 90, 205],\n \"slategray\": [112, 128, 144],\n \"slategrey\": [112, 128, 144],\n \"snow\": [255, 250, 250],\n \"springgreen\": [0, 255, 127],\n \"steelblue\": [70, 130, 180],\n \"tan\": [210, 180, 140],\n \"teal\": [0, 128, 128],\n \"thistle\": [216, 191, 216],\n \"tomato\": [255, 99, 71],\n \"turquoise\": [64, 224, 208],\n \"violet\": [238, 130, 238],\n \"wheat\": [245, 222, 179],\n \"white\": [255, 255, 255],\n \"whitesmoke\": [245, 245, 245],\n \"yellow\": [255, 255, 0],\n \"yellowgreen\": [154, 205, 50] },\n\n E = N,\n R = Object.hasOwnProperty,\n P = Object.create(null);\n for (var U in L) R.call(L, U) && (P[L[U]] = U);\n var B = A.exports = {\n to: {},\n get: {} };\n\n function G(t, e, n) {\n return Math.min(Math.max(e, t), n);\n }\n function D(t) {\n var e = Math.round(t).toString(16).toUpperCase();\n return e.length < 2 ? \"0\" + e : e;\n }\n B.get = function (t) {\n var e, n;\n switch (t.substring(0, 3).toLowerCase()) {\n case \"hsl\":\n e = B.get.hsl(t), n = \"hsl\";\n break;\n case \"hwb\":\n e = B.get.hwb(t), n = \"hwb\";\n break;\n default:\n e = B.get.rgb(t), n = \"rgb\";}\n\n return e ? {\n model: n,\n value: e } :\n null;\n }, B.get.rgb = function (t) {\n if (!t) return null;\n var e,\n n,\n r,\n s = [0, 0, 0, 1];\n if (e = t.match(/^#([a-f0-9]{6})([a-f0-9]{2})?$/i)) {\n for (r = e[2], e = e[1], n = 0; n < 3; n++) {\n var i = 2 * n;\n s[n] = parseInt(e.slice(i, i + 2), 16);\n }\n r && (s[3] = parseInt(r, 16) / 255);\n } else if (e = t.match(/^#([a-f0-9]{3,4})$/i)) {\n for (r = (e = e[1])[3], n = 0; n < 3; n++) s[n] = parseInt(e[n] + e[n], 16);\n r && (s[3] = parseInt(r + r, 16) / 255);\n } else if (e = t.match(/^rgba?\\(\\s*([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/)) {\n for (n = 0; n < 3; n++) s[n] = parseInt(e[n + 1], 0);\n e[4] && (e[5] ? s[3] = .01 * parseFloat(e[4]) : s[3] = parseFloat(e[4]));\n } else {\n if (!(e = t.match(/^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/))) return (e = t.match(/^(\\w+)$/)) ? \"transparent\" === e[1] ? [0, 0, 0, 0] : R.call(L, e[1]) ? ((s = L[e[1]])[3] = 1, s) : null : null;\n for (n = 0; n < 3; n++) s[n] = Math.round(2.55 * parseFloat(e[n + 1]));\n e[4] && (e[5] ? s[3] = .01 * parseFloat(e[4]) : s[3] = parseFloat(e[4]));\n }\n for (n = 0; n < 3; n++) s[n] = G(s[n], 0, 255);\n return s[3] = G(s[3], 0, 1), s;\n }, B.get.hsl = function (t) {\n if (!t) return null;\n var e = 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*)?\\)$/);\n if (e) {\n var n = parseFloat(e[4]);\n return [(parseFloat(e[1]) % 360 + 360) % 360, G(parseFloat(e[2]), 0, 100), G(parseFloat(e[3]), 0, 100), G(isNaN(n) ? 1 : n, 0, 1)];\n }\n return null;\n }, B.get.hwb = function (t) {\n if (!t) return null;\n var e = 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*)?\\)$/);\n if (e) {\n var n = parseFloat(e[4]);\n return [(parseFloat(e[1]) % 360 + 360) % 360, G(parseFloat(e[2]), 0, 100), G(parseFloat(e[3]), 0, 100), G(isNaN(n) ? 1 : n, 0, 1)];\n }\n return null;\n }, B.to.hex = function () {\n var t = E(arguments);\n return \"#\" + D(t[0]) + D(t[1]) + D(t[2]) + (t[3] < 1 ? D(Math.round(255 * t[3])) : \"\");\n }, B.to.rgb = function () {\n var t = E(arguments);\n 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] + \")\";\n }, B.to.rgb.percent = function () {\n var t = E(arguments),\n e = Math.round(t[0] / 255 * 100),\n n = Math.round(t[1] / 255 * 100),\n r = Math.round(t[2] / 255 * 100);\n return t.length < 4 || 1 === t[3] ? \"rgb(\" + e + \"%, \" + n + \"%, \" + r + \"%)\" : \"rgba(\" + e + \"%, \" + n + \"%, \" + r + \"%, \" + t[3] + \")\";\n }, B.to.hsl = function () {\n var t = E(arguments);\n return t.length < 4 || 1 === t[3] ? \"hsl(\" + t[0] + \", \" + t[1] + \"%, \" + t[2] + \"%)\" : \"hsla(\" + t[0] + \", \" + t[1] + \"%, \" + t[2] + \"%, \" + t[3] + \")\";\n }, B.to.hwb = function () {\n var t = E(arguments),\n e = \"\";\n return t.length >= 4 && 1 !== t[3] && (e = \", \" + t[3]), \"hwb(\" + t[0] + \", \" + t[1] + \"%, \" + t[2] + \"%\" + e + \")\";\n }, B.to.keyword = function (t) {\n return P[t.slice(0, 3)];\n };\n var F = A.exports,\n j = {\n exports: {} },\n\n z = {\n \"aliceblue\": [240, 248, 255],\n \"antiquewhite\": [250, 235, 215],\n \"aqua\": [0, 255, 255],\n \"aquamarine\": [127, 255, 212],\n \"azure\": [240, 255, 255],\n \"beige\": [245, 245, 220],\n \"bisque\": [255, 228, 196],\n \"black\": [0, 0, 0],\n \"blanchedalmond\": [255, 235, 205],\n \"blue\": [0, 0, 255],\n \"blueviolet\": [138, 43, 226],\n \"brown\": [165, 42, 42],\n \"burlywood\": [222, 184, 135],\n \"cadetblue\": [95, 158, 160],\n \"chartreuse\": [127, 255, 0],\n \"chocolate\": [210, 105, 30],\n \"coral\": [255, 127, 80],\n \"cornflowerblue\": [100, 149, 237],\n \"cornsilk\": [255, 248, 220],\n \"crimson\": [220, 20, 60],\n \"cyan\": [0, 255, 255],\n \"darkblue\": [0, 0, 139],\n \"darkcyan\": [0, 139, 139],\n \"darkgoldenrod\": [184, 134, 11],\n \"darkgray\": [169, 169, 169],\n \"darkgreen\": [0, 100, 0],\n \"darkgrey\": [169, 169, 169],\n \"darkkhaki\": [189, 183, 107],\n \"darkmagenta\": [139, 0, 139],\n \"darkolivegreen\": [85, 107, 47],\n \"darkorange\": [255, 140, 0],\n \"darkorchid\": [153, 50, 204],\n \"darkred\": [139, 0, 0],\n \"darksalmon\": [233, 150, 122],\n \"darkseagreen\": [143, 188, 143],\n \"darkslateblue\": [72, 61, 139],\n \"darkslategray\": [47, 79, 79],\n \"darkslategrey\": [47, 79, 79],\n \"darkturquoise\": [0, 206, 209],\n \"darkviolet\": [148, 0, 211],\n \"deeppink\": [255, 20, 147],\n \"deepskyblue\": [0, 191, 255],\n \"dimgray\": [105, 105, 105],\n \"dimgrey\": [105, 105, 105],\n \"dodgerblue\": [30, 144, 255],\n \"firebrick\": [178, 34, 34],\n \"floralwhite\": [255, 250, 240],\n \"forestgreen\": [34, 139, 34],\n \"fuchsia\": [255, 0, 255],\n \"gainsboro\": [220, 220, 220],\n \"ghostwhite\": [248, 248, 255],\n \"gold\": [255, 215, 0],\n \"goldenrod\": [218, 165, 32],\n \"gray\": [128, 128, 128],\n \"green\": [0, 128, 0],\n \"greenyellow\": [173, 255, 47],\n \"grey\": [128, 128, 128],\n \"honeydew\": [240, 255, 240],\n \"hotpink\": [255, 105, 180],\n \"indianred\": [205, 92, 92],\n \"indigo\": [75, 0, 130],\n \"ivory\": [255, 255, 240],\n \"khaki\": [240, 230, 140],\n \"lavender\": [230, 230, 250],\n \"lavenderblush\": [255, 240, 245],\n \"lawngreen\": [124, 252, 0],\n \"lemonchiffon\": [255, 250, 205],\n \"lightblue\": [173, 216, 230],\n \"lightcoral\": [240, 128, 128],\n \"lightcyan\": [224, 255, 255],\n \"lightgoldenrodyellow\": [250, 250, 210],\n \"lightgray\": [211, 211, 211],\n \"lightgreen\": [144, 238, 144],\n \"lightgrey\": [211, 211, 211],\n \"lightpink\": [255, 182, 193],\n \"lightsalmon\": [255, 160, 122],\n \"lightseagreen\": [32, 178, 170],\n \"lightskyblue\": [135, 206, 250],\n \"lightslategray\": [119, 136, 153],\n \"lightslategrey\": [119, 136, 153],\n \"lightsteelblue\": [176, 196, 222],\n \"lightyellow\": [255, 255, 224],\n \"lime\": [0, 255, 0],\n \"limegreen\": [50, 205, 50],\n \"linen\": [250, 240, 230],\n \"magenta\": [255, 0, 255],\n \"maroon\": [128, 0, 0],\n \"mediumaquamarine\": [102, 205, 170],\n \"mediumblue\": [0, 0, 205],\n \"mediumorchid\": [186, 85, 211],\n \"mediumpurple\": [147, 112, 219],\n \"mediumseagreen\": [60, 179, 113],\n \"mediumslateblue\": [123, 104, 238],\n \"mediumspringgreen\": [0, 250, 154],\n \"mediumturquoise\": [72, 209, 204],\n \"mediumvioletred\": [199, 21, 133],\n \"midnightblue\": [25, 25, 112],\n \"mintcream\": [245, 255, 250],\n \"mistyrose\": [255, 228, 225],\n \"moccasin\": [255, 228, 181],\n \"navajowhite\": [255, 222, 173],\n \"navy\": [0, 0, 128],\n \"oldlace\": [253, 245, 230],\n \"olive\": [128, 128, 0],\n \"olivedrab\": [107, 142, 35],\n \"orange\": [255, 165, 0],\n \"orangered\": [255, 69, 0],\n \"orchid\": [218, 112, 214],\n \"palegoldenrod\": [238, 232, 170],\n \"palegreen\": [152, 251, 152],\n \"paleturquoise\": [175, 238, 238],\n \"palevioletred\": [219, 112, 147],\n \"papayawhip\": [255, 239, 213],\n \"peachpuff\": [255, 218, 185],\n \"peru\": [205, 133, 63],\n \"pink\": [255, 192, 203],\n \"plum\": [221, 160, 221],\n \"powderblue\": [176, 224, 230],\n \"purple\": [128, 0, 128],\n \"rebeccapurple\": [102, 51, 153],\n \"red\": [255, 0, 0],\n \"rosybrown\": [188, 143, 143],\n \"royalblue\": [65, 105, 225],\n \"saddlebrown\": [139, 69, 19],\n \"salmon\": [250, 128, 114],\n \"sandybrown\": [244, 164, 96],\n \"seagreen\": [46, 139, 87],\n \"seashell\": [255, 245, 238],\n \"sienna\": [160, 82, 45],\n \"silver\": [192, 192, 192],\n \"skyblue\": [135, 206, 235],\n \"slateblue\": [106, 90, 205],\n \"slategray\": [112, 128, 144],\n \"slategrey\": [112, 128, 144],\n \"snow\": [255, 250, 250],\n \"springgreen\": [0, 255, 127],\n \"steelblue\": [70, 130, 180],\n \"tan\": [210, 180, 140],\n \"teal\": [0, 128, 128],\n \"thistle\": [216, 191, 216],\n \"tomato\": [255, 99, 71],\n \"turquoise\": [64, 224, 208],\n \"violet\": [238, 130, 238],\n \"wheat\": [245, 222, 179],\n \"white\": [255, 255, 255],\n \"whitesmoke\": [245, 245, 245],\n \"yellow\": [255, 255, 0],\n \"yellowgreen\": [154, 205, 50] },\n\n H = {};\n for (var q in z) z.hasOwnProperty(q) && (H[z[q]] = q);\n var $ = j.exports = {\n rgb: {\n channels: 3,\n labels: \"rgb\" },\n\n hsl: {\n channels: 3,\n labels: \"hsl\" },\n\n hsv: {\n channels: 3,\n labels: \"hsv\" },\n\n hwb: {\n channels: 3,\n labels: \"hwb\" },\n\n cmyk: {\n channels: 4,\n labels: \"cmyk\" },\n\n xyz: {\n channels: 3,\n labels: \"xyz\" },\n\n lab: {\n channels: 3,\n labels: \"lab\" },\n\n lch: {\n channels: 3,\n labels: \"lch\" },\n\n hex: {\n channels: 1,\n labels: [\"hex\"] },\n\n keyword: {\n channels: 1,\n labels: [\"keyword\"] },\n\n ansi16: {\n channels: 1,\n labels: [\"ansi16\"] },\n\n ansi256: {\n channels: 1,\n labels: [\"ansi256\"] },\n\n hcg: {\n channels: 3,\n labels: [\"h\", \"c\", \"g\"] },\n\n apple: {\n channels: 3,\n labels: [\"r16\", \"g16\", \"b16\"] },\n\n gray: {\n channels: 1,\n labels: [\"gray\"] } };\n\n\n for (var V in $) if ($.hasOwnProperty(V)) {\n if (!(\"channels\" in $[V])) throw new Error(\"missing channels property: \" + V);\n if (!(\"labels\" in $[V])) throw new Error(\"missing channel labels property: \" + V);\n if ($[V].labels.length !== $[V].channels) throw new Error(\"channel and label counts mismatch: \" + V);\n var J = $[V].channels,\n Y = $[V].labels;\n delete $[V].channels, delete $[V].labels, Object.defineProperty($[V], \"channels\", {\n value: J }),\n Object.defineProperty($[V], \"labels\", {\n value: Y });\n\n }\n $.rgb.hsl = function (t) {\n var e,\n n,\n r = t[0] / 255,\n s = t[1] / 255,\n i = t[2] / 255,\n o = Math.min(r, s, i),\n a = Math.max(r, s, i),\n c = a - o;\n return a === o ? e = 0 : r === a ? e = (s - i) / c : s === a ? e = 2 + (i - r) / c : i === a && (e = 4 + (r - s) / c), (e = Math.min(60 * e, 360)) < 0 && (e += 360), n = (o + a) / 2, [e, 100 * (a === o ? 0 : n <= .5 ? c / (a + o) : c / (2 - a - o)), 100 * n];\n }, $.rgb.hsv = function (t) {\n var e,\n n,\n r,\n s,\n i,\n o = t[0] / 255,\n a = t[1] / 255,\n c = t[2] / 255,\n l = Math.max(o, a, c),\n h = l - Math.min(o, a, c),\n u = function u(t) {\n return (l - t) / 6 / h + .5;\n };\n return 0 === h ? s = i = 0 : (i = h / l, e = u(o), n = u(a), r = u(c), o === l ? s = r - n : a === l ? s = 1 / 3 + e - r : c === l && (s = 2 / 3 + n - e), s < 0 ? s += 1 : s > 1 && (s -= 1)), [360 * s, 100 * i, 100 * l];\n }, $.rgb.hwb = function (t) {\n var e = t[0],\n n = t[1],\n r = t[2];\n return [$.rgb.hsl(t)[0], 100 * (1 / 255 * Math.min(e, Math.min(n, r))), 100 * (r = 1 - 1 / 255 * Math.max(e, Math.max(n, r)))];\n }, $.rgb.cmyk = function (t) {\n var e,\n n = t[0] / 255,\n r = t[1] / 255,\n s = t[2] / 255;\n return [100 * ((1 - n - (e = Math.min(1 - n, 1 - r, 1 - s))) / (1 - e) || 0), 100 * ((1 - r - e) / (1 - e) || 0), 100 * ((1 - s - e) / (1 - e) || 0), 100 * e];\n }, $.rgb.keyword = function (t) {\n var e = H[t];\n if (e) return e;\n var n,\n r,\n s,\n i = 1 / 0;\n for (var o in z) if (z.hasOwnProperty(o)) {\n var a = z[o],\n c = (r = t, s = a, Math.pow(r[0] - s[0], 2) + Math.pow(r[1] - s[1], 2) + Math.pow(r[2] - s[2], 2));\n c < i && (i = c, n = o);\n }\n return n;\n }, $.keyword.rgb = function (t) {\n return z[t];\n }, $.rgb.xyz = function (t) {\n var e = t[0] / 255,\n n = t[1] / 255,\n r = t[2] / 255;\n return [100 * (.4124 * (e = e > .04045 ? Math.pow((e + .055) / 1.055, 2.4) : e / 12.92) + .3576 * (n = n > .04045 ? Math.pow((n + .055) / 1.055, 2.4) : n / 12.92) + .1805 * (r = r > .04045 ? Math.pow((r + .055) / 1.055, 2.4) : r / 12.92)), 100 * (.2126 * e + .7152 * n + .0722 * r), 100 * (.0193 * e + .1192 * n + .9505 * r)];\n }, $.rgb.lab = function (t) {\n var e = $.rgb.xyz(t),\n n = e[0],\n r = e[1],\n s = e[2];\n return r /= 100, s /= 108.883, n = (n /= 95.047) > .008856 ? Math.pow(n, 1 / 3) : 7.787 * n + 16 / 116, [116 * (r = r > .008856 ? Math.pow(r, 1 / 3) : 7.787 * r + 16 / 116) - 16, 500 * (n - r), 200 * (r - (s = s > .008856 ? Math.pow(s, 1 / 3) : 7.787 * s + 16 / 116))];\n }, $.hsl.rgb = function (t) {\n var e,\n n,\n r,\n s,\n i,\n o = t[0] / 360,\n a = t[1] / 100,\n c = t[2] / 100;\n if (0 === a) return [i = 255 * c, i, i];\n e = 2 * c - (n = c < .5 ? c * (1 + a) : c + a - c * a), s = [0, 0, 0];\n for (var l = 0; l < 3; l++) (r = o + 1 / 3 * -(l - 1)) < 0 && r++, r > 1 && r--, i = 6 * r < 1 ? e + 6 * (n - e) * r : 2 * r < 1 ? n : 3 * r < 2 ? e + (n - e) * (2 / 3 - r) * 6 : e, s[l] = 255 * i;\n return s;\n }, $.hsl.hsv = function (t) {\n var e = t[0],\n n = t[1] / 100,\n r = t[2] / 100,\n s = n,\n i = Math.max(r, .01);\n return n *= (r *= 2) <= 1 ? r : 2 - r, s *= i <= 1 ? i : 2 - i, [e, 100 * (0 === r ? 2 * s / (i + s) : 2 * n / (r + n)), 100 * ((r + n) / 2)];\n }, $.hsv.rgb = function (t) {\n var e = t[0] / 60,\n n = t[1] / 100,\n r = t[2] / 100,\n s = Math.floor(e) % 6,\n i = e - Math.floor(e),\n o = 255 * r * (1 - n),\n a = 255 * r * (1 - n * i),\n c = 255 * r * (1 - n * (1 - i));\n switch (r *= 255, s) {\n case 0:\n return [r, c, o];\n case 1:\n return [a, r, o];\n case 2:\n return [o, r, c];\n case 3:\n return [o, a, r];\n case 4:\n return [c, o, r];\n case 5:\n return [r, o, a];}\n\n }, $.hsv.hsl = function (t) {\n var e,\n n,\n r,\n s = t[0],\n i = t[1] / 100,\n o = t[2] / 100,\n a = Math.max(o, .01);\n return r = (2 - i) * o, n = i * a, [s, 100 * (n = (n /= (e = (2 - i) * a) <= 1 ? e : 2 - e) || 0), 100 * (r /= 2)];\n }, $.hwb.rgb = function (t) {\n var e,\n n,\n r,\n s,\n i,\n o,\n a,\n c = t[0] / 360,\n l = t[1] / 100,\n h = t[2] / 100,\n u = l + h;\n switch (u > 1 && (l /= u, h /= u), r = 6 * c - (e = Math.floor(6 * c)), 1 & e && (r = 1 - r), s = l + r * ((n = 1 - h) - l), e) {\n default:\n case 6:\n case 0:\n i = n, o = s, a = l;\n break;\n case 1:\n i = s, o = n, a = l;\n break;\n case 2:\n i = l, o = n, a = s;\n break;\n case 3:\n i = l, o = s, a = n;\n break;\n case 4:\n i = s, o = l, a = n;\n break;\n case 5:\n i = n, o = l, a = s;}\n\n return [255 * i, 255 * o, 255 * a];\n }, $.cmyk.rgb = function (t) {\n var e = t[0] / 100,\n n = t[1] / 100,\n r = t[2] / 100,\n s = t[3] / 100;\n return [255 * (1 - Math.min(1, e * (1 - s) + s)), 255 * (1 - Math.min(1, n * (1 - s) + s)), 255 * (1 - Math.min(1, r * (1 - s) + s))];\n }, $.xyz.rgb = function (t) {\n var e,\n n,\n r,\n s = t[0] / 100,\n i = t[1] / 100,\n o = t[2] / 100;\n return n = -.9689 * s + 1.8758 * i + .0415 * o, r = .0557 * s + -.204 * i + 1.057 * o, e = (e = 3.2406 * s + -1.5372 * i + -.4986 * o) > .0031308 ? 1.055 * Math.pow(e, 1 / 2.4) - .055 : 12.92 * e, n = n > .0031308 ? 1.055 * Math.pow(n, 1 / 2.4) - .055 : 12.92 * n, r = r > .0031308 ? 1.055 * Math.pow(r, 1 / 2.4) - .055 : 12.92 * r, [255 * (e = Math.min(Math.max(0, e), 1)), 255 * (n = Math.min(Math.max(0, n), 1)), 255 * (r = Math.min(Math.max(0, r), 1))];\n }, $.xyz.lab = function (t) {\n var e = t[0],\n n = t[1],\n r = t[2];\n return n /= 100, r /= 108.883, e = (e /= 95.047) > .008856 ? Math.pow(e, 1 / 3) : 7.787 * e + 16 / 116, [116 * (n = n > .008856 ? Math.pow(n, 1 / 3) : 7.787 * n + 16 / 116) - 16, 500 * (e - n), 200 * (n - (r = r > .008856 ? Math.pow(r, 1 / 3) : 7.787 * r + 16 / 116))];\n }, $.lab.xyz = function (t) {\n var e,\n n,\n r,\n s = t[0];\n e = t[1] / 500 + (n = (s + 16) / 116), r = n - t[2] / 200;\n var i = Math.pow(n, 3),\n o = Math.pow(e, 3),\n a = Math.pow(r, 3);\n return n = i > .008856 ? i : (n - 16 / 116) / 7.787, e = o > .008856 ? o : (e - 16 / 116) / 7.787, r = a > .008856 ? a : (r - 16 / 116) / 7.787, [e *= 95.047, n *= 100, r *= 108.883];\n }, $.lab.lch = function (t) {\n var e,\n n = t[0],\n r = t[1],\n s = t[2];\n return (e = 360 * Math.atan2(s, r) / 2 / Math.PI) < 0 && (e += 360), [n, Math.sqrt(r * r + s * s), e];\n }, $.lch.lab = function (t) {\n var e,\n n = t[0],\n r = t[1];\n return e = t[2] / 360 * 2 * Math.PI, [n, r * Math.cos(e), r * Math.sin(e)];\n }, $.rgb.ansi16 = function (t) {\n var e = t[0],\n n = t[1],\n r = t[2],\n s = 1 in arguments ? arguments[1] : $.rgb.hsv(t)[2];\n if (0 === (s = Math.round(s / 50))) return 30;\n var i = 30 + (Math.round(r / 255) << 2 | Math.round(n / 255) << 1 | Math.round(e / 255));\n return 2 === s && (i += 60), i;\n }, $.hsv.ansi16 = function (t) {\n return $.rgb.ansi16($.hsv.rgb(t), t[2]);\n }, $.rgb.ansi256 = function (t) {\n var e = t[0],\n n = t[1],\n r = t[2];\n return e === n && n === r ? e < 8 ? 16 : e > 248 ? 231 : Math.round((e - 8) / 247 * 24) + 232 : 16 + 36 * Math.round(e / 255 * 5) + 6 * Math.round(n / 255 * 5) + Math.round(r / 255 * 5);\n }, $.ansi16.rgb = function (t) {\n var e = t % 10;\n if (0 === e || 7 === e) return t > 50 && (e += 3.5), [e = e / 10.5 * 255, e, e];\n var n = .5 * (1 + ~~(t > 50));\n return [(1 & e) * n * 255, (e >> 1 & 1) * n * 255, (e >> 2 & 1) * n * 255];\n }, $.ansi256.rgb = function (t) {\n if (t >= 232) {\n var e = 10 * (t - 232) + 8;\n return [e, e, e];\n }\n var n;\n return t -= 16, [Math.floor(t / 36) / 5 * 255, Math.floor((n = t % 36) / 6) / 5 * 255, n % 6 / 5 * 255];\n }, $.rgb.hex = function (t) {\n var e = (((255 & Math.round(t[0])) << 16) + ((255 & Math.round(t[1])) << 8) + (255 & Math.round(t[2]))).toString(16).toUpperCase();\n return \"000000\".substring(e.length) + e;\n }, $.hex.rgb = function (t) {\n var e = t.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n if (!e) return [0, 0, 0];\n var n = e[0];\n 3 === e[0].length && (n = n.split(\"\").map(function (t) {\n return t + t;\n }).join(\"\"));\n var r = parseInt(n, 16);\n return [r >> 16 & 255, r >> 8 & 255, 255 & r];\n }, $.rgb.hcg = function (t) {\n var e,\n n = t[0] / 255,\n r = t[1] / 255,\n s = t[2] / 255,\n i = Math.max(Math.max(n, r), s),\n o = Math.min(Math.min(n, r), s),\n a = i - o;\n return e = a <= 0 ? 0 : i === n ? (r - s) / a % 6 : i === r ? 2 + (s - n) / a : 4 + (n - r) / a + 4, e /= 6, [360 * (e %= 1), 100 * a, 100 * (a < 1 ? o / (1 - a) : 0)];\n }, $.hsl.hcg = function (t) {\n var e = t[1] / 100,\n n = t[2] / 100,\n r = 1,\n s = 0;\n return (r = n < .5 ? 2 * e * n : 2 * e * (1 - n)) < 1 && (s = (n - .5 * r) / (1 - r)), [t[0], 100 * r, 100 * s];\n }, $.hsv.hcg = function (t) {\n var e = t[1] / 100,\n n = t[2] / 100,\n r = e * n,\n s = 0;\n return r < 1 && (s = (n - r) / (1 - r)), [t[0], 100 * r, 100 * s];\n }, $.hcg.rgb = function (t) {\n var e = t[0] / 360,\n n = t[1] / 100,\n r = t[2] / 100;\n if (0 === n) return [255 * r, 255 * r, 255 * r];\n var s,\n i = [0, 0, 0],\n o = e % 1 * 6,\n a = o % 1,\n c = 1 - a;\n switch (Math.floor(o)) {\n case 0:\n i[0] = 1, i[1] = a, i[2] = 0;\n break;\n case 1:\n i[0] = c, i[1] = 1, i[2] = 0;\n break;\n case 2:\n i[0] = 0, i[1] = 1, i[2] = a;\n break;\n case 3:\n i[0] = 0, i[1] = c, i[2] = 1;\n break;\n case 4:\n i[0] = a, i[1] = 0, i[2] = 1;\n break;\n default:\n i[0] = 1, i[1] = 0, i[2] = c;}\n\n return s = (1 - n) * r, [255 * (n * i[0] + s), 255 * (n * i[1] + s), 255 * (n * i[2] + s)];\n }, $.hcg.hsv = function (t) {\n var e = t[1] / 100,\n n = e + t[2] / 100 * (1 - e),\n r = 0;\n return n > 0 && (r = e / n), [t[0], 100 * r, 100 * n];\n }, $.hcg.hsl = function (t) {\n var e = t[1] / 100,\n n = t[2] / 100 * (1 - e) + .5 * e,\n r = 0;\n return n > 0 && n < .5 ? r = e / (2 * n) : n >= .5 && n < 1 && (r = e / (2 * (1 - n))), [t[0], 100 * r, 100 * n];\n }, $.hcg.hwb = function (t) {\n var e = t[1] / 100,\n n = e + t[2] / 100 * (1 - e);\n return [t[0], 100 * (n - e), 100 * (1 - n)];\n }, $.hwb.hcg = function (t) {\n var e = t[1] / 100,\n n = 1 - t[2] / 100,\n r = n - e,\n s = 0;\n return r < 1 && (s = (n - r) / (1 - r)), [t[0], 100 * r, 100 * s];\n }, $.apple.rgb = function (t) {\n return [t[0] / 65535 * 255, t[1] / 65535 * 255, t[2] / 65535 * 255];\n }, $.rgb.apple = function (t) {\n return [t[0] / 255 * 65535, t[1] / 255 * 65535, t[2] / 255 * 65535];\n }, $.gray.rgb = function (t) {\n return [t[0] / 100 * 255, t[0] / 100 * 255, t[0] / 100 * 255];\n }, $.gray.hsl = $.gray.hsv = function (t) {\n return [0, 0, t[0]];\n }, $.gray.hwb = function (t) {\n return [0, 100, t[0]];\n }, $.gray.cmyk = function (t) {\n return [0, 0, 0, t[0]];\n }, $.gray.lab = function (t) {\n return [t[0], 0, 0];\n }, $.gray.hex = function (t) {\n var e = 255 & Math.round(t[0] / 100 * 255),\n n = ((e << 16) + (e << 8) + e).toString(16).toUpperCase();\n return \"000000\".substring(n.length) + n;\n }, $.rgb.gray = function (t) {\n return [(t[0] + t[1] + t[2]) / 3 / 255 * 100];\n };\n var Z = j.exports,\n K = Z;\n function X(t) {\n var e = function () {\n for (var t = {}, e = Object.keys(K), n = e.length, r = 0; r < n; r++) t[e[r]] = {\n distance: -1,\n parent: null };\n\n return t;\n }(),\n n = [t];\n for (e[t].distance = 0; n.length;) for (var r = n.pop(), s = Object.keys(K[r]), i = s.length, o = 0; o < i; o++) {\n var a = s[o],\n c = e[a];\n -1 === c.distance && (c.distance = e[r].distance + 1, c.parent = r, n.unshift(a));\n }\n return e;\n }\n function W(t, e) {\n return function (n) {\n return e(t(n));\n };\n }\n function Q(t, e) {\n for (var n = [e[t].parent, t], r = K[e[t].parent][t], s = e[t].parent; e[s].parent;) n.unshift(e[s].parent), r = W(K[e[s].parent][s], r), s = e[s].parent;\n return r.conversion = n, r;\n }\n var tt = Z,\n et = function et(t) {\n for (var e = X(t), n = {}, r = Object.keys(e), s = r.length, i = 0; i < s; i++) {\n var o = r[i];\n null !== e[o].parent && (n[o] = Q(o, e));\n }\n return n;\n },\n nt = {};\n Object.keys(tt).forEach(function (t) {\n nt[t] = {}, Object.defineProperty(nt[t], \"channels\", {\n value: tt[t].channels }),\n Object.defineProperty(nt[t], \"labels\", {\n value: tt[t].labels });\n\n var e = et(t);\n Object.keys(e).forEach(function (n) {\n var r = e[n];\n nt[t][n] = function (t) {\n var e = function e(_e2) {\n if (null == _e2) return _e2;\n arguments.length > 1 && (_e2 = Array.prototype.slice.call(arguments));\n var n = t(_e2);\n if (\"object\" == _typeof(n)) for (var r = n.length, s = 0; s < r; s++) n[s] = Math.round(n[s]);\n return n;\n };\n return \"conversion\" in t && (e.conversion = t.conversion), e;\n }(r), nt[t][n].raw = function (t) {\n var e = function e(_e3) {\n return null == _e3 ? _e3 : (arguments.length > 1 && (_e3 = Array.prototype.slice.call(arguments)), t(_e3));\n };\n return \"conversion\" in t && (e.conversion = t.conversion), e;\n }(r);\n });\n });\n var rt = F,\n st = nt,\n it = [].slice,\n ot = [\"keyword\", \"gray\", \"hex\"],\n at = {};\n Object.keys(st).forEach(function (t) {\n at[it.call(st[t].labels).sort().join(\"\")] = t;\n });\n var ct = {};\n function lt(t, e) {\n if (!(this instanceof lt)) return new lt(t, e);\n if (e && e in ot && (e = null), e && !(e in st)) throw new Error(\"Unknown model: \" + e);\n var n, r;\n if (null == t) this.model = \"rgb\", this.color = [0, 0, 0], this.valpha = 1;else if (t instanceof lt) this.model = t.model, this.color = t.color.slice(), this.valpha = t.valpha;else if (\"string\" == typeof t) {\n var s = rt.get(t);\n if (null === s) throw new Error(\"Unable to parse color from string: \" + t);\n this.model = s.model, r = st[this.model].channels, this.color = s.value.slice(0, r), this.valpha = \"number\" == typeof s.value[r] ? s.value[r] : 1;\n } else if (t.length) {\n this.model = e || \"rgb\", r = st[this.model].channels;\n var i = it.call(t, 0, r);\n this.color = ft(i, r), this.valpha = \"number\" == typeof t[r] ? t[r] : 1;\n } else if (\"number\" == typeof t) t &= 16777215, this.model = \"rgb\", this.color = [t >> 16 & 255, t >> 8 & 255, 255 & t], this.valpha = 1;else {\n this.valpha = 1;\n var o = Object.keys(t);\n \"alpha\" in t && (o.splice(o.indexOf(\"alpha\"), 1), this.valpha = \"number\" == typeof t.alpha ? t.alpha : 0);\n var a = o.sort().join(\"\");\n if (!(a in at)) throw new Error(\"Unable to parse color from object: \" + JSON.stringify(t));\n this.model = at[a];\n var c = st[this.model].labels,\n l = [];\n for (n = 0; n < c.length; n++) l.push(t[c[n]]);\n this.color = ft(l);\n }\n if (ct[this.model]) for (r = st[this.model].channels, n = 0; n < r; n++) {\n var h = ct[this.model][n];\n h && (this.color[n] = h(this.color[n]));\n }\n this.valpha = Math.max(0, Math.min(1, this.valpha)), Object.freeze && Object.freeze(this);\n }\n function ht(t, e, n) {\n return (t = Array.isArray(t) ? t : [t]).forEach(function (t) {\n (ct[t] || (ct[t] = []))[e] = n;\n }), t = t[0], function (r) {\n var s;\n return arguments.length ? (n && (r = n(r)), (s = this[t]()).color[e] = r, s) : (s = this[t]().color[e], n && (s = n(s)), s);\n };\n }\n function ut(t) {\n return function (e) {\n return Math.max(0, Math.min(t, e));\n };\n }\n function ft(t, e) {\n for (var n = 0; n < e; n++) \"number\" != typeof t[n] && (t[n] = 0);\n return t;\n }\n lt.prototype = {\n toString: function toString() {\n return this.string();\n },\n toJSON: function toJSON() {\n return this[this.model]();\n },\n string: function string(t) {\n var e = this.model in rt.to ? this : this.rgb(),\n n = 1 === (e = e.round(\"number\" == typeof t ? t : 1)).valpha ? e.color : e.color.concat(this.valpha);\n return rt.to[e.model](n);\n },\n percentString: function percentString(t) {\n var e = this.rgb().round(\"number\" == typeof t ? t : 1),\n n = 1 === e.valpha ? e.color : e.color.concat(this.valpha);\n return rt.to.rgb.percent(n);\n },\n array: function array() {\n return 1 === this.valpha ? this.color.slice() : this.color.concat(this.valpha);\n },\n object: function object() {\n for (var t = {}, e = st[this.model].channels, n = st[this.model].labels, r = 0; r < e; r++) t[n[r]] = this.color[r];\n return 1 !== this.valpha && (t.alpha = this.valpha), t;\n },\n unitArray: function unitArray() {\n var t = this.rgb().color;\n return t[0] /= 255, t[1] /= 255, t[2] /= 255, 1 !== this.valpha && t.push(this.valpha), t;\n },\n unitObject: function unitObject() {\n var t = this.rgb().object();\n return t.r /= 255, t.g /= 255, t.b /= 255, 1 !== this.valpha && (t.alpha = this.valpha), t;\n },\n round: function round(t) {\n return t = Math.max(t || 0, 0), new lt(this.color.map(function (t) {\n return function (e) {\n return function (t, e) {\n return Number(t.toFixed(e));\n }(e, t);\n };\n }(t)).concat(this.valpha), this.model);\n },\n alpha: function alpha(t) {\n return arguments.length ? new lt(this.color.concat(Math.max(0, Math.min(1, t))), this.model) : this.valpha;\n },\n red: ht(\"rgb\", 0, ut(255)),\n green: ht(\"rgb\", 1, ut(255)),\n blue: ht(\"rgb\", 2, ut(255)),\n hue: ht([\"hsl\", \"hsv\", \"hsl\", \"hwb\", \"hcg\"], 0, function (t) {\n return (t % 360 + 360) % 360;\n }),\n saturationl: ht(\"hsl\", 1, ut(100)),\n lightness: ht(\"hsl\", 2, ut(100)),\n saturationv: ht(\"hsv\", 1, ut(100)),\n value: ht(\"hsv\", 2, ut(100)),\n chroma: ht(\"hcg\", 1, ut(100)),\n gray: ht(\"hcg\", 2, ut(100)),\n white: ht(\"hwb\", 1, ut(100)),\n wblack: ht(\"hwb\", 2, ut(100)),\n cyan: ht(\"cmyk\", 0, ut(100)),\n magenta: ht(\"cmyk\", 1, ut(100)),\n yellow: ht(\"cmyk\", 2, ut(100)),\n black: ht(\"cmyk\", 3, ut(100)),\n x: ht(\"xyz\", 0, ut(100)),\n y: ht(\"xyz\", 1, ut(100)),\n z: ht(\"xyz\", 2, ut(100)),\n l: ht(\"lab\", 0, ut(100)),\n a: ht(\"lab\", 1),\n b: ht(\"lab\", 2),\n keyword: function keyword(t) {\n return arguments.length ? new lt(t) : st[this.model].keyword(this.color);\n },\n hex: function hex(t) {\n return arguments.length ? new lt(t) : rt.to.hex(this.rgb().round().color);\n },\n rgbNumber: function rgbNumber() {\n var t = this.rgb().color;\n return (255 & t[0]) << 16 | (255 & t[1]) << 8 | 255 & t[2];\n },\n luminosity: function luminosity() {\n for (var t = this.rgb().color, e = [], n = 0; n < t.length; n++) {\n var r = t[n] / 255;\n e[n] = r <= .03928 ? r / 12.92 : Math.pow((r + .055) / 1.055, 2.4);\n }\n return .2126 * e[0] + .7152 * e[1] + .0722 * e[2];\n },\n contrast: function contrast(t) {\n var e = this.luminosity(),\n n = t.luminosity();\n return e > n ? (e + .05) / (n + .05) : (n + .05) / (e + .05);\n },\n level: function level(t) {\n var e = this.contrast(t);\n return e >= 7.1 ? \"AAA\" : e >= 4.5 ? \"AA\" : \"\";\n },\n isDark: function isDark() {\n var t = this.rgb().color;\n return (299 * t[0] + 587 * t[1] + 114 * t[2]) / 1e3 < 128;\n },\n isLight: function isLight() {\n return !this.isDark();\n },\n negate: function negate() {\n for (var t = this.rgb(), e = 0; e < 3; e++) t.color[e] = 255 - t.color[e];\n return t;\n },\n lighten: function lighten(t) {\n var e = this.hsl();\n return e.color[2] += e.color[2] * t, e;\n },\n darken: function darken(t) {\n var e = this.hsl();\n return e.color[2] -= e.color[2] * t, e;\n },\n saturate: function saturate(t) {\n var e = this.hsl();\n return e.color[1] += e.color[1] * t, e;\n },\n desaturate: function desaturate(t) {\n var e = this.hsl();\n return e.color[1] -= e.color[1] * t, e;\n },\n whiten: function whiten(t) {\n var e = this.hwb();\n return e.color[1] += e.color[1] * t, e;\n },\n blacken: function blacken(t) {\n var e = this.hwb();\n return e.color[2] += e.color[2] * t, e;\n },\n grayscale: function grayscale() {\n var t = this.rgb().color,\n e = .3 * t[0] + .59 * t[1] + .11 * t[2];\n return lt.rgb(e, e, e);\n },\n fade: function fade(t) {\n return this.alpha(this.valpha - this.valpha * t);\n },\n opaquer: function opaquer(t) {\n return this.alpha(this.valpha + this.valpha * t);\n },\n rotate: function rotate(t) {\n var e = this.hsl(),\n n = e.color[0];\n return n = (n = (n + t) % 360) < 0 ? 360 + n : n, e.color[0] = n, e;\n },\n mix: function mix(t, e) {\n if (!t || !t.rgb) throw new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + _typeof(t));\n var n = t.rgb(),\n r = this.rgb(),\n s = void 0 === e ? .5 : e,\n i = 2 * s - 1,\n o = n.alpha() - r.alpha(),\n a = ((i * o == -1 ? i : (i + o) / (1 + i * o)) + 1) / 2,\n c = 1 - a;\n return lt.rgb(a * n.red() + c * r.red(), a * n.green() + c * r.green(), a * n.blue() + c * r.blue(), n.alpha() * s + r.alpha() * (1 - s));\n } },\n Object.keys(st).forEach(function (t) {\n if (-1 === ot.indexOf(t)) {\n var e = st[t].channels;\n lt.prototype[t] = function () {\n if (this.model === t) return new lt(this);\n if (arguments.length) return new lt(arguments, t);\n var n,\n r = \"number\" == typeof arguments[e] ? e : this.valpha;\n return new lt((n = st[this.model][t].raw(this.color), Array.isArray(n) ? n : [n]).concat(r), t);\n }, lt[t] = function (n) {\n return \"number\" == typeof n && (n = ft(it.call(arguments), e)), new lt(n, t);\n };\n }\n });\n var dt = O(lt);\n function mt(t) {\n return null == t;\n }\n function pt(t) {\n for (var _e4 = 1; _e4 < arguments.length; _e4++) {\n var _n2 = arguments[_e4];\n for (var _e5 in _n2) t[_e5] = _n2[_e5];\n }\n return t;\n }\n function bt(t) {\n return null != t && (\"function\" == typeof t || null !== t.constructor && t.constructor === Function);\n }\n function yt(t) {\n return \"object\" == _typeof(t) && !!t;\n }\n function gt(t) {\n return \"number\" == typeof t && !isNaN(t);\n }\n function wt(t) {\n return t * Math.PI / 180;\n }\n function vt(t) {\n return t / Math.PI * 180;\n }\n function Tt(t) {\n var e = document.createElement(\"a\");\n return e.href = t, t = e.href, e = null, t;\n }\n function _t(t) {\n return Math.sign ? Math.sign(t) : 0 === (t = +t) || isNaN(t) ? Number(t) : t > 0 ? 1 : -1;\n }\n var Mt = [1, 1, 1, 1, 2, 2, 3, 0];\n function Ot(t) {\n var e = t.length;\n var n = \"\";\n for (var _r2 = 0; _r2 < e;) {\n var _s2 = t[_r2++];\n if (128 & _s2) {\n var _n3 = Mt[_s2 >> 3 & 7];\n if (!(64 & _s2) || !_n3 || _r2 + _n3 > e) return null;\n for (_s2 &= 63 >> _n3; _n3 > 0; _n3 -= 1) {\n var _e6 = t[_r2++];\n if (128 != (192 & _e6)) return null;\n _s2 = _s2 << 6 | 63 & _e6;\n }\n }\n n += String.fromCharCode(_s2);\n }\n return n;\n }\n function At(t, e, n) {\n return t[3 * n] = e[0], t[3 * n + 1] = e[1], t[3 * n + 2] = e[2], t;\n }\n function xt(t) {\n return t.flat ? t.flat(1 / 0) : t.reduce(function (t, e) {\n return t.concat(e);\n }, []);\n }\n function It(t) {\n return t < 256 ? Uint8Array : t < 65536 ? Uint16Array : Uint32Array;\n }\n function St(t) {\n return 0 === t.indexOf(\"data:\");\n }\n function Ct(t) {\n var e = t.indexOf(\"base64,\"),\n n = t.substring(e + 7),\n r = window.atob(n),\n s = r.length,\n i = new Uint8Array(s);\n for (var _t2 = 0; _t2 < s; _t2++) i[_t2] = r.charCodeAt(_t2);\n return i.buffer;\n }\n function kt(t) {\n for (var _e7 = 1; _e7 < arguments.length; _e7++) {\n var _n4 = arguments[_e7];\n if (_n4) for (var _e8 = 0, _r3 = _n4.length; _e8 < _r3; _e8++) t.push(_n4[_e8]);\n }\n return t.length;\n }\n var Nt = {};\n function Lt(t, e) {\n if (!Array.isArray(e)) {\n var _t3 = e;\n e = Nt[_t3] = Nt[_t3] || dt(e).array().map(function (t) {\n return t / 255;\n });\n }\n for (var _n5 = 0; _n5 < e.length; _n5++) t[_n5] = e[_n5];\n return 3 === e.length && (t[3] = 1), t;\n }\n var Et = exports.Geo3DTilesUtil = Object.freeze({\n __proto__: null,\n base64URLToArrayBuffer: Ct,\n extend: pt,\n flatArr: xt,\n getAbsoluteURL: Tt,\n getBatchIdArrayType: It,\n isBase64: St,\n isFunction: bt,\n isNil: mt,\n isNumber: gt,\n isObject: yt,\n normalizeColor: Lt,\n pushIn: kt,\n setColumn3: At,\n sign: _t,\n stringFromUTF8Array: Ot,\n toDegree: vt,\n toRadian: wt });\n\n function Rt(t) {\n return -1 === t.indexOf(\"http://\") && -1 === t.indexOf(\"https://\") && -1 === t.indexOf(\"file://\");\n }\n function Pt(t) {\n return (t = t || {}).referrerPolicy = t.referrerPolicy || \"origin\", t.referrer = window && window.location.href, t;\n }\n var Ut = function Ut() {\n if (\"undefined\" != typeof globalThis) return globalThis;\n if (\"undefined\" != typeof self) return self;\n if (\"undefined\" != typeof window) return window;\n if (\"undefined\" != typeof global) return global;\n throw new Error(\"unable to locate global object\");\n },\n Bt = Ut(),\n Gt = Bt.gl_trans__coders = Bt.gl_trans__coders || {};\n function Dt() {\n return Ut().maptalks_gltf_loader;\n }\n Gt.inject = function (t) {\n var e = t.toString(),\n n = e.indexOf(\"{\") + 1,\n r = e.substring(0, n),\n s = Bt.gl_trans__coders = Bt.gl_trans__coders || {};\n var i = \"\".concat(r, \"\\n const _____getGlobal = \").concat(Ut.toString(), \";\\n const g___lobals = _____getGlobal()\\n const tran_____scoders = g___lobals['gl_trans__coders'] = g___lobals['gl_trans__coders'] || {};\");\n for (var _t4 in s) \"inject\" !== _t4 && \"getTranscoder\" !== _t4 && \"registerTranscoder\" !== _t4 && (i += 'tran_____scoders[\"' + _t4 + '\"] =' + s[_t4].toString() + \"\\n;\");\n return i += \"\\n(\" + Ut().maptalks_gltf_loader_bundle.toString() + \")({});\\n\", i += \"\\n\" + e.substring(r.length), i;\n }, Gt.registerTranscoder = function (t, e) {\n Gt[t] = e;\n }, Gt.getTranscoder = function (t) {\n return Gt[t];\n };\n var Ft = \"undefined\" == typeof document ? null : document.createElement(\"canvas\");\n var jt = function (_t$worker$Actor) {\n function jt(t, e, n) {\n var _this;\n _classCallCheck(this, jt);\n _this = _callSuper(this, jt, [t]), _this.mapId = e, _this.i = n;\n return _this;\n }\n _inherits(jt, _t$worker$Actor);\n return _createClass(jt, [{\n key: \"initialize\",\n value: function initialize(t) {\n t(null);\n } },\n {\n key: \"loadTile\",\n value: function loadTile(t, e, n) {\n var r = null;\n e && e.arraybuffer && (r = [e.arraybuffer]);\n var s = {\n mapId: this.mapId,\n layerId: t,\n command: \"loadTile\",\n params: e };\n\n this.send(s, r, n);\n } },\n {\n key: \"abortTileLoading\",\n value: function abortTileLoading(t, e, n) {\n var r = {\n mapId: this.mapId,\n layerId: t,\n command: \"abortTileLoading\",\n params: {\n url: e } };\n\n\n this.broadcast(r, null, n);\n } },\n {\n key: \"addLayer\",\n value: function addLayer(t, e, n) {\n var r = {\n actorId: this.actorId,\n mapId: this.mapId,\n layerId: t,\n command: \"addLayer\",\n params: {\n options: e } };\n\n\n this.broadcast(r, null, n);\n } },\n {\n key: \"removeLayer\",\n value: function removeLayer(t, e) {\n var n = {\n mapId: this.mapId,\n layerId: t,\n command: \"removeLayer\" };\n\n this.broadcast(n, null, e);\n } },\n {\n key: \"requestImage\",\n value: function requestImage(_ref, e) {\n var _this2 = this;\n var t = _ref.url;\n var n = new Image();\n n.onload = function () {\n if (!_this2.isActive()) return;\n if (!Ft) return void e(new Error(\"There is no canvas to draw image!\"));\n var t = _this2.i ? n : function (t) {\n if (zt(t.width) && zt(t.height)) return t;\n var e = t.width,\n n = t.height;\n zt(e) || (e = Ht(e));\n zt(n) || (n = Ht(n));\n var r = document.createElement(\"canvas\");\n r.width = e, r.height = n, r.getContext(\"2d\").drawImage(t, 0, 0, e, n);\n var s = t.src,\n i = s.lastIndexOf(\"/\") + 1,\n o = s.substring(i);\n return console.warn(\"Texture(\".concat(o, \")'s size is not power of two, resize from (\").concat(t.width, \", \").concat(t.height, \") to (\").concat(e, \", \").concat(n, \")\")), r;\n }(n);\n Ft.width = t.width, Ft.height = t.height;\n var r = Ft.getContext(\"2d\", {\n willReadFrequently: !0 });\n\n r.drawImage(t, 0, 0, t.width, t.height);\n var s = r.getImageData(0, 0, t.width, t.height),\n i = {\n width: t.width,\n height: t.height,\n data: new Uint8Array(s.data) };\n\n e(null, i, [i.data.buffer]);\n }, n.onerror = function (t) {\n e(t);\n }, n.src = t;\n } }]);\n\n }(t.worker.Actor);\n function zt(t) {\n return !(t & t - 1) && 0 !== t;\n }\n function Ht(t) {\n return Math.pow(2, Math.floor(Math.log(t) / Math.LN2));\n }\n var _Dt = Dt(),\n qt = _Dt.GLTFLoader;\n function $t(t, e) {\n if (t.scenes && t.scenes.length) for (var _n6 = 0, _r4 = t.scenes.length; _n6 < _r4; _n6++) {\n var _r5 = t.scenes[_n6].nodes;\n for (var _n7 = 0, _s3 = _r5.length; _n7 < _s3; _n7++) {\n var _s4 = [];\n Wt(_r5[_n7], _s4, t, e);\n }\n }\n }\n var Vt = [],\n Jt = [],\n Yt = [],\n Zt = [0, 0, 0],\n Kt = _glMatrix.quat.identity([]),\n Xt = [1, 1, 1];\n function Wt(t, e, n, r) {\n var s = e.slice(0);\n if (t.matrix) s.push(t.matrix);else if (t.rotation || t.translation || t.scale) {\n var _e9 = _glMatrix.mat4.fromTranslation(Vt, t.translation || Zt),\n _n8 = _glMatrix.mat4.fromQuat(Jt, t.rotation || Kt),\n _r6 = _glMatrix.mat4.fromScaling(Yt, t.scale || Xt);\n _glMatrix.mat4.multiply(_r6, _n8, _r6);\n var _i = _glMatrix.mat4.multiply([], _e9, _r6);\n s.push(_i);\n }\n if (t.children && t.children.length) for (var _e10 = 0, _i2 = t.children.length; _e10 < _i2; _e10++) Wt(t.children[_e10], s, n, r);\n if (void 0 !== t.mesh) {\n var _e11 = t.mesh,\n _i3 = n.meshes[_e11];\n if (_i3) {\n var _t5 = s.slice(0),\n _o = _i3.primitives;\n for (var _s5 = 0, _i4 = _o.length; _s5 < _i4; _s5++) {\n var _i5 = _o[_s5];\n _i5 && (_i5.matrices = _t5, r(_i5, _e11, _s5, n));\n }\n }\n }\n }\n function Qt(t, e, n) {\n var r = e.byteOffset,\n s = e.byteStride;\n var i = e.componentType,\n o = e.itemSize,\n a = e.array.buffer,\n c = i ? qt.getTypedArrayCtor(i) : e.array.constructor;\n if (r = void 0 === r ? e.array.byteOffset : r, s = s || 0, !s || s === o * c.BYTES_PER_ELEMENT && r % c.BYTES_PER_ELEMENT == 0) {\n var _e12 = new c(a, r + n * o * c.BYTES_PER_ELEMENT, o);\n return t.set(_e12), t;\n }\n s || (s = o * c.BYTES_PER_ELEMENT);\n var l = new Uint8Array(a, s * n + r, o * c.BYTES_PER_ELEMENT);\n return new Uint8Array(t.buffer).set(l), t;\n }\n function te(t, e, n, r) {\n t[4 * e] = n[r], t[4 * e + 1] = n[r + 4], t[4 * e + 2] = n[r + 8], t[4 * e + 3] = n[r + 12];\n }\n var ee = \"#include \\n\\nconst float SHIFT_RIGHT_11 = 1.0 / 2048.0;\\n\\nconst float SHIFT_RIGHT_5 = 1.0 / 32.0;\\n\\nconst float SHIFT_LEFT_11 = 2048.0;\\n\\nconst float SHIFT_LEFT_5 = 32.0;\\n\\nconst float NORMALIZE_6 = 1.0 / 64.0;\\n\\nconst float NORMALIZE_5 = 1.0 / 32.0;\\n\\n\\n\\n#ifdef HAS_POSITION\\n\\n attribute vec3 POSITION;\\n\\n#endif\\n\\n\\n\\n#if defined(HAS_RGB)\\n\\n attribute vec3 RGB;\\n\\n#elif defined(HAS_RGBA)\\n\\n attribute vec4 RGBA;\\n\\n#elif defined(HAS_RGB565)\\n\\n attribute float RGB565;\\n\\n#endif\\n\\n\\n\\nuniform vec4 pointColor;\\n\\nuniform float pointSize;\\n\\n\\n\\nuniform mat4 projViewModelMatrix;\\n\\nuniform float pointOpacity;\\n\\n\\n\\nvarying vec4 vColor;\\n\\n\\n\\n#ifdef HAS_NORMAL\\n\\n #ifdef HAS_NORMAL_OCT16P\\n\\n attribute vec2 NORMAL_OCT16P;\\n\\n float signNotZero(float value) {\\n\\n return value >= 0.0 ? 1.0 : -1.0;\\n\\n }\\n\\n vec2 signNotZero(vec2 value) {\\n\\n return vec2(signNotZero(value.x), signNotZero(value.y));\\n\\n }\\n\\n vec3 octDecode(vec2 encoded, float range) {\\n\\n if (encoded.x == 0.0 && encoded.y == 0.0) {\\n\\n return vec3(0.0, 0.0, 0.0);\\n\\n }\\n\\n encoded = encoded / range * 2.0 - 1.0;\\n\\n vec3 v = vec3(encoded.x, encoded.y, 1.0 - abs(encoded.x) - abs(encoded.y));\\n\\n if (v.z < 0.0) {\\n\\n v.xy = (1.0 - abs(v.yx)) * signNotZero(v.xy);\\n\\n }\\n\\n return normalize(v);\\n\\n }\\n\\n vec3 octDecode(vec2 encoded) {\\n\\n return octDecode(encoded, 255.0);\\n\\n }\\n\\n #else\\n\\n attribute vec3 NORMAL;\\n\\n #endif\\n\\n uniform vec3 lightDir;\\n\\n uniform mat3 modelNormalMatrix;\\n\\n uniform mat4 positionMatrix;\\n\\n float getLambertDiffuse(vec3 lightDir, vec3 normal) {\\n\\n return max(dot(-lightDir, normal), 0.0);\\n\\n }\\n\\n#endif\\n\\n#ifdef PICKING_MODE\\n\\n #include \\n\\n#endif\\n\\n#include \\n\\nvoid main() {\\n\\n #ifdef HAS_POSITION\\n\\n vec3 localPos = decode_getPosition(POSITION);\\n\\n #endif\\n\\n gl_Position = projViewModelMatrix * vec4(localPos, 1.0);\\n\\n gl_PointSize = pointSize;\\n\\n\\n\\n #ifdef PICKING_MODE\\n\\n fbo_picking_setData(gl_Position.w, true);\\n\\n #else\\n\\n #if defined(HAS_RGB)\\n\\n vColor = vec4(RGB / 255.0, 1.0) * pointOpacity;\\n\\n #elif defined(HAS_RGBA)\\n\\n vColor = RGBA / 255.0 * pointOpacity;\\n\\n #elif defined(HAS_RGB565)\\n\\n float compressed = RGB565;\\n\\n float r = floor(compressed * SHIFT_RIGHT_11);\\n\\n compressed -= r * SHIFT_LEFT_11;\\n\\n float g = floor(compressed * SHIFT_RIGHT_5);\\n\\n compressed -= g * SHIFT_LEFT_5;\\n\\n float b = compressed;\\n\\n vec3 rgb = vec3(r * NORMALIZE_5, g * NORMALIZE_6, b * NORMALIZE_5);\\n\\n vColor = vec4(rgb, 1.0);\\n\\n #else\\n\\n vColor = pointColor;\\n\\n #endif\\n\\n\\n\\n #ifdef HAS_NORMAL\\n\\n mat3 positionNormalMatrix = mat3(positionMatrix);\\n\\n mat3 normalMatrix = modelNormalMatrix * positionNormalMatrix;\\n\\n #ifdef HAS_NORMAL_OCT16P\\n\\n vec3 localNormal = octDecode(NORMAL_OCT16P);\\n\\n #else\\n\\n vec3 localNormal = NORMAL;\\n\\n #endif\\n\\n vec3 normal = normalize(normalMatrix * localNormal);\\n\\n float colorStrength = getLambertDiffuse(lightDir, normal);\\n\\n colorStrength = max(colorStrength, 0.5);\\n\\n vColor *= colorStrength;\\n\\n #endif\\n\\n #endif\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n}\\n\\n\";\n var ne = new Array(3),\n re = new Array(3),\n se = [40680631590769, 40680631590769, 40408299984661.445];\n function ie(t, e, n, r) {\n var s = se,\n i = Math.cos(n);\n ne[0] = i * Math.cos(e), ne[1] = i * Math.sin(e), ne[2] = Math.sin(n), be(ne, ne), _glMatrix.vec3.multiply(re, s, ne);\n var o = Math.sqrt(_glMatrix.vec3.dot(ne, re));\n var a, c, l;\n return c = re, l = o, (a = re)[0] = c[0] / l, a[1] = c[1] / l, a[2] = c[2] / l, _glMatrix.vec3.scale(ne, ne, r), _glMatrix.vec3.add(t, re, ne);\n }\n var oe = [1 / 6378137, 1 / 6378137, 1 / 6356752.314245179],\n ae = [1 / 40680631590769, 1 / 40680631590769, 1 / 40408299984661.445],\n ce = new Array(3),\n le = new Array(3),\n he = new Array(3);\n function ue(t, e) {\n var n = ae,\n r = function (t, e, n, r, s) {\n var i = e[0],\n o = e[1],\n a = e[2],\n c = n[0],\n l = n[1],\n h = n[2],\n u = i * i * c * c,\n f = o * o * l * l,\n d = a * a * h * h,\n m = u + f + d,\n p = Math.sqrt(1 / m),\n b = _glMatrix.vec3.scale(fe, e, p);\n if (m < s) return isFinite(p) ? b : void 0;\n var y = r[0],\n g = r[1],\n w = r[2],\n T = de;\n T[0] = b[0] * y * 2, T[1] = b[1] * g * 2, T[2] = b[2] * w * 2;\n var _,\n M,\n O,\n A,\n x,\n I,\n S,\n C,\n k,\n N,\n L,\n E = (1 - p) * pe(e) / (.5 * pe(T)),\n R = 0;\n do {\n E -= R, O = 1 / (1 + E * y), A = 1 / (1 + E * g), x = 1 / (1 + E * w), I = O * O, S = A * A, C = x * x, k = I * O, N = S * A, L = C * x, _ = u * I + f * S + d * C - 1, M = u * k * y + f * N * g + d * L * w;\n R = _ / (-2 * M);\n } while (Math.abs(_) > me);\n return t[0] = i * O, t[1] = o * A, t[2] = a * x, t;\n }(ce, e, oe, n, .1);\n var s = _glMatrix.vec3.mul(le, r, n);\n s = be(s, s);\n var i = _glMatrix.vec3.sub(he, e, r),\n o = Math.atan2(s[1], s[0]),\n a = Math.asin(s[2]),\n c = _t(_glMatrix.vec3.dot(i, e)) * pe(i);\n return t[0] = vt(o), t[1] = vt(a), t[2] = c, t;\n }\n var fe = new Array(3),\n de = new Array(3),\n me = 1e-12;\n function pe(t) {\n return _glMatrix.vec3.length(t);\n }\n function be(t, e) {\n var n = e[0],\n r = e[1],\n s = e[2];\n var i = n * n + r * r + s * s;\n return i > 0 && (i = Math.sqrt(i), t[0] = e[0] / i, t[1] = e[1] / i, t[2] = e[2] / i), t;\n }\n function ye(t, e) {\n return _glMatrix.vec3.multiply(e, t, ae), _glMatrix.vec3.normalize(e, e);\n }\n function ge(t, e) {\n var n = t[0],\n r = t[1],\n s = Math.cos(r),\n i = s * Math.cos(n),\n o = s * Math.sin(n),\n a = Math.sin(r);\n return e.x = i, e.y = o, e.z = a, _glMatrix.vec3.normalize(e, e);\n }\n var we = exports.Geo3DTransform = Object.freeze({\n __proto__: null,\n cartesian3ToDegree: ue,\n geodeticSurfaceNormal: ye,\n geodeticSurfaceNormalCartographic: ge,\n normalizeCartesian: be,\n radianToCartesian3: ie });\n\n function ve(t, e, n, r) {\n n = n || 0, r = r || n;\n var s = Math.abs(t - e);\n return s <= r || s <= n * Math.max(Math.abs(t), Math.abs(e));\n }\n function Te(t, e) {\n var n = \"\";\n for (var _r7 = 0; _r7 < 4; _r7++) {\n var _s6 = t.getUint8(e + _r7);\n n += String.fromCharCode(_s6);\n }\n return n;\n }\n var _e = \"undefined\" != typeof TextDecoder ? new TextDecoder(\"utf-8\") : null;\n function Me(t, e, n) {\n var r = new Uint8Array(t, e, n);\n return _e ? JSON.parse(_e.decode(r)) : JSON.parse(Ot(r));\n }\n function Oe(t, e, n) {\n var r = new Uint8Array(t, e, n);\n return _e ? JSON.parse(_e.decode(r)) : JSON.parse(Ot(r));\n }\n function Ae(t, e, n) {\n return {\n offset: e,\n byteLength: n };\n\n }\n function xe(t, e, n, r) {\n var s = t.byteOffset,\n i = t.componentType,\n o = t.type,\n _Le = Le(i || \"UNSIGNED_SHORT\"),\n a = _Le.ctor,\n c = _Le.type,\n l = ke(o);\n return {\n byteStride: 0,\n byteOffset: s + n,\n itemSize: l,\n count: r * l,\n componentType: c,\n array: new a(e, n + s, r * l) };\n\n }\n function Ie(t, e, n, r) {\n var s = xe(t, e, n, r);\n return s.array.buffer.byteLength !== e.byteLength && (s.array = s.array.slice()), s;\n }\n function Se(t, e, n, r) {\n var s = t.byteOffset,\n i = t.componentType,\n o = t.type,\n _Le2 = Le(i || \"UNSIGNED_SHORT\"),\n a = _Le2.ctor,\n c = ke(o),\n l = new a(e, s, n * c);\n return 1 === c ? l[r] : l.subarray(r * c, r * c + c);\n }\n var Ce = {\n \"SCALAR\": 1,\n \"VEC2\": 2,\n \"VEC3\": 3,\n \"VEC4\": 4 };\n\n function ke(t) {\n return t ? Ce[t] : 1;\n }\n var Ne = {\n \"BYTE\": {\n ctor: Int8Array,\n type: 5120,\n name: \"Int8Array\" },\n\n \"UNSIGNED_BYTE\": {\n ctor: Uint8Array,\n type: 5121,\n name: \"Uint8Array\" },\n\n \"SHORT\": {\n ctor: Int16Array,\n type: 5122,\n name: \"Int16Array\" },\n\n \"UNSIGNED_SHORT\": {\n ctor: Uint16Array,\n type: 5123,\n name: \"Uint16Array\" },\n\n \"INT\": {\n ctor: Int32Array,\n type: 5124,\n name: \"Int32Array\" },\n\n \"UNSIGNED_INT\": {\n ctor: Uint32Array,\n type: 5125,\n name: \"Uint32Array\" },\n\n \"FLOAT\": {\n ctor: Float32Array,\n type: 5126,\n name: \"Float32Array\" },\n\n \"DOUBLE\": {\n ctor: Float64Array,\n type: 5126,\n name: \"Float64Array\" } };\n\n\n function Le(t) {\n return Ne[t];\n }\n function Ee(t) {\n for (var _e13 in Ne) if (t === Ne[_e13].ctor) return Ne[_e13].type;\n throw new Error(\"unrecognized ctor:\" + t);\n }\n function Re(t, e, n, r) {\n var s = t,\n i = e.length / 3;\n for (var _t6 = 0; _t6 < i; _t6++) s[3 * _t6] = e[3 * _t6] / 65535 * r[0] + n[0], s[3 * _t6 + 1] = e[3 * _t6 + 1] / 65535 * r[1] + n[1], s[3 * _t6 + 2] = e[3 * _t6 + 2] / 65535 * r[2] + n[2];\n return s;\n }\n function Pe(t, e, n) {\n var r = t.getUint32(12, !0),\n s = t.getUint32(16, !0),\n i = t.getUint32(20, !0),\n o = t.getUint32(24, !0),\n a = t.buffer;\n var c,\n l = {},\n h = {},\n u = null;\n r > 0 && (l = Me(a, e, r), e += r), s > 0 && (c = function (t, e, n) {\n return {\n offset: e,\n byteLength: n };\n\n }(0, e, s), e += s), i > 0 && (h = Oe(a, e, i), e += i);\n var f = Ae(0, e, o);\n return u = a.slice(f.offset, f.offset + f.byteLength), n.push(u), {\n featureTable: l,\n featureTableBin: c,\n batchTable: h,\n batchTableBin: u };\n\n }\n var Ue = {\n up: {\n south: \"east\",\n north: \"west\",\n west: \"south\",\n east: \"north\" },\n\n down: {\n south: \"west\",\n north: \"east\",\n west: \"north\",\n east: \"south\" },\n\n south: {\n up: \"west\",\n down: \"east\",\n west: \"down\",\n east: \"up\" },\n\n north: {\n up: \"east\",\n down: \"west\",\n west: \"up\",\n east: \"down\" },\n\n west: {\n up: \"north\",\n down: \"south\",\n north: \"down\",\n south: \"up\" },\n\n east: {\n up: \"south\",\n down: \"north\",\n north: \"up\",\n south: \"down\" } },\n\n\n Be = {\n north: [-1, 0, 0],\n east: [0, 1, 0],\n up: [0, 0, 1],\n south: [1, 0, 0],\n west: [0, -1, 0],\n down: [0, 0, -1] },\n\n Ge = {},\n De = {\n east: [],\n north: [],\n up: [],\n west: [],\n south: [],\n down: [] };\n\n var Fe = [],\n je = [],\n ze = [];\n var He = [0, 0, 0];\n function qe(t, e, n) {\n return n[0] = t[0], n[1] = t[1], n[2] = t[2], n[3] = t[3], n[4] = t[4], n[5] = t[5], n[6] = t[6], n[7] = t[7], n[8] = t[8], n[9] = t[9], n[10] = t[10], n[11] = t[11], n[12] = e[0], n[13] = e[1], n[14] = e[2], n[15] = t[15], n;\n }\n var $e = function (t, e) {\n var n = Ue[t][e];\n var r;\n var s = t + e;\n return Ge[s] ? r = Ge[s] : (r = function r(_r8, s, i) {\n if (_glMatrix.vec3.equals(_r8, He)) _glMatrix.vec3.copy(Fe, Be[t]), _glMatrix.vec3.copy(je, Be[e]), _glMatrix.vec3.copy(ze, Be[n]);else if (ve(_r8[0], 0, 1e-14) && ve(_r8[1], 0, 1e-14)) {\n var _s7 = _t(_r8[2]);\n _glMatrix.vec3.copy(Fe, Be[t]), _glMatrix.vec3.copy(je, Be[e]), _glMatrix.vec3.scale(je, je, _s7), _glMatrix.vec3.copy(ze, Be[n]), _glMatrix.vec3.scale(ze, ze, _s7);\n } else {\n ye(_r8, De.up);\n var _s8 = De.up,\n _i6 = De.east;\n _i6[0] = -_r8[1], _i6[1] = _r8[0], _i6[2] = 0, _glMatrix.vec3.normalize(De.east, _i6), _glMatrix.vec3.cross(De.north, _s8, _i6), _glMatrix.vec3.scale(De.down, De.up, -1), _glMatrix.vec3.scale(De.west, De.east, -1), _glMatrix.vec3.scale(De.south, De.north, -1), Fe = De[t], je = De[e], ze = De[n];\n }\n return i[0] = Fe[0], i[1] = Fe[1], i[2] = Fe[2], i[3] = 0, i[4] = je[0], i[5] = je[1], i[6] = je[2], i[7] = 0, i[8] = ze[0], i[9] = ze[1], i[10] = ze[2], i[11] = 0, i[12] = _r8[0], i[13] = _r8[1], i[14] = _r8[2], i[15] = 1, i;\n }, Ge[s] = r), r;\n }(\"east\", \"north\"),\n Ve = [],\n Je = [],\n Ye = [],\n Ze = [],\n Ke = [],\n Xe = [],\n We = [],\n Qe = {\n x: 0,\n y: 0 },\n\n tn = {\n x: 0,\n y: 0 },\n\n en = Math.PI / 180;\n var nn;\n var rn = {\n width: 100,\n height: 10 };\n\n var sn = !1;\n try {\n var _t7 = new OffscreenCanvas(1, 1);\n _t7.getContext(\"2d\").fillText(\"hello\", 0, 0), sn = !0;\n } catch (t) {\n sn = !1;\n }\n function on() {\n if (!nn) {\n var _t8 = rn.width,\n _e14 = rn.height;\n sn ? nn = new OffscreenCanvas(_t8, _e14) : (nn = document.createElement(\"canvas\"), nn.width = _t8, nn.height = _e14);\n }\n return nn;\n }\n var an = function () {\n function an(t) {\n var e = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _classCallCheck(this, an);\n if (!Array.isArray(t)) return void console.error(\"colors is not array\");\n if (t.length < 2) return void console.error(\"colors.length should >1\");\n this.colors = t;\n var n = 1 / 0,\n r = -1 / 0;\n for (var _e15 = 0, _s9 = t.length; _e15 < _s9; _e15++) {\n var _s10 = t[_e15][0];\n n = Math.min(_s10, n), r = Math.max(_s10, r);\n }\n this.min = n, this.max = r, this.valueOffset = this.max - this.min, this.options = Object.assign({}, rn, e), this.o();\n }\n return _createClass(an, [{\n key: \"getImageData\",\n value: function getImageData() {\n return this.imgData;\n } },\n {\n key: \"o\",\n value: function o() {\n var t = on(),\n _this$options = this.options,\n e = _this$options.width,\n n = _this$options.height;\n t.width = e, t.height = n;\n var r = t.getContext(\"2d\");\n r.clearRect(0, 0, t.width, t.height);\n var s = r.createLinearGradient(0, 0, t.width, 0),\n i = this.colors,\n o = this.valueOffset;\n for (var _t9 = 0, _e16 = i.length; _t9 < _e16; _t9++) {\n var _i$_t = _slicedToArray(i[_t9], 2),\n _e17 = _i$_t[0],\n _n9 = _i$_t[1],\n _r9 = (_e17 - this.min) / o;\n s.addColorStop(_r9, _n9);\n }\n r.fillStyle = s, r.fillRect(0, 0, t.width, t.height), this.imgData = r.getImageData(0, 0, t.width, t.height);\n } },\n {\n key: \"getColor\",\n value: function getColor(t) {\n t = Math.max(this.min, t);\n var e = ((t = Math.min(t, this.max)) - this.min) / this.valueOffset;\n var n = Math.round(e * this.imgData.width);\n n = Math.min(n, this.imgData.width - 1);\n var r = 4 * n;\n return [this.imgData.data[r], this.imgData.data[r + 1], this.imgData.data[r + 2], this.imgData.data[r + 3]];\n } }]);\n\n }();\n var cn;\n function ln(t) {\n return null == t;\n }\n function hn(t) {\n return !ln(t);\n }\n function un(t) {\n return \"\" === t;\n }\n function fn(t, e) {\n var n, r, s;\n if (_n(t)) {\n var i,\n o = t.stops && \"object\" == _typeof(t.stops[0][0]),\n a = o || hn(t.property),\n c = o || !a,\n l = t.type || e || \"exponential\";\n if (\"exponential\" === l) i = pn;else if (\"interval\" === l) i = mn;else if (\"categorical\" === l) i = dn;else if (\"identity\" === l) i = gn;else if (\"color-interpolate\" === l) i = yn;else {\n if (\"calculate-expression\" !== l) throw new Error('Unknown function type \"' + l + '\"');\n i = wn;\n }\n if (o) {\n var h = {},\n u = [];\n for (var _e18 = 0; _e18 < t.stops.length; _e18++) {\n var f = t.stops[_e18];\n void 0 === h[f[0].zoom] && (h[f[0].zoom] = {\n zoom: f[0].zoom,\n type: t.type,\n property: t.property,\n default: t.default,\n stops: [] }),\n h[f[0].zoom].stops.push([f[0].value, f[1]]);\n }\n for (var _t10 in h) u.push([h[_t10].zoom, fn(h[_t10])]);\n n = function n(e, _n10) {\n var r = pn({\n stops: u,\n base: t.base },\n e)(e, _n10);\n return \"function\" == typeof r ? r(e, _n10) : r;\n }, r = !1, s = !1;\n } else c ? (n = function n(e) {\n var n = i(t, e);\n return \"function\" == typeof n ? n(e) : n;\n }, r = !0, s = !1) : (n = function n(e, _n11) {\n var r = i(t, _n11 ? _n11[t.property] : null);\n return \"function\" == typeof r ? r(e, _n11) : r;\n }, r = !1, s = !0);\n } else n = function n() {\n return t;\n }, r = !0, s = !0;\n return n.isZoomConstant = s, n.isFeatureConstant = r, n;\n }\n function dn(t, e) {\n for (var _n12 = 0; _n12 < t.stops.length; _n12++) if (e === t.stops[_n12][0]) return t.stops[_n12][1];\n return t.default;\n }\n function mn(t, e) {\n for (var n = 0; n < t.stops.length && !(e < t.stops[n][0]); n++);\n return t.stops[Math.max(n - 1, 0)][1];\n }\n function pn(t, e) {\n for (var n = hn(t.base) && !un(t.base) ? t.base : 1, r = 0; !(r >= t.stops.length || e <= t.stops[r][0]);) r++;\n return 0 === r ? t.stops[r][1] : r === t.stops.length ? t.stops[r - 1][1] : vn(e, n, t.stops[r - 1][0], t.stops[r][0], t.stops[r - 1][1], t.stops[r][1]);\n }\n \"function\" == typeof Map && (cn = new Map());\n var bn = {\n width: 100,\n height: 1 };\n\n function yn(t, e) {\n var n = t.stops;\n if (n && n.length > 1) {\n var _t11;\n if (cn) {\n var _e19 = JSON.stringify(n);\n if (!cn.has(_e19)) {\n var _t12 = new an(n, bn);\n cn.set(_e19, _t12);\n }\n _t11 = cn.get(_e19);\n } else _t11 = new an(n, bn);\n var _t11$getColor = _t11.getColor(e),\n _t11$getColor2 = _slicedToArray(_t11$getColor, 4),\n _r10 = _t11$getColor2[0],\n _s11 = _t11$getColor2[1],\n _i7 = _t11$getColor2[2],\n _o2 = _t11$getColor2[3];\n return [_r10 / 255, _s11 / 255, _i7 / 255, _o2 / 255];\n }\n return n && 1 === n.length ? n[0][1] : null;\n }\n function gn(t, e) {\n return n = e, r = t.default, hn(n) ? n : hn(r) ? r : hn(s) ? s : null;\n var n, r, s;\n }\n function wn(t, e) {\n var n = String(t.property),\n r = t.expression,\n s = e;\n function i(e) {\n return ln(e) || un(e) || isNaN(e) ? t.default : e;\n }\n if (!hn(e) || un(e) || isNaN(e) || e < 0) return i(t.default);\n {\n var _e20 = function t(e, n, r) {\n var s = Number(r),\n i = String(n);\n return Array.isArray(e) ? e.map(function (e) {\n return t(e, i, s);\n }) : e === i ? s : e;\n }(r, n, s);\n return i(function e(n) {\n if (!Array.isArray(n)) {\n if (\"number\" == typeof n) return n;\n throw new Error(\"Invalid expression format\");\n }\n {\n var _r11 = n[0];\n if (![\"+\", \"-\", \"*\", \"/\"].includes(_r11)) throw new Error(\"Unknown operator: \".concat(_r11));\n var _s12 = n.slice(1).map(function (t) {\n return e(t);\n });\n switch (_r11) {\n case \"+\":\n return _s12.reduce(function (t, e) {\n return t + e;\n }, 0);\n case \"-\":\n return _s12.reduce(function (t, e) {\n return t - e;\n });\n case \"*\":\n return _s12.reduce(function (t, e) {\n return t * e;\n }, 1);\n case \"/\":\n return _s12.some(function (t) {\n return 0 === t;\n }) ? t.default : _s12.reduce(function (t, e) {\n return t / e;\n });\n default:\n throw new Error(\"Unsupported operator: \".concat(_r11));}\n\n }\n }(_e20));\n }\n }\n function vn(t, e, n, r, s, i) {\n return \"function\" == typeof s ? function () {\n var o = s.apply(void 0, arguments),\n a = i.apply(void 0, arguments);\n return vn(t, e, n, r, o, a);\n } : s.length ? function (t, e, n, r, s, i) {\n var o = [];\n for (var _a = 0; _a < s.length; _a++) o[_a] = Tn(t, e, n, r, s[_a], i[_a]);\n return o;\n }(t, e, n, r, s, i) : Tn(t, e, n, r, s, i);\n }\n function Tn(t, e, n, r, s, i) {\n var o,\n a = r - n,\n c = t - n;\n return s * (1 - (o = 1 === e ? c / a : (Math.pow(e, c) - 1) / (Math.pow(e, a) - 1))) + i * o;\n }\n function _n(t) {\n return t && \"object\" == _typeof(t) && (t.stops || t.property && \"identity\" === t.type || t.expression && \"calculate-expression\" === t.type);\n }\n function Mn(t) {\n return On(t, \"exponential\");\n }\n function On(t, e) {\n if (!_n(t)) return function () {\n return t;\n };\n var n = !0,\n r = !0;\n var s = (t = JSON.parse(JSON.stringify(t))).stops;\n if (s) for (var _t13 = 0; _t13 < s.length; _t13++) if (_n(s[_t13][1])) {\n var _i8 = On(s[_t13][1], e);\n n = n && _i8.isZoomConstant, r = r && _i8.isFeatureConstant, s[_t13] = [s[_t13][0], _i8];\n }\n var i = fn(t, e);\n return i.isZoomConstant = n && i.isZoomConstant, i.isFeatureConstant = r && i.isFeatureConstant, i;\n }\n var _n$REGLHelper = _gl.reshader.REGLHelper,\n An = _n$REGLHelper.getTextureMagFilter,\n xn = _n$REGLHelper.getTextureMinFilter,\n In = _n$REGLHelper.getTextureWrap,\n Sn = _n$REGLHelper.getMaterialType,\n Cn = _n$REGLHelper.getMaterialFormat,\n kn = _n$REGLHelper.getPrimitive,\n Nn = _n$REGLHelper.getUniqueREGLBuffer,\n Ln = [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1],\n En = [0, 0, 1, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1],\n _n$pbr$PBRUtils = _gl.reshader.pbr.PBRUtils,\n Rn = _n$pbr$PBRUtils.loginIBLResOnCanvas,\n Pn = _n$pbr$PBRUtils.logoutIBLResOnCanvas,\n Un = _n$pbr$PBRUtils.getIBLResOnCanvas,\n Bn = _n$pbr$PBRUtils.getPBRUniforms,\n Gn = {\n factor: 0,\n units: 0 },\n\n Dn = [1, 1, 1, 1],\n Fn = [0, 0, 0],\n jn = {\n specularStrength: 0,\n materialShininess: 1 },\n\n zn = [1, 1, 1],\n Hn = _gl.mat4.identity([]),\n qn = [0, 0, 0],\n $n = [0, 0],\n Vn = [],\n Jn = function Jn(t) {\n return t.material instanceof _gl.reshader.PhongMaterial;\n },\n Yn = function Yn(t) {\n return t.material instanceof _gl.reshader.pbr.StandardMaterial;\n },\n Zn = [],\n Kn = new t.Coordinate(0, 0),\n Xn = new t.Point(0, 0),\n Wn = new t.Point(0, 0),\n Qn = new t.Point(0, 0),\n tr = [],\n er = [],\n nr = [],\n rr = [],\n sr = [],\n ir = [],\n or = [],\n ar = [],\n cr = [],\n lr = [],\n hr = [],\n ur = [],\n fr = [],\n dr = [],\n mr = {\n \"POSITION\": \"POSITION\",\n \"NORMAL\": \"NORMAL\",\n \"TEXCOORD_0\": \"TEXCOORD_0\",\n \"TEXCOORD_1\": \"TEXCOORD_1\",\n \"COLOR_0\": \"COLOR_0\",\n \"TANGENT\": \"TANGENT\",\n \"_BATCHID\": \"_BATCHID\" },\n\n pr = [0, 1, 1, 2, 2, 3, 3, 0, 0, 4, 1, 5, 2, 6, 3, 7, 4, 5, 5, 6, 6, 7, 7, 4],\n br = function (t, e) {\n var n = 2 * Math.PI / t,\n r = [],\n s = [];\n for (var _s13 = 0; _s13 <= t; _s13++) {\n var _t14 = Math.cos(n * _s13) * e,\n _i9 = Math.sin(n * _s13) * e,\n _o3 = 0;\n r[3 * _s13] = _t14, r[3 * _s13 + 1] = _i9, r[3 * _s13 + 2] = _o3;\n }\n for (var _s14 = t; _s14 <= 2 * t; _s14++) {\n var _t15 = Math.cos(n * _s14) * e,\n _i10 = Math.sin(n * _s14) * e,\n _o4 = 0;\n r[3 * _s14] = _o4, r[3 * _s14 + 1] = _t15, r[3 * _s14 + 2] = _i10;\n }\n for (var _s15 = 2 * t; _s15 <= 3 * t; _s15++) {\n var _t16 = Math.cos(n * _s15) * e,\n _i11 = Math.sin(n * _s15) * e,\n _o5 = 0;\n r[3 * _s15] = _t16, r[3 * _s15 + 1] = _o5, r[3 * _s15 + 2] = _i11;\n }\n var i = r.length / 3 - 1;\n for (var _e21 = 0; _e21 < i; _e21++) _e21 !== t - 1 && _e21 !== 2 * t - 1 && (s[2 * _e21] = _e21, s[2 * _e21 + 1] = _e21 + 1);\n return r.push(0, 0, 0), r.push(e, 0, 0), r.push(0, e, 0), r.push(0, 0, e), s.push(i + 1, i + 2), s.push(i + 1, i + 3), s.push(i + 1, i + 4), {\n vertices: r,\n indices: s };\n\n }(100, 1),\n yr = [0, 0, 0, 1],\n gr = [1, 1, 1];\n var wr = function () {\n function wr(t, e) {\n var _this3 = this;\n _classCallCheck(this, wr);\n this.h = e, this.u = e.getRenderer().canvas, this.pickingFBO = e.getRenderer().pickingFBO, this.m = t, this.p = new _gl.reshader.Renderer(t), this.v = {}, this.T = {}, this._ = {}, this.M = {}, this.O = {}, this.A = {}, this.I = new _gl.reshader.Scene(), this.S = new _gl.reshader.Scene(), this.C = new _gl.reshader.Scene(), this.k = new _gl.reshader.Scene(), this.N = new _gl.reshader.ResourceLoader(t.texture(2)), this.L = function () {\n var _this3$R;\n for (var _len = arguments.length, t = new Array(_len), _key = 0; _key < _len; _key++) {\n t[_key] = arguments[_key];\n }\n return (_this3$R = _this3.R).call.apply(_this3$R, [_this3].concat(t));\n }, this.P = new _gl.reshader.KHRTechniquesWebglManager(this.m, this.U(), this.N);\n var r = this.getMap();\n this.B = r.altitudeToPoint(100, r.getGLRes()) / 100;\n }\n return _createClass(wr, [{\n key: \"getI3DMMeshes\",\n value: function getI3DMMeshes() {\n return this.M;\n } },\n {\n key: \"getPNTSMeshes\",\n value: function getPNTSMeshes() {\n return this._;\n } },\n {\n key: \"getB3DMMeshes\",\n value: function getB3DMMeshes() {\n return this.T;\n } },\n {\n key: \"getPaintedMeshes\",\n value: function getPaintedMeshes() {\n return this.G;\n } },\n {\n key: \"getMap\",\n value: function getMap() {\n return this.h.getMap();\n } },\n {\n key: \"paint\",\n value: function paint(t, e, n) {\n var _this4 = this;\n var o = n && n.renderTarget,\n a = n && n.sceneFilter,\n c = this.getMap();\n if (!t.length || !c) return null;\n var l = this.D(),\n h = c.projViewMatrix,\n u = [],\n f = [],\n d = [],\n m = [],\n b = [];\n for (var _e22 = 0, _i12 = t.length; _e22 < _i12; _e22++) {\n var _i13 = t[_e22].data.node;\n var _o6 = this.F(_i13);\n if (!_o6) continue;\n var _a2 = this.h.j(_i13.H),\n _c = _a2.debugNodes,\n _l = _a2.heightOffset || 0,\n _y = _a2.coordOffset || $n;\n this.O[_i13.id] && (_o6 = this.O[_i13.id], _o6 = xt(_o6));\n var _g = _a2.polygonOffset || Gn;\n bt(_g) && (_g = _g()), Array.isArray(_o6) || (u[0] = _o6, _o6 = u);\n for (var _u = 0, _w = _o6.length; _u < _w; _u++) {\n if (!_o6[_u] || !_o6[_u].isValid || !_o6[_u].isValid()) continue;\n var _w2 = _o6[_u].properties.magic;\n if (_o6[_u].properties.heightOffset === _l && _o6[_u].properties.coordOffset[0] === _y[0] && _o6[_u].properties.coordOffset[1] === _y[1] || (this.q(_o6[_u]), _o6[_u].$ = _gl.mat4.copy([], _o6[_u].localTransform)), _o6[_u].V = _i13, \"b3dm\" === _w2) {\n if (_o6[_u].getBoundingBox && !(0, _frustumIntersects.intersectsBox)(h, _o6[_u].getBoundingBox())) continue;\n var _o6$_u$geometry$prope = _o6[_u].geometry.properties,\n _t17 = _o6$_u$geometry$prope.batchIdData,\n _e23 = _o6$_u$geometry$prope.batchIdMap;\n if (_t17 && _e23) {\n var _t18 = _o6[_u].properties.node.H;\n this.J && this.J[_t18] ? _gl.HighlightUtil.highlightMesh(this.m, _o6[_u], this.J[_t18], this.Y, _e23) : this.J && this.J[_t18] || _gl.HighlightUtil.highlightMesh(this.m, _o6[_u], null, this.Y, _e23), _gl.HighlightUtil.showOnly(this.m, _o6[_u], this.Z && this.Z[_t18], this.K, _e23);\n }\n if (_c && _c.length && _c.indexOf(_o6[_u].V.id) < 0) continue;\n n && n.bloom && _o6[_u].properties.hlBloomMesh && (_o6[_u].properties.hlBloomMesh.properties.depthFunc = \"always\", d.push(_o6[_u].properties.hlBloomMesh)), d.push(_o6[_u]);\n } else \"pnts\" === _w2 ? m.push(_o6[_u]) : \"i3dm\" === _w2 && b.push(_o6[_u]);\n _o6[_u].properties.isLeaf = t[_e22].leave, _o6[_u].properties.branchRootId = t[_e22].branchRootId;\n var _v = 255 - t[_e22].selectionDepth;\n _o6[_u].properties.selectionDepth = _v, _o6[_u].properties.polygonOffset = _g;\n var _T = void 0 === _a2.cullFace || !!_a2.cullFace;\n _o6[_u].properties.cullFace = _T;\n var _2 = _o6[_u].properties.hlBloomMesh;\n if (_2) {\n var _n13 = _2.properties;\n _n13.branchRootId = t[_e22].branchRootId, _n13.selectionDepth = _v, _n13.polygonOffset = _g, _n13.cullFace = _T;\n }\n t[_e22].leave || f.push(_o6[_u]), this.X(_o6[_u]), this.W(_o6[_u], _i13);\n }\n }\n var y = 0;\n var g = this.P.getExcludeFilter();\n _gl.ContextUtil.setIncludeUniformValues(l, n), y += this.tt(this.et, l, [a, Jn, g], o, f, d, b), y += this.tt(this.nt, l, [a, Yn, g], o, f, d, b), this.P.forEachShader(function (t, e, n) {\n var r = _this4.D(n);\n y += _this4.tt(t, r, [a, e], o, f, d, b);\n }), this.S.setMeshes(m);\n var w = this.rt();\n return y += this.p.render(this.st, w, this.S, o && o.fbo), this.G = {\n pntsMeshes: m,\n i3dmMeshes: b,\n b3dmMeshes: d },\n this.k.setMeshes(e), this.p.render(this.it, l, this.k, o && o.fbo), y;\n } },\n {\n key: \"prepareRender\",\n value: function prepareRender(t) {\n this.ot(t);\n } },\n {\n key: \"ot\",\n value: function ot(t) {\n t && t.states && t.states.includesChanged && (this.nt.dispose(), delete this.nt, this.et.dispose(), delete this.et), this.ct(t);\n } },\n {\n key: \"tt\",\n value: function tt(t, e, n, r, s, i, o) {\n t.filter = n.filter(function (t) {\n return !!t;\n }), e.stencilEnable = !1, e.cullFace = \"back\";\n var a = r && r.fbo;\n var c = 0;\n var l = [],\n h = [];\n var u = !1,\n f = i[0] && i[0].properties.branchRootId;\n for (var _n14 = 0; _n14 < i.length; _n14++) {\n var _r12 = i[_n14].properties.branchRootId;\n _r12 !== f && (u ? (h.length && (c += this.lt(t, e, a, !1, h), h.length = 0), c += this.lt(t, e, a, u, l)) : kt(h, l), f = _r12, u = !1, l.length = 0), l.push(i[_n14]), i[_n14].properties.selectionDepth < 255 && (u = !0), _n14 === i.length - 1 && (u || (kt(h, l), l.length = 0), h.length && (c += this.lt(t, e, a, !1, h)), c += this.lt(t, e, a, u, l));\n }\n return this.I.setMeshes(i.filter(function (t) {\n return t.properties.isLeaf;\n })), this.C.setMeshes(o), c += this.p.render(t, e, this.C, r && r.fbo), c;\n } },\n {\n key: \"lt\",\n value: function lt(t, e, n, r, s) {\n return s.length ? (this.I.setMeshes(s), e.stencilEnable = !1, r && (this.ht(n), e.stencilEnable = !1, e.cullFace = \"front\", this.p.render(t, e, this.I, n), e.cullFace = \"back\", e.stencilEnable = !0), this.p.render(t, e, this.I, n)) : 0;\n } },\n {\n key: \"ht\",\n value: function ht(t) {\n this.m.clear({\n stencil: 255,\n framebuffer: t });\n\n } },\n {\n key: \"getCurrentB3DMMeshes\",\n value: function getCurrentB3DMMeshes() {\n return this.I.getMeshes();\n } },\n {\n key: \"getCurrentI3DMMeshes\",\n value: function getCurrentI3DMMeshes() {\n return this.C.getMeshes();\n } },\n {\n key: \"ut\",\n value: function ut(t, e) {\n return e.V.ft - t.V.ft;\n } },\n {\n key: \"deleteTile\",\n value: function deleteTile(t) {\n var e = t.node;\n e.dt && (e.dt.geometry.dispose(), e.dt.dispose(), delete e.dt);\n var n = e.id;\n this.bt(n);\n } },\n {\n key: \"bt\",\n value: function bt(t) {\n var e = this.T[t] || this._[t] || this.M[t] || this.O[t] || this.v[t];\n this.O[t] ? this.yt(t) : e && (this.gt(e), delete this.T[t], delete this._[t], delete this.M[t], delete this.v[t]);\n } },\n {\n key: \"yt\",\n value: function yt(t) {\n var e = this.O[t];\n e = xt(e);\n for (var _t19 = 0; _t19 < e.length; _t19++) {\n var _n15 = e[_t19].properties.id;\n this.bt(_n15);\n }\n delete this.O[t];\n } },\n {\n key: \"gt\",\n value: function gt(t) {\n if (Array.isArray(t)) for (var _e24 = 0, _n16 = t.length; _e24 < _n16; _e24++) this.gt(t[_e24]);else {\n _gl.HighlightUtil.showOnly(this.m, t), _gl.HighlightUtil.highlightMesh(this.m, t);\n var _e25 = t.geometry.properties.url;\n if (_e25) {\n var _n17 = this.A[_e25];\n _n17 && _n17.refMeshes && (_n17.refMeshes.delete(t.uuid), _n17.refMeshes.size || (_n17.geometry.dispose(), _n17.material.dispose(), delete this.A[_e25]));\n } else t.geometry.dispose(), t.material && t.material.dispose();\n t.dispose();\n }\n } },\n {\n key: \"remove\",\n value: function remove() {\n var t = this.h;\n Pn(t.getRenderer().canvas, t.getMap());\n for (var _t20 in this.O) this.yt(_t20);\n this.O = {};\n for (var _t21 in this.T) this.bt(_t21);\n this.T = {};\n for (var _t22 in this._) this.bt(_t22);\n this._ = {};\n for (var _t23 in this.M) this.bt(_t23);\n this.M = {};\n for (var _t24 in this.v) this.bt(_t24);\n this.v = {}, this.et && (this.et.dispose(), delete this.et), this.nt && (this.nt.dispose(), delete this.nt), this.st && (this.st.dispose(), delete this.st), this.it && (this.it.dispose(), delete this.it), this.P.dispose(), this.picking && this.picking.dispose();\n } },\n {\n key: \"F\",\n value: function F(t) {\n return this.T[t.id] || this._[t.id] || this.M[t.id] || this.O[t.id];\n } },\n {\n key: \"has\",\n value: function has(t) {\n return this.F(t) || this.v[t.id];\n } },\n {\n key: \"q\",\n value: function q(t) {\n var e = t.properties.magic;\n \"b3dm\" === e ? this.wt(t) : \"i3dm\" === e ? this.vt(t) : \"pnts\" === e && this.Tt(t);\n } },\n {\n key: \"createPntsMesh\",\n value: function createPntsMesh(t, e, s, i) {\n if (this._[e]) {\n var _t25 = this._[e];\n return console.warn(\"pnts mesh with id(\".concat(e, \") was already created.\")), i(null, {\n id: e,\n mesh: _t25 }),\n _t25;\n }\n var o = t.pnts,\n a = t.featureTable,\n c = t.rootIdx,\n l = t.compressed_int16_params,\n h = a.POINTS_LENGTH;\n o.BATCH_ID || (o.BATCH_ID = new Uint8Array(h), o.BATCH_ID.fill(0));\n var u = new _gl.reshader.Geometry(o, null, h, {\n static: !0,\n primitive: \"points\",\n positionAttribute: \"POSITION\",\n pickingIdAttribute: \"BATCH_ID\" });\n\n u.generateBuffers(this.m);\n var f = {};\n o.POSITION ? f.HAS_POSITION = 1 : o.POSITION_QUANTIZED && (f.HAS_POSITION_QUANTIZED = 1), o.RGB ? f.HAS_RGB = 1 : o.RGBA ? f.HAS_RGBA = 1 : o.RGB565 && (f.HAS_RGB565 = 1), (o.NORMAL || o.NORMAL_OCT16P) && (f.HAS_NORMAL = 1, o.NORMAL_OCT16P && (f.HAS_NORMAL_OCT16P = 1)), this._t(f, l), t.featureTable.CONSTANT_RGBA && (t.featureTable.CONSTANT_RGBA = t.featureTable.CONSTANT_RGBA.map(function (t) {\n return t / 255;\n }));\n var d = t.rtcCenter,\n m = t.rtcCoord,\n p = t.projCenter,\n b = this.h.j(c),\n y = new _gl.reshader.Mesh(u);\n y.properties.magic = \"pnts\", y.properties.id = e, y.properties.node = s, y.properties.count = h, y.properties.batchTable = t.batchTable, y.properties.batchTableBin = t.batchTableBin, y.properties.serviceIndex = c, y.properties.rtcCoord = m, y.properties.rtcCenter = d, y.properties.projCenter = p, y.setDefines(f), y.setFunctionUniform(\"pointColor\", function () {\n return t.featureTable.CONSTANT_RGBA ? t.featureTable.CONSTANT_RGBA : b && b.pointColor || [1, 1, 1, 1];\n });\n var g = this.getMap();\n var w = null,\n v = null;\n y.setFunctionUniform(\"pointSize\", function () {\n if (!b) return 2;\n if (_n(b.pointSize)) {\n var _t26 = JSON.stringify(b.pointSize);\n _t26 !== w && (v = Mn(b.pointSize), w = _t26);\n return v(g.getZoom());\n }\n return b.pointSize || 2;\n });\n var T = null,\n _ = null;\n return y.setFunctionUniform(\"pointOpacity\", function () {\n if (!b) return 1;\n if (_n(b.pointOpacity)) {\n var _t27 = JSON.stringify(b.pointOpacity);\n _t27 !== T && (_ = Mn(b.pointOpacity), T = _t27);\n return _(g.getZoom());\n }\n return b.pointOpacity || 1;\n }), this.Mt(y, l), this.Tt(y), y.$ = _gl.mat4.copy([], y.localTransform), this._[e] = y, i(null, {\n id: e,\n mesh: [y] }),\n [y];\n } },\n {\n key: \"Tt\",\n value: function Tt(t) {\n var e = t.localTransform || [],\n _t$properties = t.properties,\n n = _t$properties.rtcCoord,\n r = _t$properties.node,\n s = _t$properties.projCenter;\n this.Ot(e, n, s, r.H), t.setLocalTransform(e);\n } },\n {\n key: \"createI3DMMesh\",\n value: function createI3DMMesh(t, e, s, i) {\n var _this5 = this;\n if (this.M[e]) {\n var _t28 = this.M[e];\n return console.warn(\"i3dm mesh with id(\".concat(e, \") was already created.\")), this.v[e] || i(null, {\n id: e,\n mesh: _t28 }),\n _t28;\n }\n var c = this.h.j(s.H),\n l = this.At(s.xt),\n h = t.i3dm,\n u = t.featureTable,\n f = t.gltf,\n d = t.batchTable,\n m = t.batchTableBin,\n p = t.count,\n b = u.INSTANCES_LENGTH,\n y = t.rtcCenter,\n g = t.rtcCoord,\n w = t.projCenter,\n v = this.It(rr, s, y, g);\n qe(v, qn, v);\n var T = _gl.mat4.getRotation(sr, v);\n _gl.quat.normalize(T, T);\n var _ = _gl.mat4.getScaling(ir, v),\n M = _gl.mat4.fromScaling(or, _),\n O = this.St(ar, w, s),\n A = this.Ct(hr),\n x = this.kt(ur, g),\n I = _gl.vec3.div(fr, x, A),\n S = _gl.mat4.fromScaling(dr, I),\n C = h.POSITION,\n k = h.NORMAL_UP,\n N = h.NORMAL_RIGHT,\n L = h.SCALE,\n E = h.SCALE_NON_UNIFORM,\n R = {\n \"instance_vectorA\": new Float32Array(4 * b),\n \"instance_vectorB\": new Float32Array(4 * b),\n \"instance_vectorC\": new Float32Array(4 * b),\n \"aPickingId\": new Uint16Array(b) };\n\n for (var _t29 = 0; _t29 < b; _t29++) R.aPickingId[_t29] = _t29;\n var P = new Float32Array(3),\n U = new Float32Array(3),\n B = [],\n G = new Float32Array(1),\n D = new Float32Array(3),\n F = [],\n j = [],\n z = [],\n H = [];\n !function (t, e) {\n var n = t.byteOffset,\n r = t.byteStride,\n s = t.count;\n var i = t.componentType,\n o = t.itemSize,\n a = t.array.buffer,\n c = i ? qt.getTypedArrayCtor(i) : t.array.constructor;\n if (n = void 0 === n ? t.array.byteOffset : n, r = r || 0, s = s || t.array.length / o, (!r || r === o * c.BYTES_PER_ELEMENT) && n % c.BYTES_PER_ELEMENT == 0) {\n var _t30 = new c(a, n, s * o);\n for (var _r13 = 0; _r13 < s * o; _r13 += o) e(new c(_t30.buffer, n + _r13 * c.BYTES_PER_ELEMENT, o), _r13 / o);\n return;\n }\n var l = new Uint8Array(o * c.BYTES_PER_ELEMENT);\n r || (r = o * c.BYTES_PER_ELEMENT);\n for (var _t31 = 0; _t31 < s; _t31++) {\n var _s16 = new Uint8Array(a, r * _t31 + n, o * c.BYTES_PER_ELEMENT);\n l.set(_s16), e(new c(l.buffer), _t31), _s16.set(l);\n }\n }(C, function (t, e) {\n k ? (Qt(U, N, e), Qt(P, k, e), _gl.vec3.cross(B, U, P), _gl.vec3.normalize(B, B), At(F, U, 0), At(F, P, 1), At(F, B, 2), _gl.quat.fromMat3(j, F), _gl.quat.normalize(j, j), _gl.quat.multiply(j, T, j)) : _gl.quat.identity(j), L ? (Qt(G, L, e), _gl.vec3.set(z, G[0], G[0], G[0])) : E ? (Qt(D, E, e), _gl.vec3.set.apply(a, [z].concat(_toConsumableArray(D)))) : _gl.vec3.set(z, 1, 1, 1), _gl.mat4.fromRotationTranslationScale(H, j, t, z), te(R.instance_vectorA, e, H, 0), te(R.instance_vectorB, e, H, 1), te(R.instance_vectorC, e, H, 2);\n });\n var q = {};\n for (var _t32 in R) q[_t32] = {\n buffer: this.m.buffer({\n dimension: R[_t32].length / b,\n data: R[_t32] }),\n\n divisor: 1 };\n\n var $ = c.shader || \"pbr\";\n var V = 0,\n J = !0;\n var Y = [],\n Z = [];\n return $t(f, function (t, i, o, a) {\n var c = _this5.Nt(t, i, o, a, s, !0, $, Z),\n h = c.geometry,\n f = c.material;\n f && !f.isReady() && (J = !1, V++);\n var T = new _gl.reshader.InstancedMesh(q, b, h, f);\n c.refMeshes || (c.refMeshes = new Set(), c.refMeshes.add(T.uuid)), T.properties.magic = \"i3dm\", T.properties.id = e, T.properties.count = p, T.properties.batchTable = d, T.properties.batchTableBin = m, T.properties.serviceIndex = s.H, T.properties.rtcCoord = g, T.properties.rtcCenter = y, T.properties.projCenter = w, T.properties.node = s;\n var _ = _this5.Lt(t, h, f, s.H, a);\n t.compressed_int16_params && _this5.Mt(T, t.compressed_int16_params), _this5.Et(T, t.attributes);\n var A = _gl.mat4.identity([]);\n if (t.matrices && t.matrices.length) for (var _e26 = 0; _e26 < t.matrices.length; _e26++) _gl.mat4.multiply(A, A, t.matrices[_e26]);\n _gl.mat4.multiply(A, l, A), _gl.mat4.multiply(A, S, A), u.EAST_NORTH_UP || k ? _gl.mat4.multiply(A, M, A) : _gl.mat4.multiply(A, v, A), T.setPositionMatrix(A), _this5.vt(T, O), T.setDefines(_), T.properties.polygonOffset = {\n offset: 0,\n factor: 0 },\n Y.push(T), delete t.attributes, T.$ = _gl.mat4.copy([], T.localTransform);\n }), vr(Z), J ? (this.M[e] = Y, i(null, {\n id: e,\n mesh: Y })) : (\n this.v[e] = {\n meshes: Y,\n count: V },\n Y.Rt = i), Y;\n } },\n {\n key: \"vt\",\n value: function vt(t, e) {\n var _t$properties2 = t.properties,\n n = _t$properties2.rtcCoord,\n s = _t$properties2.node,\n i = _t$properties2.projCenter;\n e || (e = this.St(ar, i, s));\n var o = this.h.j(s.H),\n a = t.localTransform || [];\n if (o.coordOffset) {\n var _t33 = this.Pt(rr, s.H, n);\n _gl.mat4.multiply(a, _t33, e);\n } else _gl.mat4.copy(a, e);\n t.setLocalTransform(a), t.properties.heightOffset = o.heightOffset || 0, t.properties.coordOffset = o.coordOffset && o.coordOffset.slice(0) || $n;\n } },\n {\n key: \"St\",\n value: function St(t, e, n) {\n _gl.mat4.fromScaling(t, this.Ct(hr));\n var s = this.Ut(er, e, n.H);\n return _gl.mat4.multiply(t, _gl.mat4.fromTranslation(cr, s), t), t;\n } },\n {\n key: \"createB3DMMesh\",\n value: function createB3DMMesh(e, s, i, o) {\n var _this6 = this;\n if (e.gltf && (e.gltf.transferables = null), this.T[s] || this.v[s]) {\n var _t34 = this.T[s];\n return console.warn(\"mesh with id(\".concat(s, \") was already created.\")), this.v[s] || o(null, {\n id: s,\n mesh: _t34 }),\n _t34;\n }\n var a;\n if (i.maxExtent) {\n var _e27 = new t.Extent(i.maxExtent).convertTo(function (t) {\n return _this6._pointToPrj(t);\n });\n a = [_e27.xmin, _e27.ymin, _e27.xmax, _e27.ymax];\n }\n var c = e.gltf,\n l = c.extensions.MAPTALKS_RTC.projCenter,\n _c$extensions$CESIUM_ = c.extensions.CESIUM_RTC,\n h = _c$extensions$CESIUM_.rtcCoord,\n u = _c$extensions$CESIUM_.center,\n f = c.asset.sharePosition,\n d = this.At(i.xt),\n m = this.Bt(ar, f, h, u, l, i),\n p = this.h.j(i.H);\n var b = p.shader || \"pbr\";\n if (p.unlit) b = \"phong\";else if (c.materials) for (var _t35 = 0; _t35 < c.materials.length; _t35++) if (c.materials[_t35] && c.materials[_t35].extensions && c.materials[_t35].extensions.KHR_materials_unlit) {\n b = \"phong\";\n break;\n }\n var y = [],\n g = [];\n var w = 0,\n v = !0;\n return $t(c, function (t, o, c, T) {\n var _ = _this6.Nt(t, o, c, T, i, !1, b, y),\n M = _.geometry,\n O = _.material;\n O && !O.isReady() && (v = !1, w++);\n var A = new _gl.reshader.Mesh(M, O);\n _.refMeshes || (_.refMeshes = new Set(), _.refMeshes.add(A.uuid)), A.properties.magic = \"b3dm\", A.properties.id = s, A.properties.node = i, e.batchTable && (A.properties.batchTable = e.batchTable, A.properties.batchTableBin = e.batchTableBin), A.properties.count = e.featureTable && e.featureTable.BATCH_LENGTH || 0, A.properties.serviceIndex = i.H;\n var x = _this6.Lt(t, M, O, i.H, T);\n A.setDefines(x);\n var I = t.compressUniforms;\n if (I) for (var _t36 in I) A.setUniform(_t36, I[_t36]);\n t.compressed_int16_params && _this6.Mt(A, t.compressed_int16_params), _this6.Et(A, t.attributes), a && (x.USE_MAX_EXTENT = 1, A.setUniform(\"maxPrjExtent\", a)), A.hasFunctionUniform(\"polygonOpacity\") || A.setFunctionUniform(\"polygonOpacity\", function () {\n return gt(p.opacity) ? p.opacity : 1;\n }), A.hasFunctionUniform(\"polygonFill\") || A.setFunctionUniform(\"polygonFill\", function () {\n return Lt([], p.polygonFill || Dn);\n }), A.material.hasFunctionUniform(\"hsv\") || A.material.setFunctionUniform(\"hsv\", function () {\n return p.hsv || Fn;\n });\n var S = _gl.mat4.identity([]);\n if (f && t.matrices && t.matrices.length) for (var _e28 = 0; _e28 < t.matrices.length; _e28++) _gl.mat4.multiply(S, S, t.matrices[_e28]);\n f && _gl.mat4.multiply(S, d, S), A.properties.node = i, A.properties.projCenter = l, A.properties.nodeMatrix = S, A.properties.isSharedPosition = f, A.properties.rtcCoord = h, A.properties.rtcCenter = u, _this6.wt(A, m), g.push(A), delete t.attributes, A.$ = _gl.mat4.copy([], A.localTransform);\n }), vr(y), v ? (this.T[s] = g, o(null, {\n id: s,\n mesh: g })) : (\n this.v[s] = {\n meshes: g,\n count: w },\n g.Rt = o), g;\n } },\n {\n key: \"Gt\",\n value: function Gt(t) {\n var e = this.h.Dt(t.id);\n if (!e || t.dt) return;\n var s, i, o, a;\n if (e.obbox) s = e.boxPosition, i = pr, o = e.boxCenter, a = gr;else if (e.sphereBox) {\n var _t37 = e.sphereBox[0],\n _n18 = e.sphereBox[1];\n s = br.vertices, i = br.indices, o = _t37, a = [_n18, _n18, _n18];\n }\n var c = new _gl.reshader.Geometry({\n POSITION: s },\n i, 0, {\n primitive: \"lines\",\n positionAttribute: \"POSITION\" }),\n\n l = new _gl.reshader.Mesh(c, new _gl.reshader.Material({\n lineColor: [.8, .8, .1, 1],\n lineOpacity: 1 })),\n\n h = [];\n _gl.mat4.fromRotationTranslationScale(h, yr, o, a), l.localTransform = h, l.$ = _gl.mat4.copy([], h), l.properties.node = t, t.dt = l;\n } },\n {\n key: \"Ft\",\n value: function Ft(t) {\n t.dt && (t.dt.geometry.dispose(), t.dt.dispose(), delete t.dt);\n } },\n {\n key: \"Mt\",\n value: function Mt(t, e) {\n e.POSITION && t.setUniform(\"compressedPositionRange\", e.POSITION), e.TEXCOORD_0 && t.setUniform(\"compressedTexcoordRange_0\", e.TEXCOORD_0), e.TEXCOORD_1 && t.setUniform(\"compressedTexcoordRange_1\", e.TEXCOORD_0), e.NORMAL && t.setUniform(\"compressedNormalRange\", e.NORMAL), e.TANGENT && t.setUniform(\"compressedTangentRange\", e.TANGENT), e.compressed_ratio && t.setUniform(\"compressed_ratio\", e.compressed_ratio);\n } },\n {\n key: \"wt\",\n value: function wt(t, e) {\n var _t$properties3 = t.properties,\n n = _t$properties3.isSharedPosition,\n s = _t$properties3.rtcCoord,\n i = _t$properties3.rtcCenter,\n o = _t$properties3.projCenter,\n a = _t$properties3.nodeMatrix,\n c = _t$properties3.node;\n e || (e = this.Bt(e || ar, n, s, i, o, c));\n var l = t.localTransform || _gl.mat4.identity([]);\n _gl.mat4.multiply(l, e, a);\n var h = this.h.j(c.H);\n if (h.coordOffset) {\n var _t38 = this.Pt(rr, c.H, s);\n _gl.mat4.multiply(l, _t38, l);\n }\n t.setLocalTransform(l), t.properties.heightOffset = h.heightOffset || 0, t.properties.coordOffset = h.coordOffset && h.coordOffset.slice(0) || $n;\n } },\n {\n key: \"Bt\",\n value: function Bt(t, e, n, s, i, o) {\n if (e) {\n var _e29 = this.kt(ur, n),\n _i14 = _gl.mat4.fromScaling(nr, _e29),\n _a3 = this.It(rr, o, s, n);\n _gl.mat4.multiply(t, _a3, _i14);\n } else this.Ot(t, n, i, o.H);\n return t;\n } },\n {\n key: \"Et\",\n value: function Et(t, e) {\n if (e && e.TEXCOORD_0 && e.TEXCOORD_0.extensions && e.TEXCOORD_0.extensions.WEB3D_quantized_attributes) {\n var _n19 = e.TEXCOORD_0.extensions.WEB3D_quantized_attributes.decodeMatrix;\n t.setUniform(\"decodeMatrix\", _n19);\n }\n } },\n {\n key: \"It\",\n value: function It(t, e, n, s) {\n var i = this.getMap(),\n o = this.h.j(e.H).heightOffset || 0,\n c = e.matrix ? _gl.mat4.copy(t, e.matrix) : _gl.mat4.identity(t);\n if (n) {\n qe(c, _gl.vec3.transformMat4(Zn, n, c), c);\n }\n var l = function (t, e, n, r, s, i, o) {\n e = _glMatrix.vec3.copy(Ve, e);\n var a = ie(Ve, e[0] * en, e[1] * en, e[2]),\n c = _glMatrix.mat4.getTranslation(Je, n),\n l = r.ellipsoid;\n var h;\n h = 0 === _glMatrix.vec3.len(c) ? _glMatrix.vec3.set(Ye, 0, 0, -6378137) : ue(Ye, c), Qe.x = h[0], Qe.y = h[1];\n var u = r.project(Qe, tn);\n Ze[0] = u.x / s, Ze[1] = u.y / s, Ze[2] = (h[2] + o) * i;\n var f = $e(a, l, Ke);\n return qe(function (t, e, n) {\n var r = t[0],\n s = t[1],\n i = t[2],\n o = t[4],\n a = t[5],\n c = t[6],\n l = t[8],\n h = t[9],\n u = t[10],\n f = e[0],\n d = e[1],\n m = e[2],\n p = e[3],\n b = e[4],\n y = e[5],\n g = e[6],\n w = e[7],\n v = e[8],\n T = r * f + o * d + l * m,\n _ = s * f + a * d + h * m,\n M = i * f + c * d + u * m,\n O = r * p + o * b + l * y,\n A = s * p + a * b + h * y,\n x = i * p + c * b + u * y,\n I = r * g + o * w + l * v,\n S = s * g + a * w + h * v,\n C = i * g + c * w + u * v;\n return n[0] = T, n[1] = _, n[2] = M, n[3] = 0, n[4] = O, n[5] = A, n[6] = x, n[7] = 0, n[8] = I, n[9] = S, n[10] = C, n[11] = 0, n[12] = t[12], n[13] = t[13], n[14] = t[14], n[15] = t[15], n;\n }(_glMatrix.mat4.invert(Xe, f), _glMatrix.mat3.fromMat4(We, n), t), Ze, t), t;\n }(c, s, c, i.getProjection(), i.getGLRes(), this.B, o),\n h = function (t, e) {\n return _glMatrix.vec3.set(t, e[12], e[13], e[14]), t;\n }(er, l);\n var u = this.h.options.offset;\n if (bt(u)) {\n var _t39 = this.h.Dt(e.id).boxCoord;\n u = u.call(this.h, _t39);\n }\n return _gl.vec3.set(tr, u[0], u[1], 0), _gl.vec3.sub(h, h, tr), qe(l, h, l), l;\n } },\n {\n key: \"Pt\",\n value: function Pt(t, e, n) {\n var s = this.h.j(e);\n if (!s.coordOffset) return null;\n var i = this.getMap(),\n o = i.getGLRes();\n Kn.set(n[0], n[1]);\n var c = i.coordToPointAtRes(Kn, o, Wn),\n l = s.coordOffset,\n h = Kn.set(n[0] + l[0], n[1] + l[1]),\n u = i.coordToPointAtRes(h, o, Qn),\n f = u.x - c.x,\n d = u.y - c.y,\n m = this.B,\n p = _gl.vec3.set(tr, f, d, (l[2] || 0) * m);\n return _gl.mat4.fromTranslation(t, p);\n } },\n {\n key: \"createCMPTMesh\",\n value: function createCMPTMesh(t, e, n, r) {\n if (this.O[e]) {\n var _t40 = this.O[e];\n return console.warn(\"mesh with id(\".concat(e, \") was already created.\")), r(null, {\n id: e,\n mesh: _t40 }),\n _t40;\n }\n var s = t.content,\n i = [];\n for (var _t41 = 0; _t41 < s.length; _t41++) {\n var _r14 = s[_t41].magic,\n _o7 = e + \".\" + _t41;\n \"b3dm\" === _r14 ? this.createB3DMMesh(s[_t41], _o7, n, function (t, _ref2) {\n var e = _ref2.mesh;\n i.push(e);\n }) : \"i3dm\" === _r14 ? this.createI3DMMesh(s[_t41], _o7, n, function (t, _ref3) {\n var e = _ref3.mesh;\n i.push(e);\n }) : \"pnts\" === _r14 ? this.createPntsMesh(s[_t41], _o7, n, function (t, _ref4) {\n var e = _ref4.mesh;\n i.push(e);\n }) : \"cmpt\" === _r14 && this.createCMPTMesh(s[_t41], _o7, n, function (t, _ref5) {\n var e = _ref5.mesh;\n i.push(e);\n });\n }\n return this.O[e] = i, r(null, {\n id: e,\n mesh: i }),\n i;\n } },\n {\n key: \"Lt\",\n value: function Lt(t, e, n, r, s) {\n var i = (\"phong\" === (this.h.j(r).shader || \"pbr\") ? this.et : this.nt).getGeometryDefines(e);\n s.asset && \"S3M\" === s.asset.generator && this.jt(i, e), e.data.uvRegion && (i.HAS_I3S_UVREGION = 1), e.data[e.desc.normalAttribute] && (i.VertexNormal = 1), e.data[e.desc.color0Attribute] && (i.VertexColor = 1), e.data[e.desc.uv0Attribute] && (i.TexCoord = 1), e.data[e.desc.textureCoordMatrixAttribute] && (i.HAS_TextureCoordMatrix = 1), n.get(\"uTexture\") && (i.COMPUTE_TEXCOORD = 1), n.get(\"uTexture2\") && (i.TexCoord2 = 1), \"MESHOPT\" === this.h.zt && (i.MeshOPT_Compress = 1), this.hasIBL() && (i.HAS_IBL_LIGHTING = 1), t.attributes && t.attributes.TEXCOORD_0 && \"WEB3D_quantized_attributes\" === t.attributes.TEXCOORD_0.extensions && (i.HAS_WEB3D_quantized_attributes_TEXCOORD = 1), i.HAS_MIN_ALTITUDE = 1, i.HAS_LAYER_OPACITY = 1, this._t(i, t.compressed_int16_params);\n return pt(i, t.compressDefines), i;\n } },\n {\n key: \"_t\",\n value: function _t(t, e) {\n e && Object.keys(e).length > 0 && (t.HAS_COMPRESSED_INT16 = 1, e.POSITION && (t.HAS_COMPRESSED_INT16_POSITION = 1), e.TEXCOORD_0 && (t.HAS_COMPRESSED_INT16_TEXCOORD_0 = 1), e.TEXCOORD_1 && (t.HAS_COMPRESSED_INT16_TEXCOORD_1 = 1), e.NORMAL && (t.HAS_COMPRESSED_INT16_NORMAL = 1), e.TANGENT && (t.HAS_COMPRESSED_INT16_TANGENT = 1), e.compressed_ratio && (t.HAS_COMPRESSED_INT16_RATIO = 1));\n } },\n {\n key: \"X\",\n value: function X(t) {\n var e = this.h.getRenderer();\n e && e.updateMaskDefines(t);\n } },\n {\n key: \"jt\",\n value: function jt(t, e) {\n e.data.aNormal && (t.VertexNormal = 1), e.data.instanceId && (t.Instance = 1), e.data.aTexCoord0 && (t.TexCoord = 1), e.data.aColor && (t.VertexColor = 1), e.data.aTexCoord1 && (t.TexCoord2 = 1), e.data.uv2 && (t.InstanceBim = 1);\n } },\n {\n key: \"Nt\",\n value: function Nt(t, e, r, s, i, o, a, c) {\n var _this7 = this;\n var l = !1;\n s.asset && \"S3M\" === s.asset.generator && (l = !0, s.extensions = s.extensions || {});\n var h = s.url + \"-\" + e + \"-\" + r;\n if (this.A[h]) return this.A[h];\n var u, f;\n c.push(t);\n var d = s.materials && s.materials[t.material],\n m = s.extensions && s.extensions.KHR_techniques_webgl,\n p = this.h.j(i.H);\n if (m && d.extensions && d.extensions.KHR_techniques_webgl) {\n var _e30 = this.Ht(t, s, o, l);\n u = _e30.material, f = _e30.geometry, p.fillEmptyDataInMissingAttribute && (f.desc.fillEmptyDataInMissingAttribute = !0);\n } else {\n f = this.qt(t, o, mr);\n var _e31 = p.material;\n u = this.$t(t.material, s, a, _e31 || jn, c, p);\n }\n u && (u.setFunctionUniform(\"alphaTest\", function () {\n var t = p.alphaTest;\n return mt(t) ? .1 : t;\n }), u.setFunctionUniform(\"environmentExposure\", function () {\n var t = p.ambientLight;\n var e = p.environmentExposure;\n var n = _this7.getMap().getLightManager(),\n r = n && n.getAmbientLight();\n if (t && (!r || r.color) && void 0 === e) {\n var _n20 = r && r.color ? r.color[0] : .2;\n e = t[0] / _n20;\n }\n return e || 1;\n })), u && !u.isReady() ? u.Vt = i.id : u || (u = new _gl.reshader.PhongMaterial({\n \"baseColorFactor\": [1, 1, 1, 1] }));\n\n var b = {\n geometry: f,\n material: u };\n\n return f.properties.url = h, this.A[h] = b, b;\n } },\n {\n key: \"Ht\",\n value: function Ht(t, e, n, r) {\n var _this$P$createMesh = this.P.createMesh(t, e, n, r),\n s = _this$P$createMesh.geometry,\n i = _this$P$createMesh.material;\n return {\n geometry: s,\n material: i };\n\n } },\n {\n key: \"qt\",\n value: function qt(t, e, r) {\n var s = t.attributes,\n i = \"COLOR_0\";\n var o = s._BATCHID && s._BATCHID.array;\n if (o && o.byteOffset && (o = new o.constructor(o)), s[i]) {\n var _t42 = s[i].array || s[i];\n if (_t42 instanceof Float32Array) {\n var _e32 = new Uint8Array(_t42.length);\n for (var _n21 = 0; _n21 < _e32.length; _n21++) _e32[_n21] = Math.round(255 * _t42[_n21]);\n s[i].array ? (s[i].array = _e32, s[i].componentType = 5121) : s[i] = _e32;\n }\n }\n var a = {};\n for (var _t43 in s) {\n var _e33 = Nn(this.m, s[_t43], {\n dimension: s[_t43].itemSize }),\n\n _n22 = r[_t43] || _t43;\n a[_n22] = {\n buffer: _e33 },\n s[_t43].quantization && (a[_n22].quantization = s[_t43].quantization), _n22 === r.POSITION && (a[_n22].array = s[_t43].array, a[_n22].min = s[_t43].min, a[_n22].max = s[_t43].max);\n }\n var c = t.indices ? t.indices.array ? t.indices.array.slice() : t.indices : null,\n l = new _gl.reshader.Geometry(a, c, 0, {\n positionAttribute: r.POSITION,\n normalAttribute: r.NORMAL,\n uv0Attribute: r.TEXCOORD_0,\n uv1Attribute: r.TEXCOORD_1,\n color0Attribute: r.COLOR_0,\n tangentAttribute: r.TANGENT,\n pickingIdAttribute: r._BATCHID,\n primitive: void 0 === t.mode ? \"triangles\" : kn(t.mode) });\n\n return o && c && (l.properties.batchIdData = o, l.properties.batchIdMap = function (t, e) {\n if (!e) return null;\n var n = new Map();\n for (var _r15 = 0; _r15 < e.length; _r15++) {\n var _s17 = e[_r15],\n _i15 = t[_s17];\n var _o8 = n.get(_i15);\n _o8 || (_o8 = [], n.set(_i15, _o8)), _o8.push(_s17);\n }\n return n;\n }(o, c)), l.generateBuffers(this.m, {\n excludeElementsInVAO: e }),\n l;\n } },\n {\n key: \"Ot\",\n value: function Ot(t, e, n, s) {\n var i = _gl.mat4.identity(t),\n o = this.Ct(zn);\n return this.Ut(er, n, s), _gl.mat4.translate(i, i, er), _gl.mat4.scale(i, i, o), i;\n } },\n {\n key: \"Ut\",\n value: function Ut(t, e, n) {\n var r = this.B;\n Kn.x = e[0], Kn.y = e[1];\n var s = this._prjToPoint(Kn);\n var i = this.h.options.offset;\n bt(i) && (i = i.call(this.h, Kn));\n var o = this.h.j(n).heightOffset || 0;\n return _gl.vec3.set(t, s.x - i[0], s.y - i[1], r * e[2] + r * o), t;\n } },\n {\n key: \"W\",\n value: function W(t, e) {\n var n = this.h.Jt(lr, e);\n t.localTransform = _gl.mat4.multiply(t.localTransform, n, t.$);\n } },\n {\n key: \"kt\",\n value: function kt(t, e) {\n var n = this.getMap();\n Kn.x = e[0], Kn.y = e[1];\n var r = n.distanceToPointAtRes(100, 100, n.getGLRes(), Kn),\n s = this.B;\n return _gl.vec3.set(t, r.x / 100, r.y / 100, s), t;\n } },\n {\n key: \"ct\",\n value: function ct(t) {\n var _this8 = this;\n if (this.nt) return;\n var e = {\n x: 0,\n y: 0,\n width: function width() {\n return _this8.u ? _this8.u.width : 1;\n },\n height: function height() {\n return _this8.u ? _this8.u.height : 1;\n } },\n\n s = [],\n o = [];\n this.st = new _gl.reshader.MeshShader({\n vert: ee,\n frag: \"#define SHADER_NAME PNTS\\n\\nprecision mediump float;\\n\\n\\n\\nvarying vec4 vColor;\\n\\n\\n\\nvoid main() {\\n\\n vec2 circCoord = 2.0 * gl_PointCoord - 1.0;\\n\\n if (dot(circCoord, circCoord) > 1.0) {\\n\\n discard;\\n\\n } else {\\n\\n gl_FragColor = vColor;\\n\\n }\\n\\n}\\n\\n\",\n uniforms: [{\n name: \"projViewModelMatrix\",\n type: \"function\",\n fn: function fn(t, e) {\n return _gl.mat4.multiply(o, e.projViewMatrix, e.modelMatrix);\n } },\n {\n name: \"modelNormalMatrix\",\n type: \"function\",\n fn: function fn(t, e) {\n return _gl.mat3.fromMat4(s, e.modelMatrix);\n } }],\n\n extraCommandProps: {\n viewport: e,\n blend: {\n enable: !0,\n func: {\n src: \"one\",\n dst: \"one minus src alpha\" },\n\n equation: \"add\" },\n\n depth: {\n enable: !0,\n func: \"<\" } } });\n\n\n\n var a = {},\n l = [];\n _gl.ContextUtil.fillIncludes(a, l, t);\n var h = this.U();\n this.et = new _gl.reshader.PhongShader({\n uniforms: l,\n defines: a,\n extraCommandProps: h }),\n this.nt = new _gl.reshader.pbr.StandardShader({\n uniforms: l,\n defines: a,\n extraCommandProps: h }),\n this.it = new _gl.reshader.EdgeShader({\n extraCommandProps: {\n viewport: {\n x: 0,\n y: 0,\n width: function width() {\n return _this8.u ? _this8.u.width : 1;\n },\n height: function height() {\n return _this8.u ? _this8.u.height : 1;\n } },\n\n blend: {\n enable: !0,\n func: {\n srcRGB: \"src alpha\",\n srcAlpha: 1,\n dstRGB: \"one minus src alpha\",\n dstAlpha: \"one minus src alpha\" },\n\n equation: \"add\" } } });\n\n\n\n var u = this.h;\n Rn(u.getRenderer().canvas, this.m, u.getMap()), this.picking = new _gl.reshader.FBORayPicking(this.p, {\n vert: this.nt.vert,\n extraCommandProps: h,\n uniforms: this.nt.uniforms,\n defines: {\n \"PICKING_MODE\": 1,\n \"ENABLE_PICKING\": 1,\n \"HAS_PICKING_ID\": 1 } },\n\n this.pickingFBO, this.getMap()), this.Yt = new _gl.reshader.FBORayPicking(this.p, {\n vert: ee,\n extraCommandProps: h,\n uniforms: this.st.uniforms,\n defines: {\n \"PICKING_MODE\": 1,\n \"ENABLE_PICKING\": 1,\n \"HAS_PICKING_ID\": 1 } },\n\n this.pickingFBO, this.getMap());\n } },\n {\n key: \"U\",\n value: function U() {\n var _this9 = this;\n return {\n viewport: {\n x: 0,\n y: 0,\n width: function width() {\n return _this9.u ? _this9.u.width : 1;\n },\n height: function height() {\n return _this9.u ? _this9.u.height : 1;\n } },\n\n cull: {\n enable: function enable(t, e) {\n return e.meshProperties.cullFace;\n },\n face: function face(t, e) {\n return e.cullFace || \"back\";\n } },\n\n stencil: {\n enable: function enable(t, e) {\n return e.stencilEnable;\n },\n func: {\n cmp: \"<=\",\n ref: function ref(t, e) {\n return e.meshProperties.selectionDepth;\n } },\n\n opFront: {\n fail: \"keep\",\n zfail: \"keep\",\n zpass: \"replace\" },\n\n opBack: {\n fail: \"keep\",\n zfail: \"keep\",\n zpass: \"replace\" } },\n\n\n depth: {\n enable: !0,\n func: function func(t, e) {\n return e.meshProperties.depthFunc || \"<=\";\n } },\n\n blend: {\n enable: !0,\n func: {\n src: 1,\n dst: \"one minus src alpha\" },\n\n equation: \"add\" },\n\n polygonOffset: {\n enable: !0,\n offset: function offset(t, e) {\n return e.meshProperties.polygonOffset;\n } } };\n\n\n } },\n {\n key: \"rt\",\n value: function rt(t) {\n var e = this.getMap(),\n n = e.getLightManager(),\n r = (n && n.getDirectionalLight() || {}).direction || [1, 1, -1],\n s = t && t.pointOpacity || 1;\n return {\n projViewMatrix: e.projViewMatrix,\n pointOpacity: s,\n lightDir: _gl.vec3.normalize(Vn, r) };\n\n } },\n {\n key: \"D\",\n value: function D() {\n var t = this.getMap(),\n e = this.h,\n n = e.getRenderer().canvas,\n _Un = Un(n),\n r = _Un.iblTexes,\n s = _Un.dfgLUT,\n i = Bn(t, r, s),\n o = this.h.getRenderer(),\n a = o.getMaskUniforms();\n i.minAltitude = e.options.altitude || 0;\n var c = o.canvas.gl && o.canvas.gl.wrap ? e.options.opacity || 0 : 1;\n return i.layerOpacity = c, pt(i, {\n czm_lightDirectionEC: i.light0_viewDirection,\n lightSpecular: [1, 1, 1],\n viewMatrix: t.viewMatrix,\n projMatrix: t.projMatrix,\n projViewMatrix: t.projViewMatrix,\n outSize: [n.width, n.height],\n polygonFill: [1, 1, 1, 1],\n polygonOpacity: 1 }),\n pt(i, a), i;\n } },\n {\n key: \"$t\",\n value: function $t(t, e, r, s, i, o) {\n var a = e.materials && e.materials[t];\n if (!a || !a.baseColorTexture && !a.pbrMetallicRoughness) return null;\n var c = pt({}, s);\n if (a.baseColorTexture) {\n var _t44 = e.textures[a.baseColorTexture.index];\n var _n23;\n _t44 && !_t44.image.color && (_n23 = this.Zt(_t44, i)), c.baseColorFactor = _t44 && _t44.image.color || a.baseColorFactor || [1, 1, 1, 1], _n23 && (c.baseColorTexture = _n23);\n } else {\n if (a.normalTexture) {\n var _t45 = this.Zt(e.textures[a.normalTexture.index], i);\n if (_t45) {\n var _e34 = a.normalTexture.scale || 1;\n c.normalTexture = _t45, c.normalMapFactor = _e34;\n }\n }\n if (a.occlusionTexture) {\n var _t46 = this.Zt(e.textures[a.occlusionTexture.index], i);\n if (_t46) {\n var _e35 = a.occlusionTexture.strength || 1;\n c.occlusionTexture = _t46, c.occlusionFactor = _e35;\n }\n }\n if (a.emissiveTexture) {\n var _t47 = this.Zt(e.textures[a.emissiveTexture.index], i);\n _t47 && (c.emissiveTexture = _t47);\n }\n a.emissiveFactor && (c.emissiveFactor = a.emissiveFactor);\n var _t48 = a.pbrMetallicRoughness;\n if (_t48) {\n if (_t48.baseColorFactor && (c.baseColorFactor = _t48.baseColorFactor), _t48.baseColorTexture && void 0 !== _t48.baseColorTexture.index) {\n var _n24 = e.textures[_t48.baseColorTexture.index];\n if (_n24 && _n24.image && _n24.image.color) c.baseColorFactor = c.baseColorFactor ? _gl.vec4.multiply(c.baseColorFactor, c.baseColorFactor, _n24.image.color) : _n24.image.color;else {\n var _t49 = this.Zt(_n24, i);\n _t49 && (c.baseColorTexture = _t49, c.baseColorTexture.getREGLTexture(this.m));\n }\n }\n if (mt(_t48.metallicFactor) || (c.metallicFactor = _t48.metallicFactor), mt(_t48.roughnessFactor) || (c.roughnessFactor = _t48.roughnessFactor), a.metallicRoughnessTexture) {\n var _t50 = this.Zt(e.textures[a.metallicRoughnessTexture.index], i);\n _t50 && (c.metallicRoughnessTexture = _t50);\n }\n }\n }\n if (a.s3mMaterial) return new _gl.reshader.Material(c);\n if (o.unlit || a.extensions && a.extensions.KHR_materials_unlit) {\n c.ambientColor = [1, 1, 1], c.light0_diffuse = [0, 0, 0, 0], c.lightSpecular = [0, 0, 0];\n var _t51 = new _gl.reshader.PhongMaterial(c);\n return _t51.unlit = void 0 === o.unlit || !!o.unlit, _t51;\n }\n var h = new _gl.reshader.pbr.StandardMaterial(c);\n \"phong\" === r && (h = _gl.reshader.PhongMaterial.convertFrom(h));\n var u = a.pbrMetallicRoughness,\n f = u && u.baseColorTexture && u.baseColorTexture.extensions;\n return f && f.KHR_texture_transform && (h.set(\"khr_offset\", f.KHR_texture_transform.offset || [0, 0]), h.set(\"khr_rotation\", f.KHR_texture_transform.rotation || 0), h.set(\"khr_scale\", f.KHR_texture_transform.scale || [1, 1])), h.doubleSided = !(!o.doubleSided && !a.doubleSided), h.once(\"complete\", this.L), h;\n } },\n {\n key: \"Zt\",\n value: function Zt(t, e) {\n if (!t) return null;\n var r = {\n type: t.type ? Sn(t.type) : \"uint8\",\n format: t.format ? Cn(t.format) : \"rgba\",\n flipY: !!t.flipY },\n\n s = t.image;\n if (e.push(s), s.array ? r.data = s.array : s.mipmap && (r.mipmap = s.mipmap), !r.data && !r.mipmap) return null;\n if (r.width = s.width, r.height = s.height, r.mipmap && (r.width < 4 || r.height < 4)) return null;\n var i = t.sampler || t.texture && t.texture.sampler;\n return i && (i.magFilter && (r.mag = An(i.magFilter)), i.minFilter && (r.min = xn(i.minFilter)), i.wrapS && (r.wrapS = In(i.wrapS)), i.wrapT && (r.wrapT = In(i.wrapT))), new _gl.reshader.Texture2D(r, this.N);\n } },\n {\n key: \"R\",\n value: function R(_ref6) {\n var t = _ref6.target;\n var e = t.Vt,\n n = this.v[e];\n if (n.count--, !n.count) {\n var _t52 = n.meshes;\n this.T[e] = _t52, delete this.v[e];\n var _r16 = _t52.Rt;\n delete _t52.Rt, _r16(null, {\n mesh: n.meshes,\n id: e });\n\n }\n } },\n {\n key: \"Ct\",\n value: function Ct(t) {\n var e = 1 / this.getMap().getGLRes(),\n n = this.B;\n return t[0] = t[1] = e, t[2] = n, t;\n } },\n {\n key: \"Kt\",\n value: function Kt(t) {\n return this.h.Kt(t);\n } },\n {\n key: \"_pointToPrj\",\n value: function _pointToPrj(t) {\n var e = this.getMap();\n return e.getGLZoom ? e._pointToPrj(t, e.getGLZoom()) : e._pointToPrjAtRes(t, e.getGLRes());\n } },\n {\n key: \"_prjToPoint\",\n value: function _prjToPoint(t) {\n var e = this.getMap();\n return e.getGLZoom ? e._prjToPoint(t, e.getGLZoom()) : e._prjToPointAtRes(t, e.getGLRes(), Xn);\n } },\n {\n key: \"At\",\n value: function At(t) {\n return \"Y\" === t ? Ln : \"X\" === t ? En : Hn;\n } },\n {\n key: \"pick\",\n value: function pick(t, e) {\n var n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 3;\n var r = this.h;\n if (!r || !r.options.picking) return [];\n if (!this.pickingFBO || !this.picking) return [];\n var s = [],\n i = this.D(),\n o = this.Xt(this.picking, i, this.I, t, e, n);\n o && s.push(o);\n var a = this.Xt(this.picking, i, this.C, t, e, n);\n a && s.push(a);\n var c = this.rt(),\n l = this.Xt(this.Yt, c, this.S, t, e, n);\n return l && s.push(l), s;\n } },\n {\n key: \"Xt\",\n value: function Xt(t, e, n, r, s, i) {\n if (!n.getMeshes().length) return null;\n var o = this.h,\n a = this.getMap();\n t.render(n.getMeshes().filter(function (t) {\n return !t.bloom;\n }), e, !0);\n var c = {};\n t.getRenderedMeshes().length && (c = t.pick(r, s, i, e, {\n viewMatrix: a.viewMatrix,\n projMatrix: a.projMatrix,\n returnPoint: o.options.pickingPoint }));\n\n var _c2 = c,\n l = _c2.meshId,\n h = _c2.pickingId,\n u = _c2.point,\n f = _c2.coordinate,\n d = (0 === l || l) && t.getMeshAt(l);\n if (!d || !d.geometry) return null;\n var m = d.properties;\n u && u.length && (u[0] = Math.round(1e5 * u[0]) / 1e5, u[1] = Math.round(1e5 * u[1]) / 1e5, u[2] = Math.round(1e5 * u[2]) / 1e5);\n var p = {\n batchId: h },\n\n b = o.options.services,\n y = b && b[d.properties.serviceIndex];\n if (y && y.debug && (p.debugInfo = m), m && m.batchTable) {\n var _t53 = m.batchTable,\n _e36 = m.batchTableBin,\n _n25 = m.count,\n _r17 = h;\n for (var _s18 in _t53) void 0 !== _t53[_s18].byteOffset ? p[_s18] = Se(_t53[_s18], _e36, _n25, _r17) : p[_s18] = _t53[_s18][_r17];\n }\n return {\n service: d.properties.serviceIndex,\n data: p,\n point: u,\n coordinate: f };\n\n } },\n {\n key: \"highlight\",\n value: function highlight(t) {\n this.J = t;\n var e = this.h.getRenderer();\n this.Y = e.getFrameTimestamp(), e.setToRedraw(!0);\n } },\n {\n key: \"cancelAllHighlight\",\n value: function cancelAllHighlight() {\n this.J = null;\n var t = this.h.getRenderer();\n this.Y = t.getFrameTimestamp(), t.setToRedraw(!0);\n } },\n {\n key: \"showOnly\",\n value: function showOnly(t) {\n this.Z = t;\n var e = this.h.getRenderer();\n this.K = e.getFrameTimestamp(), e.setToRedraw(!0);\n } },\n {\n key: \"cancelShowOnly\",\n value: function cancelShowOnly() {\n this.Z = null;\n var t = this.h.getRenderer();\n this.K = t.getFrameTimestamp(), t.setToRedraw(!0);\n } },\n {\n key: \"Wt\",\n value: function Wt() {\n if (!this.G) return [];\n var t = {},\n e = [];\n for (var _n26 in this.G) {\n var _r18 = this.G[_n26];\n if (_r18) for (var _n27 = 0; _n27 < _r18.length; _n27++) {\n var _s19 = _r18[_n27],\n _i16 = _s19 && _s19.geometry;\n if (!_s19 || !_i16) continue;\n var _o9 = _s19.properties.serviceIndex;\n t[_o9] || (t[_o9] = new Set());\n var _a4 = _i16.properties.batchIdData;\n if (_a4) for (var _n28 = 0; _n28 < _a4.length; _n28++) t[_o9].has(_a4[_n28]) || (e.push({\n id: _a4[_n28],\n service: _o9 }),\n t[_o9].add(_a4[_n28]));\n }\n }\n return e;\n } },\n {\n key: \"hasIBL\",\n value: function hasIBL() {\n var t = this.getMap().getLightManager();\n return !!(t && t.getAmbientResource());\n } }]);\n\n }();\n function vr(t) {\n for (var _e37 = 0; _e37 < t.length; _e37++) t[_e37] && (t[_e37].array && (t[_e37].array = null), t[_e37].mipmap && (t[_e37].mipmap = null), t[_e37].indices && (t[_e37].indices = null));\n }\n function Tr(t, e) {\n if (e) for (var _n29 = 0; _n29 < e.length; _n29++) {\n t[e[_n29].id || e[_n29].index] = e[_n29];\n }\n }\n var _r = [];\n var Mr = function () {\n function Mr(t, e, n, r, s) {\n _classCallCheck(this, Mr);\n this.h = r, this.Qt = t, this.H = e, this.te = s, this.ee = n.version, t.indexOf(\"i3s:tileset:\") < 0 ? (this.ee <= 1.6 ? this.ne = \"root\" : this.ne = 0, n.version = this.ee) : (this.ne = t.substring(12), this.ee > 1.6 && (this.ne = parseInt(this.ne))), this.Qt = t, this.re = n;\n }\n return _createClass(Mr, [{\n key: \"load\",\n value: function load() {\n var _this10 = this;\n var t = this.re,\n e = t.layerScene.baseUrl;\n if (this.ee <= 1.6) return t[this.ne] && t[this.ne].lodSelection ? (this.se = t[this.ne], this.ie()) : new Promise(function (n) {\n var r = e + \"/nodes/\" + _this10.ne;\n t.layerScene.eslpk && (r += \"/3dNodeIndexDocument.json\"), _this10.te(_this10.H, r, function () {\n _this10.se = t[_this10.ne], n(_this10.ie());\n });\n });\n if (this.ee >= 1.7) {\n if (t[this.ne]) return this.se = t[this.ne], this.ie();\n var _n30 = Math.floor(this.ne / t.nodesPerPage);\n return new Promise(function (r) {\n var s = e + \"/nodepages/\" + _n30;\n t.layerScene.eslpk && (s += \".json\"), _this10.te(_this10.H, s, function () {\n _this10.se = t[_this10.ne], r(_this10.ie());\n });\n });\n }\n return null;\n } },\n {\n key: \"getTileset\",\n value: function getTileset() {\n return this.oe;\n } },\n {\n key: \"getChildrenURL\",\n value: function getChildrenURL() {\n return this.ae;\n } },\n {\n key: \"ie\",\n value: function ie() {\n var _this11 = this;\n var t = this.re,\n e = t.layerScene.baseUrl,\n n = this.se.children,\n r = [],\n s = {};\n if (n) {\n var _loop = function _loop() {\n if (_this11.ee <= 1.6) {\n var _o10 = n[_i17].id;\n if (t[_o10]) return 0;\n var _a5 = _o10;\n s[_a5] || (s[_a5] = new Promise(function (n) {\n var r = e + \"/nodes/\" + _a5;\n t.layerScene.eslpk && (r += \"/3dNodeIndexDocument.json\"), _this11.te(_this11.H, r, function () {\n n();\n });\n }), r.push(s[_a5]));\n } else {\n var _o11 = n[_i17];\n if (t[_o11]) return 0;\n var _a6 = Math.floor(_o11 / t.nodesPerPage);\n s[_a6] || (s[_a6] = new Promise(function (n) {\n var r = e + \"/nodepages/\" + _a6;\n t.layerScene.eslpk && (r += \".json\"), _this11.te(_this11.H, r, function () {\n n();\n });\n }), r.push(s[_a6]));\n }\n },\n _ret;\n for (var _i17 = 0; _i17 < n.length; _i17++) {\n _ret = _loop();\n if (_ret === 0) continue;\n }\n }\n return r.length ? Promise.all(r).then(function () {\n return _this11.ce();\n }) : this.ce();\n } },\n {\n key: \"ce\",\n value: function ce() {\n return Promise.resolve(this.le());\n } },\n {\n key: \"he\",\n value: function he(t) {\n Tr(this.re, t);\n } },\n {\n key: \"le\",\n value: function le() {\n return {\n asset: {\n i3s: !0,\n version: \"1.0\",\n gltfUpAxis: \"Z\" },\n\n geometricError: Number.MAX_VALUE,\n root: this.ue(this.se, !0) };\n\n } },\n {\n key: \"ue\",\n value: function ue(t) {\n var e = this.h.getRenderer(),\n n = this.re.projection,\n r = !n || n && 4326 === n.wkid,\n s = this.ee,\n i = this.re,\n o = t,\n a = o.obb,\n c = o.mbs,\n l = {};\n var h;\n if (c) h = _glMatrix.vec3.set([], c[0], c[1], c[2]), r || (h = e.fe(h, h)), h = Or([], h[0], h[1], h[2]), l.sphere = [].concat(_toConsumableArray(h), [c[3]]);else if (a) {\n h = _glMatrix.vec3.set([], a.center[0], a.center[1], a.center[2]), r || (h = e.fe(h, h)), h = Or([], h[0], h[1], h[2]);\n var _t54 = function (t, e, n) {\n var r = _glMatrix.mat3.fromQuat([], n);\n return r[0] = r[0] * e[0], r[1] = r[1] * e[0], r[2] = r[2] * e[0], r[3] = r[3] * e[1], r[4] = r[4] * e[1], r[5] = r[5] * e[1], r[6] = r[6] * e[2], r[7] = r[7] * e[2], r[8] = r[8] * e[2], [].concat(_toConsumableArray(t), _toConsumableArray(r));\n }(h, a.halfSize, a.quaternion),\n _n31 = _t54[3] + _t54[6] + _t54[9],\n _s20 = _t54[4] + _t54[7] + _t54[10],\n _i18 = _t54[5] + _t54[8] + _t54[11];\n _glMatrix.vec3.set(_r, _n31, _s20, _i18);\n var _o12 = _glMatrix.vec3.len(_r);\n l.sphere = [].concat(_toConsumableArray(h), [_o12]);\n }\n var u = 1 / 0,\n f = 0;\n if (o.mbs ? f = o.mbs[3] : o.obb && (f = Math.max(Math.max(o.obb.halfSize[0], o.obb.halfSize[1]), o.obb.halfSize[2])), void 0 !== o.lodThreshold) {\n if (\"maxScreenThresholdSQ\" === i.lodSelectionMetricType) {\n u = f / (Math.sqrt(o.lodThreshold) / (.25 * Math.PI));\n } else console.error(\"Unsupported lodSelectionMetricType in Layer\");\n } else if (void 0 !== o.lodSelection) for (var _t55 = 0; _t55 < o.lodSelection.length; _t55++) \"maxScreenThreshold\" === o.lodSelection[_t55].metricType && (u = f / o.lodSelection[_t55].maxError);\n (u === 1 / 0 || isNaN(u)) && (u = 1e5);\n var d = 16 * u,\n m = _glMatrix.mat4.identity([]),\n p = o.children;\n var b;\n if (p) {\n b = [];\n var _t56 = this.re;\n for (var _e38 = 0; _e38 < p.length; _e38++) {\n var _n32 = s <= 1.6 ? p[_e38].id : p[_e38];\n if (!_t56[_n32]) {\n b = null;\n break;\n }\n b.push(this.ue(_t56[_n32]));\n }\n }\n var y = {\n refine: \"REPLACE\",\n boundingVolume: l,\n transform: m,\n geometricError: d };\n\n return s <= 1.6 ? t.lodSelection ? t.geometryData && (y.content = {\n uri: \"i3s:mesh:\" + (t.id || t.index) }) :\n y.content = {\n uri: \"i3s:tileset:\" + (t.id || t.index) } :\n p && p.length && !b ? y.content = {\n uri: \"i3s:tileset:\" + (t.id || t.index) } :\n o.mesh && (y.content = {\n uri: \"i3s:mesh:\" + (t.id || t.index) }),\n b && b.length && (y.children = b), y;\n } },\n {\n key: \"getJSON\",\n value: function getJSON() {\n return this.se;\n } }]);\n\n }();\n function Or(t, e, n, r) {\n return ie(t, wt(e), wt(n), r);\n }\n var Ar = !!Gt.ktx2,\n xr = _gl.mat4.identity([]),\n Ir = function () {\n try {\n if (\"object\" == (typeof WebAssembly === \"undefined\" ? \"undefined\" : _typeof(WebAssembly)) && \"function\" == typeof WebAssembly.instantiate) {\n var _t57 = new WebAssembly.Module(Uint8Array.of(0, 97, 115, 109, 1, 0, 0, 0));\n if (_t57 instanceof WebAssembly.Module) return new WebAssembly.Instance(_t57) instanceof WebAssembly.Instance;\n }\n } catch (t) {}\n return !1;\n }();\n function Sr(t) {\n return t.indexOf(\"i3s:mesh\") >= 0;\n }\n var Cr = 9;\n function kr(t, e, n, r, s) {\n var i = e.layerScene.eslpk,\n o = function (t, e) {\n var n = e.substring(Cr);\n return t >= 1.7 ? parseInt(n) : n;\n }(e.version, t),\n a = e[o],\n c = e.layerScene.baseUrl,\n l = [];\n var h = !1;\n var u = xr;\n var f, d;\n if (e.version <= 1.6) {\n if (!a.geometryData) return null;\n var _t58 = a.geometryData.length;\n if (!_t58) return null;\n var _n33 = c + \"/nodes/\".concat(a.id, \"/\") + a.geometryData[_t58 - 1].href;\n i && (_n33 += \".bin\");\n var _r19 = {\n geometry: {\n url: _n33,\n info: e.layerScene.store.defaultGeometrySchema } };\n\n\n var _s21 = a.textureData && a.textureData[0] && a.textureData[0].href;\n if (_s21) {\n var _t59 = e.layerScene.store.textureEncoding[0];\n var _n34;\n _n34 = \"image/jpeg\" === _t59 ? \"jpg\" : \"png\", i && (_s21 += \".\" + _n34);\n var _o13 = {\n pbrMetallicRoughness: {\n baseColorTexture: {\n url: c + \"/nodes/\".concat(a.id, \"/\") + _s21,\n factor: 1,\n format: _n34,\n mimeType: _t59 },\n\n metallicFactor: 0 } };\n\n\n _r19.material = _o13;\n }\n l.push(_r19);\n } else {\n f = a.mesh.geometry, d = a.mesh.material;\n var _t60 = e.layerScene.geometryDefinitions,\n _o14 = (e.layerScene.store || {}).textureEncoding,\n _u2 = _t60[f.definition],\n _m = _u2.geometryBuffers;\n h = r && 2 === _m.length;\n var _p = Gt.draco && h ? _m[1] : _m[0],\n _b = Gt.draco && h ? 1 : 0;\n var _y2 = c + \"/nodes/\".concat(f.resource, \"/geometries/\") + _b;\n i && (_y2 += \".bin\");\n var _g2 = {\n geometry: {\n url: _y2,\n info: _p } };\n\n\n if (s && Ir && h && !Gt.draco) throw new Error(\"Must import @maptalks/transcoder.draco to load i3s draco compressed geometry\");\n var _w3 = e.layerScene.materialDefinitions,\n _v2 = e.layerScene.textureSetDefinitions;\n var _T2,\n _3 = 0;\n if (d && (_3 = _w3[d.definition]), _w3) {\n _T2 = function (t, e, n, r, s, i, o) {\n var a = JSON.parse(JSON.stringify(e));\n return Nr(t, a, n, r, s, i, o), a;\n }(_o14, _3, _v2, c, d.resource, n, e.layerScene.eslpk);\n } else _T2 = {\n pbrMetallicRoughness: {\n metallicFactor: 0 } };\n\n\n _g2.material = _T2, l.push(_g2);\n }\n return {\n dracoCompression: h,\n meshes: l,\n nodeIndex: o,\n center: a.obb && a.obb.center || a.mbs && [a.mbs[0], a.mbs[1], a.mbs[2]],\n transform: u };\n\n }\n function Nr(t, e, n, r, s, i, o) {\n for (var _a7 in e) if (e[_a7] && e[_a7].textureSetDefinitionId >= 0) {\n var _c3 = n[e[_a7].textureSetDefinitionId],\n _l2 = \"images/\" + _c3.formats[0].format,\n _h = Er(_c3.formats, i, t),\n _u3 = {\n url: r + \"/nodes/\".concat(s, \"/textures/\").concat(_h.name),\n factor: void 0 === e[_a7].factor ? 1 : e[_a7].factor,\n format: _h.format,\n mimeType: _l2 };\n\n if (o) {\n var _t61 = \"\";\n switch (_h.format) {\n case \"dds\":\n _t61 = \"bin.dds\";\n break;\n case \"jpg\":\n case \"png\":\n _t61 = _h.format;}\n\n _u3.url += \".\" + _t61;\n }\n e[_a7] = _u3;\n } else yt(e[_a7]) && Nr(t, e[_a7], n, r, s, i, o);\n }\n var Lr = {\n \"image/jpeg\": \"jpg\",\n \"image/jpg\": \"jpg\",\n \"image/png\": \"jpg\",\n \"image/vnd-ms.dds\": \"dds\",\n \"image/ktx\": \"jpg\" };\n\n function Er(t, e, n) {\n if (n && n.length) {\n var _e39 = n[n.length - 1],\n _r20 = Lr[_e39];\n if (_r20) for (var _e40 = 0, _n35 = t.length; _e40 < _n35; _e40++) {\n if (t[_e40].format === _r20) return t[_e40];\n } else console.error(\"i3s not find texture format type from:\", Lr, \"current textureEncoding:\", _e39);\n }\n for (var _n36 = 0; _n36 <= t.length; _n36++) {\n var _r21 = t[_n36].format;\n if (\"dds\" === _r21 && e.hasExtension(\"WEBGL_compressed_texture_s3tc\")) return t[_n36];\n if (\"jpg\" === _r21 || \"png\" === _r21) return t[_n36];\n if (\"ktx2\" === _r21 && Ar) return t[_n36];\n }\n return null;\n }\n var _Dt2 = Dt(),\n Rr = _Dt2.Ajax,\n Pr = new t.Coordinate(0, 0),\n Ur = new t.Coordinate(0, 0),\n Br = new Set(),\n Gr = [],\n Dr = new (function () {\n function _class(t, e) {\n _classCallCheck(this, _class);\n this.max = t, this.currentSize = 0, this.data = new Map(), this.onRemove = e;\n }\n return _createClass(_class, [{\n key: \"reset\",\n value: function reset(t) {\n if (this.data) {\n var _e41 = this.data.keys();\n var _iterator = _createForOfIteratorHelper(_e41),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _n37 = _step.value;\n var _e42 = this.data.get(_n37);\n t && t !== _e42.renderer || this.de(_n37, _e42);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n return t || (this.data = new Map(), this.currentSize = 0), this;\n } },\n {\n key: \"clear\",\n value: function clear(t) {\n this.reset(t);\n } },\n {\n key: \"add\",\n value: function add(t, e) {\n if (!e) return this;\n if (e.node && e.node.memorySize && (this.currentSize += e.node.memorySize), this.has(t)) {\n var _n38 = this.data.get(t);\n _n38 && _n38.node && _n38.node.memorySize && (this.currentSize -= _n38.node.memorySize), this.data.delete(t), this.data.set(t, e);\n } else this.data.set(t, e);\n return this;\n } },\n {\n key: \"shrink\",\n value: function shrink() {\n if (this.currentSize > this.max) {\n var _t62 = !1;\n var _e43 = this.data.keys();\n var _n39 = _e43.next();\n for (; this.currentSize > this.max && void 0 !== _n39.value;) {\n !_t62 && this.data.get(_n39.value).current && (_t62 = !0, console.warn(\"current maxGPUMemory(\".concat(this.max / 1024 / 1024, \") for Geo3DTilesLayer is not enough, one or more current tiles will be discarded.\")));\n var _r22 = this.getAndRemove(_n39.value);\n _r22 && this.onRemove(_r22), _n39 = _e43.next();\n }\n }\n } },\n {\n key: \"has\",\n value: function has(t) {\n return this.data.has(t);\n } },\n {\n key: \"keys\",\n value: function keys() {\n var t = new Array(this.data.size);\n var e = 0;\n var n = this.data.keys();\n var _iterator2 = _createForOfIteratorHelper(n),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var _r23 = _step2.value;\n t[e++] = _r23;\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n return t;\n } },\n {\n key: \"getAndRemove\",\n value: function getAndRemove(t) {\n if (!this.has(t)) return null;\n var e = this.data.get(t);\n return e.node && e.node.memorySize && (this.currentSize -= e.node.memorySize), this.data.delete(t), e;\n } },\n {\n key: \"get\",\n value: function get(t) {\n if (!this.has(t)) return null;\n var e = this.data.get(t);\n return this.data.delete(t), this.data.set(t, e), e;\n } },\n {\n key: \"remove\",\n value: function remove(t) {\n if (!this.has(t)) return this;\n var e = this.data.get(t);\n return this.de(t, e), this;\n } },\n {\n key: \"de\",\n value: function de(t, e) {\n e.node && e.node.memorySize && (this.currentSize -= e.node.memorySize), this.data.delete(t), this.onRemove(e);\n } },\n {\n key: \"setMaxSize\",\n value: function setMaxSize(t) {\n return this.max = t, this.shrink(), this;\n } },\n {\n key: \"getMemorySize\",\n value: function getMemorySize() {\n var t = 0;\n var e = this.data.values();\n var _iterator3 = _createForOfIteratorHelper(e),\n _step3;\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var _n40 = _step3.value;\n var _e44 = _n40 && _n40.node;\n _e44 && _e44.memorySize && (t += _e44.memorySize);\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n return t;\n } },\n {\n key: \"markAll\",\n value: function markAll(t, e) {\n var n = this.data.values();\n var _iterator4 = _createForOfIteratorHelper(n),\n _step4;\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var _r24 = _step4.value;\n t && _r24.renderer !== t || (_r24.current = e);\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n } }]);\n\n }())(1024 * (t.Browser.mobile ? 32 : 1024) * 1024, function (t) {\n var e = t.renderer;\n delete t.renderer, e.deleteTile(t);\n });\n var Fr = 0;\n var jr = function (_h2) {\n function jr(t) {\n var _this12;\n _classCallCheck(this, jr);\n _this12 = _callSuper(this, jr, [t]);\n var e = 1024 * t.options.maxGPUMemory * 1024;\n e > Dr.max && Dr.setMaxSize(e), _this12.tileCache = Dr, Fr++, _this12.tilesLoading = {}, _this12.me = {}, _this12.pe = [], _this12.te = function () {\n var _this12$be;\n for (var _len2 = arguments.length, t = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n t[_key2] = arguments[_key2];\n }\n return (_this12$be = _this12.be).call.apply(_this12$be, [_this12].concat(t));\n };\n return _this12;\n }\n _inherits(jr, _h2);\n return _createClass(jr, [{\n key: \"getAnalysisMeshes\",\n value: function getAnalysisMeshes() {\n if (!this.painter) return Gr;\n var t = this.painter.getPaintedMeshes();\n if (!t) return Gr;\n var e = [],\n n = t.b3dmMeshes,\n r = t.pntsMeshes,\n s = t.i3dmMeshes;\n return n.length && kt(e, n.filter(function (t) {\n return !(!t || !t.geometry);\n })), r.length && kt(e, r.filter(function (t) {\n return !(!t || !t.geometry);\n })), s.length && kt(e, s.filter(function (t) {\n return !(!t || !t.geometry);\n })), e;\n } },\n {\n key: \"needToRedraw\",\n value: function needToRedraw() {\n return !!this.getMap().isInteracting() || !!this.pe.length || _superPropGet(jr, \"needToRedraw\", this, 3)([]);\n } },\n {\n key: \"getFrameTimestamp\",\n value: function getFrameTimestamp() {\n return this.ye;\n } },\n {\n key: \"drawOnInteracting\",\n value: function drawOnInteracting(t, e, n) {\n this.draw(e, n);\n } },\n {\n key: \"draw\",\n value: function draw(t, e) {\n this.ye = t;\n var n = this.prepareCanvas();\n if (n && !n.intersects(this.canvasExtent2D)) return void this.completeRender();\n var _this$layer$getTiles = this.layer.getTiles(),\n r = _this$layer$getTiles.root,\n s = _this$layer$getTiles.tiles,\n i = s.length;\n if (!s || !i) return void this.completeRender();\n this.painter.prepareRender(e), this.ge(), this.we(e);\n var _this$ve = this.ve(r, s),\n o = _this$ve.selectedTiles,\n a = _this$ve.requests;\n a.length && this.loadTiles(a), this.Te(o, e), this._e(), a.length || this.completeRender();\n } },\n {\n key: \"ve\",\n value: function ve(t, e) {\n var n = [];\n this.Me();\n var r = 0;\n var s = this.Oe(),\n i = {};\n var o = !1,\n a = !1;\n for (var _t63 = 0; _t63 < e.length; _t63++) {\n var _s22 = e[_t63],\n _c4 = _s22.node;\n if (i[_c4.id]) continue;\n i[_c4.id] = 1;\n var _l3 = !1;\n var _h3 = this.getCachedTile(_c4.id);\n if (this.Ae(_c4.id) ? (r++, _l3 = a = !0, this.tilesLoading[_c4.id].current = !0) : _h3 ? (this.getTileOpacity(_h3) < 1 && (_l3 = a = !0), o = !0, _s22.selected = !0, _s22.data = _h3) : this.painter.has(_c4) || (_l3 = a = !0, n.push(_c4)), !_l3) continue;\n if (this.xe(_s22)) o = !0;else {\n this.Ie(_s22).length && (o = !0);\n }\n }\n var c = o ? this.Se(t) : [];\n if (n.length > 1 && (n.sort(zr), s)) {\n var _t64 = s - r;\n n = _t64 > 0 ? n.slice(0, _t64) : [];\n }\n return {\n loading: a,\n requests: n,\n selectedTiles: c };\n\n } },\n {\n key: \"Se\",\n value: function Se(t) {\n var e = [];\n var n, r;\n var s = [t],\n i = [];\n for (; s.length > 0 || i.length > 0;) {\n if (i.length > 0) {\n var _t65 = i[i.length - 1];\n if (_t65.Ce === s.length) {\n i.pop(), _t65 === n && (_t65.leave = !0), _t65.branchRootId = r, e.push(_t65), 0 === i.length && (r = null);\n continue;\n }\n }\n var _t66 = s.pop(),\n _o15 = _t66.children;\n if (_t66.selected) if (\"add\" === _t66.node.refine) _t66.leave = !0, _t66.selectionDepth = i.length, _t66.branchRootId = r, e.push(_t66);else {\n if (_t66.selectionDepth = i.length, n = _t66, 0 === _o15.length) {\n _t66.leave = !0, _t66.branchRootId = r, e.push(_t66);\n continue;\n }\n 0 === i.length && (r = _t66.node.id), i.push(_t66), _t66.Ce = s.length;\n }\n for (var _t67 = 0; _t67 < _o15.length; _t67++) s.push(_o15[_t67]);\n }\n return e;\n } },\n {\n key: \"xe\",\n value: function xe(t) {\n if (!t.parent) return null;\n var e = t.parent;\n for (; e && e.level >= 0;) {\n var _t68 = e.node.id;\n if (this.tileCache.has(_t68)) return e.selected = !0, e.data = this.tileCache.get(_t68), e;\n e = e.parent;\n }\n return null;\n } },\n {\n key: \"Ie\",\n value: function Ie(t) {\n var e = [];\n if (!t.node.children || !t.node.children.length) return e;\n var n = t.ke + 1,\n r = [t.node];\n for (; r.length > 0;) {\n var _s23 = r.pop().children;\n for (var _i19 = 0, _o16 = _s23.length; _i19 < _o16; _i19++) {\n if ((!_s23[_i19].content || !_s23[_i19].content.url) && _s23[_i19].children && _s23[_i19].children.length) {\n r.push(_s23[_i19]);\n continue;\n }\n var _o17 = _s23[_i19].id;\n if (this.tileCache.has(_o17)) {\n var _n41 = this.layer.Ne(_s23[_i19], t);\n _n41.selected = !0, _n41.data = this.tileCache.get(_o17), t.children.push(_n41), e.push(_n41);\n } else _s23[_i19].ke <= n && r.push(_s23[_i19]);\n }\n }\n return e;\n } },\n {\n key: \"Te\",\n value: function Te(t, e) {\n this.tileCache.markAll(this, !1);\n var n = [];\n for (var _e45 = 0, _r25 = t.length; _e45 < _r25; _e45++) {\n var _r26 = t[_e45].data;\n _r26.current = !0, _r26.renderer = this, this.tileCache.add(t[_e45].node.id, _r26);\n var _s24 = _r26.node,\n _i20 = this.layer.j(_s24.H);\n _s24.dt && _i20.debug && !Array.isArray(_i20.debug) && n.push(_s24.dt);\n }\n var r = this.layer.options.services;\n for (var _t69 = 0; _t69 < r.length; _t69++) {\n var _e46 = r[_t69],\n _s25 = Array.isArray(_e46.debug) && _e46.debug;\n if (_s25) {\n var _iterator5 = _createForOfIteratorHelper(_s25),\n _step5;\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var _t70 = _step5.value;\n var _e47 = this.layer.Dt(_t70),\n _r27 = _e47 && _e47.node;\n _r27 && _r27.dt && n.push(_r27.dt);\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n }\n }\n var s = {\n tiles: t };\n\n this.onDrawTileStart(s);\n var i = this.painter.paint(t, n, e);\n this.layer.fire(\"drawtiles\", {\n count: i }),\n this.onDrawTileEnd(s), i && this.layer.fire(\"canvasisdirty\", {\n renderCount: i }),\n this.tileCache.shrink();\n } },\n {\n key: \"onDrawTileStart\",\n value: function onDrawTileStart() {} },\n {\n key: \"onDrawTileEnd\",\n value: function onDrawTileEnd() {} },\n {\n key: \"loadTiles\",\n value: function loadTiles(t) {\n for (var _e48 = 0, _n42 = t.length; _e48 < _n42; _e48++) {\n var _n43 = t[_e48];\n this.tilesLoading[_n43.id] = {\n current: !0,\n node: _n43 },\n this.loadTile(_n43);\n }\n } },\n {\n key: \"loadTile\",\n value: function loadTile(t) {\n var _this13 = this;\n var e = t.content.url;\n if (St(e)) {\n var _n44 = Ct(e);\n return this.Le(e, _n44, t), null;\n }\n if (function (t) {\n return t.indexOf(\"i3s:tileset\") >= 0;\n }(e)) {\n var _n45 = t.H,\n _r28 = this.Ee[_n45];\n return new Mr(e, _n45, _r28, this.layer, this.te).load().then(function (n) {\n _this13.onTilesetLoad(n, t, e);\n });\n }\n return t && Rt(e) && !Sr(e) && (e = t.baseUrl + e), this.Le(e, null, t), null;\n } },\n {\n key: \"Le\",\n value: function Le(t, e, r) {\n var _this14 = this;\n var s = this.Re;\n s || (s = _gl.reshader.Util.getSupportedFormats(this.gl.gl || this.gl), this.Re = s);\n var i = this.layer.j(r.H);\n i.isSuperMapiServer && (t = function (t, e) {\n var n = t.substring(e.length),\n r = n.split(\"/\"),\n s = [];\n for (var _t71 = 0; _t71 < r.length; _t71++) s.push(encodeURIComponent(r[_t71]));\n return e + s.join(\"/\");\n }(t, r.baseUrl));\n var o = {\n url: this.layer.getTileUrl(t, this.layer.Pe[r.H]),\n arraybuffer: e,\n rootIdx: r.H,\n upAxis: r.xt,\n transform: r.matrix,\n supportedFormats: s };\n\n if (Sr(t)) {\n var _e49 = this.Ee[r.H];\n if (o.projection = _e49.projection, o.i3sInfo = kr(t, _e49, this.regl, this.layer.options.enableI3SCompressedGeometry, this.layer.options.forceI3SCompressedGeometry), !o.i3sInfo) return void this.onTileError({\n status: 404 },\n r, t);\n }\n o.service = pt({}, i), i.offset && delete o.service.offset, o.referrer = window && window.location.href, this.workerConn.loadTile(this.layer.getId(), o, function (e, n) {\n if (e) return void _this14.onTileError(e, r, t);\n var s = n.magic;\n \"b3dm\" === s || \"pnts\" === s || \"i3dm\" === s || \"cmpt\" === s || \"gltf\" === s ? _this14.pe.push({\n data: n,\n tile: r }) :\n _this14.onTilesetLoad(n, r, t);\n });\n } },\n {\n key: \"Gt\",\n value: function Gt(t) {\n this.painter && this.painter.Gt(t);\n } },\n {\n key: \"Ft\",\n value: function Ft(t) {\n this.painter && this.painter.Ft(t);\n } },\n {\n key: \"we\",\n value: function we() {\n var _this15 = this;\n var t = this.getMap(),\n e = this.layer.options.meshLimitPerFrame;\n var n = 0;\n var _loop2 = function _loop2() {\n var _this15$pe$shift = _this15.pe.shift(),\n t = _this15$pe$shift.data,\n e = _this15$pe$shift.tile,\n r = t.magic;\n \"b3dm\" === r || \"gltf\" === r ? _this15.painter.createB3DMMesh(t, e.id, e, function (n, _ref7) {\n var r = _ref7.mesh;\n _this15.Ue(t, e, n, r);\n }) : \"pnts\" === r ? _this15.painter.createPntsMesh(t, e.id, e, function (n, _ref8) {\n var r = _ref8.mesh;\n _this15.Ue(t, e, n, r);\n }) : \"i3dm\" === r ? _this15.painter.createI3DMMesh(t, e.id, e, function (n, _ref9) {\n var r = _ref9.mesh;\n _this15.Ue(t, e, n, r);\n }) : \"cmpt\" === r && _this15.painter.createCMPTMesh(t, e.id, e, function (n, _ref10) {\n var r = _ref10.mesh;\n _this15.Ue(t, e, n, r);\n }), n++;\n };\n for (; this.pe.length && (n < e || !t.isInteracting());) {\n _loop2();\n }\n } },\n {\n key: \"Ue\",\n value: function Ue(t, e, n, r) {\n if (n) this.onTileError(n, e);else {\n var _n46 = this.Be(r);\n e.memorySize = _n46, this.onTileLoad(t, e);\n }\n } },\n {\n key: \"Be\",\n value: function Be(t) {\n var e = 0;\n if (Array.isArray(t)) for (var _n47 = 0; _n47 < t.length; _n47++) t[_n47] && (e += this.Be(t[_n47]));else t && (e += t.getMemorySize());\n return e;\n } },\n {\n key: \"onTileLoad\",\n value: function onTileLoad(t, e) {\n this.layer && (delete this.tilesLoading[e.id], this.layer.onTileLoad(t, e), this.Ge(e), this.setToRedraw(), this.layer.fire(\"tileload\", {\n node: e }));\n\n } },\n {\n key: \"onTilesetLoad\",\n value: function onTilesetLoad(t, e, n) {\n this.layer && (this.layer.zt = t.extensions && t.extensions[\"s3m:VertexCompressionType\"], t.capabilities || t.layers && t.layers[0] && t.layers[0].capabilities ? this.De(t, e, n) : (delete this.tilesLoading[e.id], this.layer.onTilesetLoad(t, e, n)));\n } },\n {\n key: \"onTileError\",\n value: function onTileError(e, n, r) {\n if (!this.layer) return;\n var s = r || n.content.url,\n i = e && e.message || e;\n e && (404 === e.status || 204 === e.status) || Br.has(i) || (console.warn(\"failed to load 3d tile: \" + s), console.warn(e), Br.add(i)), delete this.tilesLoading[n.id], (!this.layer.options.onlyCacheNoContentTileWhenError || e && !t.Util.isNoContentHttpCode(e.status)) && this.Fe(n, e), this.layer.fire(\"tileerror\", {\n node: n,\n error: e });\n\n } },\n {\n key: \"getCachedTile\",\n value: function getCachedTile(t) {\n return this.tileCache.get(t);\n } },\n {\n key: \"getShadowMeshes\",\n value: function getShadowMeshes() {\n if (!this.painter) return [];\n var t = [],\n e = this.painter.getCurrentB3DMMeshes();\n for (var _n48 in e) e[_n48] && e[_n48].isValid && e[_n48].isValid() && t.push(e[_n48]);\n var n = this.painter.getCurrentI3DMMeshes();\n for (var _e50 in n) n[_e50] && n[_e50].isValid && n[_e50].isValid() && t.push(n[_e50]);\n return t;\n } },\n {\n key: \"Fe\",\n value: function Fe(e, n) {\n var r = {\n loadTime: t.Util.now(),\n current: !0,\n error: n,\n node: e };\n\n r.renderer = this, this.tileCache.add(e.id, r);\n } },\n {\n key: \"Ge\",\n value: function Ge(e) {\n var n = {\n loadTime: t.Util.now(),\n current: !0,\n node: e };\n\n n.renderer = this, this.tileCache.add(e.id, n);\n } },\n {\n key: \"abortTileLoading\",\n value: function abortTileLoading(t) {\n if (!t || !this.workerConn) return;\n var e = t.node.content.url;\n this.workerConn.abortTileLoading(this.layer.getId(), e), delete this.me[e];\n } },\n {\n key: \"Me\",\n value: function Me() {\n if (this.tilesLoading) for (var _t72 in this.tilesLoading) this.tilesLoading[_t72].current = !1;\n } },\n {\n key: \"deleteTile\",\n value: function deleteTile(t) {\n this.painter.deleteTile(t);\n } },\n {\n key: \"createContext\",\n value: function createContext() {\n var t = this.layer,\n e = t.options.glOptions || {\n alpha: !0,\n depth: !0,\n stencil: !0,\n preserveDrawingBuffer: !0,\n antialias: t.options.antialias },\n\n n = this.canvas.gl && this.canvas.gl.wrap;\n n ? (this.gl = this.canvas.gl.wrap(), this.regl = this.canvas.gl.regl) : (this.glOptions = e, this.gl = this.je(this.canvas, e)), this.regl = this.regl || (0, _gl.createREGL)({\n gl: this.gl,\n attributes: e,\n extensions: [\"OES_element_index_uint\"],\n optionalExtensions: t.options.optionalExtensions || [] }),\n this.prepareWorker(), n && (this.canvas.pickingFBO = this.canvas.pickingFBO || this.regl.framebuffer(this.canvas.width, this.canvas.height)), this.pickingFBO = this.canvas.pickingFBO || this.regl.framebuffer(this.canvas.width, this.canvas.height), this.painter = new wr(this.regl, t), this.layer.ze(), this.layer.fire(\"contextcreate\", {\n regl: this.regl });\n\n } },\n {\n key: \"prepareWorker\",\n value: function prepareWorker() {\n var _this16 = this;\n var t = this.getMap();\n this.workerConn || (this.workerConn = new jt(\"@maptalks/3dtiles\", t.id, _gl.reshader.Util.supportNPOT(this.regl)));\n var e = this.workerConn;\n if (!e.isActive()) return;\n var r = this.layer.options || {};\n r = pt({}, r), delete r.offset;\n var s = t.options.spatialReference;\n r.projection = s && s.coordType || s && s.projection || t.getSpatialReference().getProjection().code;\n var i = this.layer.getId();\n e.addLayer(i, r, function (t) {\n if (t) throw t;\n _this16.layer && (_this16.ready = !0, _this16.layer.fire(\"workerready\"));\n });\n } },\n {\n key: \"onRemove\",\n value: function onRemove() {\n this.painter && this.painter.remove(), this.pickingFBO && (this.canvas.pickingFBO || this.pickingFBO.destroy(), delete this.pickingFBO), this.workerConn && (this.workerConn.removeLayer(this.layer.getId(), function (t) {\n if (t) throw t;\n }), this.workerConn.remove(), delete this.workerConn), Fr--, Fr || Dr.reset(), this.clear(), delete this.tileCache, _superPropGet(jr, \"onRemove\", this, 3)([]);\n } },\n {\n key: \"clear\",\n value: function clear() {\n this._e(!0), this.tileCache.reset(this), this.tilesLoading = {}, _superPropGet(jr, \"clear\", this, 3)([]);\n } },\n {\n key: \"clearCanvas\",\n value: function clearCanvas() {\n this.regl && this.regl.clear({\n color: [0, 0, 0, 0],\n depth: 1,\n stencil: 0 }),\n _superPropGet(jr, \"clearCanvas\", this, 3)([]);\n } },\n {\n key: \"getTileOpacity\",\n value: function getTileOpacity() {\n return 1;\n } },\n {\n key: \"getStencilValue\",\n value: function getStencilValue() {\n return 0;\n } },\n {\n key: \"_e\",\n value: function _e(t) {\n this.He || (this.He = Date.now());\n var e = Date.now();\n if (!t && e - this.He < this.layer.options.retireInterval) return;\n this.He = e;\n var n = [];\n for (var _e51 in this.tilesLoading) {\n var _r29 = this.tilesLoading[_e51];\n !t && _r29.current || (n.push(_e51), this.abortTileLoading(_r29));\n }\n for (var _t73 = 0; _t73 < n.length; _t73++) delete this.tilesLoading[n[_t73]];\n } },\n {\n key: \"Oe\",\n value: function Oe() {\n return this.getMap().isInteracting() ? this.layer.options.loadingLimitOnInteracting : this.layer.options.loadingLimit;\n } },\n {\n key: \"je\",\n value: function je(t, e) {\n var n = [\"webgl\", \"experimental-webgl\"];\n var r = null;\n for (var _s26 = 0; _s26 < n.length; ++_s26) {\n try {\n r = t.getContext(n[_s26], e);\n } catch (t) {}\n if (r) break;\n }\n return r;\n } },\n {\n key: \"Ae\",\n value: function Ae(t) {\n return !!this.tilesLoading[t];\n } },\n {\n key: \"getI3DMMeshes\",\n value: function getI3DMMeshes() {\n return this.painter.getI3DMMeshes();\n } },\n {\n key: \"getPNTSMeshes\",\n value: function getPNTSMeshes() {\n return this.painter.getPNTSMeshes();\n } },\n {\n key: \"getB3DMMeshes\",\n value: function getB3DMMeshes() {\n return this.painter.getB3DMMeshes();\n } },\n {\n key: \"readBatchData\",\n value: function readBatchData(t, e, n) {\n return xe(t, e, 0, n);\n } },\n {\n key: \"ge\",\n value: function ge() {\n var _this17 = this;\n if (!this.qe) return;\n var t = this.layer.options.i3sNodepageLimitPerFrame || Number.MAX_VALUE;\n var e = 0;\n var n = [];\n var _loop3 = function _loop3(_r30) {\n var s = _this17.qe[_r30];\n if (\"pending\" === s.status) return 0;\n s.status = \"pending\";\n var i = s.rootIdx,\n o = Pt(_this17.layer.j(i).fetchOptions);\n if (n.push(Rr.getJSON(_r30, o).then(function (t) {\n delete _this17.qe[_r30];\n var e = _this17.Ee[i];\n if (e) {\n t.nodes ? Tr(e, t.nodes) : (e[t.id] = t, Tr(e, t.children));\n for (var _t74 = 0; _t74 < s.length; _t74++) s[_t74]();\n _this17.setToRedraw();\n } else _this17.setToRedraw();\n })), e++, e >= t) return 1;\n },\n _ret2;\n for (var _r30 in this.qe) {\n _ret2 = _loop3(_r30);\n if (_ret2 === 0) continue;\n if (_ret2 === 1) break;\n }\n n.length && Promise.all(n);\n } },\n {\n key: \"be\",\n value: function be(t, e, n) {\n this.qe || (this.qe = {}), this.qe[e] = this.qe[e] || [], this.qe[e].rootIdx = t, this.qe[e].push(n), this.setToRedraw();\n } },\n {\n key: \"De\",\n value: function De(t, e, n) {\n var _this18 = this;\n this.Ee || (this.Ee = []);\n var r = e.H;\n this.Ee[r] || (this.Ee[r] = {});\n var s = this.Ee[r],\n i = this.layer.j(r);\n t.layers && (t = t.layers[0], \"/\" !== n[n.length - 1] && (n += \"/\"), n += \"layers/0\"), s.version = +(i.i3sVersion || t.store.version), !t.spatialReference || t.spatialReference.wkid && 4326 === t.spatialReference.wkid || console.warn(\"i3s has a spatialReference other than 4326.\", t.spatialReference), t.spatialReference && 4490 === t.spatialReference.wkid && (console.warn(\"i3s spatialReference is 4490,auto set spatialReference to 4326,This may cause some location issues, please ensure that your service is 4326\"), t.spatialReference.wkid = 4326), s.projection = t.spatialReference, function (t, e, n, r, s, i, o) {\n if (!i.layerScene) {\n i.layerScene = e, i.nodesPerPage = e.nodePages && e.nodePages.nodesPerPage || 64, i.lodSelectionMetricType = e.nodePages && e.nodePages.lodSelectionMetricType;\n var _t75 = s;\n if (i.layerScene.eslpk = _t75.indexOf(\"3dSceneLayer.json\") >= 0, _t75.endsWith(\".json\")) {\n var _e52 = s.lastIndexOf(\"/\");\n _t75 = _e52 < 0 ? \"./\" : s.substring(0, _e52);\n }\n i.layerScene.baseUrl = function (t) {\n return t.split(\"?\")[0];\n }(_t75);\n }\n return new Mr(s, n, i, t, o).load();\n }(this.layer, t, r, 0, n, s, this.te).then(function (t) {\n _this18.onTilesetLoad(t, e, n);\n });\n } },\n {\n key: \"pick\",\n value: function pick(t, e, n) {\n if (!this.painter) return [];\n var r = this.pickingFBO,\n _this$canvas = this.canvas,\n s = _this$canvas.width,\n i = _this$canvas.height;\n return !this.pickingFBO || r.width === s && r.height === i || r.resize(s, i), this.painter.pick(t, e, n && n.tolerance);\n } },\n {\n key: \"highlight\",\n value: function highlight(t) {\n if (this.J || (this.J = []), Array.isArray(t)) for (var _e53 = 0; _e53 < t.length; _e53++) {\n var _n49 = t[_e53].service || 0;\n var _r31 = this.J[_n49];\n _r31 || (_r31 = this.J[_n49] = new Map()), _r31.set(t[_e53].id, t[_e53]);\n } else {\n var _e54 = t.service || 0;\n var _n50 = this.J[_e54];\n _n50 || (_n50 = this.J[_e54] = new Map()), _n50.set(t.id, t);\n }\n this.painter.highlight(this.J);\n } },\n {\n key: \"cancelHighlight\",\n value: function cancelHighlight(t, e) {\n if (!this.J) return;\n var n = this.J[t];\n if (n) {\n if (Array.isArray(e)) for (var _t76 = 0; _t76 < e.length; _t76++) n.delete(e[_t76]);else n.delete(e);\n n.size || (this.J[t] = null), this.painter.highlight(this.J);\n }\n } },\n {\n key: \"cancelAllHighlight\",\n value: function cancelAllHighlight() {\n delete this.J, this.painter.cancelAllHighlight();\n } },\n {\n key: \"showOnly\",\n value: function showOnly(t) {\n if (this.Z || (this.Z = []), Array.isArray(t)) for (var _e55 = 0; _e55 < t.length; _e55++) {\n var _n51 = t[_e55].service || 0;\n var _r32 = this.Z[_n51];\n _r32 || (_r32 = this.Z[_n51] = new Map()), _r32.set(t[_e55].id, t[_e55]);\n } else {\n var _e56 = t.service || 0;\n var _n52 = this.Z[_e56];\n _n52 || (_n52 = this.Z[_e56] = new Map()), _n52.set(t.id, t);\n }\n this.painter.showOnly(this.Z);\n } },\n {\n key: \"cancelShowOnly\",\n value: function cancelShowOnly() {\n delete this.Z, this.painter.cancelShowOnly();\n } },\n {\n key: \"Wt\",\n value: function Wt() {\n return this.painter ? this.painter.Wt() : [];\n } },\n {\n key: \"fe\",\n value: function fe(t, e) {\n var n = this.getMap();\n if (\"identity\" === n.getProjection().code.toLowerCase()) {\n var _n53 = this.$e();\n return Pr.set(e[0], e[1]), _n53.unproject(Pr, Ur), t[0] = Ur.x, t[1] = Ur.y, t;\n }\n return Pr.set(e[0], e[1]), n.getProjection().unproject(Pr, Ur), t[0] = Ur.x, t[1] = Ur.y, t;\n } },\n {\n key: \"Ve\",\n value: function Ve(t, e) {\n var n = this.$e();\n return Pr.set(e[0], e[1]), n.project(Pr, Ur), t[0] = Ur.x, t[1] = Ur.y, t;\n } },\n {\n key: \"Je\",\n value: function Je(t, e) {\n var n = this.$e();\n return Pr.set(e[0], e[1]), n.unproject(Pr, Ur), t[0] = Ur.x, t[1] = Ur.y, t;\n } },\n {\n key: \"$e\",\n value: function $e() {\n var e = this.getMap().options.spatialReference.coordType;\n if (!e) throw new Error(\"Missing coordType in map spatialReference.\");\n return this.Ye || (this.Ye = t.SpatialReference.getProjectionInstance(e)), this.Ye;\n } }]);\n\n }((0, _gl.MaskRendererMixin)(t.renderer.CanvasRenderer));\n function zr(t, e) {\n return t.ft - e.ft;\n }\n function Hr(t, e, n) {\n return t[0] = e[n], t[1] = e[n + 3], t[2] = e[n + 6], t;\n }\n function qr(t, e, n) {\n return Math.sqrt(function (t, e, n) {\n var r = _glMatrix.vec3.subtract($r, n, t),\n s = Hr(Vr, e, 0),\n i = Hr(Jr, e, 1),\n o = Hr(Yr, e, 2),\n a = _glMatrix.vec3.len(s),\n c = _glMatrix.vec3.len(i),\n l = _glMatrix.vec3.len(o);\n _glMatrix.vec3.normalize(s, s), _glMatrix.vec3.normalize(i, i), _glMatrix.vec3.normalize(o, o);\n var h = Zr;\n h[0] = _glMatrix.vec3.dot(r, s), h[1] = _glMatrix.vec3.dot(r, i), h[2] = _glMatrix.vec3.dot(r, o);\n var u,\n f = 0;\n h[0] < -a ? (u = h[0] + a, f += u * u) : h[0] > a && (u = h[0] - a, f += u * u);\n h[1] < -c ? (u = h[1] + c, f += u * u) : h[1] > c && (u = h[1] - c, f += u * u);\n h[2] < -l ? (u = h[2] + l, f += u * u) : h[2] > l && (u = h[2] - l, f += u * u);\n return f;\n }(t, e, n));\n }\n var $r = [],\n Vr = [],\n Jr = [],\n Yr = [],\n Zr = [];\n var Kr = 2 * Math.PI;\n var Xr = function () {\n function Xr(t, e, n, r) {\n _classCallCheck(this, Xr);\n this.west = t, this.south = e, this.east = n, this.north = r;\n }\n return _createClass(Xr, null, [{\n key: \"contains\",\n value: function contains(t, e) {\n var n = e[0];\n var r = e[1],\n s = t.west;\n var i = t.east;\n return i < s && (i += Kr, n < 0 && (n += Kr)), (n > s || ve(n, s, 1e-14)) && (n < i || ve(n, i, 1e-14)) && r >= t.south && r <= t.north;\n } },\n {\n key: \"southwest\",\n value: function southwest(t, e) {\n return e[0] = t.west, e[1] = t.south, e[2] = 0, e;\n } },\n {\n key: \"northeast\",\n value: function northeast(t, e) {\n return e[0] = t.east, e[1] = t.north, e[2] = 0, e;\n } },\n {\n key: \"southeast\",\n value: function southeast(t, e) {\n return e[0] = t.east, e[1] = t.south, e[2] = 0, e;\n } },\n {\n key: \"northwest\",\n value: function northwest(t, e) {\n return e[0] = t.west, e[1] = t.north, e[2] = 0, e;\n } }]);\n\n }();\n var Wr = [0, 0, 1];\n function Qr(t, e) {\n return ie(e, t[0], t[1], t[2]);\n }\n var ts = function () {\n function ts(t, e) {\n _classCallCheck(this, ts);\n this.normal = _gl.vec3.copy([], t), this.distance = e;\n }\n return _createClass(ts, null, [{\n key: \"fromPointNormal\",\n value: function fromPointNormal(t, e, n) {\n var r = -_gl.vec3.dot(e, t);\n return _gl.vec3.copy(n.normal, e), n.distance = r, n;\n } }]);\n\n }();\n var es = [],\n ns = [],\n rs = [],\n ss = [],\n is = [],\n os = [],\n as = [],\n cs = [],\n ls = [],\n hs = [],\n us = new ts([1, 0, 0], 0),\n fs = [];\n var ds = function () {\n function ds(t) {\n _classCallCheck(this, ds);\n this.southwestCornerCartesian = [], this.northeastCornerCartesian = [], this.westNormal = [], this.eastNormal = [], this.southNormal = [], this.northNormal = [], this.rectangle = new (Function.prototype.bind.apply(Xr, [null].concat(_toConsumableArray(t))))(), this.minimumHeight = t[4], this.maximumHeight = t[5], this.computeBox(this.rectangle);\n }\n return _createClass(ds, [{\n key: \"distanceToCamera\",\n value: function distanceToCamera(t, e) {\n var n = 0;\n if (!Xr.contains(this.rectangle, e)) {\n var _e57 = this.southwestCornerCartesian,\n _r33 = this.northeastCornerCartesian,\n _s27 = this.westNormal,\n _i21 = this.southNormal,\n _o18 = this.eastNormal,\n _c5 = this.northNormal,\n _l4 = _gl.vec3.subtract(fs, t, _e57),\n _h4 = _gl.vec3.dot(_l4, _s27),\n _u4 = _gl.vec3.dot(_l4, _i21),\n _f = _gl.vec3.subtract(fs, t, _r33),\n _d = _gl.vec3.dot(_f, _o18),\n _m2 = _gl.vec3.dot(_f, _c5);\n _h4 > 0 ? n += _h4 * _h4 : _d > 0 && (n += _d * _d), _u4 > 0 ? n += _u4 * _u4 : _m2 > 0 && (n += _m2 * _m2);\n }\n var r = e[2],\n s = this.minimumHeight,\n i = this.maximumHeight;\n if (r > i) {\n var _t77 = r - i;\n n += _t77 * _t77;\n } else if (r < s) {\n var _t78 = s - r;\n n += _t78 * _t78;\n }\n return Math.sqrt(n);\n } },\n {\n key: \"computeBox\",\n value: function computeBox(t) {\n var e = this;\n Qr(Xr.southwest(t, ns), e.southwestCornerCartesian), Qr(Xr.northeast(t, ns), e.northeastCornerCartesian), es[0] = t.west, es[1] = .5 * (t.south + t.north), es[2] = 0;\n var n = Qr(es, rs),\n r = _gl.vec3.cross(is, n, Wr);\n _gl.vec3.normalize(e.westNormal, r), es[0] = t.east;\n var s = Qr(es, cs),\n i = _gl.vec3.cross(is, Wr, s);\n _gl.vec3.normalize(e.eastNormal, i);\n var o = _gl.vec3.subtract(is, n, s),\n c = _gl.vec3.normalize(ss, o),\n l = t.south;\n var h;\n if (l > 0) {\n es[0] = .5 * (t.west + t.east), es[1] = l;\n var _n54 = Qr(es, ls);\n _gl.vec3.copy(hs, c);\n var _r34 = ts.fromPointNormal(e.southwestCornerCartesian, e.westNormal, us);\n ms(ls, hs, _r34, e.southwestCornerCartesian), h = ye(_n54, os);\n } else h = ge(Xr.southeast(t, ns), os);\n var u = _gl.vec3.cross(as, h, o);\n _gl.vec3.normalize(e.southNormal, u);\n var f = t.north;\n var d;\n if (f < 0) {\n es[0] = .5 * (t.west + t.east), es[1] = f;\n var _n55 = Qr(es, ls);\n _gl.vec3.scale(hs, c, -1);\n var _r35 = ts.fromPointNormal(e.northeastCornerCartesian, e.eastNormal, us);\n ms(ls, hs, _r35, e.northeastCornerCartesian), d = ye(_n55, os);\n } else d = ge(Xr.northwest(t, ns), os);\n var m = _gl.vec3.cross(as, o, d);\n _gl.vec3.normalize(e.northNormal, m);\n } }]);\n\n }();\n function ms(t, e, n, r) {\n var s = t,\n i = e,\n o = n.normal,\n c = _gl.vec3.dot(o, i);\n if (Math.abs(c) < 1e-15) return;\n var l = (-n.distance - _gl.vec3.dot(o, s)) / c;\n return l < 0 ? void 0 : (r = _gl.vec3.scale(r, i, l), _gl.vec3.add(r, s, r));\n }\n function ps(t) {\n return [t.xmin, t.ymin, t.xmax, t.ymax];\n }\n var bs = t.BBOXUtil,\n ys = {\n \"services\": [],\n \"maxGPUMemory\": t.Browser.mobile ? 32 : 1536,\n \"retireInterval\": 2e3,\n \"loadingLimitOnInteracting\": 5,\n \"loadingLimit\": 10,\n \"debug\": !1,\n \"meshLimitPerFrame\": 1,\n \"i3sNodepageLimitPerFrame\": 1,\n \"enableI3SCompressedGeometry\": !0,\n \"forceI3SCompressedGeometry\": !0,\n \"onlyCacheNoContentTileWhenError\": !0,\n \"picking\": !0,\n \"pickingPoint\": !0,\n \"geometryEvents\": !1,\n \"alwaysShowTopTiles\": !0,\n \"antialias\": !1,\n \"offset\": [0, 0],\n \"renderer\": \"gl\",\n \"forceRenderOnZooming\": !0,\n \"forceRenderOnRotating\": !0,\n \"forceRenderOnMoving\": !0,\n \"optionalExtensions\": [\"ANGLE_instanced_arrays\", \"OES_element_index_uint\", \"OES_standard_derivatives\", \"OES_vertex_array_object\", \"OES_texture_half_float\", \"OES_texture_half_float_linear\", \"OES_texture_float\", \"OES_texture_float_linear\", \"WEBGL_depth_texture\", \"EXT_shader_texture_lod\", \"WEBGL_compressed_texture_astc\", \"WEBGL_compressed_texture_etc\", \"WEBGL_compressed_texture_etc1\", \"WEBGL_compressed_texture_pvrtc\", \"WEBGL_compressed_texture_s3tc\", \"WEBGL_compressed_texture_s3tc_srgb\"] },\n\n gs = [0, 0, 0],\n ws = [0, 0, 0],\n vs = [0, 0, 0],\n Ts = [0, 0, 0],\n _s = [0, 0, 0],\n Ms = [0, 0, 0],\n Os = [0, 0, 0],\n As = [1, 1, 1],\n xs = [1, 1, 1],\n Is = [0, 0, 0, 0],\n Ss = [],\n Cs = new t.Coordinate(0, 0),\n ks = new t.Point(0, 0),\n Ns = [0, 0, 0, 0, 0, 0, 0, 0, 0],\n Ls = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n Es = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n Rs = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n Ps = new t.Point(0, 0),\n Us = _gl.mat4.identity([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]),\n Bs = [0, 0],\n Gs = [0, 0, 0],\n Ds = [1, 1, 1],\n Fs = [0, 0, 0],\n js = [0, 0, 0],\n zs = [0, 0, 0, 0],\n Hs = [1, 1, 1, 1, -1, 1, -1, -1, 1, -1, 1, 1, 1, 1, -1, 1, -1, -1, -1, -1, -1, -1, 1, -1];\n var qs = exports.Geo3DTilesLayer = function (_f2) {\n function qs(t, e) {\n var _this19;\n _classCallCheck(this, qs);\n _this19 = _callSuper(this, qs, [t, e]), _this19.isGeo3DTilesLayer = !0, _this19.Ze(), _this19.Ke = [];\n return _this19;\n }\n _inherits(qs, _f2);\n return _createClass(qs, [{\n key: \"Ze\",\n value: function Ze() {\n var t = this.options.services.map(function (t) {\n return t.url;\n });\n this.Xe = this.Xe || {}, this.Pe = this.Pe || [];\n for (var _e58 = 0; _e58 < t.length; _e58++) {\n var _n56 = t[_e58];\n var _r36 = this.Xe[_n56];\n void 0 === _r36 && (_r36 = this.Xe[_n56] = this.Pe.length), this.Pe[_r36] = Js(_n56, _r36, this.options.services[_e58]);\n }\n this.fire(\"rootready\", {\n roots: this.Pe.slice(0) });\n\n } },\n {\n key: \"showService\",\n value: function showService(t) {\n return this.updateService(t, {\n visible: !0 }),\n this;\n } },\n {\n key: \"hideService\",\n value: function hideService(t) {\n return this.updateService(t, {\n visible: !1 }),\n this;\n } },\n {\n key: \"setToRedraw\",\n value: function setToRedraw() {\n return this.We(), this;\n } },\n {\n key: \"addService\",\n value: function addService(t) {\n return this.options.services = this.options.services || [], this.options.services.push(t), this.Ze(), this.We(), this;\n } },\n {\n key: \"updateService\",\n value: function updateService(t, e) {\n if (!e) return this;\n var n = this.options.services;\n var r = !1;\n n && n[t] && (r = !(Ks(n[t].coordOffset, e.coordOffset) && Ks(n[t].heightOffset, e.heightOffset) && Ks(n[t].scale, e.scale) && Ks(n[t].rotation, e.rotation)), pt(n[t], e));\n var s = n[t].url,\n i = this.Xe[s],\n o = this.Pe && this.Pe[i];\n return o && (mt(e.visible) || (o.visible = e.visible), r && o.version++), this.We(), this;\n } },\n {\n key: \"removeService\",\n value: function removeService(t) {\n var e = this.options.services;\n if (e && e[t]) {\n var _n57 = e[t].url,\n _r37 = this.Xe[_n57];\n this.Pe[_r37] && (this.Pe[_r37] = null), delete this.Xe[_n57], e.splice(t, 1);\n }\n return this.We(), this;\n } },\n {\n key: \"getTileUrl\",\n value: function getTileUrl(t, e) {\n var n = e && e.service && e.service.subdomains;\n if (n && e.domainKey) {\n var _r38 = n.length;\n if (_r38) {\n var _s28 = [].concat(_toConsumableArray(t)).reduce(function (t, e) {\n return t + e.charCodeAt(0);\n }, 0) % _r38;\n return t.replace(e.domainKey, n[_s28]);\n }\n }\n return t;\n } },\n {\n key: \"getExtent\",\n value: function getExtent(e) {\n if (!e && 0 !== e) {\n var _e59 = new t.Extent();\n for (var _t79 = 0; _t79 < this.Pe.length; _t79++) {\n var _n58 = this.Pe[_t79];\n if (_n58 && _n58.boundingVolume) {\n var _t80 = this.boundingVolumeToExtent(_n58);\n _e59._combine(_t80);\n }\n }\n return _e59;\n }\n var n = this.Pe[e];\n return n && n.boundingVolume ? this.boundingVolumeToExtent(n) : null;\n } },\n {\n key: \"boundingVolumeToExtent\",\n value: function boundingVolumeToExtent(e) {\n var n = e.boundingVolume.Qe ? Us : e.matrix,\n r = this.getMap(),\n s = \"identity\" === r.getProjection().code.toLowerCase(),\n i = this.getRenderer();\n if (e.boundingVolume.region) {\n var _n59 = e.boundingVolume.region;\n return new t.Extent(vt(_n59[0]), vt(_n59[1]), vt(_n59[2]), vt(_n59[3]));\n }\n if (e.boundingVolume.sphere) {\n var _o19 = e.boundingVolume.sphere,\n _c6 = ue([], _gl.vec3.transformMat4([0, 0, 0], _o19, n));\n s && i.Ve(_c6, _c6);\n var _l5 = _o19[3],\n _h5 = r.locate(_c6, -_l5, _l5),\n _u5 = r.locate(_c6, _l5, -_l5);\n return new t.Extent(_h5, _u5);\n }\n if (e.boundingVolume.box) {\n var _o20 = e.boundingVolume.box,\n _l6 = _gl.vec3.transformMat4([0, 0, 0], _o20, n),\n _h6 = new t.Coordinate(ue([], _l6));\n s && i.Ve(_h6, _h6);\n var _u6 = _o20.slice(3);\n _gl.mat3.multiply(_u6, _gl.mat3.fromMat4([0, 0, 0, 0, 0, 0, 0, 0, 0], e.matrix), _u6);\n var _f3 = _gl.vec3.length(_u6.slice(0, 3)),\n _d2 = _gl.vec3.length(_u6.slice(3, 6)),\n _m3 = _gl.vec3.length(_u6.slice(6, 9)),\n _p2 = Math.max(_f3, _d2, _m3),\n _b2 = r.locate(_h6, -_p2, _p2),\n _y3 = r.locate(_h6, _p2, -_p2);\n return new t.Extent(_b2, _y3);\n }\n return null;\n } },\n {\n key: \"getRootTiles\",\n value: function getRootTiles() {\n return this.Pe;\n } },\n {\n key: \"getTiles\",\n value: function getTiles() {\n var t = this.getRenderer();\n if (!t.ready) return this.We(), {\n tiles: Ss };\n\n var e = this.getMap(),\n n = e.cameraPosition,\n r = e.pointAtResToDistance(n[2], 0, e.getGLRes()),\n s = this.tn(n);\n this.nn = this.nn || [0, 0, 0], _gl.vec3.set(this.nn, wt(s.x), wt(s.y), r), this.rn = ie(this.rn || [], this.nn[0], this.nn[1], this.nn[2]), this.sn = 2 * Math.tan(.5 * wt(e.getFov()));\n var i = e.projViewMatrix;\n var o;\n if (e.getPitch() <= 80) {\n var _t81 = e.getExtent(),\n _n60 = _t81.getWidth() / 2,\n _r39 = _t81.getHeight() / 2;\n _t81.xmin -= _n60, _t81.ymin -= _r39, _t81.xmax += _n60, _t81.ymax += _r39, o = ps(_t81);\n }\n var c = (this.getMasks() || []).filter(function (t) {\n return t && t instanceof _gl.ClipOutsideMask;\n });\n c.forEach(function (t) {\n if (!t.maskGeoJSON && t.toGeoJSON) try {\n t.maskGeoJSON = t.toGeoJSON();\n var _e60 = t.getExtent();\n t.maskGeoJSON.bbox = ps(_e60);\n } catch (t) {\n console.error(t);\n }\n });\n var l = {\n children: [],\n level: -1 };\n\n var h = l;\n var u = [];\n for (var _e61 = 0; _e61 < this.Pe.length; _e61++) {\n var _n61 = this.Pe[_e61];\n if (!_n61 || !_n61.visible) continue;\n var _r40 = _n61.service,\n _s29 = [_n61],\n _a8 = this.an(_e61);\n for (; _s29.length > 0;) {\n var _e62 = _s29.pop();\n for (_e62.id || this.cn(_e62); h.level >= _e62.ke;) h = h.parent;\n var _n62 = this.ln(_e62, _a8, i, o, c);\n if (_e62.service = _r40, !(_n62 === Xs.VISIBLE || _n62 !== Xs.OUT_OF_FRUSTUM && this.options.alwaysShowTopTiles && Zs(_e62))) {\n var _t82 = h;\n for (; _t82 && !_t82.content;) _t82 = _t82.parent;\n _n62 === Xs.SCREEN_ERROR_TOO_SMALL && _t82 && _t82.content && this.hn(u, _t82);\n continue;\n }\n _e62.ft < 1 / 0 && this.un(_e62);\n var _l7 = this.Ne(_e62, h);\n h.children.push(_l7);\n var _f4 = _e62.children,\n _d3 = _f4 && _f4.length,\n _m4 = _l7.content;\n if (_m4 && (!_d3 || _n62 === Xs.SCREEN_ERROR_TOO_SMALL) && this.hn(u, _l7), _n62 !== Xs.SCREEN_ERROR_TOO_SMALL && _d3) {\n _m4 && \"add\" === _e62.refine && this.hn(u, _l7), h = _l7;\n var _n63 = _f4[0].parent;\n var _r41 = !1;\n for (var _i22 = 0, _o21 = _f4.length; _i22 < _o21; _i22++) {\n if (_n63) {\n var _e63 = t.getCachedTile(_f4[_i22].id);\n if (_e63 && _e63.error && 404 !== _e63.error.status) continue;\n _r41 = !0;\n } else {\n _r41 = !0, _f4[_i22].parent = _e62, _f4[_i22].xt = _e62.xt, _f4[_i22].baseUrl = _e62.baseUrl;\n var _t83 = _f4[_i22].content && (_f4[_i22].content.url || _f4[_i22].content.uri);\n _t83 && (St(_t83) || _t83.indexOf(\"i3s:\") >= 0 ? _f4[_i22].baseUrl = _e62.baseUrl : Rt(_t83) ? _f4[_i22].content.url = _e62.baseUrl + _t83 : _f4[_i22].baseUrl = _t83.substring(0, _t83.lastIndexOf(\"/\") + 1));\n }\n _s29.push(_f4[_i22]);\n }\n !_r41 && _m4 && this.hn(u, _l7);\n }\n }\n }\n return {\n root: l,\n tiles: u };\n\n } },\n {\n key: \"hn\",\n value: function hn(t, e) {\n var _e$node = e.node,\n n = _e$node.viewerRequestVolume,\n r = _e$node.matrix;\n n && !function (t, e, n, r) {\n if (n.region) {\n var _e64 = n.region;\n if (t[0] >= _e64[0] && t[0] <= _e64[2] && t[1] >= _e64[1] && t[1] <= _e64[3]) return !0;\n } else {\n if (n.sphere) return $s(n, e, r) <= 0;\n if (n.box) return 0 === Vs(n, e, r);\n }\n return !1;\n }(this.nn, this.rn, n, r) || t.push(e);\n } },\n {\n key: \"Ne\",\n value: function Ne(t, e) {\n return {\n id: t.id,\n node: t,\n children: [],\n level: t.ke,\n parent: e,\n content: t.content && t.content.url };\n\n } },\n {\n key: \"cn\",\n value: function cn(e) {\n var n = this.getId();\n e.id = n + \":\" + t.Util.GUID(), e.matrix = e.transform || _gl.mat4.identity([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), e.dn = this.mn(e), e.parent && (function (t) {\n return t.content && t.content.uri && t.content.uri.indexOf(\"i3s:\") >= 0;\n }(e) || (e.matrix = _gl.mat4.multiply(e.matrix, e.parent.matrix, e.matrix)), e.H = e.parent.H, void 0 === e.ke && (e.ke = e.parent.ke + 1), e.maxExtent = e.parent.maxExtent), e.refine = e.refine && e.refine.toLowerCase() || \"replace\", e.content && !e.content.url && e.content.uri && (e.content.url = e.content.uri);\n } },\n {\n key: \"j\",\n value: function j(t) {\n return this.Pe[t].service;\n } },\n {\n key: \"pn\",\n value: function pn(t) {\n var e = t.boundingVolume;\n if (!e || e.Qe && !this.bn(t)) return;\n var n = this.j(t.H),\n s = n.heightOffset || 0,\n i = this.options.offset,\n o = bt(i) || i[0] || i[1],\n c = n.coordOffset || Bs;\n if (!Array.isArray(c)) throw new Error(\"service.coordOffset must be an array\");\n if (!e.Qe && (!t.boundingVolume || !s && _gl.mat4.exactEquals(t.matrix, Us) && !o && c === Bs)) return;\n e.box && e.region && delete e.region;\n var l = e.region,\n h = e.box,\n u = e.sphere;\n if (e.coordOffset = [c[0], c[1]], e.heightOffset = s, l) {\n e.originalVolume || (e.originalVolume = l.slice(0));\n var _t84 = e.originalVolume,\n _n64 = this.yn([vt(_t84[0]), vt(_t84[1])]);\n l[0] = wt(_n64.x + c[0]), l[1] = wt(_n64.y + c[1]);\n var _r42 = this.yn([vt(_t84[2]), vt(_t84[3])]);\n l[2] = wt(_r42.x + c[0]), l[3] = wt(_r42.y + c[1]), l[4] = _t84[4] + s + (c[2] || 0), l[5] = _t84[5] + s + (c[2] || 0);\n } else if (h || u) {\n e.originalVolume || (e.originalVolume = (h || u).slice(0));\n var _n65 = h || u,\n _r43 = e.originalVolume,\n _i23 = _gl.vec3.transformMat4(gs, _r43, t.matrix),\n _o22 = ue(ws, _i23),\n _l8 = this.yn([_o22[0] + c[0], _o22[1] + c[1]]);\n _o22[0] = _l8.x, _o22[1] = _l8.y, _o22[2] += s + (c[2] || 0), ie(_n65, wt(_o22[0]), wt(_o22[1]), _o22[2]);\n }\n e.Qe = !0;\n try {\n t.extent = this.boundingVolumeToExtent(t);\n } catch (t) {\n console.error(t);\n }\n } },\n {\n key: \"bn\",\n value: function bn(t) {\n var e = t.boundingVolume,\n n = this.j(t.H),\n r = n.heightOffset || 0,\n s = n.coordOffset || Bs;\n return e.coordOffset[0] !== s[0] || e.coordOffset[1] !== s[1] || e.heightOffset !== r;\n } },\n {\n key: \"mn\",\n value: function mn(t) {\n return void 0 === t.geometricError || !t.boundingVolume;\n } },\n {\n key: \"un\",\n value: function un(t) {\n var e = t.parent;\n for (; e && e.dn && !(e.ft <= t.ft);) e.ft = t.ft, e = t.parent;\n } },\n {\n key: \"onTileLoad\",\n value: function onTileLoad(t, e) {\n if (t.children && (!e.children || !e.children.length)) {\n e.children = t.children;\n var _n66 = e.content.url;\n e.baseUrl = _n66.substring(0, _n66.lastIndexOf(\"/\") + 1), this.We();\n }\n } },\n {\n key: \"onTilesetLoad\",\n value: function onTilesetLoad(t, e, n) {\n if (!t) return void console.warn(\"invalid tileset at : \" + n);\n var s = (t.asset && t.asset.gltfUpAxis || e && e.xt || \"Y\").toUpperCase();\n t.root.baseUrl = n.substring(0, n.lastIndexOf(\"/\") + 1);\n var i = n.indexOf(\"realspace/\") > -1;\n 0 === e.ke && t.asset && t.asset.s3mType && i && (t.root.baseUrl += \"data/path/\");\n var o = t.asset.i3s;\n if (t.root.xt = s, e) {\n var _n67 = e.boundingVolume,\n _s30 = e.gn;\n _s30 && delete e.gn, pt(e, t.root), e.refine = e.refine && e.refine.toLowerCase() || \"replace\", _n67 && (e.boundingVolume = _n67);\n var _i24 = t.root.transform;\n if (_s30) {\n var _t85 = this.j(e.H);\n _t85.ecefTransform && (_i24 = _gl.mat4.multiply([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], _t85.ecefTransform, _i24 || Us));\n }\n _i24 && (e.parent ? o || (e.matrix = _gl.mat4.multiply([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], e.parent.matrix, _i24)) : e.matrix = _gl.mat4.multiply([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], e.matrix, _i24)), delete e.content, t.root.content && (e.content = t.root.content), e.dn = this.mn(e);\n var _a9 = e.content && (e.content.url || e.content.uri);\n _a9 && e.content.uri && (e.content.url = e.content.uri, delete e.content.uri), !o && _a9 && !St(_a9) && Rt(_a9) && (e.content.url = e.baseUrl + _a9), t.root && !e.parent && this.wn(e);\n }\n this.We(), this.fire(\"loadtileset\", {\n tileset: t,\n index: e && e.H,\n url: n });\n\n } },\n {\n key: \"vn\",\n value: function vn(t, e, n) {\n if (!t.extent || !bs) return !0;\n var r = t.extent;\n if (zs[0] = r.xmin, zs[1] = r.ymin, zs[2] = r.xmax, zs[3] = r.ymax, e) {\n if (!bs.bboxIntersect(zs, e)) return !1;\n }\n if (n.length) {\n for (var _t86 = 0, _e65 = n.length; _t86 < _e65; _t86++) {\n var _e66 = n[_t86].maskGeoJSON;\n if (!_e66 || !_e66.bbox || bs.bboxInMask(zs, _e66)) return !0;\n }\n return !1;\n }\n return !0;\n } },\n {\n key: \"ln\",\n value: function ln(t, e, n, r, s) {\n if (!this.vn(t, r, s)) return Xs.OUT_OF_FRUSTUM;\n if (t.ft = 1 / 0, 0 === t.ke || t.dn) return this.wn(t), Xs.VISIBLE;\n if (this.pn(t), !this.Tn(t, e, n)) return Xs.OUT_OF_FRUSTUM;\n if (0 === t.geometricError) return Xs.VISIBLE;\n var i = this.j(t.H).maximumScreenSpaceError;\n null == i && (i = 16);\n var o = this._n(t);\n return 0 === o && t.parent && (o = .5 * (t.parent.Mn || 0)), o >= i ? Xs.VISIBLE : Xs.SCREEN_ERROR_TOO_SMALL;\n } },\n {\n key: \"Kt\",\n value: function Kt(e, n) {\n n || (n = new t.Point(0, 0));\n var r = this.getMap();\n return r.coordToPointAtRes(e, r.getGLRes(), n);\n } },\n {\n key: \"Tn\",\n value: function Tn(t, e, n) {\n var r = t.id;\n var s = this.Ke[r];\n var i = t.boundingVolume,\n o = i.region,\n a = i.box,\n c = i.sphere,\n l = this.On(t.H),\n h = this.getRenderer();\n s && s.version === l.version || (o ? s = this.Ke[r] = this.An(t) : a ? s = this.Ke[r] = this.xn(t) : c && (s = this.Ke[r] = this.In(t)), s.version = l.version, t.dt && (h.Ft(t.dt), delete t.dt));\n return this.j(t.H).debug && (this.Ke[r].node = t, h.Gt(t)), s.obbox ? (0, _frustumIntersects.intersectsOrientedBox)(n, s.obbox) : !!c && (0, _frustumIntersects.intersectsSphere)(n, s.sphereBox);\n } },\n {\n key: \"An\",\n value: function An(e) {\n var n = this.getMap(),\n s = n.getGLRes(),\n i = e.boundingVolume.region;\n var _ref11 = function (t) {\n var e = t[0],\n n = t[1],\n r = t[2],\n s = t[3],\n i = t[4],\n o = t[5],\n a = ie([], e, n, i),\n c = ie([], r, s, o),\n l = ue(a, a),\n h = ue(c, c);\n return {\n ws: l,\n en: h };\n\n }(i),\n o = _ref11.ws,\n c = _ref11.en;\n o = new t.Coordinate(o), c = new t.Coordinate(c);\n var l = n.coordToPointAtRes(o, s);\n l.z = n.altitudeToPoint(o.z, s);\n var h = n.coordToPointAtRes(c, s);\n h.z = n.altitudeToPoint(c.z, s);\n var u = [h.x, l.y, h.z, h.x, h.y, h.z, l.x, h.y, h.z, l.x, l.y, h.z, h.x, l.y, l.z, h.x, h.y, l.z, l.x, h.y, l.z, l.x, l.y, l.z],\n f = [(u[0] + u[18]) / 2, (u[1] + u[19]) / 2, (u[2] + u[20]) / 2],\n d = this.On(e.H);\n e !== d || d.Sn || (d.Sn = f);\n var m = this.Jt([], e),\n p = _gl.mat4.exactEquals(Us, m);\n if (!p) {\n _gl.vec3.transformMat4(f, f, m);\n var _t87 = gs;\n for (var _e67 = 0; _e67 < u.length; _e67 += 3) {\n var _n68 = _gl.vec3.set(_t87, u[_e67], u[_e67 + 1], u[_e67 + 2]);\n p || (_n68 = _gl.vec3.transformMat4(_n68, _n68, m)), u[_e67] = _n68[0], u[_e67 + 1] = _n68[1], u[_e67 + 2] = _n68[2];\n }\n }\n var b = n.pointAtResToCoord(new t.Point(f), s);\n b.z = (o.z + c.z) / 2;\n var y = this.Cn(u, f);\n for (var _t88 = 0; _t88 < u.length; _t88++) u[_t88] -= f[_t88 % 3];\n return {\n obbox: y,\n boxPosition: u,\n boxCenter: f,\n boxCoord: b };\n\n } },\n {\n key: \"xn\",\n value: function xn(t) {\n var e = this.getRenderer(),\n n = this.getMap(),\n s = \"identity\" === n.getProjection().code.toLowerCase(),\n i = n.getGLRes(),\n _this$kn = this.kn(t),\n o = _this$kn.boxCenter,\n c = _this$kn.boxCoord,\n l = t.boundingVolume.box,\n h = this.Nn(l, t.matrix),\n u = (d = l, function (t, e, n, r, s, i, o, a, c, l, h, u, f, d, m, p, b) {\n return t[0] = e || 0, t[1] = i || 0, t[2] = l || 0, t[3] = 0, t[4] = n || 0, t[5] = o || 0, t[6] = h || 0, t[7] = 0, t[8] = r || 0, t[9] = a || 0, t[10] = u || 0, t[11] = 0, t[12] = s || 0, t[13] = c || 0, t[14] = f || 0, t[15] = b, t;\n }([], (f = h)[0], f[3], f[6], d[0], f[1], f[4], f[7], d[1], f[2], f[5], f[8], d[2], 0, 0, 0, 1));\n var f, d;\n var m = this.Jt([], t),\n p = _gl.mat4.exactEquals(Us, m);\n p || _gl.vec3.transformMat4(o, o, m);\n var b = [],\n y = gs;\n for (var _t89 = 0; _t89 < Hs.length; _t89 += 3) {\n y[0] = Hs[_t89], y[1] = Hs[_t89 + 1], y[2] = Hs[_t89 + 2], _gl.vec3.transformMat4(y, y, u), ue(y, y), s && e.Ve(y, y);\n var _r44 = Cs.set(y[0], y[1], y[2]);\n n.coordToPointAtRes(_r44, i, ks);\n var _o23 = _gl.vec3.set(y, ks.x, ks.y, n.altitudeToPoint(_r44.z, i));\n p || (_o23 = _gl.vec3.transformMat4(_o23, _o23, m)), b[_t89] = _o23[0], b[_t89 + 1] = _o23[1], b[_t89 + 2] = _o23[2];\n }\n var g = this.Cn(b, o);\n for (var _t90 = 0; _t90 < b.length; _t90++) b[_t90] -= o[_t90 % 3];\n return {\n obbox: g,\n boxPosition: b,\n boxCenter: o,\n boxCoord: c };\n\n } },\n {\n key: \"In\",\n value: function In(e) {\n var n = this.getMap(),\n r = this.getRenderer(),\n s = \"identity\" === n.getProjection().code.toLowerCase(),\n i = e.boundingVolume.sphere,\n o = i;\n var a = gs;\n 0 === o[0] && 0 === o[1] && 0 === o[2] ? a = [0, 0, -6378137] : ue(a, o), s && r.Ve(a, a);\n var c = new t.Coordinate(a),\n l = this.Kt(c, ks).toArray();\n l[2] = n.altitudeToPoint(c.z, n.getGLRes());\n var h = this.Ln(c);\n return {\n boxCenter: l,\n boxCoord: c,\n sphereBox: [l, i[3] * h[2]] };\n\n } },\n {\n key: \"Cn\",\n value: function Cn(t, e) {\n var n = Ys(_s, t, 0, 1, 4, 5),\n r = Ys(Ms, t, 0, 3, 4, 7),\n s = Ys(Os, t, 0, 1, 2, 3);\n return [].concat(_toConsumableArray(e), _toConsumableArray(_gl.vec3.sub(gs, n, e)), _toConsumableArray(_gl.vec3.sub(ws, r, e)), _toConsumableArray(_gl.vec3.sub(vs, s, e)));\n } },\n {\n key: \"kn\",\n value: function kn(e) {\n var n = this.getMap(),\n r = this.getRenderer(),\n s = \"identity\" === n.getProjection().code.toLowerCase(),\n i = n.getGLRes(),\n o = e.boundingVolume.box.slice(0, 3);\n ue(o, o), s && r.Ve(o, o);\n var a = new t.Coordinate(o),\n c = n.coordToPointAtRes(a, i);\n return {\n boxCenter: [c.x, c.y, n.altitudeToPoint(a.z, i)],\n boxCoord: a };\n\n } },\n {\n key: \"Jt\",\n value: function Jt(t, e) {\n var n = this.On(e.H),\n s = this.j(e.H),\n i = n.Sn,\n c = _gl.mat4.fromTranslation(Ls, _gl.vec3.set(gs, -i[0], -i[1], -i[2])),\n l = _gl.mat4.fromTranslation(Es, i),\n h = s.rotation || Gs,\n u = _gl.quat.fromEuler.apply(o, [Is].concat(_toConsumableArray(h))),\n f = s.scale;\n var d;\n d = Array.isArray(f) ? _gl.vec3.set(Fs, f[0], f[1], f[2]) : f && _gl.vec3.set(Fs, f, f, f) || Ds;\n var m = _gl.mat4.fromRotationTranslationScale(Rs, u, js, d);\n return t = _gl.mat4.multiply(t, m, c), _gl.mat4.multiply(t, l, t);\n } },\n {\n key: \"wn\",\n value: function wn(t) {\n var e = this.j(t.H);\n if (!t.boundingVolume || this.En(t, e)) return;\n var n = t.boundingVolume.box,\n r = t.boundingVolume.region,\n s = t.boundingVolume.sphere;\n var i = null;\n n ? i = this.Rn(t).boxCenter : r ? i = this.Pn(t).boxCenter : s && (i = this.In(t).boxCenter);\n var o = e.heightOffset || 0,\n a = e.coordOffset || [0, 0];\n t.Un = [a[0] || 0, a[1] || 0], t.Bn = o, t.Sn = i;\n } },\n {\n key: \"En\",\n value: function En(t, e) {\n if (!t.Un) return !1;\n var n = e.coordOffset || Bs;\n return t.Un[0] === n[0] && t.Un[1] === n[1] && t.Bn === (e.heightOffset || 0);\n } },\n {\n key: \"Pn\",\n value: function Pn(t) {\n return this.pn(t), this.An(t);\n } },\n {\n key: \"Rn\",\n value: function Rn(t) {\n return this.pn(t), this.kn(t);\n } },\n {\n key: \"Nn\",\n value: function Nn(t, e) {\n var n = t.slice(3, 12);\n var r = _gl.mat3.fromMat4(Ns, e);\n return n = _gl.mat3.multiply(n, r, n), n;\n } },\n {\n key: \"Ln\",\n value: function Ln(t) {\n var e = this.getMap(),\n n = e.distanceToPointAtRes(100, 100, e.getGLRes(), t);\n var r;\n return r = e.altitudeToPoint ? e.altitudeToPoint(100, e.getGLRes()) / 100 : n.y / 100, _gl.vec3.set(As, n.x / 100 * 1.01, n.y / 100 * 1.01, r), As;\n } },\n {\n key: \"yn\",\n value: function yn(e) {\n Array.isArray(e) && (e = new t.Coordinate(e));\n var n = this.options.offset;\n if (bt(n) && (n = n.call(this, Array.isArray(e) ? new t.Coordinate(e) : e)), n[0] || n[1]) {\n var _t91 = this.getMap(),\n _r45 = _t91.getGLRes(),\n _s31 = _t91.coordToPointAtRes(e, _r45);\n return ks.set(n[0], n[1]), _s31._sub(ks), _t91.pointAtResToCoord(_s31, _r45);\n }\n return e;\n } },\n {\n key: \"On\",\n value: function On(t) {\n return this.Pe[t];\n } },\n {\n key: \"an\",\n value: function an(e) {\n var _this20 = this;\n var n = this.j(e).maxExtent;\n if (!n) return null;\n var r = this.Pe[e];\n return r.maxExtent || (r.maxExtent = new t.Extent(n).convertTo(function (t) {\n return _this20.Kt(t);\n })), r.maxExtent;\n } },\n {\n key: \"_n\",\n value: function _n(t) {\n var e = this.sn,\n n = t.geometricError;\n if (0 === n) return t.Mn = 0, 0;\n var s = this.j(t.H);\n var i = s.scale || 1;\n if (Array.isArray(i) && (i = _gl.vec3.length(i)), s.ecefTransform) {\n var _t92 = _gl.mat4.getScaling(xs, s.ecefTransform);\n i *= _gl.vec3.len(_t92);\n }\n var o = this.getMap();\n var c;\n t.boundingVolume.region ? c = function (t, e, n) {\n t.Gn || (t.Gn = new ds(t.boundingVolume.region));\n return t.Gn.distanceToCamera(e, n);\n }(t, this.rn, this.nn) : t.boundingVolume.sphere ? c = $s(t.boundingVolume, this.rn) : t.boundingVolume.box && (c = Vs(t.boundingVolume, this.rn));\n var l = Math.max(Math.abs(c), 1e-7),\n h = n * i * o.height / (l * e);\n return t.ft = c, t.Mn = h, h;\n } },\n {\n key: \"We\",\n value: function We() {\n var t = this.getRenderer();\n t && t.setToRedraw();\n } },\n {\n key: \"Dt\",\n value: function Dt(t) {\n return this.Ke[t];\n } },\n {\n key: \"identify\",\n value: function identify(e) {\n var n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var r = this.getMap(),\n s = this.getRenderer();\n if (!r || !s) return [];\n Array.isArray(e) && (e = new t.Coordinate(e));\n var i = r.coordToContainerPoint(e);\n return this.identifyAtPoint(i, n);\n } },\n {\n key: \"identifyAtPoint\",\n value: function identifyAtPoint(t) {\n var e = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var n = [];\n if (!e.excludeMasks) {\n var _r46 = this.identifyMask(t, e);\n _r46 && _r46.length && kt(n, _r46);\n }\n var r = this.getMap(),\n s = this.getRenderer();\n if (!r || !s) return [];\n var i = r.getDevicePixelRatio();\n return kt(n, s.pick(t.x * i, t.y * i, e)), e && e.filter && !e.excludeMasks ? n.filter(function (t) {\n return e.filter(t);\n }) : n;\n } },\n {\n key: \"getCurrentBatchIDs\",\n value: function getCurrentBatchIDs() {\n var t = this.getMap(),\n e = this.getRenderer();\n return t && e ? e.Wt() : [];\n } },\n {\n key: \"highlight\",\n value: function highlight(t) {\n var e = this.getRenderer();\n return Array.isArray(t) || (t = [t]), e ? (e.highlight(t), this) : (this.J || (this.J = []), this.J.push(t), this);\n } },\n {\n key: \"ze\",\n value: function ze() {\n if (this.J) {\n for (var _t93 = 0; _t93 < this.J.length; _t93++) this.highlight(this.J[_t93]);\n delete this.J;\n }\n } },\n {\n key: \"cancelHighlight\",\n value: function cancelHighlight(t, e) {\n var n = this.getRenderer();\n return n ? (n.cancelHighlight(t, e), this) : this;\n } },\n {\n key: \"cancelAllHighlight\",\n value: function cancelAllHighlight() {\n var t = this.getRenderer();\n return t ? (t.cancelAllHighlight(), this) : this;\n } },\n {\n key: \"showOnly\",\n value: function showOnly(t) {\n var e = this.getRenderer();\n return e ? (e.showOnly(t), this) : (this.Z || (this.Z = []), this.Z.push(t), this);\n } },\n {\n key: \"Dn\",\n value: function Dn() {\n if (this.Z) {\n for (var _t94 = 0; _t94 < this.Z.length; _t94++) this.showOnly(this.Z[_t94]);\n delete this.Z;\n }\n } },\n {\n key: \"cancelShowOnly\",\n value: function cancelShowOnly(t) {\n var e = this.getRenderer();\n return e ? (e.cancelShowOnly(t), this) : this;\n } },\n {\n key: \"setServiceOpacity\",\n value: function setServiceOpacity(t, e) {\n var n = this.options.services[t];\n n && (n.opacity = e);\n return this.getRenderer() ? (this.We(), this) : this;\n } },\n {\n key: \"setServiceDebug\",\n value: function setServiceDebug(t, e) {\n var n = this.options.services[t];\n n && (n.debug = e);\n return this.getRenderer() ? (this.We(), this) : this;\n } },\n {\n key: \"tn\",\n value: function tn(t) {\n var e = this.getMap(),\n n = e.getGLRes();\n Ps.set(t[0], t[1]);\n var r = e.pointAtResToCoord(Ps, n);\n return \"identity\" === e.getProjection().code.toLowerCase() ? (ws[0] = r.x, ws[1] = r.y, this.getRenderer().Je(gs, ws), r.set(gs[0], gs[1]), r) : r;\n } },\n {\n key: \"toJSON\",\n value: function toJSON() {\n return {\n \"type\": this.getJSONType(),\n \"id\": this.getId(),\n \"options\": this.config() };\n\n } }],\n [{\n key: \"fromJSON\",\n value: function fromJSON(t) {\n return t && \"Geo3DTilesLayer\" === t.type ? new qs(t.id, t.options) : null;\n } },\n {\n key: \"getEnuTransform\",\n value: function getEnuTransform(t) {\n var e = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [1, 1, 1];\n var n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [0, 0, 0];\n var s = ie([], t[0] * Math.PI / 180, t[1] * Math.PI / 180, t[2] || 0),\n i = $e(s, null, []),\n a = _gl.quat.fromEuler.apply(o, [[0, 0, 0, 0]].concat(_toConsumableArray(n))),\n c = _gl.mat4.fromRotationTranslationScale([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], a, [0, 0, 0], e);\n return _gl.mat4.multiply(c, i, c);\n } }]);\n\n }((0, _gl.MaskLayerMixin)(t.Layer));\n function $s(t, e, n) {\n var r = t.sphere;\n n && (r = _gl.vec3.transformMat4([0, 0, 0], r, n));\n var s = _gl.vec3.dist(r, e),\n i = t.sphere[3];\n return s < i ? 0 : s - i;\n }\n function Vs(t, e, n) {\n var r = t.box;\n var s = _gl.vec3.set(gs, r[0], r[1], r[2]);\n n && (s = _gl.vec3.transformMat4([0, 0, 0], s, n));\n return qr(s, _gl.mat3.set(Ns, r[3], r[4], r[5], r[6], r[7], r[8], r[9], r[10], r[11]), e);\n }\n function Js(t, e, n) {\n var s = (t = Tt(t)).indexOf(\"{s}\") >= 0 ? \"{s}\" : t.indexOf(\"%7Bs%7D\") >= 0 ? \"%7Bs%7D\" : null;\n return {\n version: 0,\n dn: !0,\n service: n,\n visible: !!mt(n.visible) || n.visible,\n baseUrl: t.substring(0, t.lastIndexOf(\"/\")) + \"/\",\n content: {\n url: t },\n\n refine: \"replace\",\n matrix: _gl.mat4.identity([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]),\n H: e,\n ke: 0,\n gn: !0,\n domainKey: s };\n\n }\n function Ys(t, e, n, r, s, i) {\n var o = _gl.vec3.set(gs, e[3 * n], e[3 * n + 1], e[3 * n + 2]),\n c = _gl.vec3.set(ws, e[3 * r], e[3 * r + 1], e[3 * r + 2]),\n l = _gl.vec3.set(vs, e[3 * s], e[3 * s + 1], e[3 * s + 2]),\n h = _gl.vec3.set(Ts, e[3 * i], e[3 * i + 1], e[3 * i + 2]);\n return t[0] = (o[0] + c[0] + l[0] + h[0]) / 4, t[1] = (o[1] + c[1] + l[1] + h[1]) / 4, t[2] = (o[2] + c[2] + l[2] + h[2]) / 4, t;\n }\n function Zs(t) {\n if (!t.content || t.hasParentContent) return !1;\n var e = t.parent;\n if (e && (e.content || e.hasParentContent)) return t.hasParentContent || (t.hasParentContent = !0), !1;\n for (; e;) {\n if (e.content || e.hasParentContent) return t.hasParentContent || (t.hasParentContent = !0), !1;\n e = e.parent;\n }\n return !0;\n }\n function Ks(t, e) {\n return Array.isArray(t) && Array.isArray(e) ? 2 === t.length ? _gl.vec2.exactEquals(t, e) : _gl.vec3.exactEquals(t, e) : t === e;\n }\n var Xs;\n qs.mergeOptions(ys), qs.registerRenderer(\"gl\", jr), qs.registerJSONType(\"Geo3DTilesLayer\"), function (t) {\n t[t.OUT_OF_FRUSTUM = 0] = \"OUT_OF_FRUSTUM\", t[t.SCREEN_ERROR_TOO_SMALL = 1] = \"SCREEN_ERROR_TOO_SMALL\", t[t.VISIBLE = 2] = \"VISIBLE\";\n }(Xs || (Xs = {}));\n var Ws = null;\n function Qs() {\n return Ws || (Ws = {\n \"image/crn\": Gt.crn && Gt.crn(),\n \"image/ktx2\": Gt.ktx2 && Gt.ktx2(),\n \"image/cttf\": Gt.ktx2 && Gt.ktx2(),\n \"draco\": Gt.draco && Gt.draco() }),\n Ws;\n }\n var _Dt3 = Dt(),\n ti = _Dt3.Ajax,\n ei = _Dt3.GLTFLoader;\n var ni = exports.B3DMLoader = function () {\n function ni(t, e, n) {\n _classCallCheck(this, ni);\n this.Fn = t, this.jn = e || ei, this.Re = n, this.zn = Qs();\n }\n return _createClass(ni, [{\n key: \"load\",\n value: function load(t, e) {\n var _this21 = this;\n var n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var r = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var s = arguments.length > 4 ? arguments[4] : undefined;\n return e ? (r || (r = e.byteLength), this.Hn(t, e, n, r, s)) : ti.getArrayBuffer(t, {}).then(function (e) {\n var s = e.data;\n return r || (r = s.byteLength), _this21.Hn(t, s, n, r);\n });\n } },\n {\n key: \"Hn\",\n value: function Hn(t, e, n, r, s) {\n var i = s && s.maxTextureSize,\n o = this.qn(e, n, r, t);\n if (o.error) return Promise.resolve(o);\n var a = t.substring(0, t.lastIndexOf(\"/\"));\n var c;\n try {\n c = new this.jn(a, o.glb, {\n transferable: !0,\n requestImage: this.Fn,\n decoders: this.zn,\n supportedFormats: this.Re,\n maxTextureSize: i });\n\n } catch (t) {\n return Promise.resolve({\n error: t });\n\n }\n return c.load({\n skipAttributeTransform: !1 }).\n then(function (e) {\n e.url = \"\".concat(t, \"-\").concat(n, \"-\").concat(r);\n var s = c.transferables;\n for (var _t95 = 0; _t95 < o.transferables.length; _t95++) s.indexOf(o.transferables[_t95]) < 0 && s.push(o.transferables[_t95]);\n return {\n magic: \"b3dm\",\n count: o.count,\n transferables: s,\n featureTable: o.featureTable,\n batchTable: o.batchTable,\n batchTableBin: o.batchTableBin,\n gltf: e };\n\n });\n } },\n {\n key: \"qn\",\n value: function qn(t, e, n, r) {\n var s = new DataView(t, e, n),\n i = s.getUint32(4, !0);\n if (1 !== i) {\n var _t96 = \"Unsupported b3dm version: \" + i + \", url:\" + r;\n return console.warn(_t96), {\n error: _t96 };\n\n }\n if (s.getUint32(8, !0) !== s.byteLength) {\n var _t97 = \"Length in b3dm header is inconsistent with b3dm's byte length, url: \" + r;\n return console.warn(_t97), {\n error: _t97 };\n\n }\n var o,\n a = s.getUint32(12, !0),\n c = s.getUint32(16, !0),\n l = s.getUint32(20, !0),\n h = s.getUint32(24, !0),\n u = 28 + e;\n l >= 570425344 ? (u -= 8, o = a, l = c, h = 0, a = 0, c = 0) : h >= 570425344 && (u -= 4, o = l, l = a, h = c, a = 0, c = 0);\n var f = [t];\n var d, m, p;\n if (a > 0 ? (d = Me(t, u, a), u += a, o = d.BATCH_LENGTH) : d = {\n \"BATCH_LENGTH\": o },\n c > 0 && (u += c), l > 0 && (m = Oe(t, u, l), u += l, h > 0)) {\n var _e68 = Ae(0, u, h);\n p = t.slice(_e68.offset, _e68.offset + _e68.byteLength), u += h, f.push(p);\n }\n var b = d.BATCH_LENGTH,\n y = {};\n if (d && d.BATCH_ID) {\n y.BATCH_ID = Ie(d.BATCH_ID, t, undefined.offset, b);\n var _e69 = y.BATCH_ID.array && y.BATCH_ID.array.buffer;\n _e69 && f.indexOf(_e69) < 0 && f.push(_e69);\n }\n return {\n count: o,\n transferables: f,\n featureTable: d,\n batchTable: m,\n batchTableBin: p,\n b3dm: y,\n glb: {\n buffer: t,\n byteOffset: u,\n byteLength: s.byteLength + s.byteOffset - u } };\n\n\n } },\n {\n key: \"$n\",\n value: function $n() {\n return null;\n } }],\n [{\n key: \"createEmptyB3DM\",\n value: function createEmptyB3DM() {\n return {\n featureTable: null,\n batchTable: null,\n gltf: {} };\n\n } }]);\n\n }();\n var _Dt4 = Dt(),\n ri = _Dt4.Ajax,\n si = _Dt4.GLTFLoader;\n var ii = function () {\n function ii(t, e, n, r) {\n _classCallCheck(this, ii);\n this.Fn = t, this.jn = e || si, this.Re = n, this.zn = Qs(), this.Vn = r;\n }\n return _createClass(ii, [{\n key: \"load\",\n value: function load(t, e) {\n var _this22 = this;\n var n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var r = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var s = arguments.length > 4 ? arguments[4] : undefined;\n return e ? (r || (r = e.byteLength), this.Hn(t, e, n, r, s)) : ri.getArrayBuffer(t, {}).then(function (e) {\n var s = e.data;\n return r || (r = s.byteLength), _this22.Hn(t, s, n, r);\n });\n } },\n {\n key: \"Hn\",\n value: function Hn(t, e, n, r, s) {\n var _this23 = this;\n return this.Jn(t, e, n, r, s).then(function (_ref12) {\n var s = _ref12.gltf,\n i = _ref12.transferables;\n var o = _this23.Yn(e, n, r, t);\n if (o.error) return Promise.resolve(o);\n for (var _t98 = 0; _t98 < i.length; _t98++) -1 === o.transferables.indexOf(i[_t98]) && o.transferables.push(i[_t98]);\n return delete s.transferables, Promise.resolve({\n magic: \"i3dm\",\n count: o.count,\n transferables: o.transferables,\n featureTable: o.featureTable,\n batchTable: o.batchTable,\n batchTableBin: o.batchTableBin,\n i3dm: o.i3dm,\n gltf: s });\n\n });\n } },\n {\n key: \"Jn\",\n value: function Jn(t, e, n, r, s) {\n var _this24 = this;\n var i = s && s.maxTextureSize,\n o = {\n transferable: !0,\n requestImage: this.Fn,\n decoders: this.zn,\n supportedFormats: this.Re,\n maxTextureSize: i },\n\n a = new DataView(e, n, r),\n c = 32 + a.getUint32(12, !0) + a.getUint32(16, !0) + a.getUint32(20, !0) + a.getUint32(24, !0);\n if (0 === a.getUint32(28, !0)) {\n var _r47 = Ot(new Uint8Array(e, c + n, a.byteLength - c));\n -1 == _r47.indexOf(\"://\") && (_r47 = t.substring(0, t.lastIndexOf(\"/\")) + \"/\" + _r47);\n return _r47.indexOf(\".glb\") > 0 ? ri.getArrayBuffer(_r47, {}).then(function (t) {\n return _this24.Zn(_r47, {\n buffer: t.data,\n byteOffset: 0 },\n o);\n }) : ri.getJSON(_r47, {}).then(function (t) {\n return _this24.Zn(_r47, t, o);\n });\n }\n {\n var _r48 = {\n buffer: e,\n byteOffset: c + n,\n byteLength: a.byteLength - c };\n\n return this.Zn(t, _r48, o);\n }\n } },\n {\n key: \"Zn\",\n value: function Zn(t, e, n) {\n var r = t.substring(0, t.lastIndexOf(\"/\")),\n s = new this.jn(r, e, n);\n return s.load({\n skipAttributeTransform: !0 }).\n then(function (n) {\n var r = 0,\n i = 0;\n return e.buffer && (r = e.byteOffset || 0, i = e.byteLength || 0), n.url = \"\".concat(t, \"-\").concat(r, \"-\").concat(i), {\n transferables: s.transferables,\n gltf: n };\n\n });\n } },\n {\n key: \"Yn\",\n value: function Yn(t, e, n, r) {\n var s = new DataView(t, e, n),\n i = s.getUint32(4, !0);\n if (1 !== i) {\n var _t99 = \"Unsupported pnts version: \" + i + \", url:\" + r;\n return console.warn(_t99), {\n error: _t99 };\n\n }\n if (s.getUint32(8, !0) !== s.byteLength) {\n var _t100 = \"Length in pnts header is inconsistent with pnts's byte length, url: \" + r;\n return console.warn(_t100), {\n error: _t100 };\n\n }\n var o = [t],\n _Pe = Pe(s, 32 + e, o),\n a = _Pe.featureTable,\n c = _Pe.featureTableBin,\n l = _Pe.batchTable,\n h = _Pe.batchTableBin,\n u = {},\n f = a.INSTANCES_LENGTH;\n if (a.POSITION) {\n var _e70 = a.POSITION.byteOffset;\n u.POSITION = {\n byteStride: 0,\n byteOffset: 0,\n itemSize: 3,\n count: f,\n componentType: 5126,\n array: new Float32Array(t, _e70 + c.offset, 3 * f).slice() },\n o.push(u.POSITION.array.buffer);\n } else if (a.POSITION_QUANTIZED) {\n var _e71 = a.QUANTIZED_VOLUME_OFFSET,\n _n69 = a.QUANTIZED_VOLUME_SCALE,\n _r49 = a.POSITION_QUANTIZED.byteOffset;\n u.POSITION = {\n byteStride: 12,\n byteOffset: 0,\n itemSize: 3,\n count: f,\n componentType: 5126,\n array: this.Kn(new Uint16Array(t, _r49 + c.offset, 3 * f), _e71, _n69) },\n o.push(u.POSITION.array.buffer);\n }\n if (a.BATCH_ID) {\n u.BATCH_ID = Ie(a.BATCH_ID, t, c.offset, f);\n var _e72 = u.BATCH_ID.array && u.BATCH_ID.array.buffer;\n _e72 && o.indexOf(_e72) < 0 && o.push(_e72);\n }\n if (a.NORMAL_UP) {\n var _e73 = a.NORMAL_UP.byteOffset;\n u.NORMAL_UP = {\n byteStride: 0,\n byteOffset: 0,\n itemSize: 3,\n count: f,\n componentType: 5126,\n array: new Float32Array(t, _e73 + c.offset, 3 * f).slice() },\n o.push(u.NORMAL_UP.array.buffer), _e73 = a.NORMAL_RIGHT.byteOffset, u.NORMAL_RIGHT = {\n byteStride: 0,\n byteOffset: 0,\n itemSize: 3,\n count: f,\n componentType: 5126,\n array: new Float32Array(t, _e73 + c.offset, 3 * f).slice() },\n o.push(u.NORMAL_RIGHT.array.buffer);\n } else if (a.NORMAL_UP_OCT32P) {\n var _e74 = a.NORMAL_UP_OCT32P.byteOffset;\n u.NORMAL_UP = {\n byteStride: 0,\n byteOffset: 0,\n itemSize: 3,\n count: f,\n componentType: 5126,\n array: this.Xn(new Uint16Array(t, _e74 + c.offset, 2 * f)) },\n o.push(u.NORMAL_UP.array.buffer), _e74 = a.NORMAL_RIGHT_OCT32P.byteOffset, u.NORMAL_RIGHT = {\n byteStride: 0,\n byteOffset: 0,\n itemSize: 3,\n count: f,\n componentType: 5126,\n array: this.Xn(new Uint16Array(t, _e74 + c.offset, 2 * f)) },\n o.push(u.NORMAL_RIGHT.array.buffer);\n }\n if (a.SCALE) {\n var _e75 = a.SCALE.byteOffset;\n u.SCALE = {\n byteStride: 0,\n byteOffset: 0,\n itemSize: 1,\n count: f,\n componentType: 5126,\n array: new Float32Array(t, _e75 + c.offset, f).slice() },\n o.push(u.SCALE.array.buffer);\n } else if (a.SCALE_NON_UNIFORM) {\n var _e76 = a.SCALE_NON_UNIFORM.byteOffset;\n u.SCALE_NON_UNIFORM = {\n byteStride: 0,\n byteOffset: 0,\n itemSize: 3,\n count: f,\n componentType: 5126,\n array: new Float32Array(t, _e76 + c.offset, 3 * f).slice() },\n o.push(u.SCALE_NON_UNIFORM.array.buffer);\n }\n return {\n count: f,\n batchTable: l,\n batchTableBin: h,\n featureTable: a,\n i3dm: u,\n transferables: o };\n\n } },\n {\n key: \"Xn\",\n value: function Xn(t) {\n var e = t.length / 2,\n n = new Float32Array(3 * e),\n r = [];\n for (var _s32 = 0; _s32 < e; _s32++) oi(r, t[2 * _s32], t[2 * _s32 + 1], 65535), n[3 * _s32] = r[0], n[3 * _s32 + 1] = r[1], n[3 * _s32 + 2] = r[2];\n return n;\n } },\n {\n key: \"Kn\",\n value: function Kn(t, e, n) {\n return Re(new Float32Array(t.length), t, e, n);\n } },\n {\n key: \"$n\",\n value: function $n() {\n return null;\n } }]);\n\n }();\n function oi(t, e, n, r) {\n if (t[0] = ai(e, r), t[1] = ai(n, r), t[2] = 1 - (Math.abs(t[0]) + Math.abs(t[1])), t[2] < 0) {\n var _e77 = t[0];\n t[0] = (1 - Math.abs(t[1])) * ci(_e77), t[1] = (1 - Math.abs(_e77)) * ci(t[1]);\n }\n return _glMatrix.vec3.normalize(t, t);\n }\n function ai(t, e) {\n return function (t, e, n) {\n return t < e ? e : t > n ? n : t;\n }(t, 0, e = function (t, e) {\n if (null != t) return t;\n return e;\n }(e, 255)) / e * 2 - 1;\n }\n function ci(t) {\n return t < 0 ? -1 : 1;\n }\n var _Dt5 = Dt(),\n li = _Dt5.Ajax;\n var hi = function () {\n function hi() {\n _classCallCheck(this, hi);\n }\n return _createClass(hi, [{\n key: \"load\",\n value: function load(t, e) {\n var _this25 = this;\n var n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var r = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n return e ? (r || (r = e.byteLength), this.Hn(t, e, n, r)) : li.getArrayBuffer(t, {}).then(function (e) {\n var s = e.data;\n return r || (r = s.byteLength), _this25.Hn(t, s, n, r);\n });\n } },\n {\n key: \"Hn\",\n value: function Hn(t, e, n, r) {\n return this.Wn(e, n, r, t).then(function (t) {\n return t.error ? t : {\n magic: \"pnts\",\n count: t.count,\n transferables: t.transferables,\n featureTable: t.featureTable,\n batchTable: t.batchTable,\n batchTableBin: t.batchTableBin,\n pnts: t.pnts };\n\n });\n } },\n {\n key: \"Wn\",\n value: function Wn(t, e, n, r) {\n var _this26 = this;\n var s = new DataView(t, e, n),\n i = s.getUint32(4, !0);\n if (1 !== i) {\n var _t101 = \"Unsupported pnts version: \" + i + \", url:\" + r;\n return console.warn(_t101), {\n error: _t101 };\n\n }\n if (s.getUint32(8, !0) !== s.byteLength) {\n var _t102 = \"Length in pnts header is inconsistent with pnts's byte length, url: \" + r;\n return console.warn(_t102), {\n error: _t102 };\n\n }\n var o = [t],\n _Pe2 = Pe(s, e + 28, o),\n a = _Pe2.featureTable,\n c = _Pe2.featureTableBin,\n l = _Pe2.batchTable,\n h = _Pe2.batchTableBin,\n u = a.QUANTIZED_VOLUME_OFFSET,\n f = a.QUANTIZED_VOLUME_SCALE,\n d = a.POINTS_LENGTH;\n var m,\n p = {};\n if (a.extensions && a.extensions[\"3DTILES_draco_point_compression\"]) {\n p = a.extensions[\"3DTILES_draco_point_compression\"], m = new DataView(t, p.byteOffset + c.offset, p.byteLength);\n var _e78 = {\n attributes: p.properties,\n useUniqueIDs: !1 };\n\n return this.Qn || (this.Qn = Qs().draco), this.Qn(m, _e78).then(function (e) {\n var n = e.attributes;\n !a.POSITION && !a.POSITION_QUANTIZED || n.POSITION || n.POSITION_QUANTIZED || (n.POSITION = a.POSITION, n.POSITION_QUANTIZED = a.POSITION_QUANTIZED), !(a.RGB || a.RGBA || a.RGB565) || n.RGB || n.RGBA || n.RGB565 || (n.RGB = a.RGB, n.RGBA = a.RGBA, n.RGB565 = a.RGB565), !a.NORMAL && !a.NORMAL_OCT16P || n.NORMAL || n.NORMAL_OCT16P || (n.NORMAL = a.NORMAL, n.NORMAL_OCT16P = a.NORMAL_OCT16P);\n var r = _this26.tr(t, e.attributes, c.offset, d, o, u, f);\n if (e.attributes.BATCH_ID) {\n var _t103 = e.attributes.BATCH_ID.array;\n r.BATCH_ID = {\n byteStride: 0,\n byteOffset: 0,\n itemSize: 1,\n count: _t103.length,\n componentType: Ee(_t103.constructor),\n array: _t103 },\n o.push(_t103.buffer);\n } else if (a.BATCH_ID || Object.keys(l).length) {\n a.BATCH_ID ? r.BATCH_ID = Ie(a.BATCH_ID, t, c.offset, d) : r.BATCH_ID = ui(d);\n var _e79 = r.BATCH_ID.array && r.BATCH_ID.array.buffer;\n _e79 && o.indexOf(_e79) < 0 && o.push(_e79);\n }\n return {\n count: d,\n batchTable: l,\n batchTableBin: h,\n featureTable: a,\n pnts: r,\n transferables: o };\n\n });\n }\n var b = this.tr(t, a, c.offset, d, o, u, f);\n if (a.BATCH_ID || Object.keys(l).length) {\n a.BATCH_ID ? b.BATCH_ID = Ie(a.BATCH_ID, t, c.offset, d) : b.BATCH_ID = ui(d);\n var _e80 = b.BATCH_ID.array && b.BATCH_ID.array.buffer;\n _e80 && o.indexOf(_e80) < 0 && o.push(_e80);\n }\n return Promise.resolve({\n count: d,\n batchTable: l,\n batchTableBin: h,\n featureTable: a,\n pnts: b,\n transferables: o });\n\n } },\n {\n key: \"tr\",\n value: function tr(t, e, n, r, s, i, o) {\n var a = {};\n if (e.POSITION) {\n var _e$POSITION = e.POSITION,\n _i25 = _e$POSITION.byteOffset,\n _o24 = _e$POSITION.array;\n _i25 = _i25 || 0;\n var _c7 = _o24 ? 0 : n;\n if (!_o24) {\n var _e81 = t.slice(_i25 + _c7, _i25 + _c7 + 3 * r * 4);\n _o24 = new Float32Array(_e81);\n }\n a.POSITION = {\n byteStride: 0,\n byteOffset: 0,\n itemSize: 3,\n count: r,\n componentType: 5126,\n array: _o24 },\n s.push(_o24.buffer);\n } else if (e.POSITION_QUANTIZED) {\n var _c8 = e.POSITION_QUANTIZED.byteOffset;\n var _l9 = e.POSITION_QUANTIZED.array;\n _c8 = _c8 || 0;\n var _h7 = _l9 ? 0 : n;\n a.POSITION = {\n byteStride: 0,\n byteOffset: 0,\n itemSize: 3,\n count: r,\n componentType: 5126,\n array: this.Kn(_l9 || new Uint16Array(t, _c8 + _h7, 3 * r), i, o) },\n s.push(a.POSITION.array.buffer);\n }\n if (e.RGBA) {\n var _e$RGBA = e.RGBA,\n _i26 = _e$RGBA.byteOffset,\n _o25 = _e$RGBA.array;\n _i26 = _i26 || 0;\n var _c9 = _o25 ? 0 : n;\n if (!_o25) {\n var _e82 = t.slice(_i26 + _c9, _i26 + _c9 + 4 * r);\n _o25 = new Uint8Array(_e82);\n }\n a.RGBA = {\n byteStride: 0,\n byteOffset: 0,\n itemSize: 4,\n count: r,\n componentType: 5121,\n array: _o25 },\n s.push(_o25.buffer);\n } else if (e.RGB) {\n var _e$RGB = e.RGB,\n _i27 = _e$RGB.byteOffset,\n _o26 = _e$RGB.array;\n _i27 = _i27 || 0;\n var _c10 = _o26 ? 0 : n;\n if (!_o26) {\n var _e83 = t.slice(_i27 + _c10, _i27 + _c10 + 3 * r);\n _o26 = new Uint8Array(_e83);\n }\n a.RGB = {\n byteStride: 0,\n byteOffset: 0,\n itemSize: 3,\n count: r,\n componentType: 5121,\n array: _o26 },\n s.push(_o26.buffer);\n } else if (e.RGB565) {\n var _e$RGB2 = e.RGB565,\n _i28 = _e$RGB2.byteOffset,\n _o27 = _e$RGB2.array;\n _i28 = _i28 || 0;\n var _c11 = _o27 ? 0 : n;\n if (!_o27) {\n var _e84 = t.slice(_i28 + _c11, _i28 + _c11 + 2 * r);\n _o27 = new Uint16Array(_e84);\n }\n a.RGB565 = {\n byteStride: 0,\n byteOffset: 0,\n itemSize: 1,\n count: r,\n componentType: 5123,\n array: _o27 },\n s.push(_o27.buffer);\n }\n if (e.NORMAL) {\n var _e$NORMAL = e.NORMAL,\n _i29 = _e$NORMAL.byteOffset,\n _o28 = _e$NORMAL.array;\n _i29 = _i29 || 0;\n var _c12 = _o28 ? 0 : n;\n if (!_o28) {\n var _e85 = t.slice(_i29 + _c12, _i29 + _c12 + 3 * r * 4);\n _o28 = new Float32Array(_e85);\n }\n a.NORMAL = {\n byteStride: 0,\n byteOffset: 0,\n itemSize: 3,\n count: r,\n componentType: 5126,\n array: _o28 },\n s.push(_o28.buffer);\n } else if (e.NORMAL_OCT16P) {\n var _e$NORMAL_OCT16P = e.NORMAL_OCT16P,\n _i30 = _e$NORMAL_OCT16P.byteOffset,\n _o29 = _e$NORMAL_OCT16P.array;\n _i30 = _i30 || 0;\n var _c13 = _o29 ? 0 : n;\n if (!_o29) {\n var _e86 = t.slice(_i30 + _c13, _i30 + _c13 + 2 * r);\n _o29 = new Uint8Array(_e86);\n }\n a.NORMAL_OCT16P = {\n byteStride: 0,\n byteOffset: 0,\n itemSize: 2,\n count: r,\n componentType: 5121,\n array: _o29 },\n s.push(_o29.buffer);\n }\n return a;\n } },\n {\n key: \"Kn\",\n value: function Kn(t, e, n) {\n return Re(new Float32Array(t.length), t, e, n);\n } },\n {\n key: \"$n\",\n value: function $n() {\n return null;\n } }]);\n\n }();\n function ui(t) {\n var e = It(t),\n n = new e(t);\n for (var _e87 = 0; _e87 < t; _e87++) n[_e87] = _e87;\n return {\n byteStride: 0,\n byteOffset: 0,\n itemSize: 1,\n count: t,\n componentType: Ee(e),\n array: n };\n\n }\n var _Dt6 = Dt(),\n fi = _Dt6.Ajax,\n di = _Dt6.GLTFLoader;\n var mi = exports.CMPTLoader = function () {\n function mi(t, e, n, r) {\n _classCallCheck(this, mi);\n this.Re = n, this.Fn = t, this.jn = e || di, this.Vn = r;\n }\n return _createClass(mi, [{\n key: \"load\",\n value: function load(t, e) {\n var _this27 = this;\n var n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var r = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var s = arguments.length > 4 ? arguments[4] : undefined;\n return e ? this.Hn(t, e, n, r, s) : fi.getArrayBuffer(t, {}).then(function (e) {\n var s = e.data;\n return _this27.Hn(t, s, n, r);\n });\n } },\n {\n key: \"Hn\",\n value: function Hn(t, e, n, r, s) {\n r || (r = e.byteLength);\n var i = this.er(e, t, n, r),\n o = [];\n for (var _n70 = 0; _n70 < i.length; _n70++) {\n var _r50 = void 0;\n if (\"b3dm\" === i[_n70].magic) _r50 = new ni(this.Fn, this.jn, this.Re);else if (\"i3dm\" === i[_n70].magic) _r50 = new ii(this.Fn, this.jn, this.Re, this.Vn);else if (\"pnts\" === i[_n70].magic) _r50 = new hi();else {\n if (\"cmpt\" !== i[_n70].magic) {\n console.warn(\"Unsupported magic in CMPT tile:\", i[_n70].magic);\n continue;\n }\n _r50 = new mi(this.Fn, this.jn, this.Re, this.Vn);\n }\n o.push(_r50.load(t, e, i[_n70].offset, i[_n70].byteLength, s).then(function (t) {\n return t;\n }));\n }\n return Promise.all(o).then(function (t) {\n return {\n magic: \"cmpt\",\n tiles: t };\n\n });\n } },\n {\n key: \"er\",\n value: function er(t, e, n, r) {\n var s = new DataView(t, n, r),\n i = s.getUint32(4, !0);\n if (1 !== i) {\n var _t104 = \"Unsupported cmpt version: \" + i + \", url:\" + e;\n return console.warn(_t104), {\n error: _t104 };\n\n }\n if (16 === s.byteLength) return [];\n var o = [],\n a = s.getUint32(12, !0);\n var c = 16;\n for (var _e88 = 0; _e88 < a; _e88++) {\n var _e89 = Te(s, c),\n _r51 = s.getUint32(c + 8, !0);\n o.push({\n magic: _e89,\n buffer: t,\n offset: c + n,\n byteLength: _r51 }),\n c += _r51;\n }\n return o;\n } }]);\n\n }();\n if (e.transcoders) {\n var _n71 = t.Map.VERSION;\n if (_n71.indexOf(\"1.0.0-beta\") >= 0 || _n71.indexOf(\"1.0.0-alpha\") >= 0) {\n var _n72 = e.transcoders.inject(M);\n t.registerWorkerAdapter(\"@maptalks/3dtiles\", _n72);\n } else t.registerWorkerAdapter(\"@maptalks/3dtiles\", function () {\n return e.transcoders.inject(M);\n });\n } else t.registerWorkerAdapter(\"@maptalks/3dtiles\", M);\n \"undefined\" != typeof console && console.log(\"@maptalks/3dtiles v0.105.5\");return module.exports;});", "requires": [], "buildLevel": 0, "fileName": "/dist/maptalks.3dtiles.es.js" }, "pandav:/dist/maptalks.3dtiles.js": { "cubeCode": "Cube(\"pandav:/npm/@maptalks/3dtiles/0.105.5/dist/maptalks.3dtiles\", [\"pandav:/npm/maptalks/1.2.1\", \"pandav:/npm/@maptalks/gl/0.108.1\"], function (module, exports, require, load, process, global) {\n\n function _superPropGet(t, o, e, r) {var p = _get(_getPrototypeOf(1 & r ? t.prototype : t), o, e);return 2 & r && \"function\" == typeof p ? function (t) {return p.apply(e, t);} : p;}\n function _get() {return _get = \"undefined\" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) {var p = _superPropBase(e, t);if (p) {var n = Object.getOwnPropertyDescriptor(p, t);return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value;}}, _get.apply(null, arguments);}\n function _superPropBase(t, o) {for (; !{}.hasOwnProperty.call(t, o) && null !== (t = _getPrototypeOf(t)););return t;}\n function _createForOfIteratorHelper(r, e) {var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];if (!t) {if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) {t && (r = t);var _n65 = 0,F = function F() {};return { s: F, n: function n() {return _n65 >= r.length ? { done: !0 } : { done: !1, value: r[_n65++] };}, e: function e(r) {throw r;}, f: F };}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");}var o,a = !0,u = !1;return { s: function s() {t = t.call(r);}, n: function n() {var r = t.next();return a = r.done, r;}, e: function e(r) {u = !0, o = r;}, f: function f() {try {a || null == t.return || t.return();} finally {if (u) throw o;}} };}\n function _toConsumableArray(r) {return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();}\n function _nonIterableSpread() {throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");}\n function _iterableToArray(r) {if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);}\n function _arrayWithoutHoles(r) {if (Array.isArray(r)) return _arrayLikeToArray(r);}\n function _slicedToArray(r, e) {return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();}\n function _nonIterableRest() {throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");}\n function _unsupportedIterableToArray(r, a) {if (r) {if (\"string\" == typeof r) return _arrayLikeToArray(r, a);var t = {}.toString.call(r).slice(8, -1);return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;}}\n function _arrayLikeToArray(r, a) {(null == a || a > r.length) && (a = r.length);for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];return n;}\n function _iterableToArrayLimit(r, l) {var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];if (null != t) {var e,n,i,u,a = [],f = !0,o = !1;try {if (i = (t = t.call(r)).next, 0 === l) {if (Object(t) !== t) return;f = !1;} else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);} catch (r) {o = !0, n = r;} finally {try {if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;} finally {if (o) throw n;}}return a;}}\n function _arrayWithHoles(r) {if (Array.isArray(r)) return r;}\n function _readOnlyError(r) {throw new TypeError('\"' + r + '\" is read-only');}\n function _classCallCheck(a, n) {if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");}\n function _defineProperties(e, r) {for (var t = 0; t < r.length; t++) {var o = r[t];o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o);}}\n function _createClass(e, r, t) {return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e;}\n function _toPropertyKey(t) {var i = _toPrimitive(t, \"string\");return \"symbol\" == _typeof(i) ? i : i + \"\";}\n function _toPrimitive(t, r) {if (\"object\" != _typeof(t) || !t) return t;var e = t[Symbol.toPrimitive];if (void 0 !== e) {var i = e.call(t, r || \"default\");if (\"object\" != _typeof(i)) return i;throw new TypeError(\"@@toPrimitive must return a primitive value.\");}return (\"string\" === r ? String : Number)(t);}\n function _callSuper(t, o, e) {return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e));}\n function _possibleConstructorReturn(t, e) {if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");return _assertThisInitialized(t);}\n function _assertThisInitialized(e) {if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e;}\n function _isNativeReflectConstruct() {try {var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));} catch (t) {}return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {return !!t;})();}\n function _getPrototypeOf(t) {return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {return t.__proto__ || Object.getPrototypeOf(t);}, _getPrototypeOf(t);}\n function _inherits(t, e) {if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, \"prototype\", { writable: !1 }), e && _setPrototypeOf(t, e);}\n function _setPrototypeOf(t, e) {return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {return t.__proto__ = e, t;}, _setPrototypeOf(t, e);}\n function _typeof(o) {\"@babel/helpers - typeof\";return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {return typeof o;} : function (o) {return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;}, _typeof(o);}\n !function (t, e) {\n \"object\" == (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) && \"undefined\" != typeof module ? e(exports, require('pandav:/npm/maptalks/1.2.1'), require('pandav:/npm/@maptalks/gl/0.108.1')) : \"function\" == typeof define && define.amd ? define([\"exports\", \"maptalks\", \"@maptalks/gl\"], e) : e((t = \"undefined\" != typeof globalThis ? globalThis : t || self).maptalks = t.maptalks || {}, t.maptalks, t.maptalks);\n }(void 0, function (t, e, n) {\n \"use strict\";\n\n function r(t) {\n var e = Object.create(null);\n return t && Object.keys(t).forEach(function (n) {\n if (\"default\" !== n) {\n var r = Object.getOwnPropertyDescriptor(t, n);\n Object.defineProperty(e, n, r.get ? r : {\n enumerable: !0,\n get: function get() {\n return t[n];\n } });\n\n }\n }), e.default = t, Object.freeze(e);\n }\n var s = r(e),\n i = r(n);\n var o = \"${\",\n a = \"function(t){\\n/*!\\n * @maptalks/gl v0.108.1\\n * LICENSE : UNLICENSED\\n * (c) 2016-2025 maptalks.com\\n */\\nconst e=function(){if(\\\"undefined\\\"!=typeof undefinedThis)return globalThis;if(\\\"undefined\\\"!=typeof self)return self;if(\\\"undefined\\\"!=typeof window)return window;if(\\\"undefined\\\"!=typeof undefined)return global;throw new Error(\\\"unable to locate global object\\\")},n=e(),r=n.gl_trans__coders=n.gl_trans__coders||{};function a(){return e().maptalks_gltf_loader}r.inject=function(t){const r=t.toString(),a=r.indexOf(\\\"{\\\")+1,o=r.substring(0,a),i=n.gl_trans__coders=n.gl_trans__coders||{};let s=`\".concat(o, \"o}\\\\n const _____getGlobal = \").concat(o, \"e.toString()};\\\\n const g___lobals = _____getGlobal()\\\\n const tran_____scoders = g___lobals['gl_trans__coders'] = g___lobals['gl_trans__coders'] || {};`;for(const t in i)\\\"inject\\\"!==t&&\\\"getTranscoder\\\"!==t&&\\\"registerTranscoder\\\"!==t&&(s+='tran_____scoders[\\\"'+t+'\\\"] ='+i[t].toString()+\\\"\\\\n;\\\");return s+=\\\"\\\\n(\\\"+e().maptalks_gltf_loader_bundle.toString()+\\\")({});\\\\n\\\",s+=\\\"\\\\n\\\"+r.substring(o.length),s},r.registerTranscoder=function(t,e){r[t]=e},r.getTranscoder=function(t){return r[t]};var o=\\\"undefined\\\"!=typeof Float32Array?Float32Array:Array;function i(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function s(t,e,n){var r=e[0],a=e[1],o=e[2],i=e[3],s=e[4],c=e[5],u=e[6],l=e[7],f=e[8],h=e[9],y=e[10],d=e[11],b=e[12],m=e[13],p=e[14],g=e[15],v=n[0],w=n[1],M=n[2],T=n[3];return t[0]=v*r+w*s+M*f+T*b,t[1]=v*a+w*c+M*h+T*m,t[2]=v*o+w*u+M*y+T*p,t[3]=v*i+w*l+M*d+T*g,v=n[4],w=n[5],M=n[6],T=n[7],t[4]=v*r+w*s+M*f+T*b,t[5]=v*a+w*c+M*h+T*m,t[6]=v*o+w*u+M*y+T*p,t[7]=v*i+w*l+M*d+T*g,v=n[8],w=n[9],M=n[10],T=n[11],t[8]=v*r+w*s+M*f+T*b,t[9]=v*a+w*c+M*h+T*m,t[10]=v*o+w*u+M*y+T*p,t[11]=v*i+w*l+M*d+T*g,v=n[12],w=n[13],M=n[14],T=n[15],t[12]=v*r+w*s+M*f+T*b,t[13]=v*a+w*c+M*h+T*m,t[14]=v*o+w*u+M*y+T*p,t[15]=v*i+w*l+M*d+T*g,t}function c(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]&&t[4]===e[4]&&t[5]===e[5]&&t[6]===e[6]&&t[7]===e[7]&&t[8]===e[8]&&t[9]===e[9]&&t[10]===e[10]&&t[11]===e[11]&&t[12]===e[12]&&t[13]===e[13]&&t[14]===e[14]&&t[15]===e[15]}function u(){var t=new o(3);return o!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t}function l(t){var e=t[0],n=t[1],r=t[2];return Math.hypot(e,n,r)}function f(t,e,n){var r=new o(3);return r[0]=t,r[1]=e,r[2]=n,r}function h(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function y(t,e,n,r){return t[0]=e,t[1]=n,t[2]=r,t}function d(t,e,n){return t[0]=e[0]+n[0],t[1]=e[1]+n[1],t[2]=e[2]+n[2],t}function b(t,e){var n=e[0],r=e[1],a=e[2],o=n*n+r*r+a*a;return o>0&&(o=1/Math.sqrt(o)),t[0]=e[0]*o,t[1]=e[1]*o,t[2]=e[2]*o,t}function m(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function p(t,e,n){var r=e[0],a=e[1],o=e[2],i=n[3]*r+n[7]*a+n[11]*o+n[15];return i=i||1,t[0]=(n[0]*r+n[4]*a+n[8]*o+n[12])/i,t[1]=(n[1]*r+n[5]*a+n[9]*o+n[13])/i,t[2]=(n[2]*r+n[6]*a+n[10]*o+n[14])/i,t}Math.hypot||(Math.hypot=function(){for(var t=0,e=arguments.length;e--;)t+=arguments[e]*arguments[e];return Math.sqrt(t)});var g=function(t,e,n){return t[0]=e[0]-n[0],t[1]=e[1]-n[1],t[2]=e[2]-n[2],t},v=function(t,e,n){return t[0]=e[0]*n[0],t[1]=e[1]*n[1],t[2]=e[2]*n[2],t},w=l;function M(){var t=new o(4);return o!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t[3]=1,t}u(),function(){var t,e=(t=new o(4),o!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0),t)}();var T;function A(t){return t&&t.t&&Object.prototype.hasOwnProperty.call(t,\\\"default\\\")?t.default:t}u(),f(1,0,0),f(0,1,0),M(),M(),T=new o(9),o!=Float32Array&&(T[1]=0,T[2]=0,T[3]=0,T[5]=0,T[6]=0,T[7]=0),T[0]=1,T[4]=1,T[8]=1;var k={exports:{}},_={exports:{}},O=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))},S=Array.prototype.concat,x=Array.prototype.slice,F=_.exports=function(t){for(var e=[],n=0,r=t.length;n=4&&1!==t[3]&&(e=\\\", \\\"+t[3]),\\\"hwb(\\\"+t[0]+\\\", \\\"+t[1]+\\\"%, \\\"+t[2]+\\\"%\\\"+e+\\\")\\\"},L.to.keyword=function(t){return N[t.slice(0,3)]};var P=k.exports,B={exports:{}},q={\\\"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]},R={};for(var V in q)q.hasOwnProperty(V)&&(R[q[V]]=V);var G=B.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 $ in G)if(G.hasOwnProperty($)){if(!(\\\"channels\\\"in G[$]))throw new Error(\\\"missing channels property: \\\"+$);if(!(\\\"labels\\\"in G[$]))throw new Error(\\\"missing channel labels property: \\\"+$);if(G[$].labels.length!==G[$].channels)throw new Error(\\\"channel and label counts mismatch: \\\"+$);var X=G[$].channels,H=G[$].labels;delete G[$].channels,delete G[$].labels,Object.defineProperty(G[$],\\\"channels\\\",{value:X}),Object.defineProperty(G[$],\\\"labels\\\",{value:H})}G.rgb.hsl=function(t){var e,n,r=t[0]/255,a=t[1]/255,o=t[2]/255,i=Math.min(r,a,o),s=Math.max(r,a,o),c=s-i;return s===i?e=0:r===s?e=(a-o)/c:a===s?e=2+(o-r)/c:o===s&&(e=4+(r-a)/c),(e=Math.min(60*e,360))<0&&(e+=360),n=(i+s)/2,[e,100*(s===i?0:n<=.5?c/(s+i):c/(2-s-i)),100*n]},G.rgb.hsv=function(t){var e,n,r,a,o,i=t[0]/255,s=t[1]/255,c=t[2]/255,u=Math.max(i,s,c),l=u-Math.min(i,s,c),f=function(t){return(u-t)/6/l+.5};return 0===l?a=o=0:(o=l/u,e=f(i),n=f(s),r=f(c),i===u?a=r-n:s===u?a=1/3+e-r:c===u&&(a=2/3+n-e),a<0?a+=1:a>1&&(a-=1)),[360*a,100*o,100*u]},G.rgb.hwb=function(t){var e=t[0],n=t[1],r=t[2];return[G.rgb.hsl(t)[0],100*(1/255*Math.min(e,Math.min(n,r))),100*(r=1-1/255*Math.max(e,Math.max(n,r)))]},G.rgb.cmyk=function(t){var e,n=t[0]/255,r=t[1]/255,a=t[2]/255;return[100*((1-n-(e=Math.min(1-n,1-r,1-a)))/(1-e)||0),100*((1-r-e)/(1-e)||0),100*((1-a-e)/(1-e)||0),100*e]},G.rgb.keyword=function(t){var e=R[t];if(e)return e;var n,r,a,o=1/0;for(var i in q)if(q.hasOwnProperty(i)){var s=q[i],c=(r=t,a=s,Math.pow(r[0]-a[0],2)+Math.pow(r[1]-a[1],2)+Math.pow(r[2]-a[2],2));c.04045?Math.pow((e+.055)/1.055,2.4):e/12.92)+.3576*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)+.1805*(r=r>.04045?Math.pow((r+.055)/1.055,2.4):r/12.92)),100*(.2126*e+.7152*n+.0722*r),100*(.0193*e+.1192*n+.9505*r)]},G.rgb.lab=function(t){var e=G.rgb.xyz(t),n=e[0],r=e[1],a=e[2];return r/=100,a/=108.883,n=(n/=95.047)>.008856?Math.pow(n,1/3):7.787*n+16/116,[116*(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116)-16,500*(n-r),200*(r-(a=a>.008856?Math.pow(a,1/3):7.787*a+16/116))]},G.hsl.rgb=function(t){var e,n,r,a,o,i=t[0]/360,s=t[1]/100,c=t[2]/100;if(0===s)return[o=255*c,o,o];e=2*c-(n=c<.5?c*(1+s):c+s-c*s),a=[0,0,0];for(var u=0;u<3;u++)(r=i+1/3*-(u-1))<0&&r++,r>1&&r--,o=6*r<1?e+6*(n-e)*r:2*r<1?n:3*r<2?e+(n-e)*(2/3-r)*6:e,a[u]=255*o;return a},G.hsl.hsv=function(t){var e=t[0],n=t[1]/100,r=t[2]/100,a=n,o=Math.max(r,.01);return n*=(r*=2)<=1?r:2-r,a*=o<=1?o:2-o,[e,100*(0===r?2*a/(o+a):2*n/(r+n)),100*((r+n)/2)]},G.hsv.rgb=function(t){var e=t[0]/60,n=t[1]/100,r=t[2]/100,a=Math.floor(e)%6,o=e-Math.floor(e),i=255*r*(1-n),s=255*r*(1-n*o),c=255*r*(1-n*(1-o));switch(r*=255,a){case 0:return[r,c,i];case 1:return[s,r,i];case 2:return[i,r,c];case 3:return[i,s,r];case 4:return[c,i,r];case 5:return[r,i,s]}},G.hsv.hsl=function(t){var e,n,r,a=t[0],o=t[1]/100,i=t[2]/100,s=Math.max(i,.01);return r=(2-o)*i,n=o*s,[a,100*(n=(n/=(e=(2-o)*s)<=1?e:2-e)||0),100*(r/=2)]},G.hwb.rgb=function(t){var e,n,r,a,o,i,s,c=t[0]/360,u=t[1]/100,l=t[2]/100,f=u+l;switch(f>1&&(u/=f,l/=f),r=6*c-(e=Math.floor(6*c)),1&e&&(r=1-r),a=u+r*((n=1-l)-u),e){default:case 6:case 0:o=n,i=a,s=u;break;case 1:o=a,i=n,s=u;break;case 2:o=u,i=n,s=a;break;case 3:o=u,i=a,s=n;break;case 4:o=a,i=u,s=n;break;case 5:o=n,i=u,s=a}return[255*o,255*i,255*s]},G.cmyk.rgb=function(t){var e=t[0]/100,n=t[1]/100,r=t[2]/100,a=t[3]/100;return[255*(1-Math.min(1,e*(1-a)+a)),255*(1-Math.min(1,n*(1-a)+a)),255*(1-Math.min(1,r*(1-a)+a))]},G.xyz.rgb=function(t){var e,n,r,a=t[0]/100,o=t[1]/100,i=t[2]/100;return n=-.9689*a+1.8758*o+.0415*i,r=.0557*a+-.204*o+1.057*i,e=(e=3.2406*a+-1.5372*o+-.4986*i)>.0031308?1.055*Math.pow(e,1/2.4)-.055:12.92*e,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:12.92*n,r=r>.0031308?1.055*Math.pow(r,1/2.4)-.055:12.92*r,[255*(e=Math.min(Math.max(0,e),1)),255*(n=Math.min(Math.max(0,n),1)),255*(r=Math.min(Math.max(0,r),1))]},G.xyz.lab=function(t){var e=t[0],n=t[1],r=t[2];return n/=100,r/=108.883,e=(e/=95.047)>.008856?Math.pow(e,1/3):7.787*e+16/116,[116*(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116)-16,500*(e-n),200*(n-(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116))]},G.lab.xyz=function(t){var e,n,r,a=t[0];e=t[1]/500+(n=(a+16)/116),r=n-t[2]/200;var o=Math.pow(n,3),i=Math.pow(e,3),s=Math.pow(r,3);return n=o>.008856?o:(n-16/116)/7.787,e=i>.008856?i:(e-16/116)/7.787,r=s>.008856?s:(r-16/116)/7.787,[e*=95.047,n*=100,r*=108.883]},G.lab.lch=function(t){var e,n=t[0],r=t[1],a=t[2];return(e=360*Math.atan2(a,r)/2/Math.PI)<0&&(e+=360),[n,Math.sqrt(r*r+a*a),e]},G.lch.lab=function(t){var e,n=t[0],r=t[1];return e=t[2]/360*2*Math.PI,[n,r*Math.cos(e),r*Math.sin(e)]},G.rgb.ansi16=function(t){var e=t[0],n=t[1],r=t[2],a=1 in arguments?arguments[1]:G.rgb.hsv(t)[2];if(0===(a=Math.round(a/50)))return 30;var o=30+(Math.round(r/255)<<2|Math.round(n/255)<<1|Math.round(e/255));return 2===a&&(o+=60),o},G.hsv.ansi16=function(t){return G.rgb.ansi16(G.hsv.rgb(t),t[2])},G.rgb.ansi256=function(t){var e=t[0],n=t[1],r=t[2];return e===n&&n===r?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(n/255*5)+Math.round(r/255*5)},G.ansi16.rgb=function(t){var e=t%10;if(0===e||7===e)return t>50&&(e+=3.5),[e=e/10.5*255,e,e];var n=.5*(1+~~(t>50));return[(1&e)*n*255,(e>>1&1)*n*255,(e>>2&1)*n*255]},G.ansi256.rgb=function(t){if(t>=232){var e=10*(t-232)+8;return[e,e,e]}var n;return t-=16,[Math.floor(t/36)/5*255,Math.floor((n=t%36)/6)/5*255,n%6/5*255]},G.rgb.hex=function(t){var e=(((255&Math.round(t[0]))<<16)+((255&Math.round(t[1]))<<8)+(255&Math.round(t[2]))).toString(16).toUpperCase();return\\\"000000\\\".substring(e.length)+e},G.hex.rgb=function(t){var e=t.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];var n=e[0];3===e[0].length&&(n=n.split(\\\"\\\").map((function(t){return t+t})).join(\\\"\\\"));var r=parseInt(n,16);return[r>>16&255,r>>8&255,255&r]},G.rgb.hcg=function(t){var e,n=t[0]/255,r=t[1]/255,a=t[2]/255,o=Math.max(Math.max(n,r),a),i=Math.min(Math.min(n,r),a),s=o-i;return e=s<=0?0:o===n?(r-a)/s%6:o===r?2+(a-n)/s:4+(n-r)/s+4,e/=6,[360*(e%=1),100*s,100*(s<1?i/(1-s):0)]},G.hsl.hcg=function(t){var e=t[1]/100,n=t[2]/100,r=1,a=0;return(r=n<.5?2*e*n:2*e*(1-n))<1&&(a=(n-.5*r)/(1-r)),[t[0],100*r,100*a]},G.hsv.hcg=function(t){var e=t[1]/100,n=t[2]/100,r=e*n,a=0;return r<1&&(a=(n-r)/(1-r)),[t[0],100*r,100*a]},G.hcg.rgb=function(t){var e=t[0]/360,n=t[1]/100,r=t[2]/100;if(0===n)return[255*r,255*r,255*r];var a,o=[0,0,0],i=e%1*6,s=i%1,c=1-s;switch(Math.floor(i)){case 0:o[0]=1,o[1]=s,o[2]=0;break;case 1:o[0]=c,o[1]=1,o[2]=0;break;case 2:o[0]=0,o[1]=1,o[2]=s;break;case 3:o[0]=0,o[1]=c,o[2]=1;break;case 4:o[0]=s,o[1]=0,o[2]=1;break;default:o[0]=1,o[1]=0,o[2]=c}return a=(1-n)*r,[255*(n*o[0]+a),255*(n*o[1]+a),255*(n*o[2]+a)]},G.hcg.hsv=function(t){var e=t[1]/100,n=e+t[2]/100*(1-e),r=0;return n>0&&(r=e/n),[t[0],100*r,100*n]},G.hcg.hsl=function(t){var e=t[1]/100,n=t[2]/100*(1-e)+.5*e,r=0;return n>0&&n<.5?r=e/(2*n):n>=.5&&n<1&&(r=e/(2*(1-n))),[t[0],100*r,100*n]},G.hcg.hwb=function(t){var e=t[1]/100,n=e+t[2]/100*(1-e);return[t[0],100*(n-e),100*(1-n)]},G.hwb.hcg=function(t){var e=t[1]/100,n=1-t[2]/100,r=n-e,a=0;return r<1&&(a=(n-r)/(1-r)),[t[0],100*r,100*a]},G.apple.rgb=function(t){return[t[0]/65535*255,t[1]/65535*255,t[2]/65535*255]},G.rgb.apple=function(t){return[t[0]/255*65535,t[1]/255*65535,t[2]/255*65535]},G.gray.rgb=function(t){return[t[0]/100*255,t[0]/100*255,t[0]/100*255]},G.gray.hsl=G.gray.hsv=function(t){return[0,0,t[0]]},G.gray.hwb=function(t){return[0,100,t[0]]},G.gray.cmyk=function(t){return[0,0,0,t[0]]},G.gray.lab=function(t){return[t[0],0,0]},G.gray.hex=function(t){var e=255&Math.round(t[0]/100*255),n=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return\\\"000000\\\".substring(n.length)+n},G.rgb.gray=function(t){return[(t[0]+t[1]+t[2])/3/255*100]};var J=B.exports,Y=J;function K(t){var e=function(){for(var t={},e=Object.keys(Y),n=e.length,r=0;r1&&(e=Array.prototype.slice.call(arguments));var n=t(e);if(\\\"object\\\"==typeof n)for(var r=n.length,a=0;a1&&(e=Array.prototype.slice.call(arguments)),t(e))};return\\\"conversion\\\"in t&&(e.conversion=t.conversion),e}(r)}))}));var nt=P,rt=et,at=[].slice,ot=[\\\"keyword\\\",\\\"gray\\\",\\\"hex\\\"],it={};Object.keys(rt).forEach((function(t){it[at.call(rt[t].labels).sort().join(\\\"\\\")]=t}));var st={};function ct(t,e){if(!(this instanceof ct))return new ct(t,e);if(e&&e in ot&&(e=null),e&&!(e in rt))throw new Error(\\\"Unknown model: \\\"+e);var n,r;if(null==t)this.model=\\\"rgb\\\",this.color=[0,0,0],this.valpha=1;else if(t instanceof ct)this.model=t.model,this.color=t.color.slice(),this.valpha=t.valpha;else if(\\\"string\\\"==typeof t){var a=nt.get(t);if(null===a)throw new Error(\\\"Unable to parse color from string: \\\"+t);this.model=a.model,r=rt[this.model].channels,this.color=a.value.slice(0,r),this.valpha=\\\"number\\\"==typeof a.value[r]?a.value[r]:1}else if(t.length){this.model=e||\\\"rgb\\\",r=rt[this.model].channels;var o=at.call(t,0,r);this.color=ft(o,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 i=Object.keys(t);\\\"alpha\\\"in t&&(i.splice(i.indexOf(\\\"alpha\\\"),1),this.valpha=\\\"number\\\"==typeof t.alpha?t.alpha:0);var s=i.sort().join(\\\"\\\");if(!(s in it))throw new Error(\\\"Unable to parse color from object: \\\"+JSON.stringify(t));this.model=it[s];var c=rt[this.model].labels,u=[];for(n=0;nn?(e+.05)/(n+.05):(n+.05)/(e+.05)},level:function(t){var e=this.contrast(t);return e>=7.1?\\\"AAA\\\":e>=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(),e=0;e<3;e++)t.color[e]=255-t.color[e];return t},lighten:function(t){var e=this.hsl();return e.color[2]+=e.color[2]*t,e},darken:function(t){var e=this.hsl();return e.color[2]-=e.color[2]*t,e},saturate:function(t){var e=this.hsl();return e.color[1]+=e.color[1]*t,e},desaturate:function(t){var e=this.hsl();return e.color[1]-=e.color[1]*t,e},whiten:function(t){var e=this.hwb();return e.color[1]+=e.color[1]*t,e},blacken:function(t){var e=this.hwb();return e.color[2]+=e.color[2]*t,e},grayscale:function(){var t=this.rgb().color,e=.3*t[0]+.59*t[1]+.11*t[2];return ct.rgb(e,e,e)},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 e=this.hsl(),n=e.color[0];return n=(n=(n+t)%360)<0?360+n:n,e.color[0]=n,e},mix:function(t,e){if(!t||!t.rgb)throw new Error('Argument to \\\"mix\\\" was not a Color instance, but rather an instance of '+typeof t);var n=t.rgb(),r=this.rgb(),a=void 0===e?.5:e,o=2*a-1,i=n.alpha()-r.alpha(),s=((o*i==-1?o:(o+i)/(1+o*i))+1)/2,c=1-s;return ct.rgb(s*n.red()+c*r.red(),s*n.green()+c*r.green(),s*n.blue()+c*r.blue(),n.alpha()*a+r.alpha()*(1-a))}},Object.keys(rt).forEach((function(t){if(-1===ot.indexOf(t)){var e=rt[t].channels;ct.prototype[t]=function(){if(this.model===t)return new ct(this);if(arguments.length)return new ct(arguments,t);var n,r=\\\"number\\\"==typeof arguments[e]?e:this.valpha;return new ct((n=rt[this.model][t].raw(this.color),Array.isArray(n)?n:[n]).concat(r),t)},ct[t]=function(n){return\\\"number\\\"==typeof n&&(n=ft(at.call(arguments),e)),new ct(n,t)}}}));const bt=[1,1,1,1,2,2,3,0];function mt(t){const e=t.length;let n=\\\"\\\";for(let r=0;r>3&7];if(!(64&a)||!n||r+n>e)return null;for(a&=63>>n;n>0;n-=1){const e=t[r++];if(128!=(192&e))return null;a=a<<6|63&e}}n+=String.fromCharCode(a)}return n}new Array(3),new Array(3);const pt=[1/6378137,1/6378137,1/6356752.314245179],gt=[1/40680631590769,1/40680631590769,1/40408299984661.445],vt=new Array(3),wt=new Array(3),Mt=new Array(3);function Tt(t,e){const n=gt,r=function(t,e,n,r,a){const o=e[0],i=e[1],s=e[2],c=n[0],u=n[1],l=n[2],f=o*o*c*c,h=i*i*u*u,y=s*s*l*l,d=f+h+y,b=Math.sqrt(1/d),m=function(t,e,n){return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t}(At,e,b);if(d_t);return t[0]=o*A,t[1]=i*k,t[2]=s*_,t}(vt,e,pt,n,.1);let a=v(wt,r,n);a=function(t,e){const n=e[0],r=e[1],a=e[2];let o=n*n+r*r+a*a;o>0&&(o=Math.sqrt(o),t[0]=e[0]/o,t[1]=e[1]/o,t[2]=e[2]/o);return t}(a,a);const o=g(Mt,e,r),i=Math.atan2(a[1],a[0]),s=Math.asin(a[2]),c=(u=m(o,e),(Math.sign?Math.sign(u):0==(u=+u)||isNaN(u)?Number(u):u>0?1:-1)*Ot(o));var u;return t[0]=dt(i),t[1]=dt(s),t[2]=c,t}const At=new Array(3),kt=new Array(3),_t=1e-12;function Ot(t){return l(t)}function St(t,e){let n=\\\"\\\";for(let r=0;r<4;r++){const a=t.getUint8(e+r);n+=String.fromCharCode(a)}return n}const xt=\\\"undefined\\\"!=typeof TextDecoder?new TextDecoder(\\\"utf-8\\\"):null;function Ft(t,e,n){const r=new Uint8Array(t,e,n);return xt?JSON.parse(xt.decode(r)):JSON.parse(mt(r))}function It(t,e,n){const r=new Uint8Array(t,e,n);return xt?JSON.parse(xt.decode(r)):JSON.parse(mt(r))}function Ct(t,e,n){return{offset:e,byteLength:n}}function Et(t,e,n,r){const{byteOffset:a,componentType:o,type:i}=t,{ctor:s,type:c}=function(t){return zt[t]}(o||\\\"UNSIGNED_SHORT\\\"),u=function(t){if(!t)return 1;return Nt[t]}(i);return{byteStride:0,byteOffset:a+n,itemSize:u,count:r*u,componentType:c,array:new s(e,n+a,r*u)}}function Ut(t,e,n,r){const a=Et(t,e,n,r);return a.array.buffer.byteLength!==e.byteLength&&(a.array=a.array.slice()),a}const Nt={\\\"SCALAR\\\":1,\\\"VEC2\\\":2,\\\"VEC3\\\":3,\\\"VEC4\\\":4};const zt={\\\"BYTE\\\":{ctor:Int8Array,type:5120,name:\\\"Int8Array\\\"},\\\"UNSIGNED_BYTE\\\":{ctor:Uint8Array,type:5121,name:\\\"Uint8Array\\\"},\\\"SHORT\\\":{ctor:Int16Array,type:5122,name:\\\"Int16Array\\\"},\\\"UNSIGNED_SHORT\\\":{ctor:Uint16Array,type:5123,name:\\\"Uint16Array\\\"},\\\"INT\\\":{ctor:Int32Array,type:5124,name:\\\"Int32Array\\\"},\\\"UNSIGNED_INT\\\":{ctor:Uint32Array,type:5125,name:\\\"Uint32Array\\\"},\\\"FLOAT\\\":{ctor:Float32Array,type:5126,name:\\\"Float32Array\\\"},\\\"DOUBLE\\\":{ctor:Float64Array,type:5126,name:\\\"Float64Array\\\"}};function Lt(t){for(const e in zt)if(t===zt[e].ctor)return zt[e].type;throw new Error(\\\"unrecognized ctor:\\\"+t)}function jt(t,e,n,r){const a=t,o=e.length/3;for(let t=0;t0&&(u=Ft(s,e,r),e+=r),a>0&&(c=function(t,e,n){return{offset:e,byteLength:n}}(0,e,a),e+=a),o>0&&(l=It(s,e,o),e+=o);const h=Ct(0,e,i);return f=s.slice(h.offset,h.offset+h.byteLength),n.push(f),{featureTable:u,featureTableBin:c,batchTable:l,batchTableBin:f}}const Pt={5120:Int8Array,5122:Int16Array,5124:Int32Array,5121:Uint8Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array};function Bt(t){for(const e in Pt)if(t===Pt[e])return+e;throw new Error(\\\"unrecognized ctor:\\\"+t)}let qt=null;function Rt(){return qt||(qt={\\\"image/crn\\\":r.crn&&r.crn(),\\\"image/ktx2\\\":r.ktx2&&r.ktx2(),\\\"image/cttf\\\":r.ktx2&&r.ktx2(),\\\"draco\\\":r.draco&&r.draco()}),qt}const{Ajax:Vt,GLTFLoader:Gt}=a();class $t{constructor(t,e,n){this.o=t,this.i=e||Gt,this.u=n,this.h=Rt()}static createEmptyB3DM(){return{featureTable:null,batchTable:null,gltf:{}}}load(t,e,n=0,r=0,a){return e?(r||(r=e.byteLength),this.m(t,e,n,r,a)):Vt.getArrayBuffer(t,{}).then((e=>{const a=e.data;return r||(r=a.byteLength),this.m(t,a,n,r)}))}m(t,e,n,r,a){const o=a&&a.maxTextureSize,i=this.p(e,n,r,t);if(i.error)return Promise.resolve(i);const s=t.substring(0,t.lastIndexOf(\\\"/\\\"));let c;try{c=new this.i(s,i.glb,{transferable:!0,requestImage:this.o,decoders:this.h,supportedFormats:this.u,maxTextureSize:o})}catch(t){return Promise.resolve({error:t})}return c.load({skipAttributeTransform:!1}).then((e=>{e.url=`\").concat(o, \"t}-\").concat(o, \"n}-\").concat(o, \"r}`;const a=c.transferables;for(let t=0;t=570425344?(f-=8,i=s,u=c,l=0,s=0,c=0):l>=570425344&&(f-=4,i=u,u=s,l=c,s=0,c=0);const h=[t];let y,d,b;if(s>0?(y=Ft(t,f,s),f+=s,i=y.BATCH_LENGTH):y={\\\"BATCH_LENGTH\\\":i},c>0&&(f+=c),u>0&&(d=It(t,f,u),f+=u,l>0)){const e=Ct(0,f,l);b=t.slice(e.offset,e.offset+e.byteLength),f+=l,h.push(b)}const m=y.BATCH_LENGTH,p={};if(y&&y.BATCH_ID){p.BATCH_ID=Ut(y.BATCH_ID,t,undefined.offset,m);const e=p.BATCH_ID.array&&p.BATCH_ID.array.buffer;e&&h.indexOf(e)<0&&h.push(e)}return{count:i,transferables:h,featureTable:y,batchTable:d,batchTableBin:b,b3dm:p,glb:{buffer:t,byteOffset:f,byteLength:a.byteLength+a.byteOffset-f}}}v(){return null}}const{Ajax:Xt,GLTFLoader:Ht}=a();class Jt{constructor(t,e,n,r){this.o=t,this.i=e||Ht,this.u=n,this.h=Rt(),this.M=r}load(t,e,n=0,r=0,a){return e?(r||(r=e.byteLength),this.m(t,e,n,r,a)):Xt.getArrayBuffer(t,{}).then((e=>{const a=e.data;return r||(r=a.byteLength),this.m(t,a,n,r)}))}m(t,e,n,r,a){return this.T(t,e,n,r,a).then((({gltf:a,transferables:o})=>{const i=this.A(e,n,r,t);if(i.error)return Promise.resolve(i);for(let t=0;t0?Xt.getArrayBuffer(r,{}).then((t=>this.k(r,{buffer:t.data,byteOffset:0},i))):Xt.getJSON(r,{}).then((t=>this.k(r,t,i)))}{const r={buffer:e,byteOffset:c+n,byteLength:s.byteLength-c};return this.k(t,r,i)}}k(t,e,n){const r=t.substring(0,t.lastIndexOf(\\\"/\\\")),a=new this.i(r,e,n);return a.load({skipAttributeTransform:!0}).then((n=>{let r=0,o=0;return e.buffer&&(r=e.byteOffset||0,o=e.byteLength||0),n.url=`\").concat(o, \"t}-\").concat(o, \"r}-\").concat(o, \"o}`,{transferables:a.transferables,gltf:n}}))}A(t,e,n,r){const a=new DataView(t,e,n),o=a.getUint32(4,!0);if(1!==o){const t=\\\"Unsupported pnts version: \\\"+o+\\\", url:\\\"+r;return console.warn(t),{error:t}}if(a.getUint32(8,!0)!==a.byteLength){const t=\\\"Length in pnts header is inconsistent with pnts's byte length, url: \\\"+r;return console.warn(t),{error:t}}const i=[t],{featureTable:s,featureTableBin:c,batchTable:u,batchTableBin:l}=Dt(a,32+e,i),f={},h=s.INSTANCES_LENGTH;if(s.POSITION){const{byteOffset:e}=s.POSITION;f.POSITION={byteStride:0,byteOffset:0,itemSize:3,count:h,componentType:5126,array:new Float32Array(t,e+c.offset,3*h).slice()},i.push(f.POSITION.array.buffer)}else if(s.POSITION_QUANTIZED){const e=s.QUANTIZED_VOLUME_OFFSET,n=s.QUANTIZED_VOLUME_SCALE,{byteOffset:r}=s.POSITION_QUANTIZED;f.POSITION={byteStride:12,byteOffset:0,itemSize:3,count:h,componentType:5126,array:this._(new Uint16Array(t,r+c.offset,3*h),e,n)},i.push(f.POSITION.array.buffer)}if(s.BATCH_ID){f.BATCH_ID=Ut(s.BATCH_ID,t,c.offset,h);const e=f.BATCH_ID.array&&f.BATCH_ID.array.buffer;e&&i.indexOf(e)<0&&i.push(e)}if(s.NORMAL_UP){let{byteOffset:e}=s.NORMAL_UP;f.NORMAL_UP={byteStride:0,byteOffset:0,itemSize:3,count:h,componentType:5126,array:new Float32Array(t,e+c.offset,3*h).slice()},i.push(f.NORMAL_UP.array.buffer),e=s.NORMAL_RIGHT.byteOffset,f.NORMAL_RIGHT={byteStride:0,byteOffset:0,itemSize:3,count:h,componentType:5126,array:new Float32Array(t,e+c.offset,3*h).slice()},i.push(f.NORMAL_RIGHT.array.buffer)}else if(s.NORMAL_UP_OCT32P){let{byteOffset:e}=s.NORMAL_UP_OCT32P;f.NORMAL_UP={byteStride:0,byteOffset:0,itemSize:3,count:h,componentType:5126,array:this.O(new Uint16Array(t,e+c.offset,2*h))},i.push(f.NORMAL_UP.array.buffer),e=s.NORMAL_RIGHT_OCT32P.byteOffset,f.NORMAL_RIGHT={byteStride:0,byteOffset:0,itemSize:3,count:h,componentType:5126,array:this.O(new Uint16Array(t,e+c.offset,2*h))},i.push(f.NORMAL_RIGHT.array.buffer)}if(s.SCALE){const{byteOffset:e}=s.SCALE;f.SCALE={byteStride:0,byteOffset:0,itemSize:1,count:h,componentType:5126,array:new Float32Array(t,e+c.offset,h).slice()},i.push(f.SCALE.array.buffer)}else if(s.SCALE_NON_UNIFORM){const{byteOffset:e}=s.SCALE_NON_UNIFORM;f.SCALE_NON_UNIFORM={byteStride:0,byteOffset:0,itemSize:3,count:h,componentType:5126,array:new Float32Array(t,e+c.offset,3*h).slice()},i.push(f.SCALE_NON_UNIFORM.array.buffer)}return{count:h,batchTable:u,batchTableBin:l,featureTable:s,i3dm:f,transferables:i}}O(t){const e=t.length/2,n=new Float32Array(3*e),r=[];for(let a=0;an?n:t}(t,0,e=function(t,e){if(null!=t)return t;return e}(e,255))/e*2-1}function Qt(t){return t<0?-1:1}const{Ajax:Zt}=a();class Wt{constructor(){}load(t,e,n=0,r=0){return e?(r||(r=e.byteLength),this.m(t,e,n,r)):Zt.getArrayBuffer(t,{}).then((e=>{const a=e.data;return r||(r=a.byteLength),this.m(t,a,n,r)}))}m(t,e,n,r){return this.S(e,n,r,t).then((t=>t.error?t:{magic:\\\"pnts\\\",count:t.count,transferables:t.transferables,featureTable:t.featureTable,batchTable:t.batchTable,batchTableBin:t.batchTableBin,pnts:t.pnts}))}S(t,e,n,r){const a=new DataView(t,e,n),o=a.getUint32(4,!0);if(1!==o){const t=\\\"Unsupported pnts version: \\\"+o+\\\", url:\\\"+r;return console.warn(t),{error:t}}if(a.getUint32(8,!0)!==a.byteLength){const t=\\\"Length in pnts header is inconsistent with pnts's byte length, url: \\\"+r;return console.warn(t),{error:t}}const i=[t],{featureTable:s,featureTableBin:c,batchTable:u,batchTableBin:l}=Dt(a,e+28,i),f=s.QUANTIZED_VOLUME_OFFSET,h=s.QUANTIZED_VOLUME_SCALE,y=s.POINTS_LENGTH;let d,b={};if(s.extensions&&s.extensions[\\\"3DTILES_draco_point_compression\\\"]){b=s.extensions[\\\"3DTILES_draco_point_compression\\\"],d=new DataView(t,b.byteOffset+c.offset,b.byteLength);const e={attributes:b.properties,useUniqueIDs:!1};return this.F||(this.F=Rt().draco),this.F(d,e).then((e=>{const n=e.attributes;!s.POSITION&&!s.POSITION_QUANTIZED||n.POSITION||n.POSITION_QUANTIZED||(n.POSITION=s.POSITION,n.POSITION_QUANTIZED=s.POSITION_QUANTIZED),!(s.RGB||s.RGBA||s.RGB565)||n.RGB||n.RGBA||n.RGB565||(n.RGB=s.RGB,n.RGBA=s.RGBA,n.RGB565=s.RGB565),!s.NORMAL&&!s.NORMAL_OCT16P||n.NORMAL||n.NORMAL_OCT16P||(n.NORMAL=s.NORMAL,n.NORMAL_OCT16P=s.NORMAL_OCT16P);const r=this.I(t,e.attributes,c.offset,y,i,f,h);if(e.attributes.BATCH_ID){const t=e.attributes.BATCH_ID.array;r.BATCH_ID={byteStride:0,byteOffset:0,itemSize:1,count:t.length,componentType:Lt(t.constructor),array:t},i.push(t.buffer)}else if(s.BATCH_ID||Object.keys(u).length){s.BATCH_ID?r.BATCH_ID=Ut(s.BATCH_ID,t,c.offset,y):r.BATCH_ID=te(y);const e=r.BATCH_ID.array&&r.BATCH_ID.array.buffer;e&&i.indexOf(e)<0&&i.push(e)}return{count:y,batchTable:u,batchTableBin:l,featureTable:s,pnts:r,transferables:i}}))}const m=this.I(t,s,c.offset,y,i,f,h);if(s.BATCH_ID||Object.keys(u).length){s.BATCH_ID?m.BATCH_ID=Ut(s.BATCH_ID,t,c.offset,y):m.BATCH_ID=te(y);const e=m.BATCH_ID.array&&m.BATCH_ID.array.buffer;e&&i.indexOf(e)<0&&i.push(e)}return Promise.resolve({count:y,batchTable:u,batchTableBin:l,featureTable:s,pnts:m,transferables:i})}I(t,e,n,r,a,o,i){const s={};if(e.POSITION){let{byteOffset:o,array:i}=e.POSITION;o=o||0;const c=i?0:n;if(!i){const e=t.slice(o+c,o+c+3*r*4);i=new Float32Array(e)}s.POSITION={byteStride:0,byteOffset:0,itemSize:3,count:r,componentType:5126,array:i},a.push(i.buffer)}else if(e.POSITION_QUANTIZED){let{byteOffset:c}=e.POSITION_QUANTIZED;const{array:u}=e.POSITION_QUANTIZED;c=c||0;const l=u?0:n;s.POSITION={byteStride:0,byteOffset:0,itemSize:3,count:r,componentType:5126,array:this._(u||new Uint16Array(t,c+l,3*r),o,i)},a.push(s.POSITION.array.buffer)}if(e.RGBA){let{byteOffset:o,array:i}=e.RGBA;o=o||0;const c=i?0:n;if(!i){const e=t.slice(o+c,o+c+4*r);i=new Uint8Array(e)}s.RGBA={byteStride:0,byteOffset:0,itemSize:4,count:r,componentType:5121,array:i},a.push(i.buffer)}else if(e.RGB){let{byteOffset:o,array:i}=e.RGB;o=o||0;const c=i?0:n;if(!i){const e=t.slice(o+c,o+c+3*r);i=new Uint8Array(e)}s.RGB={byteStride:0,byteOffset:0,itemSize:3,count:r,componentType:5121,array:i},a.push(i.buffer)}else if(e.RGB565){let{byteOffset:o,array:i}=e.RGB565;o=o||0;const c=i?0:n;if(!i){const e=t.slice(o+c,o+c+2*r);i=new Uint16Array(e)}s.RGB565={byteStride:0,byteOffset:0,itemSize:1,count:r,componentType:5123,array:i},a.push(i.buffer)}if(e.NORMAL){let{byteOffset:o,array:i}=e.NORMAL;o=o||0;const c=i?0:n;if(!i){const e=t.slice(o+c,o+c+3*r*4);i=new Float32Array(e)}s.NORMAL={byteStride:0,byteOffset:0,itemSize:3,count:r,componentType:5126,array:i},a.push(i.buffer)}else if(e.NORMAL_OCT16P){let{byteOffset:o,array:i}=e.NORMAL_OCT16P;o=o||0;const c=i?0:n;if(!i){const e=t.slice(o+c,o+c+2*r);i=new Uint8Array(e)}s.NORMAL_OCT16P={byteStride:0,byteOffset:0,itemSize:2,count:r,componentType:5121,array:i},a.push(i.buffer)}return s}_(t,e,n){return jt(new Float32Array(t.length),t,e,n)}v(){return null}}function te(t){const e=(n=t)<256?Uint8Array:n<65536?Uint16Array:Uint32Array;var n;const r=new e(t);for(let e=0;e{const a=e.data;return this.m(t,a,n,r)}))}m(t,e,n,r,a){r||(r=e.byteLength);const o=this.C(e,t,n,r),i=[];for(let n=0;nt)))}return Promise.all(i).then((t=>({magic:\\\"cmpt\\\",tiles:t})))}C(t,e,n,r){const a=new DataView(t,n,r),o=a.getUint32(4,!0);if(1!==o){const t=\\\"Unsupported cmpt version: \\\"+o+\\\", url:\\\"+e;return console.warn(t),{error:t}}if(16===a.byteLength)return[];const i=[],s=a.getUint32(12,!0);let c=16;for(let e=0;e>8&255,s>>16&255,s>>24&255)))}var s;var c=r[2],u=1;131072&c&&(u=Math.max(1,r[7]));var l=!1;512&r[28]&&(l=!0);var f,h=r[4],y=r[3],d=r[1]+4,b=h,m=y,p=[];a===pe&&(d+=20);if(l)for(var g=0;g<6;g++){if(\\\"rgba32f\\\"!==n)throw new Error(\\\"Only RGBA32f cubemaps are supported\\\");h=b,y=m;for(var v=Math.log(h)/Math.log(2)+1,w=0;w=0;)n=r*o-i+t[a],i=o,o=n;return e+n*Me(2*e)}function h(t,e,n){for(var r,a,o=Me(e),i=Te(e),s=Fe(n),c=Ie(n),u=2*i*c,l=-2*o*s,f=t.length-1,h=t[f],y=0,d=0,b=0;--f>=0;)r=d,a=y,h=u*(d=h)-r-l*(y=b)+t[f],b=l*d-a+u*y;return[(u=o*c)*h-(l=i*s)*b,u*b+l*h]}t.es,o=a=(r=t.es/(1+Oe(1-t.es)))/(2-r),s[0]=a*(2+a*(-2/3+a*(a*(116/45+a*(26/45+a*(-2854/675)))-2))),c[0]=a*(a*(2/3+a*(4/3+a*(-82/45+a*(32/45+a*(4642/4725)))))-2),o*=a,s[1]=o*(7/3+a*(a*(-227/45+a*(2704/315+a*(2323/945)))-1.6)),c[1]=o*(5/3+a*(-16/15+a*(-13/9+a*(904/315+a*(-1522/945))))),o*=a,s[2]=o*(56/15+a*(-136/35+a*(-1262/105+a*(73814/2835)))),c[2]=o*(-26/15+a*(34/21+a*(1.6+a*(-12686/2835)))),o*=a,s[3]=o*(4279/630+a*(-332/35+a*(-399572/14175))),c[3]=o*(1237/630+a*(a*(-24832/14175)-2.4)),o*=a,s[4]=o*(4174/315+a*(-144838/6237)),c[4]=o*(-734/315+a*(109598/31185)),o*=a,s[5]=o*(601676/22275),c[5]=o*(444337/155925),o=a*a,e=t.k0/(1+a)*(1+o*(1/4+o*(1/64+o/256))),u[0]=a*(a*(2/3+a*(-37/96+a*(1/360+a*(81/512+a*(-96199/604800)))))-.5),l[0]=a*(.5+a*(-2/3+a*(5/16+a*(41/180+a*(-127/288+a*(7891/37800)))))),u[1]=o*(-1/48+a*(-1/15+a*(437/1440+a*(-46/105+a*(1118711/3870720))))),l[1]=o*(13/48+a*(a*(557/1440+a*(281/630+a*(-1983433/1935360)))-.6)),o*=a,u[2]=o*(-17/480+a*(37/840+a*(209/4480+a*(-5569/90720)))),l[2]=o*(61/240+a*(-103/140+a*(15061/26880+a*(167603/181440)))),o*=a,u[3]=o*(-4397/161280+a*(11/504+a*(830251/7257600))),l[3]=o*(49561/161280+a*(-179/168+a*(6601661/7257600))),o*=a,u[4]=o*(-4583/161280+a*(108847/3991680)),l[4]=o*(34729/80640+a*(-3418889/1995840)),o*=a,u[5]=o*(-20648693/638668800),l[5]=.6650675310896665*o,i=f(c,t.phi0),n=-e*(i+function(t,e){var n,r=2*Te(e),a=t.length-1,o=t[a],i=0;for(;--a>=0;)n=r*o-i+t[a],i=o,o=n;return Me(e)*n}(l,2*i)),t.fwd=function(t,r){var a,o,i,s,u,y=t.phi,d=t.lam;y=f(c,y),a=Me(y),o=Te(y),s=Me(d),i=Te(d),y=_e(a,i*o),d=_e(s*o,xe(a,o*i)),d=function(t){var e=we(t);return e=function(t){var e=1+t,n=e-1;return 0===n?t:t*Se(e)/n}(e*(1+e/(xe(1,e)+1))),t<0?-e:e}(Ae(d)),u=h(l,2*y,2*d),y+=u[0],d+=u[1],we(d)<=2.623395162778?(r.y=e*y+n,r.x=e*d):r.x=r.y=Ce},t.inv=function(t,r){var a,o,i,c,l,y=t.y,d=t.x;y=(y-n)/e,we(d/=e)<=2.623395162778?(y+=(l=h(u,2*y,2*d))[0],d+=l[1],d=ke(Fe(d)),a=Me(y),o=Te(y),c=Me(d),i=Te(d),d=_e(c,i*o),y=_e(a*i,xe(c,i*o)),r.phi=f(s,y),r.lam=d):r.phi=r.lam=Ce}}const Ue=Math.PI/180,Ne=6378137*Math.PI/180,ze=85.0511287798,Le={};function je(t,e,n,r){if(\\\"EPSG:3857\\\"===n)return function(t,e){const n=ze,r=e[0],a=Math.max(Math.min(n,e[1]),-n);let o;o=0===a?0:Math.log(Math.tan((90+a)*Ue/2))/Ue;return t[0]=r*Ne,t[1]=o*Ne,t}(t,e);if(!n||\\\"EPSG:9807\\\"!==n.code&&\\\"Traverse_Mercator\\\"!==n.code){if(\\\"EPSG:4326\\\"===n||\\\"EPSG:4490\\\"===n||\\\"identity\\\"===n)return De(t,e);if(\\\"baidu\\\"===n)return De(t,e);throw new Error(\\\"unsupported projection:\\\"+n)}{if(!(!r||4326===r.wkid))return function(t,e){return t[0]=e[0],t[1]=e[1],t}(t,e);const a=JSON.stringify(n);let o=Le[a];return o||(o=Le[a]=function(t){const e={a:Be,es:qe,x0:ht(t.falseEasting)?5e5:t.falseEasting,y0:ht(t.falseNorthing)?0:t.falseNorthing,k0:t.scaleFactor||.9996,lam0:(t.centralMeridian||0)*Pe,phi0:(t.latitudeOfOrigin||0)*Pe,originLam0:t.startLongtitude||0,originPhi0:t.startLatitude||0};Ee(e);const n={lam:0,phi:0},r={};let a=0,o=0;(e.originLam0||e.originPhi0)&&(n.lam=e.originLam0*Pe-e.lam0,n.phi=e.originPhi0*Pe,e.fwd(n,r),a=e.a*r.x+e.x0,o=e.a*r.y+e.y0);return{project:function(t,i){n.lam=t[0]*Pe-e.lam0,n.phi=t[1]*Pe,e.fwd(n,r);const s=e.a*r.x+e.x0-a,c=e.a*r.y+e.y0-o;return i[0]=s,i[1]=c,i}}}(n)),o.project(e,t)}}function De(t,e){return t[0]=e[0],t[1]=e[1],t}const Pe=.017453292519943295,Be=6378137,qe=.0066943799901413165;const{Ajax:Re}=a(),Ve=i([]),Ge=Rt().draco,$e=Rt().ktx2,Xe={\\\"pbrMetallicRoughness\\\":{\\\"baseColorFactor\\\":[.5,.5,.5,1],\\\"metallicFactor\\\":0,\\\"roughnessFactor\\\":.5}},He={\\\"position\\\":{name:\\\"POSITION\\\",accessor:{\\\"componentType\\\":5126,\\\"type\\\":\\\"VEC3\\\"}},\\\"normal\\\":{name:\\\"NORMAL\\\",accessor:{\\\"componentType\\\":5126,\\\"type\\\":\\\"VEC3\\\"}},\\\"uv0\\\":{name:\\\"TEXCOORD_0\\\",accessor:{\\\"componentType\\\":5126,\\\"type\\\":\\\"VEC2\\\"}},\\\"color\\\":{name:\\\"COLOR_0\\\",accessor:{\\\"componentType\\\":5121,\\\"type\\\":\\\"VEC4\\\"}},\\\"uv-region\\\":{name:\\\"uvRegion\\\",accessor:{\\\"componentType\\\":5123,\\\"type\\\":\\\"VEC4\\\"}},\\\"feature-index\\\":{name:\\\"_BATCHID\\\",accessor:{\\\"componentType\\\":5125,\\\"type\\\":\\\"SCALAR\\\"}},\\\"faceRange\\\":{name:\\\"faceRange\\\",accessor:{\\\"componentType\\\":5125,\\\"type\\\":\\\"VEC2\\\"}}};function Je(t,e,n,r,a,o){const s=[],c=[],u=[];for(let e=0;e({buffer:t})));s.push(i);const l=[];if(nn(r,l),l.length){const t=l.map((t=>{const e=Re.getArrayBuffer(t.url,o);return e.xhr.url=t.url,u.push(e.xhr),e.then((e=>e&&e.status?null:{buffer:e,mimeType:t.mimeType,format:t.format}))}));s.push(...t)}c[e]=l.length}const l=Promise.all(s).then((o=>{for(let t=0;t({data:t.buffer.data,mimeType:t.mimeType,format:t.format})))}),u+=1+e}const l=function(t,e,n,r,a,o){const s={asset:{generator:\\\"i3s\\\",version:\\\"2.0\\\"},extensions:{},scene:0,scenes:[{nodes:[]}],nodes:{},meshes:{},materials:[],skins:[],animations:null,textures:[],transferables:[]},c=[];for(let u=0;u({gltf:s,featureTable:{BATCH_LENGTH:0},transferables:s.transferables})))}(t,s,e,a,n,r);return l}));return l.xhr=u,l}const Ye={\\\"magFilter\\\":9728,\\\"minFilter\\\":9728,\\\"wrapR\\\":33071,\\\"wrapS\\\":33071,\\\"wrapT\\\":33071};function Ke(t,e,n,r,a,o,i,s){const c=n.info.compressedAttributes.attributes.reduce(((t,e,n)=>{const r=He[e];if(!r)return t;return t[r.name||e]=n,t}),{});return Ge(r,{attributes:c,metadatas:{\\\"POSITION\\\":[{name:\\\"i3s-scale_x\\\",type:\\\"double\\\"},{name:\\\"i3s-scale_y\\\",type:\\\"double\\\"}]},useUniqueIDs:!1,skipAttributeTransform:!1}).then((n=>We(n,t,e,a,o,i,s)))}const Qe={position:function(t,e,n){const r=3*t.vertexCount,a=new Float32Array(e,n,r);return t.position={array:a,componentType:5126,itemSize:3,count:r/3,meta:{\\\"i3s-scale_x\\\":1,\\\"i3s-scale_y\\\":1},type:\\\"VEC3\\\"},n+=4*r},normal:function(t,e,n){const r=3*t.vertexCount,a=new Float32Array(e,n,r);return t.normal={array:a,componentType:5126,itemSize:3,count:r/3,type:\\\"VEC3\\\"},n+=4*r},uv0:function(t,e,n){const r=2*t.vertexCount,a=new Float32Array(e,n,r);return t.uv0={array:a,componentType:5126,itemSize:2,count:r/2,type:\\\"VEC2\\\"},n+=4*r},color:function(t,e,n){const r=4*t.vertexCount,a=new Uint8Array(e,n,r);return t.color={array:a,componentType:5121,itemSize:4,count:r/4,type:\\\"VEC4\\\"},n+=r},featureId:function(t,e,n){return n+=8*t.featureCount},id:function(t,e,n){return n+=8*t.featureCount},faceRange:function(t,e,n){const r=2*t.featureCount,a=new Uint32Array(e,n,r);return t.faceRange={array:a,componentType:5125,itemSize:2,count:r/2,type:\\\"VEC2\\\"},n+=4*r},uvRegion:function(t,e,n){const r=4*t.vertexCount,a=new Uint16Array(e,n,r);return t[\\\"uv-region\\\"]={array:a,componentType:5123,itemSize:4,count:r/4,type:\\\"VEC4\\\"},n+=2*r},region:function(t,e,n){const r=4*t.vertexCount,a=new Uint16Array(e,n,r);return t[\\\"uv-region\\\"]={array:a,componentType:5123,itemSize:4,count:r/4,type:\\\"VEC4\\\"},n+=2*r}};function Ze(t,e,n,r,a,o,i,s){const c={vertexCount:0},u=new DataView(r);try{let t=0;c.vertexCount=u.getUint32(t,1),t+=4,c.featureCount=u.getUint32(t,1),t+=4;const e=n.info.ordering?null:n.info;if(e){const n=[];for(const t in e)\\\"offset\\\"!==t&&\\\"\\\"!==t&&n.push(t);for(let e=0;e(i[0]=t[0],i[1]=t[1],i[2]=t[2],l||(i=p(i,i,e)),n&&d(i,i,n),je(s,i,r,a),o=i[2],t[0]=s[0]-u[0],t[1]=s[1]-u[1],t[2]=o-u[2],t))),u}(t.attributes.POSITION,r,a,o,i);e.meshes[n]={primitives:[s],index:n},e.extensions.MAPTALKS_RTC={projCenter:u},e.extensions.CESIUM_RTC={rtcCoord:a};for(const n in t.attributes)cn(e.transferables,t.attributes[n].array.buffer);return t.indices&&cn(e.transferables,t.indices.array.buffer),s}function tn(t,e,n,r,a,o){const i=r.map((t=>function(t,e,n,r,a){if(\\\"dds\\\"===e){const e=ve(t),r=e.images.map((e=>new Uint8Array(t,e.offset,e.length))),a=\\\"dxt1\\\"===e.format?33777:33779;return Promise.resolve({image:{mipmap:r,width:e.shape[0],height:e.shape[1],mimeType:n},sampler:Ye,format:a})}if(\\\"png\\\"===e||\\\"jpg\\\"===e)return function(t,e){rn||(rn=new OffscreenCanvas(2,2),an=rn.getContext(\\\"2d\\\",{willReadFrequently:!0}));const n=new Blob([new Uint8Array(t)]);return createImageBitmap(n).then((t=>{let{width:n,height:r}=t;on(n)||(n=sn(n)),on(r)||(r=sn(r));const a=e;a&&(n=Math.min(a,n),r=Math.min(a,r)),rn.width=n,rn.height=r,an.drawImage(t,0,0,n,r),t.close();const o=an.getImageData(0,0,n,r);return{width:n,height:r,array:new Uint8Array(o.data)}})).catch((()=>({width:2,height:2,array:new Uint8Array(4)})))}(t,a).then((t=>{t.mimeType=n;return{image:t,sampler:Ye,format:6408}}));if(\\\"ktx2\\\"===e)return $e(t,r).then((t=>(t.mimeType=n,{image:t,sampler:Ye,format:t.format})));return null}(t.data,t.format,t.mimeType,a,o).then((t=>{if(t.image)if(t.image.array)cn(e.transferables,t.image.array.buffer);else if(t.image.mipmap)for(let n=0;n{en(t,e,n,r)}))}function en(t,e,n,r){const a=JSON.parse(JSON.stringify(n)),o=e.textures;r.ptr||(r.ptr=0);for(const t in n)n[t]&&n[t].url?(o.push(r[r.ptr++]),a[t]={index:o.length-1},void 0!==n[t].factor&&(a[t].scale=n[t].factor)):yt(n[t])&&(a[t]=en(-1,e,n[t],r));return t>=0&&(e.materials[t]=a),a}function nn(t,e){for(const n in t)t[n]&&t[n].url?e.push({url:t[n].url,mimeType:t[n].mimeType,format:t[n].format}):yt(t[n])&&nn(t[n],e)}let rn,an;function on(t){return!(t&t-1)&&0!==t}function sn(t){return Math.pow(2,Math.floor(Math.log(t)/Math.LN2))}function cn(t,e){e&&(t.indexOf(e)>=0||t.push(e))}function un(t){const e=new Uint8Array(t,0,5);return e[0]===\\\"D\\\".charCodeAt()&&e[1]===\\\"R\\\".charCodeAt()&&e[2]===\\\"A\\\".charCodeAt()&&e[3]===\\\"C\\\".charCodeAt()&&e[4]===\\\"O\\\".charCodeAt()}var ln=\\\"undefined\\\"!=typeof Float32Array?Float32Array:Array;function fn(t,e,n,r){return t[0]=e,t[1]=n,t[2]=r,t}var hn=function(t,e,n){return t[0]=e[0]-n[0],t[1]=e[1]-n[1],t[2]=e[2]-n[2],t};!function(){var t=function(){var t=new ln(3);return ln!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t}()}();const yn=[];const dn=[],bn=[],mn=[],pn=[],gn=[],vn=[],wn=[];function Mn(t,e,n,r,a,o){fn(pn,t[3*e],t[3*e+1],t[3*e+2]),fn(gn,t[3*n],t[3*n+1],t[3*n+2]),fn(vn,t[3*r],t[3*r+1],t[3*r+2]);const i=hn(dn,vn,gn),s=hn(bn,pn,gn),c=function(t,e,n){var r=e[0],a=e[1],o=e[2],i=n[0],s=n[1],c=n[2];return t[0]=a*c-o*s,t[1]=o*i-r*c,t[2]=r*s-a*i,t}(mn,i,s);!function(t,e){var n=e[0],r=e[1],a=e[2],o=n*n+r*r+a*a;o>0&&(o=1/Math.sqrt(o),t[0]=e[0]*o,t[1]=e[1]*o,t[2]=e[2]*o)}(wn,c),a[3*e]=a[3*e]||0,a[3*n]=a[3*n]||0,a[3*r]=a[3*r]||0,a[3*e+1]=a[3*e+1]||0,a[3*n+1]=a[3*n+1]||0,a[3*r+1]=a[3*r+1]||0,a[3*e+2]=a[3*e+2]||0,a[3*n+2]=a[3*n+2]||0,a[3*r+2]=a[3*r+2]||0,a[3*e]+=wn[0],a[3*n]+=wn[0],a[3*r]+=wn[0],a[3*e+1]+=wn[1],a[3*n+1]+=wn[1],a[3*r+1]+=wn[1],a[3*e+2]+=wn[2],a[3*n+2]+=wn[2],a[3*r+2]+=wn[2],o[e]+=1,o[n]+=1,o[r]+=1}const{Ajax:Tn,GLTFLoader:An}=a(),kn=[1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1],_n=[0,0,1,0,0,1,0,0,-1,0,0,0,0,0,0,1],On=2*Math.PI*6378137/360,Sn=\\\"undefined\\\"!=typeof TextDecoder?new TextDecoder(\\\"utf-8\\\"):null;let xn,Fn,In=!1;if(\\\"undefined\\\"!=typeof OffscreenCanvas){try{Fn=new OffscreenCanvas(2,2).getContext(\\\"2d\\\",{willReadFrequently:!0})}catch(t){}Fn&&\\\"undefined\\\"!=typeof createImageBitmap&&(In=!0)}const Cn=i([]),En=[0,0,0],Un=[],Nn=[],zn=[],Ln=[],jn={\\\"POSITION\\\":1,\\\"TEXCOORD_0\\\":1,\\\"TEXCOORD_1\\\":1,\\\"NORMAL\\\":1,\\\"TANGENT\\\":1},Dn={\\\"TEXCOORD_0\\\":1e-4,\\\"TEXCOORD_1\\\":1e-4};let Pn;class Bn{constructor(t,e,n,r){this.id=t,this.options=e,this.U=(...t)=>this.requestImage.call(this,...t),this.N=n,this.L={},r(null,{},[])}j(t){this.D||(this.u=t,this.P=new Wt,this.D=new $t(this.U,An,t),this.B=new Jt(this.U,An,t))}requestImage(t,e){In?fetch(t).then((t=>t.arrayBuffer())).then((t=>{const e=new self.Blob([new Uint8Array(t)]);return createImageBitmap(e)})).then((t=>{xn.width=t.width,xn.height=t.height,Fn.drawImage(t,0,0);const n=Fn.getImageData(0,0,xn.width,xn.height);t.close(),e(null,{width:t.width,height:t.height,data:new Uint8Array(n.data)})})):this.N(\\\"requestImage\\\",{url:t},null,e)}loadTile(t,e){this.j(t.supportedFormats);const{service:n,url:r,arraybuffer:a}=t,o=n.fetchOptions||{};if(o.referrer=t.referrer,o.referrerPolicy=o.referrerPolicy||\\\"origin\\\",function(t){return t.indexOf(\\\"i3s:\\\")>=0}(r)){const a=t.i3sInfo,i=n.maxTextureSize||0,s=Je(a,t.supportedFormats,this.options.projection,t.projection,i,o);return s.then((t=>{if(delete this.L[r],!t)return void e({status:404,url:r,i3sInfo:a});if(!Object.keys(t.gltf.meshes).length)return void e({status:404,url:r,i3sInfo:a});t.gltf.url=r;const{transferables:o}=t;t.magic=\\\"b3dm\\\",n.createNormalIfMissed&&this.q(t.gltf),Yn(n)&&this.R(t.gltf),e(null,t,o)})),void(this.L[r]=s.xhr)}if(a){delete this.L[r];const n=St(new DataView(a),0);if(\\\"{\\\"===n[0]||\\\" \\\"===n[0]||\\\"<\\\"===n[0]){const n=function(t,e,n){if(Sn){const r=new Uint8Array(t,e,n);return Sn.decode(r)}return mt(new Uint8Array(t,e,n))}(a,0,a.byteLength),o=JSON.parse(n);o.accessors?this.V(o,r,t,\\\"gltf\\\",e):this.G(t.rootIdx,o,a,r,e)}else this.V(a,r,t,n,e)}else{let a=n.urlParams;a&&(a=(r.indexOf(\\\"?\\\")>0?\\\"&\\\":\\\"?\\\")+a);const i=r.replace(/\\\\+/g,\\\"%2B\\\");let s=Tn.getArrayBuffer(i+(a||\\\"\\\"),o);const c=s.xhr;s=s.then((n=>{delete this.L[r],n&&n.status?e(n):(t.arraybuffer=n&&n.data,this.loadTile(t,e))})).catch((t=>{delete this.L[r],e(t)})),this.L[r]=c}}V(t,e,n,r,a){r=r&&r.toLowerCase();const{service:o}=n;if(\\\"b3dm\\\"===r){this.D.load(e,t,0,0,{maxTextureSize:o.maxTextureSize||0}).then((t=>{if(t.error)return void a(t);const{content:e,transferables:r}=this.$(t,n);o.createNormalIfMissed&&this.q(e.gltf),Yn(o)&&this.R(e.gltf),a(null,e,r)})).catch((t=>{a(t)}))}else if(\\\"pnts\\\"===r){const r=n.transform||Cn;this.P.load(e,t).then((t=>{const{content:e,transferables:o}=this.X(t,r,n.rootIdx);this.H(e),a(null,e,o)}))}else if(\\\"i3dm\\\"===r){const r=n.transform||Cn;this.B.load(e,t,0,0,{maxTextureSize:o.maxTextureSize||0}).then((t=>{const{content:e,transferables:i}=this.J(t,r,n.rootIdx);o.createNormalIfMissed&&this.q(e.gltf),Yn(o)&&this.R(e.gltf),a(null,e,i)}))}else if(\\\"cmpt\\\"===r){new re(this.U,An,this.u,o.maxTextureSize||0).load(e,t,0,0,{maxTextureSize:o.maxTextureSize||0}).then((t=>{const{content:e,transferables:r}=this.Y(t,n);this.K(e,o),Yn(o)&&this.Z(e),a(null,e,r)})).catch((t=>{a(t)}))}else if(\\\"gltf\\\"===r){this.h||(this.h=Rt());const r=e.substring(0,e.lastIndexOf(\\\"/\\\")),i=t instanceof ArrayBuffer&&{buffer:t,byteOffset:0,byteLength:t.byteLength}||t;let s;try{s=new An(r,i,{transferable:!0,requestImage:this.U,decoders:this.h,supportedFormats:this.u,maxTextureSize:o.maxTextureSize||0})}catch(t){a(t)}s.load({skipAttributeTransform:!1}).then((t=>{t.url=e,this.W(t,null,n),o.createNormalIfMissed&&this.q(t),Yn(o)&&this.R(t),a(null,{magic:\\\"gltf\\\",gltf:t},s.transferables)}))}else a(new Error(\\\"unsupported tile format: \\\"+r))}K(t,e){t.content?t.content.forEach((t=>{this.K(t,e)})):e.createNormalIfMissed&&this.q(t.gltf)}Z(t){t.content?t.content.forEach((t=>{this.Z(t)})):this.R(t.gltf)}tt(t,e){if(this.et(t,e)&&!t.attributes.NORMAL){const e=t.attributes.POSITION.array,n=e.length,r=this.nt()?Pn.subarray(0,n):e,a=function(t,e,n){const r=n||[];r.setLength&&r.setLength(t.length);const a=yn;a.length-1)return;if(t.asset&&t.asset.sharePosition)return;const e=t.meshes;for(const t in e){e[t].primitives.forEach((t=>{t.compressed_int16_params={};const e=t.attributes;for(const n in e)if(jn[n]&&e[n].array&&e[n].array instanceof Float32Array){let r=1;this.nt()&&\\\"POSITION\\\"===n&&(r=On,t.compressed_int16_params.compressed_ratio=r);const a=Xn(e[n].array,r,e[n].min,e[n].max,n);if(!a)continue;const{array:o,range:i}=a;e[n].componentType=5124,e[n].array=o,t.compressed_int16_params[n]=i}}))}}q(t){if(!t||!t.meshes||t.extensionsUsed&&t.extensionsUsed.indexOf(\\\"KHR_techniques_webgl\\\")>-1)return;if(t.asset&&t.asset.sharePosition)return;const e=t.meshes;for(const n in e){e[n].primitives.forEach((e=>{this.tt(e,t)}))}}H(t){if(!t||!t.pnts)return;const e=t.pnts;t.compressed_int16_params={};for(const n in e)if(jn[n]&&e[n].array&&e[n].array instanceof Float32Array){let r=1;this.nt()&&\\\"POSITION\\\"===n&&(r=On,t.compressed_int16_params.compressed_ratio=r);const{array:a,range:o}=Xn(e[n].array,r,e[n].min,e[n].max,n);e[n].array=a,t.compressed_int16_params[n]=o}}rt(t){const e=[];for(let n=0;n=0)return!0;r.push(o)}}return!1}(t);this.ot(t);n.service.createNormalIfMissed||this.it(t),t.asset||(t.asset={}),r?(t.asset.sharePosition=!0,this.st(t,e,n.upAxis,n.transform)):this.ct(t,e,n.upAxis,n.transform)}J(t,e,n){const{featureTable:r}=t,a=t.i3dm,o=r&&r.RTC_CENTER||[0,0,0],i=this.options.projection,s=e&&c(Cn,e),u={xmin:1/0,xmax:-1/0,ymin:1/0,ymax:-1/0,hmin:1/0,hmax:-1/0};Rn(a.POSITION.array,3,o,Cn,u);const l=Vn(u);e&&!s&&p(l,l,e);const f=this.ut(l),d=[];je(d,f,i),d[2]=f[2];const b=h([],l),m=[0,0,0],g=[0,0,0],v=[0,0],M=[1/0,1/0,1/0],T=[-1/0,-1/0,-1/0];ye(a.POSITION,(t=>{m[0]=t[0]+o[0],m[1]=t[1]+o[1],m[2]=t[2]+o[2],e&&!s&&p(m,m,e),0===w(m)?y(g,0,0,-6378137):Tt(g,m),je(v,g,i),t[0]=v[0]-d[0],t[1]=v[1]-d[1],t[2]=g[2]-d[2],t[0]T[0]&&(T[0]=t[0]),t[1]>T[1]&&(T[1]=t[1]),t[2]>T[2]&&(T[2]=t[2])})),a.POSITION.min=M,a.POSITION.max=T,e&&p(l,l,e),t.rtcCenter=b,t.rtcCoord=f,t.projCenter=d,t.rootIdx=n;const A=t.transferables;return delete t.transferables,{content:t,transferables:A}}X(t,e,n){const{featureTable:r}=t,a=t.pnts,o=r&&r.RTC_CENTER||[0,0,0],i=this.options.projection,s=e&&c(Cn,e),u={xmin:1/0,xmax:-1/0,ymin:1/0,ymax:-1/0,hmin:1/0,hmax:-1/0};Rn(a.POSITION.array,3,o,e,u);const l=Vn(u),f=this.lt(l),d=h([],l),b=[1/0,1/0,1/0],m=[-1/0,-1/0,-1/0];let g=[0,0,0,1];const v=[0,0,0],M=[0,0];ye(a.POSITION,(t=>(g[0]=t[0]+o[0],g[1]=t[1]+o[1],g[2]=t[2]+o[2],e&&!s&&(g=p(g,g,e)),0===w(g)?y(v,0,0,-6378137):Tt(v,g),je(M,v,i),t[0]=M[0]-f[0],t[1]=M[1]-f[1],t[2]=v[2]-f[2],t[0]m[0]&&(m[0]=t[0]),t[1]>m[1]&&(m[1]=t[1]),t[2]>m[2]&&(m[2]=t[2]),t))),a.POSITION.min=b,a.POSITION.max=m,e&&p(l,l,e);const T=this.ut(l);t.rtcCenter=d,t.projCenter=f,t.rtcCoord=T,t.rootIdx=n;const A=t.transferables;return delete t.transferables,{content:t,transferables:A}}ot(t){if(!Array.isArray(t.textures))return;const e=t.textures;for(let t=0;t{if(!(t.attributes&&t.attributes.POSITION))return;const e=i(Un);t.matrices&&$n(e,t.matrices);const n=t.attributes.POSITION.array,u=t.attributes.POSITION.itemSize;s(e,o,e),r&&s(e,r,e),Rn(n,u,a||En,e,c,t.compressUniforms)}));const u=Vn(c);return{rtcCenter:a,modelCenter:u,upAxisTransform:o}}st(t,e,n,r){const{modelCenter:a,upAxisTransform:o,rtcCenter:c}=this.ft(t,e,n),u=this.lt(a);t.extensions.MAPTALKS_RTC.projCenter=u,t.extensions.MAPTALKS_RTC.rtcCoord=t.extensions.CESIUM_RTC.rtcCoord=this.ut(a);const l=h([],a);r&&p(a,a,r),t.extensions.CESIUM_RTC.rtcCoord=this.ut(a),c||(oe(t,(t=>{if(t.attributes&&t.attributes.POSITION){const e=t.attributes.POSITION;if(e.array.buffer.projected&&e.array.buffer.projected[e.byteOffset])return;const n=i(Un);t.matrices&&$n(n,t.matrices),s(n,o,n);const r=function(t,e){var n=e[0],r=e[1],a=e[2],o=e[3],i=e[4],s=e[5],c=e[6],u=e[7],l=e[8],f=e[9],h=e[10],y=e[11],d=e[12],b=e[13],m=e[14],p=e[15],g=n*s-r*i,v=n*c-a*i,w=n*u-o*i,M=r*c-a*s,T=r*u-o*s,A=a*u-o*c,k=l*b-f*d,_=l*m-h*d,O=l*p-y*d,S=f*m-h*b,x=f*p-y*b,F=h*p-y*m,I=g*F-v*x+w*S+M*O-T*_+A*k;return I?(I=1/I,t[0]=(s*F-c*x+u*S)*I,t[1]=(a*x-r*F-o*S)*I,t[2]=(b*A-m*T+p*M)*I,t[3]=(h*T-f*A-y*M)*I,t[4]=(c*O-i*F-u*_)*I,t[5]=(n*F-a*O+o*_)*I,t[6]=(m*w-d*A-p*v)*I,t[7]=(l*A-h*w+y*v)*I,t[8]=(i*x-s*O+u*k)*I,t[9]=(r*O-n*x-o*k)*I,t[10]=(d*T-b*w+p*g)*I,t[11]=(f*w-l*T-y*g)*I,t[12]=(s*_-i*S-c*k)*I,t[13]=(n*S-r*_+a*k)*I,t[14]=(b*v-d*M-m*g)*I,t[15]=(l*M-f*v+h*g)*I,t):null}(Nn,n),a=[1/0,1/0,1/0],c=[-1/0,-1/0,-1/0];ye(e,(t=>{p(t,t,n),t[0]=t[0]-l[0],t[1]=t[1]-l[1],t[2]=t[2]-l[2],p(t,t,r),t[0]c[0]&&(c[0]=t[0]),t[1]>c[1]&&(c[1]=t[1]),t[2]>c[2]&&(c[2]=t[2])})),e.min=a,e.max=c,e.array.buffer.projected||(e.array.buffer.projected={}),e.array.buffer.projected[e.byteOffset]=1}})),t.extensions.CESIUM_RTC.center=l)}ct(t,e,n,r){const{modelCenter:a,rtcCenter:o}=this.ft(t,e,n,r),i=this.lt(a);t.extensions.MAPTALKS_RTC.projCenter=i,t.extensions.MAPTALKS_RTC.rtcCoord=t.extensions.CESIUM_RTC.rtcCoord=this.ut(a),oe(t,(e=>{if(e.attributes&&e.attributes.POSITION){const a=this.et(e,t);if(a){const t=e.attributes.POSITION.array.length;(!Pn||Pn.length(function(t,e,n){var r=e[0],a=e[1],o=e[2];t[0]=r*n[0]+a*n[3]+o*n[6],t[1]=r*n[1]+a*n[4]+o*n[7],t[2]=r*n[2]+a*n[5]+o*n[8]}(i,t,o),b(i,i),h(t,i),i)))}yt(t,e,n,r,a,o,s,u){if(t.array.buffer.projected&&t.array.buffer.projected[t.byteOffset])return null;const l=i([]);$n(l,e);const f=this.options.projection;a=a&&a.toUpperCase();const h=n;let b=null;\\\"Y\\\"===a?b=kn:\\\"X\\\"===a&&(b=_n);let m=[0,0,0,1];const g=[0,0,0],v=[0,0],M=r.projCenter,T=je([],r.rtcCoord,\\\"EPSG:3857\\\"),A=o&&c(Cn,o),k=t.min=t.min||[],_=t.max=t.max||[];y(k,1/0,1/0,1/0),y(_,-1/0,-1/0,-1/0);const O=s||{},{decode_position_min:S,decode_position_normConstant:x}=O;let F=[0,0,0,0],I=1;S&&(F=S),x&&(I=x);const C=[];return ye(t,((e,n)=>{if(m[0]=e[0]*I+F[0],m[1]=e[1]*I+F[1],m[2]=e[2]*I+F[2],m=p(m,m,l),b&&(m=p(m,m,b)),h&&d(m,m,h),o&&!A&&(m=p(m,m,o)),0===w(m)?y(g,0,0,-6378137):Tt(g,m),u){const t=Pn;je(v,g,f),t[3*n]=v[0]-T[0],t[3*n+1]=v[0]-T[1],t[3*n+2]=v[0]-T[2]}if(je(v,g,f),e instanceof Float32Array)e[0]=v[0]-M[0],e[1]=v[1]-M[1],e[2]=g[2]-M[2];else{const n=v[0]-M[0],r=v[1]-M[1],a=g[2]-M[2];5126!==t.componentType&&(C.push(n),C.push(r),C.push(a),C.push(e[3]))}return e[0]_[0]&&(_[0]=e[0]),e[1]>_[1]&&(_[1]=e[1]),e[2]>_[2]&&(_[2]=e[2]),e})),t.array.buffer.projected||(t.array.buffer.projected={}),t.array.buffer.projected[t.byteOffset]=1,{projCenter:M,newPositions:C}}ut(t){return 0===w(t)?y([],0,0,-6378137):Tt([],t)}onRemove(){}nt(){return\\\"EPSG:4326\\\"===this.options.projection||\\\"EPSG:4490\\\"===this.options.projection}et(t,e){if(!t.attributes.POSITION||function(t,e){const n=e.materials[t.material],r=n&&n.extensions&&n.extensions.KHR_materials_unlit;return r}(t,e))return!1;return!t.attributes.TANGENT}}const qn=[];function Rn(t,e,n,r,a,o){const i=o||{},{decode_position_min:s,decode_position_normConstant:c}=i;let u=[0,0,0,0],l=1;s&&(u=s),c&&(l=c);for(let o=0,i=t.length;oc&&(a.xmax=m[0]),m[1]f&&(a.ymax=m[1]),e>2&&(m[2]b&&(a.hmax=m[2]))}}function Vn(t){const{xmax:e,ymax:n,xmin:r,ymin:a,hmin:o,hmax:i}=t,s=[(r+e)/2,(a+n)/2,(o+i)/2];return e===-1/0&&(s[0]=0),n===-1/0&&(s[1]=0),i===-1/0&&(s[2]=0),isNaN(s[2])&&(s[2]=0),s}function Gn(t,e){for(let n=0;n=0;t--)s(n,e[t],n);return n}function Xn(t,e,n,r,a){if(e&&e>1)for(let n=0;nn&&(n=t[r]),t[r]Dn[r])return!1}return!0}(t,o,i,a)&&Dn[a]?null:function(t,e,n){const r=new Int16Array(t.length);for(let a=0;a=32768?-(65536-t)/32768:t/32767)+1)*(n-e)/2+e}function Jn(t,e,n){const r=2*(t-e)/(n-e)-1,a=Math.max(-1,Math.min(1,r));return a<0?32768*a:32767*a}function Yn(t){return void 0===t.compressGeometry||t.compressGeometry}let Kn=0;class Qn{constructor(t){this.workerId=t,this.workers={},this.dt={}}addLayer({actorId:t,mapId:e,layerId:n,params:r},a){if(this.bt(e,n))return;const o=this.gt(e,n),i=r.options;this.workers[o]=new Bn(n,i,((...e)=>this.send.call(this,t,...e)),a)}removeLayer({mapId:t,layerId:e},n){const r=this.bt(t,e),a=this.gt(t,e);delete this.workers[a],r&&r.onRemove(n)}loadTile({mapId:t,layerId:e,params:n},r){const a=this.bt(t,e);a&&a.loadTile(n,r)}abortTileLoading({mapId:t,layerId:e,params:n},r){const a=this.bt(t,e);a&&a.abortTileLoading(n,r)}receive(t){const e=t.callback,n=this.dt[e];delete this.dt[e],n&&t.error?n(new Error(t.error)):n&&n(null,t.data)}send(t,e,n,r,a){const o=a?`\").concat(o, \"t}-\").concat(o, \"Kn++}`:null;a&&(this.dt[o]=a),postMessage({type:\\\"\\\",workerId:this.workerId,actorId:t,command:e,params:n,callback:String(o)},r||[])}gt(t,e){return`\").concat(o, \"t}-\").concat(o, \"e}`}bt(t,e){const n=this.gt(t,e);return this.workers[n]}}t.initialize=function(){},t.onmessage=function(t,e){const n=t.data;this.dispatcher||(this.dispatcher=new Qn(t.workerId)),\\\"\\\"===t.type?this.dispatcher.workerId===t.workerId&&this.dispatcher.receive(t):this.dispatcher[n.command]({actorId:n.actorId,mapId:n.mapId,layerId:n.layerId,params:n.params},((t,n,r)=>{t&&404!==t.status&&204!==t.status&&console.error(t),t instanceof Error&&(t={message:t.message}),e(t,n,r)}))}}\");\n for (var c = [], h = 0; h < 6; h++) c[h] = [];\n var l = [];\n function u(t, e, n) {\n M(t);\n for (var r = 0; r < 6; r++) {\n var s = c[r];\n if (l[0] = s[0] > 0 ? e[1][0] : e[0][0], l[1] = s[1] > 0 ? e[1][1] : e[0][1], l[2] = s[2] > 0 ? e[1][2] : e[0][2], O(s, l) < 0) return !1;\n }\n return !0;\n }\n var f = 3,\n d = 4,\n m = 5,\n p = 6,\n y = 7,\n b = 8,\n g = 9,\n v = 10,\n w = 11;\n function T(t, e) {\n var n = e,\n r = t,\n s = e,\n i = r[0],\n o = r[1],\n a = r[2],\n c = Math.abs(i * s[f] + o * s[d] + a * s[m]) + Math.abs(i * s[p] + o * s[y] + a * s[b]) + Math.abs(i * s[g] + o * s[v] + a * s[w]),\n h = O(t, n);\n return !(h <= -c);\n }\n function M(t) {\n var e = t,\n n = e[0],\n r = e[1],\n s = e[2],\n i = e[3],\n o = e[4],\n a = e[5],\n h = e[6],\n l = e[7],\n u = e[8],\n f = e[9],\n d = e[10],\n m = e[11],\n p = e[12],\n y = e[13],\n b = e[14],\n g = e[15];\n _(c[0], i - n, l - o, m - u, g - p), _(c[1], i + n, l + o, m + u, g + p), _(c[2], i + r, l + a, m + f, g + y), _(c[3], i - r, l - a, m - f, g - y), _(c[4], i - s, l - h, m - d, g - b), _(c[5], i + s, l + h, m + d, g + b);\n }\n function _(t, e, n, r, s) {\n var i = 1 / Math.sqrt(e * e + n * n + r * r);\n return t[0] = e * i, t[1] = n * i, t[2] = r * i, t[3] = s * i, t;\n }\n function O(t, e) {\n return t[0] * e[0] + t[1] * e[1] + t[2] * e[2] + t[3];\n }\n function A(t) {\n return t && t.t && Object.prototype.hasOwnProperty.call(t, \"default\") ? t.default : t;\n }\n var x = {\n exports: {} },\n\n I = {\n exports: {} },\n\n S = function S(t) {\n 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));\n },\n C = Array.prototype.concat,\n k = Array.prototype.slice,\n N = I.exports = function (t) {\n for (var e = [], n = 0, r = t.length; n < r; n++) {\n var s = t[n];\n S(s) ? e = C.call(e, k.call(s)) : e.push(s);\n }\n return e;\n };\n N.wrap = function (t) {\n return function () {\n return t(N(arguments));\n };\n };\n var L = I.exports,\n E = {\n \"aliceblue\": [240, 248, 255],\n \"antiquewhite\": [250, 235, 215],\n \"aqua\": [0, 255, 255],\n \"aquamarine\": [127, 255, 212],\n \"azure\": [240, 255, 255],\n \"beige\": [245, 245, 220],\n \"bisque\": [255, 228, 196],\n \"black\": [0, 0, 0],\n \"blanchedalmond\": [255, 235, 205],\n \"blue\": [0, 0, 255],\n \"blueviolet\": [138, 43, 226],\n \"brown\": [165, 42, 42],\n \"burlywood\": [222, 184, 135],\n \"cadetblue\": [95, 158, 160],\n \"chartreuse\": [127, 255, 0],\n \"chocolate\": [210, 105, 30],\n \"coral\": [255, 127, 80],\n \"cornflowerblue\": [100, 149, 237],\n \"cornsilk\": [255, 248, 220],\n \"crimson\": [220, 20, 60],\n \"cyan\": [0, 255, 255],\n \"darkblue\": [0, 0, 139],\n \"darkcyan\": [0, 139, 139],\n \"darkgoldenrod\": [184, 134, 11],\n \"darkgray\": [169, 169, 169],\n \"darkgreen\": [0, 100, 0],\n \"darkgrey\": [169, 169, 169],\n \"darkkhaki\": [189, 183, 107],\n \"darkmagenta\": [139, 0, 139],\n \"darkolivegreen\": [85, 107, 47],\n \"darkorange\": [255, 140, 0],\n \"darkorchid\": [153, 50, 204],\n \"darkred\": [139, 0, 0],\n \"darksalmon\": [233, 150, 122],\n \"darkseagreen\": [143, 188, 143],\n \"darkslateblue\": [72, 61, 139],\n \"darkslategray\": [47, 79, 79],\n \"darkslategrey\": [47, 79, 79],\n \"darkturquoise\": [0, 206, 209],\n \"darkviolet\": [148, 0, 211],\n \"deeppink\": [255, 20, 147],\n \"deepskyblue\": [0, 191, 255],\n \"dimgray\": [105, 105, 105],\n \"dimgrey\": [105, 105, 105],\n \"dodgerblue\": [30, 144, 255],\n \"firebrick\": [178, 34, 34],\n \"floralwhite\": [255, 250, 240],\n \"forestgreen\": [34, 139, 34],\n \"fuchsia\": [255, 0, 255],\n \"gainsboro\": [220, 220, 220],\n \"ghostwhite\": [248, 248, 255],\n \"gold\": [255, 215, 0],\n \"goldenrod\": [218, 165, 32],\n \"gray\": [128, 128, 128],\n \"green\": [0, 128, 0],\n \"greenyellow\": [173, 255, 47],\n \"grey\": [128, 128, 128],\n \"honeydew\": [240, 255, 240],\n \"hotpink\": [255, 105, 180],\n \"indianred\": [205, 92, 92],\n \"indigo\": [75, 0, 130],\n \"ivory\": [255, 255, 240],\n \"khaki\": [240, 230, 140],\n \"lavender\": [230, 230, 250],\n \"lavenderblush\": [255, 240, 245],\n \"lawngreen\": [124, 252, 0],\n \"lemonchiffon\": [255, 250, 205],\n \"lightblue\": [173, 216, 230],\n \"lightcoral\": [240, 128, 128],\n \"lightcyan\": [224, 255, 255],\n \"lightgoldenrodyellow\": [250, 250, 210],\n \"lightgray\": [211, 211, 211],\n \"lightgreen\": [144, 238, 144],\n \"lightgrey\": [211, 211, 211],\n \"lightpink\": [255, 182, 193],\n \"lightsalmon\": [255, 160, 122],\n \"lightseagreen\": [32, 178, 170],\n \"lightskyblue\": [135, 206, 250],\n \"lightslategray\": [119, 136, 153],\n \"lightslategrey\": [119, 136, 153],\n \"lightsteelblue\": [176, 196, 222],\n \"lightyellow\": [255, 255, 224],\n \"lime\": [0, 255, 0],\n \"limegreen\": [50, 205, 50],\n \"linen\": [250, 240, 230],\n \"magenta\": [255, 0, 255],\n \"maroon\": [128, 0, 0],\n \"mediumaquamarine\": [102, 205, 170],\n \"mediumblue\": [0, 0, 205],\n \"mediumorchid\": [186, 85, 211],\n \"mediumpurple\": [147, 112, 219],\n \"mediumseagreen\": [60, 179, 113],\n \"mediumslateblue\": [123, 104, 238],\n \"mediumspringgreen\": [0, 250, 154],\n \"mediumturquoise\": [72, 209, 204],\n \"mediumvioletred\": [199, 21, 133],\n \"midnightblue\": [25, 25, 112],\n \"mintcream\": [245, 255, 250],\n \"mistyrose\": [255, 228, 225],\n \"moccasin\": [255, 228, 181],\n \"navajowhite\": [255, 222, 173],\n \"navy\": [0, 0, 128],\n \"oldlace\": [253, 245, 230],\n \"olive\": [128, 128, 0],\n \"olivedrab\": [107, 142, 35],\n \"orange\": [255, 165, 0],\n \"orangered\": [255, 69, 0],\n \"orchid\": [218, 112, 214],\n \"palegoldenrod\": [238, 232, 170],\n \"palegreen\": [152, 251, 152],\n \"paleturquoise\": [175, 238, 238],\n \"palevioletred\": [219, 112, 147],\n \"papayawhip\": [255, 239, 213],\n \"peachpuff\": [255, 218, 185],\n \"peru\": [205, 133, 63],\n \"pink\": [255, 192, 203],\n \"plum\": [221, 160, 221],\n \"powderblue\": [176, 224, 230],\n \"purple\": [128, 0, 128],\n \"rebeccapurple\": [102, 51, 153],\n \"red\": [255, 0, 0],\n \"rosybrown\": [188, 143, 143],\n \"royalblue\": [65, 105, 225],\n \"saddlebrown\": [139, 69, 19],\n \"salmon\": [250, 128, 114],\n \"sandybrown\": [244, 164, 96],\n \"seagreen\": [46, 139, 87],\n \"seashell\": [255, 245, 238],\n \"sienna\": [160, 82, 45],\n \"silver\": [192, 192, 192],\n \"skyblue\": [135, 206, 235],\n \"slateblue\": [106, 90, 205],\n \"slategray\": [112, 128, 144],\n \"slategrey\": [112, 128, 144],\n \"snow\": [255, 250, 250],\n \"springgreen\": [0, 255, 127],\n \"steelblue\": [70, 130, 180],\n \"tan\": [210, 180, 140],\n \"teal\": [0, 128, 128],\n \"thistle\": [216, 191, 216],\n \"tomato\": [255, 99, 71],\n \"turquoise\": [64, 224, 208],\n \"violet\": [238, 130, 238],\n \"wheat\": [245, 222, 179],\n \"white\": [255, 255, 255],\n \"whitesmoke\": [245, 245, 245],\n \"yellow\": [255, 255, 0],\n \"yellowgreen\": [154, 205, 50] },\n\n R = L,\n P = Object.hasOwnProperty,\n U = Object.create(null);\n for (var B in E) P.call(E, B) && (U[E[B]] = B);\n var F = x.exports = {\n to: {},\n get: {} };\n\n function G(t, e, n) {\n return Math.min(Math.max(e, t), n);\n }\n function D(t) {\n var e = Math.round(t).toString(16).toUpperCase();\n return e.length < 2 ? \"0\" + e : e;\n }\n F.get = function (t) {\n var e, n;\n switch (t.substring(0, 3).toLowerCase()) {\n case \"hsl\":\n e = F.get.hsl(t), n = \"hsl\";\n break;\n case \"hwb\":\n e = F.get.hwb(t), n = \"hwb\";\n break;\n default:\n e = F.get.rgb(t), n = \"rgb\";}\n\n return e ? {\n model: n,\n value: e } :\n null;\n }, F.get.rgb = function (t) {\n if (!t) return null;\n var e,\n n,\n r,\n s = [0, 0, 0, 1];\n if (e = t.match(/^#([a-f0-9]{6})([a-f0-9]{2})?$/i)) {\n for (r = e[2], e = e[1], n = 0; n < 3; n++) {\n var i = 2 * n;\n s[n] = parseInt(e.slice(i, i + 2), 16);\n }\n r && (s[3] = parseInt(r, 16) / 255);\n } else if (e = t.match(/^#([a-f0-9]{3,4})$/i)) {\n for (r = (e = e[1])[3], n = 0; n < 3; n++) s[n] = parseInt(e[n] + e[n], 16);\n r && (s[3] = parseInt(r + r, 16) / 255);\n } else if (e = t.match(/^rgba?\\(\\s*([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/)) {\n for (n = 0; n < 3; n++) s[n] = parseInt(e[n + 1], 0);\n e[4] && (e[5] ? s[3] = .01 * parseFloat(e[4]) : s[3] = parseFloat(e[4]));\n } else {\n if (!(e = t.match(/^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/))) return (e = t.match(/^(\\w+)$/)) ? \"transparent\" === e[1] ? [0, 0, 0, 0] : P.call(E, e[1]) ? ((s = E[e[1]])[3] = 1, s) : null : null;\n for (n = 0; n < 3; n++) s[n] = Math.round(2.55 * parseFloat(e[n + 1]));\n e[4] && (e[5] ? s[3] = .01 * parseFloat(e[4]) : s[3] = parseFloat(e[4]));\n }\n for (n = 0; n < 3; n++) s[n] = G(s[n], 0, 255);\n return s[3] = G(s[3], 0, 1), s;\n }, F.get.hsl = function (t) {\n if (!t) return null;\n var e = 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*)?\\)$/);\n if (e) {\n var n = parseFloat(e[4]);\n return [(parseFloat(e[1]) % 360 + 360) % 360, G(parseFloat(e[2]), 0, 100), G(parseFloat(e[3]), 0, 100), G(isNaN(n) ? 1 : n, 0, 1)];\n }\n return null;\n }, F.get.hwb = function (t) {\n if (!t) return null;\n var e = 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*)?\\)$/);\n if (e) {\n var n = parseFloat(e[4]);\n return [(parseFloat(e[1]) % 360 + 360) % 360, G(parseFloat(e[2]), 0, 100), G(parseFloat(e[3]), 0, 100), G(isNaN(n) ? 1 : n, 0, 1)];\n }\n return null;\n }, F.to.hex = function () {\n var t = R(arguments);\n return \"#\" + D(t[0]) + D(t[1]) + D(t[2]) + (t[3] < 1 ? D(Math.round(255 * t[3])) : \"\");\n }, F.to.rgb = function () {\n var t = R(arguments);\n 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] + \")\";\n }, F.to.rgb.percent = function () {\n var t = R(arguments),\n e = Math.round(t[0] / 255 * 100),\n n = Math.round(t[1] / 255 * 100),\n r = Math.round(t[2] / 255 * 100);\n return t.length < 4 || 1 === t[3] ? \"rgb(\" + e + \"%, \" + n + \"%, \" + r + \"%)\" : \"rgba(\" + e + \"%, \" + n + \"%, \" + r + \"%, \" + t[3] + \")\";\n }, F.to.hsl = function () {\n var t = R(arguments);\n return t.length < 4 || 1 === t[3] ? \"hsl(\" + t[0] + \", \" + t[1] + \"%, \" + t[2] + \"%)\" : \"hsla(\" + t[0] + \", \" + t[1] + \"%, \" + t[2] + \"%, \" + t[3] + \")\";\n }, F.to.hwb = function () {\n var t = R(arguments),\n e = \"\";\n return t.length >= 4 && 1 !== t[3] && (e = \", \" + t[3]), \"hwb(\" + t[0] + \", \" + t[1] + \"%, \" + t[2] + \"%\" + e + \")\";\n }, F.to.keyword = function (t) {\n return U[t.slice(0, 3)];\n };\n var j = x.exports,\n z = {\n exports: {} },\n\n H = {\n \"aliceblue\": [240, 248, 255],\n \"antiquewhite\": [250, 235, 215],\n \"aqua\": [0, 255, 255],\n \"aquamarine\": [127, 255, 212],\n \"azure\": [240, 255, 255],\n \"beige\": [245, 245, 220],\n \"bisque\": [255, 228, 196],\n \"black\": [0, 0, 0],\n \"blanchedalmond\": [255, 235, 205],\n \"blue\": [0, 0, 255],\n \"blueviolet\": [138, 43, 226],\n \"brown\": [165, 42, 42],\n \"burlywood\": [222, 184, 135],\n \"cadetblue\": [95, 158, 160],\n \"chartreuse\": [127, 255, 0],\n \"chocolate\": [210, 105, 30],\n \"coral\": [255, 127, 80],\n \"cornflowerblue\": [100, 149, 237],\n \"cornsilk\": [255, 248, 220],\n \"crimson\": [220, 20, 60],\n \"cyan\": [0, 255, 255],\n \"darkblue\": [0, 0, 139],\n \"darkcyan\": [0, 139, 139],\n \"darkgoldenrod\": [184, 134, 11],\n \"darkgray\": [169, 169, 169],\n \"darkgreen\": [0, 100, 0],\n \"darkgrey\": [169, 169, 169],\n \"darkkhaki\": [189, 183, 107],\n \"darkmagenta\": [139, 0, 139],\n \"darkolivegreen\": [85, 107, 47],\n \"darkorange\": [255, 140, 0],\n \"darkorchid\": [153, 50, 204],\n \"darkred\": [139, 0, 0],\n \"darksalmon\": [233, 150, 122],\n \"darkseagreen\": [143, 188, 143],\n \"darkslateblue\": [72, 61, 139],\n \"darkslategray\": [47, 79, 79],\n \"darkslategrey\": [47, 79, 79],\n \"darkturquoise\": [0, 206, 209],\n \"darkviolet\": [148, 0, 211],\n \"deeppink\": [255, 20, 147],\n \"deepskyblue\": [0, 191, 255],\n \"dimgray\": [105, 105, 105],\n \"dimgrey\": [105, 105, 105],\n \"dodgerblue\": [30, 144, 255],\n \"firebrick\": [178, 34, 34],\n \"floralwhite\": [255, 250, 240],\n \"forestgreen\": [34, 139, 34],\n \"fuchsia\": [255, 0, 255],\n \"gainsboro\": [220, 220, 220],\n \"ghostwhite\": [248, 248, 255],\n \"gold\": [255, 215, 0],\n \"goldenrod\": [218, 165, 32],\n \"gray\": [128, 128, 128],\n \"green\": [0, 128, 0],\n \"greenyellow\": [173, 255, 47],\n \"grey\": [128, 128, 128],\n \"honeydew\": [240, 255, 240],\n \"hotpink\": [255, 105, 180],\n \"indianred\": [205, 92, 92],\n \"indigo\": [75, 0, 130],\n \"ivory\": [255, 255, 240],\n \"khaki\": [240, 230, 140],\n \"lavender\": [230, 230, 250],\n \"lavenderblush\": [255, 240, 245],\n \"lawngreen\": [124, 252, 0],\n \"lemonchiffon\": [255, 250, 205],\n \"lightblue\": [173, 216, 230],\n \"lightcoral\": [240, 128, 128],\n \"lightcyan\": [224, 255, 255],\n \"lightgoldenrodyellow\": [250, 250, 210],\n \"lightgray\": [211, 211, 211],\n \"lightgreen\": [144, 238, 144],\n \"lightgrey\": [211, 211, 211],\n \"lightpink\": [255, 182, 193],\n \"lightsalmon\": [255, 160, 122],\n \"lightseagreen\": [32, 178, 170],\n \"lightskyblue\": [135, 206, 250],\n \"lightslategray\": [119, 136, 153],\n \"lightslategrey\": [119, 136, 153],\n \"lightsteelblue\": [176, 196, 222],\n \"lightyellow\": [255, 255, 224],\n \"lime\": [0, 255, 0],\n \"limegreen\": [50, 205, 50],\n \"linen\": [250, 240, 230],\n \"magenta\": [255, 0, 255],\n \"maroon\": [128, 0, 0],\n \"mediumaquamarine\": [102, 205, 170],\n \"mediumblue\": [0, 0, 205],\n \"mediumorchid\": [186, 85, 211],\n \"mediumpurple\": [147, 112, 219],\n \"mediumseagreen\": [60, 179, 113],\n \"mediumslateblue\": [123, 104, 238],\n \"mediumspringgreen\": [0, 250, 154],\n \"mediumturquoise\": [72, 209, 204],\n \"mediumvioletred\": [199, 21, 133],\n \"midnightblue\": [25, 25, 112],\n \"mintcream\": [245, 255, 250],\n \"mistyrose\": [255, 228, 225],\n \"moccasin\": [255, 228, 181],\n \"navajowhite\": [255, 222, 173],\n \"navy\": [0, 0, 128],\n \"oldlace\": [253, 245, 230],\n \"olive\": [128, 128, 0],\n \"olivedrab\": [107, 142, 35],\n \"orange\": [255, 165, 0],\n \"orangered\": [255, 69, 0],\n \"orchid\": [218, 112, 214],\n \"palegoldenrod\": [238, 232, 170],\n \"palegreen\": [152, 251, 152],\n \"paleturquoise\": [175, 238, 238],\n \"palevioletred\": [219, 112, 147],\n \"papayawhip\": [255, 239, 213],\n \"peachpuff\": [255, 218, 185],\n \"peru\": [205, 133, 63],\n \"pink\": [255, 192, 203],\n \"plum\": [221, 160, 221],\n \"powderblue\": [176, 224, 230],\n \"purple\": [128, 0, 128],\n \"rebeccapurple\": [102, 51, 153],\n \"red\": [255, 0, 0],\n \"rosybrown\": [188, 143, 143],\n \"royalblue\": [65, 105, 225],\n \"saddlebrown\": [139, 69, 19],\n \"salmon\": [250, 128, 114],\n \"sandybrown\": [244, 164, 96],\n \"seagreen\": [46, 139, 87],\n \"seashell\": [255, 245, 238],\n \"sienna\": [160, 82, 45],\n \"silver\": [192, 192, 192],\n \"skyblue\": [135, 206, 235],\n \"slateblue\": [106, 90, 205],\n \"slategray\": [112, 128, 144],\n \"slategrey\": [112, 128, 144],\n \"snow\": [255, 250, 250],\n \"springgreen\": [0, 255, 127],\n \"steelblue\": [70, 130, 180],\n \"tan\": [210, 180, 140],\n \"teal\": [0, 128, 128],\n \"thistle\": [216, 191, 216],\n \"tomato\": [255, 99, 71],\n \"turquoise\": [64, 224, 208],\n \"violet\": [238, 130, 238],\n \"wheat\": [245, 222, 179],\n \"white\": [255, 255, 255],\n \"whitesmoke\": [245, 245, 245],\n \"yellow\": [255, 255, 0],\n \"yellowgreen\": [154, 205, 50] },\n\n q = {};\n for (var $ in H) H.hasOwnProperty($) && (q[H[$]] = $);\n var V = z.exports = {\n rgb: {\n channels: 3,\n labels: \"rgb\" },\n\n hsl: {\n channels: 3,\n labels: \"hsl\" },\n\n hsv: {\n channels: 3,\n labels: \"hsv\" },\n\n hwb: {\n channels: 3,\n labels: \"hwb\" },\n\n cmyk: {\n channels: 4,\n labels: \"cmyk\" },\n\n xyz: {\n channels: 3,\n labels: \"xyz\" },\n\n lab: {\n channels: 3,\n labels: \"lab\" },\n\n lch: {\n channels: 3,\n labels: \"lch\" },\n\n hex: {\n channels: 1,\n labels: [\"hex\"] },\n\n keyword: {\n channels: 1,\n labels: [\"keyword\"] },\n\n ansi16: {\n channels: 1,\n labels: [\"ansi16\"] },\n\n ansi256: {\n channels: 1,\n labels: [\"ansi256\"] },\n\n hcg: {\n channels: 3,\n labels: [\"h\", \"c\", \"g\"] },\n\n apple: {\n channels: 3,\n labels: [\"r16\", \"g16\", \"b16\"] },\n\n gray: {\n channels: 1,\n labels: [\"gray\"] } };\n\n\n for (var J in V) if (V.hasOwnProperty(J)) {\n if (!(\"channels\" in V[J])) throw new Error(\"missing channels property: \" + J);\n if (!(\"labels\" in V[J])) throw new Error(\"missing channel labels property: \" + J);\n if (V[J].labels.length !== V[J].channels) throw new Error(\"channel and label counts mismatch: \" + J);\n var Y = V[J].channels,\n Z = V[J].labels;\n delete V[J].channels, delete V[J].labels, Object.defineProperty(V[J], \"channels\", {\n value: Y }),\n Object.defineProperty(V[J], \"labels\", {\n value: Z });\n\n }\n V.rgb.hsl = function (t) {\n var e,\n n,\n r = t[0] / 255,\n s = t[1] / 255,\n i = t[2] / 255,\n o = Math.min(r, s, i),\n a = Math.max(r, s, i),\n c = a - o;\n return a === o ? e = 0 : r === a ? e = (s - i) / c : s === a ? e = 2 + (i - r) / c : i === a && (e = 4 + (r - s) / c), (e = Math.min(60 * e, 360)) < 0 && (e += 360), n = (o + a) / 2, [e, 100 * (a === o ? 0 : n <= .5 ? c / (a + o) : c / (2 - a - o)), 100 * n];\n }, V.rgb.hsv = function (t) {\n var e,\n n,\n r,\n s,\n i,\n o = t[0] / 255,\n a = t[1] / 255,\n c = t[2] / 255,\n h = Math.max(o, a, c),\n l = h - Math.min(o, a, c),\n u = function u(t) {\n return (h - t) / 6 / l + .5;\n };\n return 0 === l ? s = i = 0 : (i = l / h, e = u(o), n = u(a), r = u(c), o === h ? s = r - n : a === h ? s = 1 / 3 + e - r : c === h && (s = 2 / 3 + n - e), s < 0 ? s += 1 : s > 1 && (s -= 1)), [360 * s, 100 * i, 100 * h];\n }, V.rgb.hwb = function (t) {\n var e = t[0],\n n = t[1],\n r = t[2];\n return [V.rgb.hsl(t)[0], 100 * (1 / 255 * Math.min(e, Math.min(n, r))), 100 * (r = 1 - 1 / 255 * Math.max(e, Math.max(n, r)))];\n }, V.rgb.cmyk = function (t) {\n var e,\n n = t[0] / 255,\n r = t[1] / 255,\n s = t[2] / 255;\n return [100 * ((1 - n - (e = Math.min(1 - n, 1 - r, 1 - s))) / (1 - e) || 0), 100 * ((1 - r - e) / (1 - e) || 0), 100 * ((1 - s - e) / (1 - e) || 0), 100 * e];\n }, V.rgb.keyword = function (t) {\n var e = q[t];\n if (e) return e;\n var n,\n r,\n s,\n i = 1 / 0;\n for (var o in H) if (H.hasOwnProperty(o)) {\n var a = H[o],\n c = (r = t, s = a, Math.pow(r[0] - s[0], 2) + Math.pow(r[1] - s[1], 2) + Math.pow(r[2] - s[2], 2));\n c < i && (i = c, n = o);\n }\n return n;\n }, V.keyword.rgb = function (t) {\n return H[t];\n }, V.rgb.xyz = function (t) {\n var e = t[0] / 255,\n n = t[1] / 255,\n r = t[2] / 255;\n return [100 * (.4124 * (e = e > .04045 ? Math.pow((e + .055) / 1.055, 2.4) : e / 12.92) + .3576 * (n = n > .04045 ? Math.pow((n + .055) / 1.055, 2.4) : n / 12.92) + .1805 * (r = r > .04045 ? Math.pow((r + .055) / 1.055, 2.4) : r / 12.92)), 100 * (.2126 * e + .7152 * n + .0722 * r), 100 * (.0193 * e + .1192 * n + .9505 * r)];\n }, V.rgb.lab = function (t) {\n var e = V.rgb.xyz(t),\n n = e[0],\n r = e[1],\n s = e[2];\n return r /= 100, s /= 108.883, n = (n /= 95.047) > .008856 ? Math.pow(n, 1 / 3) : 7.787 * n + 16 / 116, [116 * (r = r > .008856 ? Math.pow(r, 1 / 3) : 7.787 * r + 16 / 116) - 16, 500 * (n - r), 200 * (r - (s = s > .008856 ? Math.pow(s, 1 / 3) : 7.787 * s + 16 / 116))];\n }, V.hsl.rgb = function (t) {\n var e,\n n,\n r,\n s,\n i,\n o = t[0] / 360,\n a = t[1] / 100,\n c = t[2] / 100;\n if (0 === a) return [i = 255 * c, i, i];\n e = 2 * c - (n = c < .5 ? c * (1 + a) : c + a - c * a), s = [0, 0, 0];\n for (var h = 0; h < 3; h++) (r = o + 1 / 3 * -(h - 1)) < 0 && r++, r > 1 && r--, i = 6 * r < 1 ? e + 6 * (n - e) * r : 2 * r < 1 ? n : 3 * r < 2 ? e + (n - e) * (2 / 3 - r) * 6 : e, s[h] = 255 * i;\n return s;\n }, V.hsl.hsv = function (t) {\n var e = t[0],\n n = t[1] / 100,\n r = t[2] / 100,\n s = n,\n i = Math.max(r, .01);\n return n *= (r *= 2) <= 1 ? r : 2 - r, s *= i <= 1 ? i : 2 - i, [e, 100 * (0 === r ? 2 * s / (i + s) : 2 * n / (r + n)), 100 * ((r + n) / 2)];\n }, V.hsv.rgb = function (t) {\n var e = t[0] / 60,\n n = t[1] / 100,\n r = t[2] / 100,\n s = Math.floor(e) % 6,\n i = e - Math.floor(e),\n o = 255 * r * (1 - n),\n a = 255 * r * (1 - n * i),\n c = 255 * r * (1 - n * (1 - i));\n switch (r *= 255, s) {\n case 0:\n return [r, c, o];\n case 1:\n return [a, r, o];\n case 2:\n return [o, r, c];\n case 3:\n return [o, a, r];\n case 4:\n return [c, o, r];\n case 5:\n return [r, o, a];}\n\n }, V.hsv.hsl = function (t) {\n var e,\n n,\n r,\n s = t[0],\n i = t[1] / 100,\n o = t[2] / 100,\n a = Math.max(o, .01);\n return r = (2 - i) * o, n = i * a, [s, 100 * (n = (n /= (e = (2 - i) * a) <= 1 ? e : 2 - e) || 0), 100 * (r /= 2)];\n }, V.hwb.rgb = function (t) {\n var e,\n n,\n r,\n s,\n i,\n o,\n a,\n c = t[0] / 360,\n h = t[1] / 100,\n l = t[2] / 100,\n u = h + l;\n switch (u > 1 && (h /= u, l /= u), r = 6 * c - (e = Math.floor(6 * c)), 1 & e && (r = 1 - r), s = h + r * ((n = 1 - l) - h), e) {\n default:\n case 6:\n case 0:\n i = n, o = s, a = h;\n break;\n case 1:\n i = s, o = n, a = h;\n break;\n case 2:\n i = h, o = n, a = s;\n break;\n case 3:\n i = h, o = s, a = n;\n break;\n case 4:\n i = s, o = h, a = n;\n break;\n case 5:\n i = n, o = h, a = s;}\n\n return [255 * i, 255 * o, 255 * a];\n }, V.cmyk.rgb = function (t) {\n var e = t[0] / 100,\n n = t[1] / 100,\n r = t[2] / 100,\n s = t[3] / 100;\n return [255 * (1 - Math.min(1, e * (1 - s) + s)), 255 * (1 - Math.min(1, n * (1 - s) + s)), 255 * (1 - Math.min(1, r * (1 - s) + s))];\n }, V.xyz.rgb = function (t) {\n var e,\n n,\n r,\n s = t[0] / 100,\n i = t[1] / 100,\n o = t[2] / 100;\n return n = -.9689 * s + 1.8758 * i + .0415 * o, r = .0557 * s + -.204 * i + 1.057 * o, e = (e = 3.2406 * s + -1.5372 * i + -.4986 * o) > .0031308 ? 1.055 * Math.pow(e, 1 / 2.4) - .055 : 12.92 * e, n = n > .0031308 ? 1.055 * Math.pow(n, 1 / 2.4) - .055 : 12.92 * n, r = r > .0031308 ? 1.055 * Math.pow(r, 1 / 2.4) - .055 : 12.92 * r, [255 * (e = Math.min(Math.max(0, e), 1)), 255 * (n = Math.min(Math.max(0, n), 1)), 255 * (r = Math.min(Math.max(0, r), 1))];\n }, V.xyz.lab = function (t) {\n var e = t[0],\n n = t[1],\n r = t[2];\n return n /= 100, r /= 108.883, e = (e /= 95.047) > .008856 ? Math.pow(e, 1 / 3) : 7.787 * e + 16 / 116, [116 * (n = n > .008856 ? Math.pow(n, 1 / 3) : 7.787 * n + 16 / 116) - 16, 500 * (e - n), 200 * (n - (r = r > .008856 ? Math.pow(r, 1 / 3) : 7.787 * r + 16 / 116))];\n }, V.lab.xyz = function (t) {\n var e,\n n,\n r,\n s = t[0];\n e = t[1] / 500 + (n = (s + 16) / 116), r = n - t[2] / 200;\n var i = Math.pow(n, 3),\n o = Math.pow(e, 3),\n a = Math.pow(r, 3);\n return n = i > .008856 ? i : (n - 16 / 116) / 7.787, e = o > .008856 ? o : (e - 16 / 116) / 7.787, r = a > .008856 ? a : (r - 16 / 116) / 7.787, [e *= 95.047, n *= 100, r *= 108.883];\n }, V.lab.lch = function (t) {\n var e,\n n = t[0],\n r = t[1],\n s = t[2];\n return (e = 360 * Math.atan2(s, r) / 2 / Math.PI) < 0 && (e += 360), [n, Math.sqrt(r * r + s * s), e];\n }, V.lch.lab = function (t) {\n var e,\n n = t[0],\n r = t[1];\n return e = t[2] / 360 * 2 * Math.PI, [n, r * Math.cos(e), r * Math.sin(e)];\n }, V.rgb.ansi16 = function (t) {\n var e = t[0],\n n = t[1],\n r = t[2],\n s = 1 in arguments ? arguments[1] : V.rgb.hsv(t)[2];\n if (0 === (s = Math.round(s / 50))) return 30;\n var i = 30 + (Math.round(r / 255) << 2 | Math.round(n / 255) << 1 | Math.round(e / 255));\n return 2 === s && (i += 60), i;\n }, V.hsv.ansi16 = function (t) {\n return V.rgb.ansi16(V.hsv.rgb(t), t[2]);\n }, V.rgb.ansi256 = function (t) {\n var e = t[0],\n n = t[1],\n r = t[2];\n return e === n && n === r ? e < 8 ? 16 : e > 248 ? 231 : Math.round((e - 8) / 247 * 24) + 232 : 16 + 36 * Math.round(e / 255 * 5) + 6 * Math.round(n / 255 * 5) + Math.round(r / 255 * 5);\n }, V.ansi16.rgb = function (t) {\n var e = t % 10;\n if (0 === e || 7 === e) return t > 50 && (e += 3.5), [e = e / 10.5 * 255, e, e];\n var n = .5 * (1 + ~~(t > 50));\n return [(1 & e) * n * 255, (e >> 1 & 1) * n * 255, (e >> 2 & 1) * n * 255];\n }, V.ansi256.rgb = function (t) {\n if (t >= 232) {\n var e = 10 * (t - 232) + 8;\n return [e, e, e];\n }\n var n;\n return t -= 16, [Math.floor(t / 36) / 5 * 255, Math.floor((n = t % 36) / 6) / 5 * 255, n % 6 / 5 * 255];\n }, V.rgb.hex = function (t) {\n var e = (((255 & Math.round(t[0])) << 16) + ((255 & Math.round(t[1])) << 8) + (255 & Math.round(t[2]))).toString(16).toUpperCase();\n return \"000000\".substring(e.length) + e;\n }, V.hex.rgb = function (t) {\n var e = t.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n if (!e) return [0, 0, 0];\n var n = e[0];\n 3 === e[0].length && (n = n.split(\"\").map(function (t) {\n return t + t;\n }).join(\"\"));\n var r = parseInt(n, 16);\n return [r >> 16 & 255, r >> 8 & 255, 255 & r];\n }, V.rgb.hcg = function (t) {\n var e,\n n = t[0] / 255,\n r = t[1] / 255,\n s = t[2] / 255,\n i = Math.max(Math.max(n, r), s),\n o = Math.min(Math.min(n, r), s),\n a = i - o;\n return e = a <= 0 ? 0 : i === n ? (r - s) / a % 6 : i === r ? 2 + (s - n) / a : 4 + (n - r) / a + 4, e /= 6, [360 * (e %= 1), 100 * a, 100 * (a < 1 ? o / (1 - a) : 0)];\n }, V.hsl.hcg = function (t) {\n var e = t[1] / 100,\n n = t[2] / 100,\n r = 1,\n s = 0;\n return (r = n < .5 ? 2 * e * n : 2 * e * (1 - n)) < 1 && (s = (n - .5 * r) / (1 - r)), [t[0], 100 * r, 100 * s];\n }, V.hsv.hcg = function (t) {\n var e = t[1] / 100,\n n = t[2] / 100,\n r = e * n,\n s = 0;\n return r < 1 && (s = (n - r) / (1 - r)), [t[0], 100 * r, 100 * s];\n }, V.hcg.rgb = function (t) {\n var e = t[0] / 360,\n n = t[1] / 100,\n r = t[2] / 100;\n if (0 === n) return [255 * r, 255 * r, 255 * r];\n var s,\n i = [0, 0, 0],\n o = e % 1 * 6,\n a = o % 1,\n c = 1 - a;\n switch (Math.floor(o)) {\n case 0:\n i[0] = 1, i[1] = a, i[2] = 0;\n break;\n case 1:\n i[0] = c, i[1] = 1, i[2] = 0;\n break;\n case 2:\n i[0] = 0, i[1] = 1, i[2] = a;\n break;\n case 3:\n i[0] = 0, i[1] = c, i[2] = 1;\n break;\n case 4:\n i[0] = a, i[1] = 0, i[2] = 1;\n break;\n default:\n i[0] = 1, i[1] = 0, i[2] = c;}\n\n return s = (1 - n) * r, [255 * (n * i[0] + s), 255 * (n * i[1] + s), 255 * (n * i[2] + s)];\n }, V.hcg.hsv = function (t) {\n var e = t[1] / 100,\n n = e + t[2] / 100 * (1 - e),\n r = 0;\n return n > 0 && (r = e / n), [t[0], 100 * r, 100 * n];\n }, V.hcg.hsl = function (t) {\n var e = t[1] / 100,\n n = t[2] / 100 * (1 - e) + .5 * e,\n r = 0;\n return n > 0 && n < .5 ? r = e / (2 * n) : n >= .5 && n < 1 && (r = e / (2 * (1 - n))), [t[0], 100 * r, 100 * n];\n }, V.hcg.hwb = function (t) {\n var e = t[1] / 100,\n n = e + t[2] / 100 * (1 - e);\n return [t[0], 100 * (n - e), 100 * (1 - n)];\n }, V.hwb.hcg = function (t) {\n var e = t[1] / 100,\n n = 1 - t[2] / 100,\n r = n - e,\n s = 0;\n return r < 1 && (s = (n - r) / (1 - r)), [t[0], 100 * r, 100 * s];\n }, V.apple.rgb = function (t) {\n return [t[0] / 65535 * 255, t[1] / 65535 * 255, t[2] / 65535 * 255];\n }, V.rgb.apple = function (t) {\n return [t[0] / 255 * 65535, t[1] / 255 * 65535, t[2] / 255 * 65535];\n }, V.gray.rgb = function (t) {\n return [t[0] / 100 * 255, t[0] / 100 * 255, t[0] / 100 * 255];\n }, V.gray.hsl = V.gray.hsv = function (t) {\n return [0, 0, t[0]];\n }, V.gray.hwb = function (t) {\n return [0, 100, t[0]];\n }, V.gray.cmyk = function (t) {\n return [0, 0, 0, t[0]];\n }, V.gray.lab = function (t) {\n return [t[0], 0, 0];\n }, V.gray.hex = function (t) {\n var e = 255 & Math.round(t[0] / 100 * 255),\n n = ((e << 16) + (e << 8) + e).toString(16).toUpperCase();\n return \"000000\".substring(n.length) + n;\n }, V.rgb.gray = function (t) {\n return [(t[0] + t[1] + t[2]) / 3 / 255 * 100];\n };\n var K = z.exports,\n X = K;\n function W(t) {\n var e = function () {\n for (var t = {}, e = Object.keys(X), n = e.length, r = 0; r < n; r++) t[e[r]] = {\n distance: -1,\n parent: null };\n\n return t;\n }(),\n n = [t];\n for (e[t].distance = 0; n.length;) for (var r = n.pop(), s = Object.keys(X[r]), i = s.length, o = 0; o < i; o++) {\n var a = s[o],\n c = e[a];\n -1 === c.distance && (c.distance = e[r].distance + 1, c.parent = r, n.unshift(a));\n }\n return e;\n }\n function Q(t, e) {\n return function (n) {\n return e(t(n));\n };\n }\n function tt(t, e) {\n for (var n = [e[t].parent, t], r = X[e[t].parent][t], s = e[t].parent; e[s].parent;) n.unshift(e[s].parent), r = Q(X[e[s].parent][s], r), s = e[s].parent;\n return r.conversion = n, r;\n }\n var et = K,\n nt = function nt(t) {\n for (var e = W(t), n = {}, r = Object.keys(e), s = r.length, i = 0; i < s; i++) {\n var o = r[i];\n null !== e[o].parent && (n[o] = tt(o, e));\n }\n return n;\n },\n rt = {};\n Object.keys(et).forEach(function (t) {\n rt[t] = {}, Object.defineProperty(rt[t], \"channels\", {\n value: et[t].channels }),\n Object.defineProperty(rt[t], \"labels\", {\n value: et[t].labels });\n\n var e = nt(t);\n Object.keys(e).forEach(function (n) {\n var r = e[n];\n rt[t][n] = function (t) {\n var e = function e(_e2) {\n if (null == _e2) return _e2;\n arguments.length > 1 && (_e2 = Array.prototype.slice.call(arguments));\n var n = t(_e2);\n if (\"object\" == _typeof(n)) for (var r = n.length, s = 0; s < r; s++) n[s] = Math.round(n[s]);\n return n;\n };\n return \"conversion\" in t && (e.conversion = t.conversion), e;\n }(r), rt[t][n].raw = function (t) {\n var e = function e(_e3) {\n return null == _e3 ? _e3 : (arguments.length > 1 && (_e3 = Array.prototype.slice.call(arguments)), t(_e3));\n };\n return \"conversion\" in t && (e.conversion = t.conversion), e;\n }(r);\n });\n });\n var st = j,\n it = rt,\n ot = [].slice,\n at = [\"keyword\", \"gray\", \"hex\"],\n ct = {};\n Object.keys(it).forEach(function (t) {\n ct[ot.call(it[t].labels).sort().join(\"\")] = t;\n });\n var ht = {};\n function lt(t, e) {\n if (!(this instanceof lt)) return new lt(t, e);\n if (e && e in at && (e = null), e && !(e in it)) throw new Error(\"Unknown model: \" + e);\n var n, r;\n if (null == t) this.model = \"rgb\", this.color = [0, 0, 0], this.valpha = 1;else if (t instanceof lt) this.model = t.model, this.color = t.color.slice(), this.valpha = t.valpha;else if (\"string\" == typeof t) {\n var s = st.get(t);\n if (null === s) throw new Error(\"Unable to parse color from string: \" + t);\n this.model = s.model, r = it[this.model].channels, this.color = s.value.slice(0, r), this.valpha = \"number\" == typeof s.value[r] ? s.value[r] : 1;\n } else if (t.length) {\n this.model = e || \"rgb\", r = it[this.model].channels;\n var i = ot.call(t, 0, r);\n this.color = dt(i, r), this.valpha = \"number\" == typeof t[r] ? t[r] : 1;\n } else if (\"number\" == typeof t) t &= 16777215, this.model = \"rgb\", this.color = [t >> 16 & 255, t >> 8 & 255, 255 & t], this.valpha = 1;else {\n this.valpha = 1;\n var o = Object.keys(t);\n \"alpha\" in t && (o.splice(o.indexOf(\"alpha\"), 1), this.valpha = \"number\" == typeof t.alpha ? t.alpha : 0);\n var a = o.sort().join(\"\");\n if (!(a in ct)) throw new Error(\"Unable to parse color from object: \" + JSON.stringify(t));\n this.model = ct[a];\n var c = it[this.model].labels,\n h = [];\n for (n = 0; n < c.length; n++) h.push(t[c[n]]);\n this.color = dt(h);\n }\n if (ht[this.model]) for (r = it[this.model].channels, n = 0; n < r; n++) {\n var l = ht[this.model][n];\n l && (this.color[n] = l(this.color[n]));\n }\n this.valpha = Math.max(0, Math.min(1, this.valpha)), Object.freeze && Object.freeze(this);\n }\n function ut(t, e, n) {\n return (t = Array.isArray(t) ? t : [t]).forEach(function (t) {\n (ht[t] || (ht[t] = []))[e] = n;\n }), t = t[0], function (r) {\n var s;\n return arguments.length ? (n && (r = n(r)), (s = this[t]()).color[e] = r, s) : (s = this[t]().color[e], n && (s = n(s)), s);\n };\n }\n function ft(t) {\n return function (e) {\n return Math.max(0, Math.min(t, e));\n };\n }\n function dt(t, e) {\n for (var n = 0; n < e; n++) \"number\" != typeof t[n] && (t[n] = 0);\n return t;\n }\n lt.prototype = {\n toString: function toString() {\n return this.string();\n },\n toJSON: function toJSON() {\n return this[this.model]();\n },\n string: function string(t) {\n var e = this.model in st.to ? this : this.rgb(),\n n = 1 === (e = e.round(\"number\" == typeof t ? t : 1)).valpha ? e.color : e.color.concat(this.valpha);\n return st.to[e.model](n);\n },\n percentString: function percentString(t) {\n var e = this.rgb().round(\"number\" == typeof t ? t : 1),\n n = 1 === e.valpha ? e.color : e.color.concat(this.valpha);\n return st.to.rgb.percent(n);\n },\n array: function array() {\n return 1 === this.valpha ? this.color.slice() : this.color.concat(this.valpha);\n },\n object: function object() {\n for (var t = {}, e = it[this.model].channels, n = it[this.model].labels, r = 0; r < e; r++) t[n[r]] = this.color[r];\n return 1 !== this.valpha && (t.alpha = this.valpha), t;\n },\n unitArray: function unitArray() {\n var t = this.rgb().color;\n return t[0] /= 255, t[1] /= 255, t[2] /= 255, 1 !== this.valpha && t.push(this.valpha), t;\n },\n unitObject: function unitObject() {\n var t = this.rgb().object();\n return t.r /= 255, t.g /= 255, t.b /= 255, 1 !== this.valpha && (t.alpha = this.valpha), t;\n },\n round: function round(t) {\n return t = Math.max(t || 0, 0), new lt(this.color.map(function (t) {\n return function (e) {\n return function (t, e) {\n return Number(t.toFixed(e));\n }(e, t);\n };\n }(t)).concat(this.valpha), this.model);\n },\n alpha: function alpha(t) {\n return arguments.length ? new lt(this.color.concat(Math.max(0, Math.min(1, t))), this.model) : this.valpha;\n },\n red: ut(\"rgb\", 0, ft(255)),\n green: ut(\"rgb\", 1, ft(255)),\n blue: ut(\"rgb\", 2, ft(255)),\n hue: ut([\"hsl\", \"hsv\", \"hsl\", \"hwb\", \"hcg\"], 0, function (t) {\n return (t % 360 + 360) % 360;\n }),\n saturationl: ut(\"hsl\", 1, ft(100)),\n lightness: ut(\"hsl\", 2, ft(100)),\n saturationv: ut(\"hsv\", 1, ft(100)),\n value: ut(\"hsv\", 2, ft(100)),\n chroma: ut(\"hcg\", 1, ft(100)),\n gray: ut(\"hcg\", 2, ft(100)),\n white: ut(\"hwb\", 1, ft(100)),\n wblack: ut(\"hwb\", 2, ft(100)),\n cyan: ut(\"cmyk\", 0, ft(100)),\n magenta: ut(\"cmyk\", 1, ft(100)),\n yellow: ut(\"cmyk\", 2, ft(100)),\n black: ut(\"cmyk\", 3, ft(100)),\n x: ut(\"xyz\", 0, ft(100)),\n y: ut(\"xyz\", 1, ft(100)),\n z: ut(\"xyz\", 2, ft(100)),\n l: ut(\"lab\", 0, ft(100)),\n a: ut(\"lab\", 1),\n b: ut(\"lab\", 2),\n keyword: function keyword(t) {\n return arguments.length ? new lt(t) : it[this.model].keyword(this.color);\n },\n hex: function hex(t) {\n return arguments.length ? new lt(t) : st.to.hex(this.rgb().round().color);\n },\n rgbNumber: function rgbNumber() {\n var t = this.rgb().color;\n return (255 & t[0]) << 16 | (255 & t[1]) << 8 | 255 & t[2];\n },\n luminosity: function luminosity() {\n for (var t = this.rgb().color, e = [], n = 0; n < t.length; n++) {\n var r = t[n] / 255;\n e[n] = r <= .03928 ? r / 12.92 : Math.pow((r + .055) / 1.055, 2.4);\n }\n return .2126 * e[0] + .7152 * e[1] + .0722 * e[2];\n },\n contrast: function contrast(t) {\n var e = this.luminosity(),\n n = t.luminosity();\n return e > n ? (e + .05) / (n + .05) : (n + .05) / (e + .05);\n },\n level: function level(t) {\n var e = this.contrast(t);\n return e >= 7.1 ? \"AAA\" : e >= 4.5 ? \"AA\" : \"\";\n },\n isDark: function isDark() {\n var t = this.rgb().color;\n return (299 * t[0] + 587 * t[1] + 114 * t[2]) / 1e3 < 128;\n },\n isLight: function isLight() {\n return !this.isDark();\n },\n negate: function negate() {\n for (var t = this.rgb(), e = 0; e < 3; e++) t.color[e] = 255 - t.color[e];\n return t;\n },\n lighten: function lighten(t) {\n var e = this.hsl();\n return e.color[2] += e.color[2] * t, e;\n },\n darken: function darken(t) {\n var e = this.hsl();\n return e.color[2] -= e.color[2] * t, e;\n },\n saturate: function saturate(t) {\n var e = this.hsl();\n return e.color[1] += e.color[1] * t, e;\n },\n desaturate: function desaturate(t) {\n var e = this.hsl();\n return e.color[1] -= e.color[1] * t, e;\n },\n whiten: function whiten(t) {\n var e = this.hwb();\n return e.color[1] += e.color[1] * t, e;\n },\n blacken: function blacken(t) {\n var e = this.hwb();\n return e.color[2] += e.color[2] * t, e;\n },\n grayscale: function grayscale() {\n var t = this.rgb().color,\n e = .3 * t[0] + .59 * t[1] + .11 * t[2];\n return lt.rgb(e, e, e);\n },\n fade: function fade(t) {\n return this.alpha(this.valpha - this.valpha * t);\n },\n opaquer: function opaquer(t) {\n return this.alpha(this.valpha + this.valpha * t);\n },\n rotate: function rotate(t) {\n var e = this.hsl(),\n n = e.color[0];\n return n = (n = (n + t) % 360) < 0 ? 360 + n : n, e.color[0] = n, e;\n },\n mix: function mix(t, e) {\n if (!t || !t.rgb) throw new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + _typeof(t));\n var n = t.rgb(),\n r = this.rgb(),\n s = void 0 === e ? .5 : e,\n i = 2 * s - 1,\n o = n.alpha() - r.alpha(),\n a = ((i * o == -1 ? i : (i + o) / (1 + i * o)) + 1) / 2,\n c = 1 - a;\n return lt.rgb(a * n.red() + c * r.red(), a * n.green() + c * r.green(), a * n.blue() + c * r.blue(), n.alpha() * s + r.alpha() * (1 - s));\n } },\n Object.keys(it).forEach(function (t) {\n if (-1 === at.indexOf(t)) {\n var e = it[t].channels;\n lt.prototype[t] = function () {\n if (this.model === t) return new lt(this);\n if (arguments.length) return new lt(arguments, t);\n var n,\n r = \"number\" == typeof arguments[e] ? e : this.valpha;\n return new lt((n = it[this.model][t].raw(this.color), Array.isArray(n) ? n : [n]).concat(r), t);\n }, lt[t] = function (n) {\n return \"number\" == typeof n && (n = dt(ot.call(arguments), e)), new lt(n, t);\n };\n }\n });\n var mt = A(lt);\n function pt(t) {\n return null == t;\n }\n function yt(t) {\n for (var _e4 = 1; _e4 < arguments.length; _e4++) {\n var _n2 = arguments[_e4];\n for (var _e5 in _n2) t[_e5] = _n2[_e5];\n }\n return t;\n }\n function bt(t) {\n return null != t && (\"function\" == typeof t || null !== t.constructor && t.constructor === Function);\n }\n function gt(t) {\n return \"object\" == _typeof(t) && !!t;\n }\n function vt(t) {\n return \"number\" == typeof t && !isNaN(t);\n }\n function wt(t) {\n return t * Math.PI / 180;\n }\n function Tt(t) {\n return t / Math.PI * 180;\n }\n function Mt(t) {\n var e = document.createElement(\"a\");\n return e.href = t, t = e.href, e = null, t;\n }\n function _t(t) {\n return Math.sign ? Math.sign(t) : 0 === (t = +t) || isNaN(t) ? Number(t) : t > 0 ? 1 : -1;\n }\n var Ot = [1, 1, 1, 1, 2, 2, 3, 0];\n function At(t) {\n var e = t.length;\n var n = \"\";\n for (var _r2 = 0; _r2 < e;) {\n var _s2 = t[_r2++];\n if (128 & _s2) {\n var _n3 = Ot[_s2 >> 3 & 7];\n if (!(64 & _s2) || !_n3 || _r2 + _n3 > e) return null;\n for (_s2 &= 63 >> _n3; _n3 > 0; _n3 -= 1) {\n var _e6 = t[_r2++];\n if (128 != (192 & _e6)) return null;\n _s2 = _s2 << 6 | 63 & _e6;\n }\n }\n n += String.fromCharCode(_s2);\n }\n return n;\n }\n function xt(t, e, n) {\n return t[3 * n] = e[0], t[3 * n + 1] = e[1], t[3 * n + 2] = e[2], t;\n }\n function It(t) {\n return t.flat ? t.flat(1 / 0) : t.reduce(function (t, e) {\n return t.concat(e);\n }, []);\n }\n function St(t) {\n return t < 256 ? Uint8Array : t < 65536 ? Uint16Array : Uint32Array;\n }\n function Ct(t) {\n return 0 === t.indexOf(\"data:\");\n }\n function kt(t) {\n var e = t.indexOf(\"base64,\"),\n n = t.substring(e + 7),\n r = window.atob(n),\n s = r.length,\n i = new Uint8Array(s);\n for (var _t2 = 0; _t2 < s; _t2++) i[_t2] = r.charCodeAt(_t2);\n return i.buffer;\n }\n function Nt(t) {\n for (var _e7 = 1; _e7 < arguments.length; _e7++) {\n var _n4 = arguments[_e7];\n if (_n4) for (var _e8 = 0, _r3 = _n4.length; _e8 < _r3; _e8++) t.push(_n4[_e8]);\n }\n return t.length;\n }\n var Lt = {};\n function Et(t, e) {\n if (!Array.isArray(e)) {\n var _t3 = e;\n e = Lt[_t3] = Lt[_t3] || mt(e).array().map(function (t) {\n return t / 255;\n });\n }\n for (var _n5 = 0; _n5 < e.length; _n5++) t[_n5] = e[_n5];\n return 3 === e.length && (t[3] = 1), t;\n }\n var Rt = Object.freeze({\n __proto__: null,\n base64URLToArrayBuffer: kt,\n extend: yt,\n flatArr: It,\n getAbsoluteURL: Mt,\n getBatchIdArrayType: St,\n isBase64: Ct,\n isFunction: bt,\n isNil: pt,\n isNumber: vt,\n isObject: gt,\n normalizeColor: Et,\n pushIn: Nt,\n setColumn3: xt,\n sign: _t,\n stringFromUTF8Array: At,\n toDegree: Tt,\n toRadian: wt });\n\n function Pt(t) {\n return -1 === t.indexOf(\"http://\") && -1 === t.indexOf(\"https://\") && -1 === t.indexOf(\"file://\");\n }\n function Ut(t) {\n return (t = t || {}).referrerPolicy = t.referrerPolicy || \"origin\", t.referrer = window && window.location.href, t;\n }\n var Bt = function Bt() {\n if (\"undefined\" != typeof globalThis) return globalThis;\n if (\"undefined\" != typeof self) return self;\n if (\"undefined\" != typeof window) return window;\n if (\"undefined\" != typeof global) return global;\n throw new Error(\"unable to locate global object\");\n },\n Ft = Bt(),\n Gt = Ft.gl_trans__coders = Ft.gl_trans__coders || {};\n function Dt() {\n return Bt().maptalks_gltf_loader;\n }\n Gt.inject = function (t) {\n var e = t.toString(),\n n = e.indexOf(\"{\") + 1,\n r = e.substring(0, n),\n s = Ft.gl_trans__coders = Ft.gl_trans__coders || {};\n var i = \"\".concat(r, \"\\n const _____getGlobal = \").concat(Bt.toString(), \";\\n const g___lobals = _____getGlobal()\\n const tran_____scoders = g___lobals['gl_trans__coders'] = g___lobals['gl_trans__coders'] || {};\");\n for (var _t4 in s) \"inject\" !== _t4 && \"getTranscoder\" !== _t4 && \"registerTranscoder\" !== _t4 && (i += 'tran_____scoders[\"' + _t4 + '\"] =' + s[_t4].toString() + \"\\n;\");\n return i += \"\\n(\" + Bt().maptalks_gltf_loader_bundle.toString() + \")({});\\n\", i += \"\\n\" + e.substring(r.length), i;\n }, Gt.registerTranscoder = function (t, e) {\n Gt[t] = e;\n }, Gt.getTranscoder = function (t) {\n return Gt[t];\n };\n var jt = \"undefined\" == typeof document ? null : document.createElement(\"canvas\");\n var zt = function (_s$worker$Actor) {\n function zt(t, e, n) {\n var _this;\n _classCallCheck(this, zt);\n _this = _callSuper(this, zt, [t]), _this.mapId = e, _this.i = n;\n return _this;\n }\n _inherits(zt, _s$worker$Actor);\n return _createClass(zt, [{\n key: \"initialize\",\n value: function initialize(t) {\n t(null);\n } },\n {\n key: \"loadTile\",\n value: function loadTile(t, e, n) {\n var r = null;\n e && e.arraybuffer && (r = [e.arraybuffer]);\n var s = {\n mapId: this.mapId,\n layerId: t,\n command: \"loadTile\",\n params: e };\n\n this.send(s, r, n);\n } },\n {\n key: \"abortTileLoading\",\n value: function abortTileLoading(t, e, n) {\n var r = {\n mapId: this.mapId,\n layerId: t,\n command: \"abortTileLoading\",\n params: {\n url: e } };\n\n\n this.broadcast(r, null, n);\n } },\n {\n key: \"addLayer\",\n value: function addLayer(t, e, n) {\n var r = {\n actorId: this.actorId,\n mapId: this.mapId,\n layerId: t,\n command: \"addLayer\",\n params: {\n options: e } };\n\n\n this.broadcast(r, null, n);\n } },\n {\n key: \"removeLayer\",\n value: function removeLayer(t, e) {\n var n = {\n mapId: this.mapId,\n layerId: t,\n command: \"removeLayer\" };\n\n this.broadcast(n, null, e);\n } },\n {\n key: \"requestImage\",\n value: function requestImage(_ref, e) {\n var _this2 = this;\n var t = _ref.url;\n var n = new Image();\n n.onload = function () {\n if (!_this2.isActive()) return;\n if (!jt) return void e(new Error(\"There is no canvas to draw image!\"));\n var t = _this2.i ? n : function (t) {\n if (Ht(t.width) && Ht(t.height)) return t;\n var e = t.width,\n n = t.height;\n Ht(e) || (e = qt(e));\n Ht(n) || (n = qt(n));\n var r = document.createElement(\"canvas\");\n r.width = e, r.height = n, r.getContext(\"2d\").drawImage(t, 0, 0, e, n);\n var s = t.src,\n i = s.lastIndexOf(\"/\") + 1,\n o = s.substring(i);\n return console.warn(\"Texture(\".concat(o, \")'s size is not power of two, resize from (\").concat(t.width, \", \").concat(t.height, \") to (\").concat(e, \", \").concat(n, \")\")), r;\n }(n);\n jt.width = t.width, jt.height = t.height;\n var r = jt.getContext(\"2d\", {\n willReadFrequently: !0 });\n\n r.drawImage(t, 0, 0, t.width, t.height);\n var s = r.getImageData(0, 0, t.width, t.height),\n i = {\n width: t.width,\n height: t.height,\n data: new Uint8Array(s.data) };\n\n e(null, i, [i.data.buffer]);\n }, n.onerror = function (t) {\n e(t);\n }, n.src = t;\n } }]);\n\n }(s.worker.Actor);\n function Ht(t) {\n return !(t & t - 1) && 0 !== t;\n }\n function qt(t) {\n return Math.pow(2, Math.floor(Math.log(t) / Math.LN2));\n }\n var $t = 1e-6,\n Vt = \"undefined\" != typeof Float32Array ? Float32Array : Array;\n function Jt(t, e, n) {\n var r = e[0],\n s = e[1],\n i = e[2],\n o = e[3],\n a = e[4],\n c = e[5],\n h = e[6],\n l = e[7],\n u = e[8],\n f = e[9],\n d = e[10],\n m = e[11],\n p = e[12],\n y = e[13],\n b = e[14],\n g = e[15],\n v = n[0],\n w = n[1],\n T = n[2],\n M = n[3];\n return t[0] = v * r + w * a + T * u + M * p, t[1] = v * s + w * c + T * f + M * y, t[2] = v * i + w * h + T * d + M * b, t[3] = v * o + w * l + T * m + M * g, v = n[4], w = n[5], T = n[6], M = n[7], t[4] = v * r + w * a + T * u + M * p, t[5] = v * s + w * c + T * f + M * y, t[6] = v * i + w * h + T * d + M * b, t[7] = v * o + w * l + T * m + M * g, v = n[8], w = n[9], T = n[10], M = n[11], t[8] = v * r + w * a + T * u + M * p, t[9] = v * s + w * c + T * f + M * y, t[10] = v * i + w * h + T * d + M * b, t[11] = v * o + w * l + T * m + M * g, v = n[12], w = n[13], T = n[14], M = n[15], t[12] = v * r + w * a + T * u + M * p, t[13] = v * s + w * c + T * f + M * y, t[14] = v * i + w * h + T * d + M * b, t[15] = v * o + w * l + T * m + M * g, t;\n }\n function Yt() {\n var t = new Vt(3);\n return Vt != Float32Array && (t[0] = 0, t[1] = 0, t[2] = 0), t;\n }\n function Zt(t) {\n var e = t[0],\n n = t[1],\n r = t[2];\n return Math.hypot(e, n, r);\n }\n function Kt(t, e, n) {\n var r = new Vt(3);\n return r[0] = t, r[1] = e, r[2] = n, r;\n }\n function Xt(t, e) {\n return t[0] = e[0], t[1] = e[1], t[2] = e[2], t;\n }\n function Wt(t, e, n, r) {\n return t[0] = e, t[1] = n, t[2] = r, t;\n }\n function Qt(t, e, n) {\n return t[0] = e[0] - n[0], t[1] = e[1] - n[1], t[2] = e[2] - n[2], t;\n }\n function te(t, e, n) {\n return t[0] = e[0] * n[0], t[1] = e[1] * n[1], t[2] = e[2] * n[2], t;\n }\n function ee(t, e, n) {\n return t[0] = e[0] * n, t[1] = e[1] * n, t[2] = e[2] * n, t;\n }\n function ne(t, e) {\n var n = e[0],\n r = e[1],\n s = e[2],\n i = n * n + r * r + s * s;\n return i > 0 && (i = 1 / Math.sqrt(i)), t[0] = e[0] * i, t[1] = e[1] * i, t[2] = e[2] * i, t;\n }\n function re(t, e) {\n return t[0] * e[0] + t[1] * e[1] + t[2] * e[2];\n }\n function se(t, e, n) {\n var r = e[0],\n s = e[1],\n i = e[2],\n o = n[0],\n a = n[1],\n c = n[2];\n return t[0] = s * c - i * a, t[1] = i * o - r * c, t[2] = r * a - s * o, t;\n }\n Math.hypot || (Math.hypot = function () {\n for (var t = 0, e = arguments.length; e--;) t += arguments[e] * arguments[e];\n return Math.sqrt(t);\n });\n var ie = Qt,\n oe = te,\n ae = Zt;\n function ce() {\n var t = new Vt(4);\n return Vt != Float32Array && (t[0] = 0, t[1] = 0, t[2] = 0), t[3] = 1, t;\n }\n Yt(), function () {\n var t,\n e = (t = new Vt(4), Vt != Float32Array && (t[0] = 0, t[1] = 0, t[2] = 0, t[3] = 0), t);\n }();\n var he;\n Yt(), Kt(1, 0, 0), Kt(0, 1, 0), ce(), ce(), he = new Vt(9), Vt != Float32Array && (he[1] = 0, he[2] = 0, he[3] = 0, he[5] = 0, he[6] = 0, he[7] = 0), he[0] = 1, he[4] = 1, he[8] = 1;\n var _Dt = Dt(),\n le = _Dt.GLTFLoader;\n function ue(t, e) {\n if (t.scenes && t.scenes.length) for (var _n6 = 0, _r4 = t.scenes.length; _n6 < _r4; _n6++) {\n var _r5 = t.scenes[_n6].nodes;\n for (var _n7 = 0, _s3 = _r5.length; _n7 < _s3; _n7++) {\n var _s4 = [];\n ge(_r5[_n7], _s4, t, e);\n }\n }\n }\n var fe = [],\n de = [],\n me = [],\n pe = [0, 0, 0],\n ye = function (t) {\n return t[0] = 0, t[1] = 0, t[2] = 0, t[3] = 1, t;\n }([]),\n be = [1, 1, 1];\n function ge(t, e, n, r) {\n var s = e.slice(0);\n if (t.matrix) s.push(t.matrix);else if (t.rotation || t.translation || t.scale) {\n var _e9 = function (t, e) {\n return t[0] = 1, t[1] = 0, t[2] = 0, t[3] = 0, t[4] = 0, t[5] = 1, t[6] = 0, t[7] = 0, t[8] = 0, t[9] = 0, t[10] = 1, t[11] = 0, t[12] = e[0], t[13] = e[1], t[14] = e[2], t[15] = 1, t;\n }(fe, t.translation || pe),\n _n8 = function (t, e) {\n var n = e[0],\n r = e[1],\n s = e[2],\n i = e[3],\n o = n + n,\n a = r + r,\n c = s + s,\n h = n * o,\n l = r * o,\n u = r * a,\n f = s * o,\n d = s * a,\n m = s * c,\n p = i * o,\n y = i * a,\n b = i * c;\n return t[0] = 1 - u - m, t[1] = l + b, t[2] = f - y, t[3] = 0, t[4] = l - b, t[5] = 1 - h - m, t[6] = d + p, t[7] = 0, t[8] = f + y, t[9] = d - p, t[10] = 1 - h - u, t[11] = 0, t[12] = 0, t[13] = 0, t[14] = 0, t[15] = 1, t;\n }(de, t.rotation || ye),\n _r6 = function (t, e) {\n return t[0] = e[0], t[1] = 0, t[2] = 0, t[3] = 0, t[4] = 0, t[5] = e[1], t[6] = 0, t[7] = 0, t[8] = 0, t[9] = 0, t[10] = e[2], t[11] = 0, t[12] = 0, t[13] = 0, t[14] = 0, t[15] = 1, t;\n }(me, t.scale || be);\n Jt(_r6, _n8, _r6);\n var _i2 = Jt([], _e9, _r6);\n s.push(_i2);\n }\n if (t.children && t.children.length) for (var _e10 = 0, _i3 = t.children.length; _e10 < _i3; _e10++) ge(t.children[_e10], s, n, r);\n if (void 0 !== t.mesh) {\n var _e11 = t.mesh,\n _i4 = n.meshes[_e11];\n if (_i4) {\n var _t5 = s.slice(0),\n _o = _i4.primitives;\n for (var _s5 = 0, _i5 = _o.length; _s5 < _i5; _s5++) {\n var _i6 = _o[_s5];\n _i6 && (_i6.matrices = _t5, r(_i6, _e11, _s5, n));\n }\n }\n }\n }\n function ve(t, e, n) {\n var r = e.byteOffset,\n s = e.byteStride;\n var i = e.componentType,\n o = e.itemSize,\n a = e.array.buffer,\n c = i ? le.getTypedArrayCtor(i) : e.array.constructor;\n if (r = void 0 === r ? e.array.byteOffset : r, s = s || 0, !s || s === o * c.BYTES_PER_ELEMENT && r % c.BYTES_PER_ELEMENT == 0) {\n var _e12 = new c(a, r + n * o * c.BYTES_PER_ELEMENT, o);\n return t.set(_e12), t;\n }\n s || (s = o * c.BYTES_PER_ELEMENT);\n var h = new Uint8Array(a, s * n + r, o * c.BYTES_PER_ELEMENT);\n return new Uint8Array(t.buffer).set(h), t;\n }\n function we(t, e, n, r) {\n t[4 * e] = n[r], t[4 * e + 1] = n[r + 4], t[4 * e + 2] = n[r + 8], t[4 * e + 3] = n[r + 12];\n }\n var Te = \"#include \\n\\nconst float SHIFT_RIGHT_11 = 1.0 / 2048.0;\\n\\nconst float SHIFT_RIGHT_5 = 1.0 / 32.0;\\n\\nconst float SHIFT_LEFT_11 = 2048.0;\\n\\nconst float SHIFT_LEFT_5 = 32.0;\\n\\nconst float NORMALIZE_6 = 1.0 / 64.0;\\n\\nconst float NORMALIZE_5 = 1.0 / 32.0;\\n\\n\\n\\n#ifdef HAS_POSITION\\n\\n attribute vec3 POSITION;\\n\\n#endif\\n\\n\\n\\n#if defined(HAS_RGB)\\n\\n attribute vec3 RGB;\\n\\n#elif defined(HAS_RGBA)\\n\\n attribute vec4 RGBA;\\n\\n#elif defined(HAS_RGB565)\\n\\n attribute float RGB565;\\n\\n#endif\\n\\n\\n\\nuniform vec4 pointColor;\\n\\nuniform float pointSize;\\n\\n\\n\\nuniform mat4 projViewModelMatrix;\\n\\nuniform float pointOpacity;\\n\\n\\n\\nvarying vec4 vColor;\\n\\n\\n\\n#ifdef HAS_NORMAL\\n\\n #ifdef HAS_NORMAL_OCT16P\\n\\n attribute vec2 NORMAL_OCT16P;\\n\\n float signNotZero(float value) {\\n\\n return value >= 0.0 ? 1.0 : -1.0;\\n\\n }\\n\\n vec2 signNotZero(vec2 value) {\\n\\n return vec2(signNotZero(value.x), signNotZero(value.y));\\n\\n }\\n\\n vec3 octDecode(vec2 encoded, float range) {\\n\\n if (encoded.x == 0.0 && encoded.y == 0.0) {\\n\\n return vec3(0.0, 0.0, 0.0);\\n\\n }\\n\\n encoded = encoded / range * 2.0 - 1.0;\\n\\n vec3 v = vec3(encoded.x, encoded.y, 1.0 - abs(encoded.x) - abs(encoded.y));\\n\\n if (v.z < 0.0) {\\n\\n v.xy = (1.0 - abs(v.yx)) * signNotZero(v.xy);\\n\\n }\\n\\n return normalize(v);\\n\\n }\\n\\n vec3 octDecode(vec2 encoded) {\\n\\n return octDecode(encoded, 255.0);\\n\\n }\\n\\n #else\\n\\n attribute vec3 NORMAL;\\n\\n #endif\\n\\n uniform vec3 lightDir;\\n\\n uniform mat3 modelNormalMatrix;\\n\\n uniform mat4 positionMatrix;\\n\\n float getLambertDiffuse(vec3 lightDir, vec3 normal) {\\n\\n return max(dot(-lightDir, normal), 0.0);\\n\\n }\\n\\n#endif\\n\\n#ifdef PICKING_MODE\\n\\n #include \\n\\n#endif\\n\\n#include \\n\\nvoid main() {\\n\\n #ifdef HAS_POSITION\\n\\n vec3 localPos = decode_getPosition(POSITION);\\n\\n #endif\\n\\n gl_Position = projViewModelMatrix * vec4(localPos, 1.0);\\n\\n gl_PointSize = pointSize;\\n\\n\\n\\n #ifdef PICKING_MODE\\n\\n fbo_picking_setData(gl_Position.w, true);\\n\\n #else\\n\\n #if defined(HAS_RGB)\\n\\n vColor = vec4(RGB / 255.0, 1.0) * pointOpacity;\\n\\n #elif defined(HAS_RGBA)\\n\\n vColor = RGBA / 255.0 * pointOpacity;\\n\\n #elif defined(HAS_RGB565)\\n\\n float compressed = RGB565;\\n\\n float r = floor(compressed * SHIFT_RIGHT_11);\\n\\n compressed -= r * SHIFT_LEFT_11;\\n\\n float g = floor(compressed * SHIFT_RIGHT_5);\\n\\n compressed -= g * SHIFT_LEFT_5;\\n\\n float b = compressed;\\n\\n vec3 rgb = vec3(r * NORMALIZE_5, g * NORMALIZE_6, b * NORMALIZE_5);\\n\\n vColor = vec4(rgb, 1.0);\\n\\n #else\\n\\n vColor = pointColor;\\n\\n #endif\\n\\n\\n\\n #ifdef HAS_NORMAL\\n\\n mat3 positionNormalMatrix = mat3(positionMatrix);\\n\\n mat3 normalMatrix = modelNormalMatrix * positionNormalMatrix;\\n\\n #ifdef HAS_NORMAL_OCT16P\\n\\n vec3 localNormal = octDecode(NORMAL_OCT16P);\\n\\n #else\\n\\n vec3 localNormal = NORMAL;\\n\\n #endif\\n\\n vec3 normal = normalize(normalMatrix * localNormal);\\n\\n float colorStrength = getLambertDiffuse(lightDir, normal);\\n\\n colorStrength = max(colorStrength, 0.5);\\n\\n vColor *= colorStrength;\\n\\n #endif\\n\\n #endif\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n}\\n\\n\";\n var Me = new Array(3),\n _e = new Array(3),\n Oe = [40680631590769, 40680631590769, 40408299984661.445];\n function Ae(t, e, n, r) {\n var s = Oe,\n i = Math.cos(n);\n Me[0] = i * Math.cos(e), Me[1] = i * Math.sin(e), Me[2] = Math.sin(n), Ue(Me, Me), te(_e, s, Me);\n var o = Math.sqrt(re(Me, _e));\n var a, c, h;\n return c = _e, h = o, (a = _e)[0] = c[0] / h, a[1] = c[1] / h, a[2] = c[2] / h, ee(Me, Me, r), function (t, e, n) {\n return t[0] = e[0] + n[0], t[1] = e[1] + n[1], t[2] = e[2] + n[2], t;\n }(t, _e, Me);\n }\n var xe = [1 / 6378137, 1 / 6378137, 1 / 6356752.314245179],\n Ie = [1 / 40680631590769, 1 / 40680631590769, 1 / 40408299984661.445],\n Se = new Array(3),\n Ce = new Array(3),\n ke = new Array(3);\n function Ne(t, e) {\n var n = Ie,\n r = function (t, e, n, r, s) {\n var i = e[0],\n o = e[1],\n a = e[2],\n c = n[0],\n h = n[1],\n l = n[2],\n u = i * i * c * c,\n f = o * o * h * h,\n d = a * a * l * l,\n m = u + f + d,\n p = Math.sqrt(1 / m),\n y = ee(Le, e, p);\n if (m < s) return isFinite(p) ? y : void 0;\n var b = r[0],\n g = r[1],\n v = r[2],\n w = Ee;\n w[0] = y[0] * b * 2, w[1] = y[1] * g * 2, w[2] = y[2] * v * 2;\n var T,\n M,\n _,\n O,\n A,\n x,\n I,\n S,\n C,\n k,\n N,\n L = (1 - p) * Pe(e) / (.5 * Pe(w)),\n E = 0;\n do {\n L -= E, _ = 1 / (1 + L * b), O = 1 / (1 + L * g), A = 1 / (1 + L * v), x = _ * _, I = O * O, S = A * A, C = x * _, k = I * O, N = S * A, T = u * x + f * I + d * S - 1, M = u * C * b + f * k * g + d * N * v;\n E = T / (-2 * M);\n } while (Math.abs(T) > Re);\n return t[0] = i * _, t[1] = o * O, t[2] = a * A, t;\n }(Se, e, xe, n, .1);\n var s = oe(Ce, r, n);\n s = Ue(s, s);\n var i = ie(ke, e, r),\n o = Math.atan2(s[1], s[0]),\n a = Math.asin(s[2]),\n c = _t(re(i, e)) * Pe(i);\n return t[0] = Tt(o), t[1] = Tt(a), t[2] = c, t;\n }\n var Le = new Array(3),\n Ee = new Array(3),\n Re = 1e-12;\n function Pe(t) {\n return Zt(t);\n }\n function Ue(t, e) {\n var n = e[0],\n r = e[1],\n s = e[2];\n var i = n * n + r * r + s * s;\n return i > 0 && (i = Math.sqrt(i), t[0] = e[0] / i, t[1] = e[1] / i, t[2] = e[2] / i), t;\n }\n function Be(t, e) {\n return te(e, t, Ie), ne(e, e);\n }\n function Fe(t, e) {\n var n = t[0],\n r = t[1],\n s = Math.cos(r),\n i = s * Math.cos(n),\n o = s * Math.sin(n),\n a = Math.sin(r);\n return e.x = i, e.y = o, e.z = a, ne(e, e);\n }\n var Ge = Object.freeze({\n __proto__: null,\n cartesian3ToDegree: Ne,\n geodeticSurfaceNormal: Be,\n geodeticSurfaceNormalCartographic: Fe,\n normalizeCartesian: Ue,\n radianToCartesian3: Ae });\n\n function De(t, e, n, r) {\n n = n || 0, r = r || n;\n var s = Math.abs(t - e);\n return s <= r || s <= n * Math.max(Math.abs(t), Math.abs(e));\n }\n function je(t, e) {\n var n = \"\";\n for (var _r7 = 0; _r7 < 4; _r7++) {\n var _s6 = t.getUint8(e + _r7);\n n += String.fromCharCode(_s6);\n }\n return n;\n }\n var ze = \"undefined\" != typeof TextDecoder ? new TextDecoder(\"utf-8\") : null;\n function He(t, e, n) {\n var r = new Uint8Array(t, e, n);\n return ze ? JSON.parse(ze.decode(r)) : JSON.parse(At(r));\n }\n function qe(t, e, n) {\n var r = new Uint8Array(t, e, n);\n return ze ? JSON.parse(ze.decode(r)) : JSON.parse(At(r));\n }\n function $e(t, e, n) {\n return {\n offset: e,\n byteLength: n };\n\n }\n function Ve(t, e, n, r) {\n var s = t.byteOffset,\n i = t.componentType,\n o = t.type,\n _We = We(i || \"UNSIGNED_SHORT\"),\n a = _We.ctor,\n c = _We.type,\n h = Ke(o);\n return {\n byteStride: 0,\n byteOffset: s + n,\n itemSize: h,\n count: r * h,\n componentType: c,\n array: new a(e, n + s, r * h) };\n\n }\n function Je(t, e, n, r) {\n var s = Ve(t, e, n, r);\n return s.array.buffer.byteLength !== e.byteLength && (s.array = s.array.slice()), s;\n }\n function Ye(t, e, n, r) {\n var s = t.byteOffset,\n i = t.componentType,\n o = t.type,\n _We2 = We(i || \"UNSIGNED_SHORT\"),\n a = _We2.ctor,\n c = Ke(o),\n h = new a(e, s, n * c);\n return 1 === c ? h[r] : h.subarray(r * c, r * c + c);\n }\n var Ze = {\n \"SCALAR\": 1,\n \"VEC2\": 2,\n \"VEC3\": 3,\n \"VEC4\": 4 };\n\n function Ke(t) {\n return t ? Ze[t] : 1;\n }\n var Xe = {\n \"BYTE\": {\n ctor: Int8Array,\n type: 5120,\n name: \"Int8Array\" },\n\n \"UNSIGNED_BYTE\": {\n ctor: Uint8Array,\n type: 5121,\n name: \"Uint8Array\" },\n\n \"SHORT\": {\n ctor: Int16Array,\n type: 5122,\n name: \"Int16Array\" },\n\n \"UNSIGNED_SHORT\": {\n ctor: Uint16Array,\n type: 5123,\n name: \"Uint16Array\" },\n\n \"INT\": {\n ctor: Int32Array,\n type: 5124,\n name: \"Int32Array\" },\n\n \"UNSIGNED_INT\": {\n ctor: Uint32Array,\n type: 5125,\n name: \"Uint32Array\" },\n\n \"FLOAT\": {\n ctor: Float32Array,\n type: 5126,\n name: \"Float32Array\" },\n\n \"DOUBLE\": {\n ctor: Float64Array,\n type: 5126,\n name: \"Float64Array\" } };\n\n\n function We(t) {\n return Xe[t];\n }\n function Qe(t) {\n for (var _e13 in Xe) if (t === Xe[_e13].ctor) return Xe[_e13].type;\n throw new Error(\"unrecognized ctor:\" + t);\n }\n function tn(t, e, n, r) {\n var s = t,\n i = e.length / 3;\n for (var _t6 = 0; _t6 < i; _t6++) s[3 * _t6] = e[3 * _t6] / 65535 * r[0] + n[0], s[3 * _t6 + 1] = e[3 * _t6 + 1] / 65535 * r[1] + n[1], s[3 * _t6 + 2] = e[3 * _t6 + 2] / 65535 * r[2] + n[2];\n return s;\n }\n function en(t, e, n) {\n var r = t.getUint32(12, !0),\n s = t.getUint32(16, !0),\n i = t.getUint32(20, !0),\n o = t.getUint32(24, !0),\n a = t.buffer;\n var c,\n h = {},\n l = {},\n u = null;\n r > 0 && (h = He(a, e, r), e += r), s > 0 && (c = function (t, e, n) {\n return {\n offset: e,\n byteLength: n };\n\n }(0, e, s), e += s), i > 0 && (l = qe(a, e, i), e += i);\n var f = $e(0, e, o);\n return u = a.slice(f.offset, f.offset + f.byteLength), n.push(u), {\n featureTable: h,\n featureTableBin: c,\n batchTable: l,\n batchTableBin: u };\n\n }\n var nn = {\n up: {\n south: \"east\",\n north: \"west\",\n west: \"south\",\n east: \"north\" },\n\n down: {\n south: \"west\",\n north: \"east\",\n west: \"north\",\n east: \"south\" },\n\n south: {\n up: \"west\",\n down: \"east\",\n west: \"down\",\n east: \"up\" },\n\n north: {\n up: \"east\",\n down: \"west\",\n west: \"up\",\n east: \"down\" },\n\n west: {\n up: \"north\",\n down: \"south\",\n north: \"down\",\n south: \"up\" },\n\n east: {\n up: \"south\",\n down: \"north\",\n north: \"up\",\n south: \"down\" } },\n\n\n rn = {\n north: [-1, 0, 0],\n east: [0, 1, 0],\n up: [0, 0, 1],\n south: [1, 0, 0],\n west: [0, -1, 0],\n down: [0, 0, -1] },\n\n sn = {},\n on = {\n east: [],\n north: [],\n up: [],\n west: [],\n south: [],\n down: [] };\n\n var an = [],\n cn = [],\n hn = [];\n var ln = [0, 0, 0];\n function un(t, e, n) {\n return n[0] = t[0], n[1] = t[1], n[2] = t[2], n[3] = t[3], n[4] = t[4], n[5] = t[5], n[6] = t[6], n[7] = t[7], n[8] = t[8], n[9] = t[9], n[10] = t[10], n[11] = t[11], n[12] = e[0], n[13] = e[1], n[14] = e[2], n[15] = t[15], n;\n }\n var fn = function (t, e) {\n var n = nn[t][e];\n var r;\n var s = t + e;\n return sn[s] ? r = sn[s] : (r = function r(_r8, s, i) {\n if (a = ln, c = (o = _r8)[0], h = o[1], l = o[2], u = a[0], f = a[1], d = a[2], Math.abs(c - u) <= $t * Math.max(1, Math.abs(c), Math.abs(u)) && Math.abs(h - f) <= $t * Math.max(1, Math.abs(h), Math.abs(f)) && Math.abs(l - d) <= $t * Math.max(1, Math.abs(l), Math.abs(d))) Xt(an, rn[t]), Xt(cn, rn[e]), Xt(hn, rn[n]);else if (De(_r8[0], 0, 1e-14) && De(_r8[1], 0, 1e-14)) {\n var _s7 = _t(_r8[2]);\n Xt(an, rn[t]), Xt(cn, rn[e]), ee(cn, cn, _s7), Xt(hn, rn[n]), ee(hn, hn, _s7);\n } else {\n Be(_r8, on.up);\n var _s8 = on.up,\n _i7 = on.east;\n _i7[0] = -_r8[1], _i7[1] = _r8[0], _i7[2] = 0, ne(on.east, _i7), se(on.north, _s8, _i7), ee(on.down, on.up, -1), ee(on.west, on.east, -1), ee(on.south, on.north, -1), an = on[t], cn = on[e], hn = on[n];\n }\n var o, a, c, h, l, u, f, d;\n return i[0] = an[0], i[1] = an[1], i[2] = an[2], i[3] = 0, i[4] = cn[0], i[5] = cn[1], i[6] = cn[2], i[7] = 0, i[8] = hn[0], i[9] = hn[1], i[10] = hn[2], i[11] = 0, i[12] = _r8[0], i[13] = _r8[1], i[14] = _r8[2], i[15] = 1, i;\n }, sn[s] = r), r;\n }(\"east\", \"north\"),\n dn = [],\n mn = [],\n pn = [],\n yn = [],\n bn = [],\n gn = [],\n vn = [],\n wn = {\n x: 0,\n y: 0 },\n\n Tn = {\n x: 0,\n y: 0 },\n\n Mn = Math.PI / 180;\n var _n;\n var On = {\n width: 100,\n height: 10 };\n\n var An = !1;\n try {\n var _t7 = new OffscreenCanvas(1, 1);\n _t7.getContext(\"2d\").fillText(\"hello\", 0, 0), An = !0;\n } catch (t) {\n An = !1;\n }\n function xn() {\n if (!_n) {\n var _t8 = On.width,\n _e14 = On.height;\n An ? _n = new OffscreenCanvas(_t8, _e14) : (_n = document.createElement(\"canvas\"), _n.width = _t8, _n.height = _e14);\n }\n return _n;\n }\n var In = function () {\n function In(t) {\n var e = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _classCallCheck(this, In);\n if (!Array.isArray(t)) return void console.error(\"colors is not array\");\n if (t.length < 2) return void console.error(\"colors.length should >1\");\n this.colors = t;\n var n = 1 / 0,\n r = -1 / 0;\n for (var _e15 = 0, _s9 = t.length; _e15 < _s9; _e15++) {\n var _s10 = t[_e15][0];\n n = Math.min(_s10, n), r = Math.max(_s10, r);\n }\n this.min = n, this.max = r, this.valueOffset = this.max - this.min, this.options = Object.assign({}, On, e), this.o();\n }\n return _createClass(In, [{\n key: \"getImageData\",\n value: function getImageData() {\n return this.imgData;\n } },\n {\n key: \"o\",\n value: function o() {\n var t = xn(),\n _this$options = this.options,\n e = _this$options.width,\n n = _this$options.height;\n t.width = e, t.height = n;\n var r = t.getContext(\"2d\");\n r.clearRect(0, 0, t.width, t.height);\n var s = r.createLinearGradient(0, 0, t.width, 0),\n i = this.colors,\n o = this.valueOffset;\n for (var _t9 = 0, _e16 = i.length; _t9 < _e16; _t9++) {\n var _i$_t = _slicedToArray(i[_t9], 2),\n _e17 = _i$_t[0],\n _n9 = _i$_t[1],\n _r9 = (_e17 - this.min) / o;\n s.addColorStop(_r9, _n9);\n }\n r.fillStyle = s, r.fillRect(0, 0, t.width, t.height), this.imgData = r.getImageData(0, 0, t.width, t.height);\n } },\n {\n key: \"getColor\",\n value: function getColor(t) {\n t = Math.max(this.min, t);\n var e = ((t = Math.min(t, this.max)) - this.min) / this.valueOffset;\n var n = Math.round(e * this.imgData.width);\n n = Math.min(n, this.imgData.width - 1);\n var r = 4 * n;\n return [this.imgData.data[r], this.imgData.data[r + 1], this.imgData.data[r + 2], this.imgData.data[r + 3]];\n } }]);\n\n }();\n var Sn;\n function Cn(t) {\n return null == t;\n }\n function kn(t) {\n return !Cn(t);\n }\n function Nn(t) {\n return \"\" === t;\n }\n function Ln(t, e) {\n var n, r, s;\n if (zn(t)) {\n var i,\n o = t.stops && \"object\" == _typeof(t.stops[0][0]),\n a = o || kn(t.property),\n c = o || !a,\n h = t.type || e || \"exponential\";\n if (\"exponential\" === h) i = Pn;else if (\"interval\" === h) i = Rn;else if (\"categorical\" === h) i = En;else if (\"identity\" === h) i = Fn;else if (\"color-interpolate\" === h) i = Bn;else {\n if (\"calculate-expression\" !== h) throw new Error('Unknown function type \"' + h + '\"');\n i = Gn;\n }\n if (o) {\n var l = {},\n u = [];\n for (var _e18 = 0; _e18 < t.stops.length; _e18++) {\n var f = t.stops[_e18];\n void 0 === l[f[0].zoom] && (l[f[0].zoom] = {\n zoom: f[0].zoom,\n type: t.type,\n property: t.property,\n default: t.default,\n stops: [] }),\n l[f[0].zoom].stops.push([f[0].value, f[1]]);\n }\n for (var _t10 in l) u.push([l[_t10].zoom, Ln(l[_t10])]);\n n = function n(e, _n10) {\n var r = Pn({\n stops: u,\n base: t.base },\n e)(e, _n10);\n return \"function\" == typeof r ? r(e, _n10) : r;\n }, r = !1, s = !1;\n } else c ? (n = function n(e) {\n var n = i(t, e);\n return \"function\" == typeof n ? n(e) : n;\n }, r = !0, s = !1) : (n = function n(e, _n11) {\n var r = i(t, _n11 ? _n11[t.property] : null);\n return \"function\" == typeof r ? r(e, _n11) : r;\n }, r = !1, s = !0);\n } else n = function n() {\n return t;\n }, r = !0, s = !0;\n return n.isZoomConstant = s, n.isFeatureConstant = r, n;\n }\n function En(t, e) {\n for (var _n12 = 0; _n12 < t.stops.length; _n12++) if (e === t.stops[_n12][0]) return t.stops[_n12][1];\n return t.default;\n }\n function Rn(t, e) {\n for (var n = 0; n < t.stops.length && !(e < t.stops[n][0]); n++);\n return t.stops[Math.max(n - 1, 0)][1];\n }\n function Pn(t, e) {\n for (var n = kn(t.base) && !Nn(t.base) ? t.base : 1, r = 0; !(r >= t.stops.length || e <= t.stops[r][0]);) r++;\n return 0 === r ? t.stops[r][1] : r === t.stops.length ? t.stops[r - 1][1] : Dn(e, n, t.stops[r - 1][0], t.stops[r][0], t.stops[r - 1][1], t.stops[r][1]);\n }\n \"function\" == typeof Map && (Sn = new Map());\n var Un = {\n width: 100,\n height: 1 };\n\n function Bn(t, e) {\n var n = t.stops;\n if (n && n.length > 1) {\n var _t11;\n if (Sn) {\n var _e19 = JSON.stringify(n);\n if (!Sn.has(_e19)) {\n var _t12 = new In(n, Un);\n Sn.set(_e19, _t12);\n }\n _t11 = Sn.get(_e19);\n } else _t11 = new In(n, Un);\n var _t11$getColor = _t11.getColor(e),\n _t11$getColor2 = _slicedToArray(_t11$getColor, 4),\n _r10 = _t11$getColor2[0],\n _s11 = _t11$getColor2[1],\n _i8 = _t11$getColor2[2],\n _o2 = _t11$getColor2[3];\n return [_r10 / 255, _s11 / 255, _i8 / 255, _o2 / 255];\n }\n return n && 1 === n.length ? n[0][1] : null;\n }\n function Fn(t, e) {\n return n = e, r = t.default, kn(n) ? n : kn(r) ? r : kn(s) ? s : null;\n var n, r, s;\n }\n function Gn(t, e) {\n var n = String(t.property),\n r = t.expression,\n s = e;\n function i(e) {\n return Cn(e) || Nn(e) || isNaN(e) ? t.default : e;\n }\n if (!kn(e) || Nn(e) || isNaN(e) || e < 0) return i(t.default);\n {\n var _e20 = function t(e, n, r) {\n var s = Number(r),\n i = String(n);\n return Array.isArray(e) ? e.map(function (e) {\n return t(e, i, s);\n }) : e === i ? s : e;\n }(r, n, s);\n return i(function e(n) {\n if (!Array.isArray(n)) {\n if (\"number\" == typeof n) return n;\n throw new Error(\"Invalid expression format\");\n }\n {\n var _r11 = n[0];\n if (![\"+\", \"-\", \"*\", \"/\"].includes(_r11)) throw new Error(\"Unknown operator: \".concat(_r11));\n var _s12 = n.slice(1).map(function (t) {\n return e(t);\n });\n switch (_r11) {\n case \"+\":\n return _s12.reduce(function (t, e) {\n return t + e;\n }, 0);\n case \"-\":\n return _s12.reduce(function (t, e) {\n return t - e;\n });\n case \"*\":\n return _s12.reduce(function (t, e) {\n return t * e;\n }, 1);\n case \"/\":\n return _s12.some(function (t) {\n return 0 === t;\n }) ? t.default : _s12.reduce(function (t, e) {\n return t / e;\n });\n default:\n throw new Error(\"Unsupported operator: \".concat(_r11));}\n\n }\n }(_e20));\n }\n }\n function Dn(t, e, n, r, s, i) {\n return \"function\" == typeof s ? function () {\n var o = s.apply(void 0, arguments),\n a = i.apply(void 0, arguments);\n return Dn(t, e, n, r, o, a);\n } : s.length ? function (t, e, n, r, s, i) {\n var o = [];\n for (var _a = 0; _a < s.length; _a++) o[_a] = jn(t, e, n, r, s[_a], i[_a]);\n return o;\n }(t, e, n, r, s, i) : jn(t, e, n, r, s, i);\n }\n function jn(t, e, n, r, s, i) {\n var o,\n a = r - n,\n c = t - n;\n return s * (1 - (o = 1 === e ? c / a : (Math.pow(e, c) - 1) / (Math.pow(e, a) - 1))) + i * o;\n }\n function zn(t) {\n return t && \"object\" == _typeof(t) && (t.stops || t.property && \"identity\" === t.type || t.expression && \"calculate-expression\" === t.type);\n }\n function Hn(t) {\n return qn(t, \"exponential\");\n }\n function qn(t, e) {\n if (!zn(t)) return function () {\n return t;\n };\n var n = !0,\n r = !0;\n var s = (t = JSON.parse(JSON.stringify(t))).stops;\n if (s) for (var _t13 = 0; _t13 < s.length; _t13++) if (zn(s[_t13][1])) {\n var _i9 = qn(s[_t13][1], e);\n n = n && _i9.isZoomConstant, r = r && _i9.isFeatureConstant, s[_t13] = [s[_t13][0], _i9];\n }\n var i = Ln(t, e);\n return i.isZoomConstant = n && i.isZoomConstant, i.isFeatureConstant = r && i.isFeatureConstant, i;\n }\n var _n$reshader$REGLHelpe = n.reshader.REGLHelper,\n $n = _n$reshader$REGLHelpe.getTextureMagFilter,\n Vn = _n$reshader$REGLHelpe.getTextureMinFilter,\n Jn = _n$reshader$REGLHelpe.getTextureWrap,\n Yn = _n$reshader$REGLHelpe.getMaterialType,\n Zn = _n$reshader$REGLHelpe.getMaterialFormat,\n Kn = _n$reshader$REGLHelpe.getPrimitive,\n Xn = _n$reshader$REGLHelpe.getUniqueREGLBuffer,\n Wn = [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1],\n Qn = [0, 0, 1, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1],\n _n$reshader$pbr$PBRUt = n.reshader.pbr.PBRUtils,\n tr = _n$reshader$pbr$PBRUt.loginIBLResOnCanvas,\n er = _n$reshader$pbr$PBRUt.logoutIBLResOnCanvas,\n nr = _n$reshader$pbr$PBRUt.getIBLResOnCanvas,\n rr = _n$reshader$pbr$PBRUt.getPBRUniforms,\n sr = {\n factor: 0,\n units: 0 },\n\n ir = [1, 1, 1, 1],\n or = [0, 0, 0],\n ar = {\n specularStrength: 0,\n materialShininess: 1 },\n\n cr = [1, 1, 1],\n hr = n.mat4.identity([]),\n lr = [0, 0, 0],\n ur = [0, 0],\n fr = [],\n dr = function dr(t) {\n return t.material instanceof n.reshader.PhongMaterial;\n },\n mr = function mr(t) {\n return t.material instanceof n.reshader.pbr.StandardMaterial;\n },\n pr = [],\n yr = new s.Coordinate(0, 0),\n br = new s.Point(0, 0),\n gr = new s.Point(0, 0),\n vr = new s.Point(0, 0),\n wr = [],\n Tr = [],\n Mr = [],\n _r = [],\n Or = [],\n Ar = [],\n xr = [],\n Ir = [],\n Sr = [],\n Cr = [],\n kr = [],\n Nr = [],\n Lr = [],\n Er = [],\n Rr = {\n \"POSITION\": \"POSITION\",\n \"NORMAL\": \"NORMAL\",\n \"TEXCOORD_0\": \"TEXCOORD_0\",\n \"TEXCOORD_1\": \"TEXCOORD_1\",\n \"COLOR_0\": \"COLOR_0\",\n \"TANGENT\": \"TANGENT\",\n \"_BATCHID\": \"_BATCHID\" },\n\n Pr = [0, 1, 1, 2, 2, 3, 3, 0, 0, 4, 1, 5, 2, 6, 3, 7, 4, 5, 5, 6, 6, 7, 7, 4],\n Ur = function (t, e) {\n var n = 2 * Math.PI / t,\n r = [],\n s = [];\n for (var _s13 = 0; _s13 <= t; _s13++) {\n var _t14 = Math.cos(n * _s13) * e,\n _i10 = Math.sin(n * _s13) * e,\n _o3 = 0;\n r[3 * _s13] = _t14, r[3 * _s13 + 1] = _i10, r[3 * _s13 + 2] = _o3;\n }\n for (var _s14 = t; _s14 <= 2 * t; _s14++) {\n var _t15 = Math.cos(n * _s14) * e,\n _i11 = Math.sin(n * _s14) * e,\n _o4 = 0;\n r[3 * _s14] = _o4, r[3 * _s14 + 1] = _t15, r[3 * _s14 + 2] = _i11;\n }\n for (var _s15 = 2 * t; _s15 <= 3 * t; _s15++) {\n var _t16 = Math.cos(n * _s15) * e,\n _i12 = Math.sin(n * _s15) * e,\n _o5 = 0;\n r[3 * _s15] = _t16, r[3 * _s15 + 1] = _o5, r[3 * _s15 + 2] = _i12;\n }\n var i = r.length / 3 - 1;\n for (var _e21 = 0; _e21 < i; _e21++) _e21 !== t - 1 && _e21 !== 2 * t - 1 && (s[2 * _e21] = _e21, s[2 * _e21 + 1] = _e21 + 1);\n return r.push(0, 0, 0), r.push(e, 0, 0), r.push(0, e, 0), r.push(0, 0, e), s.push(i + 1, i + 2), s.push(i + 1, i + 3), s.push(i + 1, i + 4), {\n vertices: r,\n indices: s };\n\n }(100, 1),\n Br = [0, 0, 0, 1],\n Fr = [1, 1, 1];\n var Gr = function () {\n function Gr(t, e) {\n var _this3 = this;\n _classCallCheck(this, Gr);\n this.h = e, this.u = e.getRenderer().canvas, this.pickingFBO = e.getRenderer().pickingFBO, this.m = t, this.p = new n.reshader.Renderer(t), this.v = {}, this.T = {}, this.M = {}, this._ = {}, this.O = {}, this.A = {}, this.I = new n.reshader.Scene(), this.S = new n.reshader.Scene(), this.C = new n.reshader.Scene(), this.k = new n.reshader.Scene(), this.N = new n.reshader.ResourceLoader(t.texture(2)), this.L = function () {\n var _this3$R;\n for (var _len = arguments.length, t = new Array(_len), _key = 0; _key < _len; _key++) {\n t[_key] = arguments[_key];\n }\n return (_this3$R = _this3.R).call.apply(_this3$R, [_this3].concat(t));\n }, this.P = new n.reshader.KHRTechniquesWebglManager(this.m, this.U(), this.N);\n var r = this.getMap();\n this.B = r.altitudeToPoint(100, r.getGLRes()) / 100;\n }\n return _createClass(Gr, [{\n key: \"getI3DMMeshes\",\n value: function getI3DMMeshes() {\n return this._;\n } },\n {\n key: \"getPNTSMeshes\",\n value: function getPNTSMeshes() {\n return this.M;\n } },\n {\n key: \"getB3DMMeshes\",\n value: function getB3DMMeshes() {\n return this.T;\n } },\n {\n key: \"getPaintedMeshes\",\n value: function getPaintedMeshes() {\n return this.F;\n } },\n {\n key: \"getMap\",\n value: function getMap() {\n return this.h.getMap();\n } },\n {\n key: \"paint\",\n value: function paint(t, e, r) {\n var _this4 = this;\n var s = r && r.renderTarget,\n i = r && r.sceneFilter,\n o = this.getMap();\n if (!t.length || !o) return null;\n var a = this.G(),\n c = o.projViewMatrix,\n h = [],\n l = [],\n f = [],\n d = [],\n m = [];\n for (var _e22 = 0, _s16 = t.length; _e22 < _s16; _e22++) {\n var _s17 = t[_e22].data.node;\n var _i13 = this.D(_s17);\n if (!_i13) continue;\n var _o6 = this.h.j(_s17.H),\n _a2 = _o6.debugNodes,\n _p = _o6.heightOffset || 0,\n _y = _o6.coordOffset || ur;\n this.O[_s17.id] && (_i13 = this.O[_s17.id], _i13 = It(_i13));\n var _b = _o6.polygonOffset || sr;\n bt(_b) && (_b = _b()), Array.isArray(_i13) || (h[0] = _i13, _i13 = h);\n for (var _h = 0, _g = _i13.length; _h < _g; _h++) {\n if (!_i13[_h] || !_i13[_h].isValid || !_i13[_h].isValid()) continue;\n var _g2 = _i13[_h].properties.magic;\n if (_i13[_h].properties.heightOffset === _p && _i13[_h].properties.coordOffset[0] === _y[0] && _i13[_h].properties.coordOffset[1] === _y[1] || (this.q(_i13[_h]), _i13[_h].$ = n.mat4.copy([], _i13[_h].localTransform)), _i13[_h].V = _s17, \"b3dm\" === _g2) {\n if (_i13[_h].getBoundingBox && !u(c, _i13[_h].getBoundingBox())) continue;\n var _i13$_h$geometry$prop = _i13[_h].geometry.properties,\n _t17 = _i13$_h$geometry$prop.batchIdData,\n _e23 = _i13$_h$geometry$prop.batchIdMap;\n if (_t17 && _e23) {\n var _t18 = _i13[_h].properties.node.H;\n this.J && this.J[_t18] ? n.HighlightUtil.highlightMesh(this.m, _i13[_h], this.J[_t18], this.Y, _e23) : this.J && this.J[_t18] || n.HighlightUtil.highlightMesh(this.m, _i13[_h], null, this.Y, _e23), n.HighlightUtil.showOnly(this.m, _i13[_h], this.Z && this.Z[_t18], this.K, _e23);\n }\n if (_a2 && _a2.length && _a2.indexOf(_i13[_h].V.id) < 0) continue;\n r && r.bloom && _i13[_h].properties.hlBloomMesh && (_i13[_h].properties.hlBloomMesh.properties.depthFunc = \"always\", f.push(_i13[_h].properties.hlBloomMesh)), f.push(_i13[_h]);\n } else \"pnts\" === _g2 ? d.push(_i13[_h]) : \"i3dm\" === _g2 && m.push(_i13[_h]);\n _i13[_h].properties.isLeaf = t[_e22].leave, _i13[_h].properties.branchRootId = t[_e22].branchRootId;\n var _v = 255 - t[_e22].selectionDepth;\n _i13[_h].properties.selectionDepth = _v, _i13[_h].properties.polygonOffset = _b;\n var _w = void 0 === _o6.cullFace || !!_o6.cullFace;\n _i13[_h].properties.cullFace = _w;\n var _T = _i13[_h].properties.hlBloomMesh;\n if (_T) {\n var _n13 = _T.properties;\n _n13.branchRootId = t[_e22].branchRootId, _n13.selectionDepth = _v, _n13.polygonOffset = _b, _n13.cullFace = _w;\n }\n t[_e22].leave || l.push(_i13[_h]), this.X(_i13[_h]), this.W(_i13[_h], _s17);\n }\n }\n var p = 0;\n var y = this.P.getExcludeFilter();\n n.ContextUtil.setIncludeUniformValues(a, r), p += this.tt(this.et, a, [i, dr, y], s, l, f, m), p += this.tt(this.nt, a, [i, mr, y], s, l, f, m), this.P.forEachShader(function (t, e, n) {\n var r = _this4.G(n);\n p += _this4.tt(t, r, [i, e], s, l, f, m);\n }), this.S.setMeshes(d);\n var b = this.rt();\n return p += this.p.render(this.st, b, this.S, s && s.fbo), this.F = {\n pntsMeshes: d,\n i3dmMeshes: m,\n b3dmMeshes: f },\n this.k.setMeshes(e), this.p.render(this.it, a, this.k, s && s.fbo), p;\n } },\n {\n key: \"prepareRender\",\n value: function prepareRender(t) {\n this.ot(t);\n } },\n {\n key: \"ot\",\n value: function ot(t) {\n t && t.states && t.states.includesChanged && (this.nt.dispose(), delete this.nt, this.et.dispose(), delete this.et), this.ct(t);\n } },\n {\n key: \"tt\",\n value: function tt(t, e, n, r, s, i, o) {\n t.filter = n.filter(function (t) {\n return !!t;\n }), e.stencilEnable = !1, e.cullFace = \"back\";\n var a = r && r.fbo;\n var c = 0;\n var h = [],\n l = [];\n var u = !1,\n f = i[0] && i[0].properties.branchRootId;\n for (var _n14 = 0; _n14 < i.length; _n14++) {\n var _r12 = i[_n14].properties.branchRootId;\n _r12 !== f && (u ? (l.length && (c += this.ht(t, e, a, !1, l), l.length = 0), c += this.ht(t, e, a, u, h)) : Nt(l, h), f = _r12, u = !1, h.length = 0), h.push(i[_n14]), i[_n14].properties.selectionDepth < 255 && (u = !0), _n14 === i.length - 1 && (u || (Nt(l, h), h.length = 0), l.length && (c += this.ht(t, e, a, !1, l)), c += this.ht(t, e, a, u, h));\n }\n return this.I.setMeshes(i.filter(function (t) {\n return t.properties.isLeaf;\n })), this.C.setMeshes(o), c += this.p.render(t, e, this.C, r && r.fbo), c;\n } },\n {\n key: \"ht\",\n value: function ht(t, e, n, r, s) {\n return s.length ? (this.I.setMeshes(s), e.stencilEnable = !1, r && (this.lt(n), e.stencilEnable = !1, e.cullFace = \"front\", this.p.render(t, e, this.I, n), e.cullFace = \"back\", e.stencilEnable = !0), this.p.render(t, e, this.I, n)) : 0;\n } },\n {\n key: \"lt\",\n value: function lt(t) {\n this.m.clear({\n stencil: 255,\n framebuffer: t });\n\n } },\n {\n key: \"getCurrentB3DMMeshes\",\n value: function getCurrentB3DMMeshes() {\n return this.I.getMeshes();\n } },\n {\n key: \"getCurrentI3DMMeshes\",\n value: function getCurrentI3DMMeshes() {\n return this.C.getMeshes();\n } },\n {\n key: \"ut\",\n value: function ut(t, e) {\n return e.V.ft - t.V.ft;\n } },\n {\n key: \"deleteTile\",\n value: function deleteTile(t) {\n var e = t.node;\n e.dt && (e.dt.geometry.dispose(), e.dt.dispose(), delete e.dt);\n var n = e.id;\n this.yt(n);\n } },\n {\n key: \"yt\",\n value: function yt(t) {\n var e = this.T[t] || this.M[t] || this._[t] || this.O[t] || this.v[t];\n this.O[t] ? this.bt(t) : e && (this.gt(e), delete this.T[t], delete this.M[t], delete this._[t], delete this.v[t]);\n } },\n {\n key: \"bt\",\n value: function bt(t) {\n var e = this.O[t];\n e = It(e);\n for (var _t19 = 0; _t19 < e.length; _t19++) {\n var _n15 = e[_t19].properties.id;\n this.yt(_n15);\n }\n delete this.O[t];\n } },\n {\n key: \"gt\",\n value: function gt(t) {\n if (Array.isArray(t)) for (var _e24 = 0, _n16 = t.length; _e24 < _n16; _e24++) this.gt(t[_e24]);else {\n n.HighlightUtil.showOnly(this.m, t), n.HighlightUtil.highlightMesh(this.m, t);\n var _e25 = t.geometry.properties.url;\n if (_e25) {\n var _n17 = this.A[_e25];\n _n17 && _n17.refMeshes && (_n17.refMeshes.delete(t.uuid), _n17.refMeshes.size || (_n17.geometry.dispose(), _n17.material.dispose(), delete this.A[_e25]));\n } else t.geometry.dispose(), t.material && t.material.dispose();\n t.dispose();\n }\n } },\n {\n key: \"remove\",\n value: function remove() {\n var t = this.h;\n er(t.getRenderer().canvas, t.getMap());\n for (var _t20 in this.O) this.bt(_t20);\n this.O = {};\n for (var _t21 in this.T) this.yt(_t21);\n this.T = {};\n for (var _t22 in this.M) this.yt(_t22);\n this.M = {};\n for (var _t23 in this._) this.yt(_t23);\n this._ = {};\n for (var _t24 in this.v) this.yt(_t24);\n this.v = {}, this.et && (this.et.dispose(), delete this.et), this.nt && (this.nt.dispose(), delete this.nt), this.st && (this.st.dispose(), delete this.st), this.it && (this.it.dispose(), delete this.it), this.P.dispose(), this.picking && this.picking.dispose();\n } },\n {\n key: \"D\",\n value: function D(t) {\n return this.T[t.id] || this.M[t.id] || this._[t.id] || this.O[t.id];\n } },\n {\n key: \"has\",\n value: function has(t) {\n return this.D(t) || this.v[t.id];\n } },\n {\n key: \"q\",\n value: function q(t) {\n var e = t.properties.magic;\n \"b3dm\" === e ? this.vt(t) : \"i3dm\" === e ? this.wt(t) : \"pnts\" === e && this.Tt(t);\n } },\n {\n key: \"createPntsMesh\",\n value: function createPntsMesh(t, e, r, s) {\n if (this.M[e]) {\n var _t25 = this.M[e];\n return console.warn(\"pnts mesh with id(\".concat(e, \") was already created.\")), s(null, {\n id: e,\n mesh: _t25 }),\n _t25;\n }\n var i = t.pnts,\n o = t.featureTable,\n a = t.rootIdx,\n c = t.compressed_int16_params,\n h = o.POINTS_LENGTH;\n i.BATCH_ID || (i.BATCH_ID = new Uint8Array(h), i.BATCH_ID.fill(0));\n var l = new n.reshader.Geometry(i, null, h, {\n static: !0,\n primitive: \"points\",\n positionAttribute: \"POSITION\",\n pickingIdAttribute: \"BATCH_ID\" });\n\n l.generateBuffers(this.m);\n var u = {};\n i.POSITION ? u.HAS_POSITION = 1 : i.POSITION_QUANTIZED && (u.HAS_POSITION_QUANTIZED = 1), i.RGB ? u.HAS_RGB = 1 : i.RGBA ? u.HAS_RGBA = 1 : i.RGB565 && (u.HAS_RGB565 = 1), (i.NORMAL || i.NORMAL_OCT16P) && (u.HAS_NORMAL = 1, i.NORMAL_OCT16P && (u.HAS_NORMAL_OCT16P = 1)), this.Mt(u, c), t.featureTable.CONSTANT_RGBA && (t.featureTable.CONSTANT_RGBA = t.featureTable.CONSTANT_RGBA.map(function (t) {\n return t / 255;\n }));\n var f = t.rtcCenter,\n d = t.rtcCoord,\n m = t.projCenter,\n p = this.h.j(a),\n y = new n.reshader.Mesh(l);\n y.properties.magic = \"pnts\", y.properties.id = e, y.properties.node = r, y.properties.count = h, y.properties.batchTable = t.batchTable, y.properties.batchTableBin = t.batchTableBin, y.properties.serviceIndex = a, y.properties.rtcCoord = d, y.properties.rtcCenter = f, y.properties.projCenter = m, y.setDefines(u), y.setFunctionUniform(\"pointColor\", function () {\n return t.featureTable.CONSTANT_RGBA ? t.featureTable.CONSTANT_RGBA : p && p.pointColor || [1, 1, 1, 1];\n });\n var b = this.getMap();\n var g = null,\n v = null;\n y.setFunctionUniform(\"pointSize\", function () {\n if (!p) return 2;\n if (zn(p.pointSize)) {\n var _t26 = JSON.stringify(p.pointSize);\n _t26 !== g && (v = Hn(p.pointSize), g = _t26);\n return v(b.getZoom());\n }\n return p.pointSize || 2;\n });\n var w = null,\n T = null;\n return y.setFunctionUniform(\"pointOpacity\", function () {\n if (!p) return 1;\n if (zn(p.pointOpacity)) {\n var _t27 = JSON.stringify(p.pointOpacity);\n _t27 !== w && (T = Hn(p.pointOpacity), w = _t27);\n return T(b.getZoom());\n }\n return p.pointOpacity || 1;\n }), this._t(y, c), this.Tt(y), y.$ = n.mat4.copy([], y.localTransform), this.M[e] = y, s(null, {\n id: e,\n mesh: [y] }),\n [y];\n } },\n {\n key: \"Tt\",\n value: function Tt(t) {\n var e = t.localTransform || [],\n _t$properties = t.properties,\n n = _t$properties.rtcCoord,\n r = _t$properties.node,\n s = _t$properties.projCenter;\n this.Ot(e, n, s, r.H), t.setLocalTransform(e);\n } },\n {\n key: \"createI3DMMesh\",\n value: function createI3DMMesh(t, e, r, s) {\n var _this5 = this;\n if (this._[e]) {\n var _t28 = this._[e];\n return console.warn(\"i3dm mesh with id(\".concat(e, \") was already created.\")), this.v[e] || s(null, {\n id: e,\n mesh: _t28 }),\n _t28;\n }\n var i = this.h.j(r.H),\n o = this.At(r.xt),\n a = t.i3dm,\n c = t.featureTable,\n h = t.gltf,\n l = t.batchTable,\n u = t.batchTableBin,\n f = t.count,\n d = c.INSTANCES_LENGTH,\n m = t.rtcCenter,\n p = t.rtcCoord,\n y = t.projCenter,\n b = this.It(_r, r, m, p);\n un(b, lr, b);\n var g = n.mat4.getRotation(Or, b);\n n.quat.normalize(g, g);\n var v = n.mat4.getScaling(Ar, b),\n w = n.mat4.fromScaling(xr, v),\n T = this.St(Ir, y, r),\n M = this.Ct(kr),\n _ = this.kt(Nr, p),\n O = n.vec3.div(Lr, _, M),\n A = n.mat4.fromScaling(Er, O),\n x = a.POSITION,\n I = a.NORMAL_UP,\n S = a.NORMAL_RIGHT,\n C = a.SCALE,\n k = a.SCALE_NON_UNIFORM,\n N = {\n \"instance_vectorA\": new Float32Array(4 * d),\n \"instance_vectorB\": new Float32Array(4 * d),\n \"instance_vectorC\": new Float32Array(4 * d),\n \"aPickingId\": new Uint16Array(d) };\n\n for (var _t29 = 0; _t29 < d; _t29++) N.aPickingId[_t29] = _t29;\n var L = new Float32Array(3),\n E = new Float32Array(3),\n R = [],\n P = new Float32Array(1),\n U = new Float32Array(3),\n B = [],\n F = [],\n G = [],\n D = [];\n !function (t, e) {\n var n = t.byteOffset,\n r = t.byteStride,\n s = t.count;\n var i = t.componentType,\n o = t.itemSize,\n a = t.array.buffer,\n c = i ? le.getTypedArrayCtor(i) : t.array.constructor;\n if (n = void 0 === n ? t.array.byteOffset : n, r = r || 0, s = s || t.array.length / o, (!r || r === o * c.BYTES_PER_ELEMENT) && n % c.BYTES_PER_ELEMENT == 0) {\n var _t30 = new c(a, n, s * o);\n for (var _r13 = 0; _r13 < s * o; _r13 += o) e(new c(_t30.buffer, n + _r13 * c.BYTES_PER_ELEMENT, o), _r13 / o);\n return;\n }\n var h = new Uint8Array(o * c.BYTES_PER_ELEMENT);\n r || (r = o * c.BYTES_PER_ELEMENT);\n for (var _t31 = 0; _t31 < s; _t31++) {\n var _s18 = new Uint8Array(a, r * _t31 + n, o * c.BYTES_PER_ELEMENT);\n h.set(_s18), e(new c(h.buffer), _t31), _s18.set(h);\n }\n }(x, function (t, e) {\n var _n$vec;\n I ? (ve(E, S, e), ve(L, I, e), n.vec3.cross(R, E, L), n.vec3.normalize(R, R), xt(B, E, 0), xt(B, L, 1), xt(B, R, 2), n.quat.fromMat3(F, B), n.quat.normalize(F, F), n.quat.multiply(F, g, F)) : n.quat.identity(F), C ? (ve(P, C, e), n.vec3.set(G, P[0], P[0], P[0])) : k ? (ve(U, k, e), (_n$vec = n.vec3).set.apply(_n$vec, [G].concat(_toConsumableArray(U)))) : n.vec3.set(G, 1, 1, 1), n.mat4.fromRotationTranslationScale(D, F, t, G), we(N.instance_vectorA, e, D, 0), we(N.instance_vectorB, e, D, 1), we(N.instance_vectorC, e, D, 2);\n });\n var j = {};\n for (var _t32 in N) j[_t32] = {\n buffer: this.m.buffer({\n dimension: N[_t32].length / d,\n data: N[_t32] }),\n\n divisor: 1 };\n\n var z = i.shader || \"pbr\";\n var H = 0,\n q = !0;\n var $ = [],\n V = [];\n return ue(h, function (t, s, i, a) {\n var h = _this5.Nt(t, s, i, a, r, !0, z, V),\n g = h.geometry,\n v = h.material;\n v && !v.isReady() && (q = !1, H++);\n var M = new n.reshader.InstancedMesh(j, d, g, v);\n h.refMeshes || (h.refMeshes = new Set(), h.refMeshes.add(M.uuid)), M.properties.magic = \"i3dm\", M.properties.id = e, M.properties.count = f, M.properties.batchTable = l, M.properties.batchTableBin = u, M.properties.serviceIndex = r.H, M.properties.rtcCoord = p, M.properties.rtcCenter = m, M.properties.projCenter = y, M.properties.node = r;\n var _ = _this5.Lt(t, g, v, r.H, a);\n t.compressed_int16_params && _this5._t(M, t.compressed_int16_params), _this5.Et(M, t.attributes);\n var O = n.mat4.identity([]);\n if (t.matrices && t.matrices.length) for (var _e26 = 0; _e26 < t.matrices.length; _e26++) n.mat4.multiply(O, O, t.matrices[_e26]);\n n.mat4.multiply(O, o, O), n.mat4.multiply(O, A, O), c.EAST_NORTH_UP || I ? n.mat4.multiply(O, w, O) : n.mat4.multiply(O, b, O), M.setPositionMatrix(O), _this5.wt(M, T), M.setDefines(_), M.properties.polygonOffset = {\n offset: 0,\n factor: 0 },\n $.push(M), delete t.attributes, M.$ = n.mat4.copy([], M.localTransform);\n }), Dr(V), q ? (this._[e] = $, s(null, {\n id: e,\n mesh: $ })) : (\n this.v[e] = {\n meshes: $,\n count: H },\n $.Rt = s), $;\n } },\n {\n key: \"wt\",\n value: function wt(t, e) {\n var _t$properties2 = t.properties,\n r = _t$properties2.rtcCoord,\n s = _t$properties2.node,\n i = _t$properties2.projCenter;\n e || (e = this.St(Ir, i, s));\n var o = this.h.j(s.H),\n a = t.localTransform || [];\n if (o.coordOffset) {\n var _t33 = this.Pt(_r, s.H, r);\n n.mat4.multiply(a, _t33, e);\n } else n.mat4.copy(a, e);\n t.setLocalTransform(a), t.properties.heightOffset = o.heightOffset || 0, t.properties.coordOffset = o.coordOffset && o.coordOffset.slice(0) || ur;\n } },\n {\n key: \"St\",\n value: function St(t, e, r) {\n n.mat4.fromScaling(t, this.Ct(kr));\n var s = this.Ut(Tr, e, r.H);\n return n.mat4.multiply(t, n.mat4.fromTranslation(Sr, s), t), t;\n } },\n {\n key: \"createB3DMMesh\",\n value: function createB3DMMesh(t, e, r, i) {\n var _this6 = this;\n if (t.gltf && (t.gltf.transferables = null), this.T[e] || this.v[e]) {\n var _t34 = this.T[e];\n return console.warn(\"mesh with id(\".concat(e, \") was already created.\")), this.v[e] || i(null, {\n id: e,\n mesh: _t34 }),\n _t34;\n }\n var o;\n if (r.maxExtent) {\n var _t35 = new s.Extent(r.maxExtent).convertTo(function (t) {\n return _this6._pointToPrj(t);\n });\n o = [_t35.xmin, _t35.ymin, _t35.xmax, _t35.ymax];\n }\n var a = t.gltf,\n c = a.extensions.MAPTALKS_RTC.projCenter,\n _a$extensions$CESIUM_ = a.extensions.CESIUM_RTC,\n h = _a$extensions$CESIUM_.rtcCoord,\n l = _a$extensions$CESIUM_.center,\n u = a.asset.sharePosition,\n f = this.At(r.xt),\n d = this.Bt(Ir, u, h, l, c, r),\n m = this.h.j(r.H);\n var p = m.shader || \"pbr\";\n if (m.unlit) p = \"phong\";else if (a.materials) for (var _t36 = 0; _t36 < a.materials.length; _t36++) if (a.materials[_t36] && a.materials[_t36].extensions && a.materials[_t36].extensions.KHR_materials_unlit) {\n p = \"phong\";\n break;\n }\n var y = [],\n b = [];\n var g = 0,\n v = !0;\n return ue(a, function (s, i, a, w) {\n var T = _this6.Nt(s, i, a, w, r, !1, p, y),\n M = T.geometry,\n _ = T.material;\n _ && !_.isReady() && (v = !1, g++);\n var O = new n.reshader.Mesh(M, _);\n T.refMeshes || (T.refMeshes = new Set(), T.refMeshes.add(O.uuid)), O.properties.magic = \"b3dm\", O.properties.id = e, O.properties.node = r, t.batchTable && (O.properties.batchTable = t.batchTable, O.properties.batchTableBin = t.batchTableBin), O.properties.count = t.featureTable && t.featureTable.BATCH_LENGTH || 0, O.properties.serviceIndex = r.H;\n var A = _this6.Lt(s, M, _, r.H, w);\n O.setDefines(A);\n var x = s.compressUniforms;\n if (x) for (var _t37 in x) O.setUniform(_t37, x[_t37]);\n s.compressed_int16_params && _this6._t(O, s.compressed_int16_params), _this6.Et(O, s.attributes), o && (A.USE_MAX_EXTENT = 1, O.setUniform(\"maxPrjExtent\", o)), O.hasFunctionUniform(\"polygonOpacity\") || O.setFunctionUniform(\"polygonOpacity\", function () {\n return vt(m.opacity) ? m.opacity : 1;\n }), O.hasFunctionUniform(\"polygonFill\") || O.setFunctionUniform(\"polygonFill\", function () {\n return Et([], m.polygonFill || ir);\n }), O.material.hasFunctionUniform(\"hsv\") || O.material.setFunctionUniform(\"hsv\", function () {\n return m.hsv || or;\n });\n var I = n.mat4.identity([]);\n if (u && s.matrices && s.matrices.length) for (var _t38 = 0; _t38 < s.matrices.length; _t38++) n.mat4.multiply(I, I, s.matrices[_t38]);\n u && n.mat4.multiply(I, f, I), O.properties.node = r, O.properties.projCenter = c, O.properties.nodeMatrix = I, O.properties.isSharedPosition = u, O.properties.rtcCoord = h, O.properties.rtcCenter = l, _this6.vt(O, d), b.push(O), delete s.attributes, O.$ = n.mat4.copy([], O.localTransform);\n }), Dr(y), v ? (this.T[e] = b, i(null, {\n id: e,\n mesh: b })) : (\n this.v[e] = {\n meshes: b,\n count: g },\n b.Rt = i), b;\n } },\n {\n key: \"Ft\",\n value: function Ft(t) {\n var e = this.h.Gt(t.id);\n if (!e || t.dt) return;\n var r, s, i, o;\n if (e.obbox) r = e.boxPosition, s = Pr, i = e.boxCenter, o = Fr;else if (e.sphereBox) {\n var _t39 = e.sphereBox[0],\n _n18 = e.sphereBox[1];\n r = Ur.vertices, s = Ur.indices, i = _t39, o = [_n18, _n18, _n18];\n }\n var a = new n.reshader.Geometry({\n POSITION: r },\n s, 0, {\n primitive: \"lines\",\n positionAttribute: \"POSITION\" }),\n\n c = new n.reshader.Mesh(a, new n.reshader.Material({\n lineColor: [.8, .8, .1, 1],\n lineOpacity: 1 })),\n\n h = [];\n n.mat4.fromRotationTranslationScale(h, Br, i, o), c.localTransform = h, c.$ = n.mat4.copy([], h), c.properties.node = t, t.dt = c;\n } },\n {\n key: \"Dt\",\n value: function Dt(t) {\n t.dt && (t.dt.geometry.dispose(), t.dt.dispose(), delete t.dt);\n } },\n {\n key: \"_t\",\n value: function _t(t, e) {\n e.POSITION && t.setUniform(\"compressedPositionRange\", e.POSITION), e.TEXCOORD_0 && t.setUniform(\"compressedTexcoordRange_0\", e.TEXCOORD_0), e.TEXCOORD_1 && t.setUniform(\"compressedTexcoordRange_1\", e.TEXCOORD_0), e.NORMAL && t.setUniform(\"compressedNormalRange\", e.NORMAL), e.TANGENT && t.setUniform(\"compressedTangentRange\", e.TANGENT), e.compressed_ratio && t.setUniform(\"compressed_ratio\", e.compressed_ratio);\n } },\n {\n key: \"vt\",\n value: function vt(t, e) {\n var _t$properties3 = t.properties,\n r = _t$properties3.isSharedPosition,\n s = _t$properties3.rtcCoord,\n i = _t$properties3.rtcCenter,\n o = _t$properties3.projCenter,\n a = _t$properties3.nodeMatrix,\n c = _t$properties3.node;\n e || (e = this.Bt(e || Ir, r, s, i, o, c));\n var h = t.localTransform || n.mat4.identity([]);\n n.mat4.multiply(h, e, a);\n var l = this.h.j(c.H);\n if (l.coordOffset) {\n var _t40 = this.Pt(_r, c.H, s);\n n.mat4.multiply(h, _t40, h);\n }\n t.setLocalTransform(h), t.properties.heightOffset = l.heightOffset || 0, t.properties.coordOffset = l.coordOffset && l.coordOffset.slice(0) || ur;\n } },\n {\n key: \"Bt\",\n value: function Bt(t, e, r, s, i, o) {\n if (e) {\n var _e27 = this.kt(Nr, r),\n _i14 = n.mat4.fromScaling(Mr, _e27),\n _a3 = this.It(_r, o, s, r);\n n.mat4.multiply(t, _a3, _i14);\n } else this.Ot(t, r, i, o.H);\n return t;\n } },\n {\n key: \"Et\",\n value: function Et(t, e) {\n if (e && e.TEXCOORD_0 && e.TEXCOORD_0.extensions && e.TEXCOORD_0.extensions.WEB3D_quantized_attributes) {\n var _n19 = e.TEXCOORD_0.extensions.WEB3D_quantized_attributes.decodeMatrix;\n t.setUniform(\"decodeMatrix\", _n19);\n }\n } },\n {\n key: \"It\",\n value: function It(t, e, r, s) {\n var i = this.getMap(),\n o = this.h.j(e.H).heightOffset || 0,\n a = e.matrix ? n.mat4.copy(t, e.matrix) : n.mat4.identity(t);\n if (r) {\n un(a, n.vec3.transformMat4(pr, r, a), a);\n }\n var c = function (t, e, n, r, s, i, o) {\n e = Xt(dn, e);\n var a = Ae(dn, e[0] * Mn, e[1] * Mn, e[2]),\n c = function (t, e) {\n return t[0] = e[12], t[1] = e[13], t[2] = e[14], t;\n }(mn, n),\n h = r.ellipsoid;\n var l;\n l = 0 === ae(c) ? Wt(pn, 0, 0, -6378137) : Ne(pn, c), wn.x = l[0], wn.y = l[1];\n var u = r.project(wn, Tn);\n yn[0] = u.x / s, yn[1] = u.y / s, yn[2] = (l[2] + o) * i;\n var f = fn(a, h, bn),\n d = function (t, e) {\n var n = e[0],\n r = e[1],\n s = e[2],\n i = e[3],\n o = e[4],\n a = e[5],\n c = e[6],\n h = e[7],\n l = e[8],\n u = e[9],\n f = e[10],\n d = e[11],\n m = e[12],\n p = e[13],\n y = e[14],\n b = e[15],\n g = n * a - r * o,\n v = n * c - s * o,\n w = n * h - i * o,\n T = r * c - s * a,\n M = r * h - i * a,\n _ = s * h - i * c,\n O = l * p - u * m,\n A = l * y - f * m,\n x = l * b - d * m,\n I = u * y - f * p,\n S = u * b - d * p,\n C = f * b - d * y,\n k = g * C - v * S + w * I + T * x - M * A + _ * O;\n return k ? (k = 1 / k, t[0] = (a * C - c * S + h * I) * k, t[1] = (s * S - r * C - i * I) * k, t[2] = (p * _ - y * M + b * T) * k, t[3] = (f * M - u * _ - d * T) * k, t[4] = (c * x - o * C - h * A) * k, t[5] = (n * C - s * x + i * A) * k, t[6] = (y * w - m * _ - b * v) * k, t[7] = (l * _ - f * w + d * v) * k, t[8] = (o * S - a * x + h * O) * k, t[9] = (r * x - n * S - i * O) * k, t[10] = (m * M - p * w + b * g) * k, t[11] = (u * w - l * M - d * g) * k, t[12] = (a * A - o * I - c * O) * k, t[13] = (n * I - r * A + s * O) * k, t[14] = (p * v - m * T - y * g) * k, t[15] = (l * T - u * v + f * g) * k, t) : null;\n }(gn, f),\n m = function (t, e) {\n return t[0] = e[0], t[1] = e[1], t[2] = e[2], t[3] = e[4], t[4] = e[5], t[5] = e[6], t[6] = e[8], t[7] = e[9], t[8] = e[10], t;\n }(vn, n);\n return un(function (t, e, n) {\n var r = t[0],\n s = t[1],\n i = t[2],\n o = t[4],\n a = t[5],\n c = t[6],\n h = t[8],\n l = t[9],\n u = t[10],\n f = e[0],\n d = e[1],\n m = e[2],\n p = e[3],\n y = e[4],\n b = e[5],\n g = e[6],\n v = e[7],\n w = e[8],\n T = r * f + o * d + h * m,\n M = s * f + a * d + l * m,\n _ = i * f + c * d + u * m,\n O = r * p + o * y + h * b,\n A = s * p + a * y + l * b,\n x = i * p + c * y + u * b,\n I = r * g + o * v + h * w,\n S = s * g + a * v + l * w,\n C = i * g + c * v + u * w;\n return n[0] = T, n[1] = M, n[2] = _, n[3] = 0, n[4] = O, n[5] = A, n[6] = x, n[7] = 0, n[8] = I, n[9] = S, n[10] = C, n[11] = 0, n[12] = t[12], n[13] = t[13], n[14] = t[14], n[15] = t[15], n;\n }(d, m, t), yn, t), t;\n }(a, s, a, i.getProjection(), i.getGLRes(), this.B, o),\n h = function (t, e) {\n return Wt(t, e[12], e[13], e[14]), t;\n }(Tr, c);\n var l = this.h.options.offset;\n if (bt(l)) {\n var _t41 = this.h.Gt(e.id).boxCoord;\n l = l.call(this.h, _t41);\n }\n return n.vec3.set(wr, l[0], l[1], 0), n.vec3.sub(h, h, wr), un(c, h, c), c;\n } },\n {\n key: \"Pt\",\n value: function Pt(t, e, r) {\n var s = this.h.j(e);\n if (!s.coordOffset) return null;\n var i = this.getMap(),\n o = i.getGLRes();\n yr.set(r[0], r[1]);\n var a = i.coordToPointAtRes(yr, o, gr),\n c = s.coordOffset,\n h = yr.set(r[0] + c[0], r[1] + c[1]),\n l = i.coordToPointAtRes(h, o, vr),\n u = l.x - a.x,\n f = l.y - a.y,\n d = this.B,\n m = n.vec3.set(wr, u, f, (c[2] || 0) * d);\n return n.mat4.fromTranslation(t, m);\n } },\n {\n key: \"createCMPTMesh\",\n value: function createCMPTMesh(t, e, n, r) {\n if (this.O[e]) {\n var _t42 = this.O[e];\n return console.warn(\"mesh with id(\".concat(e, \") was already created.\")), r(null, {\n id: e,\n mesh: _t42 }),\n _t42;\n }\n var s = t.content,\n i = [];\n for (var _t43 = 0; _t43 < s.length; _t43++) {\n var _r14 = s[_t43].magic,\n _o7 = e + \".\" + _t43;\n \"b3dm\" === _r14 ? this.createB3DMMesh(s[_t43], _o7, n, function (t, _ref2) {\n var e = _ref2.mesh;\n i.push(e);\n }) : \"i3dm\" === _r14 ? this.createI3DMMesh(s[_t43], _o7, n, function (t, _ref3) {\n var e = _ref3.mesh;\n i.push(e);\n }) : \"pnts\" === _r14 ? this.createPntsMesh(s[_t43], _o7, n, function (t, _ref4) {\n var e = _ref4.mesh;\n i.push(e);\n }) : \"cmpt\" === _r14 && this.createCMPTMesh(s[_t43], _o7, n, function (t, _ref5) {\n var e = _ref5.mesh;\n i.push(e);\n });\n }\n return this.O[e] = i, r(null, {\n id: e,\n mesh: i }),\n i;\n } },\n {\n key: \"Lt\",\n value: function Lt(t, e, n, r, s) {\n var i = (\"phong\" === (this.h.j(r).shader || \"pbr\") ? this.et : this.nt).getGeometryDefines(e);\n s.asset && \"S3M\" === s.asset.generator && this.jt(i, e), e.data.uvRegion && (i.HAS_I3S_UVREGION = 1), e.data[e.desc.normalAttribute] && (i.VertexNormal = 1), e.data[e.desc.color0Attribute] && (i.VertexColor = 1), e.data[e.desc.uv0Attribute] && (i.TexCoord = 1), e.data[e.desc.textureCoordMatrixAttribute] && (i.HAS_TextureCoordMatrix = 1), n.get(\"uTexture\") && (i.COMPUTE_TEXCOORD = 1), n.get(\"uTexture2\") && (i.TexCoord2 = 1), \"MESHOPT\" === this.h.zt && (i.MeshOPT_Compress = 1), this.hasIBL() && (i.HAS_IBL_LIGHTING = 1), t.attributes && t.attributes.TEXCOORD_0 && \"WEB3D_quantized_attributes\" === t.attributes.TEXCOORD_0.extensions && (i.HAS_WEB3D_quantized_attributes_TEXCOORD = 1), i.HAS_MIN_ALTITUDE = 1, i.HAS_LAYER_OPACITY = 1, this.Mt(i, t.compressed_int16_params);\n return yt(i, t.compressDefines), i;\n } },\n {\n key: \"Mt\",\n value: function Mt(t, e) {\n e && Object.keys(e).length > 0 && (t.HAS_COMPRESSED_INT16 = 1, e.POSITION && (t.HAS_COMPRESSED_INT16_POSITION = 1), e.TEXCOORD_0 && (t.HAS_COMPRESSED_INT16_TEXCOORD_0 = 1), e.TEXCOORD_1 && (t.HAS_COMPRESSED_INT16_TEXCOORD_1 = 1), e.NORMAL && (t.HAS_COMPRESSED_INT16_NORMAL = 1), e.TANGENT && (t.HAS_COMPRESSED_INT16_TANGENT = 1), e.compressed_ratio && (t.HAS_COMPRESSED_INT16_RATIO = 1));\n } },\n {\n key: \"X\",\n value: function X(t) {\n var e = this.h.getRenderer();\n e && e.updateMaskDefines(t);\n } },\n {\n key: \"jt\",\n value: function jt(t, e) {\n e.data.aNormal && (t.VertexNormal = 1), e.data.instanceId && (t.Instance = 1), e.data.aTexCoord0 && (t.TexCoord = 1), e.data.aColor && (t.VertexColor = 1), e.data.aTexCoord1 && (t.TexCoord2 = 1), e.data.uv2 && (t.InstanceBim = 1);\n } },\n {\n key: \"Nt\",\n value: function Nt(t, e, r, s, i, o, a, c) {\n var _this7 = this;\n var h = !1;\n s.asset && \"S3M\" === s.asset.generator && (h = !0, s.extensions = s.extensions || {});\n var l = s.url + \"-\" + e + \"-\" + r;\n if (this.A[l]) return this.A[l];\n var u, f;\n c.push(t);\n var d = s.materials && s.materials[t.material],\n m = s.extensions && s.extensions.KHR_techniques_webgl,\n p = this.h.j(i.H);\n if (m && d.extensions && d.extensions.KHR_techniques_webgl) {\n var _e28 = this.Ht(t, s, o, h);\n u = _e28.material, f = _e28.geometry, p.fillEmptyDataInMissingAttribute && (f.desc.fillEmptyDataInMissingAttribute = !0);\n } else {\n f = this.qt(t, o, Rr);\n var _e29 = p.material;\n u = this.$t(t.material, s, a, _e29 || ar, c, p);\n }\n u && (u.setFunctionUniform(\"alphaTest\", function () {\n var t = p.alphaTest;\n return pt(t) ? .1 : t;\n }), u.setFunctionUniform(\"environmentExposure\", function () {\n var t = p.ambientLight;\n var e = p.environmentExposure;\n var n = _this7.getMap().getLightManager(),\n r = n && n.getAmbientLight();\n if (t && (!r || r.color) && void 0 === e) {\n var _n20 = r && r.color ? r.color[0] : .2;\n e = t[0] / _n20;\n }\n return e || 1;\n })), u && !u.isReady() ? u.Vt = i.id : u || (u = new n.reshader.PhongMaterial({\n \"baseColorFactor\": [1, 1, 1, 1] }));\n\n var y = {\n geometry: f,\n material: u };\n\n return f.properties.url = l, this.A[l] = y, y;\n } },\n {\n key: \"Ht\",\n value: function Ht(t, e, n, r) {\n var _this$P$createMesh = this.P.createMesh(t, e, n, r),\n s = _this$P$createMesh.geometry,\n i = _this$P$createMesh.material;\n return {\n geometry: s,\n material: i };\n\n } },\n {\n key: \"qt\",\n value: function qt(t, e, r) {\n var s = t.attributes,\n i = \"COLOR_0\";\n var o = s._BATCHID && s._BATCHID.array;\n if (o && o.byteOffset && (o = new o.constructor(o)), s[i]) {\n var _t44 = s[i].array || s[i];\n if (_t44 instanceof Float32Array) {\n var _e30 = new Uint8Array(_t44.length);\n for (var _n21 = 0; _n21 < _e30.length; _n21++) _e30[_n21] = Math.round(255 * _t44[_n21]);\n s[i].array ? (s[i].array = _e30, s[i].componentType = 5121) : s[i] = _e30;\n }\n }\n var a = {};\n for (var _t45 in s) {\n var _e31 = Xn(this.m, s[_t45], {\n dimension: s[_t45].itemSize }),\n\n _n22 = r[_t45] || _t45;\n a[_n22] = {\n buffer: _e31 },\n s[_t45].quantization && (a[_n22].quantization = s[_t45].quantization), _n22 === r.POSITION && (a[_n22].array = s[_t45].array, a[_n22].min = s[_t45].min, a[_n22].max = s[_t45].max);\n }\n var c = t.indices ? t.indices.array ? t.indices.array.slice() : t.indices : null,\n h = new n.reshader.Geometry(a, c, 0, {\n positionAttribute: r.POSITION,\n normalAttribute: r.NORMAL,\n uv0Attribute: r.TEXCOORD_0,\n uv1Attribute: r.TEXCOORD_1,\n color0Attribute: r.COLOR_0,\n tangentAttribute: r.TANGENT,\n pickingIdAttribute: r._BATCHID,\n primitive: void 0 === t.mode ? \"triangles\" : Kn(t.mode) });\n\n return o && c && (h.properties.batchIdData = o, h.properties.batchIdMap = function (t, e) {\n if (!e) return null;\n var n = new Map();\n for (var _r15 = 0; _r15 < e.length; _r15++) {\n var _s19 = e[_r15],\n _i15 = t[_s19];\n var _o8 = n.get(_i15);\n _o8 || (_o8 = [], n.set(_i15, _o8)), _o8.push(_s19);\n }\n return n;\n }(o, c)), h.generateBuffers(this.m, {\n excludeElementsInVAO: e }),\n h;\n } },\n {\n key: \"Ot\",\n value: function Ot(t, e, r, s) {\n var i = n.mat4.identity(t),\n o = this.Ct(cr);\n return this.Ut(Tr, r, s), n.mat4.translate(i, i, Tr), n.mat4.scale(i, i, o), i;\n } },\n {\n key: \"Ut\",\n value: function Ut(t, e, r) {\n var s = this.B;\n yr.x = e[0], yr.y = e[1];\n var i = this._prjToPoint(yr);\n var o = this.h.options.offset;\n bt(o) && (o = o.call(this.h, yr));\n var a = this.h.j(r).heightOffset || 0;\n return n.vec3.set(t, i.x - o[0], i.y - o[1], s * e[2] + s * a), t;\n } },\n {\n key: \"W\",\n value: function W(t, e) {\n var r = this.h.Jt(Cr, e);\n t.localTransform = n.mat4.multiply(t.localTransform, r, t.$);\n } },\n {\n key: \"kt\",\n value: function kt(t, e) {\n var r = this.getMap();\n yr.x = e[0], yr.y = e[1];\n var s = r.distanceToPointAtRes(100, 100, r.getGLRes(), yr),\n i = this.B;\n return n.vec3.set(t, s.x / 100, s.y / 100, i), t;\n } },\n {\n key: \"ct\",\n value: function ct(t) {\n var _this8 = this;\n if (this.nt) return;\n var e = {\n x: 0,\n y: 0,\n width: function width() {\n return _this8.u ? _this8.u.width : 1;\n },\n height: function height() {\n return _this8.u ? _this8.u.height : 1;\n } },\n\n r = [],\n s = [];\n this.st = new n.reshader.MeshShader({\n vert: Te,\n frag: \"#define SHADER_NAME PNTS\\n\\nprecision mediump float;\\n\\n\\n\\nvarying vec4 vColor;\\n\\n\\n\\nvoid main() {\\n\\n vec2 circCoord = 2.0 * gl_PointCoord - 1.0;\\n\\n if (dot(circCoord, circCoord) > 1.0) {\\n\\n discard;\\n\\n } else {\\n\\n gl_FragColor = vColor;\\n\\n }\\n\\n}\\n\\n\",\n uniforms: [{\n name: \"projViewModelMatrix\",\n type: \"function\",\n fn: function fn(t, e) {\n return n.mat4.multiply(s, e.projViewMatrix, e.modelMatrix);\n } },\n {\n name: \"modelNormalMatrix\",\n type: \"function\",\n fn: function fn(t, e) {\n return n.mat3.fromMat4(r, e.modelMatrix);\n } }],\n\n extraCommandProps: {\n viewport: e,\n blend: {\n enable: !0,\n func: {\n src: \"one\",\n dst: \"one minus src alpha\" },\n\n equation: \"add\" },\n\n depth: {\n enable: !0,\n func: \"<\" } } });\n\n\n\n var i = {},\n o = [];\n n.ContextUtil.fillIncludes(i, o, t);\n var a = this.U();\n this.et = new n.reshader.PhongShader({\n uniforms: o,\n defines: i,\n extraCommandProps: a }),\n this.nt = new n.reshader.pbr.StandardShader({\n uniforms: o,\n defines: i,\n extraCommandProps: a }),\n this.it = new n.reshader.EdgeShader({\n extraCommandProps: {\n viewport: {\n x: 0,\n y: 0,\n width: function width() {\n return _this8.u ? _this8.u.width : 1;\n },\n height: function height() {\n return _this8.u ? _this8.u.height : 1;\n } },\n\n blend: {\n enable: !0,\n func: {\n srcRGB: \"src alpha\",\n srcAlpha: 1,\n dstRGB: \"one minus src alpha\",\n dstAlpha: \"one minus src alpha\" },\n\n equation: \"add\" } } });\n\n\n\n var c = this.h;\n tr(c.getRenderer().canvas, this.m, c.getMap()), this.picking = new n.reshader.FBORayPicking(this.p, {\n vert: this.nt.vert,\n extraCommandProps: a,\n uniforms: this.nt.uniforms,\n defines: {\n \"PICKING_MODE\": 1,\n \"ENABLE_PICKING\": 1,\n \"HAS_PICKING_ID\": 1 } },\n\n this.pickingFBO, this.getMap()), this.Yt = new n.reshader.FBORayPicking(this.p, {\n vert: Te,\n extraCommandProps: a,\n uniforms: this.st.uniforms,\n defines: {\n \"PICKING_MODE\": 1,\n \"ENABLE_PICKING\": 1,\n \"HAS_PICKING_ID\": 1 } },\n\n this.pickingFBO, this.getMap());\n } },\n {\n key: \"U\",\n value: function U() {\n var _this9 = this;\n return {\n viewport: {\n x: 0,\n y: 0,\n width: function width() {\n return _this9.u ? _this9.u.width : 1;\n },\n height: function height() {\n return _this9.u ? _this9.u.height : 1;\n } },\n\n cull: {\n enable: function enable(t, e) {\n return e.meshProperties.cullFace;\n },\n face: function face(t, e) {\n return e.cullFace || \"back\";\n } },\n\n stencil: {\n enable: function enable(t, e) {\n return e.stencilEnable;\n },\n func: {\n cmp: \"<=\",\n ref: function ref(t, e) {\n return e.meshProperties.selectionDepth;\n } },\n\n opFront: {\n fail: \"keep\",\n zfail: \"keep\",\n zpass: \"replace\" },\n\n opBack: {\n fail: \"keep\",\n zfail: \"keep\",\n zpass: \"replace\" } },\n\n\n depth: {\n enable: !0,\n func: function func(t, e) {\n return e.meshProperties.depthFunc || \"<=\";\n } },\n\n blend: {\n enable: !0,\n func: {\n src: 1,\n dst: \"one minus src alpha\" },\n\n equation: \"add\" },\n\n polygonOffset: {\n enable: !0,\n offset: function offset(t, e) {\n return e.meshProperties.polygonOffset;\n } } };\n\n\n } },\n {\n key: \"rt\",\n value: function rt(t) {\n var e = this.getMap(),\n r = e.getLightManager(),\n s = (r && r.getDirectionalLight() || {}).direction || [1, 1, -1],\n i = t && t.pointOpacity || 1;\n return {\n projViewMatrix: e.projViewMatrix,\n pointOpacity: i,\n lightDir: n.vec3.normalize(fr, s) };\n\n } },\n {\n key: \"G\",\n value: function G() {\n var t = this.getMap(),\n e = this.h,\n n = e.getRenderer().canvas,\n _nr = nr(n),\n r = _nr.iblTexes,\n s = _nr.dfgLUT,\n i = rr(t, r, s),\n o = this.h.getRenderer(),\n a = o.getMaskUniforms();\n i.minAltitude = e.options.altitude || 0;\n var c = o.canvas.gl && o.canvas.gl.wrap ? e.options.opacity || 0 : 1;\n return i.layerOpacity = c, yt(i, {\n czm_lightDirectionEC: i.light0_viewDirection,\n lightSpecular: [1, 1, 1],\n viewMatrix: t.viewMatrix,\n projMatrix: t.projMatrix,\n projViewMatrix: t.projViewMatrix,\n outSize: [n.width, n.height],\n polygonFill: [1, 1, 1, 1],\n polygonOpacity: 1 }),\n yt(i, a), i;\n } },\n {\n key: \"$t\",\n value: function $t(t, e, r, s, i, o) {\n var a = e.materials && e.materials[t];\n if (!a || !a.baseColorTexture && !a.pbrMetallicRoughness) return null;\n var c = yt({}, s);\n if (a.baseColorTexture) {\n var _t46 = e.textures[a.baseColorTexture.index];\n var _n23;\n _t46 && !_t46.image.color && (_n23 = this.Zt(_t46, i)), c.baseColorFactor = _t46 && _t46.image.color || a.baseColorFactor || [1, 1, 1, 1], _n23 && (c.baseColorTexture = _n23);\n } else {\n if (a.normalTexture) {\n var _t47 = this.Zt(e.textures[a.normalTexture.index], i);\n if (_t47) {\n var _e32 = a.normalTexture.scale || 1;\n c.normalTexture = _t47, c.normalMapFactor = _e32;\n }\n }\n if (a.occlusionTexture) {\n var _t48 = this.Zt(e.textures[a.occlusionTexture.index], i);\n if (_t48) {\n var _e33 = a.occlusionTexture.strength || 1;\n c.occlusionTexture = _t48, c.occlusionFactor = _e33;\n }\n }\n if (a.emissiveTexture) {\n var _t49 = this.Zt(e.textures[a.emissiveTexture.index], i);\n _t49 && (c.emissiveTexture = _t49);\n }\n a.emissiveFactor && (c.emissiveFactor = a.emissiveFactor);\n var _t50 = a.pbrMetallicRoughness;\n if (_t50) {\n if (_t50.baseColorFactor && (c.baseColorFactor = _t50.baseColorFactor), _t50.baseColorTexture && void 0 !== _t50.baseColorTexture.index) {\n var _r16 = e.textures[_t50.baseColorTexture.index];\n if (_r16 && _r16.image && _r16.image.color) c.baseColorFactor = c.baseColorFactor ? n.vec4.multiply(c.baseColorFactor, c.baseColorFactor, _r16.image.color) : _r16.image.color;else {\n var _t51 = this.Zt(_r16, i);\n _t51 && (c.baseColorTexture = _t51, c.baseColorTexture.getREGLTexture(this.m));\n }\n }\n if (pt(_t50.metallicFactor) || (c.metallicFactor = _t50.metallicFactor), pt(_t50.roughnessFactor) || (c.roughnessFactor = _t50.roughnessFactor), a.metallicRoughnessTexture) {\n var _t52 = this.Zt(e.textures[a.metallicRoughnessTexture.index], i);\n _t52 && (c.metallicRoughnessTexture = _t52);\n }\n }\n }\n if (a.s3mMaterial) return new n.reshader.Material(c);\n if (o.unlit || a.extensions && a.extensions.KHR_materials_unlit) {\n c.ambientColor = [1, 1, 1], c.light0_diffuse = [0, 0, 0, 0], c.lightSpecular = [0, 0, 0];\n var _t53 = new n.reshader.PhongMaterial(c);\n return _t53.unlit = void 0 === o.unlit || !!o.unlit, _t53;\n }\n var h = new n.reshader.pbr.StandardMaterial(c);\n \"phong\" === r && (h = n.reshader.PhongMaterial.convertFrom(h));\n var l = a.pbrMetallicRoughness,\n u = l && l.baseColorTexture && l.baseColorTexture.extensions;\n return u && u.KHR_texture_transform && (h.set(\"khr_offset\", u.KHR_texture_transform.offset || [0, 0]), h.set(\"khr_rotation\", u.KHR_texture_transform.rotation || 0), h.set(\"khr_scale\", u.KHR_texture_transform.scale || [1, 1])), h.doubleSided = !(!o.doubleSided && !a.doubleSided), h.once(\"complete\", this.L), h;\n } },\n {\n key: \"Zt\",\n value: function Zt(t, e) {\n if (!t) return null;\n var r = {\n type: t.type ? Yn(t.type) : \"uint8\",\n format: t.format ? Zn(t.format) : \"rgba\",\n flipY: !!t.flipY },\n\n s = t.image;\n if (e.push(s), s.array ? r.data = s.array : s.mipmap && (r.mipmap = s.mipmap), !r.data && !r.mipmap) return null;\n if (r.width = s.width, r.height = s.height, r.mipmap && (r.width < 4 || r.height < 4)) return null;\n var i = t.sampler || t.texture && t.texture.sampler;\n return i && (i.magFilter && (r.mag = $n(i.magFilter)), i.minFilter && (r.min = Vn(i.minFilter)), i.wrapS && (r.wrapS = Jn(i.wrapS)), i.wrapT && (r.wrapT = Jn(i.wrapT))), new n.reshader.Texture2D(r, this.N);\n } },\n {\n key: \"R\",\n value: function R(_ref6) {\n var t = _ref6.target;\n var e = t.Vt,\n n = this.v[e];\n if (n.count--, !n.count) {\n var _t54 = n.meshes;\n this.T[e] = _t54, delete this.v[e];\n var _r17 = _t54.Rt;\n delete _t54.Rt, _r17(null, {\n mesh: n.meshes,\n id: e });\n\n }\n } },\n {\n key: \"Ct\",\n value: function Ct(t) {\n var e = 1 / this.getMap().getGLRes(),\n n = this.B;\n return t[0] = t[1] = e, t[2] = n, t;\n } },\n {\n key: \"Kt\",\n value: function Kt(t) {\n return this.h.Kt(t);\n } },\n {\n key: \"_pointToPrj\",\n value: function _pointToPrj(t) {\n var e = this.getMap();\n return e.getGLZoom ? e._pointToPrj(t, e.getGLZoom()) : e._pointToPrjAtRes(t, e.getGLRes());\n } },\n {\n key: \"_prjToPoint\",\n value: function _prjToPoint(t) {\n var e = this.getMap();\n return e.getGLZoom ? e._prjToPoint(t, e.getGLZoom()) : e._prjToPointAtRes(t, e.getGLRes(), br);\n } },\n {\n key: \"At\",\n value: function At(t) {\n return \"Y\" === t ? Wn : \"X\" === t ? Qn : hr;\n } },\n {\n key: \"pick\",\n value: function pick(t, e) {\n var n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 3;\n var r = this.h;\n if (!r || !r.options.picking) return [];\n if (!this.pickingFBO || !this.picking) return [];\n var s = [],\n i = this.G(),\n o = this.Xt(this.picking, i, this.I, t, e, n);\n o && s.push(o);\n var a = this.Xt(this.picking, i, this.C, t, e, n);\n a && s.push(a);\n var c = this.rt(),\n h = this.Xt(this.Yt, c, this.S, t, e, n);\n return h && s.push(h), s;\n } },\n {\n key: \"Xt\",\n value: function Xt(t, e, n, r, s, i) {\n if (!n.getMeshes().length) return null;\n var o = this.h,\n a = this.getMap();\n t.render(n.getMeshes().filter(function (t) {\n return !t.bloom;\n }), e, !0);\n var c = {};\n t.getRenderedMeshes().length && (c = t.pick(r, s, i, e, {\n viewMatrix: a.viewMatrix,\n projMatrix: a.projMatrix,\n returnPoint: o.options.pickingPoint }));\n\n var _c = c,\n h = _c.meshId,\n l = _c.pickingId,\n u = _c.point,\n f = _c.coordinate,\n d = (0 === h || h) && t.getMeshAt(h);\n if (!d || !d.geometry) return null;\n var m = d.properties;\n u && u.length && (u[0] = Math.round(1e5 * u[0]) / 1e5, u[1] = Math.round(1e5 * u[1]) / 1e5, u[2] = Math.round(1e5 * u[2]) / 1e5);\n var p = {\n batchId: l },\n\n y = o.options.services,\n b = y && y[d.properties.serviceIndex];\n if (b && b.debug && (p.debugInfo = m), m && m.batchTable) {\n var _t55 = m.batchTable,\n _e34 = m.batchTableBin,\n _n24 = m.count,\n _r18 = l;\n for (var _s20 in _t55) void 0 !== _t55[_s20].byteOffset ? p[_s20] = Ye(_t55[_s20], _e34, _n24, _r18) : p[_s20] = _t55[_s20][_r18];\n }\n return {\n service: d.properties.serviceIndex,\n data: p,\n point: u,\n coordinate: f };\n\n } },\n {\n key: \"highlight\",\n value: function highlight(t) {\n this.J = t;\n var e = this.h.getRenderer();\n this.Y = e.getFrameTimestamp(), e.setToRedraw(!0);\n } },\n {\n key: \"cancelAllHighlight\",\n value: function cancelAllHighlight() {\n this.J = null;\n var t = this.h.getRenderer();\n this.Y = t.getFrameTimestamp(), t.setToRedraw(!0);\n } },\n {\n key: \"showOnly\",\n value: function showOnly(t) {\n this.Z = t;\n var e = this.h.getRenderer();\n this.K = e.getFrameTimestamp(), e.setToRedraw(!0);\n } },\n {\n key: \"cancelShowOnly\",\n value: function cancelShowOnly() {\n this.Z = null;\n var t = this.h.getRenderer();\n this.K = t.getFrameTimestamp(), t.setToRedraw(!0);\n } },\n {\n key: \"Wt\",\n value: function Wt() {\n if (!this.F) return [];\n var t = {},\n e = [];\n for (var _n25 in this.F) {\n var _r19 = this.F[_n25];\n if (_r19) for (var _n26 = 0; _n26 < _r19.length; _n26++) {\n var _s21 = _r19[_n26],\n _i16 = _s21 && _s21.geometry;\n if (!_s21 || !_i16) continue;\n var _o9 = _s21.properties.serviceIndex;\n t[_o9] || (t[_o9] = new Set());\n var _a4 = _i16.properties.batchIdData;\n if (_a4) for (var _n27 = 0; _n27 < _a4.length; _n27++) t[_o9].has(_a4[_n27]) || (e.push({\n id: _a4[_n27],\n service: _o9 }),\n t[_o9].add(_a4[_n27]));\n }\n }\n return e;\n } },\n {\n key: \"hasIBL\",\n value: function hasIBL() {\n var t = this.getMap().getLightManager();\n return !!(t && t.getAmbientResource());\n } }]);\n\n }();\n function Dr(t) {\n for (var _e35 = 0; _e35 < t.length; _e35++) t[_e35] && (t[_e35].array && (t[_e35].array = null), t[_e35].mipmap && (t[_e35].mipmap = null), t[_e35].indices && (t[_e35].indices = null));\n }\n function jr(t, e) {\n if (e) for (var _n28 = 0; _n28 < e.length; _n28++) {\n t[e[_n28].id || e[_n28].index] = e[_n28];\n }\n }\n var zr = [];\n var Hr = function () {\n function Hr(t, e, n, r, s) {\n _classCallCheck(this, Hr);\n this.h = r, this.Qt = t, this.H = e, this.te = s, this.ee = n.version, t.indexOf(\"i3s:tileset:\") < 0 ? (this.ee <= 1.6 ? this.ne = \"root\" : this.ne = 0, n.version = this.ee) : (this.ne = t.substring(12), this.ee > 1.6 && (this.ne = parseInt(this.ne))), this.Qt = t, this.re = n;\n }\n return _createClass(Hr, [{\n key: \"load\",\n value: function load() {\n var _this10 = this;\n var t = this.re,\n e = t.layerScene.baseUrl;\n if (this.ee <= 1.6) return t[this.ne] && t[this.ne].lodSelection ? (this.se = t[this.ne], this.ie()) : new Promise(function (n) {\n var r = e + \"/nodes/\" + _this10.ne;\n t.layerScene.eslpk && (r += \"/3dNodeIndexDocument.json\"), _this10.te(_this10.H, r, function () {\n _this10.se = t[_this10.ne], n(_this10.ie());\n });\n });\n if (this.ee >= 1.7) {\n if (t[this.ne]) return this.se = t[this.ne], this.ie();\n var _n29 = Math.floor(this.ne / t.nodesPerPage);\n return new Promise(function (r) {\n var s = e + \"/nodepages/\" + _n29;\n t.layerScene.eslpk && (s += \".json\"), _this10.te(_this10.H, s, function () {\n _this10.se = t[_this10.ne], r(_this10.ie());\n });\n });\n }\n return null;\n } },\n {\n key: \"getTileset\",\n value: function getTileset() {\n return this.oe;\n } },\n {\n key: \"getChildrenURL\",\n value: function getChildrenURL() {\n return this.ae;\n } },\n {\n key: \"ie\",\n value: function ie() {\n var _this11 = this;\n var t = this.re,\n e = t.layerScene.baseUrl,\n n = this.se.children,\n r = [],\n s = {};\n if (n) {\n var _loop = function _loop() {\n if (_this11.ee <= 1.6) {\n var _o10 = n[_i17].id;\n if (t[_o10]) return 0;\n var _a5 = _o10;\n s[_a5] || (s[_a5] = new Promise(function (n) {\n var r = e + \"/nodes/\" + _a5;\n t.layerScene.eslpk && (r += \"/3dNodeIndexDocument.json\"), _this11.te(_this11.H, r, function () {\n n();\n });\n }), r.push(s[_a5]));\n } else {\n var _o11 = n[_i17];\n if (t[_o11]) return 0;\n var _a6 = Math.floor(_o11 / t.nodesPerPage);\n s[_a6] || (s[_a6] = new Promise(function (n) {\n var r = e + \"/nodepages/\" + _a6;\n t.layerScene.eslpk && (r += \".json\"), _this11.te(_this11.H, r, function () {\n n();\n });\n }), r.push(s[_a6]));\n }\n },\n _ret;\n for (var _i17 = 0; _i17 < n.length; _i17++) {\n _ret = _loop();\n if (_ret === 0) continue;\n }\n }\n return r.length ? Promise.all(r).then(function () {\n return _this11.ce();\n }) : this.ce();\n } },\n {\n key: \"ce\",\n value: function ce() {\n return Promise.resolve(this.he());\n } },\n {\n key: \"le\",\n value: function le(t) {\n jr(this.re, t);\n } },\n {\n key: \"he\",\n value: function he() {\n return {\n asset: {\n i3s: !0,\n version: \"1.0\",\n gltfUpAxis: \"Z\" },\n\n geometricError: Number.MAX_VALUE,\n root: this.ue(this.se, !0) };\n\n } },\n {\n key: \"ue\",\n value: function ue(t) {\n var e = this.h.getRenderer(),\n n = this.re.projection,\n r = !n || n && 4326 === n.wkid,\n s = this.ee,\n i = this.re,\n o = t,\n a = o.obb,\n c = o.mbs,\n h = {};\n var l;\n if (c) l = Wt([], c[0], c[1], c[2]), r || (l = e.fe(l, l)), l = qr([], l[0], l[1], l[2]), h.sphere = [].concat(_toConsumableArray(l), [c[3]]);else if (a) {\n l = Wt([], a.center[0], a.center[1], a.center[2]), r || (l = e.fe(l, l)), l = qr([], l[0], l[1], l[2]);\n var _t56 = function (t, e, n) {\n var r = function (t, e) {\n var n = e[0],\n r = e[1],\n s = e[2],\n i = e[3],\n o = n + n,\n a = r + r,\n c = s + s,\n h = n * o,\n l = r * o,\n u = r * a,\n f = s * o,\n d = s * a,\n m = s * c,\n p = i * o,\n y = i * a,\n b = i * c;\n return t[0] = 1 - u - m, t[3] = l - b, t[6] = f + y, t[1] = l + b, t[4] = 1 - h - m, t[7] = d - p, t[2] = f - y, t[5] = d + p, t[8] = 1 - h - u, t;\n }([], n);\n return r[0] = r[0] * e[0], r[1] = r[1] * e[0], r[2] = r[2] * e[0], r[3] = r[3] * e[1], r[4] = r[4] * e[1], r[5] = r[5] * e[1], r[6] = r[6] * e[2], r[7] = r[7] * e[2], r[8] = r[8] * e[2], [].concat(_toConsumableArray(t), _toConsumableArray(r));\n }(l, a.halfSize, a.quaternion),\n _n30 = _t56[3] + _t56[6] + _t56[9],\n _s22 = _t56[4] + _t56[7] + _t56[10],\n _i18 = _t56[5] + _t56[8] + _t56[11];\n Wt(zr, _n30, _s22, _i18);\n var _o12 = ae(zr);\n h.sphere = [].concat(_toConsumableArray(l), [_o12]);\n }\n var u = 1 / 0,\n f = 0;\n if (o.mbs ? f = o.mbs[3] : o.obb && (f = Math.max(Math.max(o.obb.halfSize[0], o.obb.halfSize[1]), o.obb.halfSize[2])), void 0 !== o.lodThreshold) {\n if (\"maxScreenThresholdSQ\" === i.lodSelectionMetricType) {\n u = f / (Math.sqrt(o.lodThreshold) / (.25 * Math.PI));\n } else console.error(\"Unsupported lodSelectionMetricType in Layer\");\n } else if (void 0 !== o.lodSelection) for (var _t57 = 0; _t57 < o.lodSelection.length; _t57++) \"maxScreenThreshold\" === o.lodSelection[_t57].metricType && (u = f / o.lodSelection[_t57].maxError);\n (u === 1 / 0 || isNaN(u)) && (u = 1e5);\n var d = 16 * u,\n m = function (t) {\n return t[0] = 1, t[1] = 0, t[2] = 0, t[3] = 0, t[4] = 0, t[5] = 1, t[6] = 0, t[7] = 0, t[8] = 0, t[9] = 0, t[10] = 1, t[11] = 0, t[12] = 0, t[13] = 0, t[14] = 0, t[15] = 1, t;\n }([]),\n p = m,\n y = o.children;\n var b;\n if (y) {\n b = [];\n var _t58 = this.re;\n for (var _e36 = 0; _e36 < y.length; _e36++) {\n var _n31 = s <= 1.6 ? y[_e36].id : y[_e36];\n if (!_t58[_n31]) {\n b = null;\n break;\n }\n b.push(this.ue(_t58[_n31]));\n }\n }\n var g = {\n refine: \"REPLACE\",\n boundingVolume: h,\n transform: p,\n geometricError: d };\n\n return s <= 1.6 ? t.lodSelection ? t.geometryData && (g.content = {\n uri: \"i3s:mesh:\" + (t.id || t.index) }) :\n g.content = {\n uri: \"i3s:tileset:\" + (t.id || t.index) } :\n y && y.length && !b ? g.content = {\n uri: \"i3s:tileset:\" + (t.id || t.index) } :\n o.mesh && (g.content = {\n uri: \"i3s:mesh:\" + (t.id || t.index) }),\n b && b.length && (g.children = b), g;\n } },\n {\n key: \"getJSON\",\n value: function getJSON() {\n return this.se;\n } }]);\n\n }();\n function qr(t, e, n, r) {\n return Ae(t, wt(e), wt(n), r);\n }\n var $r = !!Gt.ktx2,\n Vr = n.mat4.identity([]),\n Jr = function () {\n try {\n if (\"object\" == (typeof WebAssembly === \"undefined\" ? \"undefined\" : _typeof(WebAssembly)) && \"function\" == typeof WebAssembly.instantiate) {\n var _t59 = new WebAssembly.Module(Uint8Array.of(0, 97, 115, 109, 1, 0, 0, 0));\n if (_t59 instanceof WebAssembly.Module) return new WebAssembly.Instance(_t59) instanceof WebAssembly.Instance;\n }\n } catch (t) {}\n return !1;\n }();\n function Yr(t) {\n return t.indexOf(\"i3s:mesh\") >= 0;\n }\n var Zr = 9;\n function Kr(t, e, n, r, s) {\n var i = e.layerScene.eslpk,\n o = function (t, e) {\n var n = e.substring(Zr);\n return t >= 1.7 ? parseInt(n) : n;\n }(e.version, t),\n a = e[o],\n c = e.layerScene.baseUrl,\n h = [];\n var l = !1;\n var u = Vr;\n var f, d;\n if (e.version <= 1.6) {\n if (!a.geometryData) return null;\n var _t60 = a.geometryData.length;\n if (!_t60) return null;\n var _n32 = c + \"/nodes/\".concat(a.id, \"/\") + a.geometryData[_t60 - 1].href;\n i && (_n32 += \".bin\");\n var _r20 = {\n geometry: {\n url: _n32,\n info: e.layerScene.store.defaultGeometrySchema } };\n\n\n var _s23 = a.textureData && a.textureData[0] && a.textureData[0].href;\n if (_s23) {\n var _t61 = e.layerScene.store.textureEncoding[0];\n var _n33;\n _n33 = \"image/jpeg\" === _t61 ? \"jpg\" : \"png\", i && (_s23 += \".\" + _n33);\n var _o13 = {\n pbrMetallicRoughness: {\n baseColorTexture: {\n url: c + \"/nodes/\".concat(a.id, \"/\") + _s23,\n factor: 1,\n format: _n33,\n mimeType: _t61 },\n\n metallicFactor: 0 } };\n\n\n _r20.material = _o13;\n }\n h.push(_r20);\n } else {\n f = a.mesh.geometry, d = a.mesh.material;\n var _t62 = e.layerScene.geometryDefinitions,\n _o14 = (e.layerScene.store || {}).textureEncoding,\n _u = _t62[f.definition],\n _m = _u.geometryBuffers;\n l = r && 2 === _m.length;\n var _p2 = Gt.draco && l ? _m[1] : _m[0],\n _y2 = Gt.draco && l ? 1 : 0;\n var _b2 = c + \"/nodes/\".concat(f.resource, \"/geometries/\") + _y2;\n i && (_b2 += \".bin\");\n var _g3 = {\n geometry: {\n url: _b2,\n info: _p2 } };\n\n\n if (s && Jr && l && !Gt.draco) throw new Error(\"Must import @maptalks/transcoder.draco to load i3s draco compressed geometry\");\n var _v2 = e.layerScene.materialDefinitions,\n _w2 = e.layerScene.textureSetDefinitions;\n var _T2,\n _M = 0;\n if (d && (_M = _v2[d.definition]), _v2) {\n _T2 = function (t, e, n, r, s, i, o) {\n var a = JSON.parse(JSON.stringify(e));\n return Xr(t, a, n, r, s, i, o), a;\n }(_o14, _M, _w2, c, d.resource, n, e.layerScene.eslpk);\n } else _T2 = {\n pbrMetallicRoughness: {\n metallicFactor: 0 } };\n\n\n _g3.material = _T2, h.push(_g3);\n }\n return {\n dracoCompression: l,\n meshes: h,\n nodeIndex: o,\n center: a.obb && a.obb.center || a.mbs && [a.mbs[0], a.mbs[1], a.mbs[2]],\n transform: u };\n\n }\n function Xr(t, e, n, r, s, i, o) {\n for (var _a7 in e) if (e[_a7] && e[_a7].textureSetDefinitionId >= 0) {\n var _c2 = n[e[_a7].textureSetDefinitionId],\n _h2 = \"images/\" + _c2.formats[0].format,\n _l = Qr(_c2.formats, i, t),\n _u2 = {\n url: r + \"/nodes/\".concat(s, \"/textures/\").concat(_l.name),\n factor: void 0 === e[_a7].factor ? 1 : e[_a7].factor,\n format: _l.format,\n mimeType: _h2 };\n\n if (o) {\n var _t63 = \"\";\n switch (_l.format) {\n case \"dds\":\n _t63 = \"bin.dds\";\n break;\n case \"jpg\":\n case \"png\":\n _t63 = _l.format;}\n\n _u2.url += \".\" + _t63;\n }\n e[_a7] = _u2;\n } else gt(e[_a7]) && Xr(t, e[_a7], n, r, s, i, o);\n }\n var Wr = {\n \"image/jpeg\": \"jpg\",\n \"image/jpg\": \"jpg\",\n \"image/png\": \"jpg\",\n \"image/vnd-ms.dds\": \"dds\",\n \"image/ktx\": \"jpg\" };\n\n function Qr(t, e, n) {\n if (n && n.length) {\n var _e37 = n[n.length - 1],\n _r21 = Wr[_e37];\n if (_r21) for (var _e38 = 0, _n34 = t.length; _e38 < _n34; _e38++) {\n if (t[_e38].format === _r21) return t[_e38];\n } else console.error(\"i3s not find texture format type from:\", Wr, \"current textureEncoding:\", _e37);\n }\n for (var _n35 = 0; _n35 <= t.length; _n35++) {\n var _r22 = t[_n35].format;\n if (\"dds\" === _r22 && e.hasExtension(\"WEBGL_compressed_texture_s3tc\")) return t[_n35];\n if (\"jpg\" === _r22 || \"png\" === _r22) return t[_n35];\n if (\"ktx2\" === _r22 && $r) return t[_n35];\n }\n return null;\n }\n var _Dt2 = Dt(),\n ts = _Dt2.Ajax,\n es = new s.Coordinate(0, 0),\n ns = new s.Coordinate(0, 0),\n rs = new Set(),\n ss = [],\n is = new (function () {\n function _class(t, e) {\n _classCallCheck(this, _class);\n this.max = t, this.currentSize = 0, this.data = new Map(), this.onRemove = e;\n }\n return _createClass(_class, [{\n key: \"reset\",\n value: function reset(t) {\n if (this.data) {\n var _e39 = this.data.keys();\n var _iterator = _createForOfIteratorHelper(_e39),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _n36 = _step.value;\n var _e40 = this.data.get(_n36);\n t && t !== _e40.renderer || this.de(_n36, _e40);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n return t || (this.data = new Map(), this.currentSize = 0), this;\n } },\n {\n key: \"clear\",\n value: function clear(t) {\n this.reset(t);\n } },\n {\n key: \"add\",\n value: function add(t, e) {\n if (!e) return this;\n if (e.node && e.node.memorySize && (this.currentSize += e.node.memorySize), this.has(t)) {\n var _n37 = this.data.get(t);\n _n37 && _n37.node && _n37.node.memorySize && (this.currentSize -= _n37.node.memorySize), this.data.delete(t), this.data.set(t, e);\n } else this.data.set(t, e);\n return this;\n } },\n {\n key: \"shrink\",\n value: function shrink() {\n if (this.currentSize > this.max) {\n var _t64 = !1;\n var _e41 = this.data.keys();\n var _n38 = _e41.next();\n for (; this.currentSize > this.max && void 0 !== _n38.value;) {\n !_t64 && this.data.get(_n38.value).current && (_t64 = !0, console.warn(\"current maxGPUMemory(\".concat(this.max / 1024 / 1024, \") for Geo3DTilesLayer is not enough, one or more current tiles will be discarded.\")));\n var _r23 = this.getAndRemove(_n38.value);\n _r23 && this.onRemove(_r23), _n38 = _e41.next();\n }\n }\n } },\n {\n key: \"has\",\n value: function has(t) {\n return this.data.has(t);\n } },\n {\n key: \"keys\",\n value: function keys() {\n var t = new Array(this.data.size);\n var e = 0;\n var n = this.data.keys();\n var _iterator2 = _createForOfIteratorHelper(n),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var _r24 = _step2.value;\n t[e++] = _r24;\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n return t;\n } },\n {\n key: \"getAndRemove\",\n value: function getAndRemove(t) {\n if (!this.has(t)) return null;\n var e = this.data.get(t);\n return e.node && e.node.memorySize && (this.currentSize -= e.node.memorySize), this.data.delete(t), e;\n } },\n {\n key: \"get\",\n value: function get(t) {\n if (!this.has(t)) return null;\n var e = this.data.get(t);\n return this.data.delete(t), this.data.set(t, e), e;\n } },\n {\n key: \"remove\",\n value: function remove(t) {\n if (!this.has(t)) return this;\n var e = this.data.get(t);\n return this.de(t, e), this;\n } },\n {\n key: \"de\",\n value: function de(t, e) {\n e.node && e.node.memorySize && (this.currentSize -= e.node.memorySize), this.data.delete(t), this.onRemove(e);\n } },\n {\n key: \"setMaxSize\",\n value: function setMaxSize(t) {\n return this.max = t, this.shrink(), this;\n } },\n {\n key: \"getMemorySize\",\n value: function getMemorySize() {\n var t = 0;\n var e = this.data.values();\n var _iterator3 = _createForOfIteratorHelper(e),\n _step3;\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var _n39 = _step3.value;\n var _e42 = _n39 && _n39.node;\n _e42 && _e42.memorySize && (t += _e42.memorySize);\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n return t;\n } },\n {\n key: \"markAll\",\n value: function markAll(t, e) {\n var n = this.data.values();\n var _iterator4 = _createForOfIteratorHelper(n),\n _step4;\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var _r25 = _step4.value;\n t && _r25.renderer !== t || (_r25.current = e);\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n } }]);\n\n }())(1024 * (s.Browser.mobile ? 32 : 1024) * 1024, function (t) {\n var e = t.renderer;\n delete t.renderer, e.deleteTile(t);\n });\n var os = 0;\n var as = function (_n$MaskRendererMixin) {\n function as(t) {\n var _this12;\n _classCallCheck(this, as);\n _this12 = _callSuper(this, as, [t]);\n var e = 1024 * t.options.maxGPUMemory * 1024;\n e > is.max && is.setMaxSize(e), _this12.tileCache = is, os++, _this12.tilesLoading = {}, _this12.me = {}, _this12.pe = [], _this12.te = function () {\n var _this12$ye;\n for (var _len2 = arguments.length, t = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n t[_key2] = arguments[_key2];\n }\n return (_this12$ye = _this12.ye).call.apply(_this12$ye, [_this12].concat(t));\n };\n return _this12;\n }\n _inherits(as, _n$MaskRendererMixin);\n return _createClass(as, [{\n key: \"getAnalysisMeshes\",\n value: function getAnalysisMeshes() {\n if (!this.painter) return ss;\n var t = this.painter.getPaintedMeshes();\n if (!t) return ss;\n var e = [],\n n = t.b3dmMeshes,\n r = t.pntsMeshes,\n s = t.i3dmMeshes;\n return n.length && Nt(e, n.filter(function (t) {\n return !(!t || !t.geometry);\n })), r.length && Nt(e, r.filter(function (t) {\n return !(!t || !t.geometry);\n })), s.length && Nt(e, s.filter(function (t) {\n return !(!t || !t.geometry);\n })), e;\n } },\n {\n key: \"needToRedraw\",\n value: function needToRedraw() {\n return !!this.getMap().isInteracting() || !!this.pe.length || _superPropGet(as, \"needToRedraw\", this, 3)([]);\n } },\n {\n key: \"getFrameTimestamp\",\n value: function getFrameTimestamp() {\n return this.be;\n } },\n {\n key: \"drawOnInteracting\",\n value: function drawOnInteracting(t, e, n) {\n this.draw(e, n);\n } },\n {\n key: \"draw\",\n value: function draw(t, e) {\n this.be = t;\n var n = this.prepareCanvas();\n if (n && !n.intersects(this.canvasExtent2D)) return void this.completeRender();\n var _this$layer$getTiles = this.layer.getTiles(),\n r = _this$layer$getTiles.root,\n s = _this$layer$getTiles.tiles,\n i = s.length;\n if (!s || !i) return void this.completeRender();\n this.painter.prepareRender(e), this.ge(), this.ve(e);\n var _this$we = this.we(r, s),\n o = _this$we.selectedTiles,\n a = _this$we.requests;\n a.length && this.loadTiles(a), this.Te(o, e), this.Me(), a.length || this.completeRender();\n } },\n {\n key: \"we\",\n value: function we(t, e) {\n var n = [];\n this._e();\n var r = 0;\n var s = this.Oe(),\n i = {};\n var o = !1,\n a = !1;\n for (var _t65 = 0; _t65 < e.length; _t65++) {\n var _s24 = e[_t65],\n _c3 = _s24.node;\n if (i[_c3.id]) continue;\n i[_c3.id] = 1;\n var _h3 = !1;\n var _l2 = this.getCachedTile(_c3.id);\n if (this.Ae(_c3.id) ? (r++, _h3 = a = !0, this.tilesLoading[_c3.id].current = !0) : _l2 ? (this.getTileOpacity(_l2) < 1 && (_h3 = a = !0), o = !0, _s24.selected = !0, _s24.data = _l2) : this.painter.has(_c3) || (_h3 = a = !0, n.push(_c3)), !_h3) continue;\n if (this.xe(_s24)) o = !0;else {\n this.Ie(_s24).length && (o = !0);\n }\n }\n var c = o ? this.Se(t) : [];\n if (n.length > 1 && (n.sort(cs), s)) {\n var _t66 = s - r;\n n = _t66 > 0 ? n.slice(0, _t66) : [];\n }\n return {\n loading: a,\n requests: n,\n selectedTiles: c };\n\n } },\n {\n key: \"Se\",\n value: function Se(t) {\n var e = [];\n var n, r;\n var s = [t],\n i = [];\n for (; s.length > 0 || i.length > 0;) {\n if (i.length > 0) {\n var _t67 = i[i.length - 1];\n if (_t67.Ce === s.length) {\n i.pop(), _t67 === n && (_t67.leave = !0), _t67.branchRootId = r, e.push(_t67), 0 === i.length && (r = null);\n continue;\n }\n }\n var _t68 = s.pop(),\n _o15 = _t68.children;\n if (_t68.selected) if (\"add\" === _t68.node.refine) _t68.leave = !0, _t68.selectionDepth = i.length, _t68.branchRootId = r, e.push(_t68);else {\n if (_t68.selectionDepth = i.length, n = _t68, 0 === _o15.length) {\n _t68.leave = !0, _t68.branchRootId = r, e.push(_t68);\n continue;\n }\n 0 === i.length && (r = _t68.node.id), i.push(_t68), _t68.Ce = s.length;\n }\n for (var _t69 = 0; _t69 < _o15.length; _t69++) s.push(_o15[_t69]);\n }\n return e;\n } },\n {\n key: \"xe\",\n value: function xe(t) {\n if (!t.parent) return null;\n var e = t.parent;\n for (; e && e.level >= 0;) {\n var _t70 = e.node.id;\n if (this.tileCache.has(_t70)) return e.selected = !0, e.data = this.tileCache.get(_t70), e;\n e = e.parent;\n }\n return null;\n } },\n {\n key: \"Ie\",\n value: function Ie(t) {\n var e = [];\n if (!t.node.children || !t.node.children.length) return e;\n var n = t.ke + 1,\n r = [t.node];\n for (; r.length > 0;) {\n var _s25 = r.pop().children;\n for (var _i19 = 0, _o16 = _s25.length; _i19 < _o16; _i19++) {\n if ((!_s25[_i19].content || !_s25[_i19].content.url) && _s25[_i19].children && _s25[_i19].children.length) {\n r.push(_s25[_i19]);\n continue;\n }\n var _o17 = _s25[_i19].id;\n if (this.tileCache.has(_o17)) {\n var _n40 = this.layer.Ne(_s25[_i19], t);\n _n40.selected = !0, _n40.data = this.tileCache.get(_o17), t.children.push(_n40), e.push(_n40);\n } else _s25[_i19].ke <= n && r.push(_s25[_i19]);\n }\n }\n return e;\n } },\n {\n key: \"Te\",\n value: function Te(t, e) {\n this.tileCache.markAll(this, !1);\n var n = [];\n for (var _e43 = 0, _r26 = t.length; _e43 < _r26; _e43++) {\n var _r27 = t[_e43].data;\n _r27.current = !0, _r27.renderer = this, this.tileCache.add(t[_e43].node.id, _r27);\n var _s26 = _r27.node,\n _i20 = this.layer.j(_s26.H);\n _s26.dt && _i20.debug && !Array.isArray(_i20.debug) && n.push(_s26.dt);\n }\n var r = this.layer.options.services;\n for (var _t71 = 0; _t71 < r.length; _t71++) {\n var _e44 = r[_t71],\n _s27 = Array.isArray(_e44.debug) && _e44.debug;\n if (_s27) {\n var _iterator5 = _createForOfIteratorHelper(_s27),\n _step5;\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var _t72 = _step5.value;\n var _e45 = this.layer.Gt(_t72),\n _r28 = _e45 && _e45.node;\n _r28 && _r28.dt && n.push(_r28.dt);\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n }\n }\n var s = {\n tiles: t };\n\n this.onDrawTileStart(s);\n var i = this.painter.paint(t, n, e);\n this.layer.fire(\"drawtiles\", {\n count: i }),\n this.onDrawTileEnd(s), i && this.layer.fire(\"canvasisdirty\", {\n renderCount: i }),\n this.tileCache.shrink();\n } },\n {\n key: \"onDrawTileStart\",\n value: function onDrawTileStart() {} },\n {\n key: \"onDrawTileEnd\",\n value: function onDrawTileEnd() {} },\n {\n key: \"loadTiles\",\n value: function loadTiles(t) {\n for (var _e46 = 0, _n41 = t.length; _e46 < _n41; _e46++) {\n var _n42 = t[_e46];\n this.tilesLoading[_n42.id] = {\n current: !0,\n node: _n42 },\n this.loadTile(_n42);\n }\n } },\n {\n key: \"loadTile\",\n value: function loadTile(t) {\n var _this13 = this;\n var e = t.content.url;\n if (Ct(e)) {\n var _n43 = kt(e);\n return this.Le(e, _n43, t), null;\n }\n if (function (t) {\n return t.indexOf(\"i3s:tileset\") >= 0;\n }(e)) {\n var _n44 = t.H,\n _r29 = this.Ee[_n44];\n return new Hr(e, _n44, _r29, this.layer, this.te).load().then(function (n) {\n _this13.onTilesetLoad(n, t, e);\n });\n }\n return t && Pt(e) && !Yr(e) && (e = t.baseUrl + e), this.Le(e, null, t), null;\n } },\n {\n key: \"Le\",\n value: function Le(t, e, r) {\n var _this14 = this;\n var s = this.Re;\n s || (s = n.reshader.Util.getSupportedFormats(this.gl.gl || this.gl), this.Re = s);\n var i = this.layer.j(r.H);\n i.isSuperMapiServer && (t = function (t, e) {\n var n = t.substring(e.length),\n r = n.split(\"/\"),\n s = [];\n for (var _t73 = 0; _t73 < r.length; _t73++) s.push(encodeURIComponent(r[_t73]));\n return e + s.join(\"/\");\n }(t, r.baseUrl));\n var o = {\n url: this.layer.getTileUrl(t, this.layer.Pe[r.H]),\n arraybuffer: e,\n rootIdx: r.H,\n upAxis: r.xt,\n transform: r.matrix,\n supportedFormats: s };\n\n if (Yr(t)) {\n var _e47 = this.Ee[r.H];\n if (o.projection = _e47.projection, o.i3sInfo = Kr(t, _e47, this.regl, this.layer.options.enableI3SCompressedGeometry, this.layer.options.forceI3SCompressedGeometry), !o.i3sInfo) return void this.onTileError({\n status: 404 },\n r, t);\n }\n o.service = yt({}, i), i.offset && delete o.service.offset, o.referrer = window && window.location.href, this.workerConn.loadTile(this.layer.getId(), o, function (e, n) {\n if (e) return void _this14.onTileError(e, r, t);\n var s = n.magic;\n \"b3dm\" === s || \"pnts\" === s || \"i3dm\" === s || \"cmpt\" === s || \"gltf\" === s ? _this14.pe.push({\n data: n,\n tile: r }) :\n _this14.onTilesetLoad(n, r, t);\n });\n } },\n {\n key: \"Ft\",\n value: function Ft(t) {\n this.painter && this.painter.Ft(t);\n } },\n {\n key: \"Dt\",\n value: function Dt(t) {\n this.painter && this.painter.Dt(t);\n } },\n {\n key: \"ve\",\n value: function ve() {\n var _this15 = this;\n var t = this.getMap(),\n e = this.layer.options.meshLimitPerFrame;\n var n = 0;\n var _loop2 = function _loop2() {\n var _this15$pe$shift = _this15.pe.shift(),\n t = _this15$pe$shift.data,\n e = _this15$pe$shift.tile,\n r = t.magic;\n \"b3dm\" === r || \"gltf\" === r ? _this15.painter.createB3DMMesh(t, e.id, e, function (n, _ref7) {\n var r = _ref7.mesh;\n _this15.Ue(t, e, n, r);\n }) : \"pnts\" === r ? _this15.painter.createPntsMesh(t, e.id, e, function (n, _ref8) {\n var r = _ref8.mesh;\n _this15.Ue(t, e, n, r);\n }) : \"i3dm\" === r ? _this15.painter.createI3DMMesh(t, e.id, e, function (n, _ref9) {\n var r = _ref9.mesh;\n _this15.Ue(t, e, n, r);\n }) : \"cmpt\" === r && _this15.painter.createCMPTMesh(t, e.id, e, function (n, _ref10) {\n var r = _ref10.mesh;\n _this15.Ue(t, e, n, r);\n }), n++;\n };\n for (; this.pe.length && (n < e || !t.isInteracting());) {\n _loop2();\n }\n } },\n {\n key: \"Ue\",\n value: function Ue(t, e, n, r) {\n if (n) this.onTileError(n, e);else {\n var _n45 = this.Be(r);\n e.memorySize = _n45, this.onTileLoad(t, e);\n }\n } },\n {\n key: \"Be\",\n value: function Be(t) {\n var e = 0;\n if (Array.isArray(t)) for (var _n46 = 0; _n46 < t.length; _n46++) t[_n46] && (e += this.Be(t[_n46]));else t && (e += t.getMemorySize());\n return e;\n } },\n {\n key: \"onTileLoad\",\n value: function onTileLoad(t, e) {\n this.layer && (delete this.tilesLoading[e.id], this.layer.onTileLoad(t, e), this.Fe(e), this.setToRedraw(), this.layer.fire(\"tileload\", {\n node: e }));\n\n } },\n {\n key: \"onTilesetLoad\",\n value: function onTilesetLoad(t, e, n) {\n this.layer && (this.layer.zt = t.extensions && t.extensions[\"s3m:VertexCompressionType\"], t.capabilities || t.layers && t.layers[0] && t.layers[0].capabilities ? this.Ge(t, e, n) : (delete this.tilesLoading[e.id], this.layer.onTilesetLoad(t, e, n)));\n } },\n {\n key: \"onTileError\",\n value: function onTileError(t, e, n) {\n if (!this.layer) return;\n var r = n || e.content.url,\n i = t && t.message || t;\n t && (404 === t.status || 204 === t.status) || rs.has(i) || (console.warn(\"failed to load 3d tile: \" + r), console.warn(t), rs.add(i)), delete this.tilesLoading[e.id], (!this.layer.options.onlyCacheNoContentTileWhenError || t && !s.Util.isNoContentHttpCode(t.status)) && this.De(e, t), this.layer.fire(\"tileerror\", {\n node: e,\n error: t });\n\n } },\n {\n key: \"getCachedTile\",\n value: function getCachedTile(t) {\n return this.tileCache.get(t);\n } },\n {\n key: \"getShadowMeshes\",\n value: function getShadowMeshes() {\n if (!this.painter) return [];\n var t = [],\n e = this.painter.getCurrentB3DMMeshes();\n for (var _n47 in e) e[_n47] && e[_n47].isValid && e[_n47].isValid() && t.push(e[_n47]);\n var n = this.painter.getCurrentI3DMMeshes();\n for (var _e48 in n) n[_e48] && n[_e48].isValid && n[_e48].isValid() && t.push(n[_e48]);\n return t;\n } },\n {\n key: \"De\",\n value: function De(t, e) {\n var n = {\n loadTime: s.Util.now(),\n current: !0,\n error: e,\n node: t };\n\n n.renderer = this, this.tileCache.add(t.id, n);\n } },\n {\n key: \"Fe\",\n value: function Fe(t) {\n var e = {\n loadTime: s.Util.now(),\n current: !0,\n node: t };\n\n e.renderer = this, this.tileCache.add(t.id, e);\n } },\n {\n key: \"abortTileLoading\",\n value: function abortTileLoading(t) {\n if (!t || !this.workerConn) return;\n var e = t.node.content.url;\n this.workerConn.abortTileLoading(this.layer.getId(), e), delete this.me[e];\n } },\n {\n key: \"_e\",\n value: function _e() {\n if (this.tilesLoading) for (var _t74 in this.tilesLoading) this.tilesLoading[_t74].current = !1;\n } },\n {\n key: \"deleteTile\",\n value: function deleteTile(t) {\n this.painter.deleteTile(t);\n } },\n {\n key: \"createContext\",\n value: function createContext() {\n var t = this.layer,\n e = t.options.glOptions || {\n alpha: !0,\n depth: !0,\n stencil: !0,\n preserveDrawingBuffer: !0,\n antialias: t.options.antialias },\n\n r = this.canvas.gl && this.canvas.gl.wrap;\n r ? (this.gl = this.canvas.gl.wrap(), this.regl = this.canvas.gl.regl) : (this.glOptions = e, this.gl = this.je(this.canvas, e)), this.regl = this.regl || n.createREGL({\n gl: this.gl,\n attributes: e,\n extensions: [\"OES_element_index_uint\"],\n optionalExtensions: t.options.optionalExtensions || [] }),\n this.prepareWorker(), r && (this.canvas.pickingFBO = this.canvas.pickingFBO || this.regl.framebuffer(this.canvas.width, this.canvas.height)), this.pickingFBO = this.canvas.pickingFBO || this.regl.framebuffer(this.canvas.width, this.canvas.height), this.painter = new Gr(this.regl, t), this.layer.ze(), this.layer.fire(\"contextcreate\", {\n regl: this.regl });\n\n } },\n {\n key: \"prepareWorker\",\n value: function prepareWorker() {\n var _this16 = this;\n var t = this.getMap();\n this.workerConn || (this.workerConn = new zt(\"@maptalks/3dtiles\", t.id, n.reshader.Util.supportNPOT(this.regl)));\n var e = this.workerConn;\n if (!e.isActive()) return;\n var r = this.layer.options || {};\n r = yt({}, r), delete r.offset;\n var s = t.options.spatialReference;\n r.projection = s && s.coordType || s && s.projection || t.getSpatialReference().getProjection().code;\n var i = this.layer.getId();\n e.addLayer(i, r, function (t) {\n if (t) throw t;\n _this16.layer && (_this16.ready = !0, _this16.layer.fire(\"workerready\"));\n });\n } },\n {\n key: \"onRemove\",\n value: function onRemove() {\n this.painter && this.painter.remove(), this.pickingFBO && (this.canvas.pickingFBO || this.pickingFBO.destroy(), delete this.pickingFBO), this.workerConn && (this.workerConn.removeLayer(this.layer.getId(), function (t) {\n if (t) throw t;\n }), this.workerConn.remove(), delete this.workerConn), os--, os || is.reset(), this.clear(), delete this.tileCache, _superPropGet(as, \"onRemove\", this, 3)([]);\n } },\n {\n key: \"clear\",\n value: function clear() {\n this.Me(!0), this.tileCache.reset(this), this.tilesLoading = {}, _superPropGet(as, \"clear\", this, 3)([]);\n } },\n {\n key: \"clearCanvas\",\n value: function clearCanvas() {\n this.regl && this.regl.clear({\n color: [0, 0, 0, 0],\n depth: 1,\n stencil: 0 }),\n _superPropGet(as, \"clearCanvas\", this, 3)([]);\n } },\n {\n key: \"getTileOpacity\",\n value: function getTileOpacity() {\n return 1;\n } },\n {\n key: \"getStencilValue\",\n value: function getStencilValue() {\n return 0;\n } },\n {\n key: \"Me\",\n value: function Me(t) {\n this.He || (this.He = Date.now());\n var e = Date.now();\n if (!t && e - this.He < this.layer.options.retireInterval) return;\n this.He = e;\n var n = [];\n for (var _e49 in this.tilesLoading) {\n var _r30 = this.tilesLoading[_e49];\n !t && _r30.current || (n.push(_e49), this.abortTileLoading(_r30));\n }\n for (var _t75 = 0; _t75 < n.length; _t75++) delete this.tilesLoading[n[_t75]];\n } },\n {\n key: \"Oe\",\n value: function Oe() {\n return this.getMap().isInteracting() ? this.layer.options.loadingLimitOnInteracting : this.layer.options.loadingLimit;\n } },\n {\n key: \"je\",\n value: function je(t, e) {\n var n = [\"webgl\", \"experimental-webgl\"];\n var r = null;\n for (var _s28 = 0; _s28 < n.length; ++_s28) {\n try {\n r = t.getContext(n[_s28], e);\n } catch (t) {}\n if (r) break;\n }\n return r;\n } },\n {\n key: \"Ae\",\n value: function Ae(t) {\n return !!this.tilesLoading[t];\n } },\n {\n key: \"getI3DMMeshes\",\n value: function getI3DMMeshes() {\n return this.painter.getI3DMMeshes();\n } },\n {\n key: \"getPNTSMeshes\",\n value: function getPNTSMeshes() {\n return this.painter.getPNTSMeshes();\n } },\n {\n key: \"getB3DMMeshes\",\n value: function getB3DMMeshes() {\n return this.painter.getB3DMMeshes();\n } },\n {\n key: \"readBatchData\",\n value: function readBatchData(t, e, n) {\n return Ve(t, e, 0, n);\n } },\n {\n key: \"ge\",\n value: function ge() {\n var _this17 = this;\n if (!this.qe) return;\n var t = this.layer.options.i3sNodepageLimitPerFrame || Number.MAX_VALUE;\n var e = 0;\n var n = [];\n var _loop3 = function _loop3(_r31) {\n var s = _this17.qe[_r31];\n if (\"pending\" === s.status) return 0;\n s.status = \"pending\";\n var i = s.rootIdx,\n o = Ut(_this17.layer.j(i).fetchOptions);\n if (n.push(ts.getJSON(_r31, o).then(function (t) {\n delete _this17.qe[_r31];\n var e = _this17.Ee[i];\n if (e) {\n t.nodes ? jr(e, t.nodes) : (e[t.id] = t, jr(e, t.children));\n for (var _t76 = 0; _t76 < s.length; _t76++) s[_t76]();\n _this17.setToRedraw();\n } else _this17.setToRedraw();\n })), e++, e >= t) return 1;\n },\n _ret2;\n for (var _r31 in this.qe) {\n _ret2 = _loop3(_r31);\n if (_ret2 === 0) continue;\n if (_ret2 === 1) break;\n }\n n.length && Promise.all(n);\n } },\n {\n key: \"ye\",\n value: function ye(t, e, n) {\n this.qe || (this.qe = {}), this.qe[e] = this.qe[e] || [], this.qe[e].rootIdx = t, this.qe[e].push(n), this.setToRedraw();\n } },\n {\n key: \"Ge\",\n value: function Ge(t, e, n) {\n var _this18 = this;\n this.Ee || (this.Ee = []);\n var r = e.H;\n this.Ee[r] || (this.Ee[r] = {});\n var s = this.Ee[r],\n i = this.layer.j(r);\n t.layers && (t = t.layers[0], \"/\" !== n[n.length - 1] && (n += \"/\"), n += \"layers/0\"), s.version = +(i.i3sVersion || t.store.version), !t.spatialReference || t.spatialReference.wkid && 4326 === t.spatialReference.wkid || console.warn(\"i3s has a spatialReference other than 4326.\", t.spatialReference), t.spatialReference && 4490 === t.spatialReference.wkid && (console.warn(\"i3s spatialReference is 4490,auto set spatialReference to 4326,This may cause some location issues, please ensure that your service is 4326\"), t.spatialReference.wkid = 4326), s.projection = t.spatialReference, function (t, e, n, r, s, i, o) {\n if (!i.layerScene) {\n i.layerScene = e, i.nodesPerPage = e.nodePages && e.nodePages.nodesPerPage || 64, i.lodSelectionMetricType = e.nodePages && e.nodePages.lodSelectionMetricType;\n var _t77 = s;\n if (i.layerScene.eslpk = _t77.indexOf(\"3dSceneLayer.json\") >= 0, _t77.endsWith(\".json\")) {\n var _e50 = s.lastIndexOf(\"/\");\n _t77 = _e50 < 0 ? \"./\" : s.substring(0, _e50);\n }\n i.layerScene.baseUrl = function (t) {\n return t.split(\"?\")[0];\n }(_t77);\n }\n return new Hr(s, n, i, t, o).load();\n }(this.layer, t, r, 0, n, s, this.te).then(function (t) {\n _this18.onTilesetLoad(t, e, n);\n });\n } },\n {\n key: \"pick\",\n value: function pick(t, e, n) {\n if (!this.painter) return [];\n var r = this.pickingFBO,\n _this$canvas = this.canvas,\n s = _this$canvas.width,\n i = _this$canvas.height;\n return !this.pickingFBO || r.width === s && r.height === i || r.resize(s, i), this.painter.pick(t, e, n && n.tolerance);\n } },\n {\n key: \"highlight\",\n value: function highlight(t) {\n if (this.J || (this.J = []), Array.isArray(t)) for (var _e51 = 0; _e51 < t.length; _e51++) {\n var _n48 = t[_e51].service || 0;\n var _r32 = this.J[_n48];\n _r32 || (_r32 = this.J[_n48] = new Map()), _r32.set(t[_e51].id, t[_e51]);\n } else {\n var _e52 = t.service || 0;\n var _n49 = this.J[_e52];\n _n49 || (_n49 = this.J[_e52] = new Map()), _n49.set(t.id, t);\n }\n this.painter.highlight(this.J);\n } },\n {\n key: \"cancelHighlight\",\n value: function cancelHighlight(t, e) {\n if (!this.J) return;\n var n = this.J[t];\n if (n) {\n if (Array.isArray(e)) for (var _t78 = 0; _t78 < e.length; _t78++) n.delete(e[_t78]);else n.delete(e);\n n.size || (this.J[t] = null), this.painter.highlight(this.J);\n }\n } },\n {\n key: \"cancelAllHighlight\",\n value: function cancelAllHighlight() {\n delete this.J, this.painter.cancelAllHighlight();\n } },\n {\n key: \"showOnly\",\n value: function showOnly(t) {\n if (this.Z || (this.Z = []), Array.isArray(t)) for (var _e53 = 0; _e53 < t.length; _e53++) {\n var _n50 = t[_e53].service || 0;\n var _r33 = this.Z[_n50];\n _r33 || (_r33 = this.Z[_n50] = new Map()), _r33.set(t[_e53].id, t[_e53]);\n } else {\n var _e54 = t.service || 0;\n var _n51 = this.Z[_e54];\n _n51 || (_n51 = this.Z[_e54] = new Map()), _n51.set(t.id, t);\n }\n this.painter.showOnly(this.Z);\n } },\n {\n key: \"cancelShowOnly\",\n value: function cancelShowOnly() {\n delete this.Z, this.painter.cancelShowOnly();\n } },\n {\n key: \"Wt\",\n value: function Wt() {\n return this.painter ? this.painter.Wt() : [];\n } },\n {\n key: \"fe\",\n value: function fe(t, e) {\n var n = this.getMap();\n if (\"identity\" === n.getProjection().code.toLowerCase()) {\n var _n52 = this.$e();\n return es.set(e[0], e[1]), _n52.unproject(es, ns), t[0] = ns.x, t[1] = ns.y, t;\n }\n return es.set(e[0], e[1]), n.getProjection().unproject(es, ns), t[0] = ns.x, t[1] = ns.y, t;\n } },\n {\n key: \"Ve\",\n value: function Ve(t, e) {\n var n = this.$e();\n return es.set(e[0], e[1]), n.project(es, ns), t[0] = ns.x, t[1] = ns.y, t;\n } },\n {\n key: \"Je\",\n value: function Je(t, e) {\n var n = this.$e();\n return es.set(e[0], e[1]), n.unproject(es, ns), t[0] = ns.x, t[1] = ns.y, t;\n } },\n {\n key: \"$e\",\n value: function $e() {\n var t = this.getMap().options.spatialReference.coordType;\n if (!t) throw new Error(\"Missing coordType in map spatialReference.\");\n return this.Ye || (this.Ye = s.SpatialReference.getProjectionInstance(t)), this.Ye;\n } }]);\n\n }(n.MaskRendererMixin(s.renderer.CanvasRenderer));\n function cs(t, e) {\n return t.ft - e.ft;\n }\n function hs(t, e, n) {\n return t[0] = e[n], t[1] = e[n + 3], t[2] = e[n + 6], t;\n }\n function ls(t, e, n) {\n return Math.sqrt(function (t, e, n) {\n var r = Qt(us, n, t),\n s = hs(fs, e, 0),\n i = hs(ds, e, 1),\n o = hs(ms, e, 2),\n a = ae(s),\n c = ae(i),\n h = ae(o);\n ne(s, s), ne(i, i), ne(o, o);\n var l = ps;\n l[0] = re(r, s), l[1] = re(r, i), l[2] = re(r, o);\n var u,\n f = 0;\n l[0] < -a ? (u = l[0] + a, f += u * u) : l[0] > a && (u = l[0] - a, f += u * u);\n l[1] < -c ? (u = l[1] + c, f += u * u) : l[1] > c && (u = l[1] - c, f += u * u);\n l[2] < -h ? (u = l[2] + h, f += u * u) : l[2] > h && (u = l[2] - h, f += u * u);\n return f;\n }(t, e, n));\n }\n var us = [],\n fs = [],\n ds = [],\n ms = [],\n ps = [];\n var ys = 2 * Math.PI;\n var bs = function () {\n function bs(t, e, n, r) {\n _classCallCheck(this, bs);\n this.west = t, this.south = e, this.east = n, this.north = r;\n }\n return _createClass(bs, null, [{\n key: \"contains\",\n value: function contains(t, e) {\n var n = e[0];\n var r = e[1],\n s = t.west;\n var i = t.east;\n return i < s && (i += ys, n < 0 && (n += ys)), (n > s || De(n, s, 1e-14)) && (n < i || De(n, i, 1e-14)) && r >= t.south && r <= t.north;\n } },\n {\n key: \"southwest\",\n value: function southwest(t, e) {\n return e[0] = t.west, e[1] = t.south, e[2] = 0, e;\n } },\n {\n key: \"northeast\",\n value: function northeast(t, e) {\n return e[0] = t.east, e[1] = t.north, e[2] = 0, e;\n } },\n {\n key: \"southeast\",\n value: function southeast(t, e) {\n return e[0] = t.east, e[1] = t.south, e[2] = 0, e;\n } },\n {\n key: \"northwest\",\n value: function northwest(t, e) {\n return e[0] = t.west, e[1] = t.north, e[2] = 0, e;\n } }]);\n\n }();\n var gs = [0, 0, 1];\n function vs(t, e) {\n return Ae(e, t[0], t[1], t[2]);\n }\n var ws = function () {\n function ws(t, e) {\n _classCallCheck(this, ws);\n this.normal = n.vec3.copy([], t), this.distance = e;\n }\n return _createClass(ws, null, [{\n key: \"fromPointNormal\",\n value: function fromPointNormal(t, e, r) {\n var s = -n.vec3.dot(e, t);\n return n.vec3.copy(r.normal, e), r.distance = s, r;\n } }]);\n\n }();\n var Ts = [],\n Ms = [],\n _s = [],\n Os = [],\n As = [],\n xs = [],\n Is = [],\n Ss = [],\n Cs = [],\n ks = [],\n Ns = new ws([1, 0, 0], 0),\n Ls = [];\n var Es = function () {\n function Es(t) {\n _classCallCheck(this, Es);\n this.southwestCornerCartesian = [], this.northeastCornerCartesian = [], this.westNormal = [], this.eastNormal = [], this.southNormal = [], this.northNormal = [], this.rectangle = new (Function.prototype.bind.apply(bs, [null].concat(_toConsumableArray(t))))(), this.minimumHeight = t[4], this.maximumHeight = t[5], this.computeBox(this.rectangle);\n }\n return _createClass(Es, [{\n key: \"distanceToCamera\",\n value: function distanceToCamera(t, e) {\n var r = 0;\n if (!bs.contains(this.rectangle, e)) {\n var _e55 = this.southwestCornerCartesian,\n _s29 = this.northeastCornerCartesian,\n _i21 = this.westNormal,\n _o18 = this.southNormal,\n _a8 = this.eastNormal,\n _c4 = this.northNormal,\n _h4 = n.vec3.subtract(Ls, t, _e55),\n _l3 = n.vec3.dot(_h4, _i21),\n _u3 = n.vec3.dot(_h4, _o18),\n _f = n.vec3.subtract(Ls, t, _s29),\n _d = n.vec3.dot(_f, _a8),\n _m2 = n.vec3.dot(_f, _c4);\n _l3 > 0 ? r += _l3 * _l3 : _d > 0 && (r += _d * _d), _u3 > 0 ? r += _u3 * _u3 : _m2 > 0 && (r += _m2 * _m2);\n }\n var s = e[2],\n i = this.minimumHeight,\n o = this.maximumHeight;\n if (s > o) {\n var _t79 = s - o;\n r += _t79 * _t79;\n } else if (s < i) {\n var _t80 = i - s;\n r += _t80 * _t80;\n }\n return Math.sqrt(r);\n } },\n {\n key: \"computeBox\",\n value: function computeBox(t) {\n var e = this;\n vs(bs.southwest(t, Ms), e.southwestCornerCartesian), vs(bs.northeast(t, Ms), e.northeastCornerCartesian), Ts[0] = t.west, Ts[1] = .5 * (t.south + t.north), Ts[2] = 0;\n var r = vs(Ts, _s),\n s = n.vec3.cross(As, r, gs);\n n.vec3.normalize(e.westNormal, s), Ts[0] = t.east;\n var i = vs(Ts, Ss),\n o = n.vec3.cross(As, gs, i);\n n.vec3.normalize(e.eastNormal, o);\n var a = n.vec3.subtract(As, r, i),\n c = n.vec3.normalize(Os, a),\n h = t.south;\n var l;\n if (h > 0) {\n Ts[0] = .5 * (t.west + t.east), Ts[1] = h;\n var _r34 = vs(Ts, Cs);\n n.vec3.copy(ks, c);\n var _s30 = ws.fromPointNormal(e.southwestCornerCartesian, e.westNormal, Ns);\n Rs(Cs, ks, _s30, e.southwestCornerCartesian), l = Be(_r34, xs);\n } else l = Fe(bs.southeast(t, Ms), xs);\n var u = n.vec3.cross(Is, l, a);\n n.vec3.normalize(e.southNormal, u);\n var f = t.north;\n var d;\n if (f < 0) {\n Ts[0] = .5 * (t.west + t.east), Ts[1] = f;\n var _r35 = vs(Ts, Cs);\n n.vec3.scale(ks, c, -1);\n var _s31 = ws.fromPointNormal(e.northeastCornerCartesian, e.eastNormal, Ns);\n Rs(Cs, ks, _s31, e.northeastCornerCartesian), d = Be(_r35, xs);\n } else d = Fe(bs.northwest(t, Ms), xs);\n var m = n.vec3.cross(Is, a, d);\n n.vec3.normalize(e.northNormal, m);\n } }]);\n\n }();\n function Rs(t, e, r, s) {\n var i = t,\n o = e,\n a = r.normal,\n c = n.vec3.dot(a, o);\n if (Math.abs(c) < 1e-15) return;\n var h = (-r.distance - n.vec3.dot(a, i)) / c;\n return h < 0 ? void 0 : (s = n.vec3.scale(s, o, h), n.vec3.add(s, i, s));\n }\n function Ps(t) {\n return [t.xmin, t.ymin, t.xmax, t.ymax];\n }\n var Us = s.BBOXUtil,\n Bs = {\n \"services\": [],\n \"maxGPUMemory\": s.Browser.mobile ? 32 : 1536,\n \"retireInterval\": 2e3,\n \"loadingLimitOnInteracting\": 5,\n \"loadingLimit\": 10,\n \"debug\": !1,\n \"meshLimitPerFrame\": 1,\n \"i3sNodepageLimitPerFrame\": 1,\n \"enableI3SCompressedGeometry\": !0,\n \"forceI3SCompressedGeometry\": !0,\n \"onlyCacheNoContentTileWhenError\": !0,\n \"picking\": !0,\n \"pickingPoint\": !0,\n \"geometryEvents\": !1,\n \"alwaysShowTopTiles\": !0,\n \"antialias\": !1,\n \"offset\": [0, 0],\n \"renderer\": \"gl\",\n \"forceRenderOnZooming\": !0,\n \"forceRenderOnRotating\": !0,\n \"forceRenderOnMoving\": !0,\n \"optionalExtensions\": [\"ANGLE_instanced_arrays\", \"OES_element_index_uint\", \"OES_standard_derivatives\", \"OES_vertex_array_object\", \"OES_texture_half_float\", \"OES_texture_half_float_linear\", \"OES_texture_float\", \"OES_texture_float_linear\", \"WEBGL_depth_texture\", \"EXT_shader_texture_lod\", \"WEBGL_compressed_texture_astc\", \"WEBGL_compressed_texture_etc\", \"WEBGL_compressed_texture_etc1\", \"WEBGL_compressed_texture_pvrtc\", \"WEBGL_compressed_texture_s3tc\", \"WEBGL_compressed_texture_s3tc_srgb\"] },\n\n Fs = [0, 0, 0],\n Gs = [0, 0, 0],\n Ds = [0, 0, 0],\n js = [0, 0, 0],\n zs = [0, 0, 0],\n Hs = [0, 0, 0],\n qs = [0, 0, 0],\n $s = [1, 1, 1],\n Vs = [1, 1, 1],\n Js = [0, 0, 0, 0],\n Ys = [],\n Zs = new s.Coordinate(0, 0),\n Ks = new s.Point(0, 0),\n Xs = [0, 0, 0, 0, 0, 0, 0, 0, 0],\n Ws = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n Qs = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n ti = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n ei = new s.Point(0, 0),\n ni = n.mat4.identity([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]),\n ri = [0, 0],\n si = [0, 0, 0],\n ii = [1, 1, 1],\n oi = [0, 0, 0],\n ai = [0, 0, 0],\n ci = [0, 0, 0, 0],\n hi = [1, 1, 1, 1, -1, 1, -1, -1, 1, -1, 1, 1, 1, 1, -1, 1, -1, -1, -1, -1, -1, -1, 1, -1];\n var li = function (_n$MaskLayerMixin) {\n function li(t, e) {\n var _this19;\n _classCallCheck(this, li);\n _this19 = _callSuper(this, li, [t, e]), _this19.isGeo3DTilesLayer = !0, _this19.Ze(), _this19.Ke = [];\n return _this19;\n }\n _inherits(li, _n$MaskLayerMixin);\n return _createClass(li, [{\n key: \"Ze\",\n value: function Ze() {\n var t = this.options.services.map(function (t) {\n return t.url;\n });\n this.Xe = this.Xe || {}, this.Pe = this.Pe || [];\n for (var _e56 = 0; _e56 < t.length; _e56++) {\n var _n53 = t[_e56];\n var _r36 = this.Xe[_n53];\n void 0 === _r36 && (_r36 = this.Xe[_n53] = this.Pe.length), this.Pe[_r36] = di(_n53, _r36, this.options.services[_e56]);\n }\n this.fire(\"rootready\", {\n roots: this.Pe.slice(0) });\n\n } },\n {\n key: \"showService\",\n value: function showService(t) {\n return this.updateService(t, {\n visible: !0 }),\n this;\n } },\n {\n key: \"hideService\",\n value: function hideService(t) {\n return this.updateService(t, {\n visible: !1 }),\n this;\n } },\n {\n key: \"setToRedraw\",\n value: function setToRedraw() {\n return this.We(), this;\n } },\n {\n key: \"addService\",\n value: function addService(t) {\n return this.options.services = this.options.services || [], this.options.services.push(t), this.Ze(), this.We(), this;\n } },\n {\n key: \"updateService\",\n value: function updateService(t, e) {\n if (!e) return this;\n var n = this.options.services;\n var r = !1;\n n && n[t] && (r = !(yi(n[t].coordOffset, e.coordOffset) && yi(n[t].heightOffset, e.heightOffset) && yi(n[t].scale, e.scale) && yi(n[t].rotation, e.rotation)), yt(n[t], e));\n var s = n[t].url,\n i = this.Xe[s],\n o = this.Pe && this.Pe[i];\n return o && (pt(e.visible) || (o.visible = e.visible), r && o.version++), this.We(), this;\n } },\n {\n key: \"removeService\",\n value: function removeService(t) {\n var e = this.options.services;\n if (e && e[t]) {\n var _n54 = e[t].url,\n _r37 = this.Xe[_n54];\n this.Pe[_r37] && (this.Pe[_r37] = null), delete this.Xe[_n54], e.splice(t, 1);\n }\n return this.We(), this;\n } },\n {\n key: \"getTileUrl\",\n value: function getTileUrl(t, e) {\n var n = e && e.service && e.service.subdomains;\n if (n && e.domainKey) {\n var _r38 = n.length;\n if (_r38) {\n var _s32 = [].concat(_toConsumableArray(t)).reduce(function (t, e) {\n return t + e.charCodeAt(0);\n }, 0) % _r38;\n return t.replace(e.domainKey, n[_s32]);\n }\n }\n return t;\n } },\n {\n key: \"getExtent\",\n value: function getExtent(t) {\n if (!t && 0 !== t) {\n var _t81 = new s.Extent();\n for (var _e57 = 0; _e57 < this.Pe.length; _e57++) {\n var _n55 = this.Pe[_e57];\n if (_n55 && _n55.boundingVolume) {\n var _e58 = this.boundingVolumeToExtent(_n55);\n _t81._combine(_e58);\n }\n }\n return _t81;\n }\n var e = this.Pe[t];\n return e && e.boundingVolume ? this.boundingVolumeToExtent(e) : null;\n } },\n {\n key: \"boundingVolumeToExtent\",\n value: function boundingVolumeToExtent(t) {\n var e = t.boundingVolume.Qe ? ni : t.matrix,\n r = this.getMap(),\n i = \"identity\" === r.getProjection().code.toLowerCase(),\n o = this.getRenderer();\n if (t.boundingVolume.region) {\n var _e59 = t.boundingVolume.region;\n return new s.Extent(Tt(_e59[0]), Tt(_e59[1]), Tt(_e59[2]), Tt(_e59[3]));\n }\n if (t.boundingVolume.sphere) {\n var _a9 = t.boundingVolume.sphere,\n _c5 = Ne([], n.vec3.transformMat4([0, 0, 0], _a9, e));\n i && o.Ve(_c5, _c5);\n var _h5 = _a9[3],\n _l4 = r.locate(_c5, -_h5, _h5),\n _u4 = r.locate(_c5, _h5, -_h5);\n return new s.Extent(_l4, _u4);\n }\n if (t.boundingVolume.box) {\n var _a10 = t.boundingVolume.box,\n _c6 = n.vec3.transformMat4([0, 0, 0], _a10, e),\n _h6 = new s.Coordinate(Ne([], _c6));\n i && o.Ve(_h6, _h6);\n var _l5 = _a10.slice(3);\n n.mat3.multiply(_l5, n.mat3.fromMat4([0, 0, 0, 0, 0, 0, 0, 0, 0], t.matrix), _l5);\n var _u5 = n.vec3.length(_l5.slice(0, 3)),\n _f2 = n.vec3.length(_l5.slice(3, 6)),\n _d2 = n.vec3.length(_l5.slice(6, 9)),\n _m3 = Math.max(_u5, _f2, _d2),\n _p3 = r.locate(_h6, -_m3, _m3),\n _y3 = r.locate(_h6, _m3, -_m3);\n return new s.Extent(_p3, _y3);\n }\n return null;\n } },\n {\n key: \"getRootTiles\",\n value: function getRootTiles() {\n return this.Pe;\n } },\n {\n key: \"getTiles\",\n value: function getTiles() {\n var t = this.getRenderer();\n if (!t.ready) return this.We(), {\n tiles: Ys };\n\n var e = this.getMap(),\n r = e.cameraPosition,\n s = e.pointAtResToDistance(r[2], 0, e.getGLRes()),\n i = this.tn(r);\n this.nn = this.nn || [0, 0, 0], n.vec3.set(this.nn, wt(i.x), wt(i.y), s), this.rn = Ae(this.rn || [], this.nn[0], this.nn[1], this.nn[2]), this.sn = 2 * Math.tan(.5 * wt(e.getFov()));\n var o = e.projViewMatrix;\n var a;\n if (e.getPitch() <= 80) {\n var _t82 = e.getExtent(),\n _n56 = _t82.getWidth() / 2,\n _r39 = _t82.getHeight() / 2;\n _t82.xmin -= _n56, _t82.ymin -= _r39, _t82.xmax += _n56, _t82.ymax += _r39, a = Ps(_t82);\n }\n var c = (this.getMasks() || []).filter(function (t) {\n return t && t instanceof n.ClipOutsideMask;\n });\n c.forEach(function (t) {\n if (!t.maskGeoJSON && t.toGeoJSON) try {\n t.maskGeoJSON = t.toGeoJSON();\n var _e60 = t.getExtent();\n t.maskGeoJSON.bbox = Ps(_e60);\n } catch (t) {\n console.error(t);\n }\n });\n var h = {\n children: [],\n level: -1 };\n\n var l = h;\n var u = [];\n for (var _e61 = 0; _e61 < this.Pe.length; _e61++) {\n var _n57 = this.Pe[_e61];\n if (!_n57 || !_n57.visible) continue;\n var _r40 = _n57.service,\n _s33 = [_n57],\n _i22 = this.an(_e61);\n for (; _s33.length > 0;) {\n var _e62 = _s33.pop();\n for (_e62.id || this.cn(_e62); l.level >= _e62.ke;) l = l.parent;\n var _n58 = this.hn(_e62, _i22, o, a, c);\n if (_e62.service = _r40, !(_n58 === bi.VISIBLE || _n58 !== bi.OUT_OF_FRUSTUM && this.options.alwaysShowTopTiles && pi(_e62))) {\n var _t83 = l;\n for (; _t83 && !_t83.content;) _t83 = _t83.parent;\n _n58 === bi.SCREEN_ERROR_TOO_SMALL && _t83 && _t83.content && this.ln(u, _t83);\n continue;\n }\n _e62.ft < 1 / 0 && this.un(_e62);\n var _h7 = this.Ne(_e62, l);\n l.children.push(_h7);\n var _f3 = _e62.children,\n _d3 = _f3 && _f3.length,\n _m4 = _h7.content;\n if (_m4 && (!_d3 || _n58 === bi.SCREEN_ERROR_TOO_SMALL) && this.ln(u, _h7), _n58 !== bi.SCREEN_ERROR_TOO_SMALL && _d3) {\n _m4 && \"add\" === _e62.refine && this.ln(u, _h7), l = _h7;\n var _n59 = _f3[0].parent;\n var _r41 = !1;\n for (var _i23 = 0, _o19 = _f3.length; _i23 < _o19; _i23++) {\n if (_n59) {\n var _e63 = t.getCachedTile(_f3[_i23].id);\n if (_e63 && _e63.error && 404 !== _e63.error.status) continue;\n _r41 = !0;\n } else {\n _r41 = !0, _f3[_i23].parent = _e62, _f3[_i23].xt = _e62.xt, _f3[_i23].baseUrl = _e62.baseUrl;\n var _t84 = _f3[_i23].content && (_f3[_i23].content.url || _f3[_i23].content.uri);\n _t84 && (Ct(_t84) || _t84.indexOf(\"i3s:\") >= 0 ? _f3[_i23].baseUrl = _e62.baseUrl : Pt(_t84) ? _f3[_i23].content.url = _e62.baseUrl + _t84 : _f3[_i23].baseUrl = _t84.substring(0, _t84.lastIndexOf(\"/\") + 1));\n }\n _s33.push(_f3[_i23]);\n }\n !_r41 && _m4 && this.ln(u, _h7);\n }\n }\n }\n return {\n root: h,\n tiles: u };\n\n } },\n {\n key: \"ln\",\n value: function ln(t, e) {\n var _e$node = e.node,\n n = _e$node.viewerRequestVolume,\n r = _e$node.matrix;\n n && !function (t, e, n, r) {\n if (n.region) {\n var _e64 = n.region;\n if (t[0] >= _e64[0] && t[0] <= _e64[2] && t[1] >= _e64[1] && t[1] <= _e64[3]) return !0;\n } else {\n if (n.sphere) return ui(n, e, r) <= 0;\n if (n.box) return 0 === fi(n, e, r);\n }\n return !1;\n }(this.nn, this.rn, n, r) || t.push(e);\n } },\n {\n key: \"Ne\",\n value: function Ne(t, e) {\n return {\n id: t.id,\n node: t,\n children: [],\n level: t.ke,\n parent: e,\n content: t.content && t.content.url };\n\n } },\n {\n key: \"cn\",\n value: function cn(t) {\n var e = this.getId();\n t.id = e + \":\" + s.Util.GUID(), t.matrix = t.transform || n.mat4.identity([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), t.dn = this.mn(t), t.parent && (function (t) {\n return t.content && t.content.uri && t.content.uri.indexOf(\"i3s:\") >= 0;\n }(t) || (t.matrix = n.mat4.multiply(t.matrix, t.parent.matrix, t.matrix)), t.H = t.parent.H, void 0 === t.ke && (t.ke = t.parent.ke + 1), t.maxExtent = t.parent.maxExtent), t.refine = t.refine && t.refine.toLowerCase() || \"replace\", t.content && !t.content.url && t.content.uri && (t.content.url = t.content.uri);\n } },\n {\n key: \"j\",\n value: function j(t) {\n return this.Pe[t].service;\n } },\n {\n key: \"pn\",\n value: function pn(t) {\n var e = t.boundingVolume;\n if (!e || e.Qe && !this.yn(t)) return;\n var r = this.j(t.H),\n s = r.heightOffset || 0,\n i = this.options.offset,\n o = bt(i) || i[0] || i[1],\n a = r.coordOffset || ri;\n if (!Array.isArray(a)) throw new Error(\"service.coordOffset must be an array\");\n if (!e.Qe && (!t.boundingVolume || !s && n.mat4.exactEquals(t.matrix, ni) && !o && a === ri)) return;\n e.box && e.region && delete e.region;\n var c = e.region,\n h = e.box,\n l = e.sphere;\n if (e.coordOffset = [a[0], a[1]], e.heightOffset = s, c) {\n e.originalVolume || (e.originalVolume = c.slice(0));\n var _t85 = e.originalVolume,\n _n60 = this.bn([Tt(_t85[0]), Tt(_t85[1])]);\n c[0] = wt(_n60.x + a[0]), c[1] = wt(_n60.y + a[1]);\n var _r42 = this.bn([Tt(_t85[2]), Tt(_t85[3])]);\n c[2] = wt(_r42.x + a[0]), c[3] = wt(_r42.y + a[1]), c[4] = _t85[4] + s + (a[2] || 0), c[5] = _t85[5] + s + (a[2] || 0);\n } else if (h || l) {\n e.originalVolume || (e.originalVolume = (h || l).slice(0));\n var _r43 = h || l,\n _i24 = e.originalVolume,\n _o20 = n.vec3.transformMat4(Fs, _i24, t.matrix),\n _c7 = Ne(Gs, _o20),\n _u6 = this.bn([_c7[0] + a[0], _c7[1] + a[1]]);\n _c7[0] = _u6.x, _c7[1] = _u6.y, _c7[2] += s + (a[2] || 0), Ae(_r43, wt(_c7[0]), wt(_c7[1]), _c7[2]);\n }\n e.Qe = !0;\n try {\n t.extent = this.boundingVolumeToExtent(t);\n } catch (t) {\n console.error(t);\n }\n } },\n {\n key: \"yn\",\n value: function yn(t) {\n var e = t.boundingVolume,\n n = this.j(t.H),\n r = n.heightOffset || 0,\n s = n.coordOffset || ri;\n return e.coordOffset[0] !== s[0] || e.coordOffset[1] !== s[1] || e.heightOffset !== r;\n } },\n {\n key: \"mn\",\n value: function mn(t) {\n return void 0 === t.geometricError || !t.boundingVolume;\n } },\n {\n key: \"un\",\n value: function un(t) {\n var e = t.parent;\n for (; e && e.dn && !(e.ft <= t.ft);) e.ft = t.ft, e = t.parent;\n } },\n {\n key: \"onTileLoad\",\n value: function onTileLoad(t, e) {\n if (t.children && (!e.children || !e.children.length)) {\n e.children = t.children;\n var _n61 = e.content.url;\n e.baseUrl = _n61.substring(0, _n61.lastIndexOf(\"/\") + 1), this.We();\n }\n } },\n {\n key: \"onTilesetLoad\",\n value: function onTilesetLoad(t, e, r) {\n if (!t) return void console.warn(\"invalid tileset at : \" + r);\n var s = (t.asset && t.asset.gltfUpAxis || e && e.xt || \"Y\").toUpperCase();\n t.root.baseUrl = r.substring(0, r.lastIndexOf(\"/\") + 1);\n var i = r.indexOf(\"realspace/\") > -1;\n 0 === e.ke && t.asset && t.asset.s3mType && i && (t.root.baseUrl += \"data/path/\");\n var o = t.asset.i3s;\n if (t.root.xt = s, e) {\n var _r44 = e.boundingVolume,\n _s34 = e.gn;\n _s34 && delete e.gn, yt(e, t.root), e.refine = e.refine && e.refine.toLowerCase() || \"replace\", _r44 && (e.boundingVolume = _r44);\n var _i25 = t.root.transform;\n if (_s34) {\n var _t86 = this.j(e.H);\n _t86.ecefTransform && (_i25 = n.mat4.multiply([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], _t86.ecefTransform, _i25 || ni));\n }\n _i25 && (e.parent ? o || (e.matrix = n.mat4.multiply([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], e.parent.matrix, _i25)) : e.matrix = n.mat4.multiply([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], e.matrix, _i25)), delete e.content, t.root.content && (e.content = t.root.content), e.dn = this.mn(e);\n var _a11 = e.content && (e.content.url || e.content.uri);\n _a11 && e.content.uri && (e.content.url = e.content.uri, delete e.content.uri), !o && _a11 && !Ct(_a11) && Pt(_a11) && (e.content.url = e.baseUrl + _a11), t.root && !e.parent && this.vn(e);\n }\n this.We(), this.fire(\"loadtileset\", {\n tileset: t,\n index: e && e.H,\n url: r });\n\n } },\n {\n key: \"wn\",\n value: function wn(t, e, n) {\n if (!t.extent || !Us) return !0;\n var r = t.extent;\n if (ci[0] = r.xmin, ci[1] = r.ymin, ci[2] = r.xmax, ci[3] = r.ymax, e) {\n if (!Us.bboxIntersect(ci, e)) return !1;\n }\n if (n.length) {\n for (var _t87 = 0, _e65 = n.length; _t87 < _e65; _t87++) {\n var _e66 = n[_t87].maskGeoJSON;\n if (!_e66 || !_e66.bbox || Us.bboxInMask(ci, _e66)) return !0;\n }\n return !1;\n }\n return !0;\n } },\n {\n key: \"hn\",\n value: function hn(t, e, n, r, s) {\n if (!this.wn(t, r, s)) return bi.OUT_OF_FRUSTUM;\n if (t.ft = 1 / 0, 0 === t.ke || t.dn) return this.vn(t), bi.VISIBLE;\n if (this.pn(t), !this.Tn(t, e, n)) return bi.OUT_OF_FRUSTUM;\n if (0 === t.geometricError) return bi.VISIBLE;\n var i = this.j(t.H).maximumScreenSpaceError;\n null == i && (i = 16);\n var o = this.Mn(t);\n return 0 === o && t.parent && (o = .5 * (t.parent._n || 0)), o >= i ? bi.VISIBLE : bi.SCREEN_ERROR_TOO_SMALL;\n } },\n {\n key: \"Kt\",\n value: function Kt(t, e) {\n e || (e = new s.Point(0, 0));\n var n = this.getMap();\n return n.coordToPointAtRes(t, n.getGLRes(), e);\n } },\n {\n key: \"Tn\",\n value: function Tn(t, e, n) {\n var r = t.id;\n var s = this.Ke[r];\n var i = t.boundingVolume,\n o = i.region,\n a = i.box,\n h = i.sphere,\n l = this.On(t.H),\n u = this.getRenderer();\n s && s.version === l.version || (o ? s = this.Ke[r] = this.An(t) : a ? s = this.Ke[r] = this.xn(t) : h && (s = this.Ke[r] = this.In(t)), s.version = l.version, t.dt && (u.Dt(t.dt), delete t.dt));\n return this.j(t.H).debug && (this.Ke[r].node = t, u.Ft(t)), s.obbox ? function (t, e, n) {\n M(t);\n for (var r = 0; r < 6; r++) if (!T(c[r], e)) return !1;\n return !0;\n }(n, s.obbox) : !!h && function (t, e, n) {\n M(t);\n for (var r = e[0], s = -e[1], i = 0; i < 6; i++) if (O(c[i], r) < s) return !1;\n return !0;\n }(n, s.sphereBox);\n } },\n {\n key: \"An\",\n value: function An(t) {\n var e = this.getMap(),\n r = e.getGLRes(),\n i = t.boundingVolume.region;\n var _ref11 = function (t) {\n var e = t[0],\n n = t[1],\n r = t[2],\n s = t[3],\n i = t[4],\n o = t[5],\n a = Ae([], e, n, i),\n c = Ae([], r, s, o),\n h = Ne(a, a),\n l = Ne(c, c);\n return {\n ws: h,\n en: l };\n\n }(i),\n o = _ref11.ws,\n a = _ref11.en;\n o = new s.Coordinate(o), a = new s.Coordinate(a);\n var c = e.coordToPointAtRes(o, r);\n c.z = e.altitudeToPoint(o.z, r);\n var h = e.coordToPointAtRes(a, r);\n h.z = e.altitudeToPoint(a.z, r);\n var l = [h.x, c.y, h.z, h.x, h.y, h.z, c.x, h.y, h.z, c.x, c.y, h.z, h.x, c.y, c.z, h.x, h.y, c.z, c.x, h.y, c.z, c.x, c.y, c.z],\n u = [(l[0] + l[18]) / 2, (l[1] + l[19]) / 2, (l[2] + l[20]) / 2],\n f = this.On(t.H);\n t !== f || f.Sn || (f.Sn = u);\n var d = this.Jt([], t),\n m = n.mat4.exactEquals(ni, d);\n if (!m) {\n n.vec3.transformMat4(u, u, d);\n var _t88 = Fs;\n for (var _e67 = 0; _e67 < l.length; _e67 += 3) {\n var _r45 = n.vec3.set(_t88, l[_e67], l[_e67 + 1], l[_e67 + 2]);\n m || (_r45 = n.vec3.transformMat4(_r45, _r45, d)), l[_e67] = _r45[0], l[_e67 + 1] = _r45[1], l[_e67 + 2] = _r45[2];\n }\n }\n var p = e.pointAtResToCoord(new s.Point(u), r);\n p.z = (o.z + a.z) / 2;\n var y = this.Cn(l, u);\n for (var _t89 = 0; _t89 < l.length; _t89++) l[_t89] -= u[_t89 % 3];\n return {\n obbox: y,\n boxPosition: l,\n boxCenter: u,\n boxCoord: p };\n\n } },\n {\n key: \"xn\",\n value: function xn(t) {\n var e = this.getRenderer(),\n r = this.getMap(),\n s = \"identity\" === r.getProjection().code.toLowerCase(),\n i = r.getGLRes(),\n _this$kn = this.kn(t),\n o = _this$kn.boxCenter,\n a = _this$kn.boxCoord,\n c = t.boundingVolume.box,\n h = function (t, e, n) {\n return function (t, e, n, r, s, i, o, a, c, h, l, u, f, d, m, p, y) {\n return t[0] = e || 0, t[1] = i || 0, t[2] = h || 0, t[3] = 0, t[4] = n || 0, t[5] = o || 0, t[6] = l || 0, t[7] = 0, t[8] = r || 0, t[9] = a || 0, t[10] = u || 0, t[11] = 0, t[12] = s || 0, t[13] = c || 0, t[14] = f || 0, t[15] = y, t;\n }(t, e[0], e[3], e[6], n[0], e[1], e[4], e[7], n[1], e[2], e[5], e[8], n[2], 0, 0, 0, 1);\n }([], this.Nn(c, t.matrix), c),\n l = this.Jt([], t),\n u = n.mat4.exactEquals(ni, l);\n u || n.vec3.transformMat4(o, o, l);\n var f = [],\n d = Fs;\n for (var _t90 = 0; _t90 < hi.length; _t90 += 3) {\n d[0] = hi[_t90], d[1] = hi[_t90 + 1], d[2] = hi[_t90 + 2], n.vec3.transformMat4(d, d, h), Ne(d, d), s && e.Ve(d, d);\n var _o21 = Zs.set(d[0], d[1], d[2]);\n r.coordToPointAtRes(_o21, i, Ks);\n var _a12 = n.vec3.set(d, Ks.x, Ks.y, r.altitudeToPoint(_o21.z, i));\n u || (_a12 = n.vec3.transformMat4(_a12, _a12, l)), f[_t90] = _a12[0], f[_t90 + 1] = _a12[1], f[_t90 + 2] = _a12[2];\n }\n var m = this.Cn(f, o);\n for (var _t91 = 0; _t91 < f.length; _t91++) f[_t91] -= o[_t91 % 3];\n return {\n obbox: m,\n boxPosition: f,\n boxCenter: o,\n boxCoord: a };\n\n } },\n {\n key: \"In\",\n value: function In(t) {\n var e = this.getMap(),\n n = this.getRenderer(),\n r = \"identity\" === e.getProjection().code.toLowerCase(),\n i = t.boundingVolume.sphere,\n o = i;\n var a = Fs;\n 0 === o[0] && 0 === o[1] && 0 === o[2] ? a = [0, 0, -6378137] : Ne(a, o), r && n.Ve(a, a);\n var c = new s.Coordinate(a),\n h = this.Kt(c, Ks).toArray();\n h[2] = e.altitudeToPoint(c.z, e.getGLRes());\n var l = this.Ln(c);\n return {\n boxCenter: h,\n boxCoord: c,\n sphereBox: [h, i[3] * l[2]] };\n\n } },\n {\n key: \"Cn\",\n value: function Cn(t, e) {\n var r = mi(zs, t, 0, 1, 4, 5),\n s = mi(Hs, t, 0, 3, 4, 7),\n i = mi(qs, t, 0, 1, 2, 3);\n return [].concat(_toConsumableArray(e), _toConsumableArray(n.vec3.sub(Fs, r, e)), _toConsumableArray(n.vec3.sub(Gs, s, e)), _toConsumableArray(n.vec3.sub(Ds, i, e)));\n } },\n {\n key: \"kn\",\n value: function kn(t) {\n var e = this.getMap(),\n n = this.getRenderer(),\n r = \"identity\" === e.getProjection().code.toLowerCase(),\n i = e.getGLRes(),\n o = t.boundingVolume.box.slice(0, 3);\n Ne(o, o), r && n.Ve(o, o);\n var a = new s.Coordinate(o),\n c = e.coordToPointAtRes(a, i);\n return {\n boxCenter: [c.x, c.y, e.altitudeToPoint(a.z, i)],\n boxCoord: a };\n\n } },\n {\n key: \"Jt\",\n value: function Jt(t, e) {\n var _n$quat;\n var r = this.On(e.H),\n s = this.j(e.H),\n i = r.Sn,\n o = n.mat4.fromTranslation(Ws, n.vec3.set(Fs, -i[0], -i[1], -i[2])),\n a = n.mat4.fromTranslation(Qs, i),\n c = s.rotation || si,\n h = (_n$quat = n.quat).fromEuler.apply(_n$quat, [Js].concat(_toConsumableArray(c))),\n l = s.scale;\n var u;\n u = Array.isArray(l) ? n.vec3.set(oi, l[0], l[1], l[2]) : l && n.vec3.set(oi, l, l, l) || ii;\n var f = n.mat4.fromRotationTranslationScale(ti, h, ai, u);\n return t = n.mat4.multiply(t, f, o), n.mat4.multiply(t, a, t);\n } },\n {\n key: \"vn\",\n value: function vn(t) {\n var e = this.j(t.H);\n if (!t.boundingVolume || this.En(t, e)) return;\n var n = t.boundingVolume.box,\n r = t.boundingVolume.region,\n s = t.boundingVolume.sphere;\n var i = null;\n n ? i = this.Rn(t).boxCenter : r ? i = this.Pn(t).boxCenter : s && (i = this.In(t).boxCenter);\n var o = e.heightOffset || 0,\n a = e.coordOffset || [0, 0];\n t.Un = [a[0] || 0, a[1] || 0], t.Bn = o, t.Sn = i;\n } },\n {\n key: \"En\",\n value: function En(t, e) {\n if (!t.Un) return !1;\n var n = e.coordOffset || ri;\n return t.Un[0] === n[0] && t.Un[1] === n[1] && t.Bn === (e.heightOffset || 0);\n } },\n {\n key: \"Pn\",\n value: function Pn(t) {\n return this.pn(t), this.An(t);\n } },\n {\n key: \"Rn\",\n value: function Rn(t) {\n return this.pn(t), this.kn(t);\n } },\n {\n key: \"Nn\",\n value: function Nn(t, e) {\n var r = t.slice(3, 12);\n var s = n.mat3.fromMat4(Xs, e);\n return r = n.mat3.multiply(r, s, r), r;\n } },\n {\n key: \"Ln\",\n value: function Ln(t) {\n var e = this.getMap(),\n r = e.distanceToPointAtRes(100, 100, e.getGLRes(), t);\n var s;\n return s = e.altitudeToPoint ? e.altitudeToPoint(100, e.getGLRes()) / 100 : r.y / 100, n.vec3.set($s, r.x / 100 * 1.01, r.y / 100 * 1.01, s), $s;\n } },\n {\n key: \"bn\",\n value: function bn(t) {\n Array.isArray(t) && (t = new s.Coordinate(t));\n var e = this.options.offset;\n if (bt(e) && (e = e.call(this, Array.isArray(t) ? new s.Coordinate(t) : t)), e[0] || e[1]) {\n var _n62 = this.getMap(),\n _r46 = _n62.getGLRes(),\n _s35 = _n62.coordToPointAtRes(t, _r46);\n return Ks.set(e[0], e[1]), _s35._sub(Ks), _n62.pointAtResToCoord(_s35, _r46);\n }\n return t;\n } },\n {\n key: \"On\",\n value: function On(t) {\n return this.Pe[t];\n } },\n {\n key: \"an\",\n value: function an(t) {\n var _this20 = this;\n var e = this.j(t).maxExtent;\n if (!e) return null;\n var n = this.Pe[t];\n return n.maxExtent || (n.maxExtent = new s.Extent(e).convertTo(function (t) {\n return _this20.Kt(t);\n })), n.maxExtent;\n } },\n {\n key: \"Mn\",\n value: function Mn(t) {\n var e = this.sn,\n r = t.geometricError;\n if (0 === r) return t._n = 0, 0;\n var s = this.j(t.H);\n var i = s.scale || 1;\n if (Array.isArray(i) && (i = n.vec3.length(i)), s.ecefTransform) {\n var _t92 = n.mat4.getScaling(Vs, s.ecefTransform);\n i *= n.vec3.len(_t92);\n }\n var o = this.getMap();\n var a;\n t.boundingVolume.region ? a = function (t, e, n) {\n t.Fn || (t.Fn = new Es(t.boundingVolume.region));\n return t.Fn.distanceToCamera(e, n);\n }(t, this.rn, this.nn) : t.boundingVolume.sphere ? a = ui(t.boundingVolume, this.rn) : t.boundingVolume.box && (a = fi(t.boundingVolume, this.rn));\n var c = Math.max(Math.abs(a), 1e-7),\n h = r * i * o.height / (c * e);\n return t.ft = a, t._n = h, h;\n } },\n {\n key: \"We\",\n value: function We() {\n var t = this.getRenderer();\n t && t.setToRedraw();\n } },\n {\n key: \"Gt\",\n value: function Gt(t) {\n return this.Ke[t];\n } },\n {\n key: \"identify\",\n value: function identify(t) {\n var e = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var n = this.getMap(),\n r = this.getRenderer();\n if (!n || !r) return [];\n Array.isArray(t) && (t = new s.Coordinate(t));\n var i = n.coordToContainerPoint(t);\n return this.identifyAtPoint(i, e);\n } },\n {\n key: \"identifyAtPoint\",\n value: function identifyAtPoint(t) {\n var e = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var n = [];\n if (!e.excludeMasks) {\n var _r47 = this.identifyMask(t, e);\n _r47 && _r47.length && Nt(n, _r47);\n }\n var r = this.getMap(),\n s = this.getRenderer();\n if (!r || !s) return [];\n var i = r.getDevicePixelRatio();\n return Nt(n, s.pick(t.x * i, t.y * i, e)), e && e.filter && !e.excludeMasks ? n.filter(function (t) {\n return e.filter(t);\n }) : n;\n } },\n {\n key: \"getCurrentBatchIDs\",\n value: function getCurrentBatchIDs() {\n var t = this.getMap(),\n e = this.getRenderer();\n return t && e ? e.Wt() : [];\n } },\n {\n key: \"highlight\",\n value: function highlight(t) {\n var e = this.getRenderer();\n return Array.isArray(t) || (t = [t]), e ? (e.highlight(t), this) : (this.J || (this.J = []), this.J.push(t), this);\n } },\n {\n key: \"ze\",\n value: function ze() {\n if (this.J) {\n for (var _t93 = 0; _t93 < this.J.length; _t93++) this.highlight(this.J[_t93]);\n delete this.J;\n }\n } },\n {\n key: \"cancelHighlight\",\n value: function cancelHighlight(t, e) {\n var n = this.getRenderer();\n return n ? (n.cancelHighlight(t, e), this) : this;\n } },\n {\n key: \"cancelAllHighlight\",\n value: function cancelAllHighlight() {\n var t = this.getRenderer();\n return t ? (t.cancelAllHighlight(), this) : this;\n } },\n {\n key: \"showOnly\",\n value: function showOnly(t) {\n var e = this.getRenderer();\n return e ? (e.showOnly(t), this) : (this.Z || (this.Z = []), this.Z.push(t), this);\n } },\n {\n key: \"Gn\",\n value: function Gn() {\n if (this.Z) {\n for (var _t94 = 0; _t94 < this.Z.length; _t94++) this.showOnly(this.Z[_t94]);\n delete this.Z;\n }\n } },\n {\n key: \"cancelShowOnly\",\n value: function cancelShowOnly(t) {\n var e = this.getRenderer();\n return e ? (e.cancelShowOnly(t), this) : this;\n } },\n {\n key: \"setServiceOpacity\",\n value: function setServiceOpacity(t, e) {\n var n = this.options.services[t];\n n && (n.opacity = e);\n return this.getRenderer() ? (this.We(), this) : this;\n } },\n {\n key: \"setServiceDebug\",\n value: function setServiceDebug(t, e) {\n var n = this.options.services[t];\n n && (n.debug = e);\n return this.getRenderer() ? (this.We(), this) : this;\n } },\n {\n key: \"tn\",\n value: function tn(t) {\n var e = this.getMap(),\n n = e.getGLRes();\n ei.set(t[0], t[1]);\n var r = e.pointAtResToCoord(ei, n);\n return \"identity\" === e.getProjection().code.toLowerCase() ? (Gs[0] = r.x, Gs[1] = r.y, this.getRenderer().Je(Fs, Gs), r.set(Fs[0], Fs[1]), r) : r;\n } },\n {\n key: \"toJSON\",\n value: function toJSON() {\n return {\n \"type\": this.getJSONType(),\n \"id\": this.getId(),\n \"options\": this.config() };\n\n } }],\n [{\n key: \"fromJSON\",\n value: function fromJSON(t) {\n return t && \"Geo3DTilesLayer\" === t.type ? new li(t.id, t.options) : null;\n } },\n {\n key: \"getEnuTransform\",\n value: function getEnuTransform(t) {\n var _n$quat2;\n var e = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [1, 1, 1];\n var r = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [0, 0, 0];\n var s = Ae([], t[0] * Math.PI / 180, t[1] * Math.PI / 180, t[2] || 0),\n i = fn(s, null, []),\n o = (_n$quat2 = n.quat).fromEuler.apply(_n$quat2, [[0, 0, 0, 0]].concat(_toConsumableArray(r))),\n a = n.mat4.fromRotationTranslationScale([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], o, [0, 0, 0], e);\n return n.mat4.multiply(a, i, a);\n } }]);\n\n }(n.MaskLayerMixin(s.Layer));\n function ui(t, e, r) {\n var s = t.sphere;\n r && (s = n.vec3.transformMat4([0, 0, 0], s, r));\n var i = n.vec3.dist(s, e),\n o = t.sphere[3];\n return i < o ? 0 : i - o;\n }\n function fi(t, e, r) {\n var s = t.box;\n var i = n.vec3.set(Fs, s[0], s[1], s[2]);\n r && (i = n.vec3.transformMat4([0, 0, 0], i, r));\n return ls(i, n.mat3.set(Xs, s[3], s[4], s[5], s[6], s[7], s[8], s[9], s[10], s[11]), e);\n }\n function di(t, e, r) {\n var s = (t = Mt(t)).indexOf(\"{s}\") >= 0 ? \"{s}\" : t.indexOf(\"%7Bs%7D\") >= 0 ? \"%7Bs%7D\" : null;\n return {\n version: 0,\n dn: !0,\n service: r,\n visible: !!pt(r.visible) || r.visible,\n baseUrl: t.substring(0, t.lastIndexOf(\"/\")) + \"/\",\n content: {\n url: t },\n\n refine: \"replace\",\n matrix: n.mat4.identity([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]),\n H: e,\n ke: 0,\n gn: !0,\n domainKey: s };\n\n }\n function mi(t, e, r, s, i, o) {\n var a = n.vec3.set(Fs, e[3 * r], e[3 * r + 1], e[3 * r + 2]),\n c = n.vec3.set(Gs, e[3 * s], e[3 * s + 1], e[3 * s + 2]),\n h = n.vec3.set(Ds, e[3 * i], e[3 * i + 1], e[3 * i + 2]),\n l = n.vec3.set(js, e[3 * o], e[3 * o + 1], e[3 * o + 2]);\n return t[0] = (a[0] + c[0] + h[0] + l[0]) / 4, t[1] = (a[1] + c[1] + h[1] + l[1]) / 4, t[2] = (a[2] + c[2] + h[2] + l[2]) / 4, t;\n }\n function pi(t) {\n if (!t.content || t.hasParentContent) return !1;\n var e = t.parent;\n if (e && (e.content || e.hasParentContent)) return t.hasParentContent || (t.hasParentContent = !0), !1;\n for (; e;) {\n if (e.content || e.hasParentContent) return t.hasParentContent || (t.hasParentContent = !0), !1;\n e = e.parent;\n }\n return !0;\n }\n function yi(t, e) {\n return Array.isArray(t) && Array.isArray(e) ? 2 === t.length ? n.vec2.exactEquals(t, e) : n.vec3.exactEquals(t, e) : t === e;\n }\n var bi;\n li.mergeOptions(Bs), li.registerRenderer(\"gl\", as), li.registerJSONType(\"Geo3DTilesLayer\"), function (t) {\n t[t.OUT_OF_FRUSTUM = 0] = \"OUT_OF_FRUSTUM\", t[t.SCREEN_ERROR_TOO_SMALL = 1] = \"SCREEN_ERROR_TOO_SMALL\", t[t.VISIBLE = 2] = \"VISIBLE\";\n }(bi || (bi = {}));\n var gi = null;\n function vi() {\n return gi || (gi = {\n \"image/crn\": Gt.crn && Gt.crn(),\n \"image/ktx2\": Gt.ktx2 && Gt.ktx2(),\n \"image/cttf\": Gt.ktx2 && Gt.ktx2(),\n \"draco\": Gt.draco && Gt.draco() }),\n gi;\n }\n var _Dt3 = Dt(),\n wi = _Dt3.Ajax,\n Ti = _Dt3.GLTFLoader;\n var Mi = function () {\n function Mi(t, e, n) {\n _classCallCheck(this, Mi);\n this.Dn = t, this.jn = e || Ti, this.Re = n, this.zn = vi();\n }\n return _createClass(Mi, [{\n key: \"load\",\n value: function load(t, e) {\n var _this21 = this;\n var n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var r = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var s = arguments.length > 4 ? arguments[4] : undefined;\n return e ? (r || (r = e.byteLength), this.Hn(t, e, n, r, s)) : wi.getArrayBuffer(t, {}).then(function (e) {\n var s = e.data;\n return r || (r = s.byteLength), _this21.Hn(t, s, n, r);\n });\n } },\n {\n key: \"Hn\",\n value: function Hn(t, e, n, r, s) {\n var i = s && s.maxTextureSize,\n o = this.qn(e, n, r, t);\n if (o.error) return Promise.resolve(o);\n var a = t.substring(0, t.lastIndexOf(\"/\"));\n var c;\n try {\n c = new this.jn(a, o.glb, {\n transferable: !0,\n requestImage: this.Dn,\n decoders: this.zn,\n supportedFormats: this.Re,\n maxTextureSize: i });\n\n } catch (t) {\n return Promise.resolve({\n error: t });\n\n }\n return c.load({\n skipAttributeTransform: !1 }).\n then(function (e) {\n e.url = \"\".concat(t, \"-\").concat(n, \"-\").concat(r);\n var s = c.transferables;\n for (var _t95 = 0; _t95 < o.transferables.length; _t95++) s.indexOf(o.transferables[_t95]) < 0 && s.push(o.transferables[_t95]);\n return {\n magic: \"b3dm\",\n count: o.count,\n transferables: s,\n featureTable: o.featureTable,\n batchTable: o.batchTable,\n batchTableBin: o.batchTableBin,\n gltf: e };\n\n });\n } },\n {\n key: \"qn\",\n value: function qn(t, e, n, r) {\n var s = new DataView(t, e, n),\n i = s.getUint32(4, !0);\n if (1 !== i) {\n var _t96 = \"Unsupported b3dm version: \" + i + \", url:\" + r;\n return console.warn(_t96), {\n error: _t96 };\n\n }\n if (s.getUint32(8, !0) !== s.byteLength) {\n var _t97 = \"Length in b3dm header is inconsistent with b3dm's byte length, url: \" + r;\n return console.warn(_t97), {\n error: _t97 };\n\n }\n var o,\n a = s.getUint32(12, !0),\n c = s.getUint32(16, !0),\n h = s.getUint32(20, !0),\n l = s.getUint32(24, !0),\n u = 28 + e;\n h >= 570425344 ? (u -= 8, o = a, h = c, l = 0, a = 0, c = 0) : l >= 570425344 && (u -= 4, o = h, h = a, l = c, a = 0, c = 0);\n var f = [t];\n var d, m, p;\n if (a > 0 ? (d = He(t, u, a), u += a, o = d.BATCH_LENGTH) : d = {\n \"BATCH_LENGTH\": o },\n c > 0 && (u += c), h > 0 && (m = qe(t, u, h), u += h, l > 0)) {\n var _e68 = $e(0, u, l);\n p = t.slice(_e68.offset, _e68.offset + _e68.byteLength), u += l, f.push(p);\n }\n var y = d.BATCH_LENGTH,\n b = {};\n if (d && d.BATCH_ID) {\n b.BATCH_ID = Je(d.BATCH_ID, t, undefined.offset, y);\n var _e69 = b.BATCH_ID.array && b.BATCH_ID.array.buffer;\n _e69 && f.indexOf(_e69) < 0 && f.push(_e69);\n }\n return {\n count: o,\n transferables: f,\n featureTable: d,\n batchTable: m,\n batchTableBin: p,\n b3dm: b,\n glb: {\n buffer: t,\n byteOffset: u,\n byteLength: s.byteLength + s.byteOffset - u } };\n\n\n } },\n {\n key: \"$n\",\n value: function $n() {\n return null;\n } }],\n [{\n key: \"createEmptyB3DM\",\n value: function createEmptyB3DM() {\n return {\n featureTable: null,\n batchTable: null,\n gltf: {} };\n\n } }]);\n\n }();\n var _Dt4 = Dt(),\n _i = _Dt4.Ajax,\n Oi = _Dt4.GLTFLoader;\n var Ai = function () {\n function Ai(t, e, n, r) {\n _classCallCheck(this, Ai);\n this.Dn = t, this.jn = e || Oi, this.Re = n, this.zn = vi(), this.Vn = r;\n }\n return _createClass(Ai, [{\n key: \"load\",\n value: function load(t, e) {\n var _this22 = this;\n var n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var r = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var s = arguments.length > 4 ? arguments[4] : undefined;\n return e ? (r || (r = e.byteLength), this.Hn(t, e, n, r, s)) : _i.getArrayBuffer(t, {}).then(function (e) {\n var s = e.data;\n return r || (r = s.byteLength), _this22.Hn(t, s, n, r);\n });\n } },\n {\n key: \"Hn\",\n value: function Hn(t, e, n, r, s) {\n var _this23 = this;\n return this.Jn(t, e, n, r, s).then(function (_ref12) {\n var s = _ref12.gltf,\n i = _ref12.transferables;\n var o = _this23.Yn(e, n, r, t);\n if (o.error) return Promise.resolve(o);\n for (var _t98 = 0; _t98 < i.length; _t98++) -1 === o.transferables.indexOf(i[_t98]) && o.transferables.push(i[_t98]);\n return delete s.transferables, Promise.resolve({\n magic: \"i3dm\",\n count: o.count,\n transferables: o.transferables,\n featureTable: o.featureTable,\n batchTable: o.batchTable,\n batchTableBin: o.batchTableBin,\n i3dm: o.i3dm,\n gltf: s });\n\n });\n } },\n {\n key: \"Jn\",\n value: function Jn(t, e, n, r, s) {\n var _this24 = this;\n var i = s && s.maxTextureSize,\n o = {\n transferable: !0,\n requestImage: this.Dn,\n decoders: this.zn,\n supportedFormats: this.Re,\n maxTextureSize: i },\n\n a = new DataView(e, n, r),\n c = 32 + a.getUint32(12, !0) + a.getUint32(16, !0) + a.getUint32(20, !0) + a.getUint32(24, !0);\n if (0 === a.getUint32(28, !0)) {\n var _r48 = At(new Uint8Array(e, c + n, a.byteLength - c));\n -1 == _r48.indexOf(\"://\") && (_r48 = t.substring(0, t.lastIndexOf(\"/\")) + \"/\" + _r48);\n return _r48.indexOf(\".glb\") > 0 ? _i.getArrayBuffer(_r48, {}).then(function (t) {\n return _this24.Zn(_r48, {\n buffer: t.data,\n byteOffset: 0 },\n o);\n }) : _i.getJSON(_r48, {}).then(function (t) {\n return _this24.Zn(_r48, t, o);\n });\n }\n {\n var _r49 = {\n buffer: e,\n byteOffset: c + n,\n byteLength: a.byteLength - c };\n\n return this.Zn(t, _r49, o);\n }\n } },\n {\n key: \"Zn\",\n value: function Zn(t, e, n) {\n var r = t.substring(0, t.lastIndexOf(\"/\")),\n s = new this.jn(r, e, n);\n return s.load({\n skipAttributeTransform: !0 }).\n then(function (n) {\n var r = 0,\n i = 0;\n return e.buffer && (r = e.byteOffset || 0, i = e.byteLength || 0), n.url = \"\".concat(t, \"-\").concat(r, \"-\").concat(i), {\n transferables: s.transferables,\n gltf: n };\n\n });\n } },\n {\n key: \"Yn\",\n value: function Yn(t, e, n, r) {\n var s = new DataView(t, e, n),\n i = s.getUint32(4, !0);\n if (1 !== i) {\n var _t99 = \"Unsupported pnts version: \" + i + \", url:\" + r;\n return console.warn(_t99), {\n error: _t99 };\n\n }\n if (s.getUint32(8, !0) !== s.byteLength) {\n var _t100 = \"Length in pnts header is inconsistent with pnts's byte length, url: \" + r;\n return console.warn(_t100), {\n error: _t100 };\n\n }\n var o = [t],\n _en = en(s, 32 + e, o),\n a = _en.featureTable,\n c = _en.featureTableBin,\n h = _en.batchTable,\n l = _en.batchTableBin,\n u = {},\n f = a.INSTANCES_LENGTH;\n if (a.POSITION) {\n var _e70 = a.POSITION.byteOffset;\n u.POSITION = {\n byteStride: 0,\n byteOffset: 0,\n itemSize: 3,\n count: f,\n componentType: 5126,\n array: new Float32Array(t, _e70 + c.offset, 3 * f).slice() },\n o.push(u.POSITION.array.buffer);\n } else if (a.POSITION_QUANTIZED) {\n var _e71 = a.QUANTIZED_VOLUME_OFFSET,\n _n63 = a.QUANTIZED_VOLUME_SCALE,\n _r50 = a.POSITION_QUANTIZED.byteOffset;\n u.POSITION = {\n byteStride: 12,\n byteOffset: 0,\n itemSize: 3,\n count: f,\n componentType: 5126,\n array: this.Kn(new Uint16Array(t, _r50 + c.offset, 3 * f), _e71, _n63) },\n o.push(u.POSITION.array.buffer);\n }\n if (a.BATCH_ID) {\n u.BATCH_ID = Je(a.BATCH_ID, t, c.offset, f);\n var _e72 = u.BATCH_ID.array && u.BATCH_ID.array.buffer;\n _e72 && o.indexOf(_e72) < 0 && o.push(_e72);\n }\n if (a.NORMAL_UP) {\n var _e73 = a.NORMAL_UP.byteOffset;\n u.NORMAL_UP = {\n byteStride: 0,\n byteOffset: 0,\n itemSize: 3,\n count: f,\n componentType: 5126,\n array: new Float32Array(t, _e73 + c.offset, 3 * f).slice() },\n o.push(u.NORMAL_UP.array.buffer), _e73 = a.NORMAL_RIGHT.byteOffset, u.NORMAL_RIGHT = {\n byteStride: 0,\n byteOffset: 0,\n itemSize: 3,\n count: f,\n componentType: 5126,\n array: new Float32Array(t, _e73 + c.offset, 3 * f).slice() },\n o.push(u.NORMAL_RIGHT.array.buffer);\n } else if (a.NORMAL_UP_OCT32P) {\n var _e74 = a.NORMAL_UP_OCT32P.byteOffset;\n u.NORMAL_UP = {\n byteStride: 0,\n byteOffset: 0,\n itemSize: 3,\n count: f,\n componentType: 5126,\n array: this.Xn(new Uint16Array(t, _e74 + c.offset, 2 * f)) },\n o.push(u.NORMAL_UP.array.buffer), _e74 = a.NORMAL_RIGHT_OCT32P.byteOffset, u.NORMAL_RIGHT = {\n byteStride: 0,\n byteOffset: 0,\n itemSize: 3,\n count: f,\n componentType: 5126,\n array: this.Xn(new Uint16Array(t, _e74 + c.offset, 2 * f)) },\n o.push(u.NORMAL_RIGHT.array.buffer);\n }\n if (a.SCALE) {\n var _e75 = a.SCALE.byteOffset;\n u.SCALE = {\n byteStride: 0,\n byteOffset: 0,\n itemSize: 1,\n count: f,\n componentType: 5126,\n array: new Float32Array(t, _e75 + c.offset, f).slice() },\n o.push(u.SCALE.array.buffer);\n } else if (a.SCALE_NON_UNIFORM) {\n var _e76 = a.SCALE_NON_UNIFORM.byteOffset;\n u.SCALE_NON_UNIFORM = {\n byteStride: 0,\n byteOffset: 0,\n itemSize: 3,\n count: f,\n componentType: 5126,\n array: new Float32Array(t, _e76 + c.offset, 3 * f).slice() },\n o.push(u.SCALE_NON_UNIFORM.array.buffer);\n }\n return {\n count: f,\n batchTable: h,\n batchTableBin: l,\n featureTable: a,\n i3dm: u,\n transferables: o };\n\n } },\n {\n key: \"Xn\",\n value: function Xn(t) {\n var e = t.length / 2,\n n = new Float32Array(3 * e),\n r = [];\n for (var _s36 = 0; _s36 < e; _s36++) xi(r, t[2 * _s36], t[2 * _s36 + 1], 65535), n[3 * _s36] = r[0], n[3 * _s36 + 1] = r[1], n[3 * _s36 + 2] = r[2];\n return n;\n } },\n {\n key: \"Kn\",\n value: function Kn(t, e, n) {\n return tn(new Float32Array(t.length), t, e, n);\n } },\n {\n key: \"$n\",\n value: function $n() {\n return null;\n } }]);\n\n }();\n function xi(t, e, n, r) {\n if (t[0] = Ii(e, r), t[1] = Ii(n, r), t[2] = 1 - (Math.abs(t[0]) + Math.abs(t[1])), t[2] < 0) {\n var _e77 = t[0];\n t[0] = (1 - Math.abs(t[1])) * Si(_e77), t[1] = (1 - Math.abs(_e77)) * Si(t[1]);\n }\n return ne(t, t);\n }\n function Ii(t, e) {\n return function (t, e, n) {\n return t < e ? e : t > n ? n : t;\n }(t, 0, e = function (t, e) {\n if (null != t) return t;\n return e;\n }(e, 255)) / e * 2 - 1;\n }\n function Si(t) {\n return t < 0 ? -1 : 1;\n }\n var _Dt5 = Dt(),\n Ci = _Dt5.Ajax;\n var ki = function () {\n function ki() {\n _classCallCheck(this, ki);\n }\n return _createClass(ki, [{\n key: \"load\",\n value: function load(t, e) {\n var _this25 = this;\n var n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var r = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n return e ? (r || (r = e.byteLength), this.Hn(t, e, n, r)) : Ci.getArrayBuffer(t, {}).then(function (e) {\n var s = e.data;\n return r || (r = s.byteLength), _this25.Hn(t, s, n, r);\n });\n } },\n {\n key: \"Hn\",\n value: function Hn(t, e, n, r) {\n return this.Wn(e, n, r, t).then(function (t) {\n return t.error ? t : {\n magic: \"pnts\",\n count: t.count,\n transferables: t.transferables,\n featureTable: t.featureTable,\n batchTable: t.batchTable,\n batchTableBin: t.batchTableBin,\n pnts: t.pnts };\n\n });\n } },\n {\n key: \"Wn\",\n value: function Wn(t, e, n, r) {\n var _this26 = this;\n var s = new DataView(t, e, n),\n i = s.getUint32(4, !0);\n if (1 !== i) {\n var _t101 = \"Unsupported pnts version: \" + i + \", url:\" + r;\n return console.warn(_t101), {\n error: _t101 };\n\n }\n if (s.getUint32(8, !0) !== s.byteLength) {\n var _t102 = \"Length in pnts header is inconsistent with pnts's byte length, url: \" + r;\n return console.warn(_t102), {\n error: _t102 };\n\n }\n var o = [t],\n _en2 = en(s, e + 28, o),\n a = _en2.featureTable,\n c = _en2.featureTableBin,\n h = _en2.batchTable,\n l = _en2.batchTableBin,\n u = a.QUANTIZED_VOLUME_OFFSET,\n f = a.QUANTIZED_VOLUME_SCALE,\n d = a.POINTS_LENGTH;\n var m,\n p = {};\n if (a.extensions && a.extensions[\"3DTILES_draco_point_compression\"]) {\n p = a.extensions[\"3DTILES_draco_point_compression\"], m = new DataView(t, p.byteOffset + c.offset, p.byteLength);\n var _e78 = {\n attributes: p.properties,\n useUniqueIDs: !1 };\n\n return this.Qn || (this.Qn = vi().draco), this.Qn(m, _e78).then(function (e) {\n var n = e.attributes;\n !a.POSITION && !a.POSITION_QUANTIZED || n.POSITION || n.POSITION_QUANTIZED || (n.POSITION = a.POSITION, n.POSITION_QUANTIZED = a.POSITION_QUANTIZED), !(a.RGB || a.RGBA || a.RGB565) || n.RGB || n.RGBA || n.RGB565 || (n.RGB = a.RGB, n.RGBA = a.RGBA, n.RGB565 = a.RGB565), !a.NORMAL && !a.NORMAL_OCT16P || n.NORMAL || n.NORMAL_OCT16P || (n.NORMAL = a.NORMAL, n.NORMAL_OCT16P = a.NORMAL_OCT16P);\n var r = _this26.tr(t, e.attributes, c.offset, d, o, u, f);\n if (e.attributes.BATCH_ID) {\n var _t103 = e.attributes.BATCH_ID.array;\n r.BATCH_ID = {\n byteStride: 0,\n byteOffset: 0,\n itemSize: 1,\n count: _t103.length,\n componentType: Qe(_t103.constructor),\n array: _t103 },\n o.push(_t103.buffer);\n } else if (a.BATCH_ID || Object.keys(h).length) {\n a.BATCH_ID ? r.BATCH_ID = Je(a.BATCH_ID, t, c.offset, d) : r.BATCH_ID = Ni(d);\n var _e79 = r.BATCH_ID.array && r.BATCH_ID.array.buffer;\n _e79 && o.indexOf(_e79) < 0 && o.push(_e79);\n }\n return {\n count: d,\n batchTable: h,\n batchTableBin: l,\n featureTable: a,\n pnts: r,\n transferables: o };\n\n });\n }\n var y = this.tr(t, a, c.offset, d, o, u, f);\n if (a.BATCH_ID || Object.keys(h).length) {\n a.BATCH_ID ? y.BATCH_ID = Je(a.BATCH_ID, t, c.offset, d) : y.BATCH_ID = Ni(d);\n var _e80 = y.BATCH_ID.array && y.BATCH_ID.array.buffer;\n _e80 && o.indexOf(_e80) < 0 && o.push(_e80);\n }\n return Promise.resolve({\n count: d,\n batchTable: h,\n batchTableBin: l,\n featureTable: a,\n pnts: y,\n transferables: o });\n\n } },\n {\n key: \"tr\",\n value: function tr(t, e, n, r, s, i, o) {\n var a = {};\n if (e.POSITION) {\n var _e$POSITION = e.POSITION,\n _i26 = _e$POSITION.byteOffset,\n _o22 = _e$POSITION.array;\n _i26 = _i26 || 0;\n var _c8 = _o22 ? 0 : n;\n if (!_o22) {\n var _e81 = t.slice(_i26 + _c8, _i26 + _c8 + 3 * r * 4);\n _o22 = new Float32Array(_e81);\n }\n a.POSITION = {\n byteStride: 0,\n byteOffset: 0,\n itemSize: 3,\n count: r,\n componentType: 5126,\n array: _o22 },\n s.push(_o22.buffer);\n } else if (e.POSITION_QUANTIZED) {\n var _c9 = e.POSITION_QUANTIZED.byteOffset;\n var _h8 = e.POSITION_QUANTIZED.array;\n _c9 = _c9 || 0;\n var _l6 = _h8 ? 0 : n;\n a.POSITION = {\n byteStride: 0,\n byteOffset: 0,\n itemSize: 3,\n count: r,\n componentType: 5126,\n array: this.Kn(_h8 || new Uint16Array(t, _c9 + _l6, 3 * r), i, o) },\n s.push(a.POSITION.array.buffer);\n }\n if (e.RGBA) {\n var _e$RGBA = e.RGBA,\n _i27 = _e$RGBA.byteOffset,\n _o23 = _e$RGBA.array;\n _i27 = _i27 || 0;\n var _c10 = _o23 ? 0 : n;\n if (!_o23) {\n var _e82 = t.slice(_i27 + _c10, _i27 + _c10 + 4 * r);\n _o23 = new Uint8Array(_e82);\n }\n a.RGBA = {\n byteStride: 0,\n byteOffset: 0,\n itemSize: 4,\n count: r,\n componentType: 5121,\n array: _o23 },\n s.push(_o23.buffer);\n } else if (e.RGB) {\n var _e$RGB = e.RGB,\n _i28 = _e$RGB.byteOffset,\n _o24 = _e$RGB.array;\n _i28 = _i28 || 0;\n var _c11 = _o24 ? 0 : n;\n if (!_o24) {\n var _e83 = t.slice(_i28 + _c11, _i28 + _c11 + 3 * r);\n _o24 = new Uint8Array(_e83);\n }\n a.RGB = {\n byteStride: 0,\n byteOffset: 0,\n itemSize: 3,\n count: r,\n componentType: 5121,\n array: _o24 },\n s.push(_o24.buffer);\n } else if (e.RGB565) {\n var _e$RGB2 = e.RGB565,\n _i29 = _e$RGB2.byteOffset,\n _o25 = _e$RGB2.array;\n _i29 = _i29 || 0;\n var _c12 = _o25 ? 0 : n;\n if (!_o25) {\n var _e84 = t.slice(_i29 + _c12, _i29 + _c12 + 2 * r);\n _o25 = new Uint16Array(_e84);\n }\n a.RGB565 = {\n byteStride: 0,\n byteOffset: 0,\n itemSize: 1,\n count: r,\n componentType: 5123,\n array: _o25 },\n s.push(_o25.buffer);\n }\n if (e.NORMAL) {\n var _e$NORMAL = e.NORMAL,\n _i30 = _e$NORMAL.byteOffset,\n _o26 = _e$NORMAL.array;\n _i30 = _i30 || 0;\n var _c13 = _o26 ? 0 : n;\n if (!_o26) {\n var _e85 = t.slice(_i30 + _c13, _i30 + _c13 + 3 * r * 4);\n _o26 = new Float32Array(_e85);\n }\n a.NORMAL = {\n byteStride: 0,\n byteOffset: 0,\n itemSize: 3,\n count: r,\n componentType: 5126,\n array: _o26 },\n s.push(_o26.buffer);\n } else if (e.NORMAL_OCT16P) {\n var _e$NORMAL_OCT16P = e.NORMAL_OCT16P,\n _i31 = _e$NORMAL_OCT16P.byteOffset,\n _o27 = _e$NORMAL_OCT16P.array;\n _i31 = _i31 || 0;\n var _c14 = _o27 ? 0 : n;\n if (!_o27) {\n var _e86 = t.slice(_i31 + _c14, _i31 + _c14 + 2 * r);\n _o27 = new Uint8Array(_e86);\n }\n a.NORMAL_OCT16P = {\n byteStride: 0,\n byteOffset: 0,\n itemSize: 2,\n count: r,\n componentType: 5121,\n array: _o27 },\n s.push(_o27.buffer);\n }\n return a;\n } },\n {\n key: \"Kn\",\n value: function Kn(t, e, n) {\n return tn(new Float32Array(t.length), t, e, n);\n } },\n {\n key: \"$n\",\n value: function $n() {\n return null;\n } }]);\n\n }();\n function Ni(t) {\n var e = St(t),\n n = new e(t);\n for (var _e87 = 0; _e87 < t; _e87++) n[_e87] = _e87;\n return {\n byteStride: 0,\n byteOffset: 0,\n itemSize: 1,\n count: t,\n componentType: Qe(e),\n array: n };\n\n }\n var _Dt6 = Dt(),\n Li = _Dt6.Ajax,\n Ei = _Dt6.GLTFLoader;\n var Ri = function () {\n function Ri(t, e, n, r) {\n _classCallCheck(this, Ri);\n this.Re = n, this.Dn = t, this.jn = e || Ei, this.Vn = r;\n }\n return _createClass(Ri, [{\n key: \"load\",\n value: function load(t, e) {\n var _this27 = this;\n var n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var r = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var s = arguments.length > 4 ? arguments[4] : undefined;\n return e ? this.Hn(t, e, n, r, s) : Li.getArrayBuffer(t, {}).then(function (e) {\n var s = e.data;\n return _this27.Hn(t, s, n, r);\n });\n } },\n {\n key: \"Hn\",\n value: function Hn(t, e, n, r, s) {\n r || (r = e.byteLength);\n var i = this.er(e, t, n, r),\n o = [];\n for (var _n64 = 0; _n64 < i.length; _n64++) {\n var _r51 = void 0;\n if (\"b3dm\" === i[_n64].magic) _r51 = new Mi(this.Dn, this.jn, this.Re);else if (\"i3dm\" === i[_n64].magic) _r51 = new Ai(this.Dn, this.jn, this.Re, this.Vn);else if (\"pnts\" === i[_n64].magic) _r51 = new ki();else {\n if (\"cmpt\" !== i[_n64].magic) {\n console.warn(\"Unsupported magic in CMPT tile:\", i[_n64].magic);\n continue;\n }\n _r51 = new Ri(this.Dn, this.jn, this.Re, this.Vn);\n }\n o.push(_r51.load(t, e, i[_n64].offset, i[_n64].byteLength, s).then(function (t) {\n return t;\n }));\n }\n return Promise.all(o).then(function (t) {\n return {\n magic: \"cmpt\",\n tiles: t };\n\n });\n } },\n {\n key: \"er\",\n value: function er(t, e, n, r) {\n var s = new DataView(t, n, r),\n i = s.getUint32(4, !0);\n if (1 !== i) {\n var _t104 = \"Unsupported cmpt version: \" + i + \", url:\" + e;\n return console.warn(_t104), {\n error: _t104 };\n\n }\n if (16 === s.byteLength) return [];\n var o = [],\n a = s.getUint32(12, !0);\n var c = 16;\n for (var _e88 = 0; _e88 < a; _e88++) {\n var _e89 = je(s, c),\n _r52 = s.getUint32(c + 8, !0);\n o.push({\n magic: _e89,\n buffer: t,\n offset: c + n,\n byteLength: _r52 }),\n c += _r52;\n }\n return o;\n } }]);\n\n }();\n if (i.transcoders) {\n var _t105 = s.Map.VERSION;\n if (_t105.indexOf(\"1.0.0-beta\") >= 0 || _t105.indexOf(\"1.0.0-alpha\") >= 0) {\n var _t106 = i.transcoders.inject(a);\n s.registerWorkerAdapter(\"@maptalks/3dtiles\", _t106);\n } else s.registerWorkerAdapter(\"@maptalks/3dtiles\", function () {\n return i.transcoders.inject(a);\n });\n } else s.registerWorkerAdapter(\"@maptalks/3dtiles\", a);\n t.B3DMLoader = Mi, t.CMPTLoader = Ri, t.Geo3DTilesLayer = li, t.Geo3DTilesUtil = Rt, t.Geo3DTransform = Ge, \"undefined\" != typeof console && console.log(\"@maptalks/3dtiles v0.105.5\");\n });return module.exports;});", "requires": [], "buildLevel": 0, "fileName": "/dist/maptalks.3dtiles.js" } }