@aibee/crc-bmap 0.2.23 → 0.2.24-cr.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
- var rh=Object.create;var _s=Object.defineProperty;var ih=Object.getOwnPropertyDescriptor;var oh=Object.getOwnPropertyNames;var sh=Object.getPrototypeOf,ah=Object.prototype.hasOwnProperty;var Re=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports);var uh=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of oh(e))!ah.call(r,i)&&i!==t&&_s(r,i,{get:()=>e[i],enumerable:!(n=ih(e,i))||n.enumerable});return r};var pn=(r,e,t)=>(t=r!=null?rh(sh(r)):{},uh(e||!r||!r.__esModule?_s(t,"default",{value:r,enumerable:!0}):t,r));var Rs=Re((Uv,Is)=>{Is.exports=function(e,t){return e[0]=t[0],e[1]=t[1],e}});var Os=Re((Bv,Ls)=>{var Ns=Rs();Ls.exports=function(r,e){Array.isArray(e)||(e=[]),r.length>0&&e.push(Ns([0,0],r[0]));for(var t=0;t<r.length-1;t++){var n=r[t],i=r[t+1],o=n[0],a=n[1],c=i[0],l=i[1],s=[.75*o+.25*c,.75*a+.25*l],u=[.25*o+.75*c,.25*a+.75*l];e.push(s),e.push(u)}return r.length>1&&e.push(Ns([0,0],r[r.length-1])),e}});var Hs=Re((Wv,Vs)=>{var wi=class{constructor(){this.keys=new Set,this.queue=[]}sort(){this.queue.sort((e,t)=>e.priority-t.priority)}set(e,t){let n=Number(t);if(isNaN(n))throw new TypeError('"priority" must be a number');return this.keys.has(e)?this.queue.map(i=>(i.key===e&&Object.assign(i,{priority:n}),i)):(this.keys.add(e),this.queue.push({key:e,priority:n})),this.sort(),this.queue.length}next(){let e=this.queue.shift();return this.keys.delete(e.key),e}isEmpty(){return this.queue.length===0}has(e){return this.keys.has(e)}get(e){return this.queue.find(t=>t.key===e)}};Vs.exports=wi});var Xs=Re((qv,qs)=>{function Ws(r,e){let t=new Map;for(let[n,i]of r)n!==e&&i instanceof Map?t.set(n,Ws(i,e)):n!==e&&t.set(n,i);return t}qs.exports=Ws});var $s=Re((Xv,Ys)=>{function Eh(r){let e=Number(r);return!(isNaN(e)||e<=0)}function js(r){let e=new Map;return Object.keys(r).forEach(n=>{let i=r[n];if(i!==null&&typeof i=="object"&&!Array.isArray(i))return e.set(n,js(i));if(!Eh(i))throw new Error(`Could not add node at key "${n}", make sure it's a valid node`,i);return e.set(n,Number(i))}),e}Ys.exports=js});var Js=Re((jv,Ks)=>{function Zs(r){if(!(r instanceof Map))throw new Error(`Invalid graph: Expected Map instead found ${typeof r}`);r.forEach((e,t)=>{if(typeof e=="object"&&e instanceof Map){Zs(e);return}if(typeof e!="number"||e<=0)throw new Error(`Values must be numbers greater than 0. Found value ${e} at ${t}`)})}Ks.exports=Zs});var Ci=Re((Yv,ea)=>{var bh=Hs(),Sh=Xs(),Qs=$s(),ta=Js(),Ti=class{constructor(e){e instanceof Map?(ta(e),this.graph=e):e?this.graph=Qs(e):this.graph=new Map}addNode(e,t){let n;return t instanceof Map?(ta(t),n=t):n=Qs(t),this.graph.set(e,n),this}addVertex(e,t){return this.addNode(e,t)}removeNode(e){return this.graph=Sh(this.graph,e),this}path(e,t,n={}){if(!this.graph.size)return n.cost?{path:null,cost:0}:null;let i=new Set,o=new bh,a=new Map,c=[],l=0,s=[];if(n.avoid&&(s=[].concat(n.avoid)),s.includes(e))throw new Error(`Starting node (${e}) cannot be avoided`);if(s.includes(t))throw new Error(`Ending node (${t}) cannot be avoided`);for(o.set(e,0);!o.isEmpty();){let u=o.next();if(u.key===t){l=u.priority;let f=u.key;for(;a.has(f);)c.push(f),f=a.get(f);break}i.add(u.key),(this.graph.get(u.key)||new Map).forEach((f,d)=>{if(i.has(d)||s.includes(d))return null;if(!o.has(d))return a.set(d,u.key),o.set(d,u.priority+f);let g=o.get(d).priority,p=u.priority+f;return p<g?(a.set(d,u.key),o.set(d,p)):null})}return c.length?(n.trim?c.shift():c=c.concat([e]),n.reverse||(c=c.reverse()),n.cost?{path:c,cost:l}:c):n.cost?{path:null,cost:0}:null}shortestPath(...e){return this.path(...e)}};ea.exports=Ti});var Hi=Re((ki,Vi)=>{(function(r,e){typeof ki=="object"&&typeof Vi<"u"?Vi.exports=e():typeof define=="function"&&define.amd?define(e):(r=typeof globalThis<"u"?globalThis:r||self,r["'typed'"]=e())})(ki,function(){"use strict";function r(){return!0}function e(){return!1}function t(){}let n="Argument is not a typed-function.";function i(){function a(E){return typeof E=="object"&&E!==null&&E.constructor===Object}let c=[{name:"number",test:function(E){return typeof E=="number"}},{name:"string",test:function(E){return typeof E=="string"}},{name:"boolean",test:function(E){return typeof E=="boolean"}},{name:"Function",test:function(E){return typeof E=="function"}},{name:"Array",test:Array.isArray},{name:"Date",test:function(E){return E instanceof Date}},{name:"RegExp",test:function(E){return E instanceof RegExp}},{name:"Object",test:a},{name:"null",test:function(E){return E===null}},{name:"undefined",test:function(E){return E===void 0}}],l={name:"any",test:r,isAny:!0},s,u,h=0,f={createCount:0};function d(E){let T=s.get(E);if(T)return T;let A='Unknown type "'+E+'"',I=E.toLowerCase(),U;for(U of u)if(U.toLowerCase()===I){A+='. Did you mean "'+U+'" ?';break}throw new TypeError(A)}function g(E){let T=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"any",A=T?d(T).index:u.length,I=[];for(let O=0;O<E.length;++O){if(!E[O]||typeof E[O].name!="string"||typeof E[O].test!="function")throw new TypeError("Object with properties {name: string, test: function} expected");let V=E[O].name;if(s.has(V))throw new TypeError('Duplicate type name "'+V+'"');I.push(V),s.set(V,{name:V,test:E[O].test,isAny:E[O].isAny,index:A+O,conversionsTo:[]})}let U=u.slice(A);u=u.slice(0,A).concat(I).concat(U);for(let O=A+I.length;O<u.length;++O)s.get(u[O]).index=O}function p(){s=new Map,u=[],h=0,g([l],!1)}p(),g(c);function m(){let E;for(E of u)s.get(E).conversionsTo=[];h=0}function v(E){let T=u.filter(A=>{let I=s.get(A);return!I.isAny&&I.test(E)});return T.length?T:["any"]}function b(E){return E&&typeof E=="function"&&"_typedFunctionData"in E}function y(E,T,A){if(!b(E))throw new TypeError(n);let I=A&&A.exact,U=Array.isArray(T)?T.join(","):T,O=P(U),V=_(O);if(!I||V in E.signatures){let ht=E._typedFunctionData.signatureMap.get(V);if(ht)return ht}let z=O.length,H;if(I){H=[];let ht;for(ht in E.signatures)H.push(E._typedFunctionData.signatureMap.get(ht))}else H=E._typedFunctionData.signatures;for(let ht=0;ht<z;++ht){let mt=O[ht],Ct=[],Zt;for(Zt of H){let qt=G(Zt.params,ht);if(!(!qt||mt.restParam&&!qt.restParam)){if(!qt.hasAny){let fe=C(qt);if(mt.types.some(de=>!fe.has(de.name)))continue}Ct.push(Zt)}}if(H=Ct,H.length===0)break}let B;for(B of H)if(B.params.length<=z)return B;throw new TypeError("Signature not found (signature: "+(E.name||"unnamed")+"("+_(O,", ")+"))")}function S(E,T,A){return y(E,T,A).implementation}function x(E,T){let A=d(T);if(A.test(E))return E;let I=A.conversionsTo;if(I.length===0)throw new Error("There are no conversions to "+T+" defined.");for(let U=0;U<I.length;U++)if(d(I[U].from).test(E))return I[U].convert(E);throw new Error("Cannot convert "+E+" to "+T)}function _(E){let T=arguments.length>1&&arguments[1]!==void 0?arguments[1]:",";return E.map(A=>A.name).join(T)}function M(E){let T=E.indexOf("...")===0,I=(T?E.length>3?E.slice(3):"any":E).split("|").map(z=>d(z.trim())),U=!1,O=T?"...":"";return{types:I.map(function(z){return U=z.isAny||U,O+=z.name+"|",{name:z.name,typeIndex:z.index,test:z.test,isAny:z.isAny,conversion:null,conversionIndex:-1}}),name:O.slice(0,-1),hasAny:U,hasConversion:!1,restParam:T}}function w(E){let T=E.types.map(V=>V.name),A=pt(T),I=E.hasAny,U=E.name,O=A.map(function(V){let z=d(V.from);return I=z.isAny||I,U+="|"+V.from,{name:V.from,typeIndex:z.index,test:z.test,isAny:z.isAny,conversion:V,conversionIndex:V.index}});return{types:E.types.concat(O),name:U,hasAny:I,hasConversion:O.length>0,restParam:E.restParam}}function C(E){return E.typeSet||(E.typeSet=new Set,E.types.forEach(T=>E.typeSet.add(T.name))),E.typeSet}function P(E){let T=[];if(typeof E!="string")throw new TypeError("Signatures must be strings");let A=E.trim();if(A==="")return T;let I=A.split(",");for(let U=0;U<I.length;++U){let O=M(I[U].trim());if(O.restParam&&U!==I.length-1)throw new SyntaxError('Unexpected rest parameter "'+I[U]+'": only allowed for the last parameter');if(O.types.length===0)return null;T.push(O)}return T}function D(E){let T=zt(E);return T?T.restParam:!1}function R(E){if(!E||E.types.length===0)return r;if(E.types.length===1)return d(E.types[0].name).test;if(E.types.length===2){let T=d(E.types[0].name).test,A=d(E.types[1].name).test;return function(U){return T(U)||A(U)}}else{let T=E.types.map(function(A){return d(A.name).test});return function(I){for(let U=0;U<T.length;U++)if(T[U](I))return!0;return!1}}}function W(E){let T,A,I;if(D(E)){T=It(E).map(R);let U=T.length,O=R(zt(E)),V=function(z){for(let H=U;H<z.length;H++)if(!O(z[H]))return!1;return!0};return function(H){for(let B=0;B<T.length;B++)if(!T[B](H[B]))return!1;return V(H)&&H.length>=U+1}}else return E.length===0?function(O){return O.length===0}:E.length===1?(A=R(E[0]),function(O){return A(O[0])&&O.length===1}):E.length===2?(A=R(E[0]),I=R(E[1]),function(O){return A(O[0])&&I(O[1])&&O.length===2}):(T=E.map(R),function(O){for(let V=0;V<T.length;V++)if(!T[V](O[V]))return!1;return O.length===T.length})}function G(E,T){return T<E.length?E[T]:D(E)?zt(E):null}function k(E,T){let A=G(E,T);return A?C(A):new Set}function L(E){return E.conversion===null||E.conversion===void 0}function q(E,T){let A=new Set;return E.forEach(I=>{let U=k(I.params,T),O;for(O of U)A.add(O)}),A.has("any")?["any"]:Array.from(A)}function Y(E,T,A){let I,U,O=E||"unnamed",V=A,z;for(z=0;z<T.length;z++){let mt=[];if(V.forEach(Ct=>{let Zt=G(Ct.params,z),qt=R(Zt);(z<Ct.params.length||D(Ct.params))&&qt(T[z])&&mt.push(Ct)}),mt.length===0){if(U=q(V,z),U.length>0){let Ct=v(T[z]);return I=new TypeError("Unexpected type of argument in function "+O+" (expected: "+U.join(" or ")+", actual: "+Ct.join(" | ")+", index: "+z+")"),I.data={category:"wrongType",fn:O,index:z,actual:Ct,expected:U},I}}else V=mt}let H=V.map(function(mt){return D(mt.params)?1/0:mt.params.length});if(T.length<Math.min.apply(null,H))return U=q(V,z),I=new TypeError("Too few arguments in function "+O+" (expected: "+U.join(" or ")+", index: "+T.length+")"),I.data={category:"tooFewArgs",fn:O,index:T.length,expected:U},I;let B=Math.max.apply(null,H);if(T.length>B)return I=new TypeError("Too many arguments in function "+O+" (expected: "+B+", actual: "+T.length+")"),I.data={category:"tooManyArgs",fn:O,index:T.length,expectedLength:B},I;let ht=[];for(let mt=0;mt<T.length;++mt)ht.push(v(T[mt]).join("|"));return I=new TypeError('Arguments of type "'+ht.join(", ")+'" do not match any of the defined signatures of function '+O+"."),I.data={category:"mismatch",actual:ht},I}function j(E){let T=u.length+1;for(let A=0;A<E.types.length;A++)L(E.types[A])&&(T=Math.min(T,E.types[A].typeIndex));return T}function J(E){let T=h+1;for(let A=0;A<E.types.length;A++)L(E.types[A])||(T=Math.min(T,E.types[A].conversionIndex));return T}function lt(E,T){if(E.hasAny){if(!T.hasAny)return 1}else if(T.hasAny)return-1;if(E.restParam){if(!T.restParam)return 1}else if(T.restParam)return-1;if(E.hasConversion){if(!T.hasConversion)return 1}else if(T.hasConversion)return-1;let A=j(E)-j(T);if(A<0)return-1;if(A>0)return 1;let I=J(E)-J(T);return I<0?-1:I>0?1:0}function at(E,T){let A=E.params,I=T.params,U=zt(A),O=zt(I),V=D(A),z=D(I);if(V&&U.hasAny){if(!z||!O.hasAny)return 1}else if(z&&O.hasAny)return-1;let H=0,B=0,ht;for(ht of A)ht.hasAny&&++H,ht.hasConversion&&++B;let mt=0,Ct=0;for(ht of I)ht.hasAny&&++mt,ht.hasConversion&&++Ct;if(H!==mt)return H-mt;if(V&&U.hasConversion){if(!z||!O.hasConversion)return 1}else if(z&&O.hasConversion)return-1;if(B!==Ct)return B-Ct;if(V){if(!z)return 1}else if(z)return-1;let Zt=(A.length-I.length)*(V?-1:1);if(Zt!==0)return Zt;let qt=[],fe=0;for(let hn=0;hn<A.length;++hn){let ur=lt(A[hn],I[hn]);qt.push(ur),fe+=ur}if(fe!==0)return fe;let de;for(de of qt)if(de!==0)return de;return 0}function pt(E){if(E.length===0)return[];let T=E.map(d);E.length>1&&T.sort((U,O)=>U.index-O.index);let A=T[0].conversionsTo;if(E.length===1)return A;A=A.concat([]);let I=new Set(E);for(let U=1;U<T.length;++U){let O;for(O of T[U].conversionsTo)I.has(O.from)||(A.push(O),I.add(O.from))}return A}function Tt(E,T){let A=T;if(E.some(U=>U.hasConversion)){let U=D(E),O=E.map(wt);A=function(){let z=[],H=U?arguments.length-1:arguments.length;for(let B=0;B<H;B++)z[B]=O[B](arguments[B]);return U&&(z[H]=arguments[H].map(O[H])),T.apply(this,z)}}let I=A;if(D(E)){let U=E.length-1;I=function(){return A.apply(this,be(arguments,0,U).concat([be(arguments,U)]))}}return I}function wt(E){let T,A,I,U,O=[],V=[];switch(E.types.forEach(function(z){z.conversion&&(O.push(d(z.conversion.from).test),V.push(z.conversion.convert))}),V.length){case 0:return function(H){return H};case 1:return T=O[0],I=V[0],function(H){return T(H)?I(H):H};case 2:return T=O[0],A=O[1],I=V[0],U=V[1],function(H){return T(H)?I(H):A(H)?U(H):H};default:return function(H){for(let B=0;B<V.length;B++)if(O[B](H))return V[B](H);return H}}}function St(E){function T(A,I,U){if(I<A.length){let O=A[I],V=[];if(O.restParam){let z=O.types.filter(L);z.length<O.types.length&&V.push({types:z,name:"..."+z.map(H=>H.name).join("|"),hasAny:z.some(H=>H.isAny),hasConversion:!1,restParam:!0}),V.push(O)}else V=O.types.map(function(z){return{types:[z],name:z.name,hasAny:z.isAny,hasConversion:z.conversion,restParam:!1}});return Un(V,function(z){return T(A,I+1,U.concat([z]))})}else return[U]}return T(E,0,[])}function xt(E,T){let A=Math.max(E.length,T.length);for(let z=0;z<A;z++){let H=k(E,z),B=k(T,z),ht=!1,mt;for(mt of B)if(H.has(mt)){ht=!0;break}if(!ht)return!1}let I=E.length,U=T.length,O=D(E),V=D(T);return O?V?I===U:U>=I:V?I>=U:I===U}function $t(E){return E.map(T=>ms(T)?ds(T.referToSelf.callback):gs(T)?ar(T.referTo.references,T.referTo.callback):T)}function Mt(E,T,A){let I=[],U;for(U of E){let O=A[U];if(typeof O!="number")throw new TypeError('No definition for referenced signature "'+U+'"');if(O=T[O],typeof O!="function")return!1;I.push(O)}return I}function gt(E,T,A){let I=$t(E),U=new Array(I.length).fill(!1),O=!0;for(;O;){O=!1;let V=!0;for(let z=0;z<I.length;++z){if(U[z])continue;let H=I[z];if(ms(H))I[z]=H.referToSelf.callback(A),I[z].referToSelf=H.referToSelf,U[z]=!0,V=!1;else if(gs(H)){let B=Mt(H.referTo.references,I,T);B?(I[z]=H.referTo.callback.apply(this,B),I[z].referTo=H.referTo,U[z]=!0,V=!1):O=!0}}if(V&&O)throw new SyntaxError("Circular reference detected in resolving typed.referTo")}return I}function se(E){let T=/\bthis(\(|\.signatures\b)/;Object.keys(E).forEach(A=>{let I=E[A];if(T.test(I.toString()))throw new SyntaxError("Using `this` to self-reference a function is deprecated since typed-function@3. Use typed.referTo and typed.referToSelf instead.")})}function Ot(E,T){if(f.createCount++,Object.keys(T).length===0)throw new SyntaxError("No signatures provided");f.warnAgainstDeprecatedThis&&se(T);let A=[],I=[],U={},O=[],V;for(V in T){if(!Object.prototype.hasOwnProperty.call(T,V))continue;let ut=P(V);if(!ut)continue;A.forEach(function(zn){if(xt(zn,ut))throw new TypeError('Conflicting signatures "'+_(zn)+'" and "'+_(ut)+'".')}),A.push(ut);let Kt=I.length;I.push(T[V]);let eh=ut.map(w),lr;for(lr of St(eh)){let zn=_(lr);O.push({params:lr,name:zn,fn:Kt}),lr.every(nh=>!nh.hasConversion)&&(U[zn]=Kt)}}O.sort(at);let z=gt(I,U,Bn),H;for(H in U)Object.prototype.hasOwnProperty.call(U,H)&&(U[H]=z[U[H]]);let B=[],ht=new Map;for(H of O)ht.has(H.name)||(H.fn=z[H.fn],B.push(H),ht.set(H.name,H));let mt=B[0]&&B[0].params.length<=2&&!D(B[0].params),Ct=B[1]&&B[1].params.length<=2&&!D(B[1].params),Zt=B[2]&&B[2].params.length<=2&&!D(B[2].params),qt=B[3]&&B[3].params.length<=2&&!D(B[3].params),fe=B[4]&&B[4].params.length<=2&&!D(B[4].params),de=B[5]&&B[5].params.length<=2&&!D(B[5].params),hn=mt&&Ct&&Zt&&qt&&fe&&de;for(let ut=0;ut<B.length;++ut)B[ut].test=W(B[ut].params);let ur=mt?R(B[0].params[0]):e,Cc=Ct?R(B[1].params[0]):e,Ac=Zt?R(B[2].params[0]):e,Pc=qt?R(B[3].params[0]):e,Dc=fe?R(B[4].params[0]):e,Ic=de?R(B[5].params[0]):e,Rc=mt?R(B[0].params[1]):e,Nc=Ct?R(B[1].params[1]):e,Lc=Zt?R(B[2].params[1]):e,Oc=qt?R(B[3].params[1]):e,Fc=fe?R(B[4].params[1]):e,Uc=de?R(B[5].params[1]):e;for(let ut=0;ut<B.length;++ut)B[ut].implementation=Tt(B[ut].params,B[ut].fn);let Bc=mt?B[0].implementation:t,zc=Ct?B[1].implementation:t,Gc=Zt?B[2].implementation:t,kc=qt?B[3].implementation:t,Vc=fe?B[4].implementation:t,Hc=de?B[5].implementation:t,Wc=mt?B[0].params.length:-1,qc=Ct?B[1].params.length:-1,Xc=Zt?B[2].params.length:-1,jc=qt?B[3].params.length:-1,Yc=fe?B[4].params.length:-1,$c=de?B[5].params.length:-1,Zc=hn?6:0,Kc=B.length,Jc=B.map(ut=>ut.test),Qc=B.map(ut=>ut.implementation),th=function(){for(let Kt=Zc;Kt<Kc;Kt++)if(Jc[Kt](arguments))return Qc[Kt].apply(this,arguments);return f.onMismatch(E,arguments,B)};function Bn(ut,Kt){return arguments.length===Wc&&ur(ut)&&Rc(Kt)?Bc.apply(this,arguments):arguments.length===qc&&Cc(ut)&&Nc(Kt)?zc.apply(this,arguments):arguments.length===Xc&&Ac(ut)&&Lc(Kt)?Gc.apply(this,arguments):arguments.length===jc&&Pc(ut)&&Oc(Kt)?kc.apply(this,arguments):arguments.length===Yc&&Dc(ut)&&Fc(Kt)?Vc.apply(this,arguments):arguments.length===$c&&Ic(ut)&&Uc(Kt)?Hc.apply(this,arguments):th.apply(this,arguments)}try{Object.defineProperty(Bn,"name",{value:E})}catch{}return Bn.signatures=U,Bn._typedFunctionData={signatures:B,signatureMap:ht},Bn}function ct(E,T,A){throw Y(E,T,A)}function It(E){return be(E,0,E.length-1)}function zt(E){return E[E.length-1]}function be(E,T,A){return Array.prototype.slice.call(E,T,A)}function ke(E,T){for(let A=0;A<E.length;A++)if(T(E[A]))return E[A]}function Un(E,T){return Array.prototype.concat.apply([],E.map(T))}function cn(){let E=It(arguments).map(A=>_(P(A))),T=zt(arguments);if(typeof T!="function")throw new TypeError("Callback function expected as last argument");return ar(E,T)}function ar(E,T){return{referTo:{references:E,callback:T}}}function ds(E){if(typeof E!="function")throw new TypeError("Callback function expected as first argument");return{referToSelf:{callback:E}}}function gs(E){return E&&typeof E.referTo=="object"&&Array.isArray(E.referTo.references)&&typeof E.referTo.callback=="function"}function ms(E){return E&&typeof E.referToSelf=="object"&&typeof E.referToSelf.callback=="function"}function ys(E,T){if(!E)return T;if(T&&T!==E){let A=new Error("Function names do not match (expected: "+E+", actual: "+T+")");throw A.data={actual:T,expected:E},A}return E}function Mc(E){let T;for(let A in E)Object.prototype.hasOwnProperty.call(E,A)&&(b(E[A])||typeof E[A].signature=="string")&&(T=ys(T,E[A].name));return T}function wc(E,T){let A;for(A in T)if(Object.prototype.hasOwnProperty.call(T,A)){if(A in E&&T[A]!==E[A]){let I=new Error('Signature "'+A+'" is defined twice');throw I.data={signature:A,sourceFunction:T[A],destFunction:E[A]},I}E[A]=T[A]}}let Tc=f;f=function(E){let T=typeof E=="string",A=T?1:0,I=T?E:"",U={};for(let O=A;O<arguments.length;++O){let V=arguments[O],z={},H;if(typeof V=="function"?(H=V.name,typeof V.signature=="string"?z[V.signature]=V:b(V)&&(z=V.signatures)):a(V)&&(z=V,T||(H=Mc(V))),Object.keys(z).length===0){let B=new TypeError("Argument to 'typed' at index "+O+" is not a (typed) function, nor an object with signatures as keys and functions as values.");throw B.data={index:O,argument:V},B}T||(I=ys(I,H)),wc(U,z)}return Ot(I||"",U)},f.create=i,f.createCount=Tc.createCount,f.onMismatch=ct,f.throwMismatchError=ct,f.createError=Y,f.clear=p,f.clearConversions=m,f.addTypes=g,f._findType=d,f.referTo=cn,f.referToSelf=ds,f.convert=x,f.findSignature=y,f.find=S,f.isTypedFunction=b,f.warnAgainstDeprecatedThis=!0,f.addType=function(E,T){let A="any";T!==!1&&s.has("Object")&&(A="Object"),f.addTypes([E],A)};function vs(E){if(!E||typeof E.from!="string"||typeof E.to!="string"||typeof E.convert!="function")throw new TypeError("Object with properties {from: string, to: string, convert: function} expected");if(E.to===E.from)throw new SyntaxError('Illegal to define conversion from "'+E.from+'" to itself.')}return f.addConversion=function(E){let T=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{override:!1};vs(E);let A=d(E.to),I=A.conversionsTo.find(U=>U.from===E.from);if(I)if(T&&T.override)f.removeConversion({from:I.from,to:E.to,convert:I.convert});else throw new Error('There is already a conversion from "'+E.from+'" to "'+A.name+'"');A.conversionsTo.push({from:E.from,convert:E.convert,index:h++})},f.addConversions=function(E,T){E.forEach(A=>f.addConversion(A,T))},f.removeConversion=function(E){vs(E);let T=d(E.to),A=ke(T.conversionsTo,U=>U.from===E.from);if(!A)throw new Error("Attempt to remove nonexistent conversion from "+E.from+" to "+E.to);if(A.convert!==E.convert)throw new Error("Conversion to remove does not match existing conversion");let I=T.conversionsTo.indexOf(A);T.conversionsTo.splice(I,1)},f.resolve=function(E,T){if(!b(E))throw new TypeError(n);let A=E._typedFunctionData.signatures;for(let I=0;I<A.length;++I)if(A[I].test(T))return A[I];return null},f}var o=i();return o})});var Xu=Re((no,qu)=>{(function(r){"use strict";var e=Math.cosh||function(s){return Math.abs(s)<1e-9?1-s:(Math.exp(s)+Math.exp(-s))*.5},t=Math.sinh||function(s){return Math.abs(s)<1e-9?s:(Math.exp(s)-Math.exp(-s))*.5},n=function(s){var u=Math.PI/4;if(-u>s||s>u)return Math.cos(s)-1;var h=s*s;return h*(h*(h*(h*(h*(h*(h*(h/20922789888e3-1/87178291200)+1/479001600)-1/3628800)+1/40320)-1/720)+1/24)-1/2)},i=function(s,u){var h=Math.abs(s),f=Math.abs(u);return h<3e3&&f<3e3?Math.sqrt(h*h+f*f):(h<f?(h=f,f=s/u):f=u/s,h*Math.sqrt(1+f*f))},o=function(){throw SyntaxError("Invalid Param")};function a(s,u){var h=Math.abs(s),f=Math.abs(u);return s===0?Math.log(f):u===0?Math.log(h):h<3e3&&f<3e3?Math.log(s*s+u*u)*.5:(s=s/2,u=u/2,.5*Math.log(s*s+u*u)+Math.LN2)}var c=function(s,u){var h={re:0,im:0};if(s==null)h.re=h.im=0;else if(u!==void 0)h.re=s,h.im=u;else switch(typeof s){case"object":if("im"in s&&"re"in s)h.re=s.re,h.im=s.im;else if("abs"in s&&"arg"in s){if(!Number.isFinite(s.abs)&&Number.isFinite(s.arg))return l.INFINITY;h.re=s.abs*Math.cos(s.arg),h.im=s.abs*Math.sin(s.arg)}else if("r"in s&&"phi"in s){if(!Number.isFinite(s.r)&&Number.isFinite(s.phi))return l.INFINITY;h.re=s.r*Math.cos(s.phi),h.im=s.r*Math.sin(s.phi)}else s.length===2?(h.re=s[0],h.im=s[1]):o();break;case"string":h.im=h.re=0;var f=s.match(/\d+\.?\d*e[+-]?\d+|\d+\.?\d*|\.\d+|./g),d=1,g=0;f===null&&o();for(var p=0;p<f.length;p++){var m=f[p];m===" "||m===" "||m===`
2
- `||(m==="+"?d++:m==="-"?g++:m==="i"||m==="I"?(d+g===0&&o(),f[p+1]!==" "&&!isNaN(f[p+1])?(h.im+=parseFloat((g%2?"-":"")+f[p+1]),p++):h.im+=parseFloat((g%2?"-":"")+"1"),d=g=0):((d+g===0||isNaN(m))&&o(),f[p+1]==="i"||f[p+1]==="I"?(h.im+=parseFloat((g%2?"-":"")+m),p++):h.re+=parseFloat((g%2?"-":"")+m),d=g=0))}d+g>0&&o();break;case"number":h.im=0,h.re=s;break;default:o()}return isNaN(h.re)||isNaN(h.im),h};function l(s,u){if(!(this instanceof l))return new l(s,u);var h=c(s,u);this.re=h.re,this.im=h.im}l.prototype={re:0,im:0,sign:function(){var s=this.abs();return new l(this.re/s,this.im/s)},add:function(s,u){var h=new l(s,u);return this.isInfinite()&&h.isInfinite()?l.NAN:this.isInfinite()||h.isInfinite()?l.INFINITY:new l(this.re+h.re,this.im+h.im)},sub:function(s,u){var h=new l(s,u);return this.isInfinite()&&h.isInfinite()?l.NAN:this.isInfinite()||h.isInfinite()?l.INFINITY:new l(this.re-h.re,this.im-h.im)},mul:function(s,u){var h=new l(s,u);return this.isInfinite()&&h.isZero()||this.isZero()&&h.isInfinite()?l.NAN:this.isInfinite()||h.isInfinite()?l.INFINITY:h.im===0&&this.im===0?new l(this.re*h.re,0):new l(this.re*h.re-this.im*h.im,this.re*h.im+this.im*h.re)},div:function(s,u){var h=new l(s,u);if(this.isZero()&&h.isZero()||this.isInfinite()&&h.isInfinite())return l.NAN;if(this.isInfinite()||h.isZero())return l.INFINITY;if(this.isZero()||h.isInfinite())return l.ZERO;s=this.re,u=this.im;var f=h.re,d=h.im,g,p;return d===0?new l(s/f,u/f):Math.abs(f)<Math.abs(d)?(p=f/d,g=f*p+d,new l((s*p+u)/g,(u*p-s)/g)):(p=d/f,g=d*p+f,new l((s+u*p)/g,(u-s*p)/g))},pow:function(s,u){var h=new l(s,u);if(s=this.re,u=this.im,h.isZero())return l.ONE;if(h.im===0){if(u===0&&s>0)return new l(Math.pow(s,h.re),0);if(s===0)switch((h.re%4+4)%4){case 0:return new l(Math.pow(u,h.re),0);case 1:return new l(0,Math.pow(u,h.re));case 2:return new l(-Math.pow(u,h.re),0);case 3:return new l(0,-Math.pow(u,h.re))}}if(s===0&&u===0&&h.re>0&&h.im>=0)return l.ZERO;var f=Math.atan2(u,s),d=a(s,u);return s=Math.exp(h.re*d-h.im*f),u=h.im*d+h.re*f,new l(s*Math.cos(u),s*Math.sin(u))},sqrt:function(){var s=this.re,u=this.im,h=this.abs(),f,d;if(s>=0){if(u===0)return new l(Math.sqrt(s),0);f=.5*Math.sqrt(2*(h+s))}else f=Math.abs(u)/Math.sqrt(2*(h-s));return s<=0?d=.5*Math.sqrt(2*(h-s)):d=Math.abs(u)/Math.sqrt(2*(h+s)),new l(f,u<0?-d:d)},exp:function(){var s=Math.exp(this.re);return this.im,new l(s*Math.cos(this.im),s*Math.sin(this.im))},expm1:function(){var s=this.re,u=this.im;return new l(Math.expm1(s)*Math.cos(u)+n(u),Math.exp(s)*Math.sin(u))},log:function(){var s=this.re,u=this.im;return u===0&&s>0,new l(a(s,u),Math.atan2(u,s))},abs:function(){return i(this.re,this.im)},arg:function(){return Math.atan2(this.im,this.re)},sin:function(){var s=this.re,u=this.im;return new l(Math.sin(s)*e(u),Math.cos(s)*t(u))},cos:function(){var s=this.re,u=this.im;return new l(Math.cos(s)*e(u),-Math.sin(s)*t(u))},tan:function(){var s=2*this.re,u=2*this.im,h=Math.cos(s)+e(u);return new l(Math.sin(s)/h,t(u)/h)},cot:function(){var s=2*this.re,u=2*this.im,h=Math.cos(s)-e(u);return new l(-Math.sin(s)/h,t(u)/h)},sec:function(){var s=this.re,u=this.im,h=.5*e(2*u)+.5*Math.cos(2*s);return new l(Math.cos(s)*e(u)/h,Math.sin(s)*t(u)/h)},csc:function(){var s=this.re,u=this.im,h=.5*e(2*u)-.5*Math.cos(2*s);return new l(Math.sin(s)*e(u)/h,-Math.cos(s)*t(u)/h)},asin:function(){var s=this.re,u=this.im,h=new l(u*u-s*s+1,-2*s*u).sqrt(),f=new l(h.re-u,h.im+s).log();return new l(f.im,-f.re)},acos:function(){var s=this.re,u=this.im,h=new l(u*u-s*s+1,-2*s*u).sqrt(),f=new l(h.re-u,h.im+s).log();return new l(Math.PI/2-f.im,f.re)},atan:function(){var s=this.re,u=this.im;if(s===0){if(u===1)return new l(0,1/0);if(u===-1)return new l(0,-1/0)}var h=s*s+(1-u)*(1-u),f=new l((1-u*u-s*s)/h,-2*s/h).log();return new l(-.5*f.im,.5*f.re)},acot:function(){var s=this.re,u=this.im;if(u===0)return new l(Math.atan2(1,s),0);var h=s*s+u*u;return h!==0?new l(s/h,-u/h).atan():new l(s!==0?s/0:0,u!==0?-u/0:0).atan()},asec:function(){var s=this.re,u=this.im;if(s===0&&u===0)return new l(0,1/0);var h=s*s+u*u;return h!==0?new l(s/h,-u/h).acos():new l(s!==0?s/0:0,u!==0?-u/0:0).acos()},acsc:function(){var s=this.re,u=this.im;if(s===0&&u===0)return new l(Math.PI/2,1/0);var h=s*s+u*u;return h!==0?new l(s/h,-u/h).asin():new l(s!==0?s/0:0,u!==0?-u/0:0).asin()},sinh:function(){var s=this.re,u=this.im;return new l(t(s)*Math.cos(u),e(s)*Math.sin(u))},cosh:function(){var s=this.re,u=this.im;return new l(e(s)*Math.cos(u),t(s)*Math.sin(u))},tanh:function(){var s=2*this.re,u=2*this.im,h=e(s)+Math.cos(u);return new l(t(s)/h,Math.sin(u)/h)},coth:function(){var s=2*this.re,u=2*this.im,h=e(s)-Math.cos(u);return new l(t(s)/h,-Math.sin(u)/h)},csch:function(){var s=this.re,u=this.im,h=Math.cos(2*u)-e(2*s);return new l(-2*t(s)*Math.cos(u)/h,2*e(s)*Math.sin(u)/h)},sech:function(){var s=this.re,u=this.im,h=Math.cos(2*u)+e(2*s);return new l(2*e(s)*Math.cos(u)/h,-2*t(s)*Math.sin(u)/h)},asinh:function(){var s=this.im;this.im=-this.re,this.re=s;var u=this.asin();return this.re=-this.im,this.im=s,s=u.re,u.re=-u.im,u.im=s,u},acosh:function(){var s=this.acos();if(s.im<=0){var u=s.re;s.re=-s.im,s.im=u}else{var u=s.im;s.im=-s.re,s.re=u}return s},atanh:function(){var s=this.re,u=this.im,h=s>1&&u===0,f=1-s,d=1+s,g=f*f+u*u,p=g!==0?new l((d*f-u*u)/g,(u*f+d*u)/g):new l(s!==-1?s/0:0,u!==0?u/0:0),m=p.re;return p.re=a(p.re,p.im)/2,p.im=Math.atan2(p.im,m)/2,h&&(p.im=-p.im),p},acoth:function(){var s=this.re,u=this.im;if(s===0&&u===0)return new l(0,Math.PI/2);var h=s*s+u*u;return h!==0?new l(s/h,-u/h).atanh():new l(s!==0?s/0:0,u!==0?-u/0:0).atanh()},acsch:function(){var s=this.re,u=this.im;if(u===0)return new l(s!==0?Math.log(s+Math.sqrt(s*s+1)):1/0,0);var h=s*s+u*u;return h!==0?new l(s/h,-u/h).asinh():new l(s!==0?s/0:0,u!==0?-u/0:0).asinh()},asech:function(){var s=this.re,u=this.im;if(this.isZero())return l.INFINITY;var h=s*s+u*u;return h!==0?new l(s/h,-u/h).acosh():new l(s!==0?s/0:0,u!==0?-u/0:0).acosh()},inverse:function(){if(this.isZero())return l.INFINITY;if(this.isInfinite())return l.ZERO;var s=this.re,u=this.im,h=s*s+u*u;return new l(s/h,-u/h)},conjugate:function(){return new l(this.re,-this.im)},neg:function(){return new l(-this.re,-this.im)},ceil:function(s){return s=Math.pow(10,s||0),new l(Math.ceil(this.re*s)/s,Math.ceil(this.im*s)/s)},floor:function(s){return s=Math.pow(10,s||0),new l(Math.floor(this.re*s)/s,Math.floor(this.im*s)/s)},round:function(s){return s=Math.pow(10,s||0),new l(Math.round(this.re*s)/s,Math.round(this.im*s)/s)},equals:function(s,u){var h=new l(s,u);return Math.abs(h.re-this.re)<=l.EPSILON&&Math.abs(h.im-this.im)<=l.EPSILON},clone:function(){return new l(this.re,this.im)},toString:function(){var s=this.re,u=this.im,h="";return this.isNaN()?"NaN":this.isInfinite()?"Infinity":(Math.abs(s)<l.EPSILON&&(s=0),Math.abs(u)<l.EPSILON&&(u=0),u===0?h+s:(s!==0?(h+=s,h+=" ",u<0?(u=-u,h+="-"):h+="+",h+=" "):u<0&&(u=-u,h+="-"),u!==1&&(h+=u),h+"i"))},toVector:function(){return[this.re,this.im]},valueOf:function(){return this.im===0?this.re:null},isNaN:function(){return isNaN(this.re)||isNaN(this.im)},isZero:function(){return this.im===0&&this.re===0},isFinite:function(){return isFinite(this.re)&&isFinite(this.im)},isInfinite:function(){return!(this.isNaN()||this.isFinite())}},l.ZERO=new l(0,0),l.ONE=new l(1,0),l.I=new l(0,1),l.PI=new l(Math.PI,0),l.E=new l(Math.E,0),l.INFINITY=new l(1/0,1/0),l.NAN=new l(NaN,NaN),l.EPSILON=1e-15,typeof define=="function"&&define.amd?define([],function(){return l}):typeof no=="object"?(Object.defineProperty(l,"__esModule",{value:!0}),l.default=l,l.Complex=l,qu.exports=l):r.Complex=l})(no)});import{EventDispatcher as zf,Vector3 as Gf}from"three";var Gt=class{tasks={requestAnimation:new Set,timeout:new Set,interval:new Set};requestAnimationFrame(e){let t=window.requestAnimationFrame(()=>{this.tasks.requestAnimation.delete(t),e()});return this.tasks.requestAnimation.add(t),t}cancelAnimationFrame(e){this.tasks.requestAnimation.delete(e),window.cancelAnimationFrame(e)}setTimeout(e,t){let n=window.setTimeout(()=>{this.tasks.timeout.delete(n),e()},t);return this.tasks.timeout.add(n),n}clearTimeout(e){this.tasks.timeout.delete(e),window.clearTimeout(e)}setInterval(e,t){let n=window.setInterval(()=>{this.tasks.interval.delete(n),e()},t);return this.tasks.interval.add(n),n}clearInterval(e){this.tasks.interval.delete(e),window.clearInterval(e)}dispose(){this.tasks.requestAnimation.forEach(e=>{window.cancelAnimationFrame(e)}),this.tasks.requestAnimation.clear(),this.tasks.timeout.forEach(e=>{window.clearTimeout(e)}),this.tasks.timeout.clear(),this.tasks.interval.forEach(e=>{window.clearInterval(e)}),this.tasks.interval.clear()}};import{Shape as lh,Group as ch,DirectionalLight as hh,AmbientLight as ph,Path as fh,Vector2 as xs}from"three";function Es(){let r=new ch,e=new ph(16777215,2.6);return r.add(e),r}function Se(r,e=[]){let t=new lh(r.map(n=>new xs(...n)));return e.length&&e.forEach(n=>{var i=new fh(n.map(o=>new xs(...o)));t.holes.push(i)}),t}function bs(r=16777215,e=1){let t=new hh(r,e);return t.castShadow=!0,t.shadow.radius=8,t.shadow.bias=-.001,t.shadow.mapSize.set(256,256),t.shadow.camera.left=-200,t.shadow.camera.right=200,t.shadow.camera.top=200,t.shadow.camera.bottom=-200,t}function Jt(r,e){if(e&&r.children&&r.children.length&&r.children.forEach(t=>{Jt(t,e)}),r.isMesh){let t=r;t.geometry&&t.geometry.dispose(),t.material&&(Array.isArray(t.material)?t.material.forEach(n=>{n.dispose()}):t.material.dispose())}r.isLight&&r.dispose?.()}function Ss(r){return/[\u4E00-\u9FA5]+/g.test(r)}import{Vector3 as Ei,Vector2 as Ne,Matrix3 as cr}from"three";import{point as dh,featureCollection as gh,center as mh}from"@turf/turf";function et(r,e,t,n){let i=r.clone().project(e),o=t/2,a=n/2,c=Math.round(i.x*o+o),l=Math.round(-i.y*a+a);return{x:c,y:l}}function hr(r){let e=gh(r.map(n=>dh(n)));return mh(e).geometry.coordinates}function Ve(r,e,t){return r.x>=e.x&&r.x<=t.x&&r.y>=e.y&&r.y<=t.y}function vv(r){let e=0,t=new Ei;for(let n=1;n<r.length;n++){let i=new Ei(r[n-1][0],r[n-1][1],0),o=new Ei(r[n][0],r[n][1],0),a=o.distanceTo(i);a>e&&(e=a,t=o.clone().sub(i).normalize())}return t}function kt(r,e){return Math.sqrt((e[0]-r[0])**2+(e[1]-r[1])**2)}function Me(r){let e=0;for(let t=0;t<r.length-1;t++)e+=kt(r[t],r[t+1]);return e}function Ms(r,e,t){let n=new Ne(e[0]-r[0],e[1]-r[1]),i=new Ne(e[0]-t[0],e[1]-t[1]),a=n.angleTo(i)*180/Math.PI,c=new Ne(e[0]-r[0],e[1]-r[1]);return new Ne(t[0]-r[0],t[1]-r[1]).cross(c)>0?a:-a}function ws(r,e){let t=Math.min(kt(r[0][0],r[0][1]),kt(r[0][2],r[0][1]))-1;e||(e=hr(r[0]));let n=yh(e,t),i=new Ne(r[0][0][0],r[0][0][1]),o=new Ne(r[0][1][0],r[0][1][1]),a=new Ne(r[0][2][0],r[0][2][1]),l=(i.distanceTo(o)>o.distanceTo(a)?o.clone().sub(i):a.clone().sub(o)).angleTo(new Ne(0,1)),s=new cr;return s.multiply(new cr().translate(e[0],e[1])).multiply(new cr().rotate(l)).multiply(new cr().translate(-e[0],-e[1])),[n.map(u=>{let h=new Ne(u[0],u[1]).applyMatrix3(s);return[h.x,h.y]})]}function yh(r,e){let t=e/2;return[[r[0]-t,r[1]+t],[r[0]+t,r[1]+t],[r[0]+t,r[1]-t],[r[0]-t,r[1]-t],[r[0]-t,r[1]+t]]}function fn(r,e){let t=0,n=1/0,[i,o]=e;for(let a=0;a<r.length-1;a++){let[c,l]=r[a],[s,u]=r[a+1],h=Math.min(c,s)<=i&&i<=Math.max(c,s),f=Math.min(l,u)<=o&&o<=Math.max(l,u);if(h&&f){let d=Math.abs((s-c)*(o-l)-(u-l)*(i-c));d<n&&(n=d,t=a)}}return t}function Ts(r,e){let t=r[0],n=r[1],i=!1;for(let o=0,a=e.length-1;o<e.length;a=o++){let c=e[o][0],l=e[o][1],s=e[a][0],u=e[a][1];l>n!=u>n&&t<(s-c)*(n-l)/(u-l)+c&&(i=!i)}return i}function dn(r,e){return new Proxy(r,{get:(t,n,i)=>Reflect.get(t,n,i),set:(t,n,i,o)=>{let a=Reflect.get(t,n,o),c=Reflect.set(t,n,i,o);return a!==i&&e.dispatchEvent({type:`change-${n}`,value:i}),c}})}function Le(r,e){return Promise.race([r,new Promise((t,n)=>{setTimeout(()=>n(new Error("Promise timeout")),e)})])}function pr(r){return document.createElementNS("http://www.w3.org/2000/svg",r)}function Cs(r,e){let t=pr("svg");return t.setAttribute("width",r),t.setAttribute("height",e),t.style.cssText="position: absolute; left: 0; top: 0; pointer-events: none;",t}function Gn(r="2",e){let t=pr("circle");return t.setAttribute("r",r),t.setAttribute("fill",e),t}function fr(r){let e=pr("line");return e.setAttribute("stroke",r),e}function He(r,e){let t=pr("rect");return t.setAttribute("stroke",r),t.setAttribute("fill",e),t}function en(r,e,t){r.setAttribute("cx",`${e}`),r.setAttribute("cy",`${t}`)}function ge(r,e,t){e&&(r.setAttribute("x1",`${e.x}`),r.setAttribute("y1",`${e.y}`)),t&&(r.setAttribute("x2",`${t.x}`),r.setAttribute("y2",`${t.y}`))}function Xt(r,e,t,n,i){r.setAttribute("x",`${e}`),r.setAttribute("y",`${t}`),r.setAttribute("width",`${n}`),r.setAttribute("height",`${i}`)}function As(){return Promise.resolve()}function Sv(){return new Promise(r=>{requestAnimationFrame(r)})}function wv(r){return parseInt(r.replace("#","0x"),16)}function Tv(r,e){let t=parseInt(r.substring(1,3),16),n=parseInt(r.substring(3,5),16),i=parseInt(r.substring(5,7),16),o=Math.round(t*e),a=Math.round(n*e),c=Math.round(i*e);return`#${(1<<24|o<<16|a<<8|c).toString(16).slice(1)}`}function Oe(r,e=.85){let t,n,i;if(r.startsWith("#"))t=parseInt(r.substring(1,3),16),n=parseInt(r.substring(3,5),16),i=parseInt(r.substring(5,7),16);else{let a=r.slice(4,-1).split(",");t=parseInt(a[0].trim()),n=parseInt(a[1].trim()),i=parseInt(a[2].trim())}return t=Math.min(Math.floor(t*e),255),n=Math.min(Math.floor(n*e),255),i=Math.min(Math.floor(i*e),255),"#"+((1<<24)+(t<<16)+(n<<8)+i).toString(16).slice(1)}function bi(r,e){r=r.replace(/^#/,"");let t=parseInt(r.substring(0,2),16),n=parseInt(r.substring(2,4),16),i=parseInt(r.substring(4,6),16);return e!==void 0?`rgba(${t}, ${n}, ${i}, ${e})`:`rgb(${t}, ${n}, ${i})`}var gn=navigator.userAgent.toUpperCase().indexOf("MAC")>=0,Ps=(window.navigator.userAgent||"").toLocaleLowerCase(),kn=/ios|iphone/i.test(Ps),Av=/android|adr|linux/gi.test(Ps);function mn(r){return gn?r==="Meta":r==="Control"}var Si="__once__",Ds=class{events=new Map;on(e,t){if(typeof t!="function")return;let n=this.events.get(e);return n?n.add(t):this.events.set(e,new Set([t]))}once(e,t){if(typeof t!="function")return;let n=`${Si}${e}`,i=this.events.get(n);return i?i.add(t):this.events.set(n,new Set([t]))}off(e,t){let n=this.events.get(e),i=this.events.get(`${Si}${e}`);!n&&!i||(t===void 0&&(n?.clear(),i?.clear()),n?.has(t)&&n.delete(t),i?.has(t)&&i.delete(t))}offAll(){this.events.clear()}emit(e,...t){let n=this.events.get(e),i=this.events.get(`${Si}${e}`);!n&&!i||(n?.forEach(o=>{typeof o=="function"&&o(...t)}),i?.forEach(o=>{typeof o=="function"&&o(...t)}),i?.clear())}};var Vn=(t=>(t.SWITCH_FLOOR_BEFORE="switch_floor_before",t.SWITCH_FLOOR_AFTER="switch_floor_after",t))(Vn||{});function yn(r){return Object.keys(r).sort().map(e=>`${e}=${r[e]}`).join("&")}function Ov(r,e){return new Promise((t,n)=>{let i=new XMLHttpRequest;i.open("GET",r,!0),Object.keys(e.headers||{}).forEach(o=>{i.setRequestHeader(o,e.headers[o])}),e.responseType&&(i.responseType=e.responseType),i.onload=()=>{if(i.status>=200&&i.status<300)if(e.responseType==="arraybuffer")t(i.response);else try{let o=JSON.parse(i.responseText);t(o)}catch(o){n(o)}else n(i.statusText)},i.onerror=()=>{n(i.statusText)},i.send()})}var Fs=pn(Os(),1);import{Vector2 as Hn}from"three";function vh(r,e){let t=r.clone().normalize(),n=e.clone().normalize();return Math.acos(t.dot(n))}function _h(r){let e=0;return r.reduce(([t,n],[i,o])=>(e+=Math.sqrt((i-t)**2+(o-n)**2),[i,o])),e/r.length}function Us(r,e=.25){if(_h(r)<e)return r;let t=(0,Fs.default)(r);return Us(t,e)}function Bs(r,e=!1,t=!0,n=5,i=150,o=3){let a=[],c=!e;if(a.push(r[0]),r.length<2)return a;for(let s=0;s<r.length-2;s+=1){let u=r[s],h=r[s+1],f=r[s+2],d=new Hn(u[0]-h[0],u[1]-h[1]),g=new Hn(f[0]-h[0],f[1]-h[1]),p=vh(d,g)/Math.PI*180,m=d.length()+g.length();(!c||p<i&&m>.01||m>n)&&(a.push(r[s+1]),c=!0)}if(a.push(r[r.length-1]),!t)return a;let l=[];l.push(a[0]);for(let s=0;s<a.length-2;s+=1){let u=new Hn(a[s][0],a[s][1]),h=new Hn(a[s+1][0],a[s+1][1]),f=new Hn(a[s+2][0],a[s+2][1]),d=u.distanceTo(h)/2,g=f.distanceTo(h)/2,p=h.clone(),m=h.clone();p.add(u.clone().sub(h).normalize().multiplyScalar(d>o?o/2:d)),m.add(f.clone().sub(h).normalize().multiplyScalar(g>o?o/2:g));let v=[[p.x,p.y],[h.x,h.y],[m.x,m.y]];l.push(...Us(v,o/25))}return l.push(a[a.length-1]),xh(l)}function xh(r){if(r.length<=1)return r;let e=[],t;return r.forEach(([n,i])=>{t?n===t[0]&&i===t[1]||(t=[n,i],e.push([n,i])):(t=[n,i],e.push([n,i]))}),e}function zs(r,e,t){let n=Math.sqrt((t[0]-e[0])**2+(t[1]-e[1])**2);if(n===0)return{distance:Math.sqrt((r[0]-e[0])**2+(r[1]-e[1])**2),closestPoint:e.slice(0)};let i=Math.max(0,Math.min(1,((r[0]-e[0])*(t[0]-e[0])+(r[1]-e[1])*(t[1]-e[1]))/n**2)),o=[e[0]+i*(t[0]-e[0]),e[1]+i*(t[1]-e[1])];return{distance:Math.sqrt((r[0]-o[0])**2+(r[1]-o[1])**2),closestPoint:o}}function kv(r,e,t){let[n,i]=r,[o,a]=e,c=Math.sqrt(Math.pow(o-n,2)+Math.pow(a-i,2));if(c===0||c<t)return[...e];let l=t/c,s=n+(o-n)*l,u=i+(a-i)*l;return[s,u]}var Gs=(s=>(s.START="start",s.END="end",s.FRONT="front",s.RIGHT="right",s.LEFT="left",s.RIGHT_FRONT="right_front",s.LEFT_FRONT="left_front",s.RIGHT_BACK="right_back",s.LEFT_BACK="left_back",s))(Gs||{});function Mi(r,e,t){let n=Ms(r,e,t);return 180-Math.abs(n)<15?"front":n>135?"right_front":n<-135?"left_front":n<=135&&n>=60?"right":n>=-135&&n<=-60?"left":n<60&&n>0?"right_back":n>-60&&n<0?"left_back":"front"}function Vv(r){if(!r.length)return[];let e=[{direction:"start",distance:kt(r[0],r[1]),points:[r[0],r[1]]}];for(let t=2;t<r.length;t++){let n=Mi(r[t-2],r[t-1],r[t]);if(n==="front"){let i=e[e.length-1],o=kt(r[t-1],r[t]);i.distance+=o,t!==2&&i.points.push(r[t-1])}else e.push({direction:n,distance:kt(r[t-1],r[t]),points:[r[t-1],r[t]]})}return e.push({direction:"end",distance:0,points:[r[r.length-1]]}),e}function ks(r,e){if(r.length<2)return-1;let t=0;for(let n=1;n<r.length;n++){let i=r[n-1],o=r[n],a=[e[0]-i[0],e[1]-i[1]],c=[o[0]-i[0],o[1]-i[1]],l=Math.min(o[0],i[0])<=e[0]&&e[0]<=Math.max(o[0],i[0]),s=Math.min(o[1],i[1])<=e[1]&&e[1]<=Math.max(o[1],i[1]);if(l&&s){let u=a[0]*c[1]-a[1]*c[0];if(Math.abs(u)<1e-6){let h=Math.sqrt((e[0]-i[0])**2+(e[1]-i[1])**2);return t+h}}t+=Math.sqrt((o[0]-i[0])**2+(o[1]-i[1])**2)}return-1}function dr(r,e){if(r.length<2)return r[0]??null;let t=0;for(let n=1;n<r.length;n++){let i=r[n-1],o=r[n],a=Math.sqrt((o[0]-i[0])**2+(o[1]-i[1])**2);if(t+=a,t>=e){let c=(e-(t-a))/a,l=i[0]+(o[0]-i[0])*c,s=i[1]+(o[1]-i[1])*c;return[l,s]}}return null}var we=pn(Ci(),1);var ae="___",na=class{constructor(e=3){this.lift_priority=e}roadInfo=[];pointMap=new Map;nodeMap=new Map;facilityMap=new Map;straightLadderMap=new Map;escalatorMap=new Map;staircaseMap=new Map;lineMap=new Map;baseRoute=new we.default;escalatorRoute=new we.default;straightLadderRoute=new we.default;initRoute(e){this.clear(),this.roadInfo=e,e.length&&(e.forEach(t=>{t.points.forEach(n=>{let i=`${t.floor}${ae}${n.id}`;if(this.pointMap.set(i,n),this.nodeMap.set(`${n.floor}${ae}${n.nodeId}`,i),n.type==="straightLadder"){let o=this.straightLadderMap.get(n.name)||[];o.push({...n}),this.straightLadderMap.set(n.name,o)}if(n.type==="staircase"){let o=this.staircaseMap.get(n.name)||[];o.push({...n}),this.staircaseMap.set(n.name,o)}if(n.type==="escalator"){let o=this.escalatorMap.get(n.name)||{};n.escalatorDirection==="exit"?o.end={floor:n.floor,id:n.id}:o.start={floor:n.floor,id:n.id},this.escalatorMap.set(n.name,o)}if(n.type==="facility"){let o=this.facilityMap.get(n.targetId)||[];o.push({...n}),this.facilityMap.set(n.targetId,o)}}),t.lines.filter(n=>n.direction!=="no").forEach(n=>{let i=`${t.floor}${ae}${n.from}`,o=`${t.floor}${ae}${n.to}`,a=this.pointMap.get(i)?.cds,c=this.pointMap.get(o)?.cds;if(a?.length&&c?.length){let l=kt(a,c);this.addLineItem(i,o,l),n.direction==="double"&&this.addLineItem(o,i,l)}})}),this.initBaseRoute(),this.initEscalatorRoute(),this.initStraightLadderRoute())}addLineItem(e,t,n,i=this.lineMap){let o=i.get(e)||new Map;o.set(t,n),i.set(e,o)}addFacilityToLineMap(e,t,n,i){[...this.straightLadderMap,...this.staircaseMap].forEach(([o,a])=>{if(!(a.length<2))for(let c=0;c<a.length;c++){let l=`${a[c].floor}${ae}${a[c].id}`;for(let s=0;s<a.length;s++)if(c!==s){let u=`${a[s].floor}${ae}${a[s].id}`,h=this.pointMap.get(l)?.cds,f=this.pointMap.get(u)?.cds;if(h?.length&&f?.length)if(a[c].type==="straightLadder"){let d=t;this.addLineItem(l,u,d,i)}else{let d=n;this.addLineItem(l,u,d,i)}}}}),this.escalatorMap.forEach((o,a)=>{if(o.start&&o.end){let c=`${o.start.floor}${ae}${o.start.id}`,l=`${o.end.floor}${ae}${o.end.id}`,s=this.pointMap.get(c)?.cds,u=this.pointMap.get(l)?.cds;if(s?.length&&u?.length){let h=e;this.addLineItem(c,l,h,i)}}})}initBaseRoute(){let e=new Map([...this.lineMap]);this.addFacilityToLineMap(1,this.lift_priority,3e4,e),this.baseRoute=new we.default(e)}initEscalatorRoute(){let e=new Map([...this.lineMap]),t=1e4;this.addFacilityToLineMap(1*t,this.lift_priority*t,3e4*t,e),this.escalatorRoute=new we.default(e)}initStraightLadderRoute(){let e=new Map([...this.lineMap]),t=1e4;this.addFacilityToLineMap(3*t,1*t,3e4*t,e),this.straightLadderRoute=new we.default(e)}checkStart(e){return!(!e.floor||!e.nodeId&&(!e.coord||e.coord.length<2))}checkEnd(e){return e.facility?!0:this.checkStart(e)}transformStart(e){if(e.nodeId){let t=this.nodeMap.get(`${e.floor}${ae}${e.nodeId}`);if(t){let[n,i]=t.split(ae);return{floor:n,id:i}}}if(e.coord?.length){let t=this.roadInfo.find(i=>i.floor===e.floor);if(!t)return null;let n=t.points.reduce((i,o)=>{let a=kt(e.coord,o.cds);return a<i.min&&(i.min=a,i.point=o),i},{min:1/0,point:t.points[0]});return{floor:n.point.floor,id:n.point.id}}return null}transformEnd(e){if(e.floor){let t=this.transformStart(e);if(t)return t}return e.facility&&this.facilityMap.get(e.facility)?.length?{floor:e.floor,facility:e.facility}:null}getPath(e,t,n=""){if(!this.checkStart(e))return"start-error";if(!this.checkEnd(t))return"end-error";let i=this.transformStart(e);if(!i)return"no-start";let o=this.transformEnd(t);if(!o)return"no-end";let a=this.getBasePath.bind(this);switch(n){case"escalator":a=this.getEscalatorPath.bind(this);break;case"straightLadder":a=this.getStraightLadderPath.bind(this);break;default:a=this.getBasePath.bind(this);break}if(o.id)return a(i,o);if(o.facility){let c=this.facilityMap.get(o.facility).filter(s=>o.floor?s.floor===o.floor:!0);if(!c.length)return null;let l=c.map(s=>a(i,{floor:s.floor,id:s.id})).filter(s=>!!s);return l.reduce((s,u)=>{let h=u.reduce((f,d)=>f+Me(d.points),0);return h<s.distance&&(s.distance=h,s.path=u),s},{distance:1/0,path:l[0]}).path}}getRoutePath(e,t,n){let i=`${e.floor}${ae}${e.id}`,o=`${t.floor}${ae}${t.id}`,a=n.path(i,o);if(!a)return null;let c=[];return a.map(l=>{let s=this.pointMap.get(l);if(s){let{floor:u}=s;if(c[c.length-1]?.floor===u){let h=c[c.length-1];h.points.push(s.cds),h.endType=s.type,h.destId=s.nodeId,h.distance=Me(h.points)}else c.push({floor:u,points:[s.cds],endType:s.type,destId:s.nodeId,distance:0})}}),c}getBasePath(e,t){return this.getRoutePath(e,t,this.baseRoute)}getEscalatorPath(e,t){return this.getRoutePath(e,t,this.escalatorRoute)}getStraightLadderPath(e,t){return this.getRoutePath(e,t,this.straightLadderRoute)}clear(){this.roadInfo=[],this.pointMap.clear(),this.nodeMap.clear(),this.facilityMap.clear(),this.straightLadderMap.clear(),this.escalatorMap.clear(),this.staircaseMap.clear(),this.lineMap.clear(),this.baseRoute=new we.default,this.escalatorRoute=new we.default,this.straightLadderRoute=new we.default}};var ue=pn(Ci(),1);import{cloneDeep as Ai}from"lodash";var Vt="___",ra=class{constructor(e=3){this.lift_priority=e}roadInfo=[];facilities=[];pointMap=new Map;nodeMap=new Map;facilityMap=new Map;straightLadderMap=new Map;escalatorMap=new Map;rampMap=new Map;staircaseMap=new Map;parkingMap=new Map;lineMap=new Map;baseRoute=new ue.default;escalatorRoute=new ue.default;straightLadderRoute=new ue.default;forwardLineMap=new Map;forwardRoute=new ue.default;isFacilityByType(e){return["facility","escalator","straightLadder","staircase","ramp"].includes(e)}initFacilities(e){this.facilities=e.map(t=>{let n=[];try{n=JSON.parse(t.entry_end_floor)}catch{n=[]}let i=[];try{i=JSON.parse(t.entry_start_floor)}catch{i=[]}return{...t,entry_start_floor:i,entry_end_floor:n}})}initRoute(e,t){this.clear(),this.roadInfo=e,this.initFacilities(t),e.length&&(e.forEach(n=>{n.points.forEach(i=>{i.floor=n.floor;let o=`${n.floor}${Vt}${i.id}`;if(this.pointMap.set(o,i),this.nodeMap.set(`${n.floor}${Vt}${i.nodeId}`,o),this.isFacilityByType(i.type)){let a=this.facilities.find(c=>c.id===+i.targetId);if(a){switch(a.entry_infra_type){case"straightLadder":if(a.entry_end_floor.find(u=>u.floor===n.floor)&&a.entry_start_floor.find(u=>u.floor===n.floor)){let u=this.straightLadderMap.get(i.targetId)||[];u.push({...i}),this.straightLadderMap.set(i.targetId,u)}break;case"staircase":if(a.entry_end_floor.find(u=>u.floor===n.floor)&&a.entry_start_floor.find(u=>u.floor===n.floor)){let u=this.staircaseMap.get(i.targetId)||[];u.push({...i}),this.staircaseMap.set(i.targetId,u)}break;case"escalator":let l=this.escalatorMap.get(i.targetId)||[];if(a.entry_start_floor.find(u=>u.floor===n.floor)){let u=l.find(h=>h.end?.floor!==n.floor&&!h.start);u?u.start=i:l.push({start:i})}if(a.entry_end_floor.find(u=>u.floor===n.floor)){let u=l.find(h=>h.start?.floor!==n.floor&&!h.end);u?u.end=i:l.push({end:i})}this.escalatorMap.set(i.targetId,l);break;case"ramp":let s=this.rampMap.get(i.targetId)||[];if(a.entry_start_floor.find(u=>u.floor===n.floor)){let u=s.find(h=>h.end?.floor!==n.floor&&!h.start);u?u.start=i:s.push({start:i})}if(a.entry_end_floor.find(u=>u.floor===n.floor)){let u=s.find(h=>h.start?.floor!==n.floor&&!h.end);u?u.end=i:s.push({end:i})}this.rampMap.set(i.targetId,s);break}let c=this.facilityMap.get(i.targetId)||[];c.push({...i}),this.facilityMap.set(i.targetId,c)}}i.type==="parkingSpace"&&this.parkingMap.set(`${n.floor}${Vt}${i.name}`,i)}),n.lines.filter(i=>i.direction!=="no").forEach(i=>{let o=`${n.floor}${Vt}${i.from}`,a=`${n.floor}${Vt}${i.to}`,c=this.pointMap.get(o)?.cds,l=this.pointMap.get(a)?.cds;if(c?.length&&l?.length){let s=kt(c,l);switch(this.addLineItem(o,a,s),this.addLineItem(a,o,s),i.direction){case"double":this.addLineItem(o,a,s,this.forwardLineMap),this.addLineItem(a,o,s,this.forwardLineMap);break;case"single":this.addLineItem(o,a,s,this.forwardLineMap);break;case"back":this.addLineItem(a,o,s,this.forwardLineMap);break}}})}),this.initBaseRoute(),this.initEscalatorRoute(),this.initStraightLadderRoute(),this.initForwardRoute())}addLineItem(e,t,n,i=this.lineMap){let o=i.get(e)||new Map;o.set(t,n),i.set(e,o)}addFacilityToLineMap(e,t,n,i){[...this.straightLadderMap,...this.staircaseMap].forEach(([o,a])=>{if(!(a.length<2))for(let c=0;c<a.length;c++){let l=`${a[c].floor}${Vt}${a[c].id}`;for(let s=0;s<a.length;s++)if(c!==s){let u=`${a[s].floor}${Vt}${a[s].id}`,h=this.pointMap.get(l)?.cds,f=this.pointMap.get(u)?.cds;if(h?.length&&f?.length)if(a[c].type==="straightLadder"){let d=t;this.addLineItem(l,u,d,i)}else{let d=n;this.addLineItem(l,u,d,i)}}}}),this.escalatorMap.forEach((o,a)=>{o.forEach(c=>{if(c.start&&c.end){let l=`${c.start.floor}${Vt}${c.start.id}`,s=`${c.end.floor}${Vt}${c.end.id}`,u=this.pointMap.get(l)?.cds,h=this.pointMap.get(s)?.cds;if(u?.length&&h?.length){let f=e;this.addLineItem(l,s,f,i)}}})})}initBaseRoute(){let e=new Map(Ai([...this.lineMap]));this.addFacilityToLineMap(1,this.lift_priority,3e4,e),this.baseRoute=new ue.default(e)}initEscalatorRoute(){let e=new Map(Ai([...this.lineMap])),t=1e4;this.addFacilityToLineMap(1*t,this.lift_priority*t,3e4*t,e),this.escalatorRoute=new ue.default(e)}initStraightLadderRoute(){let e=new Map(Ai([...this.lineMap])),t=1e4;this.addFacilityToLineMap(3*t,1*t,3e4*t,e),this.straightLadderRoute=new ue.default(e)}initForwardRoute(){this.rampMap.forEach((e,t)=>{e.forEach(n=>{if(n.start&&n.end){let i=`${n.start.floor}${Vt}${n.start.id}`,o=`${n.end.floor}${Vt}${n.end.id}`,a=this.pointMap.get(i)?.cds,c=this.pointMap.get(o)?.cds;a?.length&&c?.length&&this.addLineItem(i,o,10,this.forwardLineMap)}})}),this.forwardRoute=new ue.default(this.forwardLineMap)}checkStart(e){return!(!e.floor||!e.nodeId&&(!e.coord||e.coord.length<2))}checkEnd(e){return e.facility||e.parkingSpace&&e.floor?!0:this.checkStart(e)}transformStart(e){if(e.nodeId){let t=this.nodeMap.get(`${e.floor}${Vt}${e.nodeId}`);if(t){let[n,i]=t.split(Vt);return{floor:n,id:i}}}if(e.coord?.length){let t=this.roadInfo.find(i=>i.floor===e.floor);if(!t)return null;let n=t.points.reduce((i,o)=>{let a=kt(e.coord,o.cds);return a<i.min&&(i.min=a,i.point=o),i},{min:1/0,point:t.points[0]});return{floor:t.floor,id:n.point.id}}return null}transformEnd(e){if(e.floor){if(e.parkingSpace){let n=this.parkingMap.get(`${e.floor}${Vt}${e.parkingSpace}`);if(n)return{floor:e.floor,id:n.id}}let t=this.transformStart(e);if(t)return t}return e.facility&&this.facilityMap.get(e.facility)?.length?{floor:e.floor,facility:e.facility}:null}getPath(e,t,n=""){if(!this.checkStart(e))return"start-error";if(!this.checkEnd(t))return"end-error";let i=this.transformStart(e);if(!i)return"no-start";let o=this.transformEnd(t);if(!o)return"no-end";let a=this.getBasePath.bind(this);switch(n){case"escalator":a=this.getEscalatorPath.bind(this);break;case"straightLadder":a=this.getStraightLadderPath.bind(this);break;case"forward":a=this.getForwardPath.bind(this);break;default:a=this.getBasePath.bind(this);break}if(o.id)return a(i,o);if(o.facility){let c=this.facilityMap.get(o.facility).filter(s=>o.floor?s.floor===o.floor:!0);if(!c.length)return null;let l=c.map(s=>a(i,{floor:s.floor,id:s.id})).filter(s=>!!s);return l.reduce((s,u)=>{let h=u.reduce((f,d)=>f+Me(d.points),0);return h<s.distance&&(s.distance=h,s.path=u),s},{distance:1/0,path:l[0]}).path}}getRoutePath(e,t,n){let i=`${e.floor}${Vt}${e.id}`,o=`${t.floor}${Vt}${t.id}`,a=n.path(i,o);if(!a)return null;let c=[];return a.map(l=>{let s=this.pointMap.get(l);if(s){let{floor:u}=s,h=s.type;if(this.isFacilityByType(s.type)){let f=this.facilities.find(d=>d.id===+s.targetId);f&&(h=f.entry_infra_type)}if(c[c.length-1]?.floor===u){let f=c[c.length-1];f.points.push(s.cds),f.endType=h,f.destId=s.nodeId,f.distance=Me(f.points)}else c.push({floor:u,points:[s.cds],endType:h,destId:s.nodeId,distance:0})}}),c}getBasePath(e,t){return this.getRoutePath(e,t,this.baseRoute)}getEscalatorPath(e,t){return this.getRoutePath(e,t,this.escalatorRoute)}getStraightLadderPath(e,t){return this.getRoutePath(e,t,this.straightLadderRoute)}getForwardPath(e,t){return this.getRoutePath(e,t,this.forwardRoute)}clear(){this.roadInfo=[],this.pointMap.clear(),this.nodeMap.clear(),this.facilityMap.clear(),this.straightLadderMap.clear(),this.escalatorMap.clear(),this.staircaseMap.clear(),this.lineMap.clear(),this.baseRoute=new ue.default,this.escalatorRoute=new ue.default,this.straightLadderRoute=new ue.default}};var nn=class{static keySet=new Set;static createKey(){return Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15)}static genUniqueKey(){let e=this.createKey();for(;this.keySet.has(e);)e=this.createKey();return e}static removeKey(e){this.keySet.delete(e)}static dispose(){this.keySet.clear()}};function ia(r){return r.replace(/[A-Z]/g,e=>"_"+e.toLowerCase()).replace(/^_/,"")}function Te(r,e,t){return new Promise((n,i)=>{let o=nn.genUniqueKey(),a=({data:c})=>{c.type===`${e}_result`&&c.key===o&&(nn.removeKey(o),self.removeEventListener("message",a),c.error?i(c.error):n(c.data))};r.addEventListener("message",a),r.postMessage({type:e,key:o,data:t})})}function i_(r){let e={};for(let n in r)n.startsWith("on")&&(e[ia(n.slice(2))]=r[n]);let t=async({data:n})=>{if(e[n.type])try{let i=await e[n.type](n.data);self.postMessage({type:`${n.type}_result`,key:n.key,data:i})}catch(i){self.postMessage({type:`${n.type}_result`,key:n.key,error:i})}else self.postMessage({type:`${n.type}_result`,key:n.key,error:"no_event"})};return self.addEventListener("message",t),()=>{self.removeEventListener("message",t)}}import{BoxGeometry as Mh,BufferGeometry as wh,Line as Th,LineBasicMaterial as oa,Mesh as Ch}from"three";function u_(r,e=16711680){let t=new oa({color:e}),n=new wh().setFromPoints(r);return new Th(n,t)}function l_(r,e=16711680){let t=new oa({color:e}),n=new Mh(1,1,1),i=new Ch(n,t);return i.position.copy(r),i}function ee(r,e,t=0){r.forEach(n=>{n.geometry.coords=JSON.parse(JSON.stringify(n.geometry.cds)),n.geometry.type==="polygon"?(n.geometry.coords.map(i=>{Array.isArray(i)&&i.forEach(o=>{o[0]-=e[0],o[1]-=e[1]})}),n.geometry.otherCds&&(n.geometry.otherCoords=n.geometry.otherCds.map(i=>i.map(o=>me(o,e)))),n.doors?.length&&n.doors.map(i=>{i.coord=me(i.coordinate,e)}),n.center&&(n.center=me(n.center,e))):n.geometry.coords=me(n.geometry.cds,e)});for(let n=0;n<r.length;n++){let i=r[n];i.deltaHeight=1e-5*(t+n+1)}}function me(r,e){return[r[0]-e[0],r[1]-e[1]]}import{Group as Ah}from"@tweenjs/tween.js";var vn=class{pauseTween=!1;tweenStore=new Set;group=new Ah;constructor(){}update(){this.group.update()}pause(){this.pauseTween=!0,this.getAll().forEach(e=>{this.tweenStore.add(e),e.pause()})}continue(){this.pauseTween&&(this.tweenStore.forEach(e=>{e.resume()}),this.tweenStore.clear(),this.pauseTween=!1)}remove(e){this.group.remove(e)}getAll(){return this.group.getAll()}clear(){this.getAll().forEach(e=>e.stop()),this.group.removeAll()}dispose(){this.clear()}};import{EventDispatcher as If,Box2 as Rf,Vector3 as on,Vector2 as xn,Raycaster as Nf,Box3 as Lf,Color as Of,AmbientLight as Ff}from"three";import{EventDispatcher as xf}from"three";import{Object3D as Gh,ExtrudeGeometry as kh,Mesh as Vh,Box3 as mr,Vector3 as ye,BufferGeometry as Hh,LineSegments as Wh,Ray as la,Vector2 as Fe}from"three";import{LineMaterial as Ph}from"three/examples/jsm/lines/LineMaterial";import{Color as gr,LineBasicMaterial as Dh,MeshStandardMaterial as Ih,MeshBasicMaterial as Rh,ShaderMaterial as Nh,DoubleSide as Lh}from"three";function sa(r){return`${r.x}-${r.y}-${r.z}`}var Rt=class{static lineMaterialMap=new Map;static meshStandardMaterialMap=new Map;static meshBasicMaterialMap=new Map;static shaderMaterialMap=new Map;static line2MaterialMap=new Map;static generateLineMaterialKey({color:e,opacity:t}){return`${e}-${t}`}static createLineMaterial({color:e,opacity:t}){let n=this.generateLineMaterialKey({color:e,opacity:t});if(this.lineMaterialMap.has(n))return this.lineMaterialMap.get(n);let i=new Dh({color:new gr(e).convertLinearToSRGB(),transparent:!0,opacity:t});return this.lineMaterialMap.set(n,i),i}static createMeshStandardMaterial({color:e,opacity:t}){let n=`${e}-${t}`;if(this.meshStandardMaterialMap.has(n))return this.meshStandardMaterialMap.get(n);let i=new Ih({color:new gr(e).convertLinearToSRGB(),roughness:1,transparent:!0,opacity:t,depthWrite:!0});return this.meshStandardMaterialMap.set(n,i),i}static createMeshBasicMaterial({color:e,opacity:t}){let n=`${e}-${t}`;if(this.meshBasicMaterialMap.has(n))return this.meshBasicMaterialMap.get(n);let i=new Rh({color:e,transparent:!0,opacity:t,depthWrite:!0});return this.meshBasicMaterialMap.set(n,i),i}static createShaderMaterial({gradualColor:e,center:t,maxValue:n,opacity:i,direction:o,max:a,min:c}){let l=`${e.toString()}-${sa(t)}-${n}-${i}-${sa(o)}`;if(this.shaderMaterialMap.has(l))return this.shaderMaterialMap.get(l);let s=`
1
+ var rh=Object.create;var _s=Object.defineProperty;var ih=Object.getOwnPropertyDescriptor;var oh=Object.getOwnPropertyNames;var sh=Object.getPrototypeOf,ah=Object.prototype.hasOwnProperty;var Re=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports);var uh=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of oh(e))!ah.call(r,i)&&i!==t&&_s(r,i,{get:()=>e[i],enumerable:!(n=ih(e,i))||n.enumerable});return r};var pn=(r,e,t)=>(t=r!=null?rh(sh(r)):{},uh(e||!r||!r.__esModule?_s(t,"default",{value:r,enumerable:!0}):t,r));var Rs=Re((Uv,Is)=>{Is.exports=function(e,t){return e[0]=t[0],e[1]=t[1],e}});var Os=Re((Bv,Ls)=>{var Ns=Rs();Ls.exports=function(r,e){Array.isArray(e)||(e=[]),r.length>0&&e.push(Ns([0,0],r[0]));for(var t=0;t<r.length-1;t++){var n=r[t],i=r[t+1],o=n[0],a=n[1],c=i[0],l=i[1],s=[.75*o+.25*c,.75*a+.25*l],u=[.25*o+.75*c,.25*a+.75*l];e.push(s),e.push(u)}return r.length>1&&e.push(Ns([0,0],r[r.length-1])),e}});var Hs=Re((Wv,Vs)=>{var wi=class{constructor(){this.keys=new Set,this.queue=[]}sort(){this.queue.sort((e,t)=>e.priority-t.priority)}set(e,t){let n=Number(t);if(isNaN(n))throw new TypeError('"priority" must be a number');return this.keys.has(e)?this.queue.map(i=>(i.key===e&&Object.assign(i,{priority:n}),i)):(this.keys.add(e),this.queue.push({key:e,priority:n})),this.sort(),this.queue.length}next(){let e=this.queue.shift();return this.keys.delete(e.key),e}isEmpty(){return this.queue.length===0}has(e){return this.keys.has(e)}get(e){return this.queue.find(t=>t.key===e)}};Vs.exports=wi});var Xs=Re((qv,qs)=>{function Ws(r,e){let t=new Map;for(let[n,i]of r)n!==e&&i instanceof Map?t.set(n,Ws(i,e)):n!==e&&t.set(n,i);return t}qs.exports=Ws});var $s=Re((Xv,Ys)=>{function Eh(r){let e=Number(r);return!(isNaN(e)||e<=0)}function js(r){let e=new Map;return Object.keys(r).forEach(n=>{let i=r[n];if(i!==null&&typeof i=="object"&&!Array.isArray(i))return e.set(n,js(i));if(!Eh(i))throw new Error(`Could not add node at key "${n}", make sure it's a valid node`,i);return e.set(n,Number(i))}),e}Ys.exports=js});var Js=Re((jv,Ks)=>{function Zs(r){if(!(r instanceof Map))throw new Error(`Invalid graph: Expected Map instead found ${typeof r}`);r.forEach((e,t)=>{if(typeof e=="object"&&e instanceof Map){Zs(e);return}if(typeof e!="number"||e<=0)throw new Error(`Values must be numbers greater than 0. Found value ${e} at ${t}`)})}Ks.exports=Zs});var Ci=Re((Yv,ea)=>{var bh=Hs(),Sh=Xs(),Qs=$s(),ta=Js(),Ti=class{constructor(e){e instanceof Map?(ta(e),this.graph=e):e?this.graph=Qs(e):this.graph=new Map}addNode(e,t){let n;return t instanceof Map?(ta(t),n=t):n=Qs(t),this.graph.set(e,n),this}addVertex(e,t){return this.addNode(e,t)}removeNode(e){return this.graph=Sh(this.graph,e),this}path(e,t,n={}){if(!this.graph.size)return n.cost?{path:null,cost:0}:null;let i=new Set,o=new bh,a=new Map,c=[],l=0,s=[];if(n.avoid&&(s=[].concat(n.avoid)),s.includes(e))throw new Error(`Starting node (${e}) cannot be avoided`);if(s.includes(t))throw new Error(`Ending node (${t}) cannot be avoided`);for(o.set(e,0);!o.isEmpty();){let u=o.next();if(u.key===t){l=u.priority;let f=u.key;for(;a.has(f);)c.push(f),f=a.get(f);break}i.add(u.key),(this.graph.get(u.key)||new Map).forEach((f,d)=>{if(i.has(d)||s.includes(d))return null;if(!o.has(d))return a.set(d,u.key),o.set(d,u.priority+f);let g=o.get(d).priority,p=u.priority+f;return p<g?(a.set(d,u.key),o.set(d,p)):null})}return c.length?(n.trim?c.shift():c=c.concat([e]),n.reverse||(c=c.reverse()),n.cost?{path:c,cost:l}:c):n.cost?{path:null,cost:0}:null}shortestPath(...e){return this.path(...e)}};ea.exports=Ti});var Hi=Re((ki,Vi)=>{(function(r,e){typeof ki=="object"&&typeof Vi<"u"?Vi.exports=e():typeof define=="function"&&define.amd?define(e):(r=typeof globalThis<"u"?globalThis:r||self,r["'typed'"]=e())})(ki,function(){"use strict";function r(){return!0}function e(){return!1}function t(){}let n="Argument is not a typed-function.";function i(){function a(E){return typeof E=="object"&&E!==null&&E.constructor===Object}let c=[{name:"number",test:function(E){return typeof E=="number"}},{name:"string",test:function(E){return typeof E=="string"}},{name:"boolean",test:function(E){return typeof E=="boolean"}},{name:"Function",test:function(E){return typeof E=="function"}},{name:"Array",test:Array.isArray},{name:"Date",test:function(E){return E instanceof Date}},{name:"RegExp",test:function(E){return E instanceof RegExp}},{name:"Object",test:a},{name:"null",test:function(E){return E===null}},{name:"undefined",test:function(E){return E===void 0}}],l={name:"any",test:r,isAny:!0},s,u,h=0,f={createCount:0};function d(E){let T=s.get(E);if(T)return T;let A='Unknown type "'+E+'"',I=E.toLowerCase(),U;for(U of u)if(U.toLowerCase()===I){A+='. Did you mean "'+U+'" ?';break}throw new TypeError(A)}function g(E){let T=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"any",A=T?d(T).index:u.length,I=[];for(let O=0;O<E.length;++O){if(!E[O]||typeof E[O].name!="string"||typeof E[O].test!="function")throw new TypeError("Object with properties {name: string, test: function} expected");let V=E[O].name;if(s.has(V))throw new TypeError('Duplicate type name "'+V+'"');I.push(V),s.set(V,{name:V,test:E[O].test,isAny:E[O].isAny,index:A+O,conversionsTo:[]})}let U=u.slice(A);u=u.slice(0,A).concat(I).concat(U);for(let O=A+I.length;O<u.length;++O)s.get(u[O]).index=O}function p(){s=new Map,u=[],h=0,g([l],!1)}p(),g(c);function m(){let E;for(E of u)s.get(E).conversionsTo=[];h=0}function v(E){let T=u.filter(A=>{let I=s.get(A);return!I.isAny&&I.test(E)});return T.length?T:["any"]}function b(E){return E&&typeof E=="function"&&"_typedFunctionData"in E}function y(E,T,A){if(!b(E))throw new TypeError(n);let I=A&&A.exact,U=Array.isArray(T)?T.join(","):T,O=P(U),V=_(O);if(!I||V in E.signatures){let ht=E._typedFunctionData.signatureMap.get(V);if(ht)return ht}let z=O.length,H;if(I){H=[];let ht;for(ht in E.signatures)H.push(E._typedFunctionData.signatureMap.get(ht))}else H=E._typedFunctionData.signatures;for(let ht=0;ht<z;++ht){let mt=O[ht],Ct=[],Zt;for(Zt of H){let qt=G(Zt.params,ht);if(!(!qt||mt.restParam&&!qt.restParam)){if(!qt.hasAny){let de=C(qt);if(mt.types.some(ge=>!de.has(ge.name)))continue}Ct.push(Zt)}}if(H=Ct,H.length===0)break}let B;for(B of H)if(B.params.length<=z)return B;throw new TypeError("Signature not found (signature: "+(E.name||"unnamed")+"("+_(O,", ")+"))")}function S(E,T,A){return y(E,T,A).implementation}function x(E,T){let A=d(T);if(A.test(E))return E;let I=A.conversionsTo;if(I.length===0)throw new Error("There are no conversions to "+T+" defined.");for(let U=0;U<I.length;U++)if(d(I[U].from).test(E))return I[U].convert(E);throw new Error("Cannot convert "+E+" to "+T)}function _(E){let T=arguments.length>1&&arguments[1]!==void 0?arguments[1]:",";return E.map(A=>A.name).join(T)}function M(E){let T=E.indexOf("...")===0,I=(T?E.length>3?E.slice(3):"any":E).split("|").map(z=>d(z.trim())),U=!1,O=T?"...":"";return{types:I.map(function(z){return U=z.isAny||U,O+=z.name+"|",{name:z.name,typeIndex:z.index,test:z.test,isAny:z.isAny,conversion:null,conversionIndex:-1}}),name:O.slice(0,-1),hasAny:U,hasConversion:!1,restParam:T}}function w(E){let T=E.types.map(V=>V.name),A=pt(T),I=E.hasAny,U=E.name,O=A.map(function(V){let z=d(V.from);return I=z.isAny||I,U+="|"+V.from,{name:V.from,typeIndex:z.index,test:z.test,isAny:z.isAny,conversion:V,conversionIndex:V.index}});return{types:E.types.concat(O),name:U,hasAny:I,hasConversion:O.length>0,restParam:E.restParam}}function C(E){return E.typeSet||(E.typeSet=new Set,E.types.forEach(T=>E.typeSet.add(T.name))),E.typeSet}function P(E){let T=[];if(typeof E!="string")throw new TypeError("Signatures must be strings");let A=E.trim();if(A==="")return T;let I=A.split(",");for(let U=0;U<I.length;++U){let O=M(I[U].trim());if(O.restParam&&U!==I.length-1)throw new SyntaxError('Unexpected rest parameter "'+I[U]+'": only allowed for the last parameter');if(O.types.length===0)return null;T.push(O)}return T}function D(E){let T=zt(E);return T?T.restParam:!1}function R(E){if(!E||E.types.length===0)return r;if(E.types.length===1)return d(E.types[0].name).test;if(E.types.length===2){let T=d(E.types[0].name).test,A=d(E.types[1].name).test;return function(U){return T(U)||A(U)}}else{let T=E.types.map(function(A){return d(A.name).test});return function(I){for(let U=0;U<T.length;U++)if(T[U](I))return!0;return!1}}}function W(E){let T,A,I;if(D(E)){T=It(E).map(R);let U=T.length,O=R(zt(E)),V=function(z){for(let H=U;H<z.length;H++)if(!O(z[H]))return!1;return!0};return function(H){for(let B=0;B<T.length;B++)if(!T[B](H[B]))return!1;return V(H)&&H.length>=U+1}}else return E.length===0?function(O){return O.length===0}:E.length===1?(A=R(E[0]),function(O){return A(O[0])&&O.length===1}):E.length===2?(A=R(E[0]),I=R(E[1]),function(O){return A(O[0])&&I(O[1])&&O.length===2}):(T=E.map(R),function(O){for(let V=0;V<T.length;V++)if(!T[V](O[V]))return!1;return O.length===T.length})}function G(E,T){return T<E.length?E[T]:D(E)?zt(E):null}function k(E,T){let A=G(E,T);return A?C(A):new Set}function L(E){return E.conversion===null||E.conversion===void 0}function q(E,T){let A=new Set;return E.forEach(I=>{let U=k(I.params,T),O;for(O of U)A.add(O)}),A.has("any")?["any"]:Array.from(A)}function Y(E,T,A){let I,U,O=E||"unnamed",V=A,z;for(z=0;z<T.length;z++){let mt=[];if(V.forEach(Ct=>{let Zt=G(Ct.params,z),qt=R(Zt);(z<Ct.params.length||D(Ct.params))&&qt(T[z])&&mt.push(Ct)}),mt.length===0){if(U=q(V,z),U.length>0){let Ct=v(T[z]);return I=new TypeError("Unexpected type of argument in function "+O+" (expected: "+U.join(" or ")+", actual: "+Ct.join(" | ")+", index: "+z+")"),I.data={category:"wrongType",fn:O,index:z,actual:Ct,expected:U},I}}else V=mt}let H=V.map(function(mt){return D(mt.params)?1/0:mt.params.length});if(T.length<Math.min.apply(null,H))return U=q(V,z),I=new TypeError("Too few arguments in function "+O+" (expected: "+U.join(" or ")+", index: "+T.length+")"),I.data={category:"tooFewArgs",fn:O,index:T.length,expected:U},I;let B=Math.max.apply(null,H);if(T.length>B)return I=new TypeError("Too many arguments in function "+O+" (expected: "+B+", actual: "+T.length+")"),I.data={category:"tooManyArgs",fn:O,index:T.length,expectedLength:B},I;let ht=[];for(let mt=0;mt<T.length;++mt)ht.push(v(T[mt]).join("|"));return I=new TypeError('Arguments of type "'+ht.join(", ")+'" do not match any of the defined signatures of function '+O+"."),I.data={category:"mismatch",actual:ht},I}function j(E){let T=u.length+1;for(let A=0;A<E.types.length;A++)L(E.types[A])&&(T=Math.min(T,E.types[A].typeIndex));return T}function J(E){let T=h+1;for(let A=0;A<E.types.length;A++)L(E.types[A])||(T=Math.min(T,E.types[A].conversionIndex));return T}function lt(E,T){if(E.hasAny){if(!T.hasAny)return 1}else if(T.hasAny)return-1;if(E.restParam){if(!T.restParam)return 1}else if(T.restParam)return-1;if(E.hasConversion){if(!T.hasConversion)return 1}else if(T.hasConversion)return-1;let A=j(E)-j(T);if(A<0)return-1;if(A>0)return 1;let I=J(E)-J(T);return I<0?-1:I>0?1:0}function at(E,T){let A=E.params,I=T.params,U=zt(A),O=zt(I),V=D(A),z=D(I);if(V&&U.hasAny){if(!z||!O.hasAny)return 1}else if(z&&O.hasAny)return-1;let H=0,B=0,ht;for(ht of A)ht.hasAny&&++H,ht.hasConversion&&++B;let mt=0,Ct=0;for(ht of I)ht.hasAny&&++mt,ht.hasConversion&&++Ct;if(H!==mt)return H-mt;if(V&&U.hasConversion){if(!z||!O.hasConversion)return 1}else if(z&&O.hasConversion)return-1;if(B!==Ct)return B-Ct;if(V){if(!z)return 1}else if(z)return-1;let Zt=(A.length-I.length)*(V?-1:1);if(Zt!==0)return Zt;let qt=[],de=0;for(let hn=0;hn<A.length;++hn){let ur=lt(A[hn],I[hn]);qt.push(ur),de+=ur}if(de!==0)return de;let ge;for(ge of qt)if(ge!==0)return ge;return 0}function pt(E){if(E.length===0)return[];let T=E.map(d);E.length>1&&T.sort((U,O)=>U.index-O.index);let A=T[0].conversionsTo;if(E.length===1)return A;A=A.concat([]);let I=new Set(E);for(let U=1;U<T.length;++U){let O;for(O of T[U].conversionsTo)I.has(O.from)||(A.push(O),I.add(O.from))}return A}function Tt(E,T){let A=T;if(E.some(U=>U.hasConversion)){let U=D(E),O=E.map(wt);A=function(){let z=[],H=U?arguments.length-1:arguments.length;for(let B=0;B<H;B++)z[B]=O[B](arguments[B]);return U&&(z[H]=arguments[H].map(O[H])),T.apply(this,z)}}let I=A;if(D(E)){let U=E.length-1;I=function(){return A.apply(this,be(arguments,0,U).concat([be(arguments,U)]))}}return I}function wt(E){let T,A,I,U,O=[],V=[];switch(E.types.forEach(function(z){z.conversion&&(O.push(d(z.conversion.from).test),V.push(z.conversion.convert))}),V.length){case 0:return function(H){return H};case 1:return T=O[0],I=V[0],function(H){return T(H)?I(H):H};case 2:return T=O[0],A=O[1],I=V[0],U=V[1],function(H){return T(H)?I(H):A(H)?U(H):H};default:return function(H){for(let B=0;B<V.length;B++)if(O[B](H))return V[B](H);return H}}}function St(E){function T(A,I,U){if(I<A.length){let O=A[I],V=[];if(O.restParam){let z=O.types.filter(L);z.length<O.types.length&&V.push({types:z,name:"..."+z.map(H=>H.name).join("|"),hasAny:z.some(H=>H.isAny),hasConversion:!1,restParam:!0}),V.push(O)}else V=O.types.map(function(z){return{types:[z],name:z.name,hasAny:z.isAny,hasConversion:z.conversion,restParam:!1}});return Un(V,function(z){return T(A,I+1,U.concat([z]))})}else return[U]}return T(E,0,[])}function xt(E,T){let A=Math.max(E.length,T.length);for(let z=0;z<A;z++){let H=k(E,z),B=k(T,z),ht=!1,mt;for(mt of B)if(H.has(mt)){ht=!0;break}if(!ht)return!1}let I=E.length,U=T.length,O=D(E),V=D(T);return O?V?I===U:U>=I:V?I>=U:I===U}function $t(E){return E.map(T=>ms(T)?ds(T.referToSelf.callback):gs(T)?ar(T.referTo.references,T.referTo.callback):T)}function Mt(E,T,A){let I=[],U;for(U of E){let O=A[U];if(typeof O!="number")throw new TypeError('No definition for referenced signature "'+U+'"');if(O=T[O],typeof O!="function")return!1;I.push(O)}return I}function gt(E,T,A){let I=$t(E),U=new Array(I.length).fill(!1),O=!0;for(;O;){O=!1;let V=!0;for(let z=0;z<I.length;++z){if(U[z])continue;let H=I[z];if(ms(H))I[z]=H.referToSelf.callback(A),I[z].referToSelf=H.referToSelf,U[z]=!0,V=!1;else if(gs(H)){let B=Mt(H.referTo.references,I,T);B?(I[z]=H.referTo.callback.apply(this,B),I[z].referTo=H.referTo,U[z]=!0,V=!1):O=!0}}if(V&&O)throw new SyntaxError("Circular reference detected in resolving typed.referTo")}return I}function se(E){let T=/\bthis(\(|\.signatures\b)/;Object.keys(E).forEach(A=>{let I=E[A];if(T.test(I.toString()))throw new SyntaxError("Using `this` to self-reference a function is deprecated since typed-function@3. Use typed.referTo and typed.referToSelf instead.")})}function Ot(E,T){if(f.createCount++,Object.keys(T).length===0)throw new SyntaxError("No signatures provided");f.warnAgainstDeprecatedThis&&se(T);let A=[],I=[],U={},O=[],V;for(V in T){if(!Object.prototype.hasOwnProperty.call(T,V))continue;let ut=P(V);if(!ut)continue;A.forEach(function(zn){if(xt(zn,ut))throw new TypeError('Conflicting signatures "'+_(zn)+'" and "'+_(ut)+'".')}),A.push(ut);let Kt=I.length;I.push(T[V]);let eh=ut.map(w),lr;for(lr of St(eh)){let zn=_(lr);O.push({params:lr,name:zn,fn:Kt}),lr.every(nh=>!nh.hasConversion)&&(U[zn]=Kt)}}O.sort(at);let z=gt(I,U,Bn),H;for(H in U)Object.prototype.hasOwnProperty.call(U,H)&&(U[H]=z[U[H]]);let B=[],ht=new Map;for(H of O)ht.has(H.name)||(H.fn=z[H.fn],B.push(H),ht.set(H.name,H));let mt=B[0]&&B[0].params.length<=2&&!D(B[0].params),Ct=B[1]&&B[1].params.length<=2&&!D(B[1].params),Zt=B[2]&&B[2].params.length<=2&&!D(B[2].params),qt=B[3]&&B[3].params.length<=2&&!D(B[3].params),de=B[4]&&B[4].params.length<=2&&!D(B[4].params),ge=B[5]&&B[5].params.length<=2&&!D(B[5].params),hn=mt&&Ct&&Zt&&qt&&de&&ge;for(let ut=0;ut<B.length;++ut)B[ut].test=W(B[ut].params);let ur=mt?R(B[0].params[0]):e,Cc=Ct?R(B[1].params[0]):e,Ac=Zt?R(B[2].params[0]):e,Pc=qt?R(B[3].params[0]):e,Dc=de?R(B[4].params[0]):e,Ic=ge?R(B[5].params[0]):e,Rc=mt?R(B[0].params[1]):e,Nc=Ct?R(B[1].params[1]):e,Lc=Zt?R(B[2].params[1]):e,Oc=qt?R(B[3].params[1]):e,Fc=de?R(B[4].params[1]):e,Uc=ge?R(B[5].params[1]):e;for(let ut=0;ut<B.length;++ut)B[ut].implementation=Tt(B[ut].params,B[ut].fn);let Bc=mt?B[0].implementation:t,zc=Ct?B[1].implementation:t,Gc=Zt?B[2].implementation:t,kc=qt?B[3].implementation:t,Vc=de?B[4].implementation:t,Hc=ge?B[5].implementation:t,Wc=mt?B[0].params.length:-1,qc=Ct?B[1].params.length:-1,Xc=Zt?B[2].params.length:-1,jc=qt?B[3].params.length:-1,Yc=de?B[4].params.length:-1,$c=ge?B[5].params.length:-1,Zc=hn?6:0,Kc=B.length,Jc=B.map(ut=>ut.test),Qc=B.map(ut=>ut.implementation),th=function(){for(let Kt=Zc;Kt<Kc;Kt++)if(Jc[Kt](arguments))return Qc[Kt].apply(this,arguments);return f.onMismatch(E,arguments,B)};function Bn(ut,Kt){return arguments.length===Wc&&ur(ut)&&Rc(Kt)?Bc.apply(this,arguments):arguments.length===qc&&Cc(ut)&&Nc(Kt)?zc.apply(this,arguments):arguments.length===Xc&&Ac(ut)&&Lc(Kt)?Gc.apply(this,arguments):arguments.length===jc&&Pc(ut)&&Oc(Kt)?kc.apply(this,arguments):arguments.length===Yc&&Dc(ut)&&Fc(Kt)?Vc.apply(this,arguments):arguments.length===$c&&Ic(ut)&&Uc(Kt)?Hc.apply(this,arguments):th.apply(this,arguments)}try{Object.defineProperty(Bn,"name",{value:E})}catch{}return Bn.signatures=U,Bn._typedFunctionData={signatures:B,signatureMap:ht},Bn}function ct(E,T,A){throw Y(E,T,A)}function It(E){return be(E,0,E.length-1)}function zt(E){return E[E.length-1]}function be(E,T,A){return Array.prototype.slice.call(E,T,A)}function ke(E,T){for(let A=0;A<E.length;A++)if(T(E[A]))return E[A]}function Un(E,T){return Array.prototype.concat.apply([],E.map(T))}function cn(){let E=It(arguments).map(A=>_(P(A))),T=zt(arguments);if(typeof T!="function")throw new TypeError("Callback function expected as last argument");return ar(E,T)}function ar(E,T){return{referTo:{references:E,callback:T}}}function ds(E){if(typeof E!="function")throw new TypeError("Callback function expected as first argument");return{referToSelf:{callback:E}}}function gs(E){return E&&typeof E.referTo=="object"&&Array.isArray(E.referTo.references)&&typeof E.referTo.callback=="function"}function ms(E){return E&&typeof E.referToSelf=="object"&&typeof E.referToSelf.callback=="function"}function ys(E,T){if(!E)return T;if(T&&T!==E){let A=new Error("Function names do not match (expected: "+E+", actual: "+T+")");throw A.data={actual:T,expected:E},A}return E}function Mc(E){let T;for(let A in E)Object.prototype.hasOwnProperty.call(E,A)&&(b(E[A])||typeof E[A].signature=="string")&&(T=ys(T,E[A].name));return T}function wc(E,T){let A;for(A in T)if(Object.prototype.hasOwnProperty.call(T,A)){if(A in E&&T[A]!==E[A]){let I=new Error('Signature "'+A+'" is defined twice');throw I.data={signature:A,sourceFunction:T[A],destFunction:E[A]},I}E[A]=T[A]}}let Tc=f;f=function(E){let T=typeof E=="string",A=T?1:0,I=T?E:"",U={};for(let O=A;O<arguments.length;++O){let V=arguments[O],z={},H;if(typeof V=="function"?(H=V.name,typeof V.signature=="string"?z[V.signature]=V:b(V)&&(z=V.signatures)):a(V)&&(z=V,T||(H=Mc(V))),Object.keys(z).length===0){let B=new TypeError("Argument to 'typed' at index "+O+" is not a (typed) function, nor an object with signatures as keys and functions as values.");throw B.data={index:O,argument:V},B}T||(I=ys(I,H)),wc(U,z)}return Ot(I||"",U)},f.create=i,f.createCount=Tc.createCount,f.onMismatch=ct,f.throwMismatchError=ct,f.createError=Y,f.clear=p,f.clearConversions=m,f.addTypes=g,f._findType=d,f.referTo=cn,f.referToSelf=ds,f.convert=x,f.findSignature=y,f.find=S,f.isTypedFunction=b,f.warnAgainstDeprecatedThis=!0,f.addType=function(E,T){let A="any";T!==!1&&s.has("Object")&&(A="Object"),f.addTypes([E],A)};function vs(E){if(!E||typeof E.from!="string"||typeof E.to!="string"||typeof E.convert!="function")throw new TypeError("Object with properties {from: string, to: string, convert: function} expected");if(E.to===E.from)throw new SyntaxError('Illegal to define conversion from "'+E.from+'" to itself.')}return f.addConversion=function(E){let T=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{override:!1};vs(E);let A=d(E.to),I=A.conversionsTo.find(U=>U.from===E.from);if(I)if(T&&T.override)f.removeConversion({from:I.from,to:E.to,convert:I.convert});else throw new Error('There is already a conversion from "'+E.from+'" to "'+A.name+'"');A.conversionsTo.push({from:E.from,convert:E.convert,index:h++})},f.addConversions=function(E,T){E.forEach(A=>f.addConversion(A,T))},f.removeConversion=function(E){vs(E);let T=d(E.to),A=ke(T.conversionsTo,U=>U.from===E.from);if(!A)throw new Error("Attempt to remove nonexistent conversion from "+E.from+" to "+E.to);if(A.convert!==E.convert)throw new Error("Conversion to remove does not match existing conversion");let I=T.conversionsTo.indexOf(A);T.conversionsTo.splice(I,1)},f.resolve=function(E,T){if(!b(E))throw new TypeError(n);let A=E._typedFunctionData.signatures;for(let I=0;I<A.length;++I)if(A[I].test(T))return A[I];return null},f}var o=i();return o})});var Xu=Re((no,qu)=>{(function(r){"use strict";var e=Math.cosh||function(s){return Math.abs(s)<1e-9?1-s:(Math.exp(s)+Math.exp(-s))*.5},t=Math.sinh||function(s){return Math.abs(s)<1e-9?s:(Math.exp(s)-Math.exp(-s))*.5},n=function(s){var u=Math.PI/4;if(-u>s||s>u)return Math.cos(s)-1;var h=s*s;return h*(h*(h*(h*(h*(h*(h*(h/20922789888e3-1/87178291200)+1/479001600)-1/3628800)+1/40320)-1/720)+1/24)-1/2)},i=function(s,u){var h=Math.abs(s),f=Math.abs(u);return h<3e3&&f<3e3?Math.sqrt(h*h+f*f):(h<f?(h=f,f=s/u):f=u/s,h*Math.sqrt(1+f*f))},o=function(){throw SyntaxError("Invalid Param")};function a(s,u){var h=Math.abs(s),f=Math.abs(u);return s===0?Math.log(f):u===0?Math.log(h):h<3e3&&f<3e3?Math.log(s*s+u*u)*.5:(s=s/2,u=u/2,.5*Math.log(s*s+u*u)+Math.LN2)}var c=function(s,u){var h={re:0,im:0};if(s==null)h.re=h.im=0;else if(u!==void 0)h.re=s,h.im=u;else switch(typeof s){case"object":if("im"in s&&"re"in s)h.re=s.re,h.im=s.im;else if("abs"in s&&"arg"in s){if(!Number.isFinite(s.abs)&&Number.isFinite(s.arg))return l.INFINITY;h.re=s.abs*Math.cos(s.arg),h.im=s.abs*Math.sin(s.arg)}else if("r"in s&&"phi"in s){if(!Number.isFinite(s.r)&&Number.isFinite(s.phi))return l.INFINITY;h.re=s.r*Math.cos(s.phi),h.im=s.r*Math.sin(s.phi)}else s.length===2?(h.re=s[0],h.im=s[1]):o();break;case"string":h.im=h.re=0;var f=s.match(/\d+\.?\d*e[+-]?\d+|\d+\.?\d*|\.\d+|./g),d=1,g=0;f===null&&o();for(var p=0;p<f.length;p++){var m=f[p];m===" "||m===" "||m===`
2
+ `||(m==="+"?d++:m==="-"?g++:m==="i"||m==="I"?(d+g===0&&o(),f[p+1]!==" "&&!isNaN(f[p+1])?(h.im+=parseFloat((g%2?"-":"")+f[p+1]),p++):h.im+=parseFloat((g%2?"-":"")+"1"),d=g=0):((d+g===0||isNaN(m))&&o(),f[p+1]==="i"||f[p+1]==="I"?(h.im+=parseFloat((g%2?"-":"")+m),p++):h.re+=parseFloat((g%2?"-":"")+m),d=g=0))}d+g>0&&o();break;case"number":h.im=0,h.re=s;break;default:o()}return isNaN(h.re)||isNaN(h.im),h};function l(s,u){if(!(this instanceof l))return new l(s,u);var h=c(s,u);this.re=h.re,this.im=h.im}l.prototype={re:0,im:0,sign:function(){var s=this.abs();return new l(this.re/s,this.im/s)},add:function(s,u){var h=new l(s,u);return this.isInfinite()&&h.isInfinite()?l.NAN:this.isInfinite()||h.isInfinite()?l.INFINITY:new l(this.re+h.re,this.im+h.im)},sub:function(s,u){var h=new l(s,u);return this.isInfinite()&&h.isInfinite()?l.NAN:this.isInfinite()||h.isInfinite()?l.INFINITY:new l(this.re-h.re,this.im-h.im)},mul:function(s,u){var h=new l(s,u);return this.isInfinite()&&h.isZero()||this.isZero()&&h.isInfinite()?l.NAN:this.isInfinite()||h.isInfinite()?l.INFINITY:h.im===0&&this.im===0?new l(this.re*h.re,0):new l(this.re*h.re-this.im*h.im,this.re*h.im+this.im*h.re)},div:function(s,u){var h=new l(s,u);if(this.isZero()&&h.isZero()||this.isInfinite()&&h.isInfinite())return l.NAN;if(this.isInfinite()||h.isZero())return l.INFINITY;if(this.isZero()||h.isInfinite())return l.ZERO;s=this.re,u=this.im;var f=h.re,d=h.im,g,p;return d===0?new l(s/f,u/f):Math.abs(f)<Math.abs(d)?(p=f/d,g=f*p+d,new l((s*p+u)/g,(u*p-s)/g)):(p=d/f,g=d*p+f,new l((s+u*p)/g,(u-s*p)/g))},pow:function(s,u){var h=new l(s,u);if(s=this.re,u=this.im,h.isZero())return l.ONE;if(h.im===0){if(u===0&&s>0)return new l(Math.pow(s,h.re),0);if(s===0)switch((h.re%4+4)%4){case 0:return new l(Math.pow(u,h.re),0);case 1:return new l(0,Math.pow(u,h.re));case 2:return new l(-Math.pow(u,h.re),0);case 3:return new l(0,-Math.pow(u,h.re))}}if(s===0&&u===0&&h.re>0&&h.im>=0)return l.ZERO;var f=Math.atan2(u,s),d=a(s,u);return s=Math.exp(h.re*d-h.im*f),u=h.im*d+h.re*f,new l(s*Math.cos(u),s*Math.sin(u))},sqrt:function(){var s=this.re,u=this.im,h=this.abs(),f,d;if(s>=0){if(u===0)return new l(Math.sqrt(s),0);f=.5*Math.sqrt(2*(h+s))}else f=Math.abs(u)/Math.sqrt(2*(h-s));return s<=0?d=.5*Math.sqrt(2*(h-s)):d=Math.abs(u)/Math.sqrt(2*(h+s)),new l(f,u<0?-d:d)},exp:function(){var s=Math.exp(this.re);return this.im,new l(s*Math.cos(this.im),s*Math.sin(this.im))},expm1:function(){var s=this.re,u=this.im;return new l(Math.expm1(s)*Math.cos(u)+n(u),Math.exp(s)*Math.sin(u))},log:function(){var s=this.re,u=this.im;return u===0&&s>0,new l(a(s,u),Math.atan2(u,s))},abs:function(){return i(this.re,this.im)},arg:function(){return Math.atan2(this.im,this.re)},sin:function(){var s=this.re,u=this.im;return new l(Math.sin(s)*e(u),Math.cos(s)*t(u))},cos:function(){var s=this.re,u=this.im;return new l(Math.cos(s)*e(u),-Math.sin(s)*t(u))},tan:function(){var s=2*this.re,u=2*this.im,h=Math.cos(s)+e(u);return new l(Math.sin(s)/h,t(u)/h)},cot:function(){var s=2*this.re,u=2*this.im,h=Math.cos(s)-e(u);return new l(-Math.sin(s)/h,t(u)/h)},sec:function(){var s=this.re,u=this.im,h=.5*e(2*u)+.5*Math.cos(2*s);return new l(Math.cos(s)*e(u)/h,Math.sin(s)*t(u)/h)},csc:function(){var s=this.re,u=this.im,h=.5*e(2*u)-.5*Math.cos(2*s);return new l(Math.sin(s)*e(u)/h,-Math.cos(s)*t(u)/h)},asin:function(){var s=this.re,u=this.im,h=new l(u*u-s*s+1,-2*s*u).sqrt(),f=new l(h.re-u,h.im+s).log();return new l(f.im,-f.re)},acos:function(){var s=this.re,u=this.im,h=new l(u*u-s*s+1,-2*s*u).sqrt(),f=new l(h.re-u,h.im+s).log();return new l(Math.PI/2-f.im,f.re)},atan:function(){var s=this.re,u=this.im;if(s===0){if(u===1)return new l(0,1/0);if(u===-1)return new l(0,-1/0)}var h=s*s+(1-u)*(1-u),f=new l((1-u*u-s*s)/h,-2*s/h).log();return new l(-.5*f.im,.5*f.re)},acot:function(){var s=this.re,u=this.im;if(u===0)return new l(Math.atan2(1,s),0);var h=s*s+u*u;return h!==0?new l(s/h,-u/h).atan():new l(s!==0?s/0:0,u!==0?-u/0:0).atan()},asec:function(){var s=this.re,u=this.im;if(s===0&&u===0)return new l(0,1/0);var h=s*s+u*u;return h!==0?new l(s/h,-u/h).acos():new l(s!==0?s/0:0,u!==0?-u/0:0).acos()},acsc:function(){var s=this.re,u=this.im;if(s===0&&u===0)return new l(Math.PI/2,1/0);var h=s*s+u*u;return h!==0?new l(s/h,-u/h).asin():new l(s!==0?s/0:0,u!==0?-u/0:0).asin()},sinh:function(){var s=this.re,u=this.im;return new l(t(s)*Math.cos(u),e(s)*Math.sin(u))},cosh:function(){var s=this.re,u=this.im;return new l(e(s)*Math.cos(u),t(s)*Math.sin(u))},tanh:function(){var s=2*this.re,u=2*this.im,h=e(s)+Math.cos(u);return new l(t(s)/h,Math.sin(u)/h)},coth:function(){var s=2*this.re,u=2*this.im,h=e(s)-Math.cos(u);return new l(t(s)/h,-Math.sin(u)/h)},csch:function(){var s=this.re,u=this.im,h=Math.cos(2*u)-e(2*s);return new l(-2*t(s)*Math.cos(u)/h,2*e(s)*Math.sin(u)/h)},sech:function(){var s=this.re,u=this.im,h=Math.cos(2*u)+e(2*s);return new l(2*e(s)*Math.cos(u)/h,-2*t(s)*Math.sin(u)/h)},asinh:function(){var s=this.im;this.im=-this.re,this.re=s;var u=this.asin();return this.re=-this.im,this.im=s,s=u.re,u.re=-u.im,u.im=s,u},acosh:function(){var s=this.acos();if(s.im<=0){var u=s.re;s.re=-s.im,s.im=u}else{var u=s.im;s.im=-s.re,s.re=u}return s},atanh:function(){var s=this.re,u=this.im,h=s>1&&u===0,f=1-s,d=1+s,g=f*f+u*u,p=g!==0?new l((d*f-u*u)/g,(u*f+d*u)/g):new l(s!==-1?s/0:0,u!==0?u/0:0),m=p.re;return p.re=a(p.re,p.im)/2,p.im=Math.atan2(p.im,m)/2,h&&(p.im=-p.im),p},acoth:function(){var s=this.re,u=this.im;if(s===0&&u===0)return new l(0,Math.PI/2);var h=s*s+u*u;return h!==0?new l(s/h,-u/h).atanh():new l(s!==0?s/0:0,u!==0?-u/0:0).atanh()},acsch:function(){var s=this.re,u=this.im;if(u===0)return new l(s!==0?Math.log(s+Math.sqrt(s*s+1)):1/0,0);var h=s*s+u*u;return h!==0?new l(s/h,-u/h).asinh():new l(s!==0?s/0:0,u!==0?-u/0:0).asinh()},asech:function(){var s=this.re,u=this.im;if(this.isZero())return l.INFINITY;var h=s*s+u*u;return h!==0?new l(s/h,-u/h).acosh():new l(s!==0?s/0:0,u!==0?-u/0:0).acosh()},inverse:function(){if(this.isZero())return l.INFINITY;if(this.isInfinite())return l.ZERO;var s=this.re,u=this.im,h=s*s+u*u;return new l(s/h,-u/h)},conjugate:function(){return new l(this.re,-this.im)},neg:function(){return new l(-this.re,-this.im)},ceil:function(s){return s=Math.pow(10,s||0),new l(Math.ceil(this.re*s)/s,Math.ceil(this.im*s)/s)},floor:function(s){return s=Math.pow(10,s||0),new l(Math.floor(this.re*s)/s,Math.floor(this.im*s)/s)},round:function(s){return s=Math.pow(10,s||0),new l(Math.round(this.re*s)/s,Math.round(this.im*s)/s)},equals:function(s,u){var h=new l(s,u);return Math.abs(h.re-this.re)<=l.EPSILON&&Math.abs(h.im-this.im)<=l.EPSILON},clone:function(){return new l(this.re,this.im)},toString:function(){var s=this.re,u=this.im,h="";return this.isNaN()?"NaN":this.isInfinite()?"Infinity":(Math.abs(s)<l.EPSILON&&(s=0),Math.abs(u)<l.EPSILON&&(u=0),u===0?h+s:(s!==0?(h+=s,h+=" ",u<0?(u=-u,h+="-"):h+="+",h+=" "):u<0&&(u=-u,h+="-"),u!==1&&(h+=u),h+"i"))},toVector:function(){return[this.re,this.im]},valueOf:function(){return this.im===0?this.re:null},isNaN:function(){return isNaN(this.re)||isNaN(this.im)},isZero:function(){return this.im===0&&this.re===0},isFinite:function(){return isFinite(this.re)&&isFinite(this.im)},isInfinite:function(){return!(this.isNaN()||this.isFinite())}},l.ZERO=new l(0,0),l.ONE=new l(1,0),l.I=new l(0,1),l.PI=new l(Math.PI,0),l.E=new l(Math.E,0),l.INFINITY=new l(1/0,1/0),l.NAN=new l(NaN,NaN),l.EPSILON=1e-15,typeof define=="function"&&define.amd?define([],function(){return l}):typeof no=="object"?(Object.defineProperty(l,"__esModule",{value:!0}),l.default=l,l.Complex=l,qu.exports=l):r.Complex=l})(no)});import{EventDispatcher as zf,Vector3 as Gf}from"three";var Gt=class{tasks={requestAnimation:new Set,timeout:new Set,interval:new Set};requestAnimationFrame(e){let t=window.requestAnimationFrame(()=>{this.tasks.requestAnimation.delete(t),e()});return this.tasks.requestAnimation.add(t),t}cancelAnimationFrame(e){this.tasks.requestAnimation.delete(e),window.cancelAnimationFrame(e)}setTimeout(e,t){let n=window.setTimeout(()=>{this.tasks.timeout.delete(n),e()},t);return this.tasks.timeout.add(n),n}clearTimeout(e){this.tasks.timeout.delete(e),window.clearTimeout(e)}setInterval(e,t){let n=window.setInterval(()=>{this.tasks.interval.delete(n),e()},t);return this.tasks.interval.add(n),n}clearInterval(e){this.tasks.interval.delete(e),window.clearInterval(e)}dispose(){this.tasks.requestAnimation.forEach(e=>{window.cancelAnimationFrame(e)}),this.tasks.requestAnimation.clear(),this.tasks.timeout.forEach(e=>{window.clearTimeout(e)}),this.tasks.timeout.clear(),this.tasks.interval.forEach(e=>{window.clearInterval(e)}),this.tasks.interval.clear()}};import{Shape as lh,Group as ch,DirectionalLight as hh,AmbientLight as ph,Path as fh,Vector2 as xs}from"three";function Es(){let r=new ch,e=new ph(16777215,2.6);return r.add(e),r}function Se(r,e=[]){let t=new lh(r.map(n=>new xs(...n)));return e.length&&e.forEach(n=>{var i=new fh(n.map(o=>new xs(...o)));t.holes.push(i)}),t}function bs(r=16777215,e=1){let t=new hh(r,e);return t.castShadow=!0,t.shadow.radius=8,t.shadow.bias=-.001,t.shadow.mapSize.set(256,256),t.shadow.camera.left=-200,t.shadow.camera.right=200,t.shadow.camera.top=200,t.shadow.camera.bottom=-200,t}function Jt(r,e){if(e&&r.children&&r.children.length&&r.children.forEach(t=>{Jt(t,e)}),r.isMesh){let t=r;t.geometry&&t.geometry.dispose(),t.material&&(Array.isArray(t.material)?t.material.forEach(n=>{n.dispose()}):t.material.dispose())}r.isLight&&r.dispose?.()}function Ss(r){return/[\u4E00-\u9FA5]+/g.test(r)}import{Vector3 as Ei,Vector2 as Ne,Matrix3 as cr}from"three";import{point as dh,featureCollection as gh,center as mh}from"@turf/turf";function et(r,e,t,n){let i=r.clone().project(e),o=t/2,a=n/2,c=Math.round(i.x*o+o),l=Math.round(-i.y*a+a);return{x:c,y:l}}function hr(r){let e=gh(r.map(n=>dh(n)));return mh(e).geometry.coordinates}function Ve(r,e,t){return r.x>=e.x&&r.x<=t.x&&r.y>=e.y&&r.y<=t.y}function vv(r){let e=0,t=new Ei;for(let n=1;n<r.length;n++){let i=new Ei(r[n-1][0],r[n-1][1],0),o=new Ei(r[n][0],r[n][1],0),a=o.distanceTo(i);a>e&&(e=a,t=o.clone().sub(i).normalize())}return t}function kt(r,e){return Math.sqrt((e[0]-r[0])**2+(e[1]-r[1])**2)}function Me(r){let e=0;for(let t=0;t<r.length-1;t++)e+=kt(r[t],r[t+1]);return e}function Ms(r,e,t){let n=new Ne(e[0]-r[0],e[1]-r[1]),i=new Ne(e[0]-t[0],e[1]-t[1]),a=n.angleTo(i)*180/Math.PI,c=new Ne(e[0]-r[0],e[1]-r[1]);return new Ne(t[0]-r[0],t[1]-r[1]).cross(c)>0?a:-a}function ws(r,e){let t=Math.min(kt(r[0][0],r[0][1]),kt(r[0][2],r[0][1]))-1;e||(e=hr(r[0]));let n=yh(e,t),i=new Ne(r[0][0][0],r[0][0][1]),o=new Ne(r[0][1][0],r[0][1][1]),a=new Ne(r[0][2][0],r[0][2][1]),l=(i.distanceTo(o)>o.distanceTo(a)?o.clone().sub(i):a.clone().sub(o)).angleTo(new Ne(0,1)),s=new cr;return s.multiply(new cr().translate(e[0],e[1])).multiply(new cr().rotate(l)).multiply(new cr().translate(-e[0],-e[1])),[n.map(u=>{let h=new Ne(u[0],u[1]).applyMatrix3(s);return[h.x,h.y]})]}function yh(r,e){let t=e/2;return[[r[0]-t,r[1]+t],[r[0]+t,r[1]+t],[r[0]+t,r[1]-t],[r[0]-t,r[1]-t],[r[0]-t,r[1]+t]]}function fn(r,e){let t=0,n=1/0,[i,o]=e;for(let a=0;a<r.length-1;a++){let[c,l]=r[a],[s,u]=r[a+1],h=Math.min(c,s)<=i&&i<=Math.max(c,s),f=Math.min(l,u)<=o&&o<=Math.max(l,u);if(h&&f){let d=Math.abs((s-c)*(o-l)-(u-l)*(i-c));d<n&&(n=d,t=a)}}return t}function Ts(r,e){let t=r[0],n=r[1],i=!1;for(let o=0,a=e.length-1;o<e.length;a=o++){let c=e[o][0],l=e[o][1],s=e[a][0],u=e[a][1];l>n!=u>n&&t<(s-c)*(n-l)/(u-l)+c&&(i=!i)}return i}function dn(r,e){return new Proxy(r,{get:(t,n,i)=>Reflect.get(t,n,i),set:(t,n,i,o)=>{let a=Reflect.get(t,n,o),c=Reflect.set(t,n,i,o);return a!==i&&e.dispatchEvent({type:`change-${n}`,value:i}),c}})}function Le(r,e){return Promise.race([r,new Promise((t,n)=>{setTimeout(()=>n(new Error("Promise timeout")),e)})])}function pr(r){return document.createElementNS("http://www.w3.org/2000/svg",r)}function Cs(r,e){let t=pr("svg");return t.setAttribute("width",r),t.setAttribute("height",e),t.style.cssText="position: absolute; left: 0; top: 0; pointer-events: none;",t}function Gn(r="2",e){let t=pr("circle");return t.setAttribute("r",r),t.setAttribute("fill",e),t}function fr(r){let e=pr("line");return e.setAttribute("stroke",r),e}function He(r,e){let t=pr("rect");return t.setAttribute("stroke",r),t.setAttribute("fill",e),t}function en(r,e,t){r.setAttribute("cx",`${e}`),r.setAttribute("cy",`${t}`)}function me(r,e,t){e&&(r.setAttribute("x1",`${e.x}`),r.setAttribute("y1",`${e.y}`)),t&&(r.setAttribute("x2",`${t.x}`),r.setAttribute("y2",`${t.y}`))}function Xt(r,e,t,n,i){r.setAttribute("x",`${e}`),r.setAttribute("y",`${t}`),r.setAttribute("width",`${n}`),r.setAttribute("height",`${i}`)}function As(){return Promise.resolve()}function Sv(){return new Promise(r=>{requestAnimationFrame(r)})}function wv(r){return parseInt(r.replace("#","0x"),16)}function Tv(r,e){let t=parseInt(r.substring(1,3),16),n=parseInt(r.substring(3,5),16),i=parseInt(r.substring(5,7),16),o=Math.round(t*e),a=Math.round(n*e),c=Math.round(i*e);return`#${(1<<24|o<<16|a<<8|c).toString(16).slice(1)}`}function Oe(r,e=.85){let t,n,i;if(r.startsWith("#"))t=parseInt(r.substring(1,3),16),n=parseInt(r.substring(3,5),16),i=parseInt(r.substring(5,7),16);else{let a=r.slice(4,-1).split(",");t=parseInt(a[0].trim()),n=parseInt(a[1].trim()),i=parseInt(a[2].trim())}return t=Math.min(Math.floor(t*e),255),n=Math.min(Math.floor(n*e),255),i=Math.min(Math.floor(i*e),255),"#"+((1<<24)+(t<<16)+(n<<8)+i).toString(16).slice(1)}function bi(r,e){r=r.replace(/^#/,"");let t=parseInt(r.substring(0,2),16),n=parseInt(r.substring(2,4),16),i=parseInt(r.substring(4,6),16);return e!==void 0?`rgba(${t}, ${n}, ${i}, ${e})`:`rgb(${t}, ${n}, ${i})`}var gn=navigator.userAgent.toUpperCase().indexOf("MAC")>=0,Ps=(window.navigator.userAgent||"").toLocaleLowerCase(),kn=/ios|iphone/i.test(Ps),Av=/android|adr|linux/gi.test(Ps);function mn(r){return gn?r==="Meta":r==="Control"}var Si="__once__",Ds=class{events=new Map;on(e,t){if(typeof t!="function")return;let n=this.events.get(e);return n?n.add(t):this.events.set(e,new Set([t]))}once(e,t){if(typeof t!="function")return;let n=`${Si}${e}`,i=this.events.get(n);return i?i.add(t):this.events.set(n,new Set([t]))}off(e,t){let n=this.events.get(e),i=this.events.get(`${Si}${e}`);!n&&!i||(t===void 0&&(n?.clear(),i?.clear()),n?.has(t)&&n.delete(t),i?.has(t)&&i.delete(t))}offAll(){this.events.clear()}emit(e,...t){let n=this.events.get(e),i=this.events.get(`${Si}${e}`);!n&&!i||(n?.forEach(o=>{typeof o=="function"&&o(...t)}),i?.forEach(o=>{typeof o=="function"&&o(...t)}),i?.clear())}};var Vn=(t=>(t.SWITCH_FLOOR_BEFORE="switch_floor_before",t.SWITCH_FLOOR_AFTER="switch_floor_after",t))(Vn||{});function yn(r){return Object.keys(r).sort().map(e=>`${e}=${r[e]}`).join("&")}function Ov(r,e){return new Promise((t,n)=>{let i=new XMLHttpRequest;i.open("GET",r,!0),Object.keys(e.headers||{}).forEach(o=>{i.setRequestHeader(o,e.headers[o])}),e.responseType&&(i.responseType=e.responseType),i.onload=()=>{if(i.status>=200&&i.status<300)if(e.responseType==="arraybuffer")t(i.response);else try{let o=JSON.parse(i.responseText);t(o)}catch(o){n(o)}else n(i.statusText)},i.onerror=()=>{n(i.statusText)},i.send()})}var Fs=pn(Os(),1);import{Vector2 as Hn}from"three";function vh(r,e){let t=r.clone().normalize(),n=e.clone().normalize();return Math.acos(t.dot(n))}function _h(r){let e=0;return r.reduce(([t,n],[i,o])=>(e+=Math.sqrt((i-t)**2+(o-n)**2),[i,o])),e/r.length}function Us(r,e=.25){if(_h(r)<e)return r;let t=(0,Fs.default)(r);return Us(t,e)}function Bs(r,e=!1,t=!0,n=5,i=150,o=3){let a=[],c=!e;if(a.push(r[0]),r.length<2)return a;for(let s=0;s<r.length-2;s+=1){let u=r[s],h=r[s+1],f=r[s+2],d=new Hn(u[0]-h[0],u[1]-h[1]),g=new Hn(f[0]-h[0],f[1]-h[1]),p=vh(d,g)/Math.PI*180,m=d.length()+g.length();(!c||p<i&&m>.01||m>n)&&(a.push(r[s+1]),c=!0)}if(a.push(r[r.length-1]),!t)return a;let l=[];l.push(a[0]);for(let s=0;s<a.length-2;s+=1){let u=new Hn(a[s][0],a[s][1]),h=new Hn(a[s+1][0],a[s+1][1]),f=new Hn(a[s+2][0],a[s+2][1]),d=u.distanceTo(h)/2,g=f.distanceTo(h)/2,p=h.clone(),m=h.clone();p.add(u.clone().sub(h).normalize().multiplyScalar(d>o?o/2:d)),m.add(f.clone().sub(h).normalize().multiplyScalar(g>o?o/2:g));let v=[[p.x,p.y],[h.x,h.y],[m.x,m.y]];l.push(...Us(v,o/25))}return l.push(a[a.length-1]),xh(l)}function xh(r){if(r.length<=1)return r;let e=[],t;return r.forEach(([n,i])=>{t?n===t[0]&&i===t[1]||(t=[n,i],e.push([n,i])):(t=[n,i],e.push([n,i]))}),e}function zs(r,e,t){let n=Math.sqrt((t[0]-e[0])**2+(t[1]-e[1])**2);if(n===0)return{distance:Math.sqrt((r[0]-e[0])**2+(r[1]-e[1])**2),closestPoint:e.slice(0)};let i=Math.max(0,Math.min(1,((r[0]-e[0])*(t[0]-e[0])+(r[1]-e[1])*(t[1]-e[1]))/n**2)),o=[e[0]+i*(t[0]-e[0]),e[1]+i*(t[1]-e[1])];return{distance:Math.sqrt((r[0]-o[0])**2+(r[1]-o[1])**2),closestPoint:o}}function kv(r,e,t){let[n,i]=r,[o,a]=e,c=Math.sqrt(Math.pow(o-n,2)+Math.pow(a-i,2));if(c===0||c<t)return[...e];let l=t/c,s=n+(o-n)*l,u=i+(a-i)*l;return[s,u]}var Gs=(s=>(s.START="start",s.END="end",s.FRONT="front",s.RIGHT="right",s.LEFT="left",s.RIGHT_FRONT="right_front",s.LEFT_FRONT="left_front",s.RIGHT_BACK="right_back",s.LEFT_BACK="left_back",s))(Gs||{});function Mi(r,e,t){let n=Ms(r,e,t);return 180-Math.abs(n)<15?"front":n>135?"right_front":n<-135?"left_front":n<=135&&n>=60?"right":n>=-135&&n<=-60?"left":n<60&&n>0?"right_back":n>-60&&n<0?"left_back":"front"}function Vv(r){if(!r.length)return[];let e=[{direction:"start",distance:kt(r[0],r[1]),points:[r[0],r[1]]}];for(let t=2;t<r.length;t++){let n=Mi(r[t-2],r[t-1],r[t]);if(n==="front"){let i=e[e.length-1],o=kt(r[t-1],r[t]);i.distance+=o,t!==2&&i.points.push(r[t-1])}else e.push({direction:n,distance:kt(r[t-1],r[t]),points:[r[t-1],r[t]]})}return e.push({direction:"end",distance:0,points:[r[r.length-1]]}),e}function ks(r,e){if(r.length<2)return-1;let t=0;for(let n=1;n<r.length;n++){let i=r[n-1],o=r[n],a=[e[0]-i[0],e[1]-i[1]],c=[o[0]-i[0],o[1]-i[1]],l=Math.min(o[0],i[0])<=e[0]&&e[0]<=Math.max(o[0],i[0]),s=Math.min(o[1],i[1])<=e[1]&&e[1]<=Math.max(o[1],i[1]);if(l&&s){let u=a[0]*c[1]-a[1]*c[0];if(Math.abs(u)<1e-6){let h=Math.sqrt((e[0]-i[0])**2+(e[1]-i[1])**2);return t+h}}t+=Math.sqrt((o[0]-i[0])**2+(o[1]-i[1])**2)}return-1}function dr(r,e){if(r.length<2)return r[0]??null;let t=0;for(let n=1;n<r.length;n++){let i=r[n-1],o=r[n],a=Math.sqrt((o[0]-i[0])**2+(o[1]-i[1])**2);if(t+=a,t>=e){let c=(e-(t-a))/a,l=i[0]+(o[0]-i[0])*c,s=i[1]+(o[1]-i[1])*c;return[l,s]}}return null}var we=pn(Ci(),1);var ae="___",na=class{constructor(e=3){this.lift_priority=e}roadInfo=[];pointMap=new Map;nodeMap=new Map;facilityMap=new Map;straightLadderMap=new Map;escalatorMap=new Map;staircaseMap=new Map;lineMap=new Map;baseRoute=new we.default;escalatorRoute=new we.default;straightLadderRoute=new we.default;initRoute(e){this.clear(),this.roadInfo=e,e.length&&(e.forEach(t=>{t.points.forEach(n=>{let i=`${t.floor}${ae}${n.id}`;if(this.pointMap.set(i,n),this.nodeMap.set(`${n.floor}${ae}${n.nodeId}`,i),n.type==="straightLadder"){let o=this.straightLadderMap.get(n.name)||[];o.push({...n}),this.straightLadderMap.set(n.name,o)}if(n.type==="staircase"){let o=this.staircaseMap.get(n.name)||[];o.push({...n}),this.staircaseMap.set(n.name,o)}if(n.type==="escalator"){let o=this.escalatorMap.get(n.name)||{};n.escalatorDirection==="exit"?o.end={floor:n.floor,id:n.id}:o.start={floor:n.floor,id:n.id},this.escalatorMap.set(n.name,o)}if(n.type==="facility"){let o=this.facilityMap.get(n.targetId)||[];o.push({...n}),this.facilityMap.set(n.targetId,o)}}),t.lines.filter(n=>n.direction!=="no").forEach(n=>{let i=`${t.floor}${ae}${n.from}`,o=`${t.floor}${ae}${n.to}`,a=this.pointMap.get(i)?.cds,c=this.pointMap.get(o)?.cds;if(a?.length&&c?.length){let l=kt(a,c);this.addLineItem(i,o,l),n.direction==="double"&&this.addLineItem(o,i,l)}})}),this.initBaseRoute(),this.initEscalatorRoute(),this.initStraightLadderRoute())}addLineItem(e,t,n,i=this.lineMap){let o=i.get(e)||new Map;o.set(t,n),i.set(e,o)}addFacilityToLineMap(e,t,n,i){[...this.straightLadderMap,...this.staircaseMap].forEach(([o,a])=>{if(!(a.length<2))for(let c=0;c<a.length;c++){let l=`${a[c].floor}${ae}${a[c].id}`;for(let s=0;s<a.length;s++)if(c!==s){let u=`${a[s].floor}${ae}${a[s].id}`,h=this.pointMap.get(l)?.cds,f=this.pointMap.get(u)?.cds;if(h?.length&&f?.length)if(a[c].type==="straightLadder"){let d=t;this.addLineItem(l,u,d,i)}else{let d=n;this.addLineItem(l,u,d,i)}}}}),this.escalatorMap.forEach((o,a)=>{if(o.start&&o.end){let c=`${o.start.floor}${ae}${o.start.id}`,l=`${o.end.floor}${ae}${o.end.id}`,s=this.pointMap.get(c)?.cds,u=this.pointMap.get(l)?.cds;if(s?.length&&u?.length){let h=e;this.addLineItem(c,l,h,i)}}})}initBaseRoute(){let e=new Map([...this.lineMap]);this.addFacilityToLineMap(1,this.lift_priority,3e4,e),this.baseRoute=new we.default(e)}initEscalatorRoute(){let e=new Map([...this.lineMap]),t=1e4;this.addFacilityToLineMap(1*t,this.lift_priority*t,3e4*t,e),this.escalatorRoute=new we.default(e)}initStraightLadderRoute(){let e=new Map([...this.lineMap]),t=1e4;this.addFacilityToLineMap(3*t,1*t,3e4*t,e),this.straightLadderRoute=new we.default(e)}checkStart(e){return!(!e.floor||!e.nodeId&&(!e.coord||e.coord.length<2))}checkEnd(e){return e.facility?!0:this.checkStart(e)}transformStart(e){if(e.nodeId){let t=this.nodeMap.get(`${e.floor}${ae}${e.nodeId}`);if(t){let[n,i]=t.split(ae);return{floor:n,id:i}}}if(e.coord?.length){let t=this.roadInfo.find(i=>i.floor===e.floor);if(!t)return null;let n=t.points.reduce((i,o)=>{let a=kt(e.coord,o.cds);return a<i.min&&(i.min=a,i.point=o),i},{min:1/0,point:t.points[0]});return{floor:n.point.floor,id:n.point.id}}return null}transformEnd(e){if(e.floor){let t=this.transformStart(e);if(t)return t}return e.facility&&this.facilityMap.get(e.facility)?.length?{floor:e.floor,facility:e.facility}:null}getPath(e,t,n=""){if(!this.checkStart(e))return"start-error";if(!this.checkEnd(t))return"end-error";let i=this.transformStart(e);if(!i)return"no-start";let o=this.transformEnd(t);if(!o)return"no-end";let a=this.getBasePath.bind(this);switch(n){case"escalator":a=this.getEscalatorPath.bind(this);break;case"straightLadder":a=this.getStraightLadderPath.bind(this);break;default:a=this.getBasePath.bind(this);break}if(o.id)return a(i,o);if(o.facility){let c=this.facilityMap.get(o.facility).filter(s=>o.floor?s.floor===o.floor:!0);if(!c.length)return null;let l=c.map(s=>a(i,{floor:s.floor,id:s.id})).filter(s=>!!s);return l.reduce((s,u)=>{let h=u.reduce((f,d)=>f+Me(d.points),0);return h<s.distance&&(s.distance=h,s.path=u),s},{distance:1/0,path:l[0]}).path}}getRoutePath(e,t,n){let i=`${e.floor}${ae}${e.id}`,o=`${t.floor}${ae}${t.id}`,a=n.path(i,o);if(!a)return null;let c=[];return a.map(l=>{let s=this.pointMap.get(l);if(s){let{floor:u}=s;if(c[c.length-1]?.floor===u){let h=c[c.length-1];h.points.push(s.cds),h.endType=s.type,h.destId=s.nodeId,h.distance=Me(h.points)}else c.push({floor:u,points:[s.cds],endType:s.type,destId:s.nodeId,distance:0})}}),c}getBasePath(e,t){return this.getRoutePath(e,t,this.baseRoute)}getEscalatorPath(e,t){return this.getRoutePath(e,t,this.escalatorRoute)}getStraightLadderPath(e,t){return this.getRoutePath(e,t,this.straightLadderRoute)}clear(){this.roadInfo=[],this.pointMap.clear(),this.nodeMap.clear(),this.facilityMap.clear(),this.straightLadderMap.clear(),this.escalatorMap.clear(),this.staircaseMap.clear(),this.lineMap.clear(),this.baseRoute=new we.default,this.escalatorRoute=new we.default,this.straightLadderRoute=new we.default}};var ue=pn(Ci(),1);import{cloneDeep as Ai}from"lodash";var Vt="___",ra=class{constructor(e=3){this.lift_priority=e}roadInfo=[];facilities=[];pointMap=new Map;nodeMap=new Map;facilityMap=new Map;straightLadderMap=new Map;escalatorMap=new Map;rampMap=new Map;staircaseMap=new Map;parkingMap=new Map;lineMap=new Map;baseRoute=new ue.default;escalatorRoute=new ue.default;straightLadderRoute=new ue.default;forwardLineMap=new Map;forwardRoute=new ue.default;isFacilityByType(e){return["facility","escalator","straightLadder","staircase","ramp"].includes(e)}initFacilities(e){this.facilities=e.map(t=>{let n=[];try{n=JSON.parse(t.entry_end_floor)}catch{n=[]}let i=[];try{i=JSON.parse(t.entry_start_floor)}catch{i=[]}return{...t,entry_start_floor:i,entry_end_floor:n}})}initRoute(e,t){this.clear(),this.roadInfo=e,this.initFacilities(t),e.length&&(e.forEach(n=>{n.points.forEach(i=>{i.floor=n.floor;let o=`${n.floor}${Vt}${i.id}`;if(this.pointMap.set(o,i),this.nodeMap.set(`${n.floor}${Vt}${i.nodeId}`,o),this.isFacilityByType(i.type)){let a=this.facilities.find(c=>c.id===+i.targetId);if(a){switch(a.entry_infra_type){case"straightLadder":if(a.entry_end_floor.find(u=>u.floor===n.floor)&&a.entry_start_floor.find(u=>u.floor===n.floor)){let u=this.straightLadderMap.get(i.targetId)||[];u.push({...i}),this.straightLadderMap.set(i.targetId,u)}break;case"staircase":if(a.entry_end_floor.find(u=>u.floor===n.floor)&&a.entry_start_floor.find(u=>u.floor===n.floor)){let u=this.staircaseMap.get(i.targetId)||[];u.push({...i}),this.staircaseMap.set(i.targetId,u)}break;case"escalator":let l=this.escalatorMap.get(i.targetId)||[];if(a.entry_start_floor.find(u=>u.floor===n.floor)){let u=l.find(h=>h.end?.floor!==n.floor&&!h.start);u?u.start=i:l.push({start:i})}if(a.entry_end_floor.find(u=>u.floor===n.floor)){let u=l.find(h=>h.start?.floor!==n.floor&&!h.end);u?u.end=i:l.push({end:i})}this.escalatorMap.set(i.targetId,l);break;case"ramp":let s=this.rampMap.get(i.targetId)||[];if(a.entry_start_floor.find(u=>u.floor===n.floor)){let u=s.find(h=>h.end?.floor!==n.floor&&!h.start);u?u.start=i:s.push({start:i})}if(a.entry_end_floor.find(u=>u.floor===n.floor)){let u=s.find(h=>h.start?.floor!==n.floor&&!h.end);u?u.end=i:s.push({end:i})}this.rampMap.set(i.targetId,s);break}let c=this.facilityMap.get(i.targetId)||[];c.push({...i}),this.facilityMap.set(i.targetId,c)}}i.type==="parkingSpace"&&this.parkingMap.set(`${n.floor}${Vt}${i.name}`,i)}),n.lines.filter(i=>i.direction!=="no").forEach(i=>{let o=`${n.floor}${Vt}${i.from}`,a=`${n.floor}${Vt}${i.to}`,c=this.pointMap.get(o)?.cds,l=this.pointMap.get(a)?.cds;if(c?.length&&l?.length){let s=kt(c,l);switch(this.addLineItem(o,a,s),this.addLineItem(a,o,s),i.direction){case"double":this.addLineItem(o,a,s,this.forwardLineMap),this.addLineItem(a,o,s,this.forwardLineMap);break;case"single":this.addLineItem(o,a,s,this.forwardLineMap);break;case"back":this.addLineItem(a,o,s,this.forwardLineMap);break}}})}),this.initBaseRoute(),this.initEscalatorRoute(),this.initStraightLadderRoute(),this.initForwardRoute())}addLineItem(e,t,n,i=this.lineMap){let o=i.get(e)||new Map;o.set(t,n),i.set(e,o)}addFacilityToLineMap(e,t,n,i){[...this.straightLadderMap,...this.staircaseMap].forEach(([o,a])=>{if(!(a.length<2))for(let c=0;c<a.length;c++){let l=`${a[c].floor}${Vt}${a[c].id}`;for(let s=0;s<a.length;s++)if(c!==s){let u=`${a[s].floor}${Vt}${a[s].id}`,h=this.pointMap.get(l)?.cds,f=this.pointMap.get(u)?.cds;if(h?.length&&f?.length)if(a[c].type==="straightLadder"){let d=t;this.addLineItem(l,u,d,i)}else{let d=n;this.addLineItem(l,u,d,i)}}}}),this.escalatorMap.forEach((o,a)=>{o.forEach(c=>{if(c.start&&c.end){let l=`${c.start.floor}${Vt}${c.start.id}`,s=`${c.end.floor}${Vt}${c.end.id}`,u=this.pointMap.get(l)?.cds,h=this.pointMap.get(s)?.cds;if(u?.length&&h?.length){let f=e;this.addLineItem(l,s,f,i)}}})})}initBaseRoute(){let e=new Map(Ai([...this.lineMap]));this.addFacilityToLineMap(1,this.lift_priority,3e4,e),this.baseRoute=new ue.default(e)}initEscalatorRoute(){let e=new Map(Ai([...this.lineMap])),t=1e4;this.addFacilityToLineMap(1*t,this.lift_priority*t,3e4*t,e),this.escalatorRoute=new ue.default(e)}initStraightLadderRoute(){let e=new Map(Ai([...this.lineMap])),t=1e4;this.addFacilityToLineMap(3*t,1*t,3e4*t,e),this.straightLadderRoute=new ue.default(e)}initForwardRoute(){this.rampMap.forEach((e,t)=>{e.forEach(n=>{if(n.start&&n.end){let i=`${n.start.floor}${Vt}${n.start.id}`,o=`${n.end.floor}${Vt}${n.end.id}`,a=this.pointMap.get(i)?.cds,c=this.pointMap.get(o)?.cds;a?.length&&c?.length&&this.addLineItem(i,o,10,this.forwardLineMap)}})}),this.forwardRoute=new ue.default(this.forwardLineMap)}checkStart(e){return!(!e.floor||!e.nodeId&&(!e.coord||e.coord.length<2))}checkEnd(e){return e.facility||e.parkingSpace&&e.floor?!0:this.checkStart(e)}transformStart(e){if(e.nodeId){let t=this.nodeMap.get(`${e.floor}${Vt}${e.nodeId}`);if(t){let[n,i]=t.split(Vt);return{floor:n,id:i}}}if(e.coord?.length){let t=this.roadInfo.find(i=>i.floor===e.floor);if(!t)return null;let n=t.points.reduce((i,o)=>{let a=kt(e.coord,o.cds);return a<i.min&&(i.min=a,i.point=o),i},{min:1/0,point:t.points[0]});return{floor:t.floor,id:n.point.id}}return null}transformEnd(e){if(e.floor){if(e.parkingSpace){let n=this.parkingMap.get(`${e.floor}${Vt}${e.parkingSpace}`);if(n)return{floor:e.floor,id:n.id}}let t=this.transformStart(e);if(t)return t}return e.facility&&this.facilityMap.get(e.facility)?.length?{floor:e.floor,facility:e.facility}:null}getPath(e,t,n=""){if(!this.checkStart(e))return"start-error";if(!this.checkEnd(t))return"end-error";let i=this.transformStart(e);if(!i)return"no-start";let o=this.transformEnd(t);if(!o)return"no-end";let a=this.getBasePath.bind(this);switch(n){case"escalator":a=this.getEscalatorPath.bind(this);break;case"straightLadder":a=this.getStraightLadderPath.bind(this);break;case"forward":a=this.getForwardPath.bind(this);break;default:a=this.getBasePath.bind(this);break}if(o.id)return a(i,o);if(o.facility){let c=this.facilityMap.get(o.facility).filter(s=>o.floor?s.floor===o.floor:!0);if(!c.length)return null;let l=c.map(s=>a(i,{floor:s.floor,id:s.id})).filter(s=>!!s);return l.reduce((s,u)=>{let h=u.reduce((f,d)=>f+Me(d.points),0);return h<s.distance&&(s.distance=h,s.path=u),s},{distance:1/0,path:l[0]}).path}}getRoutePath(e,t,n){let i=`${e.floor}${Vt}${e.id}`,o=`${t.floor}${Vt}${t.id}`,a=n.path(i,o);if(!a)return null;let c=[];return a.map(l=>{let s=this.pointMap.get(l);if(s){let{floor:u}=s,h=s.type;if(this.isFacilityByType(s.type)){let f=this.facilities.find(d=>d.id===+s.targetId);f&&(h=f.entry_infra_type)}if(c[c.length-1]?.floor===u){let f=c[c.length-1];f.points.push(s.cds),f.endType=h,f.destId=s.nodeId,f.distance=Me(f.points)}else c.push({floor:u,points:[s.cds],endType:h,destId:s.nodeId,distance:0})}}),c}getBasePath(e,t){return this.getRoutePath(e,t,this.baseRoute)}getEscalatorPath(e,t){return this.getRoutePath(e,t,this.escalatorRoute)}getStraightLadderPath(e,t){return this.getRoutePath(e,t,this.straightLadderRoute)}getForwardPath(e,t){return this.getRoutePath(e,t,this.forwardRoute)}clear(){this.roadInfo=[],this.pointMap.clear(),this.nodeMap.clear(),this.facilityMap.clear(),this.straightLadderMap.clear(),this.escalatorMap.clear(),this.staircaseMap.clear(),this.lineMap.clear(),this.baseRoute=new ue.default,this.escalatorRoute=new ue.default,this.straightLadderRoute=new ue.default}};var nn=class{static keySet=new Set;static createKey(){return Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15)}static genUniqueKey(){let e=this.createKey();for(;this.keySet.has(e);)e=this.createKey();return e}static removeKey(e){this.keySet.delete(e)}static dispose(){this.keySet.clear()}};function ia(r){return r.replace(/[A-Z]/g,e=>"_"+e.toLowerCase()).replace(/^_/,"")}function Te(r,e,t){return new Promise((n,i)=>{let o=nn.genUniqueKey(),a=({data:c})=>{c.type===`${e}_result`&&c.key===o&&(nn.removeKey(o),self.removeEventListener("message",a),c.error?i(c.error):n(c.data))};r.addEventListener("message",a),r.postMessage({type:e,key:o,data:t})})}function i_(r){let e={};for(let n in r)n.startsWith("on")&&(e[ia(n.slice(2))]=r[n]);let t=async({data:n})=>{if(e[n.type])try{let i=await e[n.type](n.data);self.postMessage({type:`${n.type}_result`,key:n.key,data:i})}catch(i){self.postMessage({type:`${n.type}_result`,key:n.key,error:i})}else self.postMessage({type:`${n.type}_result`,key:n.key,error:"no_event"})};return self.addEventListener("message",t),()=>{self.removeEventListener("message",t)}}import{BoxGeometry as Mh,BufferGeometry as wh,Line as Th,LineBasicMaterial as oa,Mesh as Ch}from"three";function u_(r,e=16711680){let t=new oa({color:e}),n=new wh().setFromPoints(r);return new Th(n,t)}function l_(r,e=16711680){let t=new oa({color:e}),n=new Mh(1,1,1),i=new Ch(n,t);return i.position.copy(r),i}function ee(r,e,t=0){r.forEach(n=>{n.geometry.coords=JSON.parse(JSON.stringify(n.geometry.cds)),n.geometry.type==="polygon"?(n.geometry.coords.map(i=>{Array.isArray(i)&&i.forEach(o=>{o[0]-=e[0],o[1]-=e[1]})}),n.geometry.otherCds&&(n.geometry.otherCoords=n.geometry.otherCds.map(i=>i.map(o=>le(o,e)))),n.doors?.length&&n.doors.map(i=>{i.coord=le(i.coordinate,e)}),n.center&&(n.center=le(n.center,e))):(n.geometry.coords=le(n.geometry.cds,e),n.center&&(n.center=le(n.center,e)))});for(let n=0;n<r.length;n++){let i=r[n];i.deltaHeight=1e-5*(t+n+1)}}function le(r,e){return[r[0]-e[0],r[1]-e[1]]}import{Group as Ah}from"@tweenjs/tween.js";var vn=class{pauseTween=!1;tweenStore=new Set;group=new Ah;constructor(){}update(){this.group.update()}pause(){this.pauseTween=!0,this.getAll().forEach(e=>{this.tweenStore.add(e),e.pause()})}continue(){this.pauseTween&&(this.tweenStore.forEach(e=>{e.resume()}),this.tweenStore.clear(),this.pauseTween=!1)}remove(e){this.group.remove(e)}getAll(){return this.group.getAll()}clear(){this.getAll().forEach(e=>e.stop()),this.group.removeAll()}dispose(){this.clear()}};import{EventDispatcher as If,Box2 as Rf,Vector3 as on,Vector2 as xn,Raycaster as Nf,Box3 as Lf,Color as Of,AmbientLight as Ff}from"three";import{EventDispatcher as xf}from"three";import{Object3D as Gh,ExtrudeGeometry as kh,Mesh as Vh,Box3 as mr,Vector3 as ye,BufferGeometry as Hh,LineSegments as Wh,Ray as la,Vector2 as Fe}from"three";import{LineMaterial as Ph}from"three/examples/jsm/lines/LineMaterial";import{Color as gr,LineBasicMaterial as Dh,MeshStandardMaterial as Ih,MeshBasicMaterial as Rh,ShaderMaterial as Nh,DoubleSide as Lh}from"three";function sa(r){return`${r.x}-${r.y}-${r.z}`}var Rt=class{static lineMaterialMap=new Map;static meshStandardMaterialMap=new Map;static meshBasicMaterialMap=new Map;static shaderMaterialMap=new Map;static line2MaterialMap=new Map;static generateLineMaterialKey({color:e,opacity:t}){return`${e}-${t}`}static createLineMaterial({color:e,opacity:t}){let n=this.generateLineMaterialKey({color:e,opacity:t});if(this.lineMaterialMap.has(n))return this.lineMaterialMap.get(n);let i=new Dh({color:new gr(e).convertLinearToSRGB(),transparent:!0,opacity:t});return this.lineMaterialMap.set(n,i),i}static createMeshStandardMaterial({color:e,opacity:t}){let n=`${e}-${t}`;if(this.meshStandardMaterialMap.has(n))return this.meshStandardMaterialMap.get(n);let i=new Ih({color:new gr(e).convertLinearToSRGB(),roughness:1,transparent:!0,opacity:t,depthWrite:!0});return this.meshStandardMaterialMap.set(n,i),i}static createMeshBasicMaterial({color:e,opacity:t}){let n=`${e}-${t}`;if(this.meshBasicMaterialMap.has(n))return this.meshBasicMaterialMap.get(n);let i=new Rh({color:e,transparent:!0,opacity:t,depthWrite:!0});return this.meshBasicMaterialMap.set(n,i),i}static createShaderMaterial({gradualColor:e,center:t,maxValue:n,opacity:i,direction:o,max:a,min:c}){let l=`${e.toString()}-${sa(t)}-${n}-${i}-${sa(o)}`;if(this.shaderMaterialMap.has(l))return this.shaderMaterialMap.get(l);let s=`
3
3
  uniform vec3 uColor;
4
4
  uniform vec3 uGradualColor;
5
5
  uniform vec3 center;
@@ -36,7 +36,7 @@ var rh=Object.create;var _s=Object.defineProperty;var ih=Object.getOwnPropertyDe
36
36
  void main() {
37
37
  gl_FragColor = vec4(vColor.x, vColor.y, vColor.z, opacity);
38
38
  }
39
- `,h=new Nh({uniforms:{uColor:{value:new gr(e[0]).convertLinearToSRGB()},uGradualColor:{value:new gr(e[1]).convertLinearToSRGB()},center:{value:t},maxValue:{value:n},opacity:{value:i},uDirection:{value:o},uMax:{value:a},uMin:{value:c}},vertexShader:s,fragmentShader:u,side:Lh});return this.shaderMaterialMap.set(l,h),h}static createLine2MaterialMap({color:e,width:t,dashed:n,resolution:i}){let o=`${e}-${t}-${n}-${i.x}-${i.y}`;if(this.line2MaterialMap.has(o))return this.line2MaterialMap.get(o);let a=new Ph({color:parseInt(e.slice(1),16),dashed:n,linewidth:t,worldUnits:!0,dashSize:1,gapSize:3,dashScale:1,resolution:i});return this.line2MaterialMap.set(o,a),a}static dispose(){this.lineMaterialMap.forEach((e,t)=>{e.dispose()}),this.lineMaterialMap.clear(),this.meshStandardMaterialMap.forEach((e,t)=>{e.dispose()}),this.meshStandardMaterialMap.clear(),this.meshBasicMaterialMap.forEach((e,t)=>{e.dispose()}),this.meshBasicMaterialMap.clear(),this.shaderMaterialMap.forEach((e,t)=>{e.dispose()}),this.shaderMaterialMap.clear(),this.line2MaterialMap.forEach((e,t)=>{e.dispose()}),this.line2MaterialMap.clear()}};import{DataTexture as Oh,LinearFilter as aa,RGBAFormat as Fh}from"three";var We=class{static canvas=document.createElement("canvas");static ctx=this.canvas.getContext("2d");static cacheMap=new Map;static options={width:1024,height:64,font:"54px sans-serif",textBaseline:"hanging",lineWidth:12,fillStyle:"rgba(0,0,0,1)",strokeStyle:"white"};static getCanvas(){if(this.canvas)return this.canvas;{let e=document.createElement("canvas");return this.canvas=e,e}}static getCtx(){if(this.ctx)return this.ctx;let t=this.getCanvas().getContext("2d");return this.ctx=t,t}static getMergedOptions(e){return{...this.options,...e}}static setCtxStyle(e){let t=this.getCanvas(),n=this.getCtx();t.width=e.width,t.height=e.height,n.font=e.font,n.textBaseline=e.textBaseline,n.lineWidth=e.lineWidth,n.fillStyle=e.fillStyle,n.strokeStyle=e.strokeStyle}static getTextureByText(e,t){let n=this.getMergedOptions(t),i=yn({...n,text:e});if(this.cacheMap.has(i))return this.cacheMap.get(i);let o=this.getCanvas(),a=this.getCtx();a.clearRect(0,0,o.width,o.height),this.setCtxStyle(n);let c=Ss(e)?4:8;n.lineWidth&&a.strokeText(e,2,c),a.fillText(e,2,c);let l=Math.ceil(a.measureText(e).width);l=l%2===0?l:l+1,l+=2;let s=a.getImageData(0,0,l,64),u=new Oh(Uint8Array.from(s.data),l,64,Fh);return u.flipY=!0,u.minFilter=aa,u.magFilter=aa,this.cacheMap.set(i,u),u}static dispose(){this.ctx=null,this.canvas=null,this.cacheMap.forEach(e=>e.dispose()),this.cacheMap.clear()}};import{LinearFilter as ua,RGBAFormat as Uh,TextureLoader as Bh}from"three";var qe=class{static textureLoader=new Bh;static urlTextureMap=new Map;static getTextureByUrl(e){if(this.urlTextureMap.has(e))return this.urlTextureMap.get(e);let t=this.textureLoader.loadAsync(e);return t.then(n=>{n.format=Uh,n.magFilter=ua,n.minFilter=ua,n.colorSpace="srgb",this.urlTextureMap.set(e,n)}),this.urlTextureMap.set(e,t),t}static dispose(){this.urlTextureMap.forEach(e=>{e instanceof Promise?e.then(t=>t.dispose()):e.dispose()}),this.urlTextureMap.clear()}};import{GLTFLoader as zh}from"three/examples/jsm/loaders/GLTFLoader";var Xe=class{static loader=new zh;static modelMap=new Map;static async loadModel(e){if(this.modelMap.has(e)){let n=this.modelMap.get(e);if(n instanceof Promise)n.then(i=>({...i,scene:i.scene.clone()}));else return{...n,scene:n.scene.clone()}}let t=new Promise((n,i)=>{this.loader.load(e,o=>{n(o),this.modelMap.set(e,o)},void 0,i)});return this.modelMap.set(e,t),t.then(n=>({...n,scene:n.scene.clone()}))}static dispose(){this.modelMap.forEach(e=>{e instanceof Promise?e.then(t=>Jt(t.scene)):Jt(e.scene)}),this.modelMap.clear()}};import{cloneDeep as qh}from"lodash";var Pi={id:"",height:.1,airHeight:0,area:0,group:"",fillColor:"#EFF4FB",strokeColor:"#ffffff",fillOpacity:1,strokeOpacity:1,strokeWidth:1,doors:[],locked:!1,visible:!0,geometry:{type:"polygon",cds:[],coords:[],curveCpt:[],curveIndex:[]},layerType:"",zIndex:0,stroke:!0,deltaHeight:0,userData:{},gradualColor:[],renderType:"single",colorFactor:.9},Ft=class extends Gh{constructor(t,n){super();this.context=t;if(this.options=dn(qh({...Pi,...n}),this),this.options.geometry.type==="point"){let[i,o]=this.options.geometry.coords;return this.position.set(i,o,this.options.height+this.options.airHeight),this}this.initDoor(),this.init(),this.visible=this.options.visible,this.addEventListener("change-fillColor",({value:i})=>{this.initMaterial(),this.initMesh()}),this.addEventListener("change-fillOpacity",({value:i})=>{this.initMaterial(),this.initMesh()}),this.addEventListener("change-height",({value:i})=>{this.dispose(),this.init()}),this.addEventListener("change-strokeColor",({value:i})=>{this.options.stroke&&(this.initLineMaterial(),this.createBorder())}),this.addEventListener("change-strokeOpacity",({value:i})=>{this.options.stroke&&(this.initLineMaterial(),this.createBorder())}),this.addEventListener("change-airHeight",({value:i})=>{this.position.z=i}),this.addEventListener("change-visible",({value:i})=>{this.visible=i}),this.addEventListener("change-stroke",({value:i})=>{if(i){if(this.line)return;this.initLineGeometry(),this.initLineMaterial(),this.createBorder()}else this.line&&(this.remove(this.line),this.lineGeometry?.dispose())}),this.addEventListener("change-renderType",()=>{this.initMaterial(),this.initMesh()}),this.addEventListener("change-gradualColor",()=>{this.initMaterial(),this.initMesh()})}geometry;material;mesh;line;lineMaterial;lineGeometry;options;getCenter(){if(this.options.geometry.type==="point")return this.position.clone();let t=new ye,n=new mr;return n.setFromObject(this),n.getCenter(t),t}getSize(){if(this.options.geometry.type==="point")return new ye(0,0,0);let t=new mr,n=new ye;return t.setFromObject(this),t.getSize(n),n}getPosition(){let t=this.getCenter();return t.setZ(t.z+this.options.height/2),t}init(){this.geometry=this.initGeometry(),this.initMaterial(),this.initMesh(),this.mesh.position.z=this.options.airHeight+this.options.deltaHeight,this.options.stroke&&this.options.strokeOpacity!==0&&(this.initLineMaterial(),this.initLineGeometry(),this.createBorder())}initDoor(){if(this.options.doors?.length&&this.options.geometry.type==="polygon"){let t=this.options.geometry.coords[0];this.options.doors.forEach(n=>{let i=n.type==="single"?.5:1,o=.5,a=fn(t,n.coord),c=new Fe(...n.coord),l=new Fe(...t[a]).sub(new Fe(...n.coord)).normalize(),s=new Fe().addVectors(c,l.clone().multiplyScalar(i)),u=new Fe().addVectors(c,l.clone().multiplyScalar(-i)),h=new Fe(-l.y,l.x),f=new Fe().addVectors(s,h.clone().multiplyScalar(o));Ts([f.x,f.y],t)||(h.multiplyScalar(-1),f=new Fe().addVectors(s,h.clone().multiplyScalar(o)));let d=new Fe().addVectors(u,h.clone().multiplyScalar(o)),g=[[s.x,s.y],[f.x,f.y],[d.x,d.y],[u.x,u.y]];this.options.geometry.coords=[[...t.slice(0,a+1),...g,...t.slice(a+1)]],t=this.options.geometry.coords[0]})}}initGeometry(){let t=Se(this.options.geometry.coords[0],this.options.geometry.coords.slice(1));return new kh(t,{steps:1,bevelEnabled:!1,depth:this.options.height,curveSegments:4})}initSingleMaterial(){let t=Rt.createMeshBasicMaterial({color:this.options.fillColor,opacity:this.options.fillOpacity});if(this.options.height<=.1)return this.material=t,t;let n=Rt.createMeshBasicMaterial({color:Oe(this.options.fillColor),opacity:this.options.fillOpacity});return this.material=[t,n],[t,n]}getMaxAndMin(t,n){let i=new mr().setFromObject(this),o=t.clone().add(n.clone().multiplyScalar(1e3)),a=new la(o,n.clone().multiplyScalar(-1)),c=new ye;a.intersectBox(i,c);let l=t.clone().add(n.clone().multiplyScalar(-1e3)),s=new la(l,n.clone()),u=new ye;return s.intersectBox(i,u),{max:u,min:c}}initGradualMaterial(){let{max:t,min:n}=new mr().setFromObject(this),i=t.clone().sub(n),o=Math.max(i.x,i.y,i.z)/2,a=this.getPosition(),c=new ye(-1,.2,0).normalize(),{max:l,min:s}=this.getMaxAndMin(a,c),u=Rt.createShaderMaterial({gradualColor:this.options.gradualColor,center:this.getPosition(),maxValue:o,opacity:this.options.fillOpacity,direction:new ye(-1,.2,0),max:l,min:s});if(this.options.height<=.1)return this.material=u,u;let h=this.getCenter(),f=new ye(-1,.2,1).normalize(),{max:d,min:g}=this.getMaxAndMin(h,f),p=Rt.createShaderMaterial({gradualColor:[Oe(this.options.gradualColor[0],this.options.colorFactor),Oe(this.options.gradualColor[1],this.options.colorFactor)],center:this.getCenter(),maxValue:o,opacity:this.options.fillOpacity,direction:new ye(-1,.2,1),max:d,min:g});return this.material=[u,p],[u,p]}initMaterial(){return this.options.renderType==="gradual"?this.initGradualMaterial():this.initSingleMaterial()}initLineMaterial(){let t=Rt.createLineMaterial({color:this.options.strokeColor,opacity:this.options.strokeOpacity});return this.lineMaterial=t,t}initMesh(){this.mesh&&this.remove(this.mesh),this.mesh=new Vh(this.geometry,this.material),this.add(this.mesh)}getBorderPoints(){let t=[],n=this.options.height+this.options.deltaHeight,{coords:i}=this.options.geometry;for(let o=0;o<i.length;o++){let a=i[o];for(let c=0;c<a.length;c++){let l=a[c],s=c+1===a.length?a[0]:a[c+1];t.push(new ye(l[0],l[1],n)),t.push(new ye(s[0],s[1],n))}}return t}initLineGeometry(){this.lineGeometry&&this.lineGeometry.dispose();let t=this.getBorderPoints(),n=new Hh().setFromPoints(t);this.lineGeometry=n}createBorder(){this.line&&this.remove(this.line);let t=new Wh(this.lineGeometry,this.lineMaterial);return t.position.z=this.options.airHeight+.01,this.line=t,this.add(t),t}raycast(t){if(!this.visible||this.options.geometry.type==="point")return!1;this.mesh.updateMatrixWorld(!0);let n=t.intersectObject(this.mesh);if(n[0]){let{point:i,distance:o}=n[0];return{position:i,distance:o}}return!1}dispose(){this.geometry?.dispose(),this.line?.geometry.dispose(),this.clear()}};import{Object3D as Xh,PlaneGeometry as jh,Mesh as Yh,ShadowMaterial as $h,Color as Zh,DoubleSide as Kh}from"three";var yr=class extends Xh{directionalLight;plane;basicOpacity=.07;constructor(){super(),this.directionalLight=this.initLight(),this.initPlane()}initLight(){let e=bs(16777215,.5);return e.position.set(0,0,100),this.add(e),e}changeLightCamera(e){let t=e.x,n=e.y;this.directionalLight.shadow.camera.left=-t,this.directionalLight.shadow.camera.right=t,this.directionalLight.shadow.camera.top=n,this.directionalLight.shadow.camera.bottom=-n,this.directionalLight.shadow.camera.near=.5,this.directionalLight.shadow.camera.far=Math.max(t,n)}changeLightColor(e){this.directionalLight.color=new Zh(e)}setPosition(e){this.position.copy(e),this.directionalLight.position.set(-e.x/2,-e.y/2,100)}initPlane(e=1e3,t=1e3){let n=new jh(e,t),i=new $h({transparent:!0,opacity:0,side:Kh}),o=new Yh(n,i);return o.receiveShadow=!0,o.position.z=-10,this.add(o),this.plane=o,o}setTarget(e){this.directionalLight.target=e}transformOpacity(e){return e*this.basicOpacity}setOpacity(e){this.plane.material.opacity=this.transformOpacity(e)}dispose(){Jt(this,!0)}};import{EventDispatcher as ep,Vector3 as np}from"three";import{Box3 as ca,EventDispatcher as Jh,Vector3 as At}from"three";import{debounce as Qh}from"lodash";var tp={autoUpdate:!0,appendToBody:!1,autoChangePlacement:!1},vr=class extends Jh{constructor(t,n={}){super();this.context=t;this.options={...tp,...n},this.registryEvent(),this.div=this.initDiv(),this.options.appendToBody?document.body.appendChild(this.div):this.context.container.appendChild(this.div)}div;element;position=new At;clientPos={x:0,y:0};visible=!0;options;placement="top";observer=null;initObserver(){let t=new MutationObserver(Qh(()=>{this.div&&this.usePlacement()},100));t.observe(this.div,{childList:!0,subtree:!0,attributes:!0}),this.observer=t}getPlacementPosition(){if(this.element instanceof Ft&&this.element.options.geometry.type==="polygon"){let{max:o,min:a}=new ca().setFromObject(this.element),c=(o.x+a.x)/2,l=(o.y+a.y)/2;return{left:new At(a.x,l,o.z),leftTop:new At(a.x,o.y,o.z),top:new At(c,o.y,o.z),rightTop:new At(o.x,o.y,o.z),right:new At(o.x,l,o.z),rightBottom:new At(o.x,a.y,o.z),bottom:new At(c,a.y,o.z),leftBottom:new At(a.x,a.y,o.z),center:new At(c,l,o.z)}}let{x:t,y:n,z:i}=this.element?.getPosition?.()||this.position;return{left:new At(t,n,i),leftTop:new At(t,n,i),top:new At(t,n,i),rightTop:new At(t,n,i),right:new At(t,n,i),rightBottom:new At(t,n,i),bottom:new At(t,n,i),leftBottom:new At(t,n,i),center:new At(t,n,i)}}getPlacementScreenPosition(){let{width:t,height:n}=this.context.clientSize,i=this.getPlacementPosition();return Object.keys(i).reduce((o,a)=>{let{x:c,y:l}=et(i[a],this.context.camera,t,n);return o[a]={x:c,y:l},o},{})}checkOverflow(t,n){let{width:i,height:o}=this.context.clientSize;return n.x>0&&t.x<i&&n.y<o&&t.y>0}getPlacement(){let{clientWidth:t,clientHeight:n}=this.div,i=this.getPlacementScreenPosition(),o=t/2,a=n/2,c=[{type:"center",getBox(l,s){return{max:{x:o+l,y:s-n},min:{x:l-o,y:s}}}},{type:"left",getBox(l,s){return{max:{x:l,y:s-a},min:{x:l-t,y:s+a}}}},{type:"leftTop",getBox(l,s){return{max:{x:l,y:s-n},min:{x:l-t,y:s}}}},{type:"top",getBox(l,s){return{max:{x:l+o,y:s-n},min:{x:l-o,y:s}}}},{type:"rightTop",getBox(l,s){return{max:{x:l+t,y:s-n},min:{x:l,y:s}}}},{type:"right",getBox(l,s){return{max:{x:l+t,y:s-a},min:{x:l,y:s+a}}}},{type:"rightBottom",getBox(l,s){return{max:{x:l+t,y:s},min:{x:l,y:s+n}}}},{type:"bottom",getBox(l,s){return{max:{x:l+o,y:s},min:{x:l-o,y:s+n}}}},{type:"leftBottom",getBox(l,s){return{max:{x:l,y:s},min:{x:l-t,y:s+a}}}}];for(let l=0;l<c.length;l++){let s=c[l],u=i[s.type],{max:h,min:f}=s.getBox(u.x,u.y);if(this.checkOverflow(h,f))return{type:s.type,position:u}}return{type:"center",position:i.center}}initDiv(){let t=document.createElement("div");return t.style.position="absolute",t}usePlacement(){let t=this.getPlacement();this.div.className=`overlay_${t.type}`,this._updatePosition(t.position.x,t.position.y)}bindElement(t){this.element=t,this.options.autoChangePlacement&&this.initObserver(),this.onUpdate()}unBindElement(){this.element=void 0}setVisible(t,n="block"){t!==this.visible&&(this.div.style.display=t?n:"none",this.visible=t)}setOpacity(t){this.div.style.opacity=`${t}`}getPosition(){return this.element?typeof this.element.getPosition=="function"?this.element.getPosition():new ca().setFromObject(this.element).getCenter(new At):this.position}get withinDisplayRange(){let{x:t,y:n}=this.clientPos,{width:i,height:o}=this.context.clientSize;return t>=0&&t<=i&&n>=0&&n<=o}_updatePosition(t,n){this.clientPos={x:t,y:n};let{width:i,height:o,x:a,y:c}=this.context.clientSize;this.options.appendToBody&&(this.div.style.left=`${a}px`,this.div.style.top=`${c+o}px`),this.options.autoUpdate?this.div.style.transform=`translate3d(${t}px, ${-o+n}px, 0)`:this.dispatchEvent({type:"update-position",x:t,y:n,width:i,height:o})}updatePosition(t=!1){let n=this.getPosition(),{width:i,height:o}=this.context.clientSize,{x:a,y:c}=et(n,this.context.camera,i,o);this.clientPos.x===a&&this.clientPos.y===c&&!t||this._updatePosition(a,c)}onUpdate=()=>{this.options.autoChangePlacement?this.usePlacement():this.updatePosition()};registryEvent(){this.context.addEventListener("update",this.onUpdate)}unRegistryEvent(){this.context.removeEventListener("update",this.onUpdate)}dispose(){this.unRegistryEvent(),this.unBindElement(),this.observer?.disconnect(),this.div?.remove(),this.div=null}};var rp={texts:[{text:""}],level:1,icon_position:"bottom",collision_enable:!0,opacity:1,id:"",position:{x:0,y:0,z:0},icon_opacity:1,icon_border:{color:"#586EE0",width:0},background:"",collision_hide_icon:!0,built_in:!1,box_only_icon:!1},rn=class extends ep{constructor(t,n){super();this.context=t;this.options=dn({...rp,...n},this),this.position.set(n.position?.x||0,n.position?.y||0,n.position?.z||0),this.overlay=new vr(this.context,{autoUpdate:!1}),this.overlay.addEventListener("update-position",({x:i,y:o,height:a})=>{this.overlay.div.style.transform=`translate3d(calc(${i}px - 50%), calc(${-a+o}px - ${this.options.icon&&this.options.icon_position!=="center"?"100%":"50%"}), 0)`}),this.overlay.bindElement(this),this.registryEvent(),this.initDiv(),this.addEventListener("change-icon",({value:i})=>{i?this.img?this.img.setAttribute("src",i):(this.addIcon(),this._changePosition()):(this.img&&this.div.removeChild(this.img),this.img=void 0,this._changePosition(),this.resetSize())}),this.addEventListener("change-texts",({value:i})=>{let o=this.textDiv;if(o){let a=this.initText();this.div.replaceChild(a,o)}else this.addText();this.resetSize()}),this.addEventListener("change-opacity",({value:i})=>{this.overlay.setOpacity(i)}),this.addEventListener("change-icon_size",({value:i})=>{this.img&&(this.img.style.width=`${i?.[0]||32}px`,this.img.style.height=`${i?.[1]||32}px`,this.resetSize())}),this.addEventListener("change-icon_opacity",({value:i})=>{this.img&&(this.img.style.opacity=`${i}`)}),this.addEventListener("change-icon_border",({value:i})=>{this.img&&(this.img.style.border=`${i.width}px solid ${i.color}`)}),this.addEventListener("change-background",({value:i})=>{this.div.style.background=i})}div;textDiv;img;overlay;options;visible=!0;size={width:0,height:0};position=new np;userData={};showTextStatus=!0;disposed=!1;get withinDisplayRange(){return this.overlay.withinDisplayRange}async resetSize(){if(await As(),!this.disposed)if(this.options.box_only_icon){if(!this.img)return;let{width:t,height:n}=this.img.getBoundingClientRect();this.size={width:t+2,height:n+2}}else{let{width:t,height:n}=this.div.getBoundingClientRect();this.size={width:t+2,height:n+2}}}renderHelperBox(){}get clientPos(){return this.overlay.clientPos}initDiv(){let t=document.createElement("div");return this.div=t,this.addText(),this.options.icon&&this.addIcon(),t.style.fontSize="12px",t.style.textShadow="#fff 1px 0 0, #fff 0 1px 0, #fff -1px 0 0, #fff 0 -1px 0",t.style.display="flex",t.style.flexDirection="column",t.style.justifyContent="center",t.style.alignItems="center",t.style.padding="4px",this.overlay.setOpacity(this.options.opacity),this.overlay.div.style.pointerEvents="none",this.overlay.div.style.userSelect="none",this.overlay.div.appendChild(t),this.resetSize(),t}addIcon(){if(!this.img){let t=this.initIcon();this.options.icon_position==="top"?this.div.firstChild?this.div.insertBefore(t,this.div.firstChild):this.div.appendChild(t):this.div.appendChild(t)}}addText(){let t=this.initText();this.options.icon_position==="top"?this.div.appendChild(t):this.div.firstChild?this.div.insertBefore(t,this.div.firstChild):this.div.appendChild(t)}getPosition(){return this.position}initText(){let t=document.createElement("div");return t.appendChild(this.createTextFragment()),t.style.textAlign="center",this.textDiv=t,t}createTextFragment(){let t=document.createDocumentFragment();return this.options.texts.forEach(n=>{let i=document.createElement("div");if(i.style.whiteSpace="nowrap",n.styles)for(let[o,a]of Object.entries(n.styles))i.style[o]=a;i.textContent=n.text,t.appendChild(i)}),t}initIcon(){let t=document.createElement("img");return t.setAttribute("src",this.options.icon),t.style.width=`${this.options.icon_size?.[0]||32}px`,t.style.height=`${this.options.icon_size?.[1]||32}px`,t.style.opacity=`${this.options.icon_opacity}px`,t.style.borderRadius="50%",this.options.icon_border.width&&(t.style.border=`${this.options.icon_border.width}px solid ${this.options.icon_border.color}`),t.onload=()=>{this.resetSize()},this.img=t,t}_changePosition=()=>{this.overlay.updatePosition(!0)};registryEvent(){}unRegistryEvent(){}setVisible(t){t!==this.visible&&(this.visible=t,this.changeOverlayVisible(t))}changeOverlayVisible(t){if(!(t===this.overlay.visible&&this.options.collision_hide_icon))if(this.options.collision_hide_icon)this.overlay.visible=t,this.overlay.div.style.visibility=t?"visible":"hidden";else{if(this.showTextStatus===t)return;this.textDiv.style.visibility=t?"visible":"hidden",this.showTextStatus=t}}parentSetVisible(t){this.visible&&this.changeOverlayVisible(t)}getBox(t=this.context.config.poi.boxScale){let{width:n,height:i}=this.size,o=n*t,a=i*t,{x:c,y:l}=this.overlay.clientPos;return{left:c-o/2,right:c+o/2,top:this.options.icon?l-a:l-a/2,bottom:this.options.icon?l:l+a/2}}getOriginBox(){return this.getBox(1)}isContain(t,n){if(!this.overlay.visible||!this.visible)return!1;let i=this.getOriginBox();return t>=i.left&&t<=i.right&&n>=i.top&&n<=i.bottom}dispose(){this.unRegistryEvent(),this.div=null,this.textDiv=null,this.img=void 0,this.overlay.dispose(),this.disposed=!0}};import{Box3 as Sr,Object3D as Di,Vector3 as Mr}from"three";import{MeshBasicMaterial as ip,Object3D as op,PlaneGeometry as sp,Texture as ap,DoubleSide as up,Mesh as lp,Matrix3 as ha,Vector2 as cp}from"three";import{create as hp}from"@mars3d/heatmap.js";import{featureCollection as pp,point as fp,bbox as dp,center as gp}from"@turf/turf";var _r=class extends op{constructor(t){super();this.context=t;this.div=document.createElement("div")}heatmap;div;plane;clearHeatmap(){this.div.firstChild&&this.div.removeChild(this.div.firstChild),this.heatmap=void 0}loadData(t){this.clearHeatmap();let{width:n,height:i,leftTop:o,center:a}=this.getBox(t);this.heatmap=hp({width:n,height:i,container:this.div,...this.context.config.heatMap}),this.heatmap.setData(this.transformData(t,o)),this.initPlane(n,i),this.position.set(a[0],a[1],this.position.z)}initPlane(t,n){this.plane&&this.remove(this.plane);let i=new sp(t,n),o=new ap(this.div.firstChild);o.needsUpdate=!0;let a=new ip({transparent:!0,side:up,map:o});a.needsUpdate=!0,this.plane=new lp(i,a),this.add(this.plane)}getTransMatrix({x:t,y:n}){return new ha().makeScale(1,-1).multiply(new ha().makeTranslation(0-t,0-n))}transformData(t,n){let i=this.getTransMatrix(n);return{data:t.data.map(a=>{let c=new cp(a.x,a.y).applyMatrix3(i);return{x:c.x,y:c.y,value:a.value}}),max:t.max,min:t.min}}getBox(t){let n=pp(t.data.map(s=>fp([s.x,s.y]))),i=dp(n),o=i[2]-i[0],a=i[3]-i[1],c={x:i[0],y:i[3]},l=gp(n);return{width:o,height:a,leftTop:c,center:l.geometry.coordinates}}dispose(){this.div=null,this.heatmap=void 0}};import{Object3D as mp,Vector3 as yp}from"three";var xr=class extends mp{constructor(t,n){super();this.context=t;this.options=n;this.position.copy(n.position||new yp(0,0,0)),this.loadModel()}model=null;async loadModel(){let t=await Xe.loadModel(this.options.modelUrl);t.scene.rotation.set(Math.PI/2,Math.PI/2,0),this.add(t.scene),this.model=t}dispose(){Jt(this),this.model=null}};import{Box3 as _p,Vector3 as xp}from"three";import{Object3D as vp}from"three";var Ht=class extends vp{constructor(t){super();this.context=t}dispose(){Jt(this),this.children.forEach(t=>t.dispose?.()),this.clear()}};var Er=class extends Ht{graphicMap=new Map;constructor(e){super(e)}getCenter(){return new _p().setFromObject(this).getCenter(new xp)}createGraphic(e){let t=new Ft(this.context,e);return this.add(t),this.graphicMap.set(e.id,t),t}removeGraphic(e){this.remove(e),this.graphicMap.delete(e.options.id),e.dispose()}removeGraphicById(e){this.graphicMap.has(e)&&this.removeGraphic(this.graphicMap.get(e))}getGraphicByNodeId(e){return this.graphicMap.get(e)||null}getGraphicByRaycaster(e){let t={distance:1e4,graphic:null,position:null},n=this.children.reduce((i,o)=>{if(o instanceof Ft){let a=o.raycast(e);if(a){let{distance:c}=a;if(c<i.distance)return{distance:a.distance,position:a.position,graphic:o}}return i}else return i},t);return n===t?{graphics:[],position:null}:{graphics:[n.graphic],position:n.position}}};import{debounce as Ep}from"lodash";var _n=class extends Ht{pois=[];debounceCollisionDetection;timer=new Gt;constructor(e){super(e),this.registryEvent(),this.debounceCollisionDetection=Ep(this.collisionDetection,10)}clear(e=!1){return this.pois.forEach(t=>{t.options.built_in&&!e||t.dispose()}),this.pois=e?[]:this.pois.filter(t=>t.options.built_in),this}createPoi(e){let t=new rn(this.context,e);return this.pushPoi(t),t.addEventListener("change-level",()=>this.changePoiLevelOrCollisionEnable(t)),t.addEventListener("change-collision_enable",()=>this.changePoiLevelOrCollisionEnable(t)),Promise.resolve().then(()=>{this.debounceCollisionDetection()}),t}changePoiLevelOrCollisionEnable(e){let t=this.pois.findIndex(n=>n===e);t!==-1&&(this.pois.splice(t,1),this.pushPoi(e))}removePoi(e){let t=this.pois.findIndex(n=>n===e);t!==-1&&(this.pois.splice(t,1),e.dispose())}removePoiById(e){let t=this.pois.find(n=>n.options.id===e);t&&this.removePoi(t)}getPoiById(e){return this.pois.find(n=>n.options.id===e)||null}pushPoi(e){if(!e.options.collision_enable){this.pois.unshift(e);return}if(e.options.level===0){this.pois.push(e);return}for(let t=0;t<this.pois.length;t++){let n=this.pois[t];if(n.options.collision_enable&&n.options.level<=e.options.level){this.pois.splice(t,0,e);return}}this.pois.push(e)}getPoiByDeviceXy(e,t){return this.pois.filter(i=>i instanceof rn&&i.isContain(e,t))}onUpdate=()=>{this.timer.requestAnimationFrame(()=>{this.collisionDetection()})};collisionDetection(){let e=[];this.pois.filter(n=>n.visible&&n.withinDisplayRange).forEach((n,i)=>{let{left:o,right:a,top:c,bottom:l}=n.getBox();if(i===0||!n.options.collision_enable){e.push({left:o,right:a,top:c,bottom:l}),n.parentSetVisible(!0);return}let s=e.some(u=>u.left<a&&u.right>o&&u.top<l&&u.bottom>c);n.parentSetVisible(!s),s||e.push({left:o,right:a,top:c,bottom:l})})}registryEvent(){this.context.addEventListener("update",this.onUpdate)}unRegistryEvent(){this.context.removeEventListener("update",this.onUpdate)}dispose(){this.timer.dispose(),this.pois.forEach(e=>e.dispose()),this.pois.length=0,this.debounceCollisionDetection=()=>{},super.dispose(),this.unRegistryEvent()}};import{debounce as bp}from"lodash";import{Vector2 as Sp,Vector3 as Mp}from"three";var br=class extends Ht{pois=[];debounceCollisionDetection;timer=new Gt;constructor(e){super(e),this.registryEvent(),this.debounceCollisionDetection=bp(this.collisionDetection,10)}clear(){return this.pois.forEach(e=>{e.dispose()}),this.pois=[],this}createPoi(e){let t=new ne(this.context,e);return this.pushPoi(t),t.addEventListener("change-level",()=>this.changePoiLevelOrCollisionEnable(t)),t.addEventListener("change-collision_enable",()=>this.changePoiLevelOrCollisionEnable(t)),Promise.resolve().then(()=>{this.debounceCollisionDetection()}),t}changePoiLevelOrCollisionEnable(e){let t=this.pois.findIndex(n=>n===e);t!==-1&&(this.pois.splice(t,1),this.pushPoi(e))}removePoi(e){let t=this.pois.findIndex(n=>n===e);t!==-1&&(this.remove(e),this.pois.splice(t,1),e.dispose())}removePoiById(e){let t=this.pois.find(n=>n.options.id===e);t&&this.removePoi(t)}getPoiById(e){return this.pois.find(n=>n.options.id===e)||null}pushPoi(e){if(this.add(e),!e.options.collision_enable){this.pois.unshift(e);return}if(e.options.level===0){this.pois.push(e);return}for(let t=0;t<this.pois.length;t++){let n=this.pois[t];if(n.options.collision_enable&&n.options.level<=e.options.level){this.pois.splice(t,0,e);return}}this.pois.push(e)}getPoiByDeviceXy(e,t){let n=new Sp(e,t);return this.pois.filter(o=>o instanceof ne&&o.canSelect&&o.box.containsPoint(n))}changeParkingSpaceVisibleByZoom=()=>{let e=this.parent?.parent;if(e&&e instanceof Ce){let{clientSize:{width:t,height:n}}=this.context,{max:i,min:o}=e.box,c=Math.min(t/(i.x-o.x),n/(i.y-o.y))*(i.x-o.x)/45;this.pois.filter(l=>l.userData.type==="parkingSpace").map(l=>{let s=this.context.camera.zoom>=c;l.visible=s,s||l.parentSetVisible(s)})}};onUpdate=()=>{this.timer.requestAnimationFrame(()=>{this.collisionDetection()})};collisionDetection(){let e=[],{camera:t}=this.context;t.updateMatrixWorld();let n=a=>a<=1&&a>=-1,i=t.projectionMatrix.clone();i.multiply(t.matrixWorldInverse),this.pois.filter(a=>{if(a.visible){let c=new Mp().setFromMatrixPosition(a.matrixWorld);return c.applyMatrix4(i),a.screenPosition=c,n(c.x)&&n(c.y)&&n(c.z)}return!1}).forEach((a,c)=>{let l=a.getBox(a.screenPosition);if(c===0||!a.options.collision_enable){e.push(l),a.parentSetVisible(!0);return}let s=e.some(u=>u.intersectsBox(l));a.parentSetVisible(!s),s||e.push(l)})}registryEvent(){this.context.addEventListener("update",this.onUpdate),this.context.addEventListener("control-zoom-change",this.changeParkingSpaceVisibleByZoom)}unRegistryEvent(){this.context.removeEventListener("update",this.onUpdate),this.context.removeEventListener("control-zoom-change",this.changeParkingSpaceVisibleByZoom)}dispose(){this.timer.dispose(),this.pois.forEach(e=>e.dispose()),this.pois.length=0,this.debounceCollisionDetection=()=>{},super.dispose(),this.unRegistryEvent()}};var Ce=class extends Di{constructor(t){super();this.context=t;this.groundLayer=new Ht(this.context),this.graphicLayer=new Er(this.context),this.poiLayer=new _n(this.context),this.poiLayer2=new br(this.context),this.wallLayer=new Ht(this.context),this.textureLayer=new Ht(this.context),this.glbModelLayer=new Ht(this.context),this.laneLayer=new Ht(this.context),this.mergeGraphicLayer=new Ht(this.context),this.textTextureLayer=new Ht(this.context),this.groundUpper.add(this.graphicLayer),this.groundUpper.add(this.poiLayer),this.groundUpper.add(this.poiLayer2),this.groundUpper.add(this.wallLayer),this.groundUpper.add(this.textureLayer),this.groundUpper.add(this.glbModelLayer),this.groundUpper.add(this.laneLayer),this.groundUpper.add(this.mergeGraphicLayer),this.groundUpper.add(this.textTextureLayer),this.add(this.groundUpper),this.add(this.groundLayer),this.add(this.models)}graphicLayer;poiLayer;poiLayer2;wallLayer;textureLayer;glbModelLayer;laneLayer;mergeGraphicLayer;textTextureLayer;grounds=new Set;groundLayer;shadow=new yr;heatmap;groundUpper=new Di;models=new Di;modelMap=new Map;groundMaxHeight=0;name="";key="";box=new Sr;getPosition(){return this.box.getCenter(new Mr)}createGround(t){let n=new Ft(this.context,t);this.addGrounds([n])}addGrounds(t){t.forEach(n=>{this.grounds.has(n)||(n.mesh.castShadow=!0,this.grounds.add(n),this.groundLayer.add(n))}),this.changeGroundMaxHeight()}changeGroundMaxHeight(){let t=Array.from(this.grounds);this.groundMaxHeight=this.grounds.size>0?Math.max(...t.map(n=>n.options.height+n.options.airHeight+n.options.deltaHeight)):0,this.groundUpper.position.z=this.groundMaxHeight}get hasElement(){return!!(this.grounds.size||this.graphicLayer.children.length)}getCenter(){return new Sr().setFromObject(this).getCenter(new Mr)}addModel(t){let n=new xr(this.context,t);return this.models.add(n),this.modelMap.set(t.id,n),n}addShadow(){let t=new Sr().setFromObject(this.groundUpper),n=t.getCenter(new Mr),i=t.getSize(new Mr);this.shadow.setPosition(n),this.shadow.changeLightCamera(i)}addGraphic(t){return this.graphicLayer.createGraphic(t)}addPoi(t){return this.poiLayer.createPoi(t)}addHeatmap(t){this.heatmap||(this.heatmap=new _r(this.context),this.add(this.heatmap)),this.heatmap.loadData(t);let n=new Sr().setFromObject(this.graphicLayer);return this.heatmap.position.setZ(n.max.z),this.heatmap}removeHeatMap(){this.heatmap&&(this.remove(this.heatmap),this.heatmap.dispose(),this.heatmap=void 0)}setShadowOpacity(t){this.shadow.setOpacity(t)}setShadowVisible(t){this.shadow.visible=t}updateBox(){this.box.setFromObject(this)}dispose(){console.log("floor dispose",this.name),this.shadow.dispose(),this.groundLayer.dispose(),this.graphicLayer.dispose(),this.poiLayer.dispose(),this.poiLayer2.dispose(),this.wallLayer.dispose(),this.textureLayer.dispose(),this.glbModelLayer.dispose(),this.laneLayer.dispose(),this.mergeGraphicLayer.dispose(),this.textTextureLayer.dispose(),this.grounds.forEach(t=>t.dispose()),this.heatmap?.dispose(),this.groundUpper.clear(),this.models.children.forEach(t=>t.dispose()),this.models.clear(),this.modelMap.clear(),this.clear()}};import{EventDispatcher as wp,Vector3 as Tp}from"three";var le=class extends wp{constructor(t){super();this.context=t;this.svg=Cs(`${t.container.clientWidth}`,`${t.container.clientHeight}`),t.container.appendChild(this.svg),this._registryEvent()}points=[];svg;enable=!0;_onResize=({width:t,height:n})=>{this.svg&&(this.svg.setAttribute("width",`${t}`),this.svg.setAttribute("height",`${n}`))};_registryEvent(){this.context.addEventListener("resize",this._onResize)}_unRegistryEvent(){this.context.removeEventListener("resize",this._onResize)}setEnable(t){this.enable=t,t?this.svg.style.display="block":this.svg.style.display="none"}getIntersectByPointerEvent(t){let{camera:n,renderer:i}=this.context,{offsetX:o,offsetY:a}=t,{clientWidth:c,clientHeight:l}=i.domElement,s=o/c*2-1,u=1-a/l*2;return new Tp(s,u,0).unproject(n)}getSvgCoordinate(t){let{camera:n,container:i}=this.context;return et(t,n,i.clientWidth,i.clientHeight)}dispose(){this._unRegistryEvent(),this.context.container.removeChild(this.svg),this.svg=null}};var wr=class extends le{constructor(t){super(t);this.context=t;let{config:{svg:{circle:n,line:i}}}=t;this.circles=[Gn(n.radius,n.fill),Gn(n.radius,n.fill)],this.line=fr(i.stroke),this.svg.appendChild(this.circles[0]),this.svg.appendChild(this.circles[1]),this.svg.appendChild(this.line),this.registryEvent()}circles;line;setEnable(t){super.setEnable(t),t?this.registryEvent():this.unRegistryEvent()}registryEvent(){this.context.container.addEventListener("pointerenter",this.onPointermove),this.context.container.addEventListener("pointermove",this.onPointermove),this.context.container.addEventListener("pointerleave",this.onPointerleave),this.context.container.addEventListener("pointerdown",this.onPointerdown),this.context.addEventListener("update",this.onUpdate)}unRegistryEvent(){this.context.container.removeEventListener("pointerenter",this.onPointermove),this.context.container.removeEventListener("pointermove",this.onPointermove),this.context.container.removeEventListener("pointerleave",this.onPointerleave),this.context.container.removeEventListener("pointerdown",this.onPointerdown),this.context.removeEventListener("update",this.onUpdate)}onUpdate=()=>{if(this.points[0]){let t=this.getSvgCoordinate(this.points[0]);en(this.circles[0],t.x,t.y),ge(this.line,t)}if(this.points[1]){let t=this.getSvgCoordinate(this.points[1]);en(this.circles[1],t.x,t.y),ge(this.line,void 0,t)}};onPointermove=t=>{this.points.length===1&&(this.line.style.display="block",ge(this.line,void 0,{x:t.offsetX,y:t.offsetY}))};onPointerleave=()=>{this.points[1]||(this.line.style.display="none")};onPointerdown=t=>{if(this.points[1])return;let n=this.getIntersectByPointerEvent(t);if(n){let{offsetX:i,offsetY:o}=t,a=this.circles[this.points.length];en(a,i,o),this.points.length||ge(this.line,{x:i,y:o},{x:i,y:o}),this.addPoint(n)}};addPoint(t){if(this.points.push(t),this.points.length>=2){let n=this.calculatedDistance();this.dispatchEvent({type:"distance",distance:n})}}calculatedDistance(){let[{x:t,y:n},{x:i,y:o}]=this.points;return Math.sqrt((i-t)**2+(o-n)**2)}dispose(){super.dispose(),this.unRegistryEvent(),this.line=null,this.circles=[]}};var Tr=class extends le{circles=[];lines=[];isClose=!1;constructor(e){super(e),this.registryEvent()}setEnable(e){super.setEnable(e),e?this.registryEvent():this.unRegistryEvent()}get lastLine(){return this.lines.slice(-1)[0]}addCircle(e){this.circles.push(e),this.svg.appendChild(e)}addLine(e){this.lines.push(e),this.svg.appendChild(e)}registryEvent(){this.context.container.addEventListener("pointerenter",this.onPointermove),this.context.container.addEventListener("pointermove",this.onPointermove),this.context.container.addEventListener("pointerleave",this.onPointerleave),this.context.container.addEventListener("pointerdown",this.onPointerdown),this.context.addEventListener("update",this.onUpdate)}unRegistryEvent(){this.context.container.removeEventListener("pointerenter",this.onPointermove),this.context.container.removeEventListener("pointermove",this.onPointermove),this.context.container.removeEventListener("pointerleave",this.onPointerleave),this.context.container.removeEventListener("pointerdown",this.onPointerdown),this.context.removeEventListener("update",this.onUpdate)}onUpdate=()=>{this.points.length&&this.points.forEach((e,t)=>{let n=this.getSvgCoordinate(e);this.circles[t]&&en(this.circles[t],n.x,n.y),t!==0&&ge(this.lines[t-1],void 0,n),this.lines[t]&&ge(this.lines[t],n)})};onPointermove=e=>{!this.lastLine||this.isClose||(this.lastLine.style.display="block",ge(this.lastLine,void 0,{x:e.offsetX,y:e.offsetY}))};onPointerleave=()=>{this.isClose||(this.lastLine.style.display="none")};onPointerdown=e=>{if(this.isClose)return;let t=this.getIntersectByPointerEvent(e);if(t){let{offsetX:n,offsetY:i}=e;this.checkAdsorb(n,i)?(this.isClose=!0,this.addPoint(this.points[0])):this.addPoint(t);let{circle:{fill:o,radius:a},line:{stroke:c}}=this.context.config.svg;if(!this.isClose){let l=Gn(a,o);en(l,n,i),this.addCircle(l)}if(this.lines.length&&ge(this.lastLine,void 0,{x:n,y:i}),!this.isClose){let l=fr(c);ge(l,{x:n,y:i},{x:n,y:i}),this.addLine(l)}}};checkAdsorb(e,t){if(this.points.length<3)return!1;let n=this.circles[0],i=+n.getAttribute("cx"),o=+n.getAttribute("cy");return Math.sqrt((e-i)**2+(t-o)**2)<=5}addPoint(e){if(this.points.push(e),this.isClose){let t=this.calculatedArea();this.dispatchEvent({type:"area",area:t})}}calculatedArea(){let e=this.points.map(i=>[i.x,i.y]),t=0,n=e.length;for(let i=0;i<n;i++){let o=(i+1)%n;t+=e[i][0]*e[o][1]-e[o][0]*e[i][1]}return Math.abs(t/2)}dispose(){super.dispose(),this.unRegistryEvent(),this.lines=[],this.circles=[]}};import{Box3 as Cp}from"three";var pa=class extends le{constructor(t){super(t);this.context=t;let{config:{svg:{line:n}}}=t;this.rect=He(n.stroke,"transparent"),this.svg.appendChild(this.rect);for(let i=0;i<4;i++)this.cornerRect[i]=He(n.stroke,"#ffffff"),this.centerRect[i]=He(n.stroke,"#ffffff"),this.svg.appendChild(this.cornerRect[i]),this.svg.appendChild(this.centerRect[i]);this.registryEvent()}rect;cornerRect=[];centerRect=[];graphic;setEnable(t){super.setEnable(t),t?this.registryEvent():this.unRegistryEvent()}registryEvent(){this.context.addEventListener("update",this.onUpdate)}unRegistryEvent(){this.context.removeEventListener("update",this.onUpdate)}onUpdate=()=>{if(this.graphic){let t=new Cp().setFromObject(this.graphic),{camera:n,container:{clientWidth:i,clientHeight:o}}=this.context,{min:a,max:c}=t,l=et(a,n,i,o),s=et(c,n,i,o);Xt(this.rect,l.x,s.y,Math.abs(s.x-l.x),Math.abs(s.y-l.y));let{x:u,y:h}=l,{x:f,y:d}=s,g=5,p=[{x:u-g,y:d-g},{x:f-g,y:d-g},{x:u-g,y:h-g},{x:f-g,y:h-g}];for(let S=0;S<p.length;S++)Xt(this.cornerRect[S],p[S].x,p[S].y,g*2,g*2);let m=4,v=(u+f)/2,b=(h+d)/2,y=[{x:v-m,y:d-m},{x:u-m,y:b-m},{x:f-m,y:b-m},{x:v-m,y:h-m}];for(let S=0;S<y.length;S++)Xt(this.centerRect[S],y[S].x,y[S].y,m*2,m*2)}else{Xt(this.rect,0,0,0,0);for(let t=0;t<this.cornerRect.length;t++)Xt(this.cornerRect[t],0,0,0,0),Xt(this.centerRect[t],0,0,0,0)}};selectGraphic(t){this.graphic=t}dispose(){super.dispose(),this.unRegistryEvent(),this.rect=null,this.cornerRect=[],this.centerRect=[]}};import{BufferGeometry as Ap,Color as Ii,ExtrudeGeometry as Pp,LineSegments as Dp,Mesh as Ip,Object3D as Rp,ShaderMaterial as Np,Vector3 as fa}from"three";import{mergeGeometries as da}from"three/examples/jsm/utils/BufferGeometryUtils";var Cr=class extends Rp{constructor(t,n){super();this.context=t;this.options=n;n.length&&this.init()}geometry;material;lineMaterial;lineGeometry;Mesh;LineMesh;initGeometry(){let t=this.options.map(n=>{let i=Se(n.geometry.coords[0],n.geometry.coords.slice(1));return new Pp(i,{steps:1,bevelEnabled:!1,depth:n.height,curveSegments:4})});this.geometry=da(t),t.forEach(n=>n.dispose())}initMaterial(){let t=`
39
+ `,h=new Nh({uniforms:{uColor:{value:new gr(e[0]).convertLinearToSRGB()},uGradualColor:{value:new gr(e[1]).convertLinearToSRGB()},center:{value:t},maxValue:{value:n},opacity:{value:i},uDirection:{value:o},uMax:{value:a},uMin:{value:c}},vertexShader:s,fragmentShader:u,side:Lh});return this.shaderMaterialMap.set(l,h),h}static createLine2MaterialMap({color:e,width:t,dashed:n,resolution:i}){let o=`${e}-${t}-${n}-${i.x}-${i.y}`;if(this.line2MaterialMap.has(o))return this.line2MaterialMap.get(o);let a=new Ph({color:parseInt(e.slice(1),16),dashed:n,linewidth:t,worldUnits:!0,dashSize:1,gapSize:3,dashScale:1,resolution:i});return this.line2MaterialMap.set(o,a),a}static dispose(){this.lineMaterialMap.forEach((e,t)=>{e.dispose()}),this.lineMaterialMap.clear(),this.meshStandardMaterialMap.forEach((e,t)=>{e.dispose()}),this.meshStandardMaterialMap.clear(),this.meshBasicMaterialMap.forEach((e,t)=>{e.dispose()}),this.meshBasicMaterialMap.clear(),this.shaderMaterialMap.forEach((e,t)=>{e.dispose()}),this.shaderMaterialMap.clear(),this.line2MaterialMap.forEach((e,t)=>{e.dispose()}),this.line2MaterialMap.clear()}};import{DataTexture as Oh,LinearFilter as aa,RGBAFormat as Fh}from"three";var We=class{static canvas=document.createElement("canvas");static ctx=this.canvas.getContext("2d");static cacheMap=new Map;static options={width:1024,height:64,font:"54px sans-serif",textBaseline:"hanging",lineWidth:12,fillStyle:"rgba(0,0,0,1)",strokeStyle:"white"};static getCanvas(){if(this.canvas)return this.canvas;{let e=document.createElement("canvas");return this.canvas=e,e}}static getCtx(){if(this.ctx)return this.ctx;let t=this.getCanvas().getContext("2d");return this.ctx=t,t}static getMergedOptions(e){return{...this.options,...e}}static setCtxStyle(e){let t=this.getCanvas(),n=this.getCtx();t.width=e.width,t.height=e.height,n.font=e.font,n.textBaseline=e.textBaseline,n.lineWidth=e.lineWidth,n.fillStyle=e.fillStyle,n.strokeStyle=e.strokeStyle}static getTextureByText(e,t){let n=this.getMergedOptions(t),i=yn({...n,text:e});if(this.cacheMap.has(i))return this.cacheMap.get(i);let o=this.getCanvas(),a=this.getCtx();a.clearRect(0,0,o.width,o.height),this.setCtxStyle(n);let c=Ss(e)?4:8;n.lineWidth&&a.strokeText(e,2,c),a.fillText(e,2,c);let l=Math.ceil(a.measureText(e).width);l=l%2===0?l:l+1,l+=2;let s=a.getImageData(0,0,l,64),u=new Oh(Uint8Array.from(s.data),l,64,Fh);return u.flipY=!0,u.minFilter=aa,u.magFilter=aa,this.cacheMap.set(i,u),u}static dispose(){this.ctx=null,this.canvas=null,this.cacheMap.forEach(e=>e.dispose()),this.cacheMap.clear()}};import{LinearFilter as ua,RGBAFormat as Uh,TextureLoader as Bh}from"three";var qe=class{static textureLoader=new Bh;static urlTextureMap=new Map;static getTextureByUrl(e){if(this.urlTextureMap.has(e))return this.urlTextureMap.get(e);let t=this.textureLoader.loadAsync(e);return t.then(n=>{n.format=Uh,n.magFilter=ua,n.minFilter=ua,n.colorSpace="srgb",this.urlTextureMap.set(e,n)}),this.urlTextureMap.set(e,t),t}static dispose(){this.urlTextureMap.forEach(e=>{e instanceof Promise?e.then(t=>t.dispose()):e.dispose()}),this.urlTextureMap.clear()}};import{GLTFLoader as zh}from"three/examples/jsm/loaders/GLTFLoader";var Xe=class{static loader=new zh;static modelMap=new Map;static async loadModel(e){if(this.modelMap.has(e)){let n=this.modelMap.get(e);if(n instanceof Promise)n.then(i=>({...i,scene:i.scene.clone()}));else return{...n,scene:n.scene.clone()}}let t=new Promise((n,i)=>{this.loader.load(e,o=>{n(o),this.modelMap.set(e,o)},void 0,i)});return this.modelMap.set(e,t),t.then(n=>({...n,scene:n.scene.clone()}))}static dispose(){this.modelMap.forEach(e=>{e instanceof Promise?e.then(t=>Jt(t.scene)):Jt(e.scene)}),this.modelMap.clear()}};import{cloneDeep as qh}from"lodash";var Pi={id:"",height:.1,airHeight:0,area:0,group:"",fillColor:"#EFF4FB",strokeColor:"#ffffff",fillOpacity:1,strokeOpacity:1,strokeWidth:1,doors:[],locked:!1,visible:!0,geometry:{type:"polygon",cds:[],coords:[],curveCpt:[],curveIndex:[]},layerType:"",zIndex:0,stroke:!0,deltaHeight:0,userData:{},gradualColor:[],renderType:"single",colorFactor:.9},Ft=class extends Gh{constructor(t,n){super();this.context=t;if(this.options=dn(qh({...Pi,...n}),this),this.options.geometry.type==="point"){let[i,o]=this.options.geometry.coords;return this.position.set(i,o,this.options.height+this.options.airHeight),this}this.initDoor(),this.init(),this.visible=this.options.visible,this.addEventListener("change-fillColor",({value:i})=>{this.initMaterial(),this.initMesh()}),this.addEventListener("change-fillOpacity",({value:i})=>{this.initMaterial(),this.initMesh()}),this.addEventListener("change-height",({value:i})=>{this.dispose(),this.init()}),this.addEventListener("change-strokeColor",({value:i})=>{this.options.stroke&&(this.initLineMaterial(),this.createBorder())}),this.addEventListener("change-strokeOpacity",({value:i})=>{this.options.stroke&&(this.initLineMaterial(),this.createBorder())}),this.addEventListener("change-airHeight",({value:i})=>{this.position.z=i}),this.addEventListener("change-visible",({value:i})=>{this.visible=i}),this.addEventListener("change-stroke",({value:i})=>{if(i){if(this.line)return;this.initLineGeometry(),this.initLineMaterial(),this.createBorder()}else this.line&&(this.remove(this.line),this.lineGeometry?.dispose())}),this.addEventListener("change-renderType",()=>{this.initMaterial(),this.initMesh()}),this.addEventListener("change-gradualColor",()=>{this.initMaterial(),this.initMesh()})}geometry;material;mesh;line;lineMaterial;lineGeometry;options;getCenter(){if(this.options.geometry.type==="point")return this.position.clone();let t=new ye,n=new mr;return n.setFromObject(this),n.getCenter(t),t}getSize(){if(this.options.geometry.type==="point")return new ye(0,0,0);let t=new mr,n=new ye;return t.setFromObject(this),t.getSize(n),n}getPosition(){let t=this.getCenter();return t.setZ(t.z+this.options.height/2),t}init(){this.geometry=this.initGeometry(),this.initMaterial(),this.initMesh(),this.mesh.position.z=this.options.airHeight+this.options.deltaHeight,this.options.stroke&&this.options.strokeOpacity!==0&&(this.initLineMaterial(),this.initLineGeometry(),this.createBorder())}initDoor(){if(this.options.doors?.length&&this.options.geometry.type==="polygon"){let t=this.options.geometry.coords[0];this.options.doors.forEach(n=>{let i=n.type==="single"?.5:1,o=.5,a=fn(t,n.coord),c=new Fe(...n.coord),l=new Fe(...t[a]).sub(new Fe(...n.coord)).normalize(),s=new Fe().addVectors(c,l.clone().multiplyScalar(i)),u=new Fe().addVectors(c,l.clone().multiplyScalar(-i)),h=new Fe(-l.y,l.x),f=new Fe().addVectors(s,h.clone().multiplyScalar(o));Ts([f.x,f.y],t)||(h.multiplyScalar(-1),f=new Fe().addVectors(s,h.clone().multiplyScalar(o)));let d=new Fe().addVectors(u,h.clone().multiplyScalar(o)),g=[[s.x,s.y],[f.x,f.y],[d.x,d.y],[u.x,u.y]];this.options.geometry.coords=[[...t.slice(0,a+1),...g,...t.slice(a+1)]],t=this.options.geometry.coords[0]})}}initGeometry(){let t=Se(this.options.geometry.coords[0],this.options.geometry.coords.slice(1));return new kh(t,{steps:1,bevelEnabled:!1,depth:this.options.height,curveSegments:4})}initSingleMaterial(){let t=Rt.createMeshBasicMaterial({color:this.options.fillColor,opacity:this.options.fillOpacity});if(this.options.height<=.1)return this.material=t,t;let n=Rt.createMeshBasicMaterial({color:Oe(this.options.fillColor),opacity:this.options.fillOpacity});return this.material=[t,n],[t,n]}getMaxAndMin(t,n){let i=new mr().setFromObject(this),o=t.clone().add(n.clone().multiplyScalar(1e3)),a=new la(o,n.clone().multiplyScalar(-1)),c=new ye;a.intersectBox(i,c);let l=t.clone().add(n.clone().multiplyScalar(-1e3)),s=new la(l,n.clone()),u=new ye;return s.intersectBox(i,u),{max:u,min:c}}initGradualMaterial(){let{max:t,min:n}=new mr().setFromObject(this),i=t.clone().sub(n),o=Math.max(i.x,i.y,i.z)/2,a=this.getPosition(),c=new ye(-1,.2,0).normalize(),{max:l,min:s}=this.getMaxAndMin(a,c),u=Rt.createShaderMaterial({gradualColor:this.options.gradualColor,center:this.getPosition(),maxValue:o,opacity:this.options.fillOpacity,direction:new ye(-1,.2,0),max:l,min:s});if(this.options.height<=.1)return this.material=u,u;let h=this.getCenter(),f=new ye(-1,.2,1).normalize(),{max:d,min:g}=this.getMaxAndMin(h,f),p=Rt.createShaderMaterial({gradualColor:[Oe(this.options.gradualColor[0],this.options.colorFactor),Oe(this.options.gradualColor[1],this.options.colorFactor)],center:this.getCenter(),maxValue:o,opacity:this.options.fillOpacity,direction:new ye(-1,.2,1),max:d,min:g});return this.material=[u,p],[u,p]}initMaterial(){return this.options.renderType==="gradual"?this.initGradualMaterial():this.initSingleMaterial()}initLineMaterial(){let t=Rt.createLineMaterial({color:this.options.strokeColor,opacity:this.options.strokeOpacity});return this.lineMaterial=t,t}initMesh(){this.mesh&&this.remove(this.mesh),this.mesh=new Vh(this.geometry,this.material),this.add(this.mesh)}getBorderPoints(){let t=[],n=this.options.height+this.options.deltaHeight,{coords:i}=this.options.geometry;for(let o=0;o<i.length;o++){let a=i[o];for(let c=0;c<a.length;c++){let l=a[c],s=c+1===a.length?a[0]:a[c+1];t.push(new ye(l[0],l[1],n)),t.push(new ye(s[0],s[1],n))}}return t}initLineGeometry(){this.lineGeometry&&this.lineGeometry.dispose();let t=this.getBorderPoints(),n=new Hh().setFromPoints(t);this.lineGeometry=n}createBorder(){this.line&&this.remove(this.line);let t=new Wh(this.lineGeometry,this.lineMaterial);return t.position.z=this.options.airHeight+.01,this.line=t,this.add(t),t}raycast(t){if(!this.visible||this.options.geometry.type==="point")return!1;this.mesh.updateMatrixWorld(!0);let n=t.intersectObject(this.mesh);if(n[0]){let{point:i,distance:o}=n[0];return{position:i,distance:o}}return!1}dispose(){this.geometry?.dispose(),this.line?.geometry.dispose(),this.clear()}};import{Object3D as Xh,PlaneGeometry as jh,Mesh as Yh,ShadowMaterial as $h,Color as Zh,DoubleSide as Kh}from"three";var yr=class extends Xh{directionalLight;plane;basicOpacity=.07;constructor(){super(),this.directionalLight=this.initLight(),this.initPlane()}initLight(){let e=bs(16777215,.5);return e.position.set(0,0,100),this.add(e),e}changeLightCamera(e){let t=e.x,n=e.y;this.directionalLight.shadow.camera.left=-t,this.directionalLight.shadow.camera.right=t,this.directionalLight.shadow.camera.top=n,this.directionalLight.shadow.camera.bottom=-n,this.directionalLight.shadow.camera.near=.5,this.directionalLight.shadow.camera.far=Math.max(t,n)}changeLightColor(e){this.directionalLight.color=new Zh(e)}setPosition(e){this.position.copy(e),this.directionalLight.position.set(-e.x/2,-e.y/2,100)}initPlane(e=1e3,t=1e3){let n=new jh(e,t),i=new $h({transparent:!0,opacity:0,side:Kh}),o=new Yh(n,i);return o.receiveShadow=!0,o.position.z=-10,this.add(o),this.plane=o,o}setTarget(e){this.directionalLight.target=e}transformOpacity(e){return e*this.basicOpacity}setOpacity(e){this.plane.material.opacity=this.transformOpacity(e)}dispose(){Jt(this,!0)}};import{EventDispatcher as ep,Vector3 as np}from"three";import{Box3 as ca,EventDispatcher as Jh,Vector3 as At}from"three";import{debounce as Qh}from"lodash";var tp={autoUpdate:!0,appendToBody:!1,autoChangePlacement:!1},vr=class extends Jh{constructor(t,n={}){super();this.context=t;this.options={...tp,...n},this.registryEvent(),this.div=this.initDiv(),this.options.appendToBody?document.body.appendChild(this.div):this.context.container.appendChild(this.div)}div;element;position=new At;clientPos={x:0,y:0};visible=!0;options;placement="top";observer=null;initObserver(){let t=new MutationObserver(Qh(()=>{this.div&&this.usePlacement()},100));t.observe(this.div,{childList:!0,subtree:!0,attributes:!0}),this.observer=t}getPlacementPosition(){if(this.element instanceof Ft&&this.element.options.geometry.type==="polygon"){let{max:o,min:a}=new ca().setFromObject(this.element),c=(o.x+a.x)/2,l=(o.y+a.y)/2;return{left:new At(a.x,l,o.z),leftTop:new At(a.x,o.y,o.z),top:new At(c,o.y,o.z),rightTop:new At(o.x,o.y,o.z),right:new At(o.x,l,o.z),rightBottom:new At(o.x,a.y,o.z),bottom:new At(c,a.y,o.z),leftBottom:new At(a.x,a.y,o.z),center:new At(c,l,o.z)}}let{x:t,y:n,z:i}=this.element?.getPosition?.()||this.position;return{left:new At(t,n,i),leftTop:new At(t,n,i),top:new At(t,n,i),rightTop:new At(t,n,i),right:new At(t,n,i),rightBottom:new At(t,n,i),bottom:new At(t,n,i),leftBottom:new At(t,n,i),center:new At(t,n,i)}}getPlacementScreenPosition(){let{width:t,height:n}=this.context.clientSize,i=this.getPlacementPosition();return Object.keys(i).reduce((o,a)=>{let{x:c,y:l}=et(i[a],this.context.camera,t,n);return o[a]={x:c,y:l},o},{})}checkOverflow(t,n){let{width:i,height:o}=this.context.clientSize;return n.x>0&&t.x<i&&n.y<o&&t.y>0}getPlacement(){let{clientWidth:t,clientHeight:n}=this.div,i=this.getPlacementScreenPosition(),o=t/2,a=n/2,c=[{type:"center",getBox(l,s){return{max:{x:o+l,y:s-n},min:{x:l-o,y:s}}}},{type:"left",getBox(l,s){return{max:{x:l,y:s-a},min:{x:l-t,y:s+a}}}},{type:"leftTop",getBox(l,s){return{max:{x:l,y:s-n},min:{x:l-t,y:s}}}},{type:"top",getBox(l,s){return{max:{x:l+o,y:s-n},min:{x:l-o,y:s}}}},{type:"rightTop",getBox(l,s){return{max:{x:l+t,y:s-n},min:{x:l,y:s}}}},{type:"right",getBox(l,s){return{max:{x:l+t,y:s-a},min:{x:l,y:s+a}}}},{type:"rightBottom",getBox(l,s){return{max:{x:l+t,y:s},min:{x:l,y:s+n}}}},{type:"bottom",getBox(l,s){return{max:{x:l+o,y:s},min:{x:l-o,y:s+n}}}},{type:"leftBottom",getBox(l,s){return{max:{x:l,y:s},min:{x:l-t,y:s+a}}}}];for(let l=0;l<c.length;l++){let s=c[l],u=i[s.type],{max:h,min:f}=s.getBox(u.x,u.y);if(this.checkOverflow(h,f))return{type:s.type,position:u}}return{type:"center",position:i.center}}initDiv(){let t=document.createElement("div");return t.style.position="absolute",t}usePlacement(){let t=this.getPlacement();this.div.className=`overlay_${t.type}`,this._updatePosition(t.position.x,t.position.y)}bindElement(t){this.element=t,this.options.autoChangePlacement&&this.initObserver(),this.onUpdate()}unBindElement(){this.element=void 0}setVisible(t,n="block"){t!==this.visible&&(this.div.style.display=t?n:"none",this.visible=t)}setOpacity(t){this.div.style.opacity=`${t}`}getPosition(){return this.element?typeof this.element.getPosition=="function"?this.element.getPosition():new ca().setFromObject(this.element).getCenter(new At):this.position}get withinDisplayRange(){let{x:t,y:n}=this.clientPos,{width:i,height:o}=this.context.clientSize;return t>=0&&t<=i&&n>=0&&n<=o}_updatePosition(t,n){this.clientPos={x:t,y:n};let{width:i,height:o,x:a,y:c}=this.context.clientSize;this.options.appendToBody&&(this.div.style.left=`${a}px`,this.div.style.top=`${c+o}px`),this.options.autoUpdate?this.div.style.transform=`translate3d(${t}px, ${-o+n}px, 0)`:this.dispatchEvent({type:"update-position",x:t,y:n,width:i,height:o})}updatePosition(t=!1){let n=this.getPosition(),{width:i,height:o}=this.context.clientSize,{x:a,y:c}=et(n,this.context.camera,i,o);this.clientPos.x===a&&this.clientPos.y===c&&!t||this._updatePosition(a,c)}onUpdate=()=>{this.options.autoChangePlacement?this.usePlacement():this.updatePosition()};registryEvent(){this.context.addEventListener("update",this.onUpdate)}unRegistryEvent(){this.context.removeEventListener("update",this.onUpdate)}dispose(){this.unRegistryEvent(),this.unBindElement(),this.observer?.disconnect(),this.div?.remove(),this.div=null}};var rp={texts:[{text:""}],level:1,icon_position:"bottom",collision_enable:!0,opacity:1,id:"",position:{x:0,y:0,z:0},icon_opacity:1,icon_border:{color:"#586EE0",width:0},background:"",collision_hide_icon:!0,built_in:!1,box_only_icon:!1},rn=class extends ep{constructor(t,n){super();this.context=t;this.options=dn({...rp,...n},this),this.position.set(n.position?.x||0,n.position?.y||0,n.position?.z||0),this.overlay=new vr(this.context,{autoUpdate:!1}),this.overlay.addEventListener("update-position",({x:i,y:o,height:a})=>{this.overlay.div.style.transform=`translate3d(calc(${i}px - 50%), calc(${-a+o}px - ${this.options.icon&&this.options.icon_position!=="center"?"100%":"50%"}), 0)`}),this.overlay.bindElement(this),this.registryEvent(),this.initDiv(),this.addEventListener("change-icon",({value:i})=>{i?this.img?this.img.setAttribute("src",i):(this.addIcon(),this._changePosition()):(this.img&&this.div.removeChild(this.img),this.img=void 0,this._changePosition(),this.resetSize())}),this.addEventListener("change-texts",({value:i})=>{let o=this.textDiv;if(o){let a=this.initText();this.div.replaceChild(a,o)}else this.addText();this.resetSize()}),this.addEventListener("change-opacity",({value:i})=>{this.overlay.setOpacity(i)}),this.addEventListener("change-icon_size",({value:i})=>{this.img&&(this.img.style.width=`${i?.[0]||32}px`,this.img.style.height=`${i?.[1]||32}px`,this.resetSize())}),this.addEventListener("change-icon_opacity",({value:i})=>{this.img&&(this.img.style.opacity=`${i}`)}),this.addEventListener("change-icon_border",({value:i})=>{this.img&&(this.img.style.border=`${i.width}px solid ${i.color}`)}),this.addEventListener("change-background",({value:i})=>{this.div.style.background=i})}div;textDiv;img;overlay;options;visible=!0;size={width:0,height:0};position=new np;userData={};showTextStatus=!0;disposed=!1;get withinDisplayRange(){return this.overlay.withinDisplayRange}async resetSize(){if(await As(),!this.disposed)if(this.options.box_only_icon){if(!this.img)return;let{width:t,height:n}=this.img.getBoundingClientRect();this.size={width:t+2,height:n+2}}else{let{width:t,height:n}=this.div.getBoundingClientRect();this.size={width:t+2,height:n+2}}}renderHelperBox(){}get clientPos(){return this.overlay.clientPos}initDiv(){let t=document.createElement("div");return this.div=t,this.addText(),this.options.icon&&this.addIcon(),t.style.fontSize="12px",t.style.textShadow="#fff 1px 0 0, #fff 0 1px 0, #fff -1px 0 0, #fff 0 -1px 0",t.style.display="flex",t.style.flexDirection="column",t.style.justifyContent="center",t.style.alignItems="center",t.style.padding="4px",this.overlay.setOpacity(this.options.opacity),this.overlay.div.style.pointerEvents="none",this.overlay.div.style.userSelect="none",this.overlay.div.appendChild(t),this.resetSize(),t}addIcon(){if(!this.img){let t=this.initIcon();this.options.icon_position==="top"?this.div.firstChild?this.div.insertBefore(t,this.div.firstChild):this.div.appendChild(t):this.div.appendChild(t)}}addText(){let t=this.initText();this.options.icon_position==="top"?this.div.appendChild(t):this.div.firstChild?this.div.insertBefore(t,this.div.firstChild):this.div.appendChild(t)}getPosition(){return this.position}initText(){let t=document.createElement("div");return t.appendChild(this.createTextFragment()),t.style.textAlign="center",this.textDiv=t,t}createTextFragment(){let t=document.createDocumentFragment();return this.options.texts.forEach(n=>{let i=document.createElement("div");if(i.style.whiteSpace="nowrap",n.styles)for(let[o,a]of Object.entries(n.styles))i.style[o]=a;i.textContent=n.text,t.appendChild(i)}),t}initIcon(){let t=document.createElement("img");return t.setAttribute("src",this.options.icon),t.style.width=`${this.options.icon_size?.[0]||32}px`,t.style.height=`${this.options.icon_size?.[1]||32}px`,t.style.opacity=`${this.options.icon_opacity}px`,t.style.borderRadius="50%",this.options.icon_border.width&&(t.style.border=`${this.options.icon_border.width}px solid ${this.options.icon_border.color}`),t.onload=()=>{this.resetSize()},this.img=t,t}_changePosition=()=>{this.overlay.updatePosition(!0)};registryEvent(){}unRegistryEvent(){}setVisible(t){t!==this.visible&&(this.visible=t,this.changeOverlayVisible(t))}changeOverlayVisible(t){if(!(t===this.overlay.visible&&this.options.collision_hide_icon))if(this.options.collision_hide_icon)this.overlay.visible=t,this.overlay.div.style.visibility=t?"visible":"hidden";else{if(this.showTextStatus===t)return;this.textDiv.style.visibility=t?"visible":"hidden",this.showTextStatus=t}}parentSetVisible(t){this.visible&&this.changeOverlayVisible(t)}getBox(t=this.context.config.poi.boxScale){let{width:n,height:i}=this.size,o=n*t,a=i*t,{x:c,y:l}=this.overlay.clientPos;return{left:c-o/2,right:c+o/2,top:this.options.icon?l-a:l-a/2,bottom:this.options.icon?l:l+a/2}}getOriginBox(){return this.getBox(1)}isContain(t,n){if(!this.overlay.visible||!this.visible)return!1;let i=this.getOriginBox();return t>=i.left&&t<=i.right&&n>=i.top&&n<=i.bottom}dispose(){this.unRegistryEvent(),this.div=null,this.textDiv=null,this.img=void 0,this.overlay.dispose(),this.disposed=!0}};import{Box3 as Sr,Object3D as Di,Vector3 as Mr}from"three";import{MeshBasicMaterial as ip,Object3D as op,PlaneGeometry as sp,Texture as ap,DoubleSide as up,Mesh as lp,Matrix3 as ha,Vector2 as cp}from"three";import{create as hp}from"@mars3d/heatmap.js";import{featureCollection as pp,point as fp,bbox as dp,center as gp}from"@turf/turf";var _r=class extends op{constructor(t){super();this.context=t;this.div=document.createElement("div")}heatmap;div;plane;clearHeatmap(){this.div.firstChild&&this.div.removeChild(this.div.firstChild),this.heatmap=void 0}loadData(t){this.clearHeatmap();let{width:n,height:i,leftTop:o,center:a}=this.getBox(t);this.heatmap=hp({width:n,height:i,container:this.div,...this.context.config.heatMap}),this.heatmap.setData(this.transformData(t,o)),this.initPlane(n,i),this.position.set(a[0],a[1],this.position.z)}initPlane(t,n){this.plane&&this.remove(this.plane);let i=new sp(t,n),o=new ap(this.div.firstChild);o.needsUpdate=!0;let a=new ip({transparent:!0,side:up,map:o});a.needsUpdate=!0,this.plane=new lp(i,a),this.add(this.plane)}getTransMatrix({x:t,y:n}){return new ha().makeScale(1,-1).multiply(new ha().makeTranslation(0-t,0-n))}transformData(t,n){let i=this.getTransMatrix(n);return{data:t.data.map(a=>{let c=new cp(a.x,a.y).applyMatrix3(i);return{x:c.x,y:c.y,value:a.value}}),max:t.max,min:t.min}}getBox(t){let n=pp(t.data.map(s=>fp([s.x,s.y]))),i=dp(n),o=i[2]-i[0],a=i[3]-i[1],c={x:i[0],y:i[3]},l=gp(n);return{width:o,height:a,leftTop:c,center:l.geometry.coordinates}}dispose(){this.div=null,this.heatmap=void 0}};import{Object3D as mp,Vector3 as yp}from"three";var xr=class extends mp{constructor(t,n){super();this.context=t;this.options=n;this.position.copy(n.position||new yp(0,0,0)),this.loadModel()}model=null;async loadModel(){let t=await Xe.loadModel(this.options.modelUrl);t.scene.rotation.set(Math.PI/2,Math.PI/2,0),this.add(t.scene),this.model=t}dispose(){Jt(this),this.model=null}};import{Box3 as _p,Vector3 as xp}from"three";import{Object3D as vp}from"three";var Ht=class extends vp{constructor(t){super();this.context=t}dispose(){Jt(this),this.children.forEach(t=>t.dispose?.()),this.clear()}};var Er=class extends Ht{graphicMap=new Map;constructor(e){super(e)}getCenter(){return new _p().setFromObject(this).getCenter(new xp)}createGraphic(e){let t=new Ft(this.context,e);return this.add(t),this.graphicMap.set(e.id,t),t}removeGraphic(e){this.remove(e),this.graphicMap.delete(e.options.id),e.dispose()}removeGraphicById(e){this.graphicMap.has(e)&&this.removeGraphic(this.graphicMap.get(e))}getGraphicByNodeId(e){return this.graphicMap.get(e)||null}getGraphicByRaycaster(e){let t={distance:1e4,graphic:null,position:null},n=this.children.reduce((i,o)=>{if(o instanceof Ft){let a=o.raycast(e);if(a){let{distance:c}=a;if(c<i.distance)return{distance:a.distance,position:a.position,graphic:o}}return i}else return i},t);return n===t?{graphics:[],position:null}:{graphics:[n.graphic],position:n.position}}};import{debounce as Ep}from"lodash";var _n=class extends Ht{pois=[];debounceCollisionDetection;timer=new Gt;constructor(e){super(e),this.registryEvent(),this.debounceCollisionDetection=Ep(this.collisionDetection,10)}clear(e=!1){return this.pois.forEach(t=>{t.options.built_in&&!e||t.dispose()}),this.pois=e?[]:this.pois.filter(t=>t.options.built_in),this}createPoi(e){let t=new rn(this.context,e);return this.pushPoi(t),t.addEventListener("change-level",()=>this.changePoiLevelOrCollisionEnable(t)),t.addEventListener("change-collision_enable",()=>this.changePoiLevelOrCollisionEnable(t)),Promise.resolve().then(()=>{this.debounceCollisionDetection()}),t}changePoiLevelOrCollisionEnable(e){let t=this.pois.findIndex(n=>n===e);t!==-1&&(this.pois.splice(t,1),this.pushPoi(e))}removePoi(e){let t=this.pois.findIndex(n=>n===e);t!==-1&&(this.pois.splice(t,1),e.dispose())}removePoiById(e){let t=this.pois.find(n=>n.options.id===e);t&&this.removePoi(t)}getPoiById(e){return this.pois.find(n=>n.options.id===e)||null}pushPoi(e){if(!e.options.collision_enable){this.pois.unshift(e);return}if(e.options.level===0){this.pois.push(e);return}for(let t=0;t<this.pois.length;t++){let n=this.pois[t];if(n.options.collision_enable&&n.options.level<=e.options.level){this.pois.splice(t,0,e);return}}this.pois.push(e)}getPoiByDeviceXy(e,t){return this.pois.filter(i=>i instanceof rn&&i.isContain(e,t))}onUpdate=()=>{this.timer.requestAnimationFrame(()=>{this.collisionDetection()})};collisionDetection(){let e=[];this.pois.filter(n=>n.visible&&n.withinDisplayRange).forEach((n,i)=>{let{left:o,right:a,top:c,bottom:l}=n.getBox();if(i===0||!n.options.collision_enable){e.push({left:o,right:a,top:c,bottom:l}),n.parentSetVisible(!0);return}let s=e.some(u=>u.left<a&&u.right>o&&u.top<l&&u.bottom>c);n.parentSetVisible(!s),s||e.push({left:o,right:a,top:c,bottom:l})})}registryEvent(){this.context.addEventListener("update",this.onUpdate)}unRegistryEvent(){this.context.removeEventListener("update",this.onUpdate)}dispose(){this.timer.dispose(),this.pois.forEach(e=>e.dispose()),this.pois.length=0,this.debounceCollisionDetection=()=>{},super.dispose(),this.unRegistryEvent()}};import{debounce as bp}from"lodash";import{Vector2 as Sp,Vector3 as Mp}from"three";var br=class extends Ht{pois=[];debounceCollisionDetection;timer=new Gt;constructor(e){super(e),this.registryEvent(),this.debounceCollisionDetection=bp(this.collisionDetection,10)}clear(){return this.pois.forEach(e=>{e.dispose()}),this.pois=[],this}createPoi(e){let t=new ne(this.context,e);return this.pushPoi(t),t.addEventListener("change-level",()=>this.changePoiLevelOrCollisionEnable(t)),t.addEventListener("change-collision_enable",()=>this.changePoiLevelOrCollisionEnable(t)),Promise.resolve().then(()=>{this.debounceCollisionDetection()}),t}changePoiLevelOrCollisionEnable(e){let t=this.pois.findIndex(n=>n===e);t!==-1&&(this.pois.splice(t,1),this.pushPoi(e))}removePoi(e){let t=this.pois.findIndex(n=>n===e);t!==-1&&(this.remove(e),this.pois.splice(t,1),e.dispose())}removePoiById(e){let t=this.pois.find(n=>n.options.id===e);t&&this.removePoi(t)}getPoiById(e){return this.pois.find(n=>n.options.id===e)||null}pushPoi(e){if(this.add(e),!e.options.collision_enable){this.pois.unshift(e);return}if(e.options.level===0){this.pois.push(e);return}for(let t=0;t<this.pois.length;t++){let n=this.pois[t];if(n.options.collision_enable&&n.options.level<=e.options.level){this.pois.splice(t,0,e);return}}this.pois.push(e)}getPoiByDeviceXy(e,t){let n=new Sp(e,t);return this.pois.filter(o=>o instanceof ne&&o.canSelect&&o.box.containsPoint(n))}changeParkingSpaceVisibleByZoom=()=>{let e=this.parent?.parent;if(e&&e instanceof Ce){let{clientSize:{width:t,height:n}}=this.context,{max:i,min:o}=e.box,c=Math.min(t/(i.x-o.x),n/(i.y-o.y))*(i.x-o.x)/45;this.pois.filter(l=>l.userData.type==="parkingSpace").map(l=>{let s=this.context.camera.zoom>=c;l.visible=s,s||l.parentSetVisible(s)})}};onUpdate=()=>{this.timer.requestAnimationFrame(()=>{this.collisionDetection()})};collisionDetection(){let e=[],{camera:t}=this.context;t.updateMatrixWorld();let n=a=>a<=1&&a>=-1,i=t.projectionMatrix.clone();i.multiply(t.matrixWorldInverse),this.pois.filter(a=>{if(a.visible){let c=new Mp().setFromMatrixPosition(a.matrixWorld);return c.applyMatrix4(i),a.screenPosition=c,n(c.x)&&n(c.y)&&n(c.z)}return!1}).forEach((a,c)=>{let l=a.getBox(a.screenPosition);if(c===0||!a.options.collision_enable){e.push(l),a.parentSetVisible(!0);return}let s=e.some(u=>u.intersectsBox(l));a.parentSetVisible(!s),s||e.push(l)})}registryEvent(){this.context.addEventListener("update",this.onUpdate),this.context.addEventListener("control-zoom-change",this.changeParkingSpaceVisibleByZoom)}unRegistryEvent(){this.context.removeEventListener("update",this.onUpdate),this.context.removeEventListener("control-zoom-change",this.changeParkingSpaceVisibleByZoom)}dispose(){this.timer.dispose(),this.pois.forEach(e=>e.dispose()),this.pois.length=0,this.debounceCollisionDetection=()=>{},super.dispose(),this.unRegistryEvent()}};var Ce=class extends Di{constructor(t){super();this.context=t;this.groundLayer=new Ht(this.context),this.graphicLayer=new Er(this.context),this.poiLayer=new _n(this.context),this.poiLayer2=new br(this.context),this.wallLayer=new Ht(this.context),this.textureLayer=new Ht(this.context),this.glbModelLayer=new Ht(this.context),this.laneLayer=new Ht(this.context),this.mergeGraphicLayer=new Ht(this.context),this.textTextureLayer=new Ht(this.context),this.groundUpper.add(this.graphicLayer),this.groundUpper.add(this.poiLayer),this.groundUpper.add(this.poiLayer2),this.groundUpper.add(this.wallLayer),this.groundUpper.add(this.textureLayer),this.groundUpper.add(this.glbModelLayer),this.groundUpper.add(this.laneLayer),this.groundUpper.add(this.mergeGraphicLayer),this.groundUpper.add(this.textTextureLayer),this.add(this.groundUpper),this.add(this.groundLayer),this.add(this.models)}graphicLayer;poiLayer;poiLayer2;wallLayer;textureLayer;glbModelLayer;laneLayer;mergeGraphicLayer;textTextureLayer;grounds=new Set;groundLayer;shadow=new yr;heatmap;groundUpper=new Di;models=new Di;modelMap=new Map;groundMaxHeight=0;name="";key="";box=new Sr;getPosition(){return this.box.getCenter(new Mr)}createGround(t){let n=new Ft(this.context,t);this.addGrounds([n])}addGrounds(t){t.forEach(n=>{this.grounds.has(n)||(n.mesh.castShadow=!0,this.grounds.add(n),this.groundLayer.add(n))}),this.changeGroundMaxHeight()}changeGroundMaxHeight(){let t=Array.from(this.grounds);this.groundMaxHeight=this.grounds.size>0?Math.max(...t.map(n=>n.options.height+n.options.airHeight+n.options.deltaHeight)):0,this.groundUpper.position.z=this.groundMaxHeight}get hasElement(){return!!(this.grounds.size||this.graphicLayer.children.length)}getCenter(){return new Sr().setFromObject(this).getCenter(new Mr)}addModel(t){let n=new xr(this.context,t);return this.models.add(n),this.modelMap.set(t.id,n),n}addShadow(){let t=new Sr().setFromObject(this.groundUpper),n=t.getCenter(new Mr),i=t.getSize(new Mr);this.shadow.setPosition(n),this.shadow.changeLightCamera(i)}addGraphic(t){return this.graphicLayer.createGraphic(t)}addPoi(t){return this.poiLayer.createPoi(t)}addHeatmap(t){this.heatmap||(this.heatmap=new _r(this.context),this.add(this.heatmap)),this.heatmap.loadData(t);let n=new Sr().setFromObject(this.graphicLayer);return this.heatmap.position.setZ(n.max.z),this.heatmap}removeHeatMap(){this.heatmap&&(this.remove(this.heatmap),this.heatmap.dispose(),this.heatmap=void 0)}setShadowOpacity(t){this.shadow.setOpacity(t)}setShadowVisible(t){this.shadow.visible=t}updateBox(){this.box.setFromObject(this)}dispose(){console.log("floor dispose",this.name),this.shadow.dispose(),this.groundLayer.dispose(),this.graphicLayer.dispose(),this.poiLayer.dispose(),this.poiLayer2.dispose(),this.wallLayer.dispose(),this.textureLayer.dispose(),this.glbModelLayer.dispose(),this.laneLayer.dispose(),this.mergeGraphicLayer.dispose(),this.textTextureLayer.dispose(),this.grounds.forEach(t=>t.dispose()),this.heatmap?.dispose(),this.groundUpper.clear(),this.models.children.forEach(t=>t.dispose()),this.models.clear(),this.modelMap.clear(),this.clear()}};import{EventDispatcher as wp,Vector3 as Tp}from"three";var ce=class extends wp{constructor(t){super();this.context=t;this.svg=Cs(`${t.container.clientWidth}`,`${t.container.clientHeight}`),t.container.appendChild(this.svg),this._registryEvent()}points=[];svg;enable=!0;_onResize=({width:t,height:n})=>{this.svg&&(this.svg.setAttribute("width",`${t}`),this.svg.setAttribute("height",`${n}`))};_registryEvent(){this.context.addEventListener("resize",this._onResize)}_unRegistryEvent(){this.context.removeEventListener("resize",this._onResize)}setEnable(t){this.enable=t,t?this.svg.style.display="block":this.svg.style.display="none"}getIntersectByPointerEvent(t){let{camera:n,renderer:i}=this.context,{offsetX:o,offsetY:a}=t,{clientWidth:c,clientHeight:l}=i.domElement,s=o/c*2-1,u=1-a/l*2;return new Tp(s,u,0).unproject(n)}getSvgCoordinate(t){let{camera:n,container:i}=this.context;return et(t,n,i.clientWidth,i.clientHeight)}dispose(){this._unRegistryEvent(),this.context.container.removeChild(this.svg),this.svg=null}};var wr=class extends ce{constructor(t){super(t);this.context=t;let{config:{svg:{circle:n,line:i}}}=t;this.circles=[Gn(n.radius,n.fill),Gn(n.radius,n.fill)],this.line=fr(i.stroke),this.svg.appendChild(this.circles[0]),this.svg.appendChild(this.circles[1]),this.svg.appendChild(this.line),this.registryEvent()}circles;line;setEnable(t){super.setEnable(t),t?this.registryEvent():this.unRegistryEvent()}registryEvent(){this.context.container.addEventListener("pointerenter",this.onPointermove),this.context.container.addEventListener("pointermove",this.onPointermove),this.context.container.addEventListener("pointerleave",this.onPointerleave),this.context.container.addEventListener("pointerdown",this.onPointerdown),this.context.addEventListener("update",this.onUpdate)}unRegistryEvent(){this.context.container.removeEventListener("pointerenter",this.onPointermove),this.context.container.removeEventListener("pointermove",this.onPointermove),this.context.container.removeEventListener("pointerleave",this.onPointerleave),this.context.container.removeEventListener("pointerdown",this.onPointerdown),this.context.removeEventListener("update",this.onUpdate)}onUpdate=()=>{if(this.points[0]){let t=this.getSvgCoordinate(this.points[0]);en(this.circles[0],t.x,t.y),me(this.line,t)}if(this.points[1]){let t=this.getSvgCoordinate(this.points[1]);en(this.circles[1],t.x,t.y),me(this.line,void 0,t)}};onPointermove=t=>{this.points.length===1&&(this.line.style.display="block",me(this.line,void 0,{x:t.offsetX,y:t.offsetY}))};onPointerleave=()=>{this.points[1]||(this.line.style.display="none")};onPointerdown=t=>{if(this.points[1])return;let n=this.getIntersectByPointerEvent(t);if(n){let{offsetX:i,offsetY:o}=t,a=this.circles[this.points.length];en(a,i,o),this.points.length||me(this.line,{x:i,y:o},{x:i,y:o}),this.addPoint(n)}};addPoint(t){if(this.points.push(t),this.points.length>=2){let n=this.calculatedDistance();this.dispatchEvent({type:"distance",distance:n})}}calculatedDistance(){let[{x:t,y:n},{x:i,y:o}]=this.points;return Math.sqrt((i-t)**2+(o-n)**2)}dispose(){super.dispose(),this.unRegistryEvent(),this.line=null,this.circles=[]}};var Tr=class extends ce{circles=[];lines=[];isClose=!1;constructor(e){super(e),this.registryEvent()}setEnable(e){super.setEnable(e),e?this.registryEvent():this.unRegistryEvent()}get lastLine(){return this.lines.slice(-1)[0]}addCircle(e){this.circles.push(e),this.svg.appendChild(e)}addLine(e){this.lines.push(e),this.svg.appendChild(e)}registryEvent(){this.context.container.addEventListener("pointerenter",this.onPointermove),this.context.container.addEventListener("pointermove",this.onPointermove),this.context.container.addEventListener("pointerleave",this.onPointerleave),this.context.container.addEventListener("pointerdown",this.onPointerdown),this.context.addEventListener("update",this.onUpdate)}unRegistryEvent(){this.context.container.removeEventListener("pointerenter",this.onPointermove),this.context.container.removeEventListener("pointermove",this.onPointermove),this.context.container.removeEventListener("pointerleave",this.onPointerleave),this.context.container.removeEventListener("pointerdown",this.onPointerdown),this.context.removeEventListener("update",this.onUpdate)}onUpdate=()=>{this.points.length&&this.points.forEach((e,t)=>{let n=this.getSvgCoordinate(e);this.circles[t]&&en(this.circles[t],n.x,n.y),t!==0&&me(this.lines[t-1],void 0,n),this.lines[t]&&me(this.lines[t],n)})};onPointermove=e=>{!this.lastLine||this.isClose||(this.lastLine.style.display="block",me(this.lastLine,void 0,{x:e.offsetX,y:e.offsetY}))};onPointerleave=()=>{this.isClose||(this.lastLine.style.display="none")};onPointerdown=e=>{if(this.isClose)return;let t=this.getIntersectByPointerEvent(e);if(t){let{offsetX:n,offsetY:i}=e;this.checkAdsorb(n,i)?(this.isClose=!0,this.addPoint(this.points[0])):this.addPoint(t);let{circle:{fill:o,radius:a},line:{stroke:c}}=this.context.config.svg;if(!this.isClose){let l=Gn(a,o);en(l,n,i),this.addCircle(l)}if(this.lines.length&&me(this.lastLine,void 0,{x:n,y:i}),!this.isClose){let l=fr(c);me(l,{x:n,y:i},{x:n,y:i}),this.addLine(l)}}};checkAdsorb(e,t){if(this.points.length<3)return!1;let n=this.circles[0],i=+n.getAttribute("cx"),o=+n.getAttribute("cy");return Math.sqrt((e-i)**2+(t-o)**2)<=5}addPoint(e){if(this.points.push(e),this.isClose){let t=this.calculatedArea();this.dispatchEvent({type:"area",area:t})}}calculatedArea(){let e=this.points.map(i=>[i.x,i.y]),t=0,n=e.length;for(let i=0;i<n;i++){let o=(i+1)%n;t+=e[i][0]*e[o][1]-e[o][0]*e[i][1]}return Math.abs(t/2)}dispose(){super.dispose(),this.unRegistryEvent(),this.lines=[],this.circles=[]}};import{Box3 as Cp}from"three";var pa=class extends ce{constructor(t){super(t);this.context=t;let{config:{svg:{line:n}}}=t;this.rect=He(n.stroke,"transparent"),this.svg.appendChild(this.rect);for(let i=0;i<4;i++)this.cornerRect[i]=He(n.stroke,"#ffffff"),this.centerRect[i]=He(n.stroke,"#ffffff"),this.svg.appendChild(this.cornerRect[i]),this.svg.appendChild(this.centerRect[i]);this.registryEvent()}rect;cornerRect=[];centerRect=[];graphic;setEnable(t){super.setEnable(t),t?this.registryEvent():this.unRegistryEvent()}registryEvent(){this.context.addEventListener("update",this.onUpdate)}unRegistryEvent(){this.context.removeEventListener("update",this.onUpdate)}onUpdate=()=>{if(this.graphic){let t=new Cp().setFromObject(this.graphic),{camera:n,container:{clientWidth:i,clientHeight:o}}=this.context,{min:a,max:c}=t,l=et(a,n,i,o),s=et(c,n,i,o);Xt(this.rect,l.x,s.y,Math.abs(s.x-l.x),Math.abs(s.y-l.y));let{x:u,y:h}=l,{x:f,y:d}=s,g=5,p=[{x:u-g,y:d-g},{x:f-g,y:d-g},{x:u-g,y:h-g},{x:f-g,y:h-g}];for(let S=0;S<p.length;S++)Xt(this.cornerRect[S],p[S].x,p[S].y,g*2,g*2);let m=4,v=(u+f)/2,b=(h+d)/2,y=[{x:v-m,y:d-m},{x:u-m,y:b-m},{x:f-m,y:b-m},{x:v-m,y:h-m}];for(let S=0;S<y.length;S++)Xt(this.centerRect[S],y[S].x,y[S].y,m*2,m*2)}else{Xt(this.rect,0,0,0,0);for(let t=0;t<this.cornerRect.length;t++)Xt(this.cornerRect[t],0,0,0,0),Xt(this.centerRect[t],0,0,0,0)}};selectGraphic(t){this.graphic=t}dispose(){super.dispose(),this.unRegistryEvent(),this.rect=null,this.cornerRect=[],this.centerRect=[]}};import{BufferGeometry as Ap,Color as Ii,ExtrudeGeometry as Pp,LineSegments as Dp,Mesh as Ip,Object3D as Rp,ShaderMaterial as Np,Vector3 as fa}from"three";import{mergeGeometries as da}from"three/examples/jsm/utils/BufferGeometryUtils";var Cr=class extends Rp{constructor(t,n){super();this.context=t;this.options=n;n.length&&this.init()}geometry;material;lineMaterial;lineGeometry;Mesh;LineMesh;initGeometry(){let t=this.options.map(n=>{let i=Se(n.geometry.coords[0],n.geometry.coords.slice(1));return new Pp(i,{steps:1,bevelEnabled:!1,depth:n.height,curveSegments:4})});this.geometry=da(t),t.forEach(n=>n.dispose())}initMaterial(){let t=`
40
40
  varying vec3 vPosition; // \u7528\u4E8E\u4F20\u9012\u9876\u70B9\u7684\u4F4D\u7F6E\u7ED9\u7247\u6BB5\u7740\u8272\u5668
41
41
  uniform float maxZ; // \u58F0\u660E\u4E00\u4E2Auniform\u53D8\u91CF
42
42
  uniform vec3 uColor;
@@ -101,7 +101,7 @@ var rh=Object.create;var _s=Object.defineProperty;var ih=Object.getOwnPropertyDe
101
101
  gl_FragColor = vec4(uColor2, uOpacity); // \u5176\u4ED6\u9762\u989C\u8272\uFF09
102
102
  }
103
103
  }
104
- `,i=-1/0,o=this.geometry.getAttribute("position");if(o)for(let c=0;c<o.count;c++){let l=o.getZ(c);l>i&&(i=l)}let a=new af({uniforms:{maxZ:{value:i},uColor:{value:new va(this.options[0].fillColor).convertLinearToSRGB()},uColor2:{value:new va(Oe(this.options[0].fillColor)).convertLinearToSRGB()},uOpacity:{value:this.options[0].fillOpacity}},vertexShader:t,fragmentShader:n,transparent:!0});this.material=a}initLineMaterial(){let t=Rt.createLineMaterial({color:this.options[0].strokeColor,opacity:this.options[0].strokeOpacity});return this.lineMaterial=t,t}initMesh(){this.mesh&&this.remove(this.mesh),this.mesh=new rf(this.geometry,this.material),this.add(this.mesh)}getBorderPoints(){let t=[],n=this.options[0].height+this.options[0].deltaHeight;return this.options.map(i=>{let{coords:o}=i.geometry;for(let a=0;a<o.length;a++){let c=o[a];for(let l=0;l<c.length;l++){let s=c[l],u=l+1===c.length?c[0]:c[l+1];t.push(new ya(s[0],s[1],n)),t.push(new ya(u[0],u[1],n))}}}),t}initLineGeometry(){this.lineGeometry&&this.lineGeometry.dispose();let t=this.getBorderPoints(),n=new of().setFromPoints(t);this.lineGeometry=n}createBorder(){this.line&&this.remove(this.line);let t=new sf(this.lineGeometry,this.lineMaterial);return t.position.z=.01,this.line=t,this.add(t),t}dispose(){this.geometry.dispose(),this.material.dispose(),this.line?.geometry.dispose(),this.clear()}};import{Box2 as Ri,Object3D as lf,Sprite as _a,SpriteMaterial as xa,Vector2 as Ir}from"three";import{cloneDeep as cf}from"lodash";var hf={text:"",icon:"",icon_size:[18,18],level:1,collision_enable:!0,opacity:1,id:"",position:{x:0,y:0,z:0},text_font_size:14,icon_rotate:0},ne=class extends lf{constructor(t,n){super();this.context=t;this.options=dn(cf({...hf,...n}),this),this.position.set(this.options.position.x,this.options.position.y,this.options.position.z),this.registryEvent(),this.init()}options;textAspect=1;spriteText;spriteIcon;box=new Ri;boxHelper;_initIconPromise=null;get durIconAndText(){return this.options.icon&&this.options.text?2:0}get offset(){return this.options.icon&&this.options.text?0:.5}get iconWidth(){return this.options.icon?this.options.icon_size[0]:0}get iconHeight(){return this.options.icon?this.options.icon_size[1]:0}get textWidth(){return this.options.text?this.options.text_font_size*this.textAspect:0}get textHeight(){return this.options.text?this.options.text_font_size:0}get deltaZ(){return .1}get canSelect(){return this.visible&&(this.spriteIcon?this.spriteIcon.visible:!0)&&(this.spriteText?this.spriteText.visible:!0)}registryEvent(){this.context.addEventListener("control-zoom-change",this._initScale),this.addEventListener("change-icon",async({value:t})=>{this._initIconPromise&&await this._initIconPromise,this.spriteIcon&&(this.remove(this.spriteIcon),this.spriteIcon=void 0),await this.initIcon(),this.initSize(),this._initScale({zoom:this.context.camera.zoom})}),this.addEventListener("change-text",({value:t})=>{this.spriteText&&(this.remove(this.spriteText),this.spriteText=void 0),this.initText(),this.initSize(),this._initScale({zoom:this.context.camera.zoom})}),this.addEventListener("change-icon_rotate",({value:t})=>{this.spriteIcon&&(this.spriteIcon.material.rotation=t/180*Math.PI)}),this.addEventListener("change-icon_size",({value:t})=>{this.spriteIcon&&this._initScale({zoom:this.context.camera.zoom})})}unRegistryEvent(){this.context.removeEventListener("control-zoom-change",this._initScale)}async initIcon(){if(this.options.icon)return this._initIconPromise=new Promise(async t=>{let n=await qe.getTextureByUrl(this.options.icon),i=new _a(new xa({map:n,transparent:!0,alphaTest:.2,depthTest:!1,rotation:this.options.icon_rotate/180*Math.PI}));i.visible=!1,i.renderOrder=1e5,n.needsUpdate=!0,this.add(i),this.spriteIcon=i,t(i)}).then(()=>{this._initIconPromise=null})}initText(){if(this.options.text){let t=We.getTextureByText(this.options.text);this.textAspect=t.image.width/t.image.height;let n=new _a(new xa({map:t,transparent:!0,alphaTest:.2,depthTest:!1}));n.visible=!1,n.renderOrder=100001,t.needsUpdate=!0,this.spriteText=n,this.add(n)}}initSize(){let t=0,n=0,{icon:i,text:o}=this.options;i?o?(t=0,n=t*(this.iconHeight/this.textHeight)-this.iconHeight/this.textHeight-this.durIconAndText/this.textHeight):(t=.5,n=0):o?(n=.5,t=0):(t=0,n=0),this.spriteIcon?.center.set(.5,t),this.spriteText?.center.set(.5,n)}async init(){await this.initIcon(),this.initText(),this.initSize(),this._initScale({zoom:this.context.camera.zoom})}_initScale=({zoom:t})=>{if(this.spriteText){let n=this.textHeight/t;this.spriteText.scale.set(this.textAspect*n,n,.1)}this.spriteIcon&&this.spriteIcon?.scale.set(this.options.icon_size[0]/t,this.options.icon_size[1]/t,.1),this.resetZ()};resetZ(){let t=this.deltaZ;this.spriteIcon&&(this.spriteIcon.position.z=t),this.spriteText&&(this.spriteText.position.z=t)}getBox(t){let{clientSize:{width:n,height:i}}=this.context,o=n*(t.x+1)/2,a=i*(-t.y+1)/2;a+=this.offset*(this.iconHeight+this.durIconAndText+this.textHeight);let c=this.iconWidth/2,l=new Ri(new Ir(o-c,a-this.iconHeight),new Ir(o+c,a)),s=this.textWidth/2,u=new Ri(new Ir(o-s,a-this.textHeight-this.durIconAndText-this.iconHeight),new Ir(o+s,a-this.iconHeight-this.durIconAndText));return this.box=u.union(l),this.box}renderBoxHelper(){if(!this.boxHelper){let t=document.createElement("div");t.style.position="fixed",t.style.border="1px solid red",t.style.pointerEvents="none",this.boxHelper=t,this.context.container.appendChild(t)}this.boxHelper.style.left=this.box.min.x+"px",this.boxHelper.style.top=this.box.min.y+"px",this.boxHelper.style.width=this.box.max.x-this.box.min.x+"px",this.boxHelper.style.height=this.box.max.y-this.box.min.y+"px"}parentSetVisible(t){this.spriteText&&(this.spriteText.visible=t),this.spriteIcon&&(this.spriteIcon.visible=t),this.boxHelper&&(this.boxHelper.style.display=t?"block":"none")}dispose(){this.unRegistryEvent(),this.spriteText=void 0}};import{DoubleSide as pf,Matrix4 as Ea,Mesh as ff,MeshBasicMaterial as df,Object3D as gf,PlaneGeometry as mf}from"three";import{mergeGeometries as yf}from"three/examples/jsm/utils/BufferGeometryUtils";var vf={airHeight:0,deltaHeight:0,height:0,geometry:{cds:[],type:"polygon",coords:[],curveCpt:[],curveIndex:[]},texts:[],fillColor:"#ffffff",fillOpacity:0,strokeColor:"#ffffff",strokeOpacity:0,secondHeight:0,secondRotate:0,center_x:0,center_y:0},Rr=class extends gf{constructor(t,n){super();this.context=t;this.options=n.map(i=>({...vf,...i})),this.init()}options;mesh;async init(){let t=this.options.map(c=>We.getTextureByText(c.texts[0],{fillStyle:bi(c.fillColor,c.fillOpacity),strokeStyle:bi(c.strokeColor,c.strokeOpacity),lineWidth:6,font:"54px sans-serif"})),n=t.map((c,l)=>{let s=this.options[l],{width:u,height:h}=c.image,f=u/h,d=s.secondHeight*f,g=new mf(d,s.secondHeight),p=new Ea().makeTranslation(s.center_x,s.center_y,s.airHeight+s.deltaHeight+s.height).multiply(new Ea().makeRotationZ(s.secondRotate));return g.applyMatrix4(p),g}),i=yf(n,!0);n.forEach(c=>c.dispose());let o=t.map(c=>{let l=new df({map:c,alphaTest:1,side:pf});return c.needsUpdate=!0,l}),a=new ff(i,o);this.mesh=a,this.position.z+=.004,this.add(a)}dispose(){this.mesh?.geometry.dispose(),(this.mesh?.material).forEach(t=>t.dispose()),this.clear()}};import{Frustum as _f}from"three";var Nr=class extends le{startPoint;endPoint;rect;frustum=new _f;constructor(e){super(e);let{config:{selectBox:{fill:t,stroke:n}}}=e;this.rect=He(n,t),this.svg.appendChild(this.rect),this.registryEvent()}setEnable(e){super.setEnable(e),Xt(this.rect,0,0,0,0),e?this.registryEvent():(this.startPoint=void 0,this.unRegistryEvent())}onPointerDown=e=>{if(!this.enable)return;let t=this.getIntersectByPointerEvent(e);t&&(this.startPoint=t),this.endPoint=void 0};onPointerMove=e=>{if(!this.enable||!this.startPoint)return;let t=this.getIntersectByPointerEvent(e);t&&(this.endPoint=t)};onPointerUp=e=>{if(!this.enable)return;let t=this.getIntersectByPointerEvent(e);t&&(this.endPoint=t),this.doSelect(),this.startPoint=void 0};onUpdate=()=>{if(this.startPoint){let e=this.getSvgCoordinate(this.startPoint),t={...e};this.endPoint&&(t=this.getSvgCoordinate(this.endPoint));let n={x:Math.min(e.x,t.x),y:Math.min(e.y,t.y)},i=Math.abs(t.x-e.x),o=Math.abs(t.y-e.y);Xt(this.rect,n.x,n.y,i,o)}else Xt(this.rect,0,0,0,0)};registryEvent(){this.context.container.addEventListener("pointerdown",this.onPointerDown),this.context.container.addEventListener("pointermove",this.onPointerMove),this.context.container.addEventListener("pointerup",this.onPointerUp),this.context.addEventListener("update",this.onUpdate)}unRegistryEvent(){this.context.container.removeEventListener("pointerdown",this.onPointerDown),this.context.container.removeEventListener("pointermove",this.onPointerMove),this.context.container.removeEventListener("pointerup",this.onPointerUp),this.context.removeEventListener("update",this.onUpdate)}doSelect(){if(this.startPoint&&this.endPoint){if(this.startPoint.distanceTo(this.endPoint)<.1)return;let{context:{camera:t,container:{clientWidth:n,clientHeight:i}}}=this,o=et(this.startPoint,t,n,i),a=et(this.endPoint,t,n,i),c={x:Math.min(o.x,a.x),y:Math.min(o.y,a.y)},l={x:Math.max(o.x,a.x),y:Math.max(o.y,a.y)},s=this.searchMapInFrustum(c,l);this.dispatchEvent({type:"selected",list:s})}}searchMapInFrustum(e,t){let{context:n}=this;return n.currentFloor?.graphicLayer.children.filter(i=>i instanceof Ft&&this.searchChildInFrustum(i,e,t))||[]}searchChildInFrustum(e,t,n){let{context:{camera:i,container:{clientWidth:o,clientHeight:a}}}=this;if(!e)return!1;if(!e.mesh){let f=e.getPosition();if(f){let d=et(f,i,o,a);return Ve(d,t,n)}return!1}e.mesh.geometry.boundingBox||e.mesh.geometry.computeBoundingBox();let c=e.mesh.geometry.boundingBox;if(!c)return!1;let{min:l,max:s}=c,u=et(l,i,o,a),h=et(s,i,o,a);return!(!Ve(u,t,n)||!Ve(h,t,n))}dispose(){this.unRegistryEvent()}};var Lr=class extends xf{constructor(t){super();this.context=t;this.boxSelection=new Nr(t),this.boxSelection.setEnable(!1),this.registryEvent()}_list=new Set;boxSelection;prevPanStatus;prevRotateStatus;downPoint=null;isMultipleSelect=!1;get list(){return this._list}enableBoxSelection(){this.isMultipleSelect||!this.context.config.enableBoxSelect||(this.isMultipleSelect=!0,this.boxSelection.setEnable(!0),this.prevPanStatus=this.context.control.enablePan,this.prevRotateStatus=this.context.control.enableRotate,this.context.control.enablePan=!1,this.context.control.enableRotate=!1)}disableBoxSelection(){this.isMultipleSelect&&(this.isMultipleSelect=!1,this.boxSelection.setEnable(!1),this.context.control.enablePan=!!this.prevPanStatus,this.context.control.enableRotate=!!this.prevRotateStatus)}onPointerDown=t=>{this.downPoint={x:t.offsetX,y:t.offsetY}};onPointerUp=t=>{if(!this.downPoint)return;let{offsetX:n,offsetY:i}=t,{x:o,y:a}=this.downPoint;if(Math.sqrt((o-n)**2+(a-i)**2)>3)return;let{graphics:c}=this.context.getGraphicsByDeviceXy(n,i),l=new Set(c.map(u=>u.options.id));this.context.getPoisByDeviceXy(n,i).forEach(u=>{if(!l.has(u.options.id)){let h=this.context.currentFloor?.graphicLayer.graphicMap.get(u.options.id)||null;h&&h.options.geometry.type==="point"&&(c.push(h),l.add(u.options.id))}}),(gn?t.metaKey:t.ctrlKey)||this._list.clear(),c.forEach(u=>this._list.add(u)),this.selectEnd(),this.downPoint=null};onPointerOut=t=>{this.disableBoxSelection()};onKeyDown=t=>{mn(t.key)&&this.enableBoxSelection()};onKeyUp=t=>{mn(t.key)&&this.disableBoxSelection()};onBoxSelected=({list:t})=>{this._list.clear(),t.forEach(n=>{this._list.add(n)}),this.selectEnd()};selectEnd(){this.dispatchEvent({type:"select",graphics:[...this._list],isMultipleSelect:this.isMultipleSelect})}registryEvent(){this.context.container.addEventListener("pointerdown",this.onPointerDown),this.context.container.addEventListener("pointerup",this.onPointerUp),this.context.container.addEventListener("pointerout",this.onPointerOut),this.context.container.addEventListener("pointercancel",this.onPointerOut),window.addEventListener("keydown",this.onKeyDown),window.addEventListener("keyup",this.onKeyUp),this.boxSelection.addEventListener("selected",this.onBoxSelected)}unRegistryEvent(){this.context.container.removeEventListener("pointerdown",this.onPointerDown),this.context.container.removeEventListener("pointerup",this.onPointerUp),this.context.container.removeEventListener("pointerout",this.onPointerOut),this.context.container.removeEventListener("pointercancel",this.onPointerOut),window.removeEventListener("keydown",this.onKeyDown),window.removeEventListener("keyup",this.onKeyUp),this.boxSelection.removeEventListener("selected",this.onBoxSelected)}clear(){this._list.clear()}remove(t){this._list.delete(t)}dispose(){this.unRegistryEvent()}};import{EventDispatcher as Ef,Vector2 as bf}from"three";var Or=class extends Ef{constructor(t){super();this.context=t;this.registryEvent()}curGraphics=new Set;timer=new Gt;graphicTimerMap=new Map;onPointerMove=({graphics:t,pois:n,e:i})=>{let o=n.map(s=>this.context.currentFloor?.graphicLayer.graphicMap.get(s.options.id)).filter(s=>s&&s.options.geometry.type==="point");if(!t.length&&!o.length&&this.curGraphics.size){this.curGraphics.clear(),this.handleHoverGraphicsChange();return}let{time:a}=this.context.config.hover,c=new Set;if(o.length){let s,u=1e4;o.forEach(h=>{let f=n.find(d=>d.options.id===h.options.id);if(f instanceof rn){let{x:d,y:g}=f.clientPos,p=Math.sqrt((d-i.offsetX)**2+(g-i.offsetY)**2);p<u&&(u=p,s=h)}else if(f instanceof ne){let{x:d,y:g}=f.box.getCenter(new bf),p=Math.sqrt((d-i.offsetX)**2+(g-i.offsetY)**2);p<u&&(u=p,s=h)}}),c.add(s)}c.size||t.forEach(s=>c.add(s)),c.forEach(s=>{if(this.graphicTimerMap.get(s)||this.curGraphics.has(s))return;let u=this.timer.setTimeout(()=>{this.curGraphics.add(s),this.graphicTimerMap.delete(s),this.timer.clearTimeout(u),this.handleHoverGraphicsChange()},a);this.graphicTimerMap.set(s,u)}),this.graphicTimerMap.forEach((s,u)=>{c.has(u)||(this.timer.clearTimeout(s),this.graphicTimerMap.delete(u))});let l=this.curGraphics.size;this.curGraphics.forEach(s=>{c.has(s)||this.curGraphics.delete(s)}),l!==this.curGraphics.size&&this.handleHoverGraphicsChange()};onPointerLevel=()=>{this.curGraphics.clear(),this.handleHoverGraphicsChange()};onBodyPointerMove=t=>{if(this.curGraphics.size){let n=this.context.container.getBoundingClientRect();(t.clientX<n.left||t.clientX>n.right||t.clientY<n.top||t.clientY>n.bottom)&&this.onPointerLevel()}};handleHoverGraphicsChange(t=this.curGraphics){this.dispatchEvent({type:"hover-change",graphics:Array.from(t)})}registryEvent(){this.context.addEventListener("pointer-over",this.onPointerMove),this.context.addEventListener("pointer-move",this.onPointerMove),this.context.addEventListener("pointer-level",this.onPointerLevel),document.body.addEventListener("pointermove",this.onBodyPointerMove)}unRegistryEvent(){this.context.removeEventListener("pointer-over",this.onPointerMove),this.context.removeEventListener("pointer-move",this.onPointerMove),this.context.removeEventListener("pointer-level",this.onPointerLevel),document.body.removeEventListener("pointermove",this.onBodyPointerMove)}dispose(){this.unRegistryEvent(),this.timer.dispose()}};import{Box3 as Sf,Vector3 as Fr}from"three";var Ur=class{constructor(e){this.context=e;this.registryEvent(),this.changePrevCamera()}prevCamera={position:new Fr,zoom:1,target:new Fr};enable=!0;box=new Sf;updateBox(){this.box.setFromObject(this.context.scene)}setEnable(e){this.enable=e,e?this.registryEvent():this.unRegistryEvent()}changePrevCamera(){this.prevCamera={position:this.context.camera.position.clone(),zoom:this.context.camera.zoom,target:this.context.control.target.clone()}}backToPrevCamera(){this.setEnable(!1),this.context.camera.position.copy(this.prevCamera.position),this.context.camera.zoom=this.prevCamera.zoom,this.context.control.target.copy(this.prevCamera.target),this.context.control.update(),this.setEnable(!0)}registryEvent(){this.context.addEventListener("control-change",this.onCameraChange)}unRegistryEvent(){this.context.removeEventListener("control-change",this.onCameraChange)}getCurFloorScreenPosition(){if(!this.context.scene.children.filter(m=>m instanceof Ce).length)return null;let t=this.box,{camera:n,clientSize:{width:i,height:o}}=this.context,{min:a,max:c}=t,l=et(a,n,i,o),s=et(c,n,i,o),u=et(new Fr(a.x,c.y,c.z),n,i,o),h=et(new Fr(c.x,a.y,a.z),n,i,o),f=Math.min(l.x,s.x,u.x,h.x),d=Math.max(l.x,s.x,u.x,h.x),g=Math.min(l.y,s.y,u.y,h.y),p=Math.max(l.y,s.y,u.y,h.y);return{left:f,right:d,top:g,bottom:p}}checkDistanceToScreenEdge({left:e,right:t,top:n,bottom:i}){let{width:o,height:a}=this.context.clientSize,[c,l,s,u]=this.context.config.cameraBound.padding,h=t>=u,f=o-e>=l,d=a-n>=s,g=i>=c;return h&&f&&d&&g}onCameraChange=()=>{let e=this.getCurFloorScreenPosition();if(e){let{left:t,right:n,top:i,bottom:o}=e;this.checkDistanceToScreenEdge({left:t,right:n,top:i,bottom:o})?this.changePrevCamera():this.backToPrevCamera()}};dispose(){this.unRegistryEvent()}};import{Vector3 as ba}from"three";import{MapControls as Mf}from"three/examples/jsm/controls/MapControls";import{Tween as Br,Group as wf}from"@tweenjs/tween.js";var zr=class extends Mf{constructor(t,n,i){super(n,i);this.context=t;this.camera=n;this.domElement=i;this.enableDamping=!1,this.zoomSpeed=.5,this.prevCameraZoom=n.zoom,this.registryEvent()}prevCameraZoom=1;tweenGroup=new wf;offsetY=0;registryEvent(){this.addEventListener("change",()=>{let t=this.camera.zoom;t!==this.prevCameraZoom&&(this.prevCameraZoom=t,this.dispatchEvent({type:"change-zoom",zoom:t}))}),this.context.addEventListener("update",this.tweenUpdate)}tweenUpdate=()=>{this.tweenGroup.update()};setPolarAngle(t,n=!1){let{maxPolarAngle:i,minPolarAngle:o}=this,a=i===o;(n||t<=i&&t>=o)&&(this.maxPolarAngle=t,this.minPolarAngle=t,this.update()),a||(this.maxPolarAngle=i,this.minPolarAngle=o)}async setPolarAngleByDuration(t,n=!1,i=500){return i<=0?this.setPolarAngle(t,n):Le(new Promise(o=>{let a={polar:this.getPolarAngle()},c={polar:t},l=new Br(a,this.tweenGroup).to(c,i).onUpdate(()=>{this.setPolarAngle(a.polar,n)}).onComplete(()=>{this.enabled=!0,this.tweenGroup.remove(l),o(!0)}).onStart(()=>{this.enabled=!1}).start()}),i+500)}setAzimuthalAngle(t,n){let{maxAzimuthAngle:i,minAzimuthAngle:o,maxPolarAngle:a,minPolarAngle:c}=this,l=i===o;if(n||t<=i&&t>=o){this.maxAzimuthAngle=t,this.minAzimuthAngle=t;let s=this.getPolarAngle();this.maxPolarAngle=s,this.minPolarAngle=s,this.update(),this.maxPolarAngle=a,this.minPolarAngle=c}l||(this.maxAzimuthAngle=i,this.minAzimuthAngle=o)}setAzimuthalAngleDuration(t,n=!1,i=500){return i<=0?this.setAzimuthalAngle(t,n):Le(new Promise(o=>{let a={azimuthal:this.getAzimuthalAngle()},c={azimuthal:t},l=new Br(a,this.tweenGroup).to(c,i).onUpdate(()=>{this.setAzimuthalAngle(a.azimuthal,n)}).onComplete(()=>{this.enabled=!0,this.tweenGroup.remove(l),o(!0)}).onStart(()=>{this.enabled=!1}).start()}),i+500)}getCameraLookAt(){return new ba().subVectors(this.target,this.camera.position)}async setCameraPositionByTarget(t,n){let i=this.target.clone(),o=this.getCameraLookAt();if(!n){this.camera.position.copy(t.clone().sub(o)),this.target.copy(t.clone()),this.update();return}return Le(new Promise(a=>{let c=new Br(i,this.tweenGroup).to(t,n).onUpdate(()=>{this.camera.position.copy(i.clone().sub(o)),this.target.copy(i.clone()),this.update()}).onComplete(()=>{this.tweenGroup.remove(c),this.camera.position.copy(t.clone().sub(o)),this.target.copy(t.clone()),this.update(),this.enabled=!0,a(!0)}).onStart(()=>{this.enabled=!1}).start()}),n+500)}setZoom(t,n,i=!1){let{minZoom:o,maxZoom:a}=this;(i||t>=o&&t<=a)&&(this.camera.position.copy(n.clone().sub(this.getCameraLookAt())),this.target.copy(n),this.camera.zoom=t,this.update())}setZoomByDuration(t,n,i=!1,o=500){let a=this.getCameraLookAt(),c={zoom:this.camera.zoom,target:this.target.clone()};return o?Le(new Promise(l=>{let s=new Br(c,this.tweenGroup).to({zoom:t,target:n},o).onUpdate(()=>{this.setZoom(c.zoom,c.target,i)}).onComplete(()=>{this.tweenGroup.remove(s),this.enabled=!0,l(!0)}).onStart(()=>{this.enabled=!1}).start()}),o+500):this.setZoom(t,n,i)}setTargetByOffset(t,n=this.target.clone()){if(!t)return;let i=new ba;i.setFromMatrixColumn(this.camera.matrix,1),i.normalize(),i.multiplyScalar(t/this.camera.zoom),n.add(i),this.setCameraPositionByTarget(n,0)}clearTween(){this.tweenGroup.getAll().forEach(t=>t.stop()),this.tweenGroup.removeAll()}dispose(){this.clearTween()}};import{EventDispatcher as Tf,PCFSoftShadowMap as Cf,WebGLRenderer as Af}from"three";var Gr=class extends Af{event=new Tf;scene;camera;enable=!0;timer=new Gt;constructor(e){super({antialias:!0,alpha:!0,...e}),this.autoClear=!0,this.setPixelRatio(window.devicePixelRatio),this.shadowMap.enabled=!0,this.shadowMap.autoUpdate=!0,this.shadowMap.type=Cf}setCameraAndScene(e,t){this.scene=e,this.camera=t}autoRender(){this.scene&&this.camera&&this.enable&&(this.event.dispatchEvent({type:"update"}),this.render(this.scene,this.camera)),this.timer.requestAnimationFrame(()=>{this.autoRender()})}pauseRender(){this.enable=!1}continueRender(){this.enable=!0}addEventListener(e,t){this.event.addEventListener(e,t)}removeEventListener(e,t){this.event.removeEventListener(e,t)}dispose(){this.timer.dispose(),this.enable=!1,super.dispose()}};import{Scene as Pf}from"three";var kr=class extends Pf{constructor(){super()}};import{OrthographicCamera as Df}from"three";var Vr=class extends Df{constructor(e,t){super(-e/2,e/2,t/2,-t/2,-1e3,5e3),this.up.set(0,0,1),this.position.set(0,0,100),this.lookAt(0,0,0)}};var Hr=class extends If{constructor(t,n){super();this.container=t;this.config=n;this.container.style.position="relative",this.container.style.overflow="hidden",this.init(),this.selection=new Lr(this),this.hoverHelper=new Or(this),this.resizeClientSize(),this.registryEvent()}scene=new kr;renderer=new Gr;camera;control;lights=Es();currentFloor;selection;hoverHelper;basicRatio;cameraBound;clientSize={width:0,height:0,x:0,y:0};renderRf=0;resizeClientSize(){let{x:t,y:n,width:i,height:o}=this.container.getBoundingClientRect();this.clientSize={width:i||this.container.clientWidth,height:o||this.container.clientHeight,x:t,y:n}}init(){let{clientWidth:t,clientHeight:n}=this.container;this.camera=new Vr(t,n),this.renderer.setSize(t,n),this.renderer.setCameraAndScene(this.scene,this.camera),this.renderer.autoRender(),this.control=new zr(this,this.camera,this.renderer.domElement),this.control.maxPolarAngle=this.config.control.maxPolar,this.container.appendChild(this.renderer.domElement),this.scene.add(this.lights),this.basicRatio=this.getRatio(),this.control.addEventListener("change",()=>{this.dispatchEvent({type:"change-ratio",px:(this.basicRatio||0)*this.camera.zoom}),this.dispatchEvent({type:"control-change"})}),this.control.addEventListener("change-zoom",({zoom:i})=>{this.dispatchEvent({type:"control-zoom-change",zoom:i})}),this.renderer.addEventListener("update",()=>{this.dispatchEvent({type:"update"})}),this.cameraBound=new Ur(this)}getRatio(t=new on(0,0,0),n=new on(100,0,0)){let{clientWidth:i,clientHeight:o}=this.container,a=et(t,this.camera,i,o),c=et(n,this.camera,i,o);return Math.ceil(Math.sqrt((c.x-a.x)**2+(c.y-a.y)**2))}changeAmbientLightColor(t){this.lights.children.forEach(n=>{n instanceof Ff&&(n.color=new Of(t))})}switchFloor(t){this.currentFloor&&(this.scene.remove(this.currentFloor),this.currentFloor.dispose()),this.currentFloor=t,this.scene.add(t);let n=t.getCenter();n&&(this.lights.position.x=n.x,this.lights.position.y=n.y),this.cameraBound.updateBox()}onWindowResize=()=>{let{container:t,camera:n,renderer:i}=this,{clientWidth:o,clientHeight:a}=t;o=Math.max(1,o),a=Math.max(1,a),n.left=-o/2,n.right=o/2,n.top=a/2,n.bottom=-a/2,n.updateProjectionMatrix(),i.setSize(o,a),this.resizeClientSize(),this.dispatchEvent({type:"resize",width:o,height:a})};onClick=t=>{let{graphics:n,position:i}=this.getGraphicsByDeviceXy(t.offsetX,t.offsetY);n.length&&this.dispatchEvent({type:"graphic-click",graphics:n,position:i});let o=this.getPoisByDeviceXy(t.offsetX,t.offsetY);o.length&&this.dispatchEvent({type:"poi-click",pois:o})};getGraphicsByDeviceXy(t,n){let i=new xn;i.x=t/this.clientSize.width*2-1,i.y=n/this.clientSize.height*-2+1;let o=new Nf;return o.setFromCamera(i,this.camera),o.ray.origin.sub(o.ray.direction.clone().multiplyScalar(100)),this.currentFloor?.graphicLayer.getGraphicByRaycaster(o)||{graphics:[],position:null}}getPoisByDeviceXy(t,n){let i=this.currentFloor?.poiLayer.getPoiByDeviceXy(t,n),o=this.currentFloor?.poiLayer2.getPoiByDeviceXy(t,n);return(i||[]).concat(o||[])}onPointerover=t=>{let{graphics:n,position:i}=this.getGraphicsByDeviceXy(t.offsetX,t.offsetY),o=this.getPoisByDeviceXy(t.offsetX,t.offsetY);this.dispatchEvent({type:"pointer-over",e:t,graphics:n,pois:o,position:i})};onPointermove=t=>{let{graphics:n,position:i}=this.getGraphicsByDeviceXy(t.offsetX,t.offsetY),o=this.getPoisByDeviceXy(t.offsetX,t.offsetY);this.dispatchEvent({type:"pointer-move",e:t,graphics:n,pois:o,position:i})};onPointerleave=t=>{this.dispatchEvent({type:"pointer-level"})};onSelectionSelect=({graphics:t,isMultipleSelect:n})=>{this.dispatchEvent({type:"select-graphic",graphics:t,isMultipleSelect:n})};onHoverChange=({graphics:t})=>{this.dispatchEvent({type:"hover",graphics:t})};registryEvent(){window.addEventListener("resize",this.onWindowResize),this.container.addEventListener("click",this.onClick),this.container.addEventListener("pointerover",this.onPointerover),this.container.addEventListener("pointermove",this.onPointermove),this.container.addEventListener("pointerleave",this.onPointerleave),this.container.addEventListener("pointercancel",this.onPointerleave),this.container.addEventListener("pointerout",this.onPointerleave),this.selection.addEventListener("select",this.onSelectionSelect),this.hoverHelper.addEventListener("hover-change",this.onHoverChange)}unRegistryEvent(){window.removeEventListener("resize",this.onWindowResize),this.container.removeEventListener("click",this.onClick),this.container.removeEventListener("pointerover",this.onPointerover),this.container.removeEventListener("pointermove",this.onPointermove),this.container.removeEventListener("pointerleave",this.onPointerleave),this.container.removeEventListener("pointercancel",this.onPointerleave),this.container.removeEventListener("pointerout",this.onPointerleave),this.selection.removeEventListener("select",this.onSelectionSelect),this.hoverHelper.removeEventListener("hover-change",this.onHoverChange)}setPolarAngle(t,n=500){return this.control.setPolarAngleByDuration(t,!0,n)}setAzimuthalAngle(t,n=500){return this.control.setAzimuthalAngleDuration(t,!0,n)}getCameraLookAt(){return this.control.getCameraLookAt()}setZoom(t,n,i=500){return this.control.setZoomByDuration(t,n,!0,i)}getFitCameraToObjectZoom(t,n=[20,20,20,20],i=500,o=!0){let[a,c,l,s]=n,{clientSize:{width:u,height:h}}=this,f=this.control.getPolarAngle();o&&this.setPolarAngle(0,0);let d=new Lf().setFromObject(t);this.setPolarAngle(f,0);let{max:g,min:p}=d,m=new on(p.x,g.y,g.z),v=new on(g.x,g.y,g.z),b=new on(g.x,p.y,p.z),y=new on(p.x,p.y,p.z),S=et(m,this.camera,u,h),x=et(v,this.camera,u,h),_=et(y,this.camera,u,h),M=et(b,this.camera,u,h),C=new Rf().setFromPoints([new xn(S.x,S.y),new xn(x.x,x.y),new xn(_.x,_.y),new xn(M.x,M.y)]).getSize(new xn),P=(u-c-s)/C.x,D=(h-a-l)/C.y,R=Math.min(P,D),W=new on((g.x+p.x)/2,(g.y+p.y)/2,(g.z+p.z)/2);return{zoom:R*this.camera.zoom,center:W}}fitCameraToObject(t,n=[20,20,20,20],i=500,o=!0){let{zoom:a,center:c}=this.getFitCameraToObjectZoom(t,n,i,o);return this.setZoom(a,c,i)}getFitCameraToGroundZoom(t=[20,20,20,20],n=500,i=!0){if(this.currentFloor&&this.currentFloor.hasElement)return this.getFitCameraToObjectZoom(this.currentFloor.groundUpper,t,n,i).zoom}fitCameraToGround(t=[20,20,20,20],n=500,i=!0){return this.currentFloor&&this.currentFloor.hasElement?this.fitCameraToObject(this.currentFloor.groundUpper,t,n,i):Promise.resolve(!1)}async setCameraPosition(t,n){return this.control.setCameraPositionByTarget(t,n)}pauseRender(){this.renderer.pauseRender()}continueRender(){this.renderer.continueRender()}dispose(){this.control.dispose(),this.cameraBound.dispose(),this.selection.dispose(),this.hoverHelper.dispose(),this.unRegistryEvent(),this.renderer.domElement.remove(),this.renderer.dispose(),this.lights.children.forEach(t=>t.dispose()),Jt(this.scene)}};import{merge as Uf}from"lodash";var Bf={apiDomain:"",apiInfo:{},apiPath:{floorGraphic:"/api/inception-map/floor/get",floorRange:"/api/inception-map/range/get",equipmentList:"/api/inception-map/equipment/get",roadNetwork:"/api/inception-map/road_network/get"},enableBoxSelect:!0,resizeObserver:!1,initTransToMark:!1,heatMap:{radius:50,gradient:{0:"#8F9FCD",.5:"#6284FF",1:"#F95D5D"}},useFloorCache:!0,control:{maxPolar:1.2,defaultPolar:1.1,defaultAzimuthal:0},defaultPadding:[20,20,20,20],svg:{circle:{radius:"2",fill:"#1CADFF"},line:{stroke:"#1CADFF"}},selectBox:{stroke:"#1CADFF",fill:"rgba(28, 173, 255, 0.3)"},hover:{time:100},ground:{color:"#F6F6F6",opacity:1,height:.001,stroke:!1,strokeColor:"#E6E6E6",strokeOpacity:1},markGraphic:{color:"#EEF0F3",opacity:1,height:.001,stroke:!1,strokeColor:"#000",strokeOpacity:1},graphic:{fillOpacity:1},cameraBound:{padding:[150,150,150,150]},poi:{boxScale:1}};function Sa(r){return Uf({},Bf,r)}import{debounce as kf}from"lodash";var Vf=(t=>(t[t.D2=0]="D2",t[t.D3=1.1]="D3",t))(Vf||{}),Ma=class extends zf{constructor(t,n={}){super();this.container=t;this.config=Sa(n),this.context=new Hr(t,this.config),this.registryEvent()}config;context;polarKeys=[];azimuthalKeys=[];svgLine;svgPolygon;basicZoom=1;prevCameraZoom=1;type="2d";currentBuildGround=null;observe=null;buildingCenter=[0,0];timer=new Gt;plugins=[];changeBuildingCenter(t,{brand:n,project:i}){let o=t?hr(t.info.geometry.cds[0]):[0,0];this.buildingCenter=o,this.dispatchEvent({type:"center-change",center:o,project:i,brand:n})}use(t){t.bmap=this,this.plugins.push(t)}unUse(t){this.plugins=this.plugins.filter(n=>n!==t)}triggerHooks(t,n){this.dispatchEvent({type:t,data:n})}switchFloorByFloor(t,n=t.graphicLayer.children){this.triggerHooks("switch_floor_before",{curFloor:t,graphics:n}),this.context.switchFloor(t),this.initialFloorCamera(),this.triggerHooks("switch_floor_after",{curFloor:t,graphics:n})}initialFloorCamera(){this.context.cameraBound.setEnable(!1),this.context.control.minZoom=0,this.context.control.maxZoom=1/0,this.context.camera.zoom=1,this.context.setAzimuthalAngle(this.config.control.defaultAzimuthal,0),this.context.setPolarAngle(this.config.control.defaultPolar,0),this.context.fitCameraToGround(void 0,0);let t=this.context.camera.zoom;this.context.control.minZoom=t,this.context.control.maxZoom=t*30,this.type==="3d"&&this.context.fitCameraToGround(this.config.defaultPadding,0,!1),this.basicZoom=this.context.camera.zoom,this.context.control.addEventListener("change",this.onControlChange),this.onControlChange(),this.context.cameraBound.setEnable(!0),this.context.cameraBound.changePrevCamera()}onControlChange=()=>{let{camera:{zoom:t}}=this.context;t!==this.prevCameraZoom&&(this.dispatchEvent({type:"zoom-change",basicZoom:this.basicZoom,cameraZoom:this.context.camera.zoom}),this.prevCameraZoom=t)};addModel(t,n){if(t.options.geometry.type==="polygon"){let i=this.context.currentFloor?.addModel({...n,position:t.getPosition().setZ(.1),id:t.options.id});if(i){let{facilityAngle:o=0,facilityXScale:a=1,facilityYScale:c=1}=t.options.userData;i.rotateZ((180-o)/180*Math.PI),i.scale.set(a,c,1)}}}addHeatmap(t){return this.context.currentFloor?.addHeatmap(t)}getLegacyToGraphicMap(){return this.context.currentFloor?.userData.legacyToGraphicMap||new Map}getFloorAllGraphics(){return this.context.currentFloor?.graphicLayer.children.filter(t=>t instanceof Ft)||[]}createGraphicPoi(t,n){if(this.context.currentFloor){n.id===void 0&&(n.id=t.options.id);let i=t.options.center,o=t.getCenter(),a=i?.[0]||o.x,c=i?.[1]||o.y;return console.log(a,c,i,o),this.context.currentFloor.addPoi({...n,position:{x:a,y:c,z:o.z+t.options.height/2}})}return null}removeHeatMap(){this.context.currentFloor?.removeHeatMap()}translateElementToCenter(t,n=500){let i=t.getPosition();return this.context.setCameraPosition(i,n)}async translateElementToCenterX(t,n=500){return Le(new Promise(i=>{let o=this.context.control.target.clone(),a=t.getPosition();this.timer.requestAnimationFrame(()=>{let{clientSize:{width:c,height:l},camera:s}=this.context,h=et(a,s,c,l).x-c/2,f=new Gf;f.setFromMatrixColumn(this.context.camera.matrix,0),f.normalize(),f.multiplyScalar(h/this.context.camera.zoom),o.add(f),this.context.setCameraPosition(o,n).then(i)})}),n+500)}getElementDeviceCoordinate(t){let n=t.position.clone(),{clientWidth:i,clientHeight:o}=this.container;return et(n,this.context.camera,i,o)}changeMapType(t,n=500){return this.type=t,t==="2d"?this.context.setPolarAngle(0,n):this.context.setPolarAngle(1.1,n)}async resetView(t=300){let n=t/3;await this.context.setAzimuthalAngle(this.config.control.defaultAzimuthal,n),await this.context.setPolarAngle(this.config.control.defaultPolar,n),await this.context.fitCameraToGround(this.config.defaultPadding,n,!1)}reduceMap(t=.5,n=500){let i=this.context.camera.zoom;return this.context.setZoom(i-t,this.context.control.target,n)}enlargeMap(t=.5,n=500){let i=this.context.camera.zoom;return this.context.setZoom(i+t,this.context.control.target,n)}onKeydown=t=>{this.polarKeys.includes(t.code)&&(this.context.control.maxPolarAngle=this.config.control.maxPolar,this.context.control.minPolarAngle=0),this.azimuthalKeys.includes(t.code)&&(this.context.control.maxAzimuthAngle=1/0,this.context.control.minAzimuthAngle=1/0)};onKeyUp=t=>{if(this.polarKeys.includes(t.code)){let n=this.context.control.getPolarAngle();this.context.control.maxPolarAngle=n,this.context.control.minPolarAngle=n}if(this.azimuthalKeys.includes(t.code)){let n=this.context.control.getAzimuthalAngle();this.context.control.maxAzimuthAngle=n,this.context.control.minAzimuthAngle=n}};registryEvent(){if(window.addEventListener("keydown",this.onKeydown),window.addEventListener("keyup",this.onKeyUp),this.config.resizeObserver){let t=new ResizeObserver(kf(this.resize,5));t.observe(this.container),this.observe=t}}unRegistryEvent(){window.removeEventListener("keydown",this.onKeydown),window.removeEventListener("keyup",this.onKeyUp),this.observe?.disconnect(),this.observe=null}configurePolarShortcutKeys(t){this.polarKeys=t}configureAzimuthalShortcutKeys(t){this.azimuthalKeys=t}rotateMap(t=.1){let n=this.context.control.getAzimuthalAngle();this.context.setAzimuthalAngle(n+t,500)}async measureDistance(){return this.cancelDistance(),new Promise((t,n)=>{this.changeMapType("2d",0),this.context.control.enableRotate=!1,this.svgLine=new wr(this.context);let i=this.svgLine.dispose.bind(this.svgLine);this.svgLine.dispose=function(){i(),n("cancel")},this.svgLine.addEventListener("distance",({distance:o})=>{t(o)})})}cancelDistance(){this.svgLine&&(this.svgLine.dispose(),this.svgLine=void 0,this.context.control.enableRotate=!0)}measureArea(){return this.cancelArea(),new Promise((t,n)=>{this.changeMapType("2d",0),this.context.control.enableRotate=!1,this.svgPolygon=new Tr(this.context);let i=this.svgPolygon.dispose.bind(this.svgPolygon);this.svgPolygon.dispose=function(){i(),n("cancel")},this.svgPolygon.addEventListener("area",({area:o})=>{t(o)})})}cancelArea(){this.svgPolygon&&(this.svgPolygon.dispose(),this.svgPolygon=void 0,this.context.control.enableRotate=!0)}getGraphicByNodeId(t){return this.context.currentFloor?.graphicLayer.getGraphicByNodeId(t)||null}deleteGraphic(t){this.context.currentFloor?.graphicLayer.removeGraphic(t)}createGraphicByOptions(t){if(!t.transformToBuildingGround&&this.currentBuildGround){let n=hr(this.currentBuildGround.info.geometry.cds[0]);if(t.geometry.type==="polygon")t.geometry.coords=JSON.parse(JSON.stringify(t.geometry.cds)),t.geometry.coords.map(i=>{Array.isArray(i)&&i.forEach(o=>{o[0]-=n[0],o[1]-=n[1]})});else{let[i,o]=t.geometry.cds;t.geometry.coords=[i-n[0],o-n[1]]}}return this.context.currentFloor?.graphicLayer.createGraphic(t)}removePoiById(t){this.context.currentFloor?.poiLayer.removePoiById(t),this.context.currentFloor?.poiLayer2.removePoiById(t)}getPoiById(t){return this.context.currentFloor?.poiLayer.getPoiById(t)||this.context.currentFloor?.poiLayer2.getPoiById(t)}getPois(){return[...(this.context.currentFloor?.poiLayer.pois||[]).filter(t=>!t.options.built_in),...this.context.currentFloor?.poiLayer2.pois||[]]}clearPoi(){this.context.currentFloor&&this.context.currentFloor.poiLayer.clear()}removeSelectGraphic(t){this.context.selection.remove(t)}resize=()=>{this.context.cameraBound.setEnable(!1),this.context.onWindowResize();let t=this.context.control.getAzimuthalAngle(),n=this.context.camera.zoom;this.context.control.minZoom=0,this.context.control.maxZoom=1/0,this.context.camera.zoom=1,this.context.setAzimuthalAngle(0,0);let i=this.context.getFitCameraToGroundZoom(void 0,0)||1;this.context.camera.zoom=n,this.context.control.minZoom=i,this.context.control.maxZoom=i*25,this.basicZoom=n,this.context.control.addEventListener("change",this.onControlChange),this.context.setAzimuthalAngle(t,0),this.context.cameraBound.setEnable(!0)};dispose(){this.timer.dispose(),this.plugins.forEach(t=>t.dispose()),this.context.dispose(),this.unRegistryEvent(),We.dispose(),qe.dispose(),nn.dispose(),Xe.dispose(),Rt.dispose()}};import{EventDispatcher as Hf}from"three";var Ae=class extends Hf{bmap;constructor(e){super(),this.bmap=e}dispose(){}};var wa=class extends Ae{equipmentList=[];equipmentMap=new Map;constructor(e){super(e),this.fetchEquipment(),this.bmap.addEventListener("switch_floor_after",this.onSwitchFloor)}async fetchEquipment(){let{apiDomain:e,apiPath:{equipmentList:t},apiInfo:n}=this.bmap.config,i=`${e}${t}`;await fetch(i,n).then(o=>o.json()).then(o=>o.data).then(o=>{this.equipmentList=o,this.equipmentMap=new Map(o.map(a=>[a.equipment_id,a]))}),this.dispatchEvent({type:"change-equipment-list",data:this.equipmentList}),this.bmap.context.currentFloor&&this.changeGraphicToEquipment(this.bmap.context.currentFloor.graphicLayer.children)}onSwitchFloor=({data:{graphics:e}})=>{this.equipmentList.length&&this.changeGraphicToEquipment(e)};getGraphicEquipment(e){return e.userData.data.info.userData.equipment}changeGraphicToEquipment(e){e.filter(t=>{let n=this.getGraphicEquipment(t);return n&&this.equipmentMap.has(n)}).forEach(t=>{let n=this.equipmentMap.get(this.getGraphicEquipment(t)),i=this.bmap.createGraphicPoi(t,{icon:n?.equipment_icon,built_in:!0,icon_size:[14,14]});i&&(i.userData.data=n,i.userData.type="equipment")})}dispose(){this.bmap.removeEventListener("switch_floor_after",this.onSwitchFloor),Array.from(this.bmap.context.currentFloor?.poiLayer.pois||[]).forEach(e=>{e.userData.type==="equipment"&&this.bmap.context.currentFloor?.poiLayer.removePoi(e)})}};import{Mesh as Jf,Object3D as Qf,TextureLoader as td,Color as ed,Vector2 as Li,Vector3 as nd,NormalBlending as rd,RepeatWrapping as id}from"three";import{BufferGeometry as Wf,Matrix4 as Ca,Vector3 as sn,Ray as qf,Sphere as Xf,LineSegments as jf,BufferAttribute as je,ShaderChunk as re,ShaderMaterial as Aa,UniformsLib as Yf,Color as $f,Vector2 as Ta}from"three";var ie=class extends Wf{constructor(){super(),this.isMeshLine=!0,this.type="MeshLine",this.positions=[],this.previous=[],this.next=[],this.side=[],this.width=[],this.indices_array=[],this.uvs=[],this.counters=[],this._points=[],this._geom=null,this.widthCallback=null,this.matrixWorld=new Ca,Object.defineProperties(this,{geometry:{enumerable:!0,get:function(){return this}},geom:{enumerable:!0,get:function(){return this._geom},set:function(e){this.setGeometry(e,this.widthCallback)}},points:{enumerable:!0,get:function(){return this._points},set:function(e){this.setPoints(e,this.widthCallback)}}})}};ie.prototype.setMatrixWorld=function(r){this.matrixWorld=r};ie.prototype.setGeometry=function(r,e){this._geometry=r,this.setPoints(r.getAttribute("position").array,e)};ie.prototype.setPoints=function(r,e){if(!(r instanceof Float32Array)&&!(r instanceof Array)){console.error("ERROR: The BufferArray of points is not instancied correctly.");return}if(this._points=r,this.widthCallback=e,this.positions=[],this.counters=[],r.length&&r[0]instanceof sn)for(var t=0;t<r.length;t++){var n=r[t],i=t/r.length;this.positions.push(n.x,n.y,n.z),this.positions.push(n.x,n.y,n.z),this.counters.push(i),this.counters.push(i)}else for(var t=0;t<r.length;t+=3){var i=t/r.length;this.positions.push(r[t],r[t+1],r[t+2]),this.positions.push(r[t],r[t+1],r[t+2]),this.counters.push(i),this.counters.push(i)}this.process()};function Zf(r,e){var t=new Ca,n=new qf,i=new Xf,o=new sn,a=this.geometry;if(a.boundingSphere||a.computeBoundingSphere(),i.copy(a.boundingSphere),i.applyMatrix4(this.matrixWorld),r.ray.intersectSphere(i,o)!==!1){t.copy(this.matrixWorld).invert(),n.copy(r.ray).applyMatrix4(t);var c=new sn,l=new sn,s=new sn,u=this instanceof jf?2:1,h=a.index,f=a.attributes;if(h!==null)for(var d=h.array,g=f.position.array,p=f.width.array,m=0,v=d.length-1;m<v;m+=u){var b=d[m],y=d[m+1];c.fromArray(g,b*3),l.fromArray(g,y*3);var S=p[Math.floor(m/3)]!==void 0?p[Math.floor(m/3)]:1,x=r.params.Line.threshold+this.material.lineWidth*S/2,_=x*x,M=n.distanceSqToSegment(c,l,o,s);if(!(M>_)){o.applyMatrix4(this.matrixWorld);var w=r.ray.origin.distanceTo(o);w<r.near||w>r.far||(e.push({distance:w,point:s.clone().applyMatrix4(this.matrixWorld),index:m,face:null,faceIndex:null,object:this}),m=v)}}}}ie.prototype.raycast=Zf;ie.prototype.compareV3=function(r,e){var t=r*6,n=e*6;return this.positions[t]===this.positions[n]&&this.positions[t+1]===this.positions[n+1]&&this.positions[t+2]===this.positions[n+2]};ie.prototype.copyV3=function(r){var e=r*6;return[this.positions[e],this.positions[e+1],this.positions[e+2]]};ie.prototype.getDistance=function(r){let e=0;for(let t=0;t<r;t++){let n=6*t,i=new sn(this.positions[n],this.positions[n+1],this.positions[n+2]),o=new sn(this.positions[n+6],this.positions[n+7],this.positions[n+8]),a=i.distanceTo(o);e+=a}return e};ie.prototype.process=function(){var r=this.positions.length/6;this.previous=[],this.next=[],this.side=[],this.width=[],this.indices_array=[],this.uvs=[];var e;let t=this.getDistance(r-1);var n;this.compareV3(0,r-1)?n=this.copyV3(r-2):n=this.copyV3(0),this.previous.push(n[0],n[1],n[2]),this.previous.push(n[0],n[1],n[2]);for(var i=0;i<r;i++){if(this.side.push(1),this.side.push(-1),this.widthCallback?e=this.widthCallback(i/(r-1)):e=1,this.width.push(e),this.width.push(e),i===0)this.uvs.push(0,0),this.uvs.push(0,1);else if(i===r-1)this.uvs.push(1,0),this.uvs.push(1,1);else{let a=this.getDistance(i)/t;this.uvs.push(a,0),this.uvs.push(a,1)}if(i<r-1){n=this.copyV3(i),this.previous.push(n[0],n[1],n[2]),this.previous.push(n[0],n[1],n[2]);var o=i*2;this.indices_array.push(o,o+1,o+2),this.indices_array.push(o+2,o+1,o+3)}i>0&&(n=this.copyV3(i),this.next.push(n[0],n[1],n[2]),this.next.push(n[0],n[1],n[2]))}this.compareV3(r-1,0)?n=this.copyV3(1):n=this.copyV3(r-1),this.next.push(n[0],n[1],n[2]),this.next.push(n[0],n[1],n[2]),!this._attributes||this._attributes.position.count!==this.positions.length?this._attributes={position:new je(new Float32Array(this.positions),3),previous:new je(new Float32Array(this.previous),3),next:new je(new Float32Array(this.next),3),side:new je(new Float32Array(this.side),1),width:new je(new Float32Array(this.width),1),uv:new je(new Float32Array(this.uvs),2),index:new je(new Uint16Array(this.indices_array),1),counters:new je(new Float32Array(this.counters),1)}:(this._attributes.position.copyArray(new Float32Array(this.positions)),this._attributes.position.needsUpdate=!0,this._attributes.previous.copyArray(new Float32Array(this.previous)),this._attributes.previous.needsUpdate=!0,this._attributes.next.copyArray(new Float32Array(this.next)),this._attributes.next.needsUpdate=!0,this._attributes.side.copyArray(new Float32Array(this.side)),this._attributes.side.needsUpdate=!0,this._attributes.width.copyArray(new Float32Array(this.width)),this._attributes.width.needsUpdate=!0,this._attributes.uv.copyArray(new Float32Array(this.uvs)),this._attributes.uv.needsUpdate=!0,this._attributes.index.copyArray(new Uint16Array(this.indices_array)),this._attributes.index.needsUpdate=!0),this.setAttribute("position",this._attributes.position),this.setAttribute("previous",this._attributes.previous),this.setAttribute("next",this._attributes.next),this.setAttribute("side",this._attributes.side),this.setAttribute("width",this._attributes.width),this.setAttribute("uv",this._attributes.uv),this.setAttribute("counters",this._attributes.counters),this.setIndex(this._attributes.index),this.computeBoundingSphere(),this.computeBoundingBox()};function Ni(r,e,t,n,i){var o;if(r=r.subarray||r.slice?r:r.buffer,t=t.subarray||t.slice?t:t.buffer,r=e?r.subarray?r.subarray(e,i&&e+i):r.slice(e,i&&e+i):r,t.set)t.set(r,n);else for(o=0;o<r.length;o++)t[o+n]=r[o];return t}ie.prototype.advance=function(r){var e=this._attributes.position.array,t=this._attributes.previous.array,n=this._attributes.next.array,i=e.length;Ni(e,0,t,0,i),Ni(e,6,e,0,i-6),e[i-6]=r.x,e[i-5]=r.y,e[i-4]=r.z,e[i-3]=r.x,e[i-2]=r.y,e[i-1]=r.z,Ni(e,6,n,0,i-6),n[i-6]=r.x,n[i-5]=r.y,n[i-4]=r.z,n[i-3]=r.x,n[i-2]=r.y,n[i-1]=r.z,this._attributes.position.needsUpdate=!0,this._attributes.previous.needsUpdate=!0,this._attributes.next.needsUpdate=!0};re.meshline_vert=["",re.logdepthbuf_pars_vertex,re.fog_pars_vertex,"","attribute vec3 previous;","attribute vec3 next;","attribute float side;","attribute float width;","attribute float counters;","","uniform vec2 resolution;","uniform float lineWidth;","uniform vec3 color;","uniform float opacity;","uniform float sizeAttenuation;","","varying vec2 vUV;","varying vec4 vColor;","varying float vCounters;","","vec2 fix( vec4 i, float aspect ) {",""," vec2 res = i.xy / i.w;"," res.x *= aspect;"," vCounters = counters;"," return res;","","}","","void main() {",""," float aspect = resolution.x / resolution.y;",""," vColor = vec4( color, opacity );"," vUV = uv;",""," mat4 m = projectionMatrix * modelViewMatrix;"," vec4 finalPosition = m * vec4( position, 1.0 );"," vec4 prevPos = m * vec4( previous, 1.0 );"," vec4 nextPos = m * vec4( next, 1.0 );",""," vec2 currentP = fix( finalPosition, aspect );"," vec2 prevP = fix( prevPos, aspect );"," vec2 nextP = fix( nextPos, aspect );",""," float w = lineWidth * width;",""," vec2 dir;"," if( nextP == currentP ) dir = normalize( currentP - prevP );"," else if( prevP == currentP ) dir = normalize( nextP - currentP );"," else {"," vec2 dir1 = normalize( currentP - prevP );"," vec2 dir2 = normalize( nextP - currentP );"," dir = normalize( dir1 + dir2 );",""," vec2 perp = vec2( -dir1.y, dir1.x );"," vec2 miter = vec2( -dir.y, dir.x );"," //w = clamp( w / dot( miter, perp ), 0., 4. * lineWidth * width );",""," }",""," //vec2 normal = ( cross( vec3( dir, 0. ), vec3( 0., 0., 1. ) ) ).xy;"," vec4 normal = vec4( -dir.y, dir.x, 0., 1. );"," normal.xy *= .5 * w;"," normal *= projectionMatrix;"," if( sizeAttenuation == 0. ) {"," normal.xy *= finalPosition.w;"," normal.xy /= ( vec4( resolution, 0., 1. ) * projectionMatrix ).xy;"," }",""," finalPosition.xy += normal.xy * side;",""," gl_Position = finalPosition;","",re.logdepthbuf_vertex,re.fog_vertex&&" vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );",re.fog_vertex,"}"].join(`
104
+ `,i=-1/0,o=this.geometry.getAttribute("position");if(o)for(let c=0;c<o.count;c++){let l=o.getZ(c);l>i&&(i=l)}let a=new af({uniforms:{maxZ:{value:i},uColor:{value:new va(this.options[0].fillColor).convertLinearToSRGB()},uColor2:{value:new va(Oe(this.options[0].fillColor)).convertLinearToSRGB()},uOpacity:{value:this.options[0].fillOpacity}},vertexShader:t,fragmentShader:n,transparent:!0});this.material=a}initLineMaterial(){let t=Rt.createLineMaterial({color:this.options[0].strokeColor,opacity:this.options[0].strokeOpacity});return this.lineMaterial=t,t}initMesh(){this.mesh&&this.remove(this.mesh),this.mesh=new rf(this.geometry,this.material),this.add(this.mesh)}getBorderPoints(){let t=[],n=this.options[0].height+this.options[0].deltaHeight;return this.options.map(i=>{let{coords:o}=i.geometry;for(let a=0;a<o.length;a++){let c=o[a];for(let l=0;l<c.length;l++){let s=c[l],u=l+1===c.length?c[0]:c[l+1];t.push(new ya(s[0],s[1],n)),t.push(new ya(u[0],u[1],n))}}}),t}initLineGeometry(){this.lineGeometry&&this.lineGeometry.dispose();let t=this.getBorderPoints(),n=new of().setFromPoints(t);this.lineGeometry=n}createBorder(){this.line&&this.remove(this.line);let t=new sf(this.lineGeometry,this.lineMaterial);return t.position.z=.01,this.line=t,this.add(t),t}dispose(){this.geometry.dispose(),this.material.dispose(),this.line?.geometry.dispose(),this.clear()}};import{Box2 as Ri,Object3D as lf,Sprite as _a,SpriteMaterial as xa,Vector2 as Ir}from"three";import{cloneDeep as cf}from"lodash";var hf={text:"",icon:"",icon_size:[18,18],level:1,collision_enable:!0,opacity:1,id:"",position:{x:0,y:0,z:0},text_font_size:14,icon_rotate:0},ne=class extends lf{constructor(t,n){super();this.context=t;this.options=dn(cf({...hf,...n}),this),this.position.set(this.options.position.x,this.options.position.y,this.options.position.z),this.registryEvent(),this.init()}options;textAspect=1;spriteText;spriteIcon;box=new Ri;boxHelper;_initIconPromise=null;get durIconAndText(){return this.options.icon&&this.options.text?2:0}get offset(){return this.options.icon&&this.options.text?0:.5}get iconWidth(){return this.options.icon?this.options.icon_size[0]:0}get iconHeight(){return this.options.icon?this.options.icon_size[1]:0}get textWidth(){return this.options.text?this.options.text_font_size*this.textAspect:0}get textHeight(){return this.options.text?this.options.text_font_size:0}get deltaZ(){return .1}get canSelect(){return this.visible&&(this.spriteIcon?this.spriteIcon.visible:!0)&&(this.spriteText?this.spriteText.visible:!0)}registryEvent(){this.context.addEventListener("control-zoom-change",this._initScale),this.addEventListener("change-icon",async({value:t})=>{this._initIconPromise&&await this._initIconPromise,this.spriteIcon&&(this.remove(this.spriteIcon),this.spriteIcon=void 0),await this.initIcon(),this.initSize(),this._initScale({zoom:this.context.camera.zoom})}),this.addEventListener("change-text",({value:t})=>{this.spriteText&&(this.remove(this.spriteText),this.spriteText=void 0),this.initText(),this.initSize(),this._initScale({zoom:this.context.camera.zoom})}),this.addEventListener("change-icon_rotate",({value:t})=>{this.spriteIcon&&(this.spriteIcon.material.rotation=t/180*Math.PI)}),this.addEventListener("change-icon_size",({value:t})=>{this.spriteIcon&&this._initScale({zoom:this.context.camera.zoom})})}unRegistryEvent(){this.context.removeEventListener("control-zoom-change",this._initScale)}async initIcon(){if(this.options.icon)return this._initIconPromise=new Promise(async t=>{let n=await qe.getTextureByUrl(this.options.icon),i=new _a(new xa({map:n,transparent:!0,alphaTest:.2,depthTest:!1,rotation:this.options.icon_rotate/180*Math.PI}));i.visible=!1,i.renderOrder=1e5,n.needsUpdate=!0,this.add(i),this.spriteIcon=i,t(i)}).then(()=>{this._initIconPromise=null})}initText(){if(this.options.text){let t=We.getTextureByText(this.options.text);this.textAspect=t.image.width/t.image.height;let n=new _a(new xa({map:t,transparent:!0,alphaTest:.2,depthTest:!1}));n.visible=!1,n.renderOrder=100001,t.needsUpdate=!0,this.spriteText=n,this.add(n)}}initSize(){let t=0,n=0,{icon:i,text:o}=this.options;i?o?(t=0,n=t*(this.iconHeight/this.textHeight)-this.iconHeight/this.textHeight-this.durIconAndText/this.textHeight):(t=.5,n=0):o?(n=.5,t=0):(t=0,n=0),this.spriteIcon?.center.set(.5,t),this.spriteText?.center.set(.5,n)}async init(){await this.initIcon(),this.initText(),this.initSize(),this._initScale({zoom:this.context.camera.zoom})}_initScale=({zoom:t})=>{if(this.spriteText){let n=this.textHeight/t;this.spriteText.scale.set(this.textAspect*n,n,.1)}this.spriteIcon&&this.spriteIcon?.scale.set(this.options.icon_size[0]/t,this.options.icon_size[1]/t,.1),this.resetZ()};resetZ(){let t=this.deltaZ;this.spriteIcon&&(this.spriteIcon.position.z=t),this.spriteText&&(this.spriteText.position.z=t)}getBox(t){let{clientSize:{width:n,height:i}}=this.context,o=n*(t.x+1)/2,a=i*(-t.y+1)/2;a+=this.offset*(this.iconHeight+this.durIconAndText+this.textHeight);let c=this.iconWidth/2,l=new Ri(new Ir(o-c,a-this.iconHeight),new Ir(o+c,a)),s=this.textWidth/2,u=new Ri(new Ir(o-s,a-this.textHeight-this.durIconAndText-this.iconHeight),new Ir(o+s,a-this.iconHeight-this.durIconAndText));return this.box=u.union(l),this.box}renderBoxHelper(){if(!this.boxHelper){let t=document.createElement("div");t.style.position="fixed",t.style.border="1px solid red",t.style.pointerEvents="none",this.boxHelper=t,this.context.container.appendChild(t)}this.boxHelper.style.left=this.box.min.x+"px",this.boxHelper.style.top=this.box.min.y+"px",this.boxHelper.style.width=this.box.max.x-this.box.min.x+"px",this.boxHelper.style.height=this.box.max.y-this.box.min.y+"px"}parentSetVisible(t){this.spriteText&&(this.spriteText.visible=t),this.spriteIcon&&(this.spriteIcon.visible=t),this.boxHelper&&(this.boxHelper.style.display=t?"block":"none")}dispose(){this.unRegistryEvent(),this.spriteText=void 0}};import{DoubleSide as pf,Matrix4 as Ea,Mesh as ff,MeshBasicMaterial as df,Object3D as gf,PlaneGeometry as mf}from"three";import{mergeGeometries as yf}from"three/examples/jsm/utils/BufferGeometryUtils";var vf={airHeight:0,deltaHeight:0,height:0,geometry:{cds:[],type:"polygon",coords:[],curveCpt:[],curveIndex:[]},texts:[],fillColor:"#ffffff",fillOpacity:0,strokeColor:"#ffffff",strokeOpacity:0,secondHeight:0,secondRotate:0,center_x:0,center_y:0},Rr=class extends gf{constructor(t,n){super();this.context=t;this.options=n.map(i=>({...vf,...i})),this.init()}options;mesh;async init(){let t=this.options.map(c=>We.getTextureByText(c.texts[0],{fillStyle:bi(c.fillColor,c.fillOpacity),strokeStyle:bi(c.strokeColor,c.strokeOpacity),lineWidth:6,font:"54px sans-serif"})),n=t.map((c,l)=>{let s=this.options[l],{width:u,height:h}=c.image,f=u/h,d=s.secondHeight*f,g=new mf(d,s.secondHeight),p=new Ea().makeTranslation(s.center_x,s.center_y,s.airHeight+s.deltaHeight+s.height).multiply(new Ea().makeRotationZ(s.secondRotate));return g.applyMatrix4(p),g}),i=yf(n,!0);n.forEach(c=>c.dispose());let o=t.map(c=>{let l=new df({map:c,alphaTest:1,side:pf});return c.needsUpdate=!0,l}),a=new ff(i,o);this.mesh=a,this.position.z+=.004,this.add(a)}dispose(){this.mesh?.geometry.dispose(),(this.mesh?.material).forEach(t=>t.dispose()),this.clear()}};import{Frustum as _f}from"three";var Nr=class extends ce{startPoint;endPoint;rect;frustum=new _f;constructor(e){super(e);let{config:{selectBox:{fill:t,stroke:n}}}=e;this.rect=He(n,t),this.svg.appendChild(this.rect),this.registryEvent()}setEnable(e){super.setEnable(e),Xt(this.rect,0,0,0,0),e?this.registryEvent():(this.startPoint=void 0,this.unRegistryEvent())}onPointerDown=e=>{if(!this.enable)return;let t=this.getIntersectByPointerEvent(e);t&&(this.startPoint=t),this.endPoint=void 0};onPointerMove=e=>{if(!this.enable||!this.startPoint)return;let t=this.getIntersectByPointerEvent(e);t&&(this.endPoint=t)};onPointerUp=e=>{if(!this.enable)return;let t=this.getIntersectByPointerEvent(e);t&&(this.endPoint=t),this.doSelect(),this.startPoint=void 0};onUpdate=()=>{if(this.startPoint){let e=this.getSvgCoordinate(this.startPoint),t={...e};this.endPoint&&(t=this.getSvgCoordinate(this.endPoint));let n={x:Math.min(e.x,t.x),y:Math.min(e.y,t.y)},i=Math.abs(t.x-e.x),o=Math.abs(t.y-e.y);Xt(this.rect,n.x,n.y,i,o)}else Xt(this.rect,0,0,0,0)};registryEvent(){this.context.container.addEventListener("pointerdown",this.onPointerDown),this.context.container.addEventListener("pointermove",this.onPointerMove),this.context.container.addEventListener("pointerup",this.onPointerUp),this.context.addEventListener("update",this.onUpdate)}unRegistryEvent(){this.context.container.removeEventListener("pointerdown",this.onPointerDown),this.context.container.removeEventListener("pointermove",this.onPointerMove),this.context.container.removeEventListener("pointerup",this.onPointerUp),this.context.removeEventListener("update",this.onUpdate)}doSelect(){if(this.startPoint&&this.endPoint){if(this.startPoint.distanceTo(this.endPoint)<.1)return;let{context:{camera:t,container:{clientWidth:n,clientHeight:i}}}=this,o=et(this.startPoint,t,n,i),a=et(this.endPoint,t,n,i),c={x:Math.min(o.x,a.x),y:Math.min(o.y,a.y)},l={x:Math.max(o.x,a.x),y:Math.max(o.y,a.y)},s=this.searchMapInFrustum(c,l);this.dispatchEvent({type:"selected",list:s})}}searchMapInFrustum(e,t){let{context:n}=this;return n.currentFloor?.graphicLayer.children.filter(i=>i instanceof Ft&&this.searchChildInFrustum(i,e,t))||[]}searchChildInFrustum(e,t,n){let{context:{camera:i,container:{clientWidth:o,clientHeight:a}}}=this;if(!e)return!1;if(!e.mesh){let f=e.getPosition();if(f){let d=et(f,i,o,a);return Ve(d,t,n)}return!1}e.mesh.geometry.boundingBox||e.mesh.geometry.computeBoundingBox();let c=e.mesh.geometry.boundingBox;if(!c)return!1;let{min:l,max:s}=c,u=et(l,i,o,a),h=et(s,i,o,a);return!(!Ve(u,t,n)||!Ve(h,t,n))}dispose(){this.unRegistryEvent()}};var Lr=class extends xf{constructor(t){super();this.context=t;this.boxSelection=new Nr(t),this.boxSelection.setEnable(!1),this.registryEvent()}_list=new Set;boxSelection;prevPanStatus;prevRotateStatus;downPoint=null;isMultipleSelect=!1;get list(){return this._list}enableBoxSelection(){this.isMultipleSelect||!this.context.config.enableBoxSelect||(this.isMultipleSelect=!0,this.boxSelection.setEnable(!0),this.prevPanStatus=this.context.control.enablePan,this.prevRotateStatus=this.context.control.enableRotate,this.context.control.enablePan=!1,this.context.control.enableRotate=!1)}disableBoxSelection(){this.isMultipleSelect&&(this.isMultipleSelect=!1,this.boxSelection.setEnable(!1),this.context.control.enablePan=!!this.prevPanStatus,this.context.control.enableRotate=!!this.prevRotateStatus)}onPointerDown=t=>{this.downPoint={x:t.offsetX,y:t.offsetY}};onPointerUp=t=>{if(!this.downPoint)return;let{offsetX:n,offsetY:i}=t,{x:o,y:a}=this.downPoint;if(Math.sqrt((o-n)**2+(a-i)**2)>3)return;let{graphics:c}=this.context.getGraphicsByDeviceXy(n,i),l=new Set(c.map(u=>u.options.id));this.context.getPoisByDeviceXy(n,i).forEach(u=>{if(!l.has(u.options.id)){let h=this.context.currentFloor?.graphicLayer.graphicMap.get(u.options.id)||null;h&&h.options.geometry.type==="point"&&(c.push(h),l.add(u.options.id))}}),(gn?t.metaKey:t.ctrlKey)||this._list.clear(),c.forEach(u=>this._list.add(u)),this.selectEnd(),this.downPoint=null};onPointerOut=t=>{this.disableBoxSelection()};onKeyDown=t=>{mn(t.key)&&this.enableBoxSelection()};onKeyUp=t=>{mn(t.key)&&this.disableBoxSelection()};onBoxSelected=({list:t})=>{this._list.clear(),t.forEach(n=>{this._list.add(n)}),this.selectEnd()};selectEnd(){this.dispatchEvent({type:"select",graphics:[...this._list],isMultipleSelect:this.isMultipleSelect})}registryEvent(){this.context.container.addEventListener("pointerdown",this.onPointerDown),this.context.container.addEventListener("pointerup",this.onPointerUp),this.context.container.addEventListener("pointerout",this.onPointerOut),this.context.container.addEventListener("pointercancel",this.onPointerOut),window.addEventListener("keydown",this.onKeyDown),window.addEventListener("keyup",this.onKeyUp),this.boxSelection.addEventListener("selected",this.onBoxSelected)}unRegistryEvent(){this.context.container.removeEventListener("pointerdown",this.onPointerDown),this.context.container.removeEventListener("pointerup",this.onPointerUp),this.context.container.removeEventListener("pointerout",this.onPointerOut),this.context.container.removeEventListener("pointercancel",this.onPointerOut),window.removeEventListener("keydown",this.onKeyDown),window.removeEventListener("keyup",this.onKeyUp),this.boxSelection.removeEventListener("selected",this.onBoxSelected)}clear(){this._list.clear()}remove(t){this._list.delete(t)}dispose(){this.unRegistryEvent()}};import{EventDispatcher as Ef,Vector2 as bf}from"three";var Or=class extends Ef{constructor(t){super();this.context=t;this.registryEvent()}curGraphics=new Set;timer=new Gt;graphicTimerMap=new Map;onPointerMove=({graphics:t,pois:n,e:i})=>{let o=n.map(s=>this.context.currentFloor?.graphicLayer.graphicMap.get(s.options.id)).filter(s=>s&&s.options.geometry.type==="point");if(!t.length&&!o.length&&this.curGraphics.size){this.curGraphics.clear(),this.handleHoverGraphicsChange();return}let{time:a}=this.context.config.hover,c=new Set;if(o.length){let s,u=1e4;o.forEach(h=>{let f=n.find(d=>d.options.id===h.options.id);if(f instanceof rn){let{x:d,y:g}=f.clientPos,p=Math.sqrt((d-i.offsetX)**2+(g-i.offsetY)**2);p<u&&(u=p,s=h)}else if(f instanceof ne){let{x:d,y:g}=f.box.getCenter(new bf),p=Math.sqrt((d-i.offsetX)**2+(g-i.offsetY)**2);p<u&&(u=p,s=h)}}),c.add(s)}c.size||t.forEach(s=>c.add(s)),c.forEach(s=>{if(this.graphicTimerMap.get(s)||this.curGraphics.has(s))return;let u=this.timer.setTimeout(()=>{this.curGraphics.add(s),this.graphicTimerMap.delete(s),this.timer.clearTimeout(u),this.handleHoverGraphicsChange()},a);this.graphicTimerMap.set(s,u)}),this.graphicTimerMap.forEach((s,u)=>{c.has(u)||(this.timer.clearTimeout(s),this.graphicTimerMap.delete(u))});let l=this.curGraphics.size;this.curGraphics.forEach(s=>{c.has(s)||this.curGraphics.delete(s)}),l!==this.curGraphics.size&&this.handleHoverGraphicsChange()};onPointerLevel=()=>{this.curGraphics.clear(),this.handleHoverGraphicsChange()};onBodyPointerMove=t=>{if(this.curGraphics.size){let n=this.context.container.getBoundingClientRect();(t.clientX<n.left||t.clientX>n.right||t.clientY<n.top||t.clientY>n.bottom)&&this.onPointerLevel()}};handleHoverGraphicsChange(t=this.curGraphics){this.dispatchEvent({type:"hover-change",graphics:Array.from(t)})}registryEvent(){this.context.addEventListener("pointer-over",this.onPointerMove),this.context.addEventListener("pointer-move",this.onPointerMove),this.context.addEventListener("pointer-level",this.onPointerLevel),document.body.addEventListener("pointermove",this.onBodyPointerMove)}unRegistryEvent(){this.context.removeEventListener("pointer-over",this.onPointerMove),this.context.removeEventListener("pointer-move",this.onPointerMove),this.context.removeEventListener("pointer-level",this.onPointerLevel),document.body.removeEventListener("pointermove",this.onBodyPointerMove)}dispose(){this.unRegistryEvent(),this.timer.dispose()}};import{Box3 as Sf,Vector3 as Fr}from"three";var Ur=class{constructor(e){this.context=e;this.registryEvent(),this.changePrevCamera()}prevCamera={position:new Fr,zoom:1,target:new Fr};enable=!0;box=new Sf;updateBox(){this.box.setFromObject(this.context.scene)}setEnable(e){this.enable=e,e?this.registryEvent():this.unRegistryEvent()}changePrevCamera(){this.prevCamera={position:this.context.camera.position.clone(),zoom:this.context.camera.zoom,target:this.context.control.target.clone()}}backToPrevCamera(){this.setEnable(!1),this.context.camera.position.copy(this.prevCamera.position),this.context.camera.zoom=this.prevCamera.zoom,this.context.control.target.copy(this.prevCamera.target),this.context.control.update(),this.setEnable(!0)}registryEvent(){this.context.addEventListener("control-change",this.onCameraChange)}unRegistryEvent(){this.context.removeEventListener("control-change",this.onCameraChange)}getCurFloorScreenPosition(){if(!this.context.scene.children.filter(m=>m instanceof Ce).length)return null;let t=this.box,{camera:n,clientSize:{width:i,height:o}}=this.context,{min:a,max:c}=t,l=et(a,n,i,o),s=et(c,n,i,o),u=et(new Fr(a.x,c.y,c.z),n,i,o),h=et(new Fr(c.x,a.y,a.z),n,i,o),f=Math.min(l.x,s.x,u.x,h.x),d=Math.max(l.x,s.x,u.x,h.x),g=Math.min(l.y,s.y,u.y,h.y),p=Math.max(l.y,s.y,u.y,h.y);return{left:f,right:d,top:g,bottom:p}}checkDistanceToScreenEdge({left:e,right:t,top:n,bottom:i}){let{width:o,height:a}=this.context.clientSize,[c,l,s,u]=this.context.config.cameraBound.padding,h=t>=u,f=o-e>=l,d=a-n>=s,g=i>=c;return h&&f&&d&&g}onCameraChange=()=>{let e=this.getCurFloorScreenPosition();if(e){let{left:t,right:n,top:i,bottom:o}=e;this.checkDistanceToScreenEdge({left:t,right:n,top:i,bottom:o})?this.changePrevCamera():this.backToPrevCamera()}};dispose(){this.unRegistryEvent()}};import{Vector3 as ba}from"three";import{MapControls as Mf}from"three/examples/jsm/controls/MapControls";import{Tween as Br,Group as wf}from"@tweenjs/tween.js";var zr=class extends Mf{constructor(t,n,i){super(n,i);this.context=t;this.camera=n;this.domElement=i;this.enableDamping=!1,this.zoomSpeed=.5,this.prevCameraZoom=n.zoom,this.registryEvent()}prevCameraZoom=1;tweenGroup=new wf;offsetY=0;registryEvent(){this.addEventListener("change",()=>{let t=this.camera.zoom;t!==this.prevCameraZoom&&(this.prevCameraZoom=t,this.dispatchEvent({type:"change-zoom",zoom:t}))}),this.context.addEventListener("update",this.tweenUpdate)}tweenUpdate=()=>{this.tweenGroup.update()};setPolarAngle(t,n=!1){let{maxPolarAngle:i,minPolarAngle:o}=this,a=i===o;(n||t<=i&&t>=o)&&(this.maxPolarAngle=t,this.minPolarAngle=t,this.update()),a||(this.maxPolarAngle=i,this.minPolarAngle=o)}async setPolarAngleByDuration(t,n=!1,i=500){return i<=0?this.setPolarAngle(t,n):Le(new Promise(o=>{let a={polar:this.getPolarAngle()},c={polar:t},l=new Br(a,this.tweenGroup).to(c,i).onUpdate(()=>{this.setPolarAngle(a.polar,n)}).onComplete(()=>{this.enabled=!0,this.tweenGroup.remove(l),o(!0)}).onStart(()=>{this.enabled=!1}).start()}),i+500)}setAzimuthalAngle(t,n){let{maxAzimuthAngle:i,minAzimuthAngle:o,maxPolarAngle:a,minPolarAngle:c}=this,l=i===o;if(n||t<=i&&t>=o){this.maxAzimuthAngle=t,this.minAzimuthAngle=t;let s=this.getPolarAngle();this.maxPolarAngle=s,this.minPolarAngle=s,this.update(),this.maxPolarAngle=a,this.minPolarAngle=c}l||(this.maxAzimuthAngle=i,this.minAzimuthAngle=o)}setAzimuthalAngleDuration(t,n=!1,i=500){return i<=0?this.setAzimuthalAngle(t,n):Le(new Promise(o=>{let a={azimuthal:this.getAzimuthalAngle()},c={azimuthal:t},l=new Br(a,this.tweenGroup).to(c,i).onUpdate(()=>{this.setAzimuthalAngle(a.azimuthal,n)}).onComplete(()=>{this.enabled=!0,this.tweenGroup.remove(l),o(!0)}).onStart(()=>{this.enabled=!1}).start()}),i+500)}getCameraLookAt(){return new ba().subVectors(this.target,this.camera.position)}async setCameraPositionByTarget(t,n){let i=this.target.clone(),o=this.getCameraLookAt();if(!n){this.camera.position.copy(t.clone().sub(o)),this.target.copy(t.clone()),this.update();return}return Le(new Promise(a=>{let c=new Br(i,this.tweenGroup).to(t,n).onUpdate(()=>{this.camera.position.copy(i.clone().sub(o)),this.target.copy(i.clone()),this.update()}).onComplete(()=>{this.tweenGroup.remove(c),this.camera.position.copy(t.clone().sub(o)),this.target.copy(t.clone()),this.update(),this.enabled=!0,a(!0)}).onStart(()=>{this.enabled=!1}).start()}),n+500)}setZoom(t,n,i=!1){let{minZoom:o,maxZoom:a}=this;(i||t>=o&&t<=a)&&(this.camera.position.copy(n.clone().sub(this.getCameraLookAt())),this.target.copy(n),this.camera.zoom=t,this.update())}setZoomByDuration(t,n,i=!1,o=500){let a=this.getCameraLookAt(),c={zoom:this.camera.zoom,target:this.target.clone()};return o?Le(new Promise(l=>{let s=new Br(c,this.tweenGroup).to({zoom:t,target:n},o).onUpdate(()=>{this.setZoom(c.zoom,c.target,i)}).onComplete(()=>{this.tweenGroup.remove(s),this.enabled=!0,l(!0)}).onStart(()=>{this.enabled=!1}).start()}),o+500):this.setZoom(t,n,i)}setTargetByOffset(t,n=this.target.clone()){if(!t)return;let i=new ba;i.setFromMatrixColumn(this.camera.matrix,1),i.normalize(),i.multiplyScalar(t/this.camera.zoom),n.add(i),this.setCameraPositionByTarget(n,0)}clearTween(){this.tweenGroup.getAll().forEach(t=>t.stop()),this.tweenGroup.removeAll()}dispose(){this.clearTween()}};import{EventDispatcher as Tf,PCFSoftShadowMap as Cf,WebGLRenderer as Af}from"three";var Gr=class extends Af{event=new Tf;scene;camera;enable=!0;timer=new Gt;constructor(e){super({antialias:!0,alpha:!0,...e}),this.autoClear=!0,this.setPixelRatio(window.devicePixelRatio),this.shadowMap.enabled=!0,this.shadowMap.autoUpdate=!0,this.shadowMap.type=Cf}setCameraAndScene(e,t){this.scene=e,this.camera=t}autoRender(){this.scene&&this.camera&&this.enable&&(this.event.dispatchEvent({type:"update"}),this.render(this.scene,this.camera)),this.timer.requestAnimationFrame(()=>{this.autoRender()})}pauseRender(){this.enable=!1}continueRender(){this.enable=!0}addEventListener(e,t){this.event.addEventListener(e,t)}removeEventListener(e,t){this.event.removeEventListener(e,t)}dispose(){this.timer.dispose(),this.enable=!1,super.dispose()}};import{Scene as Pf}from"three";var kr=class extends Pf{constructor(){super()}};import{OrthographicCamera as Df}from"three";var Vr=class extends Df{constructor(e,t){super(-e/2,e/2,t/2,-t/2,-1e3,5e3),this.up.set(0,0,1),this.position.set(0,0,100),this.lookAt(0,0,0)}};var Hr=class extends If{constructor(t,n){super();this.container=t;this.config=n;this.container.style.position="relative",this.container.style.overflow="hidden",this.init(),this.selection=new Lr(this),this.hoverHelper=new Or(this),this.resizeClientSize(),this.registryEvent()}scene=new kr;renderer=new Gr;camera;control;lights=Es();currentFloor;selection;hoverHelper;basicRatio;cameraBound;clientSize={width:0,height:0,x:0,y:0};renderRf=0;resizeClientSize(){let{x:t,y:n,width:i,height:o}=this.container.getBoundingClientRect();this.clientSize={width:i||this.container.clientWidth,height:o||this.container.clientHeight,x:t,y:n}}init(){let{clientWidth:t,clientHeight:n}=this.container;this.camera=new Vr(t,n),this.renderer.setSize(t,n),this.renderer.setCameraAndScene(this.scene,this.camera),this.renderer.autoRender(),this.control=new zr(this,this.camera,this.renderer.domElement),this.control.maxPolarAngle=this.config.control.maxPolar,this.container.appendChild(this.renderer.domElement),this.scene.add(this.lights),this.basicRatio=this.getRatio(),this.control.addEventListener("change",()=>{this.dispatchEvent({type:"change-ratio",px:(this.basicRatio||0)*this.camera.zoom}),this.dispatchEvent({type:"control-change"})}),this.control.addEventListener("change-zoom",({zoom:i})=>{this.dispatchEvent({type:"control-zoom-change",zoom:i})}),this.renderer.addEventListener("update",()=>{this.dispatchEvent({type:"update"})}),this.cameraBound=new Ur(this)}getRatio(t=new on(0,0,0),n=new on(100,0,0)){let{clientWidth:i,clientHeight:o}=this.container,a=et(t,this.camera,i,o),c=et(n,this.camera,i,o);return Math.ceil(Math.sqrt((c.x-a.x)**2+(c.y-a.y)**2))}changeAmbientLightColor(t){this.lights.children.forEach(n=>{n instanceof Ff&&(n.color=new Of(t))})}switchFloor(t){this.currentFloor&&(this.scene.remove(this.currentFloor),this.currentFloor.dispose()),this.currentFloor=t,this.scene.add(t);let n=t.getCenter();n&&(this.lights.position.x=n.x,this.lights.position.y=n.y),this.cameraBound.updateBox()}onWindowResize=()=>{let{container:t,camera:n,renderer:i}=this,{clientWidth:o,clientHeight:a}=t;o=Math.max(1,o),a=Math.max(1,a),n.left=-o/2,n.right=o/2,n.top=a/2,n.bottom=-a/2,n.updateProjectionMatrix(),i.setSize(o,a),this.resizeClientSize(),this.dispatchEvent({type:"resize",width:o,height:a})};onClick=t=>{let{graphics:n,position:i}=this.getGraphicsByDeviceXy(t.offsetX,t.offsetY);n.length&&this.dispatchEvent({type:"graphic-click",graphics:n,position:i});let o=this.getPoisByDeviceXy(t.offsetX,t.offsetY);o.length&&this.dispatchEvent({type:"poi-click",pois:o})};getGraphicsByDeviceXy(t,n){let i=new xn;i.x=t/this.clientSize.width*2-1,i.y=n/this.clientSize.height*-2+1;let o=new Nf;return o.setFromCamera(i,this.camera),o.ray.origin.sub(o.ray.direction.clone().multiplyScalar(100)),this.currentFloor?.graphicLayer.getGraphicByRaycaster(o)||{graphics:[],position:null}}getPoisByDeviceXy(t,n){let i=this.currentFloor?.poiLayer.getPoiByDeviceXy(t,n),o=this.currentFloor?.poiLayer2.getPoiByDeviceXy(t,n);return(i||[]).concat(o||[])}onPointerover=t=>{let{graphics:n,position:i}=this.getGraphicsByDeviceXy(t.offsetX,t.offsetY),o=this.getPoisByDeviceXy(t.offsetX,t.offsetY);this.dispatchEvent({type:"pointer-over",e:t,graphics:n,pois:o,position:i})};onPointermove=t=>{let{graphics:n,position:i}=this.getGraphicsByDeviceXy(t.offsetX,t.offsetY),o=this.getPoisByDeviceXy(t.offsetX,t.offsetY);this.dispatchEvent({type:"pointer-move",e:t,graphics:n,pois:o,position:i})};onPointerleave=t=>{this.dispatchEvent({type:"pointer-level"})};onSelectionSelect=({graphics:t,isMultipleSelect:n})=>{this.dispatchEvent({type:"select-graphic",graphics:t,isMultipleSelect:n})};onHoverChange=({graphics:t})=>{this.dispatchEvent({type:"hover",graphics:t})};registryEvent(){window.addEventListener("resize",this.onWindowResize),this.container.addEventListener("click",this.onClick),this.container.addEventListener("pointerover",this.onPointerover),this.container.addEventListener("pointermove",this.onPointermove),this.container.addEventListener("pointerleave",this.onPointerleave),this.container.addEventListener("pointercancel",this.onPointerleave),this.container.addEventListener("pointerout",this.onPointerleave),this.selection.addEventListener("select",this.onSelectionSelect),this.hoverHelper.addEventListener("hover-change",this.onHoverChange)}unRegistryEvent(){window.removeEventListener("resize",this.onWindowResize),this.container.removeEventListener("click",this.onClick),this.container.removeEventListener("pointerover",this.onPointerover),this.container.removeEventListener("pointermove",this.onPointermove),this.container.removeEventListener("pointerleave",this.onPointerleave),this.container.removeEventListener("pointercancel",this.onPointerleave),this.container.removeEventListener("pointerout",this.onPointerleave),this.selection.removeEventListener("select",this.onSelectionSelect),this.hoverHelper.removeEventListener("hover-change",this.onHoverChange)}setPolarAngle(t,n=500){return this.control.setPolarAngleByDuration(t,!0,n)}setAzimuthalAngle(t,n=500){return this.control.setAzimuthalAngleDuration(t,!0,n)}getCameraLookAt(){return this.control.getCameraLookAt()}setZoom(t,n,i=500){return this.control.setZoomByDuration(t,n,!0,i)}getFitCameraToObjectZoom(t,n=[20,20,20,20],i=500,o=!0){let[a,c,l,s]=n,{clientSize:{width:u,height:h}}=this,f=this.control.getPolarAngle();o&&this.setPolarAngle(0,0);let d=new Lf().setFromObject(t);this.setPolarAngle(f,0);let{max:g,min:p}=d,m=new on(p.x,g.y,g.z),v=new on(g.x,g.y,g.z),b=new on(g.x,p.y,p.z),y=new on(p.x,p.y,p.z),S=et(m,this.camera,u,h),x=et(v,this.camera,u,h),_=et(y,this.camera,u,h),M=et(b,this.camera,u,h),C=new Rf().setFromPoints([new xn(S.x,S.y),new xn(x.x,x.y),new xn(_.x,_.y),new xn(M.x,M.y)]).getSize(new xn),P=(u-c-s)/C.x,D=(h-a-l)/C.y,R=Math.min(P,D),W=new on((g.x+p.x)/2,(g.y+p.y)/2,(g.z+p.z)/2);return{zoom:R*this.camera.zoom,center:W}}fitCameraToObject(t,n=[20,20,20,20],i=500,o=!0){let{zoom:a,center:c}=this.getFitCameraToObjectZoom(t,n,i,o);return this.setZoom(a,c,i)}getFitCameraToGroundZoom(t=[20,20,20,20],n=500,i=!0){if(this.currentFloor&&this.currentFloor.hasElement)return this.getFitCameraToObjectZoom(this.currentFloor.groundUpper,t,n,i).zoom}fitCameraToGround(t=[20,20,20,20],n=500,i=!0){return this.currentFloor&&this.currentFloor.hasElement?this.fitCameraToObject(this.currentFloor.groundUpper,t,n,i):Promise.resolve(!1)}async setCameraPosition(t,n){return this.control.setCameraPositionByTarget(t,n)}pauseRender(){this.renderer.pauseRender()}continueRender(){this.renderer.continueRender()}dispose(){this.control.dispose(),this.cameraBound.dispose(),this.selection.dispose(),this.hoverHelper.dispose(),this.unRegistryEvent(),this.renderer.domElement.remove(),this.renderer.dispose(),this.lights.children.forEach(t=>t.dispose()),Jt(this.scene)}};import{merge as Uf}from"lodash";var Bf={apiDomain:"",apiInfo:{},apiPath:{floorGraphic:"/api/inception-map/floor/get",floorRange:"/api/inception-map/range/get",equipmentList:"/api/inception-map/equipment/get",roadNetwork:"/api/inception-map/road_network/get"},enableBoxSelect:!0,resizeObserver:!1,initTransToMark:!1,heatMap:{radius:50,gradient:{0:"#8F9FCD",.5:"#6284FF",1:"#F95D5D"}},useFloorCache:!0,control:{maxPolar:1.2,defaultPolar:1.1,defaultAzimuthal:0},defaultPadding:[20,20,20,20],svg:{circle:{radius:"2",fill:"#1CADFF"},line:{stroke:"#1CADFF"}},selectBox:{stroke:"#1CADFF",fill:"rgba(28, 173, 255, 0.3)"},hover:{time:100},ground:{color:"#F6F6F6",opacity:1,height:.001,stroke:!1,strokeColor:"#E6E6E6",strokeOpacity:1},markGraphic:{color:"#EEF0F3",opacity:1,height:.001,stroke:!1,strokeColor:"#000",strokeOpacity:1},graphic:{fillOpacity:1},cameraBound:{padding:[150,150,150,150]},poi:{boxScale:1}};function Sa(r){return Uf({},Bf,r)}import{debounce as kf}from"lodash";var Vf=(t=>(t[t.D2=0]="D2",t[t.D3=1.1]="D3",t))(Vf||{}),Ma=class extends zf{constructor(t,n={}){super();this.container=t;this.config=Sa(n),this.context=new Hr(t,this.config),this.registryEvent()}config;context;polarKeys=[];azimuthalKeys=[];svgLine;svgPolygon;basicZoom=1;prevCameraZoom=1;type="2d";currentBuildGround=null;observe=null;buildingCenter=[0,0];timer=new Gt;plugins=[];changeBuildingCenter(t,{brand:n,project:i}){let o=t?hr(t.info.geometry.cds[0]):[0,0];this.buildingCenter=o,this.dispatchEvent({type:"center-change",center:o,project:i,brand:n})}use(t){t.bmap=this,this.plugins.push(t)}unUse(t){this.plugins=this.plugins.filter(n=>n!==t)}triggerHooks(t,n){this.dispatchEvent({type:t,data:n})}switchFloorByFloor(t,n=t.graphicLayer.children){this.triggerHooks("switch_floor_before",{curFloor:t,graphics:n}),this.context.switchFloor(t),this.initialFloorCamera(),this.triggerHooks("switch_floor_after",{curFloor:t,graphics:n})}initialFloorCamera(){this.context.cameraBound.setEnable(!1),this.context.control.minZoom=0,this.context.control.maxZoom=1/0,this.context.camera.zoom=1,this.context.setAzimuthalAngle(this.config.control.defaultAzimuthal,0),this.context.setPolarAngle(this.config.control.defaultPolar,0),this.context.fitCameraToGround(void 0,0);let t=this.context.camera.zoom;this.context.control.minZoom=t,this.context.control.maxZoom=t*30,this.type==="3d"&&this.context.fitCameraToGround(this.config.defaultPadding,0,!1),this.basicZoom=this.context.camera.zoom,this.context.control.addEventListener("change",this.onControlChange),this.onControlChange(),this.context.cameraBound.setEnable(!0),this.context.cameraBound.changePrevCamera()}onControlChange=()=>{let{camera:{zoom:t}}=this.context;t!==this.prevCameraZoom&&(this.dispatchEvent({type:"zoom-change",basicZoom:this.basicZoom,cameraZoom:this.context.camera.zoom}),this.prevCameraZoom=t)};addModel(t,n){if(t.options.geometry.type==="polygon"){let i=this.context.currentFloor?.addModel({...n,position:t.getPosition().setZ(.1),id:t.options.id});if(i){let{facilityAngle:o=0,facilityXScale:a=1,facilityYScale:c=1}=t.options.userData;i.rotateZ((180-o)/180*Math.PI),i.scale.set(a,c,1)}}}addHeatmap(t){return this.context.currentFloor?.addHeatmap(t)}getLegacyToGraphicMap(){return this.context.currentFloor?.userData.legacyToGraphicMap||new Map}getFloorAllGraphics(){return this.context.currentFloor?.graphicLayer.children.filter(t=>t instanceof Ft)||[]}createGraphicPoi(t,n){if(this.context.currentFloor){n.id===void 0&&(n.id=t.options.id);let i=t.options.center,o=t.getCenter(),a=i?.[0]||o.x,c=i?.[1]||o.y;return console.log(a,c,i,o),this.context.currentFloor.addPoi({...n,position:{x:a,y:c,z:o.z+t.options.height/2}})}return null}removeHeatMap(){this.context.currentFloor?.removeHeatMap()}translateElementToCenter(t,n=500){let i=t.getPosition();return this.context.setCameraPosition(i,n)}async translateElementToCenterX(t,n=500){return Le(new Promise(i=>{let o=this.context.control.target.clone(),a=t.getPosition();this.timer.requestAnimationFrame(()=>{let{clientSize:{width:c,height:l},camera:s}=this.context,h=et(a,s,c,l).x-c/2,f=new Gf;f.setFromMatrixColumn(this.context.camera.matrix,0),f.normalize(),f.multiplyScalar(h/this.context.camera.zoom),o.add(f),this.context.setCameraPosition(o,n).then(i)})}),n+500)}getElementDeviceCoordinate(t){let n=t.position.clone(),{clientWidth:i,clientHeight:o}=this.container;return et(n,this.context.camera,i,o)}changeMapType(t,n=500){return this.type=t,t==="2d"?this.context.setPolarAngle(0,n):this.context.setPolarAngle(1.1,n)}async resetView(t=300){let n=t/3;await this.context.setAzimuthalAngle(this.config.control.defaultAzimuthal,n),await this.context.setPolarAngle(this.config.control.defaultPolar,n),await this.context.fitCameraToGround(this.config.defaultPadding,n,!1)}reduceMap(t=.5,n=500){let i=this.context.camera.zoom;return this.context.setZoom(i-t,this.context.control.target,n)}enlargeMap(t=.5,n=500){let i=this.context.camera.zoom;return this.context.setZoom(i+t,this.context.control.target,n)}onKeydown=t=>{this.polarKeys.includes(t.code)&&(this.context.control.maxPolarAngle=this.config.control.maxPolar,this.context.control.minPolarAngle=0),this.azimuthalKeys.includes(t.code)&&(this.context.control.maxAzimuthAngle=1/0,this.context.control.minAzimuthAngle=1/0)};onKeyUp=t=>{if(this.polarKeys.includes(t.code)){let n=this.context.control.getPolarAngle();this.context.control.maxPolarAngle=n,this.context.control.minPolarAngle=n}if(this.azimuthalKeys.includes(t.code)){let n=this.context.control.getAzimuthalAngle();this.context.control.maxAzimuthAngle=n,this.context.control.minAzimuthAngle=n}};registryEvent(){if(window.addEventListener("keydown",this.onKeydown),window.addEventListener("keyup",this.onKeyUp),this.config.resizeObserver){let t=new ResizeObserver(kf(this.resize,5));t.observe(this.container),this.observe=t}}unRegistryEvent(){window.removeEventListener("keydown",this.onKeydown),window.removeEventListener("keyup",this.onKeyUp),this.observe?.disconnect(),this.observe=null}configurePolarShortcutKeys(t){this.polarKeys=t}configureAzimuthalShortcutKeys(t){this.azimuthalKeys=t}rotateMap(t=.1){let n=this.context.control.getAzimuthalAngle();this.context.setAzimuthalAngle(n+t,500)}async measureDistance(){return this.cancelDistance(),new Promise((t,n)=>{this.changeMapType("2d",0),this.context.control.enableRotate=!1,this.svgLine=new wr(this.context);let i=this.svgLine.dispose.bind(this.svgLine);this.svgLine.dispose=function(){i(),n("cancel")},this.svgLine.addEventListener("distance",({distance:o})=>{t(o)})})}cancelDistance(){this.svgLine&&(this.svgLine.dispose(),this.svgLine=void 0,this.context.control.enableRotate=!0)}measureArea(){return this.cancelArea(),new Promise((t,n)=>{this.changeMapType("2d",0),this.context.control.enableRotate=!1,this.svgPolygon=new Tr(this.context);let i=this.svgPolygon.dispose.bind(this.svgPolygon);this.svgPolygon.dispose=function(){i(),n("cancel")},this.svgPolygon.addEventListener("area",({area:o})=>{t(o)})})}cancelArea(){this.svgPolygon&&(this.svgPolygon.dispose(),this.svgPolygon=void 0,this.context.control.enableRotate=!0)}getGraphicByNodeId(t){return this.context.currentFloor?.graphicLayer.getGraphicByNodeId(t)||null}deleteGraphic(t){this.context.currentFloor?.graphicLayer.removeGraphic(t)}createGraphicByOptions(t){if(!t.transformToBuildingGround&&this.currentBuildGround){let n=hr(this.currentBuildGround.info.geometry.cds[0]);if(t.geometry.type==="polygon")t.geometry.coords=JSON.parse(JSON.stringify(t.geometry.cds)),t.geometry.coords.map(i=>{Array.isArray(i)&&i.forEach(o=>{o[0]-=n[0],o[1]-=n[1]})});else{let[i,o]=t.geometry.cds;t.geometry.coords=[i-n[0],o-n[1]]}}return this.context.currentFloor?.graphicLayer.createGraphic(t)}removePoiById(t){this.context.currentFloor?.poiLayer.removePoiById(t),this.context.currentFloor?.poiLayer2.removePoiById(t)}getPoiById(t){return this.context.currentFloor?.poiLayer.getPoiById(t)||this.context.currentFloor?.poiLayer2.getPoiById(t)}getPois(){return[...(this.context.currentFloor?.poiLayer.pois||[]).filter(t=>!t.options.built_in),...this.context.currentFloor?.poiLayer2.pois||[]]}clearPoi(){this.context.currentFloor&&this.context.currentFloor.poiLayer.clear()}removeSelectGraphic(t){this.context.selection.remove(t)}resize=()=>{this.context.cameraBound.setEnable(!1),this.context.onWindowResize();let t=this.context.control.getAzimuthalAngle(),n=this.context.camera.zoom;this.context.control.minZoom=0,this.context.control.maxZoom=1/0,this.context.camera.zoom=1,this.context.setAzimuthalAngle(0,0);let i=this.context.getFitCameraToGroundZoom(void 0,0)||1;this.context.camera.zoom=n,this.context.control.minZoom=i,this.context.control.maxZoom=i*25,this.basicZoom=n,this.context.control.addEventListener("change",this.onControlChange),this.context.setAzimuthalAngle(t,0),this.context.cameraBound.setEnable(!0)};dispose(){this.timer.dispose(),this.plugins.forEach(t=>t.dispose()),this.context.dispose(),this.unRegistryEvent(),We.dispose(),qe.dispose(),nn.dispose(),Xe.dispose(),Rt.dispose()}};import{EventDispatcher as Hf}from"three";var Ae=class extends Hf{bmap;constructor(e){super(),this.bmap=e}dispose(){}};var wa=class extends Ae{equipmentList=[];equipmentMap=new Map;constructor(e){super(e),this.fetchEquipment(),this.bmap.addEventListener("switch_floor_after",this.onSwitchFloor)}async fetchEquipment(){let{apiDomain:e,apiPath:{equipmentList:t},apiInfo:n}=this.bmap.config,i=`${e}${t}`;await fetch(i,n).then(o=>o.json()).then(o=>o.data).then(o=>{this.equipmentList=o,this.equipmentMap=new Map(o.map(a=>[a.equipment_id,a]))}),this.dispatchEvent({type:"change-equipment-list",data:this.equipmentList}),this.bmap.context.currentFloor&&this.changeGraphicToEquipment(this.bmap.context.currentFloor.graphicLayer.children)}onSwitchFloor=({data:{graphics:e}})=>{this.equipmentList.length&&this.changeGraphicToEquipment(e)};getGraphicEquipment(e){return e.userData.data.info.userData.equipment}changeGraphicToEquipment(e){e.filter(t=>{let n=this.getGraphicEquipment(t);return n&&this.equipmentMap.has(n)}).forEach(t=>{let n=this.equipmentMap.get(this.getGraphicEquipment(t)),i=this.bmap.createGraphicPoi(t,{icon:n?.equipment_icon,built_in:!0,icon_size:[14,14]});i&&(i.userData.data=n,i.userData.type="equipment")})}dispose(){this.bmap.removeEventListener("switch_floor_after",this.onSwitchFloor),Array.from(this.bmap.context.currentFloor?.poiLayer.pois||[]).forEach(e=>{e.userData.type==="equipment"&&this.bmap.context.currentFloor?.poiLayer.removePoi(e)})}};import{Mesh as Jf,Object3D as Qf,TextureLoader as td,Color as ed,Vector2 as Li,Vector3 as nd,NormalBlending as rd,RepeatWrapping as id}from"three";import{BufferGeometry as Wf,Matrix4 as Ca,Vector3 as sn,Ray as qf,Sphere as Xf,LineSegments as jf,BufferAttribute as je,ShaderChunk as re,ShaderMaterial as Aa,UniformsLib as Yf,Color as $f,Vector2 as Ta}from"three";var ie=class extends Wf{constructor(){super(),this.isMeshLine=!0,this.type="MeshLine",this.positions=[],this.previous=[],this.next=[],this.side=[],this.width=[],this.indices_array=[],this.uvs=[],this.counters=[],this._points=[],this._geom=null,this.widthCallback=null,this.matrixWorld=new Ca,Object.defineProperties(this,{geometry:{enumerable:!0,get:function(){return this}},geom:{enumerable:!0,get:function(){return this._geom},set:function(e){this.setGeometry(e,this.widthCallback)}},points:{enumerable:!0,get:function(){return this._points},set:function(e){this.setPoints(e,this.widthCallback)}}})}};ie.prototype.setMatrixWorld=function(r){this.matrixWorld=r};ie.prototype.setGeometry=function(r,e){this._geometry=r,this.setPoints(r.getAttribute("position").array,e)};ie.prototype.setPoints=function(r,e){if(!(r instanceof Float32Array)&&!(r instanceof Array)){console.error("ERROR: The BufferArray of points is not instancied correctly.");return}if(this._points=r,this.widthCallback=e,this.positions=[],this.counters=[],r.length&&r[0]instanceof sn)for(var t=0;t<r.length;t++){var n=r[t],i=t/r.length;this.positions.push(n.x,n.y,n.z),this.positions.push(n.x,n.y,n.z),this.counters.push(i),this.counters.push(i)}else for(var t=0;t<r.length;t+=3){var i=t/r.length;this.positions.push(r[t],r[t+1],r[t+2]),this.positions.push(r[t],r[t+1],r[t+2]),this.counters.push(i),this.counters.push(i)}this.process()};function Zf(r,e){var t=new Ca,n=new qf,i=new Xf,o=new sn,a=this.geometry;if(a.boundingSphere||a.computeBoundingSphere(),i.copy(a.boundingSphere),i.applyMatrix4(this.matrixWorld),r.ray.intersectSphere(i,o)!==!1){t.copy(this.matrixWorld).invert(),n.copy(r.ray).applyMatrix4(t);var c=new sn,l=new sn,s=new sn,u=this instanceof jf?2:1,h=a.index,f=a.attributes;if(h!==null)for(var d=h.array,g=f.position.array,p=f.width.array,m=0,v=d.length-1;m<v;m+=u){var b=d[m],y=d[m+1];c.fromArray(g,b*3),l.fromArray(g,y*3);var S=p[Math.floor(m/3)]!==void 0?p[Math.floor(m/3)]:1,x=r.params.Line.threshold+this.material.lineWidth*S/2,_=x*x,M=n.distanceSqToSegment(c,l,o,s);if(!(M>_)){o.applyMatrix4(this.matrixWorld);var w=r.ray.origin.distanceTo(o);w<r.near||w>r.far||(e.push({distance:w,point:s.clone().applyMatrix4(this.matrixWorld),index:m,face:null,faceIndex:null,object:this}),m=v)}}}}ie.prototype.raycast=Zf;ie.prototype.compareV3=function(r,e){var t=r*6,n=e*6;return this.positions[t]===this.positions[n]&&this.positions[t+1]===this.positions[n+1]&&this.positions[t+2]===this.positions[n+2]};ie.prototype.copyV3=function(r){var e=r*6;return[this.positions[e],this.positions[e+1],this.positions[e+2]]};ie.prototype.getDistance=function(r){let e=0;for(let t=0;t<r;t++){let n=6*t,i=new sn(this.positions[n],this.positions[n+1],this.positions[n+2]),o=new sn(this.positions[n+6],this.positions[n+7],this.positions[n+8]),a=i.distanceTo(o);e+=a}return e};ie.prototype.process=function(){var r=this.positions.length/6;this.previous=[],this.next=[],this.side=[],this.width=[],this.indices_array=[],this.uvs=[];var e;let t=this.getDistance(r-1);var n;this.compareV3(0,r-1)?n=this.copyV3(r-2):n=this.copyV3(0),this.previous.push(n[0],n[1],n[2]),this.previous.push(n[0],n[1],n[2]);for(var i=0;i<r;i++){if(this.side.push(1),this.side.push(-1),this.widthCallback?e=this.widthCallback(i/(r-1)):e=1,this.width.push(e),this.width.push(e),i===0)this.uvs.push(0,0),this.uvs.push(0,1);else if(i===r-1)this.uvs.push(1,0),this.uvs.push(1,1);else{let a=this.getDistance(i)/t;this.uvs.push(a,0),this.uvs.push(a,1)}if(i<r-1){n=this.copyV3(i),this.previous.push(n[0],n[1],n[2]),this.previous.push(n[0],n[1],n[2]);var o=i*2;this.indices_array.push(o,o+1,o+2),this.indices_array.push(o+2,o+1,o+3)}i>0&&(n=this.copyV3(i),this.next.push(n[0],n[1],n[2]),this.next.push(n[0],n[1],n[2]))}this.compareV3(r-1,0)?n=this.copyV3(1):n=this.copyV3(r-1),this.next.push(n[0],n[1],n[2]),this.next.push(n[0],n[1],n[2]),!this._attributes||this._attributes.position.count!==this.positions.length?this._attributes={position:new je(new Float32Array(this.positions),3),previous:new je(new Float32Array(this.previous),3),next:new je(new Float32Array(this.next),3),side:new je(new Float32Array(this.side),1),width:new je(new Float32Array(this.width),1),uv:new je(new Float32Array(this.uvs),2),index:new je(new Uint16Array(this.indices_array),1),counters:new je(new Float32Array(this.counters),1)}:(this._attributes.position.copyArray(new Float32Array(this.positions)),this._attributes.position.needsUpdate=!0,this._attributes.previous.copyArray(new Float32Array(this.previous)),this._attributes.previous.needsUpdate=!0,this._attributes.next.copyArray(new Float32Array(this.next)),this._attributes.next.needsUpdate=!0,this._attributes.side.copyArray(new Float32Array(this.side)),this._attributes.side.needsUpdate=!0,this._attributes.width.copyArray(new Float32Array(this.width)),this._attributes.width.needsUpdate=!0,this._attributes.uv.copyArray(new Float32Array(this.uvs)),this._attributes.uv.needsUpdate=!0,this._attributes.index.copyArray(new Uint16Array(this.indices_array)),this._attributes.index.needsUpdate=!0),this.setAttribute("position",this._attributes.position),this.setAttribute("previous",this._attributes.previous),this.setAttribute("next",this._attributes.next),this.setAttribute("side",this._attributes.side),this.setAttribute("width",this._attributes.width),this.setAttribute("uv",this._attributes.uv),this.setAttribute("counters",this._attributes.counters),this.setIndex(this._attributes.index),this.computeBoundingSphere(),this.computeBoundingBox()};function Ni(r,e,t,n,i){var o;if(r=r.subarray||r.slice?r:r.buffer,t=t.subarray||t.slice?t:t.buffer,r=e?r.subarray?r.subarray(e,i&&e+i):r.slice(e,i&&e+i):r,t.set)t.set(r,n);else for(o=0;o<r.length;o++)t[o+n]=r[o];return t}ie.prototype.advance=function(r){var e=this._attributes.position.array,t=this._attributes.previous.array,n=this._attributes.next.array,i=e.length;Ni(e,0,t,0,i),Ni(e,6,e,0,i-6),e[i-6]=r.x,e[i-5]=r.y,e[i-4]=r.z,e[i-3]=r.x,e[i-2]=r.y,e[i-1]=r.z,Ni(e,6,n,0,i-6),n[i-6]=r.x,n[i-5]=r.y,n[i-4]=r.z,n[i-3]=r.x,n[i-2]=r.y,n[i-1]=r.z,this._attributes.position.needsUpdate=!0,this._attributes.previous.needsUpdate=!0,this._attributes.next.needsUpdate=!0};re.meshline_vert=["",re.logdepthbuf_pars_vertex,re.fog_pars_vertex,"","attribute vec3 previous;","attribute vec3 next;","attribute float side;","attribute float width;","attribute float counters;","","uniform vec2 resolution;","uniform float lineWidth;","uniform vec3 color;","uniform float opacity;","uniform float sizeAttenuation;","","varying vec2 vUV;","varying vec4 vColor;","varying float vCounters;","","vec2 fix( vec4 i, float aspect ) {",""," vec2 res = i.xy / i.w;"," res.x *= aspect;"," vCounters = counters;"," return res;","","}","","void main() {",""," float aspect = resolution.x / resolution.y;",""," vColor = vec4( color, opacity );"," vUV = uv;",""," mat4 m = projectionMatrix * modelViewMatrix;"," vec4 finalPosition = m * vec4( position, 1.0 );"," vec4 prevPos = m * vec4( previous, 1.0 );"," vec4 nextPos = m * vec4( next, 1.0 );",""," vec2 currentP = fix( finalPosition, aspect );"," vec2 prevP = fix( prevPos, aspect );"," vec2 nextP = fix( nextPos, aspect );",""," float w = lineWidth * width;",""," vec2 dir;"," if( nextP == currentP ) dir = normalize( currentP - prevP );"," else if( prevP == currentP ) dir = normalize( nextP - currentP );"," else {"," vec2 dir1 = normalize( currentP - prevP );"," vec2 dir2 = normalize( nextP - currentP );"," dir = normalize( dir1 + dir2 );",""," vec2 perp = vec2( -dir1.y, dir1.x );"," vec2 miter = vec2( -dir.y, dir.x );"," //w = clamp( w / dot( miter, perp ), 0., 4. * lineWidth * width );",""," }",""," //vec2 normal = ( cross( vec3( dir, 0. ), vec3( 0., 0., 1. ) ) ).xy;"," vec4 normal = vec4( -dir.y, dir.x, 0., 1. );"," normal.xy *= .5 * w;"," normal *= projectionMatrix;"," if( sizeAttenuation == 0. ) {"," normal.xy *= finalPosition.w;"," normal.xy /= ( vec4( resolution, 0., 1. ) * projectionMatrix ).xy;"," }",""," finalPosition.xy += normal.xy * side;",""," gl_Position = finalPosition;","",re.logdepthbuf_vertex,re.fog_vertex&&" vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );",re.fog_vertex,"}"].join(`
105
105
  `);re.meshline_frag=["",re.fog_pars_fragment,re.logdepthbuf_pars_fragment,"","uniform sampler2D map;","uniform sampler2D alphaMap;","uniform float useMap;","uniform float useAlphaMap;","uniform float useDash;","uniform float dashArray;","uniform float dashOffset;","uniform float dashRatio;","uniform float visibility;","uniform float alphaTest;","uniform vec2 repeat;","uniform float thresholdRatio;","","varying vec2 vUV;","varying vec4 vColor;","varying float vCounters;","","void main() {","",re.logdepthbuf_fragment,""," vec4 c = vColor;"," if( useMap == 1. ) c *= texture2D( map, vUV * repeat );"," if( useAlphaMap == 1. ) c.a *= texture2D( alphaMap, vUV * repeat ).a;"," if( c.a < alphaTest ) discard;"," if( useDash == 1. ){"," c.a *= ceil(mod(vCounters + dashOffset, dashArray) - (dashArray * dashRatio));"," }"," gl_FragColor = c;"," gl_FragColor.a *= step(vCounters, visibility);","",re.fog_fragment,"if (vUV.x <= thresholdRatio) {","gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);","}","}"].join(`
106
106
  `);var qn=class extends Aa{constructor(e){super({uniforms:Object.assign({},Yf.fog,{lineWidth:{value:1},map:{value:null},useMap:{value:0},alphaMap:{value:null},useAlphaMap:{value:0},color:{value:new $f(16777215)},opacity:{value:1},resolution:{value:new Ta(1,1)},sizeAttenuation:{value:1},dashArray:{value:0},dashOffset:{value:0},dashRatio:{value:.5},useDash:{value:0},visibility:{value:1},alphaTest:{value:0},repeat:{value:new Ta(1,1)},thresholdRatio:{value:0},transparent:{value:!0},depthTest:{vale:!1},depthWrite:{value:!1}}),vertexShader:re.meshline_vert,fragmentShader:re.meshline_frag}),this.isMeshLineMaterial=!0,this.type="MeshLineMaterial",Object.defineProperties(this,{lineWidth:{enumerable:!0,get:function(){return this.uniforms.lineWidth.value},set:function(t){this.uniforms.lineWidth.value=t}},map:{enumerable:!0,get:function(){return this.uniforms.map.value},set:function(t){this.uniforms.map.value=t}},useMap:{enumerable:!0,get:function(){return this.uniforms.useMap.value},set:function(t){this.uniforms.useMap.value=t}},alphaMap:{enumerable:!0,get:function(){return this.uniforms.alphaMap.value},set:function(t){this.uniforms.alphaMap.value=t}},useAlphaMap:{enumerable:!0,get:function(){return this.uniforms.useAlphaMap.value},set:function(t){this.uniforms.useAlphaMap.value=t}},color:{enumerable:!0,get:function(){return this.uniforms.color.value},set:function(t){this.uniforms.color.value=t}},opacity:{enumerable:!0,get:function(){return this.uniforms.opacity.value},set:function(t){this.uniforms.opacity.value=t}},resolution:{enumerable:!0,get:function(){return this.uniforms.resolution.value},set:function(t){this.uniforms.resolution.value.copy(t)}},sizeAttenuation:{enumerable:!0,get:function(){return this.uniforms.sizeAttenuation.value},set:function(t){this.uniforms.sizeAttenuation.value=t}},dashArray:{enumerable:!0,get:function(){return this.uniforms.dashArray.value},set:function(t){this.uniforms.dashArray.value=t,this.useDash=t!==0?1:0}},dashOffset:{enumerable:!0,get:function(){return this.uniforms.dashOffset.value},set:function(t){this.uniforms.dashOffset.value=t}},dashRatio:{enumerable:!0,get:function(){return this.uniforms.dashRatio.value},set:function(t){this.uniforms.dashRatio.value=t}},useDash:{enumerable:!0,get:function(){return this.uniforms.useDash.value},set:function(t){this.uniforms.useDash.value=t}},visibility:{enumerable:!0,get:function(){return this.uniforms.visibility.value},set:function(t){this.uniforms.visibility.value=t}},alphaTest:{enumerable:!0,get:function(){return this.uniforms.alphaTest.value},set:function(t){this.uniforms.alphaTest.value=t}},repeat:{enumerable:!0,get:function(){return this.uniforms.repeat.value},set:function(t){this.uniforms.repeat.value.copy(t)}},thresholdRatio:{enumerable:!0,get:function(){return this.uniforms.thresholdRatio.value},set:function(t){this.uniforms.thresholdRatio.value=t}}}),this.setValues(e)}};qn.prototype.copy=function(r){return Aa.prototype.copy.call(this,r),this.lineWidth=r.lineWidth,this.map=r.map,this.useMap=r.useMap,this.alphaMap=r.alphaMap,this.useAlphaMap=r.useAlphaMap,this.color.copy(r.color),this.opacity=r.opacity,this.resolution.copy(r.resolution),this.sizeAttenuation=r.sizeAttenuation,this.dashArray.copy(r.dashArray),this.dashOffset.copy(r.dashOffset),this.dashRatio.copy(r.dashRatio),this.useDash=r.useDash,this.visibility=r.visibility,this.alphaTest=r.alphaTest,this.repeat.copy(r.repeat),this};var Pa="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAAQCAMAAACROYkbAAABrVBMVEVsjPdsjPdqi/doifdpivdrjPdsjPdsjPd/m/igtfqTq/lykfdri/dsjPdtjfe/zPv8/f/w8/6zw/p0kvdri/dsjPdtjffU3vz////////3+f62xfpzkfdri/dsjPdsjPeZr/nr8P7////////4+f62xfp0kvdri/dsjPdsjPdujveXrvne5v3////////3+f63x/t2lPdri/dsjPdsjPdsjPdri/eMpfjb4/3+/v/////4+v+7yft1k/dri/dsjPdsjPdri/eJovjl6/3////////3+f6Jo/lqivdsjPdri/dvjveluPry9f7////////i6f2BnPhqi/dsjPdrjPdvjveluPrv8v7////////l6/6Uq/lsjPdsjPdsjPdvjveluPrv8v7////////m6/6Uq/lsjPdsjPdsjPdsjPeZr/nv8v7////////s8f6XrvlsjPdsjPdtjffS2/z////////w9P6bsfltjfdsjPdtjffBz/v7/P/y9f6svvpxkPdrjPdsjPdsjPd+mviftPqVrPlykfdri/dsjPdsjPdri/doifdpifdrjPdsjPclkRlrAAAAx0lEQVQ4y2NgwAsYmZhZWNkYyAfsHJxc3Dy85BvAxy8gKCQsIkq2AWLiEpJS0jKycuQaIK+gqKSsoqqmrkGmAZpa2jq6evoGhkbG5BlgYmpmbmFpZW1ja0emE+wdHJ2cXVzd3D3INMDTy9vH188/IDCIPP3BIaFh4RGRUdExseQZEBefkJiUnJKalp5BngGZWdk5uXn5BemFZAZBUXFJaVl5RSWZ9jMwVFXX1NbVNzSSq5+hqbmlta29g2z9DJ1d3T29ffhUAABKPSh5Xst3GwAAAABJRU5ErkJggg==";var Da={texture_url:Pa,lineWidth:8,color:16777215},Wr=class extends Qf{constructor(t,n){super();this.navigation=t;this.config=Object.assign({},Da,n),this.registryEvent(),this.prevCameraZoom=this.navigation.bmap.context.camera.zoom}mesh=null;geometry=null;material=null;texture=null;config=Da;points=[];basicRepeat=1;prevCameraZoom=0;registryEvent(){this.navigation.bmap.context.addEventListener("control-change",this.onControlChange),this.navigation.bmap.context.addEventListener("update",this.onUpdate),this.navigation.bmap.context.addEventListener("resize",this.onResize)}unRegistryEvent(){this.navigation.bmap.context.removeEventListener("control-change",this.onControlChange),this.navigation.bmap.context.removeEventListener("update",this.onUpdate),this.navigation.bmap.context.removeEventListener("resize",this.onResize)}onControlChange=()=>{let t=this.navigation.bmap.context.camera.zoom;t!==this.prevCameraZoom&&(this.prevCameraZoom=t,this.changeRepeat())};onUpdate=()=>{this.texture};onResize=()=>{if(this.material){let{width:t,height:n}=this.navigation.bmap.context.clientSize;this.material.resolution.set(t,n)}};getRepeat(){let{points:t,navigation:{bmap:{context:{camera:n,clientSize:{width:i,height:o}}}}}=this,a=t.map(([l,s])=>et(new nd(l,s,0),n,i,o)).map(({x:l,y:s})=>[l,s]);return Me(a)/32}changeRepeat(){if(!this.material)return;let t=this.getRepeat();this.material.repeat=new Li(t,1)}loadTexture(t){return new Promise((n,i)=>{new td().load(t,n,void 0,i)})}transformPoints(t){let n=[];for(let i=0;i<t.length;i++)n.push(...t[i],0);return n}updatePoints(t){this.points=t,this.changeRepeat();let n=this.transformPoints(t);this.geometry&&this.geometry.setPoints(n)}movePath(t){this.material&&(this.material.thresholdRatio=t)}async create(t){let n=this.geometry=new ie;if(this.updatePoints(t),!this.texture){let a=this.texture=await this.loadTexture(this.config.texture_url);a.wrapS=a.wrapT=id}let i=this.material=new qn({useMap:!0,color:new ed(this.config.color),transparent:!0,resolution:new Li(this.navigation.bmap.context.clientSize.width,this.navigation.bmap.context.clientSize.height),depthTest:!0,sizeAttenuation:!1,lineWidth:this.config.lineWidth*2,map:this.texture,blending:rd,repeat:new Li(this.getRepeat(),1)}),o=this.mesh=new Jf(n,i);return o.renderOrder=9,this.add(o),o}dispose(){this.unRegistryEvent(),this.clear(),this.geometry?.dispose(),this.material?.dispose(),this.texture?.dispose()}};import{Tween as Oi,Easing as ud}from"@tweenjs/tween.js";import{Vector3 as an}from"three";import{EventDispatcher as od}from"three";import{Tween as sd}from"@tweenjs/tween.js";var ad={offsetDistance:15,offsetToResetTime:3e3,directionEmitThreshold:5,simulationSpeed:1},qr=class extends od{constructor(t,n){super();this.navigation=t;this.options=Object.assign({},ad,n),this.registryEvent()}offset=!1;reset=!1;position=[0,0];routeIndex=0;pointIndex=0;paths=[];options;timer=new Gt;resetTimer=null;tweenUtil=new vn;simulationTween;get curRoutePath(){return this.paths[this.routeIndex]||null}get curRoutePathPoints(){return this.curRoutePath?.points||[]}registryEvent(){this.navigation.bmap.context.addEventListener("update",this.onUpdate),this.navigation.addEventListener("add-path",this.onAddPaths)}unRegistryEvent(){this.navigation.bmap.context.removeEventListener("update",this.onUpdate),this.navigation.removeEventListener("add-path",this.onAddPaths)}onAddPaths=({paths:t})=>{this.paths=t,this.resetStatus(t),this.emitNavigationStatus()};onUpdate=()=>{this.tweenUtil.update()};resetStatus(t){this.offset=!1,this.reset=!1,this.routeIndex=0,t.length&&(this.position=t[0].points[0])}emitNavigationStatus(){let t=this.getNavigationInfo();t&&this.dispatchEvent({type:"navigation-info",info:t})}adsorb(t,n){let{curRoutePathPoints:i,position:o,curRoutePath:a,paths:c,routeIndex:l}=this;if(!i.length)return null;let s=i;if(o){let p=fn(i,o);s=s.slice(p+1),s.unshift(o)}let u=[{floor:a?.floor,points:s},...c.slice(l+1)],{distance:h,closestPoint:f,index:d,i:g}=u.reduce((p,m,v)=>{if(m.floor!==t)return p;let{distance:b,closestPoint:y,index:S}=m.points.reduce((x,_,M,w)=>{if(!w[M+1])return x;let{distance:C,closestPoint:P}=zs(n,_,w[M+1]);return C<x.distance?{distance:C,closestPoint:P,index:M}:x},{distance:1/0,closestPoint:m.points[0],index:0});return b<p.distance?{distance:b,closestPoint:y,index:v,i:S}:p},{distance:1/0,closestPoint:s[0],index:0,i:0});return{distance:h,closestPoint:f,routeIndex:d+l,pointIndex:d===0?g+this.pointIndex:g}}toPosition(t,n){let i=this.adsorb(t,n);if(console.log("adsorbData",i),!i)return;let{distance:o,closestPoint:a,routeIndex:c,pointIndex:l}=i;o>this.options.offsetDistance?(this.offset=!0,this.resetTimer||(this.resetTimer=this.timer.setTimeout(()=>{this.reset=!0,this.resetTimer=null},this.options.offsetToResetTime))):(this.offset=!1,this.reset=!1,this.resetTimer&&this.timer.clearTimeout(this.resetTimer)),this.routeIndex=c,this.pointIndex=l,this.position=a,this.emitNavigationStatus()}startSimulation(){this.resetStatus(this.paths),this.emitNavigationStatus(),this.startCurRouteSimulation()}async startCurRouteSimulation(){let{curRoutePath:t}=this;if(!t)return;this.simulationTween&&this.tweenUtil.remove(this.simulationTween);let n=[];return new Promise(i=>{let o=[this.position,...this.curRoutePathPoints.slice(this.pointIndex+1)],a=this.getCurRouteRemainDistance(),c=a/this.options.simulationSpeed,l=this.simulationTween=new sd({distance:0},this.tweenUtil.group).to({distance:a},c*1e3).onUpdate(s=>{let u=dr(o,s.distance);u&&(n.push({floor:t.floor,pos:u}),this.toPosition(t.floor,u))}).onComplete(()=>{this.tweenUtil.remove(l),this.routeIndex+1<this.paths.length?(this.routeIndex++,this.position=this.paths[this.routeIndex].points[0],this.pointIndex=0,i(this.startCurRouteSimulation())):(i(!0),console.log(n))}).start()})}changeSimulationSpeed(t){this.options.simulationSpeed=t,this.startCurRouteSimulation()}getCurRouteRemainDistance(){let{curRoutePathPoints:t,pointIndex:n,position:i}=this;if(!t.length)return 0;let o=[i,...t.slice(n+1)];return Me(o)}getRemainDistance(){let t=this.getCurRouteRemainDistance();return{total:this.paths.slice(this.routeIndex+1).reduce((o,a)=>o+a.distance,0)+t,curRoute:t}}getNextDirDistance(){if(!this.position)return null;let{pointIndex:t,curRoutePathPoints:n,position:i}=this,o=n[t],a=n[t+1],c=n[t+2];if(!o||!a)return null;let l=kt(i,a);return t===0&&kt(o,i)<5?{dir:"start",distance:l}:c?{dir:Mi(o,a,c),distance:l}:{dir:"end",distance:l}}getNavigationInfo(){let{total:t,curRoute:n}=this.getRemainDistance(),i=this.getNextDirDistance();if(!i)return null;let{dir:o,distance:a}=i;return o==="end"&&a>15&&(o="front"),o!=="start"&&a>=this.options.directionEmitThreshold&&(o="front"),n<=5&&(o="end"),{distance:t,curRouteDistance:n,nextDirDistance:a,dir:o,pos:this.position,routeIndex:this.routeIndex,offset:this.offset,reset:this.reset}}dispose(){this.timer.dispose(),this.unRegistryEvent(),this.tweenUtil.clear()}};var ld={path:{},cheapMaximumDistance:20,needStartPoi:!1,startPoi:{},positionNavigation:{},offsetY:150,directionEmitThreshold:5,disablePathAnimation:!1,speed:1},Ia=class extends Ae{path=null;fetchRoadStatus=!1;paths=[];curPathIndex=0;curFloorPath=null;translatePath=null;currentPathPosition=null;options;pathTween=null;startPoi=null;movedDistance=0;pathStart=[0,0];tweenUtil=new vn;animationPathOptions={cPathIndex:0};cPath=[];positionNavigation;pathMoving=!1;nextPoint=null;constructor(e,t={},n){super(e),!n&&typeof t=="object"&&(n=t),this.options=Object.assign({},ld,n);let{apiDomain:i,apiPath:{roadNetwork:o},apiInfo:a}=this.bmap.config;this.positionNavigation=new qr(this,{simulationSpeed:this.options.speed,...this.options.positionNavigation}),this.registryEvent()}get curFloorPathLength(){return this.curFloorPath?.distance??0}get curFloorPathPoints(){return this.curFloorPath?.points??[]}registryEvent(){this.bmap.context.addEventListener("update",this.onUpdate),this.bmap.addEventListener("switch_floor_after",this.onSwitchFloor),this.positionNavigation.addEventListener("navigation-info",this.onNavigationInfo)}onNavigationInfo=({info:e})=>{if(this.dispatchEvent({type:"navigation-info",info:e}),!e.offset){if(e.routeIndex!==this.curPathIndex)return;this.pathMoving?this.nextPoint=e.pos:(this.toPositionBySpeed(e.pos,this.options.speed).then(()=>{this.pathMoving=!1}),this.nextPoint=null)}};pauseAnimation(){this.tweenUtil.pause(),this.positionNavigation.tweenUtil.pause()}continueAnimation(){this.tweenUtil.continue(),this.positionNavigation.tweenUtil.continue()}clearTween(){this.tweenUtil.clear(),this.pathMoving=!1}unRegistryEvent(){this.bmap.context.removeEventListener("update",this.onUpdate),this.bmap.removeEventListener("switch_floor_after",this.onSwitchFloor),this.positionNavigation.removeEventListener("navigation-info",this.onNavigationInfo)}onUpdate=()=>{this.tweenUtil.update()};clearPath(){this.path&&(this.bmap.context.scene.remove(this.path),this.path.dispose(),this.path=null,this.clearTween()),this.startPoi&&(this.bmap.context.currentFloor?.poiLayer2.removePoi(this.startPoi),this.startPoi=null),this.translatePath=null}setCurFloorPath(e){e===null?(this.curFloorPath=null,this.currentPathPosition=null):(this.curFloorPath=e,this.currentPathPosition=e.points[0]),this.movedDistance=0,this.pathMoving=!1}setCurPathIndex(e){this.curPathIndex=e,this.paths[e]?.floor===this.bmap.context.currentFloor?.name?(this.setCurFloorPath(this.paths[e]),this.renderPath(this.translatePoints(this.curFloorPathPoints))):this.clearPath()}onSwitchFloor=({data:{curFloor:e}})=>{if(this.clearTween(),this.nextPoint=null,this.pathMoving=!1,this.paths[this.curPathIndex]){let t=this.paths[this.curPathIndex];this.setCurFloorPath(t??null),t?this.renderPath(this.translatePoints(t.points)):this.clearPath()}else this.clearPath()};addPath(e,t=0){this.paths=e,this.curPathIndex=t,this.clearTween();let n=this.bmap.context.currentFloor?.name,i=e[t];if(n&&i?.floor===n)if(this.setCurFloorPath(i),this.bmap.currentBuildGround)this.renderPath(this.translatePoints(i.points));else{let o=()=>{this.bmap.removeEventListener("center-change",o),this.renderPath(this.translatePoints(i.points))};this.bmap.addEventListener("center-change",o)}else this.clearPath();this.dispatchEvent({type:"add-path",paths:e})}translatePoints(e){let[t,n]=this.bmap.buildingCenter;return e.map(i=>[i[0]-t,i[1]-n])}renderPath(e){this.translatePath=e;let t=this.catmullRomCurve3(e);this.cPath=t,this.animationPathOptions={cPathIndex:0},this.pathStart=t[0],this.path?this.path.updatePoints(t):(this.path=new Wr(this,this.options.path),this.path.create(t),this.path.position.z=this.bmap.context.currentFloor.groundMaxHeight+.5,this.bmap.context.scene.add(this.path)),this.path.movePath(0),this.startPoi&&(this.bmap.context.currentFloor?.poiLayer2.removePoi(this.startPoi),this.startPoi=null),this.options.needStartPoi&&(this.startPoi=new ne(this.bmap.context,{...this.options.startPoi,id:"navigation_start_poi",position:{x:t[0][0],y:t[0][1],z:.51},collision_enable:!1})||null,this.bmap.context.currentFloor?.poiLayer2.pushPoi(this.startPoi)),this.dispatchEvent({type:"render-path",path:this.path})}catmullRomCurve3(e){return Bs(e,!1,!0,.1,170,2.5)}getPathDirection(){if(!this.curFloorPath||!this.currentPathPosition||this.curFloorPathPoints.length<2)return null;let e=fn(this.curFloorPathPoints,this.currentPathPosition),t=this.curFloorPathPoints[e],n=this.curFloorPathPoints[e+1],i=new an(n[0]-t[0],n[1]-t[1],0).normalize(),o=new an(0,1,0).normalize(),a=i.angleTo(o),c=new an().crossVectors(o,i);return(Object.is(c.y,0)?-1:1)*a}async changeCameraToPathUp(e=100){let t=this.getPathDirection();if(t===null)return;let n=this.bmap.context.control.getAzimuthalAngle();Math.abs(n-t)>Math.PI&&(n>0?t=Math.PI*2+t:t=t-Math.PI*2);let i=Math.abs(t-this.bmap.context.control.getAzimuthalAngle());if(i<.01)return;let{control:o}=this.bmap.context,a=e/Math.PI*6*i;return new Promise(c=>{let l={azimuthal:o.getAzimuthalAngle()},s={azimuthal:t},u=new Oi(l,this.tweenUtil.group).to(s,a).easing(ud.Quadratic.InOut).onUpdate(async()=>{o.target.copy(this.startPoi.position),o.setAzimuthalAngle(l.azimuthal,!0),o.setTargetByOffset(this.options.offsetY)}).onComplete(()=>{o.enabled=!0,this.tweenUtil.remove(u),c(!0)}).onStart(()=>{o.enabled=!1}).start()})}async initNavigationCamera(e=1e3){this.clearTween(),this.bmap.context.control.clearTween(),await this.initCameraZoom(e/2),await this.changeCameraToPathUp(e/4),await this.translateCameraToStartPoi(e/4),this.nextPoint&&this.toPositionBySpeed(this.nextPoint,this.options.speed)}async translateCameraToStartPoi(e=100){if(!this.startPoi)return;let{clientSize:{width:t,height:n},camera:i,control:o}=this.bmap.context,a=Math.round(t/2),c=Math.round(n/2),l=o.target.clone(),s=et(this.startPoi.position,i,t,n),u=s.x-a,h=c-s.y+this.options.offsetY;if(!(Math.abs(u)<=1&&Math.abs(h)<=1)){if(Math.abs(u)>=1){let f=new an;f.setFromMatrixColumn(i.matrix,0),f.normalize(),f.multiplyScalar(u/i.zoom),l.add(new an(f.x,0,0))}if(Math.abs(h)>=1){let f=new an;f.setFromMatrixColumn(i.matrix,1),f.normalize(),f.multiplyScalar(h/i.zoom),l.add(new an(0,f.y,0))}return Le(new Promise(f=>{let d=o.target.clone();console.log(d,l,e);let g=new Oi(d,this.tweenUtil.group).to(l,e).onUpdate(()=>{this.bmap.context.control.setCameraPositionByTarget(d,0)}).onComplete(()=>{this.bmap.context.control.setCameraPositionByTarget(l,0),this.tweenUtil.remove(g),this.bmap.context.control.enabled=!0,f(!0)}).onStart(()=>{this.bmap.context.control.enabled=!1}).start()}),e+500)}}async initCameraZoom(e=100){if(!this.startPoi)return;let{clientSize:{width:t,height:n},currentFloor:i}=this.bmap.context,{max:o,min:a}=i.box,l=Math.min(t/(o.x-a.x),n/(o.y-a.y))*(o.x-a.x)/20;return this.bmap.context.setZoom(l,this.startPoi.position,e)}toPosition(e,t){this.positionNavigation.toPosition(e,t)}startSimulation(){this.positionNavigation.startSimulation()}setSimulationSpeed(e){this.positionNavigation.changeSimulationSpeed(e)}async toPositionBySpeed(e,t){let{currentPathPosition:n,curFloorPath:i,curFloorPathPoints:o}=this;if(!i||!n)return null;let a=this.movedDistance,c=ks(o,e);if(a===-1||c===-1||c<=a)return null;let l=c-a;if(!l)return;let s=Math.min(l/t,1);return this.pathTween&&this.clearTween(),this.pathMoving=!0,new Promise(u=>{let h=this.pathTween=new Oi({distance:0},this.tweenUtil.group).to({distance:l},s*1e3).onUpdate(async f=>{this.moveDistance(f.distance+a,h)}).onComplete(()=>{if(this.tweenUtil.remove(h),this.nextPoint){let f=this.nextPoint;this.nextPoint=null,u(this.toPositionBySpeed(f,this.options.speed))}else u(!0)}).start()})}async moveDistance(e,t){this.movedDistance=e,this.path?.movePath(this.movedDistance/this.curFloorPathLength);let n=dr(this.curFloorPathPoints,this.movedDistance);if(n===null)return;this.currentPathPosition=n;let i=this.translatePoints([n])[0];this.startPoi&&(this.startPoi.position.setX(i[0]).setY(i[1]),this.options.disablePathAnimation||this.bmap.context.control.setTargetByOffset(this.options.offsetY,this.startPoi.position.clone())),this.options.disablePathAnimation||(t?.pause(),this.positionNavigation.tweenUtil.pause(),await this.changeCameraToPathUp(500/this.options.speed),this.positionNavigation.tweenUtil.continue(),t?.resume())}setStartPoiRotate(e){if(this.startPoi){let n=(this.bmap.context.control.getAzimuthalAngle()*180/Math.PI+360)%360;this.startPoi.options.icon_rotate=(360-e-n)%360}}dispose(){this.tweenUtil.dispose(),this.unRegistryEvent(),this.path?.dispose(),this.startPoi?.dispose(),this.positionNavigation.dispose()}};import{Group as cd}from"three";var Ra=class extends Ae{poiLayer;floors=[];group=new cd;constructor(e){super(e),this.poiLayer=new _n(e.context)}show(e){let t=e[0].userData.height;e.forEach(o=>{o.poiLayer.pois.forEach(a=>{this.poiLayer.pushPoi(a)}),o.poiLayer.pois.length=0,o.poiLayer.dispose(),o.position.z=t,t+=o.userData.height});let{scene:n,currentFloor:i}=this.bmap.context;i&&(n.remove(i),i.dispose()),this.group.add(this.poiLayer,...e),n.add(this.group),this.floors=e,this.bmap.context.cameraBound.updateBox()}hide(){let{scene:e}=this.bmap.context;e.remove(this.group),this.poiLayer.clear(!0),this.floors.forEach(t=>{t.dispose()}),this.floors=[],this.group.clear()}fitCamera(){let{context:e,config:t,type:n}=this.bmap;e.cameraBound.setEnable(!1),e.control.minZoom=0,e.control.maxZoom=1/0,e.camera.zoom=1,e.setAzimuthalAngle(t.control.defaultAzimuthal,0),e.setPolarAngle(t.control.defaultPolar,0),e.fitCameraToObject(this.group,void 0,0);let i=e.camera.zoom;e.control.minZoom=i,e.control.maxZoom=i*25,n==="3d"&&e.fitCameraToObject(this.group,t.defaultPadding,0,!1),this.bmap.basicZoom=e.camera.zoom,e.control.addEventListener("change",this.bmap.onControlChange.bind(this.bmap)),this.bmap.onControlChange(),e.cameraBound.setEnable(!0)}dispose(){this.poiLayer.dispose(),this.floors.forEach(e=>e.dispose()),this.floors=[]}};import{EventDispatcher as hd}from"three";function Xn(r){let e=new Blob([r],{type:"text/javascript"}),t=URL.createObjectURL(e),n=new Worker(t);return URL.revokeObjectURL(t),n}function Fi(){return Xn(`var RP=Object.create;var Zd=Object.defineProperty,LP=Object.defineProperties,NP=Object.getOwnPropertyDescriptor,OP=Object.getOwnPropertyDescriptors,DP=Object.getOwnPropertyNames,Wv=Object.getOwnPropertySymbols,FP=Object.getPrototypeOf,qv=Object.prototype.hasOwnProperty,UP=Object.prototype.propertyIsEnumerable;var $d=(r,t,e)=>t in r?Zd(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e,Wc=(r,t)=>{for(var e in t||(t={}))qv.call(t,e)&&$d(r,e,t[e]);if(Wv)for(var e of Wv(t))UP.call(t,e)&&$d(r,e,t[e]);return r},Xv=(r,t)=>LP(r,OP(t));var ye=(r,t)=>()=>(t||r((t={exports:{}}).exports,t),t.exports);var BP=(r,t,e,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of DP(t))!qv.call(r,a)&&a!==e&&Zd(r,a,{get:()=>t[a],enumerable:!(o=NP(t,a))||o.enumerable});return r};var Er=(r,t,e)=>(e=r!=null?RP(FP(r)):{},BP(t||!r||!r.__esModule?Zd(e,"default",{value:r,enumerable:!0}):e,r));var Ei=(r,t,e)=>$d(r,typeof t!="symbol"?t+"":t,e);var $v=ye((lz,Yv)=>{var Jd=class{constructor(){this.keys=new Set,this.queue=[]}sort(){this.queue.sort((t,e)=>t.priority-e.priority)}set(t,e){let o=Number(e);if(isNaN(o))throw new TypeError('"priority" must be a number');return this.keys.has(t)?this.queue.map(a=>(a.key===t&&Object.assign(a,{priority:o}),a)):(this.keys.add(t),this.queue.push({key:t,priority:o})),this.sort(),this.queue.length}next(){let t=this.queue.shift();return this.keys.delete(t.key),t}isEmpty(){return this.queue.length===0}has(t){return this.keys.has(t)}get(t){return this.queue.find(e=>e.key===t)}};Yv.exports=Jd});var Kv=ye((cz,Jv)=>{function Zv(r,t){let e=new Map;for(let[o,a]of r)o!==t&&a instanceof Map?e.set(o,Zv(a,t)):o!==t&&e.set(o,a);return e}Jv.exports=Zv});var t_=ye((fz,jv)=>{function zP(r){let t=Number(r);return!(isNaN(t)||t<=0)}function Qv(r){let t=new Map;return Object.keys(r).forEach(o=>{let a=r[o];if(a!==null&&typeof a=="object"&&!Array.isArray(a))return t.set(o,Qv(a));if(!zP(a))throw new Error(\`Could not add node at key "\${o}", make sure it's a valid node\`,a);return t.set(o,Number(a))}),t}jv.exports=Qv});var r_=ye((hz,n_)=>{function e_(r){if(!(r instanceof Map))throw new Error(\`Invalid graph: Expected Map instead found \${typeof r}\`);r.forEach((t,e)=>{if(typeof t=="object"&&t instanceof Map){e_(t);return}if(typeof t!="number"||t<=0)throw new Error(\`Values must be numbers greater than 0. Found value \${t} at \${e}\`)})}n_.exports=e_});var a_=ye((pz,s_)=>{var kP=$v(),GP=Kv(),i_=t_(),o_=r_(),Kd=class{constructor(t){t instanceof Map?(o_(t),this.graph=t):t?this.graph=i_(t):this.graph=new Map}addNode(t,e){let o;return e instanceof Map?(o_(e),o=e):o=i_(e),this.graph.set(t,o),this}addVertex(t,e){return this.addNode(t,e)}removeNode(t){return this.graph=GP(this.graph,t),this}path(t,e,o={}){if(!this.graph.size)return o.cost?{path:null,cost:0}:null;let a=new Set,c=new kP,p=new Map,d=[],g=0,y=[];if(o.avoid&&(y=[].concat(o.avoid)),y.includes(t))throw new Error(\`Starting node (\${t}) cannot be avoided\`);if(y.includes(e))throw new Error(\`Ending node (\${e}) cannot be avoided\`);for(c.set(t,0);!c.isEmpty();){let _=c.next();if(_.key===e){g=_.priority;let x=_.key;for(;p.has(x);)d.push(x),x=p.get(x);break}a.add(_.key),(this.graph.get(_.key)||new Map).forEach((x,T)=>{if(a.has(T)||y.includes(T))return null;if(!c.has(T))return p.set(T,_.key),c.set(T,_.priority+x);let C=c.get(T).priority,I=_.priority+x;return I<C?(p.set(T,_.key),c.set(T,I)):null})}return d.length?(o.trim?d.shift():d=d.concat([t]),o.reverse||(d=d.reverse()),o.cost?{path:d,cost:g}:d):o.cost?{path:null,cost:0}:null}shortestPath(...t){return this.path(...t)}};s_.exports=Kd});var tp=ye((wz,K1)=>{"use strict";var J1=Object.getOwnPropertySymbols,HO=Object.prototype.hasOwnProperty,VO=Object.prototype.propertyIsEnumerable;function WO(r){if(r==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(r)}function qO(){try{if(!Object.assign)return!1;var r=new String("abc");if(r[5]="de",Object.getOwnPropertyNames(r)[0]==="5")return!1;for(var t={},e=0;e<10;e++)t["_"+String.fromCharCode(e)]=e;var o=Object.getOwnPropertyNames(t).map(function(c){return t[c]});if(o.join("")!=="0123456789")return!1;var a={};return"abcdefghijklmnopqrst".split("").forEach(function(c){a[c]=c}),Object.keys(Object.assign({},a)).join("")==="abcdefghijklmnopqrst"}catch(c){return!1}}K1.exports=qO()?Object.assign:function(r,t){for(var e,o=WO(r),a,c=1;c<arguments.length;c++){e=Object(arguments[c]);for(var p in e)HO.call(e,p)&&(o[p]=e[p]);if(J1){a=J1(e);for(var d=0;d<a.length;d++)VO.call(e,a[d])&&(o[a[d]]=e[a[d]])}}return o}});var Mm=ye((Em,wm)=>{(function(r,t){typeof Em=="object"&&typeof wm!="undefined"?wm.exports=t():typeof define=="function"&&define.amd?define(t):(r=r||self).RBush=t()})(Em,function(){"use strict";function r(M,E,L,A,z){(function G(Y,X,U,H,Q){for(;H>U;){if(H-U>600){var gt=H-U+1,$=X-U+1,Nt=Math.log(gt),j=.5*Math.exp(2*Nt/3),pt=.5*Math.sqrt(Nt*j*(gt-j)/gt)*($-gt/2<0?-1:1),Ct=Math.max(U,Math.floor(X-$*j/gt+pt)),Tt=Math.min(H,Math.floor(X+(gt-$)*j/gt+pt));G(Y,X,Ct,Tt,Q)}var ft=Y[X],dt=U,Z=H;for(t(Y,U,X),Q(Y[H],ft)>0&&t(Y,U,H);dt<Z;){for(t(Y,dt,Z),dt++,Z--;Q(Y[dt],ft)<0;)dt++;for(;Q(Y[Z],ft)>0;)Z--}Q(Y[U],ft)===0?t(Y,U,Z):t(Y,++Z,H),Z<=X&&(U=Z+1),X<=Z&&(H=Z-1)}})(M,E,L||0,A||M.length-1,z||e)}function t(M,E,L){var A=M[E];M[E]=M[L],M[L]=A}function e(M,E){return M<E?-1:M>E?1:0}var o=function(M){M===void 0&&(M=9),this._maxEntries=Math.max(4,M),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()};function a(M,E,L){if(!L)return E.indexOf(M);for(var A=0;A<E.length;A++)if(L(M,E[A]))return A;return-1}function c(M,E){p(M,0,M.children.length,E,M)}function p(M,E,L,A,z){z||(z=C(null)),z.minX=1/0,z.minY=1/0,z.maxX=-1/0,z.maxY=-1/0;for(var G=E;G<L;G++){var Y=M.children[G];d(z,M.leaf?A(Y):Y)}return z}function d(M,E){return M.minX=Math.min(M.minX,E.minX),M.minY=Math.min(M.minY,E.minY),M.maxX=Math.max(M.maxX,E.maxX),M.maxY=Math.max(M.maxY,E.maxY),M}function g(M,E){return M.minX-E.minX}function y(M,E){return M.minY-E.minY}function _(M){return(M.maxX-M.minX)*(M.maxY-M.minY)}function w(M){return M.maxX-M.minX+(M.maxY-M.minY)}function x(M,E){return M.minX<=E.minX&&M.minY<=E.minY&&E.maxX<=M.maxX&&E.maxY<=M.maxY}function T(M,E){return E.minX<=M.maxX&&E.minY<=M.maxY&&E.maxX>=M.minX&&E.maxY>=M.minY}function C(M){return{children:M,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function I(M,E,L,A,z){for(var G=[E,L];G.length;)if(!((L=G.pop())-(E=G.pop())<=A)){var Y=E+Math.ceil((L-E)/A/2)*A;r(M,Y,E,L,z),G.push(E,Y,Y,L)}}return o.prototype.all=function(){return this._all(this.data,[])},o.prototype.search=function(M){var E=this.data,L=[];if(!T(M,E))return L;for(var A=this.toBBox,z=[];E;){for(var G=0;G<E.children.length;G++){var Y=E.children[G],X=E.leaf?A(Y):Y;T(M,X)&&(E.leaf?L.push(Y):x(M,X)?this._all(Y,L):z.push(Y))}E=z.pop()}return L},o.prototype.collides=function(M){var E=this.data;if(!T(M,E))return!1;for(var L=[];E;){for(var A=0;A<E.children.length;A++){var z=E.children[A],G=E.leaf?this.toBBox(z):z;if(T(M,G)){if(E.leaf||x(M,G))return!0;L.push(z)}}E=L.pop()}return!1},o.prototype.load=function(M){if(!M||!M.length)return this;if(M.length<this._minEntries){for(var E=0;E<M.length;E++)this.insert(M[E]);return this}var L=this._build(M.slice(),0,M.length-1,0);if(this.data.children.length)if(this.data.height===L.height)this._splitRoot(this.data,L);else{if(this.data.height<L.height){var A=this.data;this.data=L,L=A}this._insert(L,this.data.height-L.height-1,!0)}else this.data=L;return this},o.prototype.insert=function(M){return M&&this._insert(M,this.data.height-1),this},o.prototype.clear=function(){return this.data=C([]),this},o.prototype.remove=function(M,E){if(!M)return this;for(var L,A,z,G=this.data,Y=this.toBBox(M),X=[],U=[];G||X.length;){if(G||(G=X.pop(),A=X[X.length-1],L=U.pop(),z=!0),G.leaf){var H=a(M,G.children,E);if(H!==-1)return G.children.splice(H,1),X.push(G),this._condense(X),this}z||G.leaf||!x(G,Y)?A?(L++,G=A.children[L],z=!1):G=null:(X.push(G),U.push(L),L=0,A=G,G=G.children[0])}return this},o.prototype.toBBox=function(M){return M},o.prototype.compareMinX=function(M,E){return M.minX-E.minX},o.prototype.compareMinY=function(M,E){return M.minY-E.minY},o.prototype.toJSON=function(){return this.data},o.prototype.fromJSON=function(M){return this.data=M,this},o.prototype._all=function(M,E){for(var L=[];M;)M.leaf?E.push.apply(E,M.children):L.push.apply(L,M.children),M=L.pop();return E},o.prototype._build=function(M,E,L,A){var z,G=L-E+1,Y=this._maxEntries;if(G<=Y)return c(z=C(M.slice(E,L+1)),this.toBBox),z;A||(A=Math.ceil(Math.log(G)/Math.log(Y)),Y=Math.ceil(G/Math.pow(Y,A-1))),(z=C([])).leaf=!1,z.height=A;var X=Math.ceil(G/Y),U=X*Math.ceil(Math.sqrt(Y));I(M,E,L,U,this.compareMinX);for(var H=E;H<=L;H+=U){var Q=Math.min(H+U-1,L);I(M,H,Q,X,this.compareMinY);for(var gt=H;gt<=Q;gt+=X){var $=Math.min(gt+X-1,Q);z.children.push(this._build(M,gt,$,A-1))}}return c(z,this.toBBox),z},o.prototype._chooseSubtree=function(M,E,L,A){for(;A.push(E),!E.leaf&&A.length-1!==L;){for(var z=1/0,G=1/0,Y=void 0,X=0;X<E.children.length;X++){var U=E.children[X],H=_(U),Q=(gt=M,$=U,(Math.max($.maxX,gt.maxX)-Math.min($.minX,gt.minX))*(Math.max($.maxY,gt.maxY)-Math.min($.minY,gt.minY))-H);Q<G?(G=Q,z=H<z?H:z,Y=U):Q===G&&H<z&&(z=H,Y=U)}E=Y||E.children[0]}var gt,$;return E},o.prototype._insert=function(M,E,L){var A=L?M:this.toBBox(M),z=[],G=this._chooseSubtree(A,this.data,E,z);for(G.children.push(M),d(G,A);E>=0&&z[E].children.length>this._maxEntries;)this._split(z,E),E--;this._adjustParentBBoxes(A,z,E)},o.prototype._split=function(M,E){var L=M[E],A=L.children.length,z=this._minEntries;this._chooseSplitAxis(L,z,A);var G=this._chooseSplitIndex(L,z,A),Y=C(L.children.splice(G,L.children.length-G));Y.height=L.height,Y.leaf=L.leaf,c(L,this.toBBox),c(Y,this.toBBox),E?M[E-1].children.push(Y):this._splitRoot(L,Y)},o.prototype._splitRoot=function(M,E){this.data=C([M,E]),this.data.height=M.height+1,this.data.leaf=!1,c(this.data,this.toBBox)},o.prototype._chooseSplitIndex=function(M,E,L){for(var A,z,G,Y,X,U,H,Q=1/0,gt=1/0,$=E;$<=L-E;$++){var Nt=p(M,0,$,this.toBBox),j=p(M,$,L,this.toBBox),pt=(z=Nt,G=j,Y=void 0,X=void 0,U=void 0,H=void 0,Y=Math.max(z.minX,G.minX),X=Math.max(z.minY,G.minY),U=Math.min(z.maxX,G.maxX),H=Math.min(z.maxY,G.maxY),Math.max(0,U-Y)*Math.max(0,H-X)),Ct=_(Nt)+_(j);pt<Q?(Q=pt,A=$,gt=Ct<gt?Ct:gt):pt===Q&&Ct<gt&&(gt=Ct,A=$)}return A||L-E},o.prototype._chooseSplitAxis=function(M,E,L){var A=M.leaf?this.compareMinX:g,z=M.leaf?this.compareMinY:y;this._allDistMargin(M,E,L,A)<this._allDistMargin(M,E,L,z)&&M.children.sort(A)},o.prototype._allDistMargin=function(M,E,L,A){M.children.sort(A);for(var z=this.toBBox,G=p(M,0,E,z),Y=p(M,L-E,L,z),X=w(G)+w(Y),U=E;U<L-E;U++){var H=M.children[U];d(G,M.leaf?z(H):H),X+=w(G)}for(var Q=L-E-1;Q>=E;Q--){var gt=M.children[Q];d(Y,M.leaf?z(gt):gt),X+=w(Y)}return X},o.prototype._adjustParentBBoxes=function(M,E,L){for(var A=L;A>=0;A--)d(E[A],M)},o.prototype._condense=function(M){for(var E=M.length-1,L=void 0;E>=0;E--)M[E].children.length===0?E>0?(L=M[E-1].children).splice(L.indexOf(M[E]),1):this.clear():c(M[E],this.toBBox)},o})});var Q1=ye((Sm,bm)=>{(function(r,t){typeof Sm=="object"&&typeof bm!="undefined"?bm.exports=t():typeof define=="function"&&define.amd?define(t):(r=r||self,r.TinyQueue=t())})(Sm,function(){"use strict";var r=function(o,a){if(o===void 0&&(o=[]),a===void 0&&(a=t),this.data=o,this.length=this.data.length,this.compare=a,this.length>0)for(var c=(this.length>>1)-1;c>=0;c--)this._down(c)};r.prototype.push=function(o){this.data.push(o),this.length++,this._up(this.length-1)},r.prototype.pop=function(){if(this.length!==0){var o=this.data[0],a=this.data.pop();return this.length--,this.length>0&&(this.data[0]=a,this._down(0)),o}},r.prototype.peek=function(){return this.data[0]},r.prototype._up=function(o){for(var a=this,c=a.data,p=a.compare,d=c[o];o>0;){var g=o-1>>1,y=c[g];if(p(d,y)>=0)break;c[o]=y,o=g}c[o]=d},r.prototype._down=function(o){for(var a=this,c=a.data,p=a.compare,d=this.length>>1,g=c[o];o<d;){var y=(o<<1)+1,_=c[y],w=y+1;if(w<this.length&&p(c[w],_)<0&&(y=w,_=c[w]),p(_,g)>=0)break;c[o]=_,o=y}c[o]=g};function t(e,o){return e<o?-1:e>o?1:0}return r})});var tx=ye((Cz,j1)=>{j1.exports=function(t,e,o,a){var c=t[0],p=t[1],d=!1;o===void 0&&(o=0),a===void 0&&(a=e.length);for(var g=(a-o)/2,y=0,_=g-1;y<g;_=y++){var w=e[o+y*2+0],x=e[o+y*2+1],T=e[o+_*2+0],C=e[o+_*2+1],I=x>p!=C>p&&c<(T-w)*(p-x)/(C-x)+w;I&&(d=!d)}return d}});var nx=ye((Pz,ex)=>{ex.exports=function(t,e,o,a){var c=t[0],p=t[1],d=!1;o===void 0&&(o=0),a===void 0&&(a=e.length);for(var g=a-o,y=0,_=g-1;y<g;_=y++){var w=e[y+o][0],x=e[y+o][1],T=e[_+o][0],C=e[_+o][1],I=x>p!=C>p&&c<(T-w)*(p-x)/(C-x)+w;I&&(d=!d)}return d}});var ox=ye((Iz,rp)=>{var rx=tx(),ix=nx();rp.exports=function(t,e,o,a){return e.length>0&&Array.isArray(e[0])?ix(t,e,o,a):rx(t,e,o,a)};rp.exports.nested=ix;rp.exports.flat=rx});var ax=ye((ip,sx)=>{(function(r,t){typeof ip=="object"&&typeof sx!="undefined"?t(ip):typeof define=="function"&&define.amd?define(["exports"],t):t((r=r||self).predicates={})})(ip,function(r){"use strict";let e=33306690738754706e-32;function o(T,C,I,M,E){let L,A,z,G,Y=C[0],X=M[0],U=0,H=0;X>Y==X>-Y?(L=Y,Y=C[++U]):(L=X,X=M[++H]);let Q=0;if(U<T&&H<I)for(X>Y==X>-Y?(z=L-((A=Y+L)-Y),Y=C[++U]):(z=L-((A=X+L)-X),X=M[++H]),L=A,z!==0&&(E[Q++]=z);U<T&&H<I;)X>Y==X>-Y?(z=L-((A=L+Y)-(G=A-L))+(Y-G),Y=C[++U]):(z=L-((A=L+X)-(G=A-L))+(X-G),X=M[++H]),L=A,z!==0&&(E[Q++]=z);for(;U<T;)z=L-((A=L+Y)-(G=A-L))+(Y-G),Y=C[++U],L=A,z!==0&&(E[Q++]=z);for(;H<I;)z=L-((A=L+X)-(G=A-L))+(X-G),X=M[++H],L=A,z!==0&&(E[Q++]=z);return L===0&&Q!==0||(E[Q++]=L),Q}function a(T){return new Float64Array(T)}let c=33306690738754716e-32,p=22204460492503146e-32,d=11093356479670487e-47,g=a(4),y=a(8),_=a(12),w=a(16),x=a(4);r.orient2d=function(T,C,I,M,E,L){let A=(C-L)*(I-E),z=(T-E)*(M-L),G=A-z;if(A===0||z===0||A>0!=z>0)return G;let Y=Math.abs(A+z);return Math.abs(G)>=c*Y?G:-function(X,U,H,Q,gt,$,Nt){let j,pt,Ct,Tt,ft,dt,Z,st,vt,zt,bt,qt,le,se,Zt,_e,Vt,pe,at=X-gt,He=H-gt,ae=U-$,ce=Q-$;ft=(Zt=(st=at-(Z=(dt=134217729*at)-(dt-at)))*(zt=ce-(vt=(dt=134217729*ce)-(dt-ce)))-((se=at*ce)-Z*vt-st*vt-Z*zt))-(bt=Zt-(Vt=(st=ae-(Z=(dt=134217729*ae)-(dt-ae)))*(zt=He-(vt=(dt=134217729*He)-(dt-He)))-((_e=ae*He)-Z*vt-st*vt-Z*zt))),g[0]=Zt-(bt+ft)+(ft-Vt),ft=(le=se-((qt=se+bt)-(ft=qt-se))+(bt-ft))-(bt=le-_e),g[1]=le-(bt+ft)+(ft-_e),ft=(pe=qt+bt)-qt,g[2]=qt-(pe-ft)+(bt-ft),g[3]=pe;let fe=function(J,rt){let D=rt[0];for(let N=1;N<J;N++)D+=rt[N];return D}(4,g),it=p*Nt;if(fe>=it||-fe>=it||(j=X-(at+(ft=X-at))+(ft-gt),Ct=H-(He+(ft=H-He))+(ft-gt),pt=U-(ae+(ft=U-ae))+(ft-$),Tt=Q-(ce+(ft=Q-ce))+(ft-$),j===0&&pt===0&&Ct===0&&Tt===0)||(it=d*Nt+e*Math.abs(fe),(fe+=at*Tt+ce*j-(ae*Ct+He*pt))>=it||-fe>=it))return fe;ft=(Zt=(st=j-(Z=(dt=134217729*j)-(dt-j)))*(zt=ce-(vt=(dt=134217729*ce)-(dt-ce)))-((se=j*ce)-Z*vt-st*vt-Z*zt))-(bt=Zt-(Vt=(st=pt-(Z=(dt=134217729*pt)-(dt-pt)))*(zt=He-(vt=(dt=134217729*He)-(dt-He)))-((_e=pt*He)-Z*vt-st*vt-Z*zt))),x[0]=Zt-(bt+ft)+(ft-Vt),ft=(le=se-((qt=se+bt)-(ft=qt-se))+(bt-ft))-(bt=le-_e),x[1]=le-(bt+ft)+(ft-_e),ft=(pe=qt+bt)-qt,x[2]=qt-(pe-ft)+(bt-ft),x[3]=pe;let B=o(4,g,4,x,y);ft=(Zt=(st=at-(Z=(dt=134217729*at)-(dt-at)))*(zt=Tt-(vt=(dt=134217729*Tt)-(dt-Tt)))-((se=at*Tt)-Z*vt-st*vt-Z*zt))-(bt=Zt-(Vt=(st=ae-(Z=(dt=134217729*ae)-(dt-ae)))*(zt=Ct-(vt=(dt=134217729*Ct)-(dt-Ct)))-((_e=ae*Ct)-Z*vt-st*vt-Z*zt))),x[0]=Zt-(bt+ft)+(ft-Vt),ft=(le=se-((qt=se+bt)-(ft=qt-se))+(bt-ft))-(bt=le-_e),x[1]=le-(bt+ft)+(ft-_e),ft=(pe=qt+bt)-qt,x[2]=qt-(pe-ft)+(bt-ft),x[3]=pe;let P=o(B,y,4,x,_);ft=(Zt=(st=j-(Z=(dt=134217729*j)-(dt-j)))*(zt=Tt-(vt=(dt=134217729*Tt)-(dt-Tt)))-((se=j*Tt)-Z*vt-st*vt-Z*zt))-(bt=Zt-(Vt=(st=pt-(Z=(dt=134217729*pt)-(dt-pt)))*(zt=Ct-(vt=(dt=134217729*Ct)-(dt-Ct)))-((_e=pt*Ct)-Z*vt-st*vt-Z*zt))),x[0]=Zt-(bt+ft)+(ft-Vt),ft=(le=se-((qt=se+bt)-(ft=qt-se))+(bt-ft))-(bt=le-_e),x[1]=le-(bt+ft)+(ft-_e),ft=(pe=qt+bt)-qt,x[2]=qt-(pe-ft)+(bt-ft),x[3]=pe;let F=o(P,_,4,x,w);return w[F-1]}(T,C,I,M,E,L,Y)},r.orient2dfast=function(T,C,I,M,E,L){return(C-L)*(I-E)-(T-E)*(M-L)},Object.defineProperty(r,"__esModule",{value:!0})})});var px=ye((Rz,Pm)=>{"use strict";var ux=Mm(),sp=Q1(),YO=ox(),$O=ax().orient2d;sp.default&&(sp=sp.default);Pm.exports=hx;Pm.exports.default=hx;function hx(r,t,e){t=Math.max(0,t===void 0?2:t),e=e||0;var o=jO(r),a=new ux(16);a.toBBox=function(L){return{minX:L[0],minY:L[1],maxX:L[0],maxY:L[1]}},a.compareMinX=function(L,A){return L[0]-A[0]},a.compareMinY=function(L,A){return L[1]-A[1]},a.load(r);for(var c=[],p=0,d;p<o.length;p++){var g=o[p];a.remove(g),d=fx(g,d),c.push(d)}var y=new ux(16);for(p=0;p<c.length;p++)y.insert(Tm(c[p]));for(var _=t*t,w=e*e;c.length;){var x=c.shift(),T=x.p,C=x.next.p,I=Am(T,C);if(!(I<w)){var M=I/_;g=ZO(a,x.prev.p,T,C,x.next.next.p,M,y),g&&Math.min(Am(g,T),Am(g,C))<=M&&(c.push(x),c.push(fx(g,x)),a.remove(g),y.remove(x),y.insert(Tm(x)),y.insert(Tm(x.next)))}}x=d;var E=[];do E.push(x.p),x=x.next;while(x!==d);return E.push(x.p),E}function ZO(r,t,e,o,a,c,p){for(var d=new sp([],JO),g=r.data;g;){for(var y=0;y<g.children.length;y++){var _=g.children[y],w=g.leaf?Cm(_,e,o):KO(e,o,_);w>c||d.push({node:_,dist:w})}for(;d.length&&!d.peek().node.children;){var x=d.pop(),T=x.node,C=Cm(T,t,e),I=Cm(T,o,a);if(x.dist<C&&x.dist<I&&cx(e,T,p)&&cx(o,T,p))return T}g=d.pop(),g&&(g=g.node)}return null}function JO(r,t){return r.dist-t.dist}function KO(r,t,e){if(lx(r,e)||lx(t,e))return 0;var o=op(r[0],r[1],t[0],t[1],e.minX,e.minY,e.maxX,e.minY);if(o===0)return 0;var a=op(r[0],r[1],t[0],t[1],e.minX,e.minY,e.minX,e.maxY);if(a===0)return 0;var c=op(r[0],r[1],t[0],t[1],e.maxX,e.minY,e.maxX,e.maxY);if(c===0)return 0;var p=op(r[0],r[1],t[0],t[1],e.minX,e.maxY,e.maxX,e.maxY);return p===0?0:Math.min(o,a,c,p)}function lx(r,t){return r[0]>=t.minX&&r[0]<=t.maxX&&r[1]>=t.minY&&r[1]<=t.maxY}function cx(r,t,e){for(var o=Math.min(r[0],t[0]),a=Math.min(r[1],t[1]),c=Math.max(r[0],t[0]),p=Math.max(r[1],t[1]),d=e.search({minX:o,minY:a,maxX:c,maxY:p}),g=0;g<d.length;g++)if(QO(d[g].p,d[g].next.p,r,t))return!1;return!0}function rc(r,t,e){return $O(r[0],r[1],t[0],t[1],e[0],e[1])}function QO(r,t,e,o){return r!==o&&t!==e&&rc(r,t,e)>0!=rc(r,t,o)>0&&rc(e,o,r)>0!=rc(e,o,t)>0}function Tm(r){var t=r.p,e=r.next.p;return r.minX=Math.min(t[0],e[0]),r.minY=Math.min(t[1],e[1]),r.maxX=Math.max(t[0],e[0]),r.maxY=Math.max(t[1],e[1]),r}function jO(r){for(var t=r[0],e=r[0],o=r[0],a=r[0],c=0;c<r.length;c++){var p=r[c];p[0]<t[0]&&(t=p),p[0]>o[0]&&(o=p),p[1]<e[1]&&(e=p),p[1]>a[1]&&(a=p)}var d=[t,e,o,a],g=d.slice();for(c=0;c<r.length;c++)YO(r[c],d)||g.push(r[c]);return eD(g)}function fx(r,t){var e={p:r,prev:null,next:null,minX:0,minY:0,maxX:0,maxY:0};return t?(e.next=t.next,e.prev=t,t.next.prev=e,t.next=e):(e.prev=e,e.next=e),e}function Am(r,t){var e=r[0]-t[0],o=r[1]-t[1];return e*e+o*o}function Cm(r,t,e){var o=t[0],a=t[1],c=e[0]-o,p=e[1]-a;if(c!==0||p!==0){var d=((r[0]-o)*c+(r[1]-a)*p)/(c*c+p*p);d>1?(o=e[0],a=e[1]):d>0&&(o+=c*d,a+=p*d)}return c=r[0]-o,p=r[1]-a,c*c+p*p}function op(r,t,e,o,a,c,p,d){var g=e-r,y=o-t,_=p-a,w=d-c,x=r-a,T=t-c,C=g*g+y*y,I=g*_+y*w,M=_*_+w*w,E=g*x+y*T,L=_*x+w*T,A=C*M-I*I,z,G,Y,X,U=A,H=A;A===0?(G=0,U=1,X=L,H=M):(G=I*L-M*E,X=C*L-I*E,G<0?(G=0,X=L,H=M):G>U&&(G=U,X=L+I,H=M)),X<0?(X=0,-E<0?G=0:-E>C?G=U:(G=-E,U=C)):X>H&&(X=H,-E+I<0?G=0:-E+I>C?G=U:(G=-E+I,U=C)),z=G===0?0:G/U,Y=X===0?0:X/H;var Q=(1-z)*r+z*e,gt=(1-z)*t+z*o,$=(1-Y)*a+Y*p,Nt=(1-Y)*c+Y*d,j=$-Q,pt=Nt-gt;return j*j+pt*pt}function tD(r,t){return r[0]===t[0]?r[1]-t[1]:r[0]-t[0]}function eD(r){r.sort(tD);for(var t=[],e=0;e<r.length;e++){for(;t.length>=2&&rc(t[t.length-2],t[t.length-1],r[e])<=0;)t.pop();t.push(r[e])}for(var o=[],a=r.length-1;a>=0;a--){for(;o.length>=2&&rc(o[o.length-2],o[o.length-1],r[a])<=0;)o.pop();o.push(r[a])}return o.pop(),t.pop(),t.concat(o)}});var _x=ye((Rm,Lm)=>{(function(r,t){typeof Rm=="object"&&typeof Lm!="undefined"?Lm.exports=t():typeof define=="function"&&define.amd?define(t):r.quickselect=t()})(Rm,function(){"use strict";function r(a,c,p,d,g){t(a,c,p||0,d||a.length-1,g||o)}function t(a,c,p,d,g){for(;d>p;){if(d-p>600){var y=d-p+1,_=c-p+1,w=Math.log(y),x=.5*Math.exp(2*w/3),T=.5*Math.sqrt(w*x*(y-x)/y)*(_-y/2<0?-1:1),C=Math.max(p,Math.floor(c-_*x/y+T)),I=Math.min(d,Math.floor(c+(y-_)*x/y+T));t(a,c,C,I,g)}var M=a[c],E=p,L=d;for(e(a,p,c),g(a[d],M)>0&&e(a,p,d);E<L;){for(e(a,E,L),E++,L--;g(a[E],M)<0;)E++;for(;g(a[L],M)>0;)L--}g(a[p],M)===0?e(a,p,L):(L++,e(a,L,d)),L<=c&&(p=L+1),c<=L&&(d=L-1)}}function e(a,c,p){var d=a[c];a[c]=a[p],a[p]=d}function o(a,c){return a<c?-1:a>c?1:0}return r})});var Fm=ye((rG,Dm)=>{"use strict";Dm.exports=uf;Dm.exports.default=uf;var dD=_x();function uf(r,t){if(!(this instanceof uf))return new uf(r,t);this._maxEntries=Math.max(4,r||9),this._minEntries=Math.max(2,Math.ceil(this._maxEntries*.4)),t&&this._initFormat(t),this.clear()}uf.prototype={all:function(){return this._all(this.data,[])},search:function(r){var t=this.data,e=[],o=this.toBBox;if(!up(r,t))return e;for(var a=[],c,p,d,g;t;){for(c=0,p=t.children.length;c<p;c++)d=t.children[c],g=t.leaf?o(d):d,up(r,g)&&(t.leaf?e.push(d):Om(r,g)?this._all(d,e):a.push(d));t=a.pop()}return e},collides:function(r){var t=this.data,e=this.toBBox;if(!up(r,t))return!1;for(var o=[],a,c,p,d;t;){for(a=0,c=t.children.length;a<c;a++)if(p=t.children[a],d=t.leaf?e(p):p,up(r,d)){if(t.leaf||Om(r,d))return!0;o.push(p)}t=o.pop()}return!1},load:function(r){if(!(r&&r.length))return this;if(r.length<this._minEntries){for(var t=0,e=r.length;t<e;t++)this.insert(r[t]);return this}var o=this._build(r.slice(),0,r.length-1,0);if(!this.data.children.length)this.data=o;else if(this.data.height===o.height)this._splitRoot(this.data,o);else{if(this.data.height<o.height){var a=this.data;this.data=o,o=a}this._insert(o,this.data.height-o.height-1,!0)}return this},insert:function(r){return r&&this._insert(r,this.data.height-1),this},clear:function(){return this.data=sc([]),this},remove:function(r,t){if(!r)return this;for(var e=this.data,o=this.toBBox(r),a=[],c=[],p,d,g,y;e||a.length;){if(e||(e=a.pop(),d=a[a.length-1],p=c.pop(),y=!0),e.leaf&&(g=gD(r,e.children,t),g!==-1))return e.children.splice(g,1),a.push(e),this._condense(a),this;!y&&!e.leaf&&Om(e,o)?(a.push(e),c.push(p),p=0,d=e,e=e.children[0]):d?(p++,e=d.children[p],y=!1):e=null}return this},toBBox:function(r){return r},compareMinX:xx,compareMinY:Ex,toJSON:function(){return this.data},fromJSON:function(r){return this.data=r,this},_all:function(r,t){for(var e=[];r;)r.leaf?t.push.apply(t,r.children):e.push.apply(e,r.children),r=e.pop();return t},_build:function(r,t,e,o){var a=e-t+1,c=this._maxEntries,p;if(a<=c)return p=sc(r.slice(t,e+1)),oc(p,this.toBBox),p;o||(o=Math.ceil(Math.log(a)/Math.log(c)),c=Math.ceil(a/Math.pow(c,o-1))),p=sc([]),p.leaf=!1,p.height=o;var d=Math.ceil(a/c),g=d*Math.ceil(Math.sqrt(c)),y,_,w,x;for(wx(r,t,e,g,this.compareMinX),y=t;y<=e;y+=g)for(w=Math.min(y+g-1,e),wx(r,y,w,d,this.compareMinY),_=y;_<=w;_+=d)x=Math.min(_+d-1,w),p.children.push(this._build(r,_,x,o-1));return oc(p,this.toBBox),p},_chooseSubtree:function(r,t,e,o){for(var a,c,p,d,g,y,_,w;o.push(t),!(t.leaf||o.length-1===e);){for(_=w=1/0,a=0,c=t.children.length;a<c;a++)p=t.children[a],g=Nm(p),y=mD(r,p)-g,y<w?(w=y,_=g<_?g:_,d=p):y===w&&g<_&&(_=g,d=p);t=d||t.children[0]}return t},_insert:function(r,t,e){var o=this.toBBox,a=e?r:o(r),c=[],p=this._chooseSubtree(a,this.data,t,c);for(p.children.push(r),af(p,a);t>=0&&c[t].children.length>this._maxEntries;)this._split(c,t),t--;this._adjustParentBBoxes(a,c,t)},_split:function(r,t){var e=r[t],o=e.children.length,a=this._minEntries;this._chooseSplitAxis(e,a,o);var c=this._chooseSplitIndex(e,a,o),p=sc(e.children.splice(c,e.children.length-c));p.height=e.height,p.leaf=e.leaf,oc(e,this.toBBox),oc(p,this.toBBox),t?r[t-1].children.push(p):this._splitRoot(e,p)},_splitRoot:function(r,t){this.data=sc([r,t]),this.data.height=r.height+1,this.data.leaf=!1,oc(this.data,this.toBBox)},_chooseSplitIndex:function(r,t,e){var o,a,c,p,d,g,y,_;for(g=y=1/0,o=t;o<=e-t;o++)a=sf(r,0,o,this.toBBox),c=sf(r,o,e,this.toBBox),p=yD(a,c),d=Nm(a)+Nm(c),p<g?(g=p,_=o,y=d<y?d:y):p===g&&d<y&&(y=d,_=o);return _},_chooseSplitAxis:function(r,t,e){var o=r.leaf?this.compareMinX:xx,a=r.leaf?this.compareMinY:Ex,c=this._allDistMargin(r,t,e,o),p=this._allDistMargin(r,t,e,a);c<p&&r.children.sort(o)},_allDistMargin:function(r,t,e,o){r.children.sort(o);var a=this.toBBox,c=sf(r,0,t,a),p=sf(r,e-t,e,a),d=ap(c)+ap(p),g,y;for(g=t;g<e-t;g++)y=r.children[g],af(c,r.leaf?a(y):y),d+=ap(c);for(g=e-t-1;g>=t;g--)y=r.children[g],af(p,r.leaf?a(y):y),d+=ap(p);return d},_adjustParentBBoxes:function(r,t,e){for(var o=e;o>=0;o--)af(t[o],r)},_condense:function(r){for(var t=r.length-1,e;t>=0;t--)r[t].children.length===0?t>0?(e=r[t-1].children,e.splice(e.indexOf(r[t]),1)):this.clear():oc(r[t],this.toBBox)},_initFormat:function(r){var t=["return a"," - b",";"];this.compareMinX=new Function("a","b",t.join(r[0])),this.compareMinY=new Function("a","b",t.join(r[1])),this.toBBox=new Function("a","return {minX: a"+r[0]+", minY: a"+r[1]+", maxX: a"+r[2]+", maxY: a"+r[3]+"};")}};function gD(r,t,e){if(!e)return t.indexOf(r);for(var o=0;o<t.length;o++)if(e(r,t[o]))return o;return-1}function oc(r,t){sf(r,0,r.children.length,t,r)}function sf(r,t,e,o,a){a||(a=sc(null)),a.minX=1/0,a.minY=1/0,a.maxX=-1/0,a.maxY=-1/0;for(var c=t,p;c<e;c++)p=r.children[c],af(a,r.leaf?o(p):p);return a}function af(r,t){return r.minX=Math.min(r.minX,t.minX),r.minY=Math.min(r.minY,t.minY),r.maxX=Math.max(r.maxX,t.maxX),r.maxY=Math.max(r.maxY,t.maxY),r}function xx(r,t){return r.minX-t.minX}function Ex(r,t){return r.minY-t.minY}function Nm(r){return(r.maxX-r.minX)*(r.maxY-r.minY)}function ap(r){return r.maxX-r.minX+(r.maxY-r.minY)}function mD(r,t){return(Math.max(t.maxX,r.maxX)-Math.min(t.minX,r.minX))*(Math.max(t.maxY,r.maxY)-Math.min(t.minY,r.minY))}function yD(r,t){var e=Math.max(r.minX,t.minX),o=Math.max(r.minY,t.minY),a=Math.min(r.maxX,t.maxX),c=Math.min(r.maxY,t.maxY);return Math.max(0,a-e)*Math.max(0,c-o)}function Om(r,t){return r.minX<=t.minX&&r.minY<=t.minY&&t.maxX<=r.maxX&&t.maxY<=r.maxY}function up(r,t){return t.minX<=r.maxX&&t.minY<=r.maxY&&t.maxX>=r.minX&&t.maxY>=r.minY}function sc(r){return{children:r,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function wx(r,t,e,o,a){for(var c=[t,e],p;c.length;)e=c.pop(),t=c.pop(),!(e-t<=o)&&(p=t+Math.ceil((e-t)/o/2)*o,dD(r,p,t,e,a),c.push(t,p,p,e))}});var Cx=ye((m5,Hm)=>{"use strict";Hm.exports=hp;Hm.exports.default=hp;function hp(r,t,e){e=e||2;var o=t&&t.length,a=o?t[0]*e:r.length,c=bx(r,0,a,e,!0),p=[];if(!c||c.next===c.prev)return p;var d,g,y,_,w,x,T;if(o&&(c=AD(r,t,c,e)),r.length>80*e){d=y=r[0],g=_=r[1];for(var C=e;C<a;C+=e)w=r[C],x=r[C+1],w<d&&(d=w),x<g&&(g=x),w>y&&(y=w),x>_&&(_=x);T=Math.max(y-d,_-g),T=T!==0?32767/T:0}return ff(c,p,e,d,g,T,0),p}function bx(r,t,e,o,a){var c,p;if(a===Gm(r,t,e,o)>0)for(c=t;c<e;c+=o)p=Sx(c,r[c],r[c+1],p);else for(c=e-o;c>=t;c-=o)p=Sx(c,r[c],r[c+1],p);return p&&pp(p,p.next)&&(pf(p),p=p.next),p}function sl(r,t){if(!r)return r;t||(t=r);var e=r,o;do if(o=!1,!e.steiner&&(pp(e,e.next)||Lr(e.prev,e,e.next)===0)){if(pf(e),e=t=e.prev,e===e.next)break;o=!0}else e=e.next;while(o||e!==t);return t}function ff(r,t,e,o,a,c,p){if(r){!p&&c&&LD(r,o,a,c);for(var d=r,g,y;r.prev!==r.next;){if(g=r.prev,y=r.next,c?SD(r,o,a,c):MD(r)){t.push(g.i/e|0),t.push(r.i/e|0),t.push(y.i/e|0),pf(r),r=y.next,d=y.next;continue}if(r=y,r===d){p?p===1?(r=bD(sl(r),t,e),ff(r,t,e,o,a,c,2)):p===2&&TD(r,t,e,o,a,c):ff(sl(r),t,e,o,a,c,1);break}}}}function MD(r){var t=r.prev,e=r,o=r.next;if(Lr(t,e,o)>=0)return!1;for(var a=t.x,c=e.x,p=o.x,d=t.y,g=e.y,y=o.y,_=a<c?a<p?a:p:c<p?c:p,w=d<g?d<y?d:y:g<y?g:y,x=a>c?a>p?a:p:c>p?c:p,T=d>g?d>y?d:y:g>y?g:y,C=o.next;C!==t;){if(C.x>=_&&C.x<=x&&C.y>=w&&C.y<=T&&lc(a,d,c,g,p,y,C.x,C.y)&&Lr(C.prev,C,C.next)>=0)return!1;C=C.next}return!0}function SD(r,t,e,o){var a=r.prev,c=r,p=r.next;if(Lr(a,c,p)>=0)return!1;for(var d=a.x,g=c.x,y=p.x,_=a.y,w=c.y,x=p.y,T=d<g?d<y?d:y:g<y?g:y,C=_<w?_<x?_:x:w<x?w:x,I=d>g?d>y?d:y:g>y?g:y,M=_>w?_>x?_:x:w>x?w:x,E=zm(T,C,t,e,o),L=zm(I,M,t,e,o),A=r.prevZ,z=r.nextZ;A&&A.z>=E&&z&&z.z<=L;){if(A.x>=T&&A.x<=I&&A.y>=C&&A.y<=M&&A!==a&&A!==p&&lc(d,_,g,w,y,x,A.x,A.y)&&Lr(A.prev,A,A.next)>=0||(A=A.prevZ,z.x>=T&&z.x<=I&&z.y>=C&&z.y<=M&&z!==a&&z!==p&&lc(d,_,g,w,y,x,z.x,z.y)&&Lr(z.prev,z,z.next)>=0))return!1;z=z.nextZ}for(;A&&A.z>=E;){if(A.x>=T&&A.x<=I&&A.y>=C&&A.y<=M&&A!==a&&A!==p&&lc(d,_,g,w,y,x,A.x,A.y)&&Lr(A.prev,A,A.next)>=0)return!1;A=A.prevZ}for(;z&&z.z<=L;){if(z.x>=T&&z.x<=I&&z.y>=C&&z.y<=M&&z!==a&&z!==p&&lc(d,_,g,w,y,x,z.x,z.y)&&Lr(z.prev,z,z.next)>=0)return!1;z=z.nextZ}return!0}function bD(r,t,e){var o=r;do{var a=o.prev,c=o.next.next;!pp(a,c)&&Tx(a,o,o.next,c)&&hf(a,c)&&hf(c,a)&&(t.push(a.i/e|0),t.push(o.i/e|0),t.push(c.i/e|0),pf(o),pf(o.next),o=r=c),o=o.next}while(o!==r);return sl(o)}function TD(r,t,e,o,a,c){var p=r;do{for(var d=p.next.next;d!==p.prev;){if(p.i!==d.i&&DD(p,d)){var g=Ax(p,d);p=sl(p,p.next),g=sl(g,g.next),ff(p,t,e,o,a,c,0),ff(g,t,e,o,a,c,0);return}d=d.next}p=p.next}while(p!==r)}function AD(r,t,e,o){var a=[],c,p,d,g,y;for(c=0,p=t.length;c<p;c++)d=t[c]*o,g=c<p-1?t[c+1]*o:r.length,y=bx(r,d,g,o,!1),y===y.next&&(y.steiner=!0),a.push(OD(y));for(a.sort(CD),c=0;c<a.length;c++)e=PD(a[c],e);return e}function CD(r,t){return r.x-t.x}function PD(r,t){var e=ID(r,t);if(!e)return t;var o=Ax(e,r);return sl(o,o.next),sl(e,e.next)}function ID(r,t){var e=t,o=r.x,a=r.y,c=-1/0,p;do{if(a<=e.y&&a>=e.next.y&&e.next.y!==e.y){var d=e.x+(a-e.y)*(e.next.x-e.x)/(e.next.y-e.y);if(d<=o&&d>c&&(c=d,p=e.x<e.next.x?e:e.next,d===o))return p}e=e.next}while(e!==t);if(!p)return null;var g=p,y=p.x,_=p.y,w=1/0,x;e=p;do o>=e.x&&e.x>=y&&o!==e.x&&lc(a<_?o:c,a,y,_,a<_?c:o,a,e.x,e.y)&&(x=Math.abs(a-e.y)/(o-e.x),hf(e,r)&&(x<w||x===w&&(e.x>p.x||e.x===p.x&&RD(p,e)))&&(p=e,w=x)),e=e.next;while(e!==g);return p}function RD(r,t){return Lr(r.prev,r,t.prev)<0&&Lr(t.next,r,r.next)<0}function LD(r,t,e,o){var a=r;do a.z===0&&(a.z=zm(a.x,a.y,t,e,o)),a.prevZ=a.prev,a.nextZ=a.next,a=a.next;while(a!==r);a.prevZ.nextZ=null,a.prevZ=null,ND(a)}function ND(r){var t,e,o,a,c,p,d,g,y=1;do{for(e=r,r=null,c=null,p=0;e;){for(p++,o=e,d=0,t=0;t<y&&(d++,o=o.nextZ,!!o);t++);for(g=y;d>0||g>0&&o;)d!==0&&(g===0||!o||e.z<=o.z)?(a=e,e=e.nextZ,d--):(a=o,o=o.nextZ,g--),c?c.nextZ=a:r=a,a.prevZ=c,c=a;e=o}c.nextZ=null,y*=2}while(p>1);return r}function zm(r,t,e,o,a){return r=(r-e)*a|0,t=(t-o)*a|0,r=(r|r<<8)&16711935,r=(r|r<<4)&252645135,r=(r|r<<2)&858993459,r=(r|r<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,r|t<<1}function OD(r){var t=r,e=r;do(t.x<e.x||t.x===e.x&&t.y<e.y)&&(e=t),t=t.next;while(t!==r);return e}function lc(r,t,e,o,a,c,p,d){return(a-p)*(t-d)>=(r-p)*(c-d)&&(r-p)*(o-d)>=(e-p)*(t-d)&&(e-p)*(c-d)>=(a-p)*(o-d)}function DD(r,t){return r.next.i!==t.i&&r.prev.i!==t.i&&!FD(r,t)&&(hf(r,t)&&hf(t,r)&&UD(r,t)&&(Lr(r.prev,r,t.prev)||Lr(r,t.prev,t))||pp(r,t)&&Lr(r.prev,r,r.next)>0&&Lr(t.prev,t,t.next)>0)}function Lr(r,t,e){return(t.y-r.y)*(e.x-t.x)-(t.x-r.x)*(e.y-t.y)}function pp(r,t){return r.x===t.x&&r.y===t.y}function Tx(r,t,e,o){var a=fp(Lr(r,t,e)),c=fp(Lr(r,t,o)),p=fp(Lr(e,o,r)),d=fp(Lr(e,o,t));return!!(a!==c&&p!==d||a===0&&cp(r,e,t)||c===0&&cp(r,o,t)||p===0&&cp(e,r,o)||d===0&&cp(e,t,o))}function cp(r,t,e){return t.x<=Math.max(r.x,e.x)&&t.x>=Math.min(r.x,e.x)&&t.y<=Math.max(r.y,e.y)&&t.y>=Math.min(r.y,e.y)}function fp(r){return r>0?1:r<0?-1:0}function FD(r,t){var e=r;do{if(e.i!==r.i&&e.next.i!==r.i&&e.i!==t.i&&e.next.i!==t.i&&Tx(e,e.next,r,t))return!0;e=e.next}while(e!==r);return!1}function hf(r,t){return Lr(r.prev,r,r.next)<0?Lr(r,t,r.next)>=0&&Lr(r,r.prev,t)>=0:Lr(r,t,r.prev)<0||Lr(r,r.next,t)<0}function UD(r,t){var e=r,o=!1,a=(r.x+t.x)/2,c=(r.y+t.y)/2;do e.y>c!=e.next.y>c&&e.next.y!==e.y&&a<(e.next.x-e.x)*(c-e.y)/(e.next.y-e.y)+e.x&&(o=!o),e=e.next;while(e!==r);return o}function Ax(r,t){var e=new km(r.i,r.x,r.y),o=new km(t.i,t.x,t.y),a=r.next,c=t.prev;return r.next=t,t.prev=r,e.next=a,a.prev=e,o.next=e,e.prev=o,c.next=o,o.prev=c,o}function Sx(r,t,e,o){var a=new km(r,t,e);return o?(a.next=o.next,a.prev=o,o.next.prev=a,o.next=a):(a.prev=a,a.next=a),a}function pf(r){r.next.prev=r.prev,r.prev.next=r.next,r.prevZ&&(r.prevZ.nextZ=r.nextZ),r.nextZ&&(r.nextZ.prevZ=r.prevZ)}function km(r,t,e){this.i=r,this.x=t,this.y=e,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}hp.deviation=function(r,t,e,o){var a=t&&t.length,c=a?t[0]*e:r.length,p=Math.abs(Gm(r,0,c,e));if(a)for(var d=0,g=t.length;d<g;d++){var y=t[d]*e,_=d<g-1?t[d+1]*e:r.length;p-=Math.abs(Gm(r,y,_,e))}var w=0;for(d=0;d<o.length;d+=3){var x=o[d]*e,T=o[d+1]*e,C=o[d+2]*e;w+=Math.abs((r[x]-r[C])*(r[T+1]-r[x+1])-(r[x]-r[T])*(r[C+1]-r[x+1]))}return p===0&&w===0?0:Math.abs((w-p)/p)};function Gm(r,t,e,o){for(var a=0,c=t,p=e-o;c<e;c+=o)a+=(r[p]-r[c])*(r[c+1]+r[p+1]),p=c;return a}hp.flatten=function(r){for(var t=r[0][0].length,e={vertices:[],holes:[],dimensions:t},o=0,a=0;a<r.length;a++){for(var c=0;c<r[a].length;c++)for(var p=0;p<t;p++)e.vertices.push(r[a][c][p]);a>0&&(o+=r[a-1].length,e.holes.push(o))}return e}});var Ym=ye(Ie=>{"use strict";Object.defineProperty(Ie,"__esModule",{value:!0});Ie.earthRadius=63710088e-1;Ie.factors={centimeters:Ie.earthRadius*100,centimetres:Ie.earthRadius*100,degrees:Ie.earthRadius/111325,feet:Ie.earthRadius*3.28084,inches:Ie.earthRadius*39.37,kilometers:Ie.earthRadius/1e3,kilometres:Ie.earthRadius/1e3,meters:Ie.earthRadius,metres:Ie.earthRadius,miles:Ie.earthRadius/1609.344,millimeters:Ie.earthRadius*1e3,millimetres:Ie.earthRadius*1e3,nauticalmiles:Ie.earthRadius/1852,radians:1,yards:Ie.earthRadius*1.0936};Ie.unitsFactors={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/Ie.earthRadius,yards:1.0936133};Ie.areaFactors={acres:247105e-9,centimeters:1e4,centimetres:1e4,feet:10.763910417,hectares:1e-4,inches:1550.003100006,kilometers:1e-6,kilometres:1e-6,meters:1,metres:1,miles:386e-9,millimeters:1e6,millimetres:1e6,yards:1.195990046};function Au(r,t,e){e===void 0&&(e={});var o={type:"Feature"};return(e.id===0||e.id)&&(o.id=e.id),e.bbox&&(o.bbox=e.bbox),o.properties=t||{},o.geometry=r,o}Ie.feature=Au;function zD(r,t,e){switch(e===void 0&&(e={}),r){case"Point":return Vm(t).geometry;case"LineString":return qm(t).geometry;case"Polygon":return Wm(t).geometry;case"MultiPoint":return Ix(t).geometry;case"MultiLineString":return Px(t).geometry;case"MultiPolygon":return Rx(t).geometry;default:throw new Error(r+" is invalid")}}Ie.geometry=zD;function Vm(r,t,e){if(e===void 0&&(e={}),!r)throw new Error("coordinates is required");if(!Array.isArray(r))throw new Error("coordinates must be an Array");if(r.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!dp(r[0])||!dp(r[1]))throw new Error("coordinates must contain numbers");var o={type:"Point",coordinates:r};return Au(o,t,e)}Ie.point=Vm;function kD(r,t,e){return e===void 0&&(e={}),gp(r.map(function(o){return Vm(o,t)}),e)}Ie.points=kD;function Wm(r,t,e){e===void 0&&(e={});for(var o=0,a=r;o<a.length;o++){var c=a[o];if(c.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");for(var p=0;p<c[c.length-1].length;p++)if(c[c.length-1][p]!==c[0][p])throw new Error("First and last Position are not equivalent.")}var d={type:"Polygon",coordinates:r};return Au(d,t,e)}Ie.polygon=Wm;function GD(r,t,e){return e===void 0&&(e={}),gp(r.map(function(o){return Wm(o,t)}),e)}Ie.polygons=GD;function qm(r,t,e){if(e===void 0&&(e={}),r.length<2)throw new Error("coordinates must be an array of two or more positions");var o={type:"LineString",coordinates:r};return Au(o,t,e)}Ie.lineString=qm;function HD(r,t,e){return e===void 0&&(e={}),gp(r.map(function(o){return qm(o,t)}),e)}Ie.lineStrings=HD;function gp(r,t){t===void 0&&(t={});var e={type:"FeatureCollection"};return t.id&&(e.id=t.id),t.bbox&&(e.bbox=t.bbox),e.features=r,e}Ie.featureCollection=gp;function Px(r,t,e){e===void 0&&(e={});var o={type:"MultiLineString",coordinates:r};return Au(o,t,e)}Ie.multiLineString=Px;function Ix(r,t,e){e===void 0&&(e={});var o={type:"MultiPoint",coordinates:r};return Au(o,t,e)}Ie.multiPoint=Ix;function Rx(r,t,e){e===void 0&&(e={});var o={type:"MultiPolygon",coordinates:r};return Au(o,t,e)}Ie.multiPolygon=Rx;function VD(r,t,e){e===void 0&&(e={});var o={type:"GeometryCollection",geometries:r};return Au(o,t,e)}Ie.geometryCollection=VD;function WD(r,t){if(t===void 0&&(t=0),t&&!(t>=0))throw new Error("precision must be a positive number");var e=Math.pow(10,t||0);return Math.round(r*e)/e}Ie.round=WD;function Lx(r,t){t===void 0&&(t="kilometers");var e=Ie.factors[t];if(!e)throw new Error(t+" units is invalid");return r*e}Ie.radiansToLength=Lx;function Xm(r,t){t===void 0&&(t="kilometers");var e=Ie.factors[t];if(!e)throw new Error(t+" units is invalid");return r/e}Ie.lengthToRadians=Xm;function qD(r,t){return Nx(Xm(r,t))}Ie.lengthToDegrees=qD;function XD(r){var t=r%360;return t<0&&(t+=360),t}Ie.bearingToAzimuth=XD;function Nx(r){var t=r%(2*Math.PI);return t*180/Math.PI}Ie.radiansToDegrees=Nx;function YD(r){var t=r%360;return t*Math.PI/180}Ie.degreesToRadians=YD;function $D(r,t,e){if(t===void 0&&(t="kilometers"),e===void 0&&(e="kilometers"),!(r>=0))throw new Error("length must be a positive number");return Lx(Xm(r,t),e)}Ie.convertLength=$D;function ZD(r,t,e){if(t===void 0&&(t="meters"),e===void 0&&(e="kilometers"),!(r>=0))throw new Error("area must be a positive number");var o=Ie.areaFactors[t];if(!o)throw new Error("invalid original units");var a=Ie.areaFactors[e];if(!a)throw new Error("invalid final units");return r/o*a}Ie.convertArea=ZD;function dp(r){return!isNaN(r)&&r!==null&&!Array.isArray(r)}Ie.isNumber=dp;function JD(r){return!!r&&r.constructor===Object}Ie.isObject=JD;function KD(r){if(!r)throw new Error("bbox is required");if(!Array.isArray(r))throw new Error("bbox must be an Array");if(r.length!==4&&r.length!==6)throw new Error("bbox must be an Array of 4 or 6 numbers");r.forEach(function(t){if(!dp(t))throw new Error("bbox must only contain numbers")})}Ie.validateBBox=KD;function QD(r){if(!r)throw new Error("id is required");if(["string","number"].indexOf(typeof r)===-1)throw new Error("id must be a number or a string")}Ie.validateId=QD});var Zm=ye(li=>{"use strict";Object.defineProperty(li,"__esModule",{value:!0});var ji=Ym();function df(r,t,e){if(r!==null)for(var o,a,c,p,d,g,y,_=0,w=0,x,T=r.type,C=T==="FeatureCollection",I=T==="Feature",M=C?r.features.length:1,E=0;E<M;E++){y=C?r.features[E].geometry:I?r.geometry:r,x=y?y.type==="GeometryCollection":!1,d=x?y.geometries.length:1;for(var L=0;L<d;L++){var A=0,z=0;if(p=x?y.geometries[L]:y,p!==null){g=p.coordinates;var G=p.type;switch(_=e&&(G==="Polygon"||G==="MultiPolygon")?1:0,G){case null:break;case"Point":if(t(g,w,E,A,z)===!1)return!1;w++,A++;break;case"LineString":case"MultiPoint":for(o=0;o<g.length;o++){if(t(g[o],w,E,A,z)===!1)return!1;w++,G==="MultiPoint"&&A++}G==="LineString"&&A++;break;case"Polygon":case"MultiLineString":for(o=0;o<g.length;o++){for(a=0;a<g[o].length-_;a++){if(t(g[o][a],w,E,A,z)===!1)return!1;w++}G==="MultiLineString"&&A++,G==="Polygon"&&z++}G==="Polygon"&&A++;break;case"MultiPolygon":for(o=0;o<g.length;o++){for(z=0,a=0;a<g[o].length;a++){for(c=0;c<g[o][a].length-_;c++){if(t(g[o][a][c],w,E,A,z)===!1)return!1;w++}z++}A++}break;case"GeometryCollection":for(o=0;o<p.geometries.length;o++)if(df(p.geometries[o],t,e)===!1)return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function jD(r,t,e,o){var a=e;return df(r,function(c,p,d,g,y){p===0&&e===void 0?a=c:a=t(a,c,p,d,g,y)},o),a}function Ox(r,t){var e;switch(r.type){case"FeatureCollection":for(e=0;e<r.features.length&&t(r.features[e].properties,e)!==!1;e++);break;case"Feature":t(r.properties,0);break}}function t3(r,t,e){var o=e;return Ox(r,function(a,c){c===0&&e===void 0?o=a:o=t(o,a,c)}),o}function Dx(r,t){if(r.type==="Feature")t(r,0);else if(r.type==="FeatureCollection")for(var e=0;e<r.features.length&&t(r.features[e],e)!==!1;e++);}function e3(r,t,e){var o=e;return Dx(r,function(a,c){c===0&&e===void 0?o=a:o=t(o,a,c)}),o}function n3(r){var t=[];return df(r,function(e){t.push(e)}),t}function $m(r,t){var e,o,a,c,p,d,g,y,_,w,x=0,T=r.type==="FeatureCollection",C=r.type==="Feature",I=T?r.features.length:1;for(e=0;e<I;e++){for(d=T?r.features[e].geometry:C?r.geometry:r,y=T?r.features[e].properties:C?r.properties:{},_=T?r.features[e].bbox:C?r.bbox:void 0,w=T?r.features[e].id:C?r.id:void 0,g=d?d.type==="GeometryCollection":!1,p=g?d.geometries.length:1,a=0;a<p;a++){if(c=g?d.geometries[a]:d,c===null){if(t(null,x,y,_,w)===!1)return!1;continue}switch(c.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":{if(t(c,x,y,_,w)===!1)return!1;break}case"GeometryCollection":{for(o=0;o<c.geometries.length;o++)if(t(c.geometries[o],x,y,_,w)===!1)return!1;break}default:throw new Error("Unknown Geometry Type")}}x++}}function r3(r,t,e){var o=e;return $m(r,function(a,c,p,d,g){c===0&&e===void 0?o=a:o=t(o,a,c,p,d,g)}),o}function mp(r,t){$m(r,function(e,o,a,c,p){var d=e===null?null:e.type;switch(d){case null:case"Point":case"LineString":case"Polygon":return t(ji.feature(e,a,{bbox:c,id:p}),o,0)===!1?!1:void 0}var g;switch(d){case"MultiPoint":g="Point";break;case"MultiLineString":g="LineString";break;case"MultiPolygon":g="Polygon";break}for(var y=0;y<e.coordinates.length;y++){var _=e.coordinates[y],w={type:g,coordinates:_};if(t(ji.feature(w,a),o,y)===!1)return!1}})}function i3(r,t,e){var o=e;return mp(r,function(a,c,p){c===0&&p===0&&e===void 0?o=a:o=t(o,a,c,p)}),o}function Fx(r,t){mp(r,function(e,o,a){var c=0;if(e.geometry){var p=e.geometry.type;if(!(p==="Point"||p==="MultiPoint")){var d,g=0,y=0,_=0;if(df(e,function(w,x,T,C,I){if(d===void 0||o>g||C>y||I>_){d=w,g=o,y=C,_=I,c=0;return}var M=ji.lineString([d,w],e.properties);if(t(M,o,a,I,c)===!1)return!1;c++,d=w})===!1)return!1}}})}function o3(r,t,e){var o=e,a=!1;return Fx(r,function(c,p,d,g,y){a===!1&&e===void 0?o=c:o=t(o,c,p,d,g,y),a=!0}),o}function Ux(r,t){if(!r)throw new Error("geojson is required");mp(r,function(e,o,a){if(e.geometry!==null){var c=e.geometry.type,p=e.geometry.coordinates;switch(c){case"LineString":if(t(e,o,a,0,0)===!1)return!1;break;case"Polygon":for(var d=0;d<p.length;d++)if(t(ji.lineString(p[d],e.properties),o,a,d)===!1)return!1;break}}})}function s3(r,t,e){var o=e;return Ux(r,function(a,c,p,d){c===0&&e===void 0?o=a:o=t(o,a,c,p,d)}),o}function a3(r,t){if(t=t||{},!ji.isObject(t))throw new Error("options is invalid");var e=t.featureIndex||0,o=t.multiFeatureIndex||0,a=t.geometryIndex||0,c=t.segmentIndex||0,p=t.properties,d;switch(r.type){case"FeatureCollection":e<0&&(e=r.features.length+e),p=p||r.features[e].properties,d=r.features[e].geometry;break;case"Feature":p=p||r.properties,d=r.geometry;break;case"Point":case"MultiPoint":return null;case"LineString":case"Polygon":case"MultiLineString":case"MultiPolygon":d=r;break;default:throw new Error("geojson is invalid")}if(d===null)return null;var g=d.coordinates;switch(d.type){case"Point":case"MultiPoint":return null;case"LineString":return c<0&&(c=g.length+c-1),ji.lineString([g[c],g[c+1]],p,t);case"Polygon":return a<0&&(a=g.length+a),c<0&&(c=g[a].length+c-1),ji.lineString([g[a][c],g[a][c+1]],p,t);case"MultiLineString":return o<0&&(o=g.length+o),c<0&&(c=g[o].length+c-1),ji.lineString([g[o][c],g[o][c+1]],p,t);case"MultiPolygon":return o<0&&(o=g.length+o),a<0&&(a=g[o].length+a),c<0&&(c=g[o][a].length-c-1),ji.lineString([g[o][a][c],g[o][a][c+1]],p,t)}throw new Error("geojson is invalid")}function u3(r,t){if(t=t||{},!ji.isObject(t))throw new Error("options is invalid");var e=t.featureIndex||0,o=t.multiFeatureIndex||0,a=t.geometryIndex||0,c=t.coordIndex||0,p=t.properties,d;switch(r.type){case"FeatureCollection":e<0&&(e=r.features.length+e),p=p||r.features[e].properties,d=r.features[e].geometry;break;case"Feature":p=p||r.properties,d=r.geometry;break;case"Point":case"MultiPoint":return null;case"LineString":case"Polygon":case"MultiLineString":case"MultiPolygon":d=r;break;default:throw new Error("geojson is invalid")}if(d===null)return null;var g=d.coordinates;switch(d.type){case"Point":return ji.point(g,p,t);case"MultiPoint":return o<0&&(o=g.length+o),ji.point(g[o],p,t);case"LineString":return c<0&&(c=g.length+c),ji.point(g[c],p,t);case"Polygon":return a<0&&(a=g.length+a),c<0&&(c=g[a].length+c),ji.point(g[a][c],p,t);case"MultiLineString":return o<0&&(o=g.length+o),c<0&&(c=g[o].length+c),ji.point(g[o][c],p,t);case"MultiPolygon":return o<0&&(o=g.length+o),a<0&&(a=g[o].length+a),c<0&&(c=g[o][a].length-c),ji.point(g[o][a][c],p,t)}throw new Error("geojson is invalid")}li.coordAll=n3;li.coordEach=df;li.coordReduce=jD;li.featureEach=Dx;li.featureReduce=e3;li.findPoint=u3;li.findSegment=a3;li.flattenEach=mp;li.flattenReduce=i3;li.geomEach=$m;li.geomReduce=r3;li.lineEach=Ux;li.lineReduce=s3;li.propEach=Ox;li.propReduce=t3;li.segmentEach=Fx;li.segmentReduce=o3});var Bx=ye(Km=>{"use strict";Object.defineProperty(Km,"__esModule",{value:!0});var l3=Zm();function Jm(r){var t=[1/0,1/0,-1/0,-1/0];return l3.coordEach(r,function(e){t[0]>e[0]&&(t[0]=e[0]),t[1]>e[1]&&(t[1]=e[1]),t[2]<e[0]&&(t[2]=e[0]),t[3]<e[1]&&(t[3]=e[1])}),t}Jm.default=Jm;Km.default=Jm});var yp=ye((L5,Qm)=>{var ha=Mm(),kx=Ym(),Gx=Zm(),cc=Bx().default,c3=Gx.featureEach,I5=Gx.coordEach,R5=kx.polygon,zx=kx.featureCollection;function Hx(r){var t=new ha(r);return t.insert=function(e){if(e.type!=="Feature")throw new Error("invalid feature");return e.bbox=e.bbox?e.bbox:cc(e),ha.prototype.insert.call(this,e)},t.load=function(e){var o=[];return Array.isArray(e)?e.forEach(function(a){if(a.type!=="Feature")throw new Error("invalid features");a.bbox=a.bbox?a.bbox:cc(a),o.push(a)}):c3(e,function(a){if(a.type!=="Feature")throw new Error("invalid features");a.bbox=a.bbox?a.bbox:cc(a),o.push(a)}),ha.prototype.load.call(this,o)},t.remove=function(e,o){if(e.type!=="Feature")throw new Error("invalid feature");return e.bbox=e.bbox?e.bbox:cc(e),ha.prototype.remove.call(this,e,o)},t.clear=function(){return ha.prototype.clear.call(this)},t.search=function(e){var o=ha.prototype.search.call(this,this.toBBox(e));return zx(o)},t.collides=function(e){return ha.prototype.collides.call(this,this.toBBox(e))},t.all=function(){var e=ha.prototype.all.call(this);return zx(e)},t.toJSON=function(){return ha.prototype.toJSON.call(this)},t.fromJSON=function(e){return ha.prototype.fromJSON.call(this,e)},t.toBBox=function(e){var o;if(e.bbox)o=e.bbox;else if(Array.isArray(e)&&e.length===4)o=e;else if(Array.isArray(e)&&e.length===6)o=[e[0],e[1],e[3],e[4]];else if(e.type==="Feature")o=cc(e);else if(e.type==="FeatureCollection")o=cc(e);else throw new Error("invalid geojson");return{minX:o[0],minY:o[1],maxX:o[2],maxY:o[3]}},t}Qm.exports=Hx;Qm.exports.default=Hx});var i0=ye((GV,Qx)=>{"use strict";var Kx=Object.prototype.toString;Qx.exports=function(t){var e=Kx.call(t),o=e==="[object Arguments]";return o||(o=e!=="[object Array]"&&t!==null&&typeof t=="object"&&typeof t.length=="number"&&t.length>=0&&Kx.call(t.callee)==="[object Function]"),o}});var aE=ye((HV,sE)=>{"use strict";var oE;Object.keys||(yf=Object.prototype.hasOwnProperty,o0=Object.prototype.toString,jx=i0(),s0=Object.prototype.propertyIsEnumerable,tE=!s0.call({toString:null},"toString"),eE=s0.call(function(){},"prototype"),vf=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],wp=function(r){var t=r.constructor;return t&&t.prototype===r},nE={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},rE=function(){if(typeof window=="undefined")return!1;for(var r in window)try{if(!nE["$"+r]&&yf.call(window,r)&&window[r]!==null&&typeof window[r]=="object")try{wp(window[r])}catch(t){return!0}}catch(t){return!0}return!1}(),iE=function(r){if(typeof window=="undefined"||!rE)return wp(r);try{return wp(r)}catch(t){return!1}},oE=function(t){var e=t!==null&&typeof t=="object",o=o0.call(t)==="[object Function]",a=jx(t),c=e&&o0.call(t)==="[object String]",p=[];if(!e&&!o&&!a)throw new TypeError("Object.keys called on a non-object");var d=eE&&o;if(c&&t.length>0&&!yf.call(t,0))for(var g=0;g<t.length;++g)p.push(String(g));if(a&&t.length>0)for(var y=0;y<t.length;++y)p.push(String(y));else for(var _ in t)!(d&&_==="prototype")&&yf.call(t,_)&&p.push(String(_));if(tE)for(var w=iE(t),x=0;x<vf.length;++x)!(w&&vf[x]==="constructor")&&yf.call(t,vf[x])&&p.push(vf[x]);return p});var yf,o0,jx,s0,tE,eE,vf,wp,nE,rE,iE;sE.exports=oE});var a0=ye((VV,cE)=>{"use strict";var x3=Array.prototype.slice,E3=i0(),uE=Object.keys,Mp=uE?function(t){return uE(t)}:aE(),lE=Object.keys;Mp.shim=function(){if(Object.keys){var t=function(){var e=Object.keys(arguments);return e&&e.length===arguments.length}(1,2);t||(Object.keys=function(o){return E3(o)?lE(x3.call(o)):lE(o)})}else Object.keys=Mp;return Object.keys||Mp};cE.exports=Mp});var u0=ye((WV,fE)=>{"use strict";fE.exports=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var t={},e=Symbol("test"),o=Object(e);if(typeof e=="string"||Object.prototype.toString.call(e)!=="[object Symbol]"||Object.prototype.toString.call(o)!=="[object Symbol]")return!1;var a=42;t[e]=a;for(e in t)return!1;if(typeof Object.keys=="function"&&Object.keys(t).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(t).length!==0)return!1;var c=Object.getOwnPropertySymbols(t);if(c.length!==1||c[0]!==e||!Object.prototype.propertyIsEnumerable.call(t,e))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var p=Object.getOwnPropertyDescriptor(t,e);if(p.value!==a||p.enumerable!==!0)return!1}return!0}});var Sp=ye((qV,hE)=>{"use strict";var w3=u0();hE.exports=function(){return w3()&&!!Symbol.toStringTag}});var gE=ye((XV,dE)=>{"use strict";var pE=typeof Symbol!="undefined"&&Symbol,M3=u0();dE.exports=function(){return typeof pE!="function"||typeof Symbol!="function"||typeof pE("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:M3()}});var vE=ye((YV,yE)=>{"use strict";var mE={foo:{}},S3=Object;yE.exports=function(){return{__proto__:mE}.foo===mE.foo&&!({__proto__:null}instanceof S3)}});var EE=ye(($V,xE)=>{"use strict";var b3="Function.prototype.bind called on incompatible ",T3=Object.prototype.toString,A3=Math.max,C3="[object Function]",_E=function(t,e){for(var o=[],a=0;a<t.length;a+=1)o[a]=t[a];for(var c=0;c<e.length;c+=1)o[c+t.length]=e[c];return o},P3=function(t,e){for(var o=[],a=e||0,c=0;a<t.length;a+=1,c+=1)o[c]=t[a];return o},I3=function(r,t){for(var e="",o=0;o<r.length;o+=1)e+=r[o],o+1<r.length&&(e+=t);return e};xE.exports=function(t){var e=this;if(typeof e!="function"||T3.apply(e)!==C3)throw new TypeError(b3+e);for(var o=P3(arguments,1),a,c=function(){if(this instanceof a){var _=e.apply(this,_E(o,arguments));return Object(_)===_?_:this}return e.apply(t,_E(o,arguments))},p=A3(0,e.length-o.length),d=[],g=0;g<p;g++)d[g]="$"+g;if(a=Function("binder","return function ("+I3(d,",")+"){ return binder.apply(this,arguments); }")(c),e.prototype){var y=function(){};y.prototype=e.prototype,a.prototype=new y,y.prototype=null}return a}});var bp=ye((ZV,wE)=>{"use strict";var R3=EE();wE.exports=Function.prototype.bind||R3});var SE=ye((JV,ME)=>{"use strict";var L3=Function.prototype.call,N3=Object.prototype.hasOwnProperty,O3=bp();ME.exports=O3.call(L3,N3)});var ll=ye((KV,PE)=>{"use strict";var Bn,dc=SyntaxError,CE=Function,pc=TypeError,l0=function(r){try{return CE('"use strict"; return ('+r+").constructor;")()}catch(t){}},al=Object.getOwnPropertyDescriptor;if(al)try{al({},"")}catch(r){al=null}var c0=function(){throw new pc},D3=al?function(){try{return arguments.callee,c0}catch(r){try{return al(arguments,"callee").get}catch(t){return c0}}}():c0,fc=gE()(),F3=vE()(),Ti=Object.getPrototypeOf||(F3?function(r){return r.__proto__}:null),hc={},U3=typeof Uint8Array=="undefined"||!Ti?Bn:Ti(Uint8Array),ul={"%AggregateError%":typeof AggregateError=="undefined"?Bn:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer=="undefined"?Bn:ArrayBuffer,"%ArrayIteratorPrototype%":fc&&Ti?Ti([][Symbol.iterator]()):Bn,"%AsyncFromSyncIteratorPrototype%":Bn,"%AsyncFunction%":hc,"%AsyncGenerator%":hc,"%AsyncGeneratorFunction%":hc,"%AsyncIteratorPrototype%":hc,"%Atomics%":typeof Atomics=="undefined"?Bn:Atomics,"%BigInt%":typeof BigInt=="undefined"?Bn:BigInt,"%BigInt64Array%":typeof BigInt64Array=="undefined"?Bn:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array=="undefined"?Bn:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView=="undefined"?Bn:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%eval%":eval,"%EvalError%":EvalError,"%Float32Array%":typeof Float32Array=="undefined"?Bn:Float32Array,"%Float64Array%":typeof Float64Array=="undefined"?Bn:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry=="undefined"?Bn:FinalizationRegistry,"%Function%":CE,"%GeneratorFunction%":hc,"%Int8Array%":typeof Int8Array=="undefined"?Bn:Int8Array,"%Int16Array%":typeof Int16Array=="undefined"?Bn:Int16Array,"%Int32Array%":typeof Int32Array=="undefined"?Bn:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":fc&&Ti?Ti(Ti([][Symbol.iterator]())):Bn,"%JSON%":typeof JSON=="object"?JSON:Bn,"%Map%":typeof Map=="undefined"?Bn:Map,"%MapIteratorPrototype%":typeof Map=="undefined"||!fc||!Ti?Bn:Ti(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise=="undefined"?Bn:Promise,"%Proxy%":typeof Proxy=="undefined"?Bn:Proxy,"%RangeError%":RangeError,"%ReferenceError%":ReferenceError,"%Reflect%":typeof Reflect=="undefined"?Bn:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set=="undefined"?Bn:Set,"%SetIteratorPrototype%":typeof Set=="undefined"||!fc||!Ti?Bn:Ti(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer=="undefined"?Bn:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":fc&&Ti?Ti(""[Symbol.iterator]()):Bn,"%Symbol%":fc?Symbol:Bn,"%SyntaxError%":dc,"%ThrowTypeError%":D3,"%TypedArray%":U3,"%TypeError%":pc,"%Uint8Array%":typeof Uint8Array=="undefined"?Bn:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray=="undefined"?Bn:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array=="undefined"?Bn:Uint16Array,"%Uint32Array%":typeof Uint32Array=="undefined"?Bn:Uint32Array,"%URIError%":URIError,"%WeakMap%":typeof WeakMap=="undefined"?Bn:WeakMap,"%WeakRef%":typeof WeakRef=="undefined"?Bn:WeakRef,"%WeakSet%":typeof WeakSet=="undefined"?Bn:WeakSet};if(Ti)try{null.error}catch(r){bE=Ti(Ti(r)),ul["%Error.prototype%"]=bE}var bE,B3=function r(t){var e;if(t==="%AsyncFunction%")e=l0("async function () {}");else if(t==="%GeneratorFunction%")e=l0("function* () {}");else if(t==="%AsyncGeneratorFunction%")e=l0("async function* () {}");else if(t==="%AsyncGenerator%"){var o=r("%AsyncGeneratorFunction%");o&&(e=o.prototype)}else if(t==="%AsyncIteratorPrototype%"){var a=r("%AsyncGenerator%");a&&Ti&&(e=Ti(a.prototype))}return ul[t]=e,e},TE={"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},_f=bp(),Tp=SE(),z3=_f.call(Function.call,Array.prototype.concat),k3=_f.call(Function.apply,Array.prototype.splice),AE=_f.call(Function.call,String.prototype.replace),Ap=_f.call(Function.call,String.prototype.slice),G3=_f.call(Function.call,RegExp.prototype.exec),H3=/[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|(["'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g,V3=/\\\\(\\\\)?/g,W3=function(t){var e=Ap(t,0,1),o=Ap(t,-1);if(e==="%"&&o!=="%")throw new dc("invalid intrinsic syntax, expected closing \`%\`");if(o==="%"&&e!=="%")throw new dc("invalid intrinsic syntax, expected opening \`%\`");var a=[];return AE(t,H3,function(c,p,d,g){a[a.length]=d?AE(g,V3,"$1"):p||c}),a},q3=function(t,e){var o=t,a;if(Tp(TE,o)&&(a=TE[o],o="%"+a[0]+"%"),Tp(ul,o)){var c=ul[o];if(c===hc&&(c=B3(o)),typeof c=="undefined"&&!e)throw new pc("intrinsic "+t+" exists, but is not available. Please file an issue!");return{alias:a,name:o,value:c}}throw new dc("intrinsic "+t+" does not exist!")};PE.exports=function(t,e){if(typeof t!="string"||t.length===0)throw new pc("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof e!="boolean")throw new pc('"allowMissing" argument must be a boolean');if(G3(/^%?[^%]*%?$/,t)===null)throw new dc("\`%\` may not be present anywhere but at the beginning and end of the intrinsic name");var o=W3(t),a=o.length>0?o[0]:"",c=q3("%"+a+"%",e),p=c.name,d=c.value,g=!1,y=c.alias;y&&(a=y[0],k3(o,z3([0,1],y)));for(var _=1,w=!0;_<o.length;_+=1){var x=o[_],T=Ap(x,0,1),C=Ap(x,-1);if((T==='"'||T==="'"||T==="\`"||C==='"'||C==="'"||C==="\`")&&T!==C)throw new dc("property names with quotes must have matching quotes");if((x==="constructor"||!w)&&(g=!0),a+="."+x,p="%"+a+"%",Tp(ul,p))d=ul[p];else if(d!=null){if(!(x in d)){if(!e)throw new pc("base intrinsic for "+t+" exists, but the property is not available.");return}if(al&&_+1>=o.length){var I=al(d,x);w=!!I,w&&"get"in I&&!("originalValue"in I.get)?d=I.get:d=d[x]}else w=Tp(d,x),d=d[x];w&&!g&&(ul[p]=d)}}return d}});var xf=ye((QV,IE)=>{"use strict";var X3=ll(),f0=X3("%Object.defineProperty%",!0),h0=function(){if(f0)try{return f0({},"a",{value:1}),!0}catch(t){return!1}return!1};h0.hasArrayLengthDefineBug=function(){if(!h0())return null;try{return f0([],"length",{value:1}).length!==1}catch(t){return!0}};IE.exports=h0});var p0=ye((jV,RE)=>{"use strict";var Y3=ll(),Cp=Y3("%Object.getOwnPropertyDescriptor%",!0);if(Cp)try{Cp([],"length")}catch(r){Cp=null}RE.exports=Cp});var Pp=ye((t6,NE)=>{"use strict";var $3=xf()(),d0=ll(),Ef=$3&&d0("%Object.defineProperty%",!0);if(Ef)try{Ef({},"a",{value:1})}catch(r){Ef=!1}var Z3=d0("%SyntaxError%"),gc=d0("%TypeError%"),LE=p0();NE.exports=function(t,e,o){if(!t||typeof t!="object"&&typeof t!="function")throw new gc("\`obj\` must be an object or a function\`");if(typeof e!="string"&&typeof e!="symbol")throw new gc("\`property\` must be a string or a symbol\`");if(arguments.length>3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new gc("\`nonEnumerable\`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new gc("\`nonWritable\`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new gc("\`nonConfigurable\`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new gc("\`loose\`, if provided, must be a boolean");var a=arguments.length>3?arguments[3]:null,c=arguments.length>4?arguments[4]:null,p=arguments.length>5?arguments[5]:null,d=arguments.length>6?arguments[6]:!1,g=!!LE&&LE(t,e);if(Ef)Ef(t,e,{configurable:p===null&&g?g.configurable:!p,enumerable:a===null&&g?g.enumerable:!a,value:o,writable:c===null&&g?g.writable:!c});else if(d||!a&&!c&&!p)t[e]=o;else throw new Z3("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")}});var zE=ye((e6,BE)=>{"use strict";var UE=ll(),OE=Pp(),J3=xf()(),DE=p0(),FE=UE("%TypeError%"),K3=UE("%Math.floor%");BE.exports=function(t,e){if(typeof t!="function")throw new FE("\`fn\` is not a function");if(typeof e!="number"||e<0||e>4294967295||K3(e)!==e)throw new FE("\`length\` must be a positive 32-bit integer");var o=arguments.length>2&&!!arguments[2],a=!0,c=!0;if("length"in t&&DE){var p=DE(t,"length");p&&!p.configurable&&(a=!1),p&&!p.writable&&(c=!1)}return(a||c||!o)&&(J3?OE(t,"length",e,!0,!0):OE(t,"length",e)),t}});var Rp=ye((n6,Ip)=>{"use strict";var g0=bp(),mc=ll(),Q3=zE(),j3=mc("%TypeError%"),GE=mc("%Function.prototype.apply%"),HE=mc("%Function.prototype.call%"),VE=mc("%Reflect.apply%",!0)||g0.call(HE,GE),wf=mc("%Object.defineProperty%",!0),tF=mc("%Math.max%");if(wf)try{wf({},"a",{value:1})}catch(r){wf=null}Ip.exports=function(t){if(typeof t!="function")throw new j3("a function is required");var e=VE(g0,HE,arguments);return Q3(e,1+tF(0,t.length-(arguments.length-1)),!0)};var kE=function(){return VE(g0,GE,arguments)};wf?wf(Ip.exports,"apply",{value:kE}):Ip.exports.apply=kE});var m0=ye((r6,XE)=>{"use strict";var WE=ll(),qE=Rp(),eF=qE(WE("String.prototype.indexOf"));XE.exports=function(t,e){var o=WE(t,!!e);return typeof o=="function"&&eF(t,".prototype.")>-1?qE(o):o}});var ZE=ye((i6,$E)=>{"use strict";var nF=Sp()(),rF=m0(),y0=rF("Object.prototype.toString"),Lp=function(t){return nF&&t&&typeof t=="object"&&Symbol.toStringTag in t?!1:y0(t)==="[object Arguments]"},YE=function(t){return Lp(t)?!0:t!==null&&typeof t=="object"&&typeof t.length=="number"&&t.length>=0&&y0(t)!=="[object Array]"&&y0(t.callee)==="[object Function]"},iF=function(){return Lp(arguments)}();Lp.isLegacyArguments=YE;$E.exports=iF?Lp:YE});var yc=ye((o6,jE)=>{"use strict";var oF=a0(),sF=typeof Symbol=="function"&&typeof Symbol("foo")=="symbol",aF=Object.prototype.toString,uF=Array.prototype.concat,JE=Pp(),lF=function(r){return typeof r=="function"&&aF.call(r)==="[object Function]"},KE=xf()(),cF=function(r,t,e,o){if(t in r){if(o===!0){if(r[t]===e)return}else if(!lF(o)||!o())return}KE?JE(r,t,e,!0):JE(r,t,e)},QE=function(r,t){var e=arguments.length>2?arguments[2]:{},o=oF(t);sF&&(o=uF.call(o,Object.getOwnPropertySymbols(t)));for(var a=0;a<o.length;a+=1)cF(r,o[a],t[o[a]],e[o[a]])};QE.supportsDescriptors=!!KE;jE.exports=QE});var v0=ye((s6,ew)=>{"use strict";var tw=function(r){return r!==r};ew.exports=function(t,e){return t===0&&e===0?1/t===1/e:!!(t===e||tw(t)&&tw(e))}});var _0=ye((a6,nw)=>{"use strict";var fF=v0();nw.exports=function(){return typeof Object.is=="function"?Object.is:fF}});var iw=ye((u6,rw)=>{"use strict";var hF=_0(),pF=yc();rw.exports=function(){var t=hF();return pF(Object,{is:t},{is:function(){return Object.is!==t}}),t}});var uw=ye((l6,aw)=>{"use strict";var dF=yc(),gF=Rp(),mF=v0(),ow=_0(),yF=iw(),sw=gF(ow(),Object);dF(sw,{getPolyfill:ow,implementation:mF,shim:yF});aw.exports=sw});var pw=ye((c6,hw)=>{"use strict";var x0=m0(),lw=Sp()(),cw,fw,E0,w0;lw&&(cw=x0("Object.prototype.hasOwnProperty"),fw=x0("RegExp.prototype.exec"),E0={},Np=function(){throw E0},w0={toString:Np,valueOf:Np},typeof Symbol.toPrimitive=="symbol"&&(w0[Symbol.toPrimitive]=Np));var Np,vF=x0("Object.prototype.toString"),_F=Object.getOwnPropertyDescriptor,xF="[object RegExp]";hw.exports=lw?function(t){if(!t||typeof t!="object")return!1;var e=_F(t,"lastIndex"),o=e&&cw(e,"value");if(!o)return!1;try{fw(t,w0)}catch(a){return a===E0}}:function(t){return!t||typeof t!="object"&&typeof t!="function"?!1:vF(t)===xF}});var gw=ye((f6,dw)=>{"use strict";var Sf=function(){return typeof function(){}.name=="string"},Mf=Object.getOwnPropertyDescriptor;if(Mf)try{Mf([],"length")}catch(r){Mf=null}Sf.functionsHaveConfigurableNames=function(){if(!Sf()||!Mf)return!1;var t=Mf(function(){},"name");return!!t&&!!t.configurable};var EF=Function.prototype.bind;Sf.boundFunctionsHaveNames=function(){return Sf()&&typeof EF=="function"&&function(){}.bind().name!==""};dw.exports=Sf});var vw=ye((h6,yw)=>{"use strict";var mw=Pp(),wF=xf()(),MF=gw().functionsHaveConfigurableNames(),SF=TypeError;yw.exports=function(t,e){if(typeof t!="function")throw new SF("\`fn\` is not a function");var o=arguments.length>2&&!!arguments[2];return(!o||MF)&&(wF?mw(t,"name",e,!0,!0):mw(t,"name",e)),t}});var M0=ye((p6,_w)=>{"use strict";var bF=vw(),TF=Object,AF=TypeError;_w.exports=bF(function(){if(this!=null&&this!==TF(this))throw new AF("RegExp.prototype.flags getter called on non-object");var t="";return this.hasIndices&&(t+="d"),this.global&&(t+="g"),this.ignoreCase&&(t+="i"),this.multiline&&(t+="m"),this.dotAll&&(t+="s"),this.unicode&&(t+="u"),this.unicodeSets&&(t+="v"),this.sticky&&(t+="y"),t},"get flags",!0)});var S0=ye((d6,xw)=>{"use strict";var CF=M0(),PF=yc().supportsDescriptors,IF=Object.getOwnPropertyDescriptor;xw.exports=function(){if(PF&&/a/mig.flags==="gim"){var t=IF(RegExp.prototype,"flags");if(t&&typeof t.get=="function"&&typeof RegExp.prototype.dotAll=="boolean"&&typeof RegExp.prototype.hasIndices=="boolean"){var e="",o={};if(Object.defineProperty(o,"hasIndices",{get:function(){e+="d"}}),Object.defineProperty(o,"sticky",{get:function(){e+="y"}}),e==="dy")return t.get}}return CF}});var Mw=ye((g6,ww)=>{"use strict";var RF=yc().supportsDescriptors,LF=S0(),NF=Object.getOwnPropertyDescriptor,OF=Object.defineProperty,DF=TypeError,Ew=Object.getPrototypeOf,FF=/a/;ww.exports=function(){if(!RF||!Ew)throw new DF("RegExp.prototype.flags requires a true ES5 environment that supports property descriptors");var t=LF(),e=Ew(FF),o=NF(e,"flags");return(!o||o.get!==t)&&OF(e,"flags",{configurable:!0,enumerable:!1,get:t}),t}});var Aw=ye((m6,Tw)=>{"use strict";var UF=yc(),BF=Rp(),zF=M0(),Sw=S0(),kF=Mw(),bw=BF(Sw());UF(bw,{getPolyfill:Sw,implementation:zF,shim:kF});Tw.exports=bw});var Pw=ye((y6,Cw)=>{"use strict";var GF=Date.prototype.getDay,HF=function(t){try{return GF.call(t),!0}catch(e){return!1}},VF=Object.prototype.toString,WF="[object Date]",qF=Sp()();Cw.exports=function(t){return typeof t!="object"||t===null?!1:qF?HF(t):VF.call(t)===WF}});var b0=ye((v6,kw)=>{var Iw=a0(),Rw=ZE(),Lw=uw(),Nw=pw(),Ow=Aw(),Dw=Pw(),Fw=Date.prototype.getTime;function zw(r,t,e){var o=e||{};return(o.strict?Lw(r,t):r===t)?!0:!r||!t||typeof r!="object"&&typeof t!="object"?o.strict?Lw(r,t):r==t:XF(r,t,o)}function Uw(r){return r==null}function Bw(r){return!(!r||typeof r!="object"||typeof r.length!="number"||typeof r.copy!="function"||typeof r.slice!="function"||r.length>0&&typeof r[0]!="number")}function XF(r,t,e){var o,a;if(typeof r!=typeof t||Uw(r)||Uw(t)||r.prototype!==t.prototype||Rw(r)!==Rw(t))return!1;var c=Nw(r),p=Nw(t);if(c!==p)return!1;if(c||p)return r.source===t.source&&Ow(r)===Ow(t);if(Dw(r)&&Dw(t))return Fw.call(r)===Fw.call(t);var d=Bw(r),g=Bw(t);if(d!==g)return!1;if(d||g){if(r.length!==t.length)return!1;for(o=0;o<r.length;o++)if(r[o]!==t[o])return!1;return!0}if(typeof r!=typeof t)return!1;try{var y=Iw(r),_=Iw(t)}catch(w){return!1}if(y.length!==_.length)return!1;for(y.sort(),_.sort(),o=y.length-1;o>=0;o--)if(y[o]!=_[o])return!1;for(o=y.length-1;o>=0;o--)if(a=y[o],!zw(r[a],t[a],e))return!1;return!0}kw.exports=zw});var U0=ye((SW,Yw)=>{var FU=b0(),pa=function(r){this.precision=r&&r.precision?r.precision:17,this.direction=r&&r.direction?r.direction:!1,this.pseudoNode=r&&r.pseudoNode?r.pseudoNode:!1,this.objectComparator=r&&r.objectComparator?r.objectComparator:UU};pa.prototype.compare=function(r,t){if(r.type!==t.type||!Xw(r,t))return!1;switch(r.type){case"Point":return this.compareCoord(r.coordinates,t.coordinates);case"LineString":return this.compareLine(r.coordinates,t.coordinates,0,!1);case"Polygon":return this.comparePolygon(r,t);case"Feature":return this.compareFeature(r,t);default:if(r.type.indexOf("Multi")===0){var e=this,o=qw(r),a=qw(t);return o.every(function(c){return this.some(function(p){return e.compare(c,p)})},a)}}return!1};function qw(r){return r.coordinates.map(function(t){return{type:r.type.replace("Multi",""),coordinates:t}})}function Xw(r,t){return r.hasOwnProperty("coordinates")?r.coordinates.length===t.coordinates.length:r.length===t.length}pa.prototype.compareCoord=function(r,t){if(r.length!==t.length)return!1;for(var e=0;e<r.length;e++)if(r[e].toFixed(this.precision)!==t[e].toFixed(this.precision))return!1;return!0};pa.prototype.compareLine=function(r,t,e,o){if(!Xw(r,t))return!1;var a=this.pseudoNode?r:this.removePseudo(r),c=this.pseudoNode?t:this.removePseudo(t);if(!(o&&!this.compareCoord(a[0],c[0])&&(c=this.fixStartIndex(c,a),!c))){var p=this.compareCoord(a[e],c[e]);return this.direction||p?this.comparePath(a,c):this.compareCoord(a[e],c[c.length-(1+e)])?this.comparePath(a.slice().reverse(),c):!1}};pa.prototype.fixStartIndex=function(r,t){for(var e,o=-1,a=0;a<r.length;a++)if(this.compareCoord(r[a],t[0])){o=a;break}return o>=0&&(e=[].concat(r.slice(o,r.length),r.slice(1,o+1))),e};pa.prototype.comparePath=function(r,t){var e=this;return r.every(function(o,a){return e.compareCoord(o,this[a])},t)};pa.prototype.comparePolygon=function(r,t){if(this.compareLine(r.coordinates[0],t.coordinates[0],1,!0)){var e=r.coordinates.slice(1,r.coordinates.length),o=t.coordinates.slice(1,t.coordinates.length),a=this;return e.every(function(c){return this.some(function(p){return a.compareLine(c,p,1,!0)})},o)}else return!1};pa.prototype.compareFeature=function(r,t){return r.id!==t.id||!this.objectComparator(r.properties,t.properties)||!this.compareBBox(r,t)?!1:this.compare(r.geometry,t.geometry)};pa.prototype.compareBBox=function(r,t){return!!(!r.bbox&&!t.bbox||r.bbox&&t.bbox&&this.compareCoord(r.bbox,t.bbox))};pa.prototype.removePseudo=function(r){return r};function UU(r,t){return FU(r,t,{strict:!0})}Yw.exports=pa});var $w=ye((FW,Fp)=>{function Pu(r,t,e,o){this.dataset=[],this.epsilon=1,this.minPts=2,this.distance=this._euclideanDistance,this.clusters=[],this.noise=[],this._visited=[],this._assigned=[],this._datasetLength=0,this._init(r,t,e,o)}Pu.prototype.run=function(r,t,e,o){this._init(r,t,e,o);for(var a=0;a<this._datasetLength;a++)if(this._visited[a]!==1){this._visited[a]=1;var c=this._regionQuery(a);if(c.length<this.minPts)this.noise.push(a);else{var p=this.clusters.length;this.clusters.push([]),this._addToCluster(a,p),this._expandCluster(p,c)}}return this.clusters};Pu.prototype._init=function(r,t,e,o){if(r){if(!(r instanceof Array))throw Error("Dataset must be of type array, "+typeof r+" given");this.dataset=r,this.clusters=[],this.noise=[],this._datasetLength=r.length,this._visited=new Array(this._datasetLength),this._assigned=new Array(this._datasetLength)}t&&(this.epsilon=t),e&&(this.minPts=e),o&&(this.distance=o)};Pu.prototype._expandCluster=function(r,t){for(var e=0;e<t.length;e++){var o=t[e];if(this._visited[o]!==1){this._visited[o]=1;var a=this._regionQuery(o);a.length>=this.minPts&&(t=this._mergeArrays(t,a))}this._assigned[o]!==1&&this._addToCluster(o,r)}};Pu.prototype._addToCluster=function(r,t){this.clusters[t].push(r),this._assigned[r]=1};Pu.prototype._regionQuery=function(r){for(var t=[],e=0;e<this._datasetLength;e++){var o=this.distance(this.dataset[r],this.dataset[e]);o<this.epsilon&&t.push(e)}return t};Pu.prototype._mergeArrays=function(r,t){for(var e=t.length,o=0;o<e;o++){var a=t[o];r.indexOf(a)<0&&r.push(a)}return r};Pu.prototype._euclideanDistance=function(r,t){for(var e=0,o=Math.min(r.length,t.length);o--;)e+=(r[o]-t[o])*(r[o]-t[o]);return Math.sqrt(e)};typeof Fp!="undefined"&&Fp.exports&&(Fp.exports=Pu)});var Zw=ye((UW,Up)=>{function Iu(r,t,e){this.k=3,this.dataset=[],this.assignments=[],this.centroids=[],this.init(r,t,e)}Iu.prototype.init=function(r,t,e){this.assignments=[],this.centroids=[],typeof r!="undefined"&&(this.dataset=r),typeof t!="undefined"&&(this.k=t),typeof e!="undefined"&&(this.distance=e)};Iu.prototype.run=function(r,t){this.init(r,t);for(var e=this.dataset.length,o=0;o<this.k;o++)this.centroids[o]=this.randomCentroid();for(var a=!0;a;){a=this.assign();for(var c=0;c<this.k;c++){for(var p=new Array(_),d=0,g=0;g<_;g++)p[g]=0;for(var y=0;y<e;y++){var _=this.dataset[y].length;if(c===this.assignments[y]){for(var g=0;g<_;g++)p[g]+=this.dataset[y][g];d++}}if(d>0){for(var g=0;g<_;g++)p[g]/=d;this.centroids[c]=p}else this.centroids[c]=this.randomCentroid(),a=!0}}return this.getClusters()};Iu.prototype.randomCentroid=function(){var r=this.dataset.length-1,t,e;do e=Math.round(Math.random()*r),t=this.dataset[e];while(this.centroids.indexOf(t)>=0);return t};Iu.prototype.assign=function(){for(var r=!1,t=this.dataset.length,e,o=0;o<t;o++)e=this.argmin(this.dataset[o],this.centroids,this.distance),e!=this.assignments[o]&&(this.assignments[o]=e,r=!0);return r};Iu.prototype.getClusters=function(){for(var r=new Array(this.k),t,e=0;e<this.assignments.length;e++)t=this.assignments[e],typeof r[t]=="undefined"&&(r[t]=[]),r[t].push(e);return r};Iu.prototype.argmin=function(r,t,e){for(var o=Number.MAX_VALUE,a=0,c=t.length,p,d=0;d<c;d++)p=e(r,t[d]),p<o&&(o=p,a=d);return a};Iu.prototype.distance=function(r,t){for(var e=0,o=Math.min(r.length,t.length);o--;){var a=r[o]-t[o];e+=a*a}return Math.sqrt(e)};typeof Up!="undefined"&&Up.exports&&(Up.exports=Iu)});var B0=ye((BW,Bp)=>{function da(r,t,e){this._queue=[],this._priorities=[],this._sorting="desc",this._init(r,t,e)}da.prototype.insert=function(r,t){for(var e=this._queue.length,o=e;o--;){var a=this._priorities[o];this._sorting==="desc"?t>a&&(e=o):t<a&&(e=o)}this._insertAt(r,t,e)};da.prototype.remove=function(r){for(var t=this._queue.length;t--;){var e=this._queue[t];if(r===e){this._queue.splice(t,1),this._priorities.splice(t,1);break}}};da.prototype.forEach=function(r){this._queue.forEach(r)};da.prototype.getElements=function(){return this._queue};da.prototype.getElementPriority=function(r){return this._priorities[r]};da.prototype.getPriorities=function(){return this._priorities};da.prototype.getElementsWithPriorities=function(){for(var r=[],t=0,e=this._queue.length;t<e;t++)r.push([this._queue[t],this._priorities[t]]);return r};da.prototype._init=function(r,t,e){if(r&&t){if(this._queue=[],this._priorities=[],r.length!==t.length)throw new Error("Arrays must have the same length");for(var o=0;o<r.length;o++)this.insert(r[o],t[o])}e&&(this._sorting=e)};da.prototype._insertAt=function(r,t,e){this._queue.length===e?(this._queue.push(r),this._priorities.push(t)):(this._queue.splice(e,0,r),this._priorities.splice(e,0,t))};typeof Bp!="undefined"&&Bp.exports&&(Bp.exports=da)});var Kw=ye((zW,_c)=>{typeof _c!="undefined"&&_c.exports&&(Jw=B0());var Jw;function Za(r,t,e,o){this.epsilon=1,this.minPts=1,this.distance=this._euclideanDistance,this._reachability=[],this._processed=[],this._coreDistance=0,this._orderedList=[],this._init(r,t,e,o)}Za.prototype.run=function(r,t,e,o){this._init(r,t,e,o);for(var a=0,c=this.dataset.length;a<c;a++)if(this._processed[a]!==1){this._processed[a]=1,this.clusters.push([a]);var p=this.clusters.length-1;this._orderedList.push(a);var d=new Jw(null,null,"asc"),g=this._regionQuery(a);this._distanceToCore(a)!==void 0&&(this._updateQueue(a,g,d),this._expandCluster(p,d))}return this.clusters};Za.prototype.getReachabilityPlot=function(){for(var r=[],t=0,e=this._orderedList.length;t<e;t++){var o=this._orderedList[t],a=this._reachability[o];r.push([o,a])}return r};Za.prototype._init=function(r,t,e,o){if(r){if(!(r instanceof Array))throw Error("Dataset must be of type array, "+typeof r+" given");this.dataset=r,this.clusters=[],this._reachability=new Array(this.dataset.length),this._processed=new Array(this.dataset.length),this._coreDistance=0,this._orderedList=[]}t&&(this.epsilon=t),e&&(this.minPts=e),o&&(this.distance=o)};Za.prototype._updateQueue=function(r,t,e){var o=this;this._coreDistance=this._distanceToCore(r),t.forEach(function(a){if(o._processed[a]===void 0){var c=o.distance(o.dataset[r],o.dataset[a]),p=Math.max(o._coreDistance,c);o._reachability[a]===void 0?(o._reachability[a]=p,e.insert(a,p)):p<o._reachability[a]&&(o._reachability[a]=p,e.remove(a),e.insert(a,p))}})};Za.prototype._expandCluster=function(r,t){for(var e=t.getElements(),o=0,a=e.length;o<a;o++){var c=e[o];if(this._processed[c]===void 0){var p=this._regionQuery(c);this._processed[c]=1,this.clusters[r].push(c),this._orderedList.push(c),this._distanceToCore(c)!==void 0&&(this._updateQueue(c,p,t),this._expandCluster(r,t))}}};Za.prototype._distanceToCore=function(r){for(var t=this.epsilon,e=0;e<t;e++){var o=this._regionQuery(r,e);if(o.length>=this.minPts)return e}};Za.prototype._regionQuery=function(r,t){t=t||this.epsilon;for(var e=[],o=0,a=this.dataset.length;o<a;o++)this.distance(this.dataset[r],this.dataset[o])<t&&e.push(o);return e};Za.prototype._euclideanDistance=function(r,t){for(var e=0,o=Math.min(r.length,t.length);o--;)e+=(r[o]-t[o])*(r[o]-t[o]);return Math.sqrt(e)};typeof _c!="undefined"&&_c.exports&&(_c.exports=Za)});var Qw=ye((kW,zp)=>{typeof zp!="undefined"&&zp.exports&&(zp.exports={DBSCAN:$w(),KMEANS:Zw(),OPTICS:Kw(),PriorityQueue:B0()})});var z0=ye((XW,tM)=>{"use strict";tM.exports={eudist:function(t,e,o){for(var a=t.length,c=0,p=0;p<a;p++){var d=(t[p]||0)-(e[p]||0);c+=d*d}return o?Math.sqrt(c):c},mandist:function(t,e,o){for(var a=t.length,c=0,p=0;p<a;p++)c+=Math.abs((t[p]||0)-(e[p]||0));return o?Math.sqrt(c):c},dist:function(t,e,o){var a=Math.abs(t-e);return o?a:a*a}}});var rM=ye((YW,nM)=>{"use strict";var eM=z0(),VU=eM.eudist,WU=eM.dist;nM.exports={kmrand:function(t,e){for(var o={},a=[],c=e<<2,p=t.length,d=t[0].length>0;a.length<e&&c-- >0;){var g=t[Math.floor(Math.random()*p)],y=d?g.join("_"):""+g;o[y]||(o[y]=!0,a.push(g))}if(a.length<e)throw new Error("Error initializating clusters");return a},kmpp:function(t,e){var o=t[0].length?VU:WU,a=[],c=t.length,p=t[0].length>0,d={},g=t[Math.floor(Math.random()*c)],y=p?g.join("_"):""+g;for(a.push(g),d[y]=!0;a.length<e;){for(var _=[],w=a.length,x=0,T=[],C=0;C<c;C++){for(var I=1/0,M=0;M<w;M++){var E=o(t[C],a[M]);E<=I&&(I=E)}_[C]=I}for(var L=0;L<c;L++)x+=_[L];for(var A=0;A<c;A++)T[A]={i:A,v:t[A],pr:_[A]/x,cs:0};T.sort(function(X,U){return X.pr-U.pr}),T[0].cs=T[0].pr;for(var z=1;z<c;z++)T[z].cs=T[z-1].cs+T[z].pr;for(var G=Math.random(),Y=0;Y<c-1&&T[Y++].cs<G;);a.push(T[Y-1].v)}return a}}});var uM=ye((JW,aM)=>{"use strict";var k0=z0(),sM=rM(),qU=k0.eudist,$W=k0.mandist,ZW=k0.dist,XU=sM.kmrand,YU=sM.kmpp,iM=1e4;function oM(r,t,e){e=e||[];for(var o=0;o<r;o++)e[o]=t;return e}function $U(r,t,e,o){var a=[],c=[],p=[],d=[],g=!1,y=o||iM,_=r.length,w=r[0].length,x=w>0,T=[];if(e)e=="kmrand"?a=XU(r,t):e=="kmpp"?a=YU(r,t):a=e;else for(var C={};a.length<t;){var I=Math.floor(Math.random()*_);C[I]||(C[I]=!0,a.push(r[I]))}do{oM(t,0,T);for(var M=0;M<_;M++){for(var E=1/0,L=0,A=0;A<t;A++){var d=x?qU(r[M],a[A]):Math.abs(r[M]-a[A]);d<=E&&(E=d,L=A)}p[M]=L,T[L]++}for(var z=[],c=[],G=0,Y=0;Y<t;Y++)z[Y]=x?oM(w,0,z[Y]):0,c[Y]=a[Y];if(x){for(var X=0;X<t;X++)a[X]=[];for(var U=0;U<_;U++)for(var H=p[U],Q=z[H],gt=r[U],$=0;$<w;$++)Q[$]+=gt[$];g=!0;for(var Nt=0;Nt<t;Nt++){for(var j=a[Nt],pt=z[Nt],Ct=c[Nt],Tt=T[Nt],ft=0;ft<w;ft++)j[ft]=pt[ft]/Tt||0;if(g){for(var dt=0;dt<w;dt++)if(Ct[dt]!=j[dt]){g=!1;break}}}}else{for(var Z=0;Z<_;Z++){var st=p[Z];z[st]+=r[Z]}for(var vt=0;vt<t;vt++)a[vt]=z[vt]/T[vt]||0;g=!0;for(var zt=0;zt<t;zt++)if(c[zt]!=a[zt]){g=!1;break}}g=g||--y<=0}while(!g);return{it:iM-y,k:t,idxs:p,centroids:a}}aM.exports=$U});var Sc=ye((X0,Y0)=>{(function(r,t){typeof X0=="object"&&typeof Y0!="undefined"?Y0.exports=t():typeof define=="function"&&define.amd?define(t):(r=typeof globalThis!="undefined"?globalThis:r||self,r.polygonClipping=t())})(X0,function(){"use strict";function r(it,B){if(!(it instanceof B))throw new TypeError("Cannot call a class as a function")}function t(it,B){for(var P=0;P<B.length;P++){var F=B[P];F.enumerable=F.enumerable||!1,F.configurable=!0,"value"in F&&(F.writable=!0),Object.defineProperty(it,F.key,F)}}function e(it,B,P){return B&&t(it.prototype,B),P&&t(it,P),it}var o=function(){function it(B,P){this.next=null,this.key=B,this.data=P,this.left=null,this.right=null}return it}();function a(it,B){return it>B?1:it<B?-1:0}function c(it,B,P){for(var F=new o(null,null),J=F,rt=F;;){var D=P(it,B.key);if(D<0){if(B.left===null)break;if(P(it,B.left.key)<0){var N=B.left;if(B.left=N.right,N.right=B,B=N,B.left===null)break}rt.left=B,rt=B,B=B.left}else if(D>0){if(B.right===null)break;if(P(it,B.right.key)>0){var N=B.right;if(B.right=N.left,N.left=B,B=N,B.right===null)break}J.right=B,J=B,B=B.right}else break}return J.right=B.left,rt.left=B.right,B.left=F.right,B.right=F.left,B}function p(it,B,P,F){var J=new o(it,B);if(P===null)return J.left=J.right=null,J;P=c(it,P,F);var rt=F(it,P.key);return rt<0?(J.left=P.left,J.right=P,P.left=null):rt>=0&&(J.right=P.right,J.left=P,P.right=null),J}function d(it,B,P){var F=null,J=null;if(B){B=c(it,B,P);var rt=P(B.key,it);rt===0?(F=B.left,J=B.right):rt<0?(J=B.right,B.right=null,F=B):(F=B.left,B.left=null,J=B)}return{left:F,right:J}}function g(it,B,P){return B===null?it:(it===null||(B=c(it.key,B,P),B.left=it),B)}function y(it,B,P,F,J){if(it){F(""+B+(P?"\\u2514\\u2500\\u2500 ":"\\u251C\\u2500\\u2500 ")+J(it)+\`
107
107
  \`);var rt=B+(P?" ":"\\u2502 ");it.left&&y(it.left,rt,!1,F,J),it.right&&y(it.right,rt,!0,F,J)}}var _=function(){function it(B){B===void 0&&(B=a),this._root=null,this._size=0,this._comparator=B}return it.prototype.insert=function(B,P){return this._size++,this._root=p(B,P,this._root,this._comparator)},it.prototype.add=function(B,P){var F=new o(B,P);this._root===null&&(F.left=F.right=null,this._size++,this._root=F);var J=this._comparator,rt=c(B,this._root,J),D=J(B,rt.key);return D===0?this._root=rt:(D<0?(F.left=rt.left,F.right=rt,rt.left=null):D>0&&(F.right=rt.right,F.left=rt,rt.right=null),this._size++,this._root=F),this._root},it.prototype.remove=function(B){this._root=this._remove(B,this._root,this._comparator)},it.prototype._remove=function(B,P,F){var J;if(P===null)return null;P=c(B,P,F);var rt=F(B,P.key);return rt===0?(P.left===null?J=P.right:(J=c(B,P.left,F),J.right=P.right),this._size--,J):P},it.prototype.pop=function(){var B=this._root;if(B){for(;B.left;)B=B.left;return this._root=c(B.key,this._root,this._comparator),this._root=this._remove(B.key,this._root,this._comparator),{key:B.key,data:B.data}}return null},it.prototype.findStatic=function(B){for(var P=this._root,F=this._comparator;P;){var J=F(B,P.key);if(J===0)return P;J<0?P=P.left:P=P.right}return null},it.prototype.find=function(B){return this._root&&(this._root=c(B,this._root,this._comparator),this._comparator(B,this._root.key)!==0)?null:this._root},it.prototype.contains=function(B){for(var P=this._root,F=this._comparator;P;){var J=F(B,P.key);if(J===0)return!0;J<0?P=P.left:P=P.right}return!1},it.prototype.forEach=function(B,P){for(var F=this._root,J=[],rt=!1;!rt;)F!==null?(J.push(F),F=F.left):J.length!==0?(F=J.pop(),B.call(P,F),F=F.right):rt=!0;return this},it.prototype.range=function(B,P,F,J){for(var rt=[],D=this._comparator,N=this._root,W;rt.length!==0||N;)if(N)rt.push(N),N=N.left;else{if(N=rt.pop(),W=D(N.key,P),W>0)break;if(D(N.key,B)>=0&&F.call(J,N))return this;N=N.right}return this},it.prototype.keys=function(){var B=[];return this.forEach(function(P){var F=P.key;return B.push(F)}),B},it.prototype.values=function(){var B=[];return this.forEach(function(P){var F=P.data;return B.push(F)}),B},it.prototype.min=function(){return this._root?this.minNode(this._root).key:null},it.prototype.max=function(){return this._root?this.maxNode(this._root).key:null},it.prototype.minNode=function(B){if(B===void 0&&(B=this._root),B)for(;B.left;)B=B.left;return B},it.prototype.maxNode=function(B){if(B===void 0&&(B=this._root),B)for(;B.right;)B=B.right;return B},it.prototype.at=function(B){for(var P=this._root,F=!1,J=0,rt=[];!F;)if(P)rt.push(P),P=P.left;else if(rt.length>0){if(P=rt.pop(),J===B)return P;J++,P=P.right}else F=!0;return null},it.prototype.next=function(B){var P=this._root,F=null;if(B.right){for(F=B.right;F.left;)F=F.left;return F}for(var J=this._comparator;P;){var rt=J(B.key,P.key);if(rt===0)break;rt<0?(F=P,P=P.left):P=P.right}return F},it.prototype.prev=function(B){var P=this._root,F=null;if(B.left!==null){for(F=B.left;F.right;)F=F.right;return F}for(var J=this._comparator;P;){var rt=J(B.key,P.key);if(rt===0)break;rt<0?P=P.left:(F=P,P=P.right)}return F},it.prototype.clear=function(){return this._root=null,this._size=0,this},it.prototype.toList=function(){return T(this._root)},it.prototype.load=function(B,P,F){P===void 0&&(P=[]),F===void 0&&(F=!1);var J=B.length,rt=this._comparator;if(F&&M(B,P,0,J-1,rt),this._root===null)this._root=w(B,P,0,J),this._size=J;else{var D=I(this.toList(),x(B,P),rt);J=this._size+J,this._root=C({head:D},0,J)}return this},it.prototype.isEmpty=function(){return this._root===null},Object.defineProperty(it.prototype,"size",{get:function(){return this._size},enumerable:!0,configurable:!0}),Object.defineProperty(it.prototype,"root",{get:function(){return this._root},enumerable:!0,configurable:!0}),it.prototype.toString=function(B){B===void 0&&(B=function(J){return String(J.key)});var P=[];return y(this._root,"",!0,function(F){return P.push(F)},B),P.join("")},it.prototype.update=function(B,P,F){var J=this._comparator,rt=d(B,this._root,J),D=rt.left,N=rt.right;J(B,P)<0?N=p(P,F,N,J):D=p(P,F,D,J),this._root=g(D,N,J)},it.prototype.split=function(B){return d(B,this._root,this._comparator)},it}();function w(it,B,P,F){var J=F-P;if(J>0){var rt=P+Math.floor(J/2),D=it[rt],N=B[rt],W=new o(D,N);return W.left=w(it,B,P,rt),W.right=w(it,B,rt+1,F),W}return null}function x(it,B){for(var P=new o(null,null),F=P,J=0;J<it.length;J++)F=F.next=new o(it[J],B[J]);return F.next=null,P.next}function T(it){for(var B=it,P=[],F=!1,J=new o(null,null),rt=J;!F;)B?(P.push(B),B=B.left):P.length>0?(B=rt=rt.next=P.pop(),B=B.right):F=!0;return rt.next=null,J.next}function C(it,B,P){var F=P-B;if(F>0){var J=B+Math.floor(F/2),rt=C(it,B,J),D=it.head;return D.left=rt,it.head=it.head.next,D.right=C(it,J+1,P),D}return null}function I(it,B,P){for(var F=new o(null,null),J=F,rt=it,D=B;rt!==null&&D!==null;)P(rt.key,D.key)<0?(J.next=rt,rt=rt.next):(J.next=D,D=D.next),J=J.next;return rt!==null?J.next=rt:D!==null&&(J.next=D),F.next}function M(it,B,P,F,J){if(!(P>=F)){for(var rt=it[P+F>>1],D=P-1,N=F+1;;){do D++;while(J(it[D],rt)<0);do N--;while(J(it[N],rt)>0);if(D>=N)break;var W=it[D];it[D]=it[N],it[N]=W,W=B[D],B[D]=B[N],B[N]=W}M(it,B,P,N,J),M(it,B,N+1,F,J)}}var E=function(B,P){return B.ll.x<=P.x&&P.x<=B.ur.x&&B.ll.y<=P.y&&P.y<=B.ur.y},L=function(B,P){if(P.ur.x<B.ll.x||B.ur.x<P.ll.x||P.ur.y<B.ll.y||B.ur.y<P.ll.y)return null;var F=B.ll.x<P.ll.x?P.ll.x:B.ll.x,J=B.ur.x<P.ur.x?B.ur.x:P.ur.x,rt=B.ll.y<P.ll.y?P.ll.y:B.ll.y,D=B.ur.y<P.ur.y?B.ur.y:P.ur.y;return{ll:{x:F,y:rt},ur:{x:J,y:D}}},A=Number.EPSILON;A===void 0&&(A=Math.pow(2,-52));var z=A*A,G=function(B,P){if(-A<B&&B<A&&-A<P&&P<A)return 0;var F=B-P;return F*F<z*B*P?0:B<P?-1:1},Y=function(){function it(){r(this,it),this.reset()}return e(it,[{key:"reset",value:function(){this.xRounder=new X,this.yRounder=new X}},{key:"round",value:function(P,F){return{x:this.xRounder.round(P),y:this.yRounder.round(F)}}}]),it}(),X=function(){function it(){r(this,it),this.tree=new _,this.round(0)}return e(it,[{key:"round",value:function(P){var F=this.tree.add(P),J=this.tree.prev(F);if(J!==null&&G(F.key,J.key)===0)return this.tree.remove(P),J.key;var rt=this.tree.next(F);return rt!==null&&G(F.key,rt.key)===0?(this.tree.remove(P),rt.key):P}}]),it}(),U=new Y,H=function(B,P){return B.x*P.y-B.y*P.x},Q=function(B,P){return B.x*P.x+B.y*P.y},gt=function(B,P,F){var J={x:P.x-B.x,y:P.y-B.y},rt={x:F.x-B.x,y:F.y-B.y},D=H(J,rt);return G(D,0)},$=function(B){return Math.sqrt(Q(B,B))},Nt=function(B,P,F){var J={x:P.x-B.x,y:P.y-B.y},rt={x:F.x-B.x,y:F.y-B.y};return H(rt,J)/$(rt)/$(J)},j=function(B,P,F){var J={x:P.x-B.x,y:P.y-B.y},rt={x:F.x-B.x,y:F.y-B.y};return Q(rt,J)/$(rt)/$(J)},pt=function(B,P,F){return P.y===0?null:{x:B.x+P.x/P.y*(F-B.y),y:F}},Ct=function(B,P,F){return P.x===0?null:{x:F,y:B.y+P.y/P.x*(F-B.x)}},Tt=function(B,P,F,J){if(P.x===0)return Ct(F,J,B.x);if(J.x===0)return Ct(B,P,F.x);if(P.y===0)return pt(F,J,B.y);if(J.y===0)return pt(B,P,F.y);var rt=H(P,J);if(rt==0)return null;var D={x:F.x-B.x,y:F.y-B.y},N=H(D,P)/rt,W=H(D,J)/rt,xt=B.x+W*P.x,wt=F.x+N*J.x,lt=B.y+W*P.y,Bt=F.y+N*J.y,Lt=(xt+wt)/2,Ut=(lt+Bt)/2;return{x:Lt,y:Ut}},ft=function(){e(it,null,[{key:"compare",value:function(P,F){var J=it.comparePoints(P.point,F.point);return J!==0?J:(P.point!==F.point&&P.link(F),P.isLeft!==F.isLeft?P.isLeft?1:-1:Z.compare(P.segment,F.segment))}},{key:"comparePoints",value:function(P,F){return P.x<F.x?-1:P.x>F.x?1:P.y<F.y?-1:P.y>F.y?1:0}}]);function it(B,P){r(this,it),B.events===void 0?B.events=[this]:B.events.push(this),this.point=B,this.isLeft=P}return e(it,[{key:"link",value:function(P){if(P.point===this.point)throw new Error("Tried to link already linked events");for(var F=P.point.events,J=0,rt=F.length;J<rt;J++){var D=F[J];this.point.events.push(D),D.point=this.point}this.checkForConsuming()}},{key:"checkForConsuming",value:function(){for(var P=this.point.events.length,F=0;F<P;F++){var J=this.point.events[F];if(J.segment.consumedBy===void 0)for(var rt=F+1;rt<P;rt++){var D=this.point.events[rt];D.consumedBy===void 0&&J.otherSE.point.events===D.otherSE.point.events&&J.segment.consume(D.segment)}}}},{key:"getAvailableLinkedEvents",value:function(){for(var P=[],F=0,J=this.point.events.length;F<J;F++){var rt=this.point.events[F];rt!==this&&!rt.segment.ringOut&&rt.segment.isInResult()&&P.push(rt)}return P}},{key:"getLeftmostComparator",value:function(P){var F=this,J=new Map,rt=function(N){var W=N.otherSE;J.set(N,{sine:Nt(F.point,P.point,W.point),cosine:j(F.point,P.point,W.point)})};return function(D,N){J.has(D)||rt(D),J.has(N)||rt(N);var W=J.get(D),xt=W.sine,wt=W.cosine,lt=J.get(N),Bt=lt.sine,Lt=lt.cosine;return xt>=0&&Bt>=0?wt<Lt?1:wt>Lt?-1:0:xt<0&&Bt<0?wt<Lt?-1:wt>Lt?1:0:Bt<xt?-1:Bt>xt?1:0}}}]),it}(),dt=0,Z=function(){e(it,null,[{key:"compare",value:function(P,F){var J=P.leftSE.point.x,rt=F.leftSE.point.x,D=P.rightSE.point.x,N=F.rightSE.point.x;if(N<J)return 1;if(D<rt)return-1;var W=P.leftSE.point.y,xt=F.leftSE.point.y,wt=P.rightSE.point.y,lt=F.rightSE.point.y;if(J<rt){if(xt<W&&xt<wt)return 1;if(xt>W&&xt>wt)return-1;var Bt=P.comparePoint(F.leftSE.point);if(Bt<0)return 1;if(Bt>0)return-1;var Lt=F.comparePoint(P.rightSE.point);return Lt!==0?Lt:-1}if(J>rt){if(W<xt&&W<lt)return-1;if(W>xt&&W>lt)return 1;var Ut=F.comparePoint(P.leftSE.point);if(Ut!==0)return Ut;var Xt=P.comparePoint(F.rightSE.point);return Xt<0?1:Xt>0?-1:1}if(W<xt)return-1;if(W>xt)return 1;if(D<N){var de=F.comparePoint(P.rightSE.point);if(de!==0)return de}if(D>N){var Ft=P.comparePoint(F.rightSE.point);if(Ft<0)return 1;if(Ft>0)return-1}if(D!==N){var Se=wt-W,xe=D-J,he=lt-xt,Jt=N-rt;if(Se>xe&&he<Jt)return 1;if(Se<xe&&he>Jt)return-1}return D>N?1:D<N||wt<lt?-1:wt>lt?1:P.id<F.id?-1:P.id>F.id?1:0}}]);function it(B,P,F,J){r(this,it),this.id=++dt,this.leftSE=B,B.segment=this,B.otherSE=P,this.rightSE=P,P.segment=this,P.otherSE=B,this.rings=F,this.windings=J}return e(it,[{key:"replaceRightSE",value:function(P){this.rightSE=P,this.rightSE.segment=this,this.rightSE.otherSE=this.leftSE,this.leftSE.otherSE=this.rightSE}},{key:"bbox",value:function(){var P=this.leftSE.point.y,F=this.rightSE.point.y;return{ll:{x:this.leftSE.point.x,y:P<F?P:F},ur:{x:this.rightSE.point.x,y:P>F?P:F}}}},{key:"vector",value:function(){return{x:this.rightSE.point.x-this.leftSE.point.x,y:this.rightSE.point.y-this.leftSE.point.y}}},{key:"isAnEndpoint",value:function(P){return P.x===this.leftSE.point.x&&P.y===this.leftSE.point.y||P.x===this.rightSE.point.x&&P.y===this.rightSE.point.y}},{key:"comparePoint",value:function(P){if(this.isAnEndpoint(P))return 0;var F=this.leftSE.point,J=this.rightSE.point,rt=this.vector();if(F.x===J.x)return P.x===F.x?0:P.x<F.x?1:-1;var D=(P.y-F.y)/rt.y,N=F.x+D*rt.x;if(P.x===N)return 0;var W=(P.x-F.x)/rt.x,xt=F.y+W*rt.y;return P.y===xt?0:P.y<xt?-1:1}},{key:"getIntersection",value:function(P){var F=this.bbox(),J=P.bbox(),rt=L(F,J);if(rt===null)return null;var D=this.leftSE.point,N=this.rightSE.point,W=P.leftSE.point,xt=P.rightSE.point,wt=E(F,W)&&this.comparePoint(W)===0,lt=E(J,D)&&P.comparePoint(D)===0,Bt=E(F,xt)&&this.comparePoint(xt)===0,Lt=E(J,N)&&P.comparePoint(N)===0;if(lt&&wt)return Lt&&!Bt?N:!Lt&&Bt?xt:null;if(lt)return Bt&&D.x===xt.x&&D.y===xt.y?null:D;if(wt)return Lt&&N.x===W.x&&N.y===W.y?null:W;if(Lt&&Bt)return null;if(Lt)return N;if(Bt)return xt;var Ut=Tt(D,this.vector(),W,P.vector());return Ut===null||!E(rt,Ut)?null:U.round(Ut.x,Ut.y)}},{key:"split",value:function(P){var F=[],J=P.events!==void 0,rt=new ft(P,!0),D=new ft(P,!1),N=this.rightSE;this.replaceRightSE(D),F.push(D),F.push(rt);var W=new it(rt,N,this.rings.slice(),this.windings.slice());return ft.comparePoints(W.leftSE.point,W.rightSE.point)>0&&W.swapEvents(),ft.comparePoints(this.leftSE.point,this.rightSE.point)>0&&this.swapEvents(),J&&(rt.checkForConsuming(),D.checkForConsuming()),F}},{key:"swapEvents",value:function(){var P=this.rightSE;this.rightSE=this.leftSE,this.leftSE=P,this.leftSE.isLeft=!0,this.rightSE.isLeft=!1;for(var F=0,J=this.windings.length;F<J;F++)this.windings[F]*=-1}},{key:"consume",value:function(P){for(var F=this,J=P;F.consumedBy;)F=F.consumedBy;for(;J.consumedBy;)J=J.consumedBy;var rt=it.compare(F,J);if(rt!==0){if(rt>0){var D=F;F=J,J=D}if(F.prev===J){var N=F;F=J,J=N}for(var W=0,xt=J.rings.length;W<xt;W++){var wt=J.rings[W],lt=J.windings[W],Bt=F.rings.indexOf(wt);Bt===-1?(F.rings.push(wt),F.windings.push(lt)):F.windings[Bt]+=lt}J.rings=null,J.windings=null,J.consumedBy=F,J.leftSE.consumedBy=F.leftSE,J.rightSE.consumedBy=F.rightSE}}},{key:"prevInResult",value:function(){return this._prevInResult!==void 0?this._prevInResult:(this.prev?this.prev.isInResult()?this._prevInResult=this.prev:this._prevInResult=this.prev.prevInResult():this._prevInResult=null,this._prevInResult)}},{key:"beforeState",value:function(){if(this._beforeState!==void 0)return this._beforeState;if(!this.prev)this._beforeState={rings:[],windings:[],multiPolys:[]};else{var P=this.prev.consumedBy||this.prev;this._beforeState=P.afterState()}return this._beforeState}},{key:"afterState",value:function(){if(this._afterState!==void 0)return this._afterState;var P=this.beforeState();this._afterState={rings:P.rings.slice(0),windings:P.windings.slice(0),multiPolys:[]};for(var F=this._afterState.rings,J=this._afterState.windings,rt=this._afterState.multiPolys,D=0,N=this.rings.length;D<N;D++){var W=this.rings[D],xt=this.windings[D],wt=F.indexOf(W);wt===-1?(F.push(W),J.push(xt)):J[wt]+=xt}for(var lt=[],Bt=[],Lt=0,Ut=F.length;Lt<Ut;Lt++)if(J[Lt]!==0){var Xt=F[Lt],de=Xt.poly;if(Bt.indexOf(de)===-1)if(Xt.isExterior)lt.push(de);else{Bt.indexOf(de)===-1&&Bt.push(de);var Ft=lt.indexOf(Xt.poly);Ft!==-1&&lt.splice(Ft,1)}}for(var Se=0,xe=lt.length;Se<xe;Se++){var he=lt[Se].multiPoly;rt.indexOf(he)===-1&&rt.push(he)}return this._afterState}},{key:"isInResult",value:function(){if(this.consumedBy)return!1;if(this._isInResult!==void 0)return this._isInResult;var P=this.beforeState().multiPolys,F=this.afterState().multiPolys;switch(pe.type){case"union":{var J=P.length===0,rt=F.length===0;this._isInResult=J!==rt;break}case"intersection":{var D,N;P.length<F.length?(D=P.length,N=F.length):(D=F.length,N=P.length),this._isInResult=N===pe.numMultiPolys&&D<N;break}case"xor":{var W=Math.abs(P.length-F.length);this._isInResult=W%2===1;break}case"difference":{var xt=function(lt){return lt.length===1&&lt[0].isSubject};this._isInResult=xt(P)!==xt(F);break}default:throw new Error("Unrecognized operation type found ".concat(pe.type))}return this._isInResult}}],[{key:"fromRing",value:function(P,F,J){var rt,D,N,W=ft.comparePoints(P,F);if(W<0)rt=P,D=F,N=1;else if(W>0)rt=F,D=P,N=-1;else throw new Error("Tried to create degenerate segment at [".concat(P.x,", ").concat(P.y,"]"));var xt=new ft(rt,!0),wt=new ft(D,!1);return new it(xt,wt,[J],[N])}}]),it}(),st=function(){function it(B,P,F){if(r(this,it),!Array.isArray(B)||B.length===0)throw new Error("Input geometry is not a valid Polygon or MultiPolygon");if(this.poly=P,this.isExterior=F,this.segments=[],typeof B[0][0]!="number"||typeof B[0][1]!="number")throw new Error("Input geometry is not a valid Polygon or MultiPolygon");var J=U.round(B[0][0],B[0][1]);this.bbox={ll:{x:J.x,y:J.y},ur:{x:J.x,y:J.y}};for(var rt=J,D=1,N=B.length;D<N;D++){if(typeof B[D][0]!="number"||typeof B[D][1]!="number")throw new Error("Input geometry is not a valid Polygon or MultiPolygon");var W=U.round(B[D][0],B[D][1]);W.x===rt.x&&W.y===rt.y||(this.segments.push(Z.fromRing(rt,W,this)),W.x<this.bbox.ll.x&&(this.bbox.ll.x=W.x),W.y<this.bbox.ll.y&&(this.bbox.ll.y=W.y),W.x>this.bbox.ur.x&&(this.bbox.ur.x=W.x),W.y>this.bbox.ur.y&&(this.bbox.ur.y=W.y),rt=W)}(J.x!==rt.x||J.y!==rt.y)&&this.segments.push(Z.fromRing(rt,J,this))}return e(it,[{key:"getSweepEvents",value:function(){for(var P=[],F=0,J=this.segments.length;F<J;F++){var rt=this.segments[F];P.push(rt.leftSE),P.push(rt.rightSE)}return P}}]),it}(),vt=function(){function it(B,P){if(r(this,it),!Array.isArray(B))throw new Error("Input geometry is not a valid Polygon or MultiPolygon");this.exteriorRing=new st(B[0],this,!0),this.bbox={ll:{x:this.exteriorRing.bbox.ll.x,y:this.exteriorRing.bbox.ll.y},ur:{x:this.exteriorRing.bbox.ur.x,y:this.exteriorRing.bbox.ur.y}},this.interiorRings=[];for(var F=1,J=B.length;F<J;F++){var rt=new st(B[F],this,!1);rt.bbox.ll.x<this.bbox.ll.x&&(this.bbox.ll.x=rt.bbox.ll.x),rt.bbox.ll.y<this.bbox.ll.y&&(this.bbox.ll.y=rt.bbox.ll.y),rt.bbox.ur.x>this.bbox.ur.x&&(this.bbox.ur.x=rt.bbox.ur.x),rt.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=rt.bbox.ur.y),this.interiorRings.push(rt)}this.multiPoly=P}return e(it,[{key:"getSweepEvents",value:function(){for(var P=this.exteriorRing.getSweepEvents(),F=0,J=this.interiorRings.length;F<J;F++)for(var rt=this.interiorRings[F].getSweepEvents(),D=0,N=rt.length;D<N;D++)P.push(rt[D]);return P}}]),it}(),zt=function(){function it(B,P){if(r(this,it),!Array.isArray(B))throw new Error("Input geometry is not a valid Polygon or MultiPolygon");try{typeof B[0][0][0]=="number"&&(B=[B])}catch(D){}this.polys=[],this.bbox={ll:{x:Number.POSITIVE_INFINITY,y:Number.POSITIVE_INFINITY},ur:{x:Number.NEGATIVE_INFINITY,y:Number.NEGATIVE_INFINITY}};for(var F=0,J=B.length;F<J;F++){var rt=new vt(B[F],this);rt.bbox.ll.x<this.bbox.ll.x&&(this.bbox.ll.x=rt.bbox.ll.x),rt.bbox.ll.y<this.bbox.ll.y&&(this.bbox.ll.y=rt.bbox.ll.y),rt.bbox.ur.x>this.bbox.ur.x&&(this.bbox.ur.x=rt.bbox.ur.x),rt.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=rt.bbox.ur.y),this.polys.push(rt)}this.isSubject=P}return e(it,[{key:"getSweepEvents",value:function(){for(var P=[],F=0,J=this.polys.length;F<J;F++)for(var rt=this.polys[F].getSweepEvents(),D=0,N=rt.length;D<N;D++)P.push(rt[D]);return P}}]),it}(),bt=function(){e(it,null,[{key:"factory",value:function(P){for(var F=[],J=0,rt=P.length;J<rt;J++){var D=P[J];if(!(!D.isInResult()||D.ringOut)){for(var N=null,W=D.leftSE,xt=D.rightSE,wt=[W],lt=W.point,Bt=[];N=W,W=xt,wt.push(W),W.point!==lt;)for(;;){var Lt=W.getAvailableLinkedEvents();if(Lt.length===0){var Ut=wt[0].point,Xt=wt[wt.length-1].point;throw new Error("Unable to complete output ring starting at [".concat(Ut.x,",")+" ".concat(Ut.y,"]. Last matching segment found ends at")+" [".concat(Xt.x,", ").concat(Xt.y,"]."))}if(Lt.length===1){xt=Lt[0].otherSE;break}for(var de=null,Ft=0,Se=Bt.length;Ft<Se;Ft++)if(Bt[Ft].point===W.point){de=Ft;break}if(de!==null){var xe=Bt.splice(de)[0],he=wt.splice(xe.index);he.unshift(he[0].otherSE),F.push(new it(he.reverse()));continue}Bt.push({index:wt.length,point:W.point});var Jt=W.getLeftmostComparator(N);xt=Lt.sort(Jt)[0].otherSE;break}F.push(new it(wt))}}return F}}]);function it(B){r(this,it),this.events=B;for(var P=0,F=B.length;P<F;P++)B[P].segment.ringOut=this;this.poly=null}return e(it,[{key:"getGeom",value:function(){for(var P=this.events[0].point,F=[P],J=1,rt=this.events.length-1;J<rt;J++){var D=this.events[J].point,N=this.events[J+1].point;gt(D,P,N)!==0&&(F.push(D),P=D)}if(F.length===1)return null;var W=F[0],xt=F[1];gt(W,P,xt)===0&&F.shift(),F.push(F[0]);for(var wt=this.isExteriorRing()?1:-1,lt=this.isExteriorRing()?0:F.length-1,Bt=this.isExteriorRing()?F.length:-1,Lt=[],Ut=lt;Ut!=Bt;Ut+=wt)Lt.push([F[Ut].x,F[Ut].y]);return Lt}},{key:"isExteriorRing",value:function(){if(this._isExteriorRing===void 0){var P=this.enclosingRing();this._isExteriorRing=P?!P.isExteriorRing():!0}return this._isExteriorRing}},{key:"enclosingRing",value:function(){return this._enclosingRing===void 0&&(this._enclosingRing=this._calcEnclosingRing()),this._enclosingRing}},{key:"_calcEnclosingRing",value:function(){for(var P=this.events[0],F=1,J=this.events.length;F<J;F++){var rt=this.events[F];ft.compare(P,rt)>0&&(P=rt)}for(var D=P.segment.prevInResult(),N=D?D.prevInResult():null;;){if(!D)return null;if(!N)return D.ringOut;if(N.ringOut!==D.ringOut)return N.ringOut.enclosingRing()!==D.ringOut?D.ringOut:D.ringOut.enclosingRing();D=N.prevInResult(),N=D?D.prevInResult():null}}}]),it}(),qt=function(){function it(B){r(this,it),this.exteriorRing=B,B.poly=this,this.interiorRings=[]}return e(it,[{key:"addInterior",value:function(P){this.interiorRings.push(P),P.poly=this}},{key:"getGeom",value:function(){var P=[this.exteriorRing.getGeom()];if(P[0]===null)return null;for(var F=0,J=this.interiorRings.length;F<J;F++){var rt=this.interiorRings[F].getGeom();rt!==null&&P.push(rt)}return P}}]),it}(),le=function(){function it(B){r(this,it),this.rings=B,this.polys=this._composePolys(B)}return e(it,[{key:"getGeom",value:function(){for(var P=[],F=0,J=this.polys.length;F<J;F++){var rt=this.polys[F].getGeom();rt!==null&&P.push(rt)}return P}},{key:"_composePolys",value:function(P){for(var F=[],J=0,rt=P.length;J<rt;J++){var D=P[J];if(!D.poly)if(D.isExteriorRing())F.push(new qt(D));else{var N=D.enclosingRing();N.poly||F.push(new qt(N)),N.poly.addInterior(D)}}return F}}]),it}(),se=function(){function it(B){var P=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Z.compare;r(this,it),this.queue=B,this.tree=new _(P),this.segments=[]}return e(it,[{key:"process",value:function(P){var F=P.segment,J=[];if(P.consumedBy)return P.isLeft?this.queue.remove(P.otherSE):this.tree.remove(F),J;var rt=P.isLeft?this.tree.insert(F):this.tree.find(F);if(!rt)throw new Error("Unable to find segment #".concat(F.id," ")+"[".concat(F.leftSE.point.x,", ").concat(F.leftSE.point.y,"] -> ")+"[".concat(F.rightSE.point.x,", ").concat(F.rightSE.point.y,"] ")+"in SweepLine tree. Please submit a bug report.");for(var D=rt,N=rt,W=void 0,xt=void 0;W===void 0;)D=this.tree.prev(D),D===null?W=null:D.key.consumedBy===void 0&&(W=D.key);for(;xt===void 0;)N=this.tree.next(N),N===null?xt=null:N.key.consumedBy===void 0&&(xt=N.key);if(P.isLeft){var wt=null;if(W){var lt=W.getIntersection(F);if(lt!==null&&(F.isAnEndpoint(lt)||(wt=lt),!W.isAnEndpoint(lt)))for(var Bt=this._splitSafely(W,lt),Lt=0,Ut=Bt.length;Lt<Ut;Lt++)J.push(Bt[Lt])}var Xt=null;if(xt){var de=xt.getIntersection(F);if(de!==null&&(F.isAnEndpoint(de)||(Xt=de),!xt.isAnEndpoint(de)))for(var Ft=this._splitSafely(xt,de),Se=0,xe=Ft.length;Se<xe;Se++)J.push(Ft[Se])}if(wt!==null||Xt!==null){var he=null;if(wt===null)he=Xt;else if(Xt===null)he=wt;else{var Jt=ft.comparePoints(wt,Xt);he=Jt<=0?wt:Xt}this.queue.remove(F.rightSE),J.push(F.rightSE);for(var et=F.split(he),kt=0,ct=et.length;kt<ct;kt++)J.push(et[kt])}J.length>0?(this.tree.remove(F),J.push(P)):(this.segments.push(F),F.prev=W)}else{if(W&&xt){var jt=W.getIntersection(xt);if(jt!==null){if(!W.isAnEndpoint(jt))for(var Kt=this._splitSafely(W,jt),Mt=0,me=Kt.length;Mt<me;Mt++)J.push(Kt[Mt]);if(!xt.isAnEndpoint(jt))for(var be=this._splitSafely(xt,jt),Jn=0,$e=be.length;Jn<$e;Jn++)J.push(be[Jn])}}this.tree.remove(F)}return J}},{key:"_splitSafely",value:function(P,F){this.tree.remove(P);var J=P.rightSE;this.queue.remove(J);var rt=P.split(F);return rt.push(J),P.consumedBy===void 0&&this.tree.insert(P),rt}}]),it}(),Zt=typeof process!="undefined"&&process.env.POLYGON_CLIPPING_MAX_QUEUE_SIZE||1e6,_e=typeof process!="undefined"&&process.env.POLYGON_CLIPPING_MAX_SWEEPLINE_SEGMENTS||1e6,Vt=function(){function it(){r(this,it)}return e(it,[{key:"run",value:function(P,F,J){pe.type=P,U.reset();for(var rt=[new zt(F,!0)],D=0,N=J.length;D<N;D++)rt.push(new zt(J[D],!1));if(pe.numMultiPolys=rt.length,pe.type==="difference")for(var W=rt[0],xt=1;xt<rt.length;)L(rt[xt].bbox,W.bbox)!==null?xt++:rt.splice(xt,1);if(pe.type==="intersection"){for(var wt=0,lt=rt.length;wt<lt;wt++)for(var Bt=rt[wt],Lt=wt+1,Ut=rt.length;Lt<Ut;Lt++)if(L(Bt.bbox,rt[Lt].bbox)===null)return[]}for(var Xt=new _(ft.compare),de=0,Ft=rt.length;de<Ft;de++)for(var Se=rt[de].getSweepEvents(),xe=0,he=Se.length;xe<he;xe++)if(Xt.insert(Se[xe]),Xt.size>Zt)throw new Error("Infinite loop when putting segment endpoints in a priority queue (queue size too big). Please file a bug report.");for(var Jt=new se(Xt),et=Xt.size,kt=Xt.pop();kt;){var ct=kt.key;if(Xt.size===et){var jt=ct.segment;throw new Error("Unable to pop() ".concat(ct.isLeft?"left":"right"," SweepEvent ")+"[".concat(ct.point.x,", ").concat(ct.point.y,"] from segment #").concat(jt.id," ")+"[".concat(jt.leftSE.point.x,", ").concat(jt.leftSE.point.y,"] -> ")+"[".concat(jt.rightSE.point.x,", ").concat(jt.rightSE.point.y,"] from queue. ")+"Please file a bug report.")}if(Xt.size>Zt)throw new Error("Infinite loop when passing sweep line over endpoints (queue size too big). Please file a bug report.");if(Jt.segments.length>_e)throw new Error("Infinite loop when passing sweep line over endpoints (too many sweep line segments). Please file a bug report.");for(var Kt=Jt.process(ct),Mt=0,me=Kt.length;Mt<me;Mt++){var be=Kt[Mt];be.consumedBy===void 0&&Xt.insert(be)}et=Xt.size,kt=Xt.pop()}U.reset();var Jn=bt.factory(Jt.segments),$e=new le(Jn);return $e.getGeom()}}]),it}(),pe=new Vt,at=function(B){for(var P=arguments.length,F=new Array(P>1?P-1:0),J=1;J<P;J++)F[J-1]=arguments[J];return pe.run("union",B,F)},He=function(B){for(var P=arguments.length,F=new Array(P>1?P-1:0),J=1;J<P;J++)F[J-1]=arguments[J];return pe.run("intersection",B,F)},ae=function(B){for(var P=arguments.length,F=new Array(P>1?P-1:0),J=1;J<P;J++)F[J-1]=arguments[J];return pe.run("xor",B,F)},ce=function(B){for(var P=arguments.length,F=new Array(P>1?P-1:0),J=1;J<P;J++)F[J-1]=arguments[J];return pe.run("difference",B,F)},fe={union:at,intersection:He,xor:ae,difference:ce};return fe})});var AM=ye((Vp,TM)=>{(function(r,t){typeof Vp=="object"&&typeof TM!="undefined"?t(Vp):typeof define=="function"&&define.amd?define(["exports"],t):t(r.jsts={})})(Vp,function(r){"use strict";function t(){}function e(n){this.message=n||""}function o(n){this.message=n||""}function a(n){this.message=n||""}function c(){}function p(n){return n===null?eo:n.color}function d(n){return n===null?null:n.parent}function g(n,i){n!==null&&(n.color=i)}function y(n){return n===null?null:n.left}function _(n){return n===null?null:n.right}function w(){this.root_=null,this.size_=0}function x(){}function T(){this.array_=[],arguments[0]instanceof Jt&&this.addAll(arguments[0])}function C(){}function I(n){this.message=n||""}function M(){this.array_=[]}"fill"in Array.prototype||Object.defineProperty(Array.prototype,"fill",{configurable:!0,value:function(n){if(this===void 0||this===null)throw new TypeError(this+" is not an object");var i=Object(this),s=Math.max(Math.min(i.length,9007199254740991),0)||0,l=1 in arguments&&parseInt(Number(arguments[1]),10)||0;l=l<0?Math.max(s+l,0):Math.min(l,s);var h=2 in arguments&&arguments[2]!==void 0?parseInt(Number(arguments[2]),10)||0:s;for(h=h<0?Math.max(s+arguments[2],0):Math.min(h,s);l<h;)i[l]=n,++l;return i},writable:!0}),Number.isFinite=Number.isFinite||function(n){return typeof n=="number"&&isFinite(n)},Number.isInteger=Number.isInteger||function(n){return typeof n=="number"&&isFinite(n)&&Math.floor(n)===n},Number.parseFloat=Number.parseFloat||parseFloat,Number.isNaN=Number.isNaN||function(n){return n!=n},Math.trunc=Math.trunc||function(n){return n<0?Math.ceil(n):Math.floor(n)};var E=function(){};E.prototype.interfaces_=function(){return[]},E.prototype.getClass=function(){return E},E.prototype.equalsWithTolerance=function(n,i,s){return Math.abs(n-i)<=s};var L=function(n){function i(s){n.call(this,s),this.name="IllegalArgumentException",this.message=s,this.stack=new n().stack}return n&&(i.__proto__=n),i.prototype=Object.create(n&&n.prototype),i.prototype.constructor=i,i}(Error),A=function(){},z={MAX_VALUE:{configurable:!0}};A.isNaN=function(n){return Number.isNaN(n)},A.doubleToLongBits=function(n){return n},A.longBitsToDouble=function(n){return n},A.isInfinite=function(n){return!Number.isFinite(n)},z.MAX_VALUE.get=function(){return Number.MAX_VALUE},Object.defineProperties(A,z);var G=function(){},Y=function(){},X=function(){},U=function n(){if(this.x=null,this.y=null,this.z=null,arguments.length===0)this.x=0,this.y=0,this.z=n.NULL_ORDINATE;else if(arguments.length===1){var i=arguments[0];this.x=i.x,this.y=i.y,this.z=i.z}else arguments.length===2?(this.x=arguments[0],this.y=arguments[1],this.z=n.NULL_ORDINATE):arguments.length===3&&(this.x=arguments[0],this.y=arguments[1],this.z=arguments[2])},H={DimensionalComparator:{configurable:!0},serialVersionUID:{configurable:!0},NULL_ORDINATE:{configurable:!0},X:{configurable:!0},Y:{configurable:!0},Z:{configurable:!0}};U.prototype.setOrdinate=function(n,i){switch(n){case U.X:this.x=i;break;case U.Y:this.y=i;break;case U.Z:this.z=i;break;default:throw new L("Invalid ordinate index: "+n)}},U.prototype.equals2D=function(){if(arguments.length===1){var n=arguments[0];return this.x===n.x&&this.y===n.y}if(arguments.length===2){var i=arguments[0],s=arguments[1];return!!E.equalsWithTolerance(this.x,i.x,s)&&!!E.equalsWithTolerance(this.y,i.y,s)}},U.prototype.getOrdinate=function(n){switch(n){case U.X:return this.x;case U.Y:return this.y;case U.Z:return this.z}throw new L("Invalid ordinate index: "+n)},U.prototype.equals3D=function(n){return this.x===n.x&&this.y===n.y&&(this.z===n.z||A.isNaN(this.z))&&A.isNaN(n.z)},U.prototype.equals=function(n){return n instanceof U&&this.equals2D(n)},U.prototype.equalInZ=function(n,i){return E.equalsWithTolerance(this.z,n.z,i)},U.prototype.compareTo=function(n){var i=n;return this.x<i.x?-1:this.x>i.x?1:this.y<i.y?-1:this.y>i.y?1:0},U.prototype.clone=function(){},U.prototype.copy=function(){return new U(this)},U.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"},U.prototype.distance3D=function(n){var i=this.x-n.x,s=this.y-n.y,l=this.z-n.z;return Math.sqrt(i*i+s*s+l*l)},U.prototype.distance=function(n){var i=this.x-n.x,s=this.y-n.y;return Math.sqrt(i*i+s*s)},U.prototype.hashCode=function(){var n=17;return n=37*n+U.hashCode(this.x),n=37*n+U.hashCode(this.y)},U.prototype.setCoordinate=function(n){this.x=n.x,this.y=n.y,this.z=n.z},U.prototype.interfaces_=function(){return[G,Y,t]},U.prototype.getClass=function(){return U},U.hashCode=function(){if(arguments.length===1){var n=arguments[0],i=A.doubleToLongBits(n);return Math.trunc((i^i)>>>32)}},H.DimensionalComparator.get=function(){return Q},H.serialVersionUID.get=function(){return 6683108902428367e3},H.NULL_ORDINATE.get=function(){return A.NaN},H.X.get=function(){return 0},H.Y.get=function(){return 1},H.Z.get=function(){return 2},Object.defineProperties(U,H);var Q=function(n){if(this._dimensionsToTest=2,arguments.length!==0){if(arguments.length===1){var i=arguments[0];if(i!==2&&i!==3)throw new L("only 2 or 3 dimensions may be specified");this._dimensionsToTest=i}}};Q.prototype.compare=function(n,i){var s=n,l=i,h=Q.compare(s.x,l.x);if(h!==0)return h;var v=Q.compare(s.y,l.y);return v!==0?v:this._dimensionsToTest<=2?0:Q.compare(s.z,l.z)},Q.prototype.interfaces_=function(){return[X]},Q.prototype.getClass=function(){return Q},Q.compare=function(n,i){return n<i?-1:n>i?1:A.isNaN(n)?A.isNaN(i)?0:-1:A.isNaN(i)?1:0};var gt=function(){};gt.prototype.create=function(){},gt.prototype.interfaces_=function(){return[]},gt.prototype.getClass=function(){return gt};var $=function(){},Nt={INTERIOR:{configurable:!0},BOUNDARY:{configurable:!0},EXTERIOR:{configurable:!0},NONE:{configurable:!0}};$.prototype.interfaces_=function(){return[]},$.prototype.getClass=function(){return $},$.toLocationSymbol=function(n){switch(n){case $.EXTERIOR:return"e";case $.BOUNDARY:return"b";case $.INTERIOR:return"i";case $.NONE:return"-"}throw new L("Unknown location value: "+n)},Nt.INTERIOR.get=function(){return 0},Nt.BOUNDARY.get=function(){return 1},Nt.EXTERIOR.get=function(){return 2},Nt.NONE.get=function(){return-1},Object.defineProperties($,Nt);var j=function(n,i){return n.interfaces_&&n.interfaces_().indexOf(i)>-1},pt=function(){},Ct={LOG_10:{configurable:!0}};pt.prototype.interfaces_=function(){return[]},pt.prototype.getClass=function(){return pt},pt.log10=function(n){var i=Math.log(n);return A.isInfinite(i)||A.isNaN(i)?i:i/pt.LOG_10},pt.min=function(n,i,s,l){var h=n;return i<h&&(h=i),s<h&&(h=s),l<h&&(h=l),h},pt.clamp=function(){if(typeof arguments[2]=="number"&&typeof arguments[0]=="number"&&typeof arguments[1]=="number"){var n=arguments[0],i=arguments[1],s=arguments[2];return n<i?i:n>s?s:n}if(Number.isInteger(arguments[2])&&Number.isInteger(arguments[0])&&Number.isInteger(arguments[1])){var l=arguments[0],h=arguments[1],v=arguments[2];return l<h?h:l>v?v:l}},pt.wrap=function(n,i){return n<0?i- -n%i:n%i},pt.max=function(){if(arguments.length===3){var n=arguments[0],i=arguments[1],s=arguments[2],l=n;return i>l&&(l=i),s>l&&(l=s),l}if(arguments.length===4){var h=arguments[0],v=arguments[1],S=arguments[2],R=arguments[3],V=h;return v>V&&(V=v),S>V&&(V=S),R>V&&(V=R),V}},pt.average=function(n,i){return(n+i)/2},Ct.LOG_10.get=function(){return Math.log(10)},Object.defineProperties(pt,Ct);var Tt=function(n){this.str=n};Tt.prototype.append=function(n){this.str+=n},Tt.prototype.setCharAt=function(n,i){this.str=this.str.substr(0,n)+i+this.str.substr(n+1)},Tt.prototype.toString=function(n){return this.str};var ft=function(n){this.value=n};ft.prototype.intValue=function(){return this.value},ft.prototype.compareTo=function(n){return this.value<n?-1:this.value>n?1:0},ft.isNaN=function(n){return Number.isNaN(n)};var dt=function(){};dt.isWhitespace=function(n){return n<=32&&n>=0||n===127},dt.toUpperCase=function(n){return n.toUpperCase()};var Z=function n(){if(this._hi=0,this._lo=0,arguments.length===0)this.init(0);else if(arguments.length===1){if(typeof arguments[0]=="number"){var i=arguments[0];this.init(i)}else if(arguments[0]instanceof n){var s=arguments[0];this.init(s)}else if(typeof arguments[0]=="string"){var l=arguments[0];n.call(this,n.parse(l))}}else if(arguments.length===2){var h=arguments[0],v=arguments[1];this.init(h,v)}},st={PI:{configurable:!0},TWO_PI:{configurable:!0},PI_2:{configurable:!0},E:{configurable:!0},NaN:{configurable:!0},EPS:{configurable:!0},SPLIT:{configurable:!0},MAX_PRINT_DIGITS:{configurable:!0},TEN:{configurable:!0},ONE:{configurable:!0},SCI_NOT_EXPONENT_CHAR:{configurable:!0},SCI_NOT_ZERO:{configurable:!0}};Z.prototype.le=function(n){return(this._hi<n._hi||this._hi===n._hi)&&this._lo<=n._lo},Z.prototype.extractSignificantDigits=function(n,i){var s=this.abs(),l=Z.magnitude(s._hi),h=Z.TEN.pow(l);(s=s.divide(h)).gt(Z.TEN)?(s=s.divide(Z.TEN),l+=1):s.lt(Z.ONE)&&(s=s.multiply(Z.TEN),l-=1);for(var v=l+1,S=new Tt,R=Z.MAX_PRINT_DIGITS-1,V=0;V<=R;V++){n&&V===v&&S.append(".");var nt=Math.trunc(s._hi);if(nt<0)break;var _t=!1,Et=0;nt>9?(_t=!0,Et="9"):Et="0"+nt,S.append(Et),s=s.subtract(Z.valueOf(nt)).multiply(Z.TEN),_t&&s.selfAdd(Z.TEN);var Wt=!0,$t=Z.magnitude(s._hi);if($t<0&&Math.abs($t)>=R-V&&(Wt=!1),!Wt)break}return i[0]=l,S.toString()},Z.prototype.sqr=function(){return this.multiply(this)},Z.prototype.doubleValue=function(){return this._hi+this._lo},Z.prototype.subtract=function(){if(arguments[0]instanceof Z){var n=arguments[0];return this.add(n.negate())}if(typeof arguments[0]=="number"){var i=arguments[0];return this.add(-i)}},Z.prototype.equals=function(){if(arguments.length===1){var n=arguments[0];return this._hi===n._hi&&this._lo===n._lo}},Z.prototype.isZero=function(){return this._hi===0&&this._lo===0},Z.prototype.selfSubtract=function(){if(arguments[0]instanceof Z){var n=arguments[0];return this.isNaN()?this:this.selfAdd(-n._hi,-n._lo)}if(typeof arguments[0]=="number"){var i=arguments[0];return this.isNaN()?this:this.selfAdd(-i,0)}},Z.prototype.getSpecialNumberString=function(){return this.isZero()?"0.0":this.isNaN()?"NaN ":null},Z.prototype.min=function(n){return this.le(n)?this:n},Z.prototype.selfDivide=function(){if(arguments.length===1){if(arguments[0]instanceof Z){var n=arguments[0];return this.selfDivide(n._hi,n._lo)}if(typeof arguments[0]=="number"){var i=arguments[0];return this.selfDivide(i,0)}}else if(arguments.length===2){var s=arguments[0],l=arguments[1],h=null,v=null,S=null,R=null,V=null,nt=null,_t=null,Et=null;return V=this._hi/s,nt=Z.SPLIT*V,h=nt-V,Et=Z.SPLIT*s,h=nt-h,v=V-h,S=Et-s,_t=V*s,S=Et-S,R=s-S,Et=h*S-_t+h*R+v*S+v*R,nt=(this._hi-_t-Et+this._lo-V*l)/s,Et=V+nt,this._hi=Et,this._lo=V-Et+nt,this}},Z.prototype.dump=function(){return"DD<"+this._hi+", "+this._lo+">"},Z.prototype.divide=function(){if(arguments[0]instanceof Z){var n=arguments[0],i=null,s=null,l=null,h=null,v=null,S=null,R=null,V=null;return s=(v=this._hi/n._hi)-(i=(S=Z.SPLIT*v)-(i=S-v)),V=i*(l=(V=Z.SPLIT*n._hi)-(l=V-n._hi))-(R=v*n._hi)+i*(h=n._hi-l)+s*l+s*h,S=(this._hi-R-V+this._lo-v*n._lo)/n._hi,new Z(V=v+S,v-V+S)}if(typeof arguments[0]=="number"){var nt=arguments[0];return A.isNaN(nt)?Z.createNaN():Z.copy(this).selfDivide(nt,0)}},Z.prototype.ge=function(n){return(this._hi>n._hi||this._hi===n._hi)&&this._lo>=n._lo},Z.prototype.pow=function(n){if(n===0)return Z.valueOf(1);var i=new Z(this),s=Z.valueOf(1),l=Math.abs(n);if(l>1)for(;l>0;)l%2==1&&s.selfMultiply(i),(l/=2)>0&&(i=i.sqr());else s=i;return n<0?s.reciprocal():s},Z.prototype.ceil=function(){if(this.isNaN())return Z.NaN;var n=Math.ceil(this._hi),i=0;return n===this._hi&&(i=Math.ceil(this._lo)),new Z(n,i)},Z.prototype.compareTo=function(n){var i=n;return this._hi<i._hi?-1:this._hi>i._hi?1:this._lo<i._lo?-1:this._lo>i._lo?1:0},Z.prototype.rint=function(){return this.isNaN()?this:this.add(.5).floor()},Z.prototype.setValue=function(){if(arguments[0]instanceof Z){var n=arguments[0];return this.init(n),this}if(typeof arguments[0]=="number"){var i=arguments[0];return this.init(i),this}},Z.prototype.max=function(n){return this.ge(n)?this:n},Z.prototype.sqrt=function(){if(this.isZero())return Z.valueOf(0);if(this.isNegative())return Z.NaN;var n=1/Math.sqrt(this._hi),i=this._hi*n,s=Z.valueOf(i),l=this.subtract(s.sqr())._hi*(.5*n);return s.add(l)},Z.prototype.selfAdd=function(){if(arguments.length===1){if(arguments[0]instanceof Z){var n=arguments[0];return this.selfAdd(n._hi,n._lo)}if(typeof arguments[0]=="number"){var i=arguments[0],s=null,l=null,h=null,v=null,S=null,R=null;return h=this._hi+i,S=h-this._hi,v=h-S,v=i-S+(this._hi-v),R=v+this._lo,s=h+R,l=R+(h-s),this._hi=s+l,this._lo=l+(s-this._hi),this}}else if(arguments.length===2){var V=arguments[0],nt=arguments[1],_t=null,Et=null,Wt=null,$t=null,ie=null,Ee=null,An=null;$t=this._hi+V,Et=this._lo+nt,ie=$t-(Ee=$t-this._hi),Wt=Et-(An=Et-this._lo);var Wn=(_t=$t+(Ee=(ie=V-Ee+(this._hi-ie))+Et))+(Ee=(Wt=nt-An+(this._lo-Wt))+(Ee+($t-_t))),Qr=Ee+(_t-Wn);return this._hi=Wn,this._lo=Qr,this}},Z.prototype.selfMultiply=function(){if(arguments.length===1){if(arguments[0]instanceof Z){var n=arguments[0];return this.selfMultiply(n._hi,n._lo)}if(typeof arguments[0]=="number"){var i=arguments[0];return this.selfMultiply(i,0)}}else if(arguments.length===2){var s=arguments[0],l=arguments[1],h=null,v=null,S=null,R=null,V=null,nt=null;h=(V=Z.SPLIT*this._hi)-this._hi,nt=Z.SPLIT*s,h=V-h,v=this._hi-h,S=nt-s;var _t=(V=this._hi*s)+(nt=h*(S=nt-S)-V+h*(R=s-S)+v*S+v*R+(this._hi*l+this._lo*s)),Et=nt+(h=V-_t);return this._hi=_t,this._lo=Et,this}},Z.prototype.selfSqr=function(){return this.selfMultiply(this)},Z.prototype.floor=function(){if(this.isNaN())return Z.NaN;var n=Math.floor(this._hi),i=0;return n===this._hi&&(i=Math.floor(this._lo)),new Z(n,i)},Z.prototype.negate=function(){return this.isNaN()?this:new Z(-this._hi,-this._lo)},Z.prototype.clone=function(){},Z.prototype.multiply=function(){if(arguments[0]instanceof Z){var n=arguments[0];return n.isNaN()?Z.createNaN():Z.copy(this).selfMultiply(n)}if(typeof arguments[0]=="number"){var i=arguments[0];return A.isNaN(i)?Z.createNaN():Z.copy(this).selfMultiply(i,0)}},Z.prototype.isNaN=function(){return A.isNaN(this._hi)},Z.prototype.intValue=function(){return Math.trunc(this._hi)},Z.prototype.toString=function(){var n=Z.magnitude(this._hi);return n>=-3&&n<=20?this.toStandardNotation():this.toSciNotation()},Z.prototype.toStandardNotation=function(){var n=this.getSpecialNumberString();if(n!==null)return n;var i=new Array(1).fill(null),s=this.extractSignificantDigits(!0,i),l=i[0]+1,h=s;if(s.charAt(0)===".")h="0"+s;else if(l<0)h="0."+Z.stringOfChar("0",-l)+s;else if(s.indexOf(".")===-1){var v=l-s.length;h=s+Z.stringOfChar("0",v)+".0"}return this.isNegative()?"-"+h:h},Z.prototype.reciprocal=function(){var n=null,i=null,s=null,l=null,h=null,v=null,S=null,R=null;i=(h=1/this._hi)-(n=(v=Z.SPLIT*h)-(n=v-h)),s=(R=Z.SPLIT*this._hi)-this._hi;var V=h+(v=(1-(S=h*this._hi)-(R=n*(s=R-s)-S+n*(l=this._hi-s)+i*s+i*l)-h*this._lo)/this._hi);return new Z(V,h-V+v)},Z.prototype.toSciNotation=function(){if(this.isZero())return Z.SCI_NOT_ZERO;var n=this.getSpecialNumberString();if(n!==null)return n;var i=new Array(1).fill(null),s=this.extractSignificantDigits(!1,i),l=Z.SCI_NOT_EXPONENT_CHAR+i[0];if(s.charAt(0)==="0")throw new Error("Found leading zero: "+s);var h="";s.length>1&&(h=s.substring(1));var v=s.charAt(0)+"."+h;return this.isNegative()?"-"+v+l:v+l},Z.prototype.abs=function(){return this.isNaN()?Z.NaN:this.isNegative()?this.negate():new Z(this)},Z.prototype.isPositive=function(){return(this._hi>0||this._hi===0)&&this._lo>0},Z.prototype.lt=function(n){return(this._hi<n._hi||this._hi===n._hi)&&this._lo<n._lo},Z.prototype.add=function(){if(arguments[0]instanceof Z){var n=arguments[0];return Z.copy(this).selfAdd(n)}if(typeof arguments[0]=="number"){var i=arguments[0];return Z.copy(this).selfAdd(i)}},Z.prototype.init=function(){if(arguments.length===1){if(typeof arguments[0]=="number"){var n=arguments[0];this._hi=n,this._lo=0}else if(arguments[0]instanceof Z){var i=arguments[0];this._hi=i._hi,this._lo=i._lo}}else if(arguments.length===2){var s=arguments[0],l=arguments[1];this._hi=s,this._lo=l}},Z.prototype.gt=function(n){return(this._hi>n._hi||this._hi===n._hi)&&this._lo>n._lo},Z.prototype.isNegative=function(){return(this._hi<0||this._hi===0)&&this._lo<0},Z.prototype.trunc=function(){return this.isNaN()?Z.NaN:this.isPositive()?this.floor():this.ceil()},Z.prototype.signum=function(){return this._hi>0?1:this._hi<0?-1:this._lo>0?1:this._lo<0?-1:0},Z.prototype.interfaces_=function(){return[t,G,Y]},Z.prototype.getClass=function(){return Z},Z.sqr=function(n){return Z.valueOf(n).selfMultiply(n)},Z.valueOf=function(){if(typeof arguments[0]=="string"){var n=arguments[0];return Z.parse(n)}if(typeof arguments[0]=="number"){var i=arguments[0];return new Z(i)}},Z.sqrt=function(n){return Z.valueOf(n).sqrt()},Z.parse=function(n){for(var i=0,s=n.length;dt.isWhitespace(n.charAt(i));)i++;var l=!1;if(i<s){var h=n.charAt(i);h!=="-"&&h!=="+"||(i++,h==="-"&&(l=!0))}for(var v=new Z,S=0,R=0,V=0;!(i>=s);){var nt=n.charAt(i);if(i++,dt.isDigit(nt)){var _t=nt-"0";v.selfMultiply(Z.TEN),v.selfAdd(_t),S++}else{if(nt!=="."){if(nt==="e"||nt==="E"){var Et=n.substring(i);try{V=ft.parseInt(Et)}catch(An){throw An instanceof Error?new Error("Invalid exponent "+Et+" in string "+n):An}break}throw new Error("Unexpected character '"+nt+"' at position "+i+" in string "+n)}R=S}}var Wt=v,$t=S-R-V;if($t===0)Wt=v;else if($t>0){var ie=Z.TEN.pow($t);Wt=v.divide(ie)}else if($t<0){var Ee=Z.TEN.pow(-$t);Wt=v.multiply(Ee)}return l?Wt.negate():Wt},Z.createNaN=function(){return new Z(A.NaN,A.NaN)},Z.copy=function(n){return new Z(n)},Z.magnitude=function(n){var i=Math.abs(n),s=Math.log(i)/Math.log(10),l=Math.trunc(Math.floor(s));return 10*Math.pow(10,l)<=i&&(l+=1),l},Z.stringOfChar=function(n,i){for(var s=new Tt,l=0;l<i;l++)s.append(n);return s.toString()},st.PI.get=function(){return new Z(3.141592653589793,12246467991473532e-32)},st.TWO_PI.get=function(){return new Z(6.283185307179586,24492935982947064e-32)},st.PI_2.get=function(){return new Z(1.5707963267948966,6123233995736766e-32)},st.E.get=function(){return new Z(2.718281828459045,14456468917292502e-32)},st.NaN.get=function(){return new Z(A.NaN,A.NaN)},st.EPS.get=function(){return 123259516440783e-46},st.SPLIT.get=function(){return 134217729},st.MAX_PRINT_DIGITS.get=function(){return 32},st.TEN.get=function(){return Z.valueOf(10)},st.ONE.get=function(){return Z.valueOf(1)},st.SCI_NOT_EXPONENT_CHAR.get=function(){return"E"},st.SCI_NOT_ZERO.get=function(){return"0.0E0"},Object.defineProperties(Z,st);var vt=function(){},zt={DP_SAFE_EPSILON:{configurable:!0}};vt.prototype.interfaces_=function(){return[]},vt.prototype.getClass=function(){return vt},vt.orientationIndex=function(n,i,s){var l=vt.orientationIndexFilter(n,i,s);if(l<=1)return l;var h=Z.valueOf(i.x).selfAdd(-n.x),v=Z.valueOf(i.y).selfAdd(-n.y),S=Z.valueOf(s.x).selfAdd(-i.x),R=Z.valueOf(s.y).selfAdd(-i.y);return h.selfMultiply(R).selfSubtract(v.selfMultiply(S)).signum()},vt.signOfDet2x2=function(n,i,s,l){return n.multiply(l).selfSubtract(i.multiply(s)).signum()},vt.intersection=function(n,i,s,l){var h=Z.valueOf(l.y).selfSubtract(s.y).selfMultiply(Z.valueOf(i.x).selfSubtract(n.x)),v=Z.valueOf(l.x).selfSubtract(s.x).selfMultiply(Z.valueOf(i.y).selfSubtract(n.y)),S=h.subtract(v),R=Z.valueOf(l.x).selfSubtract(s.x).selfMultiply(Z.valueOf(n.y).selfSubtract(s.y)),V=Z.valueOf(l.y).selfSubtract(s.y).selfMultiply(Z.valueOf(n.x).selfSubtract(s.x)),nt=R.subtract(V).selfDivide(S).doubleValue(),_t=Z.valueOf(n.x).selfAdd(Z.valueOf(i.x).selfSubtract(n.x).selfMultiply(nt)).doubleValue(),Et=Z.valueOf(i.x).selfSubtract(n.x).selfMultiply(Z.valueOf(n.y).selfSubtract(s.y)),Wt=Z.valueOf(i.y).selfSubtract(n.y).selfMultiply(Z.valueOf(n.x).selfSubtract(s.x)),$t=Et.subtract(Wt).selfDivide(S).doubleValue(),ie=Z.valueOf(s.y).selfAdd(Z.valueOf(l.y).selfSubtract(s.y).selfMultiply($t)).doubleValue();return new U(_t,ie)},vt.orientationIndexFilter=function(n,i,s){var l=null,h=(n.x-s.x)*(i.y-s.y),v=(n.y-s.y)*(i.x-s.x),S=h-v;if(h>0){if(v<=0)return vt.signum(S);l=h+v}else{if(!(h<0)||v>=0)return vt.signum(S);l=-h-v}var R=vt.DP_SAFE_EPSILON*l;return S>=R||-S>=R?vt.signum(S):2},vt.signum=function(n){return n>0?1:n<0?-1:0},zt.DP_SAFE_EPSILON.get=function(){return 1e-15},Object.defineProperties(vt,zt);var bt=function(){},qt={X:{configurable:!0},Y:{configurable:!0},Z:{configurable:!0},M:{configurable:!0}};qt.X.get=function(){return 0},qt.Y.get=function(){return 1},qt.Z.get=function(){return 2},qt.M.get=function(){return 3},bt.prototype.setOrdinate=function(n,i,s){},bt.prototype.size=function(){},bt.prototype.getOrdinate=function(n,i){},bt.prototype.getCoordinate=function(){},bt.prototype.getCoordinateCopy=function(n){},bt.prototype.getDimension=function(){},bt.prototype.getX=function(n){},bt.prototype.clone=function(){},bt.prototype.expandEnvelope=function(n){},bt.prototype.copy=function(){},bt.prototype.getY=function(n){},bt.prototype.toCoordinateArray=function(){},bt.prototype.interfaces_=function(){return[Y]},bt.prototype.getClass=function(){return bt},Object.defineProperties(bt,qt);var le=function(){},se=function(n){function i(){n.call(this,"Projective point not representable on the Cartesian plane.")}return n&&(i.__proto__=n),i.prototype=Object.create(n&&n.prototype),i.prototype.constructor=i,i.prototype.interfaces_=function(){return[]},i.prototype.getClass=function(){return i},i}(le),Zt=function(){};Zt.arraycopy=function(n,i,s,l,h){for(var v=0,S=i;S<i+h;S++)s[l+v]=n[S],v++},Zt.getProperty=function(n){return{"line.separator":\`
@@ -7504,16 +7504,16 @@ three/build/three.module.js:
7504
7504
  * along with MarchingSquaresJS. If not, see <http://www.gnu.org/licenses/>.
7505
7505
  *)
7506
7506
  */
7507
- `)}var La=class extends pd{worker=Ui();initRoadStatus=!1;constructor(){super()}async setRoadData(e){this.initRoadStatus=!1,this.dispatchEvent({type:"init-road-status",status:!1}),await Te(this.worker,"set_road_info",{roadData:e}),this.initRoadStatus=!0,this.dispatchEvent({type:"init-road-status",status:!0})}async getPath(e,t,n=""){return new Promise((i,o)=>{let a=()=>{console.log("initRoadStatus",this.initRoadStatus),Te(this.worker,"get_path",{start:e,end:t,type:n}).then(c=>{c?typeof c=="string"?o(c):i(c):o("no-path")})};if(this.initRoadStatus)a();else{let c=({status:l})=>{l&&(this.removeEventListener("init-road-status",c),a())};this.addEventListener("init-road-status",c)}})}getDirectionPath(e){return Te(this.worker,"get_direction_path",e)}async dispose(){Te(this.worker,"clear",""),this.worker.terminate()}};import{Frustum as fd}from"three";var Xr=class extends le{startPoint;endPoint;rect;frustum=new fd;constructor(e){super(e);let{config:{selectBox:{fill:t,stroke:n}}}=e;this.rect=He(n,t),this.svg.appendChild(this.rect),this.registryEvent()}setEnable(e){super.setEnable(e),Xt(this.rect,0,0,0,0),e?this.registryEvent():(this.startPoint=void 0,this.unRegistryEvent())}onPointerDown=e=>{if(!this.enable)return;let t=this.getIntersectByPointerEvent(e);t&&(this.startPoint=t),this.endPoint=void 0};onPointerMove=e=>{if(!this.enable||!this.startPoint)return;let t=this.getIntersectByPointerEvent(e);t&&(this.endPoint=t)};onPointerUp=e=>{if(!this.enable)return;let t=this.getIntersectByPointerEvent(e);t&&(this.endPoint=t),this.doSelect(),this.startPoint=void 0};onUpdate=()=>{if(this.startPoint){let e=this.getSvgCoordinate(this.startPoint),t={...e};this.endPoint&&(t=this.getSvgCoordinate(this.endPoint));let n={x:Math.min(e.x,t.x),y:Math.min(e.y,t.y)},i=Math.abs(t.x-e.x),o=Math.abs(t.y-e.y);Xt(this.rect,n.x,n.y,i,o)}else Xt(this.rect,0,0,0,0)};registryEvent(){this.context.container.addEventListener("pointerdown",this.onPointerDown),this.context.container.addEventListener("pointermove",this.onPointerMove),this.context.container.addEventListener("pointerup",this.onPointerUp),this.context.addEventListener("update",this.onUpdate)}unRegistryEvent(){this.context.container.removeEventListener("pointerdown",this.onPointerDown),this.context.container.removeEventListener("pointermove",this.onPointerMove),this.context.container.removeEventListener("pointerup",this.onPointerUp),this.context.removeEventListener("update",this.onUpdate)}doSelect(){if(this.startPoint&&this.endPoint){if(this.startPoint.distanceTo(this.endPoint)<.1)return;let{context:{camera:t,container:{clientWidth:n,clientHeight:i}}}=this,o=et(this.startPoint,t,n,i),a=et(this.endPoint,t,n,i),c={x:Math.min(o.x,a.x),y:Math.min(o.y,a.y)},l={x:Math.max(o.x,a.x),y:Math.max(o.y,a.y)},s=this.searchMapInFrustum(c,l);this.dispatchEvent({type:"selected",list:s})}}searchMapInFrustum(e,t){let{context:n}=this;return n.currentFloor?.graphicLayer.children.filter(i=>i instanceof Ft&&this.searchChildInFrustum(i,e,t))||[]}searchChildInFrustum(e,t,n){let{context:{camera:i,container:{clientWidth:o,clientHeight:a}}}=this;if(!e)return!1;if(!e.mesh){let f=e.getPosition();if(f){let d=et(f,i,o,a);return Ve(d,t,n)}return!1}e.mesh.geometry.boundingBox||e.mesh.geometry.computeBoundingBox();let c=e.mesh.geometry.boundingBox;if(!c)return!1;let{min:l,max:s}=c,u=et(l,i,o,a),h=et(s,i,o,a);return!(!Ve(u,t,n)||!Ve(h,t,n))}dispose(){this.unRegistryEvent()}};var dd={boxSelection:!1,elements:["graphic","poi"]},Oa=class extends Ae{options;_list=new Set;_poiList=new Set;boxSelection;prevPanStatus;prevRotateStatus;downPoint=null;isMultipleSelect=!1;constructor(e,t={}){super(e),this.options={...dd,...t},this.boxSelection=new Xr(this.bmap.context),this.boxSelection.setEnable(!1),this.registryEvent()}get list(){return this._list}enableBoxSelection(){this.isMultipleSelect||!this.options.boxSelection||(this.isMultipleSelect=!0,this.boxSelection.setEnable(!0),this.prevPanStatus=this.bmap.context.control.enablePan,this.prevRotateStatus=this.bmap.context.control.enableRotate,this.bmap.context.control.enablePan=!1,this.bmap.context.control.enableRotate=!1)}disableBoxSelection(){this.isMultipleSelect&&(this.isMultipleSelect=!1,this.boxSelection.setEnable(!1),this.bmap.context.control.enablePan=!!this.prevPanStatus,this.bmap.context.control.enableRotate=!!this.prevRotateStatus)}onPointerDown=e=>{this.downPoint={x:e.offsetX,y:e.offsetY}};onPointerUp=e=>{if(!this.downPoint)return;let{offsetX:t,offsetY:n}=e,{x:i,y:o}=this.downPoint;if(Math.sqrt((i-t)**2+(o-n)**2)>3)return;let a=new Set,c=[],l=[];if(this.options.elements.includes("graphic")){let{graphics:s}=this.bmap.context.getGraphicsByDeviceXy(t,n);s.map(u=>a.add(u.options.id)),c.push(...s)}if(this.options.elements.includes("poi")){let s=this.bmap.context.getPoisByDeviceXy(t,n);l.push(...s),s.forEach(u=>{if(!a.has(u.options.id)){let h=this.bmap.context.currentFloor?.graphicLayer.graphicMap.get(u.options.id)||null;h&&(a.add(u.options.id),c.push(h))}})}(!this.options.boxSelection||!(gn?e.metaKey:e.ctrlKey))&&(this._list.clear(),this._poiList.clear()),c.forEach(s=>this._list.add(s)),l.forEach(s=>this._poiList.add(s)),this.selectEnd(),this.downPoint=null};onPointerOut=e=>{this.disableBoxSelection()};onKeyDown=e=>{mn(e.key)&&this.enableBoxSelection()};onKeyUp=e=>{mn(e.key)&&this.disableBoxSelection()};onBoxSelected=({list:e})=>{this._list.clear(),e.forEach(t=>{this._list.add(t)}),this.selectEnd()};selectEnd(){this.dispatchEvent({type:"select",graphics:[...this._list],pois:[...this._poiList],isMultipleSelect:this.isMultipleSelect})}registryEvent(){this.bmap.context.container.addEventListener("pointerdown",this.onPointerDown),this.bmap.context.container.addEventListener("pointerup",this.onPointerUp),this.bmap.context.container.addEventListener("pointerout",this.onPointerOut),this.bmap.context.container.addEventListener("pointercancel",this.onPointerOut),window.addEventListener("keydown",this.onKeyDown),window.addEventListener("keyup",this.onKeyUp),this.boxSelection.addEventListener("selected",this.onBoxSelected)}unRegistryEvent(){this.bmap.context.container.removeEventListener("pointerdown",this.onPointerDown),this.bmap.context.container.removeEventListener("pointerup",this.onPointerUp),this.bmap.context.container.removeEventListener("pointerout",this.onPointerOut),this.bmap.context.container.removeEventListener("pointercancel",this.onPointerOut),window.removeEventListener("keydown",this.onKeyDown),window.removeEventListener("keyup",this.onKeyUp),this.boxSelection.removeEventListener("selected",this.onBoxSelected)}clear(){this._list.clear()}remove(e){this._list.delete(e)}dispose(){this.unRegistryEvent()}};import{cloneDeep as gd,isNil as Ye,throttle as Fa}from"lodash";import{EventDispatcher as md}from"three";var yd={time:1e3,elements:["compass","deviceMotion","acceleration","gps"]},jr=class extends md{options;gpsTimer=null;data=[];timer=new Gt;dispatchTimer=null;constructor(e={}){super(),this.options={...yd,...e}}start(){this.options.elements.some(e=>["deviceMotion","compass"].includes(e))&&this.listenDeviceOrientation(),this.options.elements.includes("acceleration")&&this.listenAcceleration(),this.options.elements.includes("gps")&&this.listenGps(),this.dispatchEvent({type:"start"}),this.dispatchTimer=this.timer.setInterval(()=>{this.dispatchEvent({type:"sensor-data",data:gd(this.data)}),this.data=[]},this.options.time)}addDataItem(e){this.data.push(e),this.dispatchEvent({type:"add-data-item",item:e})}addAcceleration=Fa(e=>{this.addDataItem(e)},20);deviceOrientationAbsHandler=Fa(e=>{let t=Date.now(),{alpha:n,beta:i,gamma:o}=e;if(Ye(n)||Ye(i)||Ye(o))return;let a;kn?a=e.webkitCompassHeading:a=360-n,this.options.elements.includes("deviceMotion")&&this.addDataItem({type:"deviceMotion",timestamp:t,res:[n,i,o]}),this.options.elements.includes("compass")&&this.addDataItem({type:"compass",timestamp:t,res:a})},200);listenDeviceOrientation(){kn?window.addEventListener("deviceorientation",this.deviceOrientationAbsHandler,!1):window.addEventListener("deviceorientationabsolute",this.deviceOrientationAbsHandler,{absolute:!0})}handleAcceleration=e=>{let t=e.accelerationIncludingGravity;Ye(t)||Ye(t.x)||Ye(t.y)||Ye(t.z)||this.addAcceleration({type:"acceleration",timestamp:Date.now(),res:[t.x,t.y,t.z]})};listenAcceleration(){window.addEventListener("devicemotion",this.handleAcceleration,!1)}listenGps(){this.gpsTimer=navigator.geolocation.watchPosition(e=>{e.coords.accuracy<=10&&this.addDataItem({type:"gps",timestamp:Date.now(),res:[e.coords.longitude,e.coords.latitude,e.coords.accuracy]})})}async checkSensor(){return{deviceOrientation:await this.checkDeviceOrientation()}}async checkDeviceOrientation(){if(!kn)return!0;if(typeof window.DeviceOrientationEvent<"u"&&typeof window.DeviceOrientationEvent?.requestPermission=="function")try{return await window.DeviceOrientationEvent?.requestPermission()==="granted"}catch{return!1}return!1}stop(){window.removeEventListener("devicemotion",this.handleAcceleration,!1),kn?window.removeEventListener("deviceorientation",this.deviceOrientationAbsHandler,!1):window.removeEventListener("deviceorientationabsolute",this.deviceOrientationAbsHandler,{absolute:!0}),Ye(this.gpsTimer)||navigator.geolocation.clearWatch(this.gpsTimer),this.dispatchTimer&&this.timer.clearInterval(this.dispatchTimer),this.data=[],this.dispatchEvent({type:"stop"})}};import{EventDispatcher as iv}from"three";function Yr(r,e){return 1/Math.sqrt(2*Math.PI*Math.pow(e,2))*Math.exp(-Math.pow(r,2)/(2*Math.pow(e,2)))}function jn(r){return(r+360)%360}function Ba(r,e){let n=6378137*r*Math.PI/180,i=6378137*Math.log(Math.tan(Math.PI/4+e*Math.PI/180/2));return{x:n,y:i}}function En(r,e,t,n){return Math.sqrt(Math.pow(Math.abs(r-t),2)+Math.pow(Math.abs(e-n),2))}function bn(){return bn=Object.assign?Object.assign.bind():function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var n in t)({}).hasOwnProperty.call(t,n)&&(r[n]=t[n])}return r},bn.apply(null,arguments)}var Bi={relTol:1e-12,absTol:1e-15,matrix:"Matrix",number:"number",numberFallback:"number",precision:64,predictable:!1,randomSeed:null};function za(r,e){if(Yn(r,e))return r[e];throw typeof r[e]=="function"&&vd(r,e)?new Error('Cannot access method "'+e+'" as a property'):new Error('No access to property "'+e+'"')}function Ga(r,e,t){if(Yn(r,e))return r[e]=t,t;throw new Error('No access to property "'+e+'"')}function Yn(r,e){return!_d(r)&&!Array.isArray(r)?!1:Sn(xd,e)?!0:!(e in Object.prototype||e in Function.prototype)}function vd(r,e){return r==null||typeof r[e]!="function"||Sn(r,e)&&Object.getPrototypeOf&&e in Object.getPrototypeOf(r)?!1:Sn(Ed,e)?!0:!(e in Object.prototype||e in Function.prototype)}function _d(r){return typeof r=="object"&&r&&r.constructor===Object}var xd={length:!0,name:!0},Ed={toString:!0,valueOf:!0,toLocaleString:!0};var $r=class{constructor(e){this.wrappedObject=e,this[Symbol.iterator]=this.entries}keys(){return Object.keys(this.wrappedObject).filter(e=>this.has(e)).values()}get(e){return za(this.wrappedObject,e)}set(e,t){return Ga(this.wrappedObject,e,t),this}has(e){return Yn(this.wrappedObject,e)&&e in this.wrappedObject}entries(){return bd(this.keys(),e=>[e,this.get(e)])}forEach(e){for(var t of this.keys())e(this.get(t),t,this)}delete(e){Yn(this.wrappedObject,e)&&delete this.wrappedObject[e]}clear(){for(var e of this.keys())this.delete(e)}get size(){return Object.keys(this.wrappedObject).length}};function bd(r,e){return{next:()=>{var t=r.next();return t.done?t:{value:e(t.value),done:!1}}}}function nt(r){return typeof r=="number"}function it(r){return!r||typeof r!="object"||typeof r.constructor!="function"?!1:r.isBigNumber===!0&&typeof r.constructor.prototype=="object"&&r.constructor.prototype.isBigNumber===!0||typeof r.constructor.isDecimal=="function"&&r.constructor.isDecimal(r)===!0}function ka(r){return typeof r=="bigint"}function zi(r){return r&&typeof r=="object"&&Object.getPrototypeOf(r).isComplex===!0||!1}function Gi(r){return r&&typeof r=="object"&&Object.getPrototypeOf(r).isFraction===!0||!1}function Zr(r){return r&&r.constructor.prototype.isUnit===!0||!1}function jt(r){return typeof r=="string"}var yt=Array.isArray;function ot(r){return r&&r.constructor.prototype.isMatrix===!0||!1}function Ue(r){return Array.isArray(r)||ot(r)}function Va(r){return r&&r.isDenseMatrix&&r.constructor.prototype.isMatrix===!0||!1}function Ha(r){return r&&r.isSparseMatrix&&r.constructor.prototype.isMatrix===!0||!1}function Wa(r){return r&&r.constructor.prototype.isRange===!0||!1}function Mn(r){return r&&r.constructor.prototype.isIndex===!0||!1}function qa(r){return typeof r=="boolean"}function Xa(r){return r&&r.constructor.prototype.isResultSet===!0||!1}function ja(r){return r&&r.constructor.prototype.isHelp===!0||!1}function Ya(r){return typeof r=="function"}function $a(r){return r instanceof Date}function Za(r){return r instanceof RegExp}function wn(r){return!!(r&&typeof r=="object"&&r.constructor===Object&&!zi(r)&&!Gi(r))}function Ka(r){return r?r instanceof Map||r instanceof $r||typeof r.set=="function"&&typeof r.get=="function"&&typeof r.keys=="function"&&typeof r.has=="function":!1}function Ja(r){return r===null}function Qa(r){return r===void 0}function tu(r){return r&&r.isAccessorNode===!0&&r.constructor.prototype.isNode===!0||!1}function eu(r){return r&&r.isArrayNode===!0&&r.constructor.prototype.isNode===!0||!1}function nu(r){return r&&r.isAssignmentNode===!0&&r.constructor.prototype.isNode===!0||!1}function ru(r){return r&&r.isBlockNode===!0&&r.constructor.prototype.isNode===!0||!1}function iu(r){return r&&r.isConditionalNode===!0&&r.constructor.prototype.isNode===!0||!1}function ou(r){return r&&r.isConstantNode===!0&&r.constructor.prototype.isNode===!0||!1}function su(r){return r&&r.isFunctionAssignmentNode===!0&&r.constructor.prototype.isNode===!0||!1}function au(r){return r&&r.isFunctionNode===!0&&r.constructor.prototype.isNode===!0||!1}function uu(r){return r&&r.isIndexNode===!0&&r.constructor.prototype.isNode===!0||!1}function lu(r){return r&&r.isNode===!0&&r.constructor.prototype.isNode===!0||!1}function cu(r){return r&&r.isObjectNode===!0&&r.constructor.prototype.isNode===!0||!1}function hu(r){return r&&r.isOperatorNode===!0&&r.constructor.prototype.isNode===!0||!1}function pu(r){return r&&r.isParenthesisNode===!0&&r.constructor.prototype.isNode===!0||!1}function fu(r){return r&&r.isRangeNode===!0&&r.constructor.prototype.isNode===!0||!1}function du(r){return r&&r.isRelationalNode===!0&&r.constructor.prototype.isNode===!0||!1}function gu(r){return r&&r.isSymbolNode===!0&&r.constructor.prototype.isNode===!0||!1}function mu(r){return r&&r.constructor.prototype.isChain===!0||!1}function Ut(r){var e=typeof r;return e==="object"?r===null?"null":it(r)?"BigNumber":r.constructor&&r.constructor.name?r.constructor.name:"Object":e}function ft(r){var e=typeof r;if(e==="number"||e==="bigint"||e==="string"||e==="boolean"||r===null||r===void 0)return r;if(typeof r.clone=="function")return r.clone();if(Array.isArray(r))return r.map(function(t){return ft(t)});if(r instanceof Date)return new Date(r.valueOf());if(it(r))return r;if(wn(r))return Sd(r,ft);throw new TypeError("Cannot clone: unknown type of value (value: ".concat(r,")"))}function Sd(r,e){var t={};for(var n in r)Sn(r,n)&&(t[n]=e(r[n]));return t}function Kr(r,e){for(var t in e)Sn(e,t)&&(r[t]=e[t]);return r}function ce(r,e){var t,n,i;if(Array.isArray(r)){if(!Array.isArray(e)||r.length!==e.length)return!1;for(n=0,i=r.length;n<i;n++)if(!ce(r[n],e[n]))return!1;return!0}else{if(typeof r=="function")return r===e;if(r instanceof Object){if(Array.isArray(e)||!(e instanceof Object))return!1;for(t in r)if(!(t in e)||!ce(r[t],e[t]))return!1;for(t in e)if(!(t in r))return!1;return!0}else return r===e}}function Sn(r,e){return r&&Object.hasOwnProperty.call(r,e)}function yu(r,e){for(var t={},n=0;n<e.length;n++){var i=e[n],o=r[i];o!==void 0&&(t[i]=o)}return t}var vu=["Matrix","Array"],_u=["number","BigNumber","Fraction"];var he=function(e){if(e)throw new Error(`The global config is readonly.
7507
+ `)}var La=class extends pd{worker=Ui();initRoadStatus=!1;constructor(){super()}async setRoadData(e){this.initRoadStatus=!1,this.dispatchEvent({type:"init-road-status",status:!1}),await Te(this.worker,"set_road_info",{roadData:e}),this.initRoadStatus=!0,this.dispatchEvent({type:"init-road-status",status:!0})}async getPath(e,t,n=""){return new Promise((i,o)=>{let a=()=>{console.log("initRoadStatus",this.initRoadStatus),Te(this.worker,"get_path",{start:e,end:t,type:n}).then(c=>{c?typeof c=="string"?o(c):i(c):o("no-path")})};if(this.initRoadStatus)a();else{let c=({status:l})=>{l&&(this.removeEventListener("init-road-status",c),a())};this.addEventListener("init-road-status",c)}})}getDirectionPath(e){return Te(this.worker,"get_direction_path",e)}async dispose(){Te(this.worker,"clear",""),this.worker.terminate()}};import{Frustum as fd}from"three";var Xr=class extends ce{startPoint;endPoint;rect;frustum=new fd;constructor(e){super(e);let{config:{selectBox:{fill:t,stroke:n}}}=e;this.rect=He(n,t),this.svg.appendChild(this.rect),this.registryEvent()}setEnable(e){super.setEnable(e),Xt(this.rect,0,0,0,0),e?this.registryEvent():(this.startPoint=void 0,this.unRegistryEvent())}onPointerDown=e=>{if(!this.enable)return;let t=this.getIntersectByPointerEvent(e);t&&(this.startPoint=t),this.endPoint=void 0};onPointerMove=e=>{if(!this.enable||!this.startPoint)return;let t=this.getIntersectByPointerEvent(e);t&&(this.endPoint=t)};onPointerUp=e=>{if(!this.enable)return;let t=this.getIntersectByPointerEvent(e);t&&(this.endPoint=t),this.doSelect(),this.startPoint=void 0};onUpdate=()=>{if(this.startPoint){let e=this.getSvgCoordinate(this.startPoint),t={...e};this.endPoint&&(t=this.getSvgCoordinate(this.endPoint));let n={x:Math.min(e.x,t.x),y:Math.min(e.y,t.y)},i=Math.abs(t.x-e.x),o=Math.abs(t.y-e.y);Xt(this.rect,n.x,n.y,i,o)}else Xt(this.rect,0,0,0,0)};registryEvent(){this.context.container.addEventListener("pointerdown",this.onPointerDown),this.context.container.addEventListener("pointermove",this.onPointerMove),this.context.container.addEventListener("pointerup",this.onPointerUp),this.context.addEventListener("update",this.onUpdate)}unRegistryEvent(){this.context.container.removeEventListener("pointerdown",this.onPointerDown),this.context.container.removeEventListener("pointermove",this.onPointerMove),this.context.container.removeEventListener("pointerup",this.onPointerUp),this.context.removeEventListener("update",this.onUpdate)}doSelect(){if(this.startPoint&&this.endPoint){if(this.startPoint.distanceTo(this.endPoint)<.1)return;let{context:{camera:t,container:{clientWidth:n,clientHeight:i}}}=this,o=et(this.startPoint,t,n,i),a=et(this.endPoint,t,n,i),c={x:Math.min(o.x,a.x),y:Math.min(o.y,a.y)},l={x:Math.max(o.x,a.x),y:Math.max(o.y,a.y)},s=this.searchMapInFrustum(c,l);this.dispatchEvent({type:"selected",list:s})}}searchMapInFrustum(e,t){let{context:n}=this;return n.currentFloor?.graphicLayer.children.filter(i=>i instanceof Ft&&this.searchChildInFrustum(i,e,t))||[]}searchChildInFrustum(e,t,n){let{context:{camera:i,container:{clientWidth:o,clientHeight:a}}}=this;if(!e)return!1;if(!e.mesh){let f=e.getPosition();if(f){let d=et(f,i,o,a);return Ve(d,t,n)}return!1}e.mesh.geometry.boundingBox||e.mesh.geometry.computeBoundingBox();let c=e.mesh.geometry.boundingBox;if(!c)return!1;let{min:l,max:s}=c,u=et(l,i,o,a),h=et(s,i,o,a);return!(!Ve(u,t,n)||!Ve(h,t,n))}dispose(){this.unRegistryEvent()}};var dd={boxSelection:!1,elements:["graphic","poi"]},Oa=class extends Ae{options;_list=new Set;_poiList=new Set;boxSelection;prevPanStatus;prevRotateStatus;downPoint=null;isMultipleSelect=!1;constructor(e,t={}){super(e),this.options={...dd,...t},this.boxSelection=new Xr(this.bmap.context),this.boxSelection.setEnable(!1),this.registryEvent()}get list(){return this._list}enableBoxSelection(){this.isMultipleSelect||!this.options.boxSelection||(this.isMultipleSelect=!0,this.boxSelection.setEnable(!0),this.prevPanStatus=this.bmap.context.control.enablePan,this.prevRotateStatus=this.bmap.context.control.enableRotate,this.bmap.context.control.enablePan=!1,this.bmap.context.control.enableRotate=!1)}disableBoxSelection(){this.isMultipleSelect&&(this.isMultipleSelect=!1,this.boxSelection.setEnable(!1),this.bmap.context.control.enablePan=!!this.prevPanStatus,this.bmap.context.control.enableRotate=!!this.prevRotateStatus)}onPointerDown=e=>{this.downPoint={x:e.offsetX,y:e.offsetY}};onPointerUp=e=>{if(!this.downPoint)return;let{offsetX:t,offsetY:n}=e,{x:i,y:o}=this.downPoint;if(Math.sqrt((i-t)**2+(o-n)**2)>3)return;let a=new Set,c=[],l=[];if(this.options.elements.includes("graphic")){let{graphics:s}=this.bmap.context.getGraphicsByDeviceXy(t,n);s.map(u=>a.add(u.options.id)),c.push(...s)}if(this.options.elements.includes("poi")){let s=this.bmap.context.getPoisByDeviceXy(t,n);l.push(...s),s.forEach(u=>{if(!a.has(u.options.id)){let h=this.bmap.context.currentFloor?.graphicLayer.graphicMap.get(u.options.id)||null;h&&(a.add(u.options.id),c.push(h))}})}(!this.options.boxSelection||!(gn?e.metaKey:e.ctrlKey))&&(this._list.clear(),this._poiList.clear()),c.forEach(s=>this._list.add(s)),l.forEach(s=>this._poiList.add(s)),this.selectEnd(),this.downPoint=null};onPointerOut=e=>{this.disableBoxSelection()};onKeyDown=e=>{mn(e.key)&&this.enableBoxSelection()};onKeyUp=e=>{mn(e.key)&&this.disableBoxSelection()};onBoxSelected=({list:e})=>{this._list.clear(),e.forEach(t=>{this._list.add(t)}),this.selectEnd()};selectEnd(){this.dispatchEvent({type:"select",graphics:[...this._list],pois:[...this._poiList],isMultipleSelect:this.isMultipleSelect})}registryEvent(){this.bmap.context.container.addEventListener("pointerdown",this.onPointerDown),this.bmap.context.container.addEventListener("pointerup",this.onPointerUp),this.bmap.context.container.addEventListener("pointerout",this.onPointerOut),this.bmap.context.container.addEventListener("pointercancel",this.onPointerOut),window.addEventListener("keydown",this.onKeyDown),window.addEventListener("keyup",this.onKeyUp),this.boxSelection.addEventListener("selected",this.onBoxSelected)}unRegistryEvent(){this.bmap.context.container.removeEventListener("pointerdown",this.onPointerDown),this.bmap.context.container.removeEventListener("pointerup",this.onPointerUp),this.bmap.context.container.removeEventListener("pointerout",this.onPointerOut),this.bmap.context.container.removeEventListener("pointercancel",this.onPointerOut),window.removeEventListener("keydown",this.onKeyDown),window.removeEventListener("keyup",this.onKeyUp),this.boxSelection.removeEventListener("selected",this.onBoxSelected)}clear(){this._list.clear()}remove(e){this._list.delete(e)}dispose(){this.unRegistryEvent()}};import{cloneDeep as gd,isNil as Ye,throttle as Fa}from"lodash";import{EventDispatcher as md}from"three";var yd={time:1e3,elements:["compass","deviceMotion","acceleration","gps"]},jr=class extends md{options;gpsTimer=null;data=[];timer=new Gt;dispatchTimer=null;constructor(e={}){super(),this.options={...yd,...e}}start(){this.options.elements.some(e=>["deviceMotion","compass"].includes(e))&&this.listenDeviceOrientation(),this.options.elements.includes("acceleration")&&this.listenAcceleration(),this.options.elements.includes("gps")&&this.listenGps(),this.dispatchEvent({type:"start"}),this.dispatchTimer=this.timer.setInterval(()=>{this.dispatchEvent({type:"sensor-data",data:gd(this.data)}),this.data=[]},this.options.time)}addDataItem(e){this.data.push(e),this.dispatchEvent({type:"add-data-item",item:e})}addAcceleration=Fa(e=>{this.addDataItem(e)},20);deviceOrientationAbsHandler=Fa(e=>{let t=Date.now(),{alpha:n,beta:i,gamma:o}=e;if(Ye(n)||Ye(i)||Ye(o))return;let a;kn?a=e.webkitCompassHeading:a=360-n,this.options.elements.includes("deviceMotion")&&this.addDataItem({type:"deviceMotion",timestamp:t,res:[n,i,o]}),this.options.elements.includes("compass")&&this.addDataItem({type:"compass",timestamp:t,res:a})},200);listenDeviceOrientation(){kn?window.addEventListener("deviceorientation",this.deviceOrientationAbsHandler,!1):window.addEventListener("deviceorientationabsolute",this.deviceOrientationAbsHandler,{absolute:!0})}handleAcceleration=e=>{let t=e.accelerationIncludingGravity;Ye(t)||Ye(t.x)||Ye(t.y)||Ye(t.z)||this.addAcceleration({type:"acceleration",timestamp:Date.now(),res:[t.x,t.y,t.z]})};listenAcceleration(){window.addEventListener("devicemotion",this.handleAcceleration,!1)}listenGps(){this.gpsTimer=navigator.geolocation.watchPosition(e=>{e.coords.accuracy<=10&&this.addDataItem({type:"gps",timestamp:Date.now(),res:[e.coords.longitude,e.coords.latitude,e.coords.accuracy]})})}async checkSensor(){return{deviceOrientation:await this.checkDeviceOrientation()}}async checkDeviceOrientation(){if(!kn)return!0;if(typeof window.DeviceOrientationEvent<"u"&&typeof window.DeviceOrientationEvent?.requestPermission=="function")try{return await window.DeviceOrientationEvent?.requestPermission()==="granted"}catch{return!1}return!1}stop(){window.removeEventListener("devicemotion",this.handleAcceleration,!1),kn?window.removeEventListener("deviceorientation",this.deviceOrientationAbsHandler,!1):window.removeEventListener("deviceorientationabsolute",this.deviceOrientationAbsHandler,{absolute:!0}),Ye(this.gpsTimer)||navigator.geolocation.clearWatch(this.gpsTimer),this.dispatchTimer&&this.timer.clearInterval(this.dispatchTimer),this.data=[],this.dispatchEvent({type:"stop"})}};import{EventDispatcher as iv}from"three";function Yr(r,e){return 1/Math.sqrt(2*Math.PI*Math.pow(e,2))*Math.exp(-Math.pow(r,2)/(2*Math.pow(e,2)))}function jn(r){return(r+360)%360}function Ba(r,e){let n=6378137*r*Math.PI/180,i=6378137*Math.log(Math.tan(Math.PI/4+e*Math.PI/180/2));return{x:n,y:i}}function En(r,e,t,n){return Math.sqrt(Math.pow(Math.abs(r-t),2)+Math.pow(Math.abs(e-n),2))}function bn(){return bn=Object.assign?Object.assign.bind():function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var n in t)({}).hasOwnProperty.call(t,n)&&(r[n]=t[n])}return r},bn.apply(null,arguments)}var Bi={relTol:1e-12,absTol:1e-15,matrix:"Matrix",number:"number",numberFallback:"number",precision:64,predictable:!1,randomSeed:null};function za(r,e){if(Yn(r,e))return r[e];throw typeof r[e]=="function"&&vd(r,e)?new Error('Cannot access method "'+e+'" as a property'):new Error('No access to property "'+e+'"')}function Ga(r,e,t){if(Yn(r,e))return r[e]=t,t;throw new Error('No access to property "'+e+'"')}function Yn(r,e){return!_d(r)&&!Array.isArray(r)?!1:Sn(xd,e)?!0:!(e in Object.prototype||e in Function.prototype)}function vd(r,e){return r==null||typeof r[e]!="function"||Sn(r,e)&&Object.getPrototypeOf&&e in Object.getPrototypeOf(r)?!1:Sn(Ed,e)?!0:!(e in Object.prototype||e in Function.prototype)}function _d(r){return typeof r=="object"&&r&&r.constructor===Object}var xd={length:!0,name:!0},Ed={toString:!0,valueOf:!0,toLocaleString:!0};var $r=class{constructor(e){this.wrappedObject=e,this[Symbol.iterator]=this.entries}keys(){return Object.keys(this.wrappedObject).filter(e=>this.has(e)).values()}get(e){return za(this.wrappedObject,e)}set(e,t){return Ga(this.wrappedObject,e,t),this}has(e){return Yn(this.wrappedObject,e)&&e in this.wrappedObject}entries(){return bd(this.keys(),e=>[e,this.get(e)])}forEach(e){for(var t of this.keys())e(this.get(t),t,this)}delete(e){Yn(this.wrappedObject,e)&&delete this.wrappedObject[e]}clear(){for(var e of this.keys())this.delete(e)}get size(){return Object.keys(this.wrappedObject).length}};function bd(r,e){return{next:()=>{var t=r.next();return t.done?t:{value:e(t.value),done:!1}}}}function nt(r){return typeof r=="number"}function it(r){return!r||typeof r!="object"||typeof r.constructor!="function"?!1:r.isBigNumber===!0&&typeof r.constructor.prototype=="object"&&r.constructor.prototype.isBigNumber===!0||typeof r.constructor.isDecimal=="function"&&r.constructor.isDecimal(r)===!0}function ka(r){return typeof r=="bigint"}function zi(r){return r&&typeof r=="object"&&Object.getPrototypeOf(r).isComplex===!0||!1}function Gi(r){return r&&typeof r=="object"&&Object.getPrototypeOf(r).isFraction===!0||!1}function Zr(r){return r&&r.constructor.prototype.isUnit===!0||!1}function jt(r){return typeof r=="string"}var yt=Array.isArray;function ot(r){return r&&r.constructor.prototype.isMatrix===!0||!1}function Ue(r){return Array.isArray(r)||ot(r)}function Va(r){return r&&r.isDenseMatrix&&r.constructor.prototype.isMatrix===!0||!1}function Ha(r){return r&&r.isSparseMatrix&&r.constructor.prototype.isMatrix===!0||!1}function Wa(r){return r&&r.constructor.prototype.isRange===!0||!1}function Mn(r){return r&&r.constructor.prototype.isIndex===!0||!1}function qa(r){return typeof r=="boolean"}function Xa(r){return r&&r.constructor.prototype.isResultSet===!0||!1}function ja(r){return r&&r.constructor.prototype.isHelp===!0||!1}function Ya(r){return typeof r=="function"}function $a(r){return r instanceof Date}function Za(r){return r instanceof RegExp}function wn(r){return!!(r&&typeof r=="object"&&r.constructor===Object&&!zi(r)&&!Gi(r))}function Ka(r){return r?r instanceof Map||r instanceof $r||typeof r.set=="function"&&typeof r.get=="function"&&typeof r.keys=="function"&&typeof r.has=="function":!1}function Ja(r){return r===null}function Qa(r){return r===void 0}function tu(r){return r&&r.isAccessorNode===!0&&r.constructor.prototype.isNode===!0||!1}function eu(r){return r&&r.isArrayNode===!0&&r.constructor.prototype.isNode===!0||!1}function nu(r){return r&&r.isAssignmentNode===!0&&r.constructor.prototype.isNode===!0||!1}function ru(r){return r&&r.isBlockNode===!0&&r.constructor.prototype.isNode===!0||!1}function iu(r){return r&&r.isConditionalNode===!0&&r.constructor.prototype.isNode===!0||!1}function ou(r){return r&&r.isConstantNode===!0&&r.constructor.prototype.isNode===!0||!1}function su(r){return r&&r.isFunctionAssignmentNode===!0&&r.constructor.prototype.isNode===!0||!1}function au(r){return r&&r.isFunctionNode===!0&&r.constructor.prototype.isNode===!0||!1}function uu(r){return r&&r.isIndexNode===!0&&r.constructor.prototype.isNode===!0||!1}function lu(r){return r&&r.isNode===!0&&r.constructor.prototype.isNode===!0||!1}function cu(r){return r&&r.isObjectNode===!0&&r.constructor.prototype.isNode===!0||!1}function hu(r){return r&&r.isOperatorNode===!0&&r.constructor.prototype.isNode===!0||!1}function pu(r){return r&&r.isParenthesisNode===!0&&r.constructor.prototype.isNode===!0||!1}function fu(r){return r&&r.isRangeNode===!0&&r.constructor.prototype.isNode===!0||!1}function du(r){return r&&r.isRelationalNode===!0&&r.constructor.prototype.isNode===!0||!1}function gu(r){return r&&r.isSymbolNode===!0&&r.constructor.prototype.isNode===!0||!1}function mu(r){return r&&r.constructor.prototype.isChain===!0||!1}function Ut(r){var e=typeof r;return e==="object"?r===null?"null":it(r)?"BigNumber":r.constructor&&r.constructor.name?r.constructor.name:"Object":e}function ft(r){var e=typeof r;if(e==="number"||e==="bigint"||e==="string"||e==="boolean"||r===null||r===void 0)return r;if(typeof r.clone=="function")return r.clone();if(Array.isArray(r))return r.map(function(t){return ft(t)});if(r instanceof Date)return new Date(r.valueOf());if(it(r))return r;if(wn(r))return Sd(r,ft);throw new TypeError("Cannot clone: unknown type of value (value: ".concat(r,")"))}function Sd(r,e){var t={};for(var n in r)Sn(r,n)&&(t[n]=e(r[n]));return t}function Kr(r,e){for(var t in e)Sn(e,t)&&(r[t]=e[t]);return r}function he(r,e){var t,n,i;if(Array.isArray(r)){if(!Array.isArray(e)||r.length!==e.length)return!1;for(n=0,i=r.length;n<i;n++)if(!he(r[n],e[n]))return!1;return!0}else{if(typeof r=="function")return r===e;if(r instanceof Object){if(Array.isArray(e)||!(e instanceof Object))return!1;for(t in r)if(!(t in e)||!he(r[t],e[t]))return!1;for(t in e)if(!(t in r))return!1;return!0}else return r===e}}function Sn(r,e){return r&&Object.hasOwnProperty.call(r,e)}function yu(r,e){for(var t={},n=0;n<e.length;n++){var i=e[n],o=r[i];o!==void 0&&(t[i]=o)}return t}var vu=["Matrix","Array"],_u=["number","BigNumber","Fraction"];var pe=function(e){if(e)throw new Error(`The global config is readonly.
7508
7508
  Please create a mathjs instance if you want to change the default configuration.
7509
7509
  Example:
7510
7510
 
7511
7511
  import { create, all } from 'mathjs';
7512
7512
  const mathjs = create(all);
7513
7513
  mathjs.config({ number: 'BigNumber' });
7514
- `);return Object.freeze(Bi)};bn(he,Bi,{MATRIX_OPTIONS:vu,NUMBER_OPTIONS:_u});var ji=pn(Hi(),1);function N(r,e,t,n){function i(o){var a=yu(o,e.map(Td));return Md(r,e,o),t(a)}return i.isFactory=!0,i.fn=r,i.dependencies=e.slice().sort(),n&&(i.meta=n),i}function Md(r,e,t){var n=e.filter(o=>!wd(o)).every(o=>t[o]!==void 0);if(!n){var i=e.filter(o=>t[o]===void 0);throw new Error('Cannot create function "'.concat(r,'", ')+"some dependencies are missing: ".concat(i.map(o=>'"'.concat(o,'"')).join(", "),"."))}}function wd(r){return r&&r[0]==="?"}function Td(r){return r&&r[0]==="?"?r.slice(1):r}function tt(r){return typeof r=="boolean"?!0:isFinite(r)?r===Math.round(r):!1}var bu=Math.sign||function(r){return r>0?1:r<0?-1:0},Su=Math.log2||function(e){return Math.log(e)/Math.LN2},Mu=Math.log10||function(e){return Math.log(e)/Math.LN10},wu=Math.log1p||function(r){return Math.log(r+1)},Tu=Math.cbrt||function(e){if(e===0)return e;var t=e<0,n;return t&&(e=-e),isFinite(e)?(n=Math.exp(Math.log(e)/3),n=(e/(n*n)+2*n)/3):n=e,t?-n:n},Cu=Math.expm1||function(e){return e>=2e-4||e<=-2e-4?Math.exp(e)-1:e+e*e/2+e*e*e/6};function Wi(r,e,t){var n={2:"0b",8:"0o",16:"0x"},i=n[e],o="";if(t){if(t<1)throw new Error("size must be in greater than 0");if(!tt(t))throw new Error("size must be an integer");if(r>2**(t-1)-1||r<-(2**(t-1)))throw new Error("Value must be in range [-2^".concat(t-1,", 2^").concat(t-1,"-1]"));if(!tt(r))throw new Error("Value must be an integer");r<0&&(r=r+2**t),o="i".concat(t)}var a="";return r<0&&(r=-r,a="-"),"".concat(a).concat(i).concat(r.toString(e)).concat(o)}function $n(r,e){if(typeof e=="function")return e(r);if(r===1/0)return"Infinity";if(r===-1/0)return"-Infinity";if(isNaN(r))return"NaN";var{notation:t,precision:n,wordSize:i}=qi(e);switch(t){case"fixed":return Xi(r,n);case"exponential":return Au(r,n);case"engineering":return Cd(r,n);case"bin":return Wi(r,2,i);case"oct":return Wi(r,8,i);case"hex":return Wi(r,16,i);case"auto":return Ad(r,n,e).replace(/((\.\d*?)(0+))($|e)/,function(){var o=arguments[2],a=arguments[4];return o!=="."?o+a:a});default:throw new Error('Unknown notation "'+t+'". Choose "auto", "exponential", "fixed", "bin", "oct", or "hex.')}}function qi(r){var e="auto",t,n;if(r!==void 0)if(nt(r))t=r;else if(it(r))t=r.toNumber();else if(wn(r))r.precision!==void 0&&(t=xu(r.precision,()=>{throw new Error('Option "precision" must be a number or BigNumber')})),r.wordSize!==void 0&&(n=xu(r.wordSize,()=>{throw new Error('Option "wordSize" must be a number or BigNumber')})),r.notation&&(e=r.notation);else throw new Error("Unsupported type of options, number, BigNumber, or object expected");return{notation:e,precision:t,wordSize:n}}function Cn(r){var e=String(r).toLowerCase().match(/^(-?)(\d+\.?\d*)(e([+-]?\d+))?$/);if(!e)throw new SyntaxError("Invalid number "+r);var t=e[1],n=e[2],i=parseFloat(e[4]||"0"),o=n.indexOf(".");i+=o!==-1?o-1:n.length-1;var a=n.replace(".","").replace(/^0*/,function(c){return i-=c.length,""}).replace(/0*$/,"").split("").map(function(c){return parseInt(c)});return a.length===0&&(a.push(0),i++),{sign:t,coefficients:a,exponent:i}}function Cd(r,e){if(isNaN(r)||!isFinite(r))return String(r);var t=Cn(r),n=Jr(t,e),i=n.exponent,o=n.coefficients,a=i%3===0?i:i<0?i-3-i%3:i-i%3;if(nt(e))for(;e>o.length||i-a+1>o.length;)o.push(0);else for(var c=Math.abs(i-a)-(o.length-1),l=0;l<c;l++)o.push(0);for(var s=Math.abs(i-a),u=1;s>0;)u++,s--;var h=o.slice(u).join(""),f=nt(e)&&h.length||h.match(/[1-9]/)?"."+h:"",d=o.slice(0,u).join("")+f+"e"+(i>=0?"+":"")+a.toString();return n.sign+d}function Xi(r,e){if(isNaN(r)||!isFinite(r))return String(r);var t=Cn(r),n=typeof e=="number"?Jr(t,t.exponent+1+e):t,i=n.coefficients,o=n.exponent+1,a=o+(e||0);return i.length<a&&(i=i.concat(Tn(a-i.length))),o<0&&(i=Tn(-o+1).concat(i),o=1),o<i.length&&i.splice(o,0,o===0?"0.":"."),n.sign+i.join("")}function Au(r,e){if(isNaN(r)||!isFinite(r))return String(r);var t=Cn(r),n=e?Jr(t,e):t,i=n.coefficients,o=n.exponent;i.length<e&&(i=i.concat(Tn(e-i.length)));var a=i.shift();return n.sign+a+(i.length>0?"."+i.join(""):"")+"e"+(o>=0?"+":"")+o}function Ad(r,e,t){if(isNaN(r)||!isFinite(r))return String(r);var n=Eu(t?.lowerExp,-3),i=Eu(t?.upperExp,5),o=Cn(r),a=e?Jr(o,e):o;if(a.exponent<n||a.exponent>=i)return Au(r,e);var c=a.coefficients,l=a.exponent;c.length<e&&(c=c.concat(Tn(e-c.length))),c=c.concat(Tn(l-c.length+1+(c.length<e?e-c.length:0))),c=Tn(-l).concat(c);var s=l>0?l:0;return s<c.length-1&&c.splice(s+1,0,"."),a.sign+c.join("")}function Jr(r,e){for(var t={sign:r.sign,coefficients:r.coefficients,exponent:r.exponent},n=t.coefficients;e<=0;)n.unshift(0),t.exponent++,e++;if(n.length>e){var i=n.splice(e,n.length-e);if(i[0]>=5){var o=e-1;for(n[o]++;n[o]===10;)n.pop(),o===0&&(n.unshift(0),t.exponent++,o++),o--,n[o]++}}return t}function Tn(r){for(var e=[],t=0;t<r;t++)e.push(0);return e}function Pu(r){return r.toExponential().replace(/e.*$/,"").replace(/^0\.?0*|\./,"").length}var TM=Number.EPSILON||2220446049250313e-31;function pe(r,e){var t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1e-8,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;if(t<=0)throw new Error("Relative tolerance must be greater than 0");if(n<0)throw new Error("Absolute tolerance must be at least 0");return isNaN(r)||isNaN(e)?!1:!isFinite(r)||!isFinite(e)?r===e:r===e?!0:Math.abs(r-e)<=Math.max(t*Math.max(Math.abs(r),Math.abs(e)),n)}function xu(r,e){if(nt(r))return r;if(it(r))return r.toNumber();e()}function Eu(r,e){return nt(r)?r:it(r)?r.toNumber():e}var Du=function(){return Du=ji.default.create,ji.default},Pd=["?BigNumber","?Complex","?DenseMatrix","?Fraction"],Yi=N("typed",Pd,function(e){var{BigNumber:t,Complex:n,DenseMatrix:i,Fraction:o}=e,a=Du();return a.clear(),a.addTypes([{name:"number",test:nt},{name:"Complex",test:zi},{name:"BigNumber",test:it},{name:"bigint",test:ka},{name:"Fraction",test:Gi},{name:"Unit",test:Zr},{name:"identifier",test:c=>jt&&/^(?:[A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE3F\uDE40\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDF02\uDF04-\uDF10\uDF12-\uDF33\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC30-\uDC6D\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDCD0-\uDCEB\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF39\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD888[\uDC00-\uDFAF])(?:[0-9A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE3F\uDE40\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDF02\uDF04-\uDF10\uDF12-\uDF33\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC30-\uDC6D\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDCD0-\uDCEB\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF39\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD888[\uDC00-\uDFAF])*$/.test(c)},{name:"string",test:jt},{name:"Chain",test:mu},{name:"Array",test:yt},{name:"Matrix",test:ot},{name:"DenseMatrix",test:Va},{name:"SparseMatrix",test:Ha},{name:"Range",test:Wa},{name:"Index",test:Mn},{name:"boolean",test:qa},{name:"ResultSet",test:Xa},{name:"Help",test:ja},{name:"function",test:Ya},{name:"Date",test:$a},{name:"RegExp",test:Za},{name:"null",test:Ja},{name:"undefined",test:Qa},{name:"AccessorNode",test:tu},{name:"ArrayNode",test:eu},{name:"AssignmentNode",test:nu},{name:"BlockNode",test:ru},{name:"ConditionalNode",test:iu},{name:"ConstantNode",test:ou},{name:"FunctionNode",test:au},{name:"FunctionAssignmentNode",test:su},{name:"IndexNode",test:uu},{name:"Node",test:lu},{name:"ObjectNode",test:cu},{name:"OperatorNode",test:hu},{name:"ParenthesisNode",test:pu},{name:"RangeNode",test:fu},{name:"RelationalNode",test:du},{name:"SymbolNode",test:gu},{name:"Map",test:Ka},{name:"Object",test:wn}]),a.addConversions([{from:"number",to:"BigNumber",convert:function(l){if(t||Qr(l),Pu(l)>15)throw new TypeError("Cannot implicitly convert a number with >15 significant digits to BigNumber (value: "+l+"). Use function bignumber(x) to convert to BigNumber.");return new t(l)}},{from:"number",to:"Complex",convert:function(l){return n||ti(l),new n(l,0)}},{from:"BigNumber",to:"Complex",convert:function(l){return n||ti(l),new n(l.toNumber(),0)}},{from:"bigint",to:"number",convert:function(l){if(l>Number.MAX_SAFE_INTEGER)throw new TypeError("Cannot implicitly convert bigint to number: value exceeds the max safe integer value (value: "+l+")");return Number(l)}},{from:"bigint",to:"BigNumber",convert:function(l){return t||Qr(l),new t(l.toString())}},{from:"bigint",to:"Fraction",convert:function(l){return o||ei(l),new o(l.toString())}},{from:"Fraction",to:"BigNumber",convert:function(l){throw new TypeError("Cannot implicitly convert a Fraction to BigNumber or vice versa. Use function bignumber(x) to convert to BigNumber or fraction(x) to convert to Fraction.")}},{from:"Fraction",to:"Complex",convert:function(l){return n||ti(l),new n(l.valueOf(),0)}},{from:"number",to:"Fraction",convert:function(l){o||ei(l);var s=new o(l);if(s.valueOf()!==l)throw new TypeError("Cannot implicitly convert a number to a Fraction when there will be a loss of precision (value: "+l+"). Use function fraction(x) to convert to Fraction.");return s}},{from:"string",to:"number",convert:function(l){var s=Number(l);if(isNaN(s))throw new Error('Cannot convert "'+l+'" to a number');return s}},{from:"string",to:"BigNumber",convert:function(l){t||Qr(l);try{return new t(l)}catch{throw new Error('Cannot convert "'+l+'" to BigNumber')}}},{from:"string",to:"bigint",convert:function(l){try{return BigInt(l)}catch{throw new Error('Cannot convert "'+l+'" to BigInt')}}},{from:"string",to:"Fraction",convert:function(l){o||ei(l);try{return new o(l)}catch{throw new Error('Cannot convert "'+l+'" to Fraction')}}},{from:"string",to:"Complex",convert:function(l){n||ti(l);try{return new n(l)}catch{throw new Error('Cannot convert "'+l+'" to Complex')}}},{from:"boolean",to:"number",convert:function(l){return+l}},{from:"boolean",to:"BigNumber",convert:function(l){return t||Qr(l),new t(+l)}},{from:"boolean",to:"bigint",convert:function(l){return BigInt(+l)}},{from:"boolean",to:"Fraction",convert:function(l){return o||ei(l),new o(+l)}},{from:"boolean",to:"string",convert:function(l){return String(l)}},{from:"Array",to:"Matrix",convert:function(l){return i||Dd(),new i(l)}},{from:"Matrix",to:"Array",convert:function(l){return l.valueOf()}}]),a.onMismatch=(c,l,s)=>{var u=a.createError(c,l,s);if(["wrongType","mismatch"].includes(u.data.category)&&l.length===1&&Ue(l[0])&&s.some(f=>!f.params.includes(","))){var h=new TypeError("Function '".concat(c,"' doesn't apply to matrices. To call it ")+"elementwise on a matrix 'M', try 'map(M, ".concat(c,")'."));throw h.data=u.data,h}throw u},a.onMismatch=(c,l,s)=>{var u=a.createError(c,l,s);if(["wrongType","mismatch"].includes(u.data.category)&&l.length===1&&Ue(l[0])&&s.some(f=>!f.params.includes(","))){var h=new TypeError("Function '".concat(c,"' doesn't apply to matrices. To call it ")+"elementwise on a matrix 'M', try 'map(M, ".concat(c,")'."));throw h.data=u.data,h}throw u},a});function Qr(r){throw new Error("Cannot convert value ".concat(r," into a BigNumber: no class 'BigNumber' provided"))}function ti(r){throw new Error("Cannot convert value ".concat(r," into a Complex number: no class 'Complex' provided"))}function Dd(){throw new Error("Cannot convert array into a Matrix: no class 'DenseMatrix' provided")}function ei(r){throw new Error("Cannot convert value ".concat(r," into a Fraction, no class 'Fraction' provided."))}var An=9e15,Je=1e9,$i="0123456789abcdef",ri="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",ii="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",Zi={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-An,maxE:An,crypto:!1},Lu,Be,K=!0,si="[DecimalError] ",Ke=si+"Invalid argument: ",Ou=si+"Precision limit exceeded",Fu=si+"crypto unavailable",Uu="[object Decimal]",Wt=Math.floor,Pt=Math.pow,Id=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,Rd=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,Nd=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,Bu=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,_e=1e7,Z=7,Ld=9007199254740991,Od=ri.length-1,Ki=ii.length-1,F={toStringTag:Uu};F.absoluteValue=F.abs=function(){var r=new this.constructor(this);return r.s<0&&(r.s=1),$(r)};F.ceil=function(){return $(new this.constructor(this),this.e+1,2)};F.clampedTo=F.clamp=function(r,e){var t,n=this,i=n.constructor;if(r=new i(r),e=new i(e),!r.s||!e.s)return new i(NaN);if(r.gt(e))throw Error(Ke+e);return t=n.cmp(r),t<0?r:n.cmp(e)>0?e:new i(n)};F.comparedTo=F.cmp=function(r){var e,t,n,i,o=this,a=o.d,c=(r=new o.constructor(r)).d,l=o.s,s=r.s;if(!a||!c)return!l||!s?NaN:l!==s?l:a===c?0:!a^l<0?1:-1;if(!a[0]||!c[0])return a[0]?l:c[0]?-s:0;if(l!==s)return l;if(o.e!==r.e)return o.e>r.e^l<0?1:-1;for(n=a.length,i=c.length,e=0,t=n<i?n:i;e<t;++e)if(a[e]!==c[e])return a[e]>c[e]^l<0?1:-1;return n===i?0:n>i^l<0?1:-1};F.cosine=F.cos=function(){var r,e,t=this,n=t.constructor;return t.d?t.d[0]?(r=n.precision,e=n.rounding,n.precision=r+Math.max(t.e,t.sd())+Z,n.rounding=1,t=Fd(n,Hu(n,t)),n.precision=r,n.rounding=e,$(Be==2||Be==3?t.neg():t,r,e,!0)):new n(1):new n(NaN)};F.cubeRoot=F.cbrt=function(){var r,e,t,n,i,o,a,c,l,s,u=this,h=u.constructor;if(!u.isFinite()||u.isZero())return new h(u);for(K=!1,o=u.s*Pt(u.s*u,1/3),!o||Math.abs(o)==1/0?(t=Bt(u.d),r=u.e,(o=(r-t.length+1)%3)&&(t+=o==1||o==-2?"0":"00"),o=Pt(t,1/3),r=Wt((r+1)/3)-(r%3==(r<0?-1:2)),o==1/0?t="5e"+r:(t=o.toExponential(),t=t.slice(0,t.indexOf("e")+1)+r),n=new h(t),n.s=u.s):n=new h(o.toString()),a=(r=h.precision)+3;;)if(c=n,l=c.times(c).times(c),s=l.plus(u),n=dt(s.plus(u).times(c),s.plus(l),a+2,1),Bt(c.d).slice(0,a)===(t=Bt(n.d)).slice(0,a))if(t=t.slice(a-3,a+1),t=="9999"||!i&&t=="4999"){if(!i&&($(c,r+1,0),c.times(c).times(c).eq(u))){n=c;break}a+=4,i=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&($(n,r+1,1),e=!n.times(n).times(n).eq(u));break}return K=!0,$(n,r,h.rounding,e)};F.decimalPlaces=F.dp=function(){var r,e=this.d,t=NaN;if(e){if(r=e.length-1,t=(r-Wt(this.e/Z))*Z,r=e[r],r)for(;r%10==0;r/=10)t--;t<0&&(t=0)}return t};F.dividedBy=F.div=function(r){return dt(this,new this.constructor(r))};F.dividedToIntegerBy=F.divToInt=function(r){var e=this,t=e.constructor;return $(dt(e,new t(r),0,1,1),t.precision,t.rounding)};F.equals=F.eq=function(r){return this.cmp(r)===0};F.floor=function(){return $(new this.constructor(this),this.e+1,3)};F.greaterThan=F.gt=function(r){return this.cmp(r)>0};F.greaterThanOrEqualTo=F.gte=function(r){var e=this.cmp(r);return e==1||e===0};F.hyperbolicCosine=F.cosh=function(){var r,e,t,n,i,o=this,a=o.constructor,c=new a(1);if(!o.isFinite())return new a(o.s?1/0:NaN);if(o.isZero())return c;t=a.precision,n=a.rounding,a.precision=t+Math.max(o.e,o.sd())+4,a.rounding=1,i=o.d.length,i<32?(r=Math.ceil(i/3),e=(1/ui(4,r)).toString()):(r=16,e="2.3283064365386962890625e-10"),o=Pn(a,1,o.times(e),new a(1),!0);for(var l,s=r,u=new a(8);s--;)l=o.times(o),o=c.minus(l.times(u.minus(l.times(u))));return $(o,a.precision=t,a.rounding=n,!0)};F.hyperbolicSine=F.sinh=function(){var r,e,t,n,i=this,o=i.constructor;if(!i.isFinite()||i.isZero())return new o(i);if(e=o.precision,t=o.rounding,o.precision=e+Math.max(i.e,i.sd())+4,o.rounding=1,n=i.d.length,n<3)i=Pn(o,2,i,i,!0);else{r=1.4*Math.sqrt(n),r=r>16?16:r|0,i=i.times(1/ui(5,r)),i=Pn(o,2,i,i,!0);for(var a,c=new o(5),l=new o(16),s=new o(20);r--;)a=i.times(i),i=i.times(c.plus(a.times(l.times(a).plus(s))))}return o.precision=e,o.rounding=t,$(i,e,t,!0)};F.hyperbolicTangent=F.tanh=function(){var r,e,t=this,n=t.constructor;return t.isFinite()?t.isZero()?new n(t):(r=n.precision,e=n.rounding,n.precision=r+7,n.rounding=1,dt(t.sinh(),t.cosh(),n.precision=r,n.rounding=e)):new n(t.s)};F.inverseCosine=F.acos=function(){var r,e=this,t=e.constructor,n=e.abs().cmp(1),i=t.precision,o=t.rounding;return n!==-1?n===0?e.isNeg()?ve(t,i,o):new t(0):new t(NaN):e.isZero()?ve(t,i+4,o).times(.5):(t.precision=i+6,t.rounding=1,e=e.asin(),r=ve(t,i+4,o).times(.5),t.precision=i,t.rounding=o,r.minus(e))};F.inverseHyperbolicCosine=F.acosh=function(){var r,e,t=this,n=t.constructor;return t.lte(1)?new n(t.eq(1)?0:NaN):t.isFinite()?(r=n.precision,e=n.rounding,n.precision=r+Math.max(Math.abs(t.e),t.sd())+4,n.rounding=1,K=!1,t=t.times(t).minus(1).sqrt().plus(t),K=!0,n.precision=r,n.rounding=e,t.ln()):new n(t)};F.inverseHyperbolicSine=F.asinh=function(){var r,e,t=this,n=t.constructor;return!t.isFinite()||t.isZero()?new n(t):(r=n.precision,e=n.rounding,n.precision=r+2*Math.max(Math.abs(t.e),t.sd())+6,n.rounding=1,K=!1,t=t.times(t).plus(1).sqrt().plus(t),K=!0,n.precision=r,n.rounding=e,t.ln())};F.inverseHyperbolicTangent=F.atanh=function(){var r,e,t,n,i=this,o=i.constructor;return i.isFinite()?i.e>=0?new o(i.abs().eq(1)?i.s/0:i.isZero()?i:NaN):(r=o.precision,e=o.rounding,n=i.sd(),Math.max(n,r)<2*-i.e-1?$(new o(i),r,e,!0):(o.precision=t=n-i.e,i=dt(i.plus(1),new o(1).minus(i),t+r,1),o.precision=r+4,o.rounding=1,i=i.ln(),o.precision=r,o.rounding=e,i.times(.5))):new o(NaN)};F.inverseSine=F.asin=function(){var r,e,t,n,i=this,o=i.constructor;return i.isZero()?new o(i):(e=i.abs().cmp(1),t=o.precision,n=o.rounding,e!==-1?e===0?(r=ve(o,t+4,n).times(.5),r.s=i.s,r):new o(NaN):(o.precision=t+6,o.rounding=1,i=i.div(new o(1).minus(i.times(i)).sqrt().plus(1)).atan(),o.precision=t,o.rounding=n,i.times(2)))};F.inverseTangent=F.atan=function(){var r,e,t,n,i,o,a,c,l,s=this,u=s.constructor,h=u.precision,f=u.rounding;if(s.isFinite()){if(s.isZero())return new u(s);if(s.abs().eq(1)&&h+4<=Ki)return a=ve(u,h+4,f).times(.25),a.s=s.s,a}else{if(!s.s)return new u(NaN);if(h+4<=Ki)return a=ve(u,h+4,f).times(.5),a.s=s.s,a}for(u.precision=c=h+10,u.rounding=1,t=Math.min(28,c/Z+2|0),r=t;r;--r)s=s.div(s.times(s).plus(1).sqrt().plus(1));for(K=!1,e=Math.ceil(c/Z),n=1,l=s.times(s),a=new u(s),i=s;r!==-1;)if(i=i.times(l),o=a.minus(i.div(n+=2)),i=i.times(l),a=o.plus(i.div(n+=2)),a.d[e]!==void 0)for(r=e;a.d[r]===o.d[r]&&r--;);return t&&(a=a.times(2<<t-1)),K=!0,$(a,u.precision=h,u.rounding=f,!0)};F.isFinite=function(){return!!this.d};F.isInteger=F.isInt=function(){return!!this.d&&Wt(this.e/Z)>this.d.length-2};F.isNaN=function(){return!this.s};F.isNegative=F.isNeg=function(){return this.s<0};F.isPositive=F.isPos=function(){return this.s>0};F.isZero=function(){return!!this.d&&this.d[0]===0};F.lessThan=F.lt=function(r){return this.cmp(r)<0};F.lessThanOrEqualTo=F.lte=function(r){return this.cmp(r)<1};F.logarithm=F.log=function(r){var e,t,n,i,o,a,c,l,s=this,u=s.constructor,h=u.precision,f=u.rounding,d=5;if(r==null)r=new u(10),e=!0;else{if(r=new u(r),t=r.d,r.s<0||!t||!t[0]||r.eq(1))return new u(NaN);e=r.eq(10)}if(t=s.d,s.s<0||!t||!t[0]||s.eq(1))return new u(t&&!t[0]?-1/0:s.s!=1?NaN:t?0:1/0);if(e)if(t.length>1)o=!0;else{for(i=t[0];i%10===0;)i/=10;o=i!==1}if(K=!1,c=h+d,a=Ze(s,c),n=e?oi(u,c+10):Ze(r,c),l=dt(a,n,c,1),Zn(l.d,i=h,f))do if(c+=10,a=Ze(s,c),n=e?oi(u,c+10):Ze(r,c),l=dt(a,n,c,1),!o){+Bt(l.d).slice(i+1,i+15)+1==1e14&&(l=$(l,h+1,0));break}while(Zn(l.d,i+=10,f));return K=!0,$(l,h,f)};F.minus=F.sub=function(r){var e,t,n,i,o,a,c,l,s,u,h,f,d=this,g=d.constructor;if(r=new g(r),!d.d||!r.d)return!d.s||!r.s?r=new g(NaN):d.d?r.s=-r.s:r=new g(r.d||d.s!==r.s?d:NaN),r;if(d.s!=r.s)return r.s=-r.s,d.plus(r);if(s=d.d,f=r.d,c=g.precision,l=g.rounding,!s[0]||!f[0]){if(f[0])r.s=-r.s;else if(s[0])r=new g(d);else return new g(l===3?-0:0);return K?$(r,c,l):r}if(t=Wt(r.e/Z),u=Wt(d.e/Z),s=s.slice(),o=u-t,o){for(h=o<0,h?(e=s,o=-o,a=f.length):(e=f,t=u,a=s.length),n=Math.max(Math.ceil(c/Z),a)+2,o>n&&(o=n,e.length=1),e.reverse(),n=o;n--;)e.push(0);e.reverse()}else{for(n=s.length,a=f.length,h=n<a,h&&(a=n),n=0;n<a;n++)if(s[n]!=f[n]){h=s[n]<f[n];break}o=0}for(h&&(e=s,s=f,f=e,r.s=-r.s),a=s.length,n=f.length-a;n>0;--n)s[a++]=0;for(n=f.length;n>o;){if(s[--n]<f[n]){for(i=n;i&&s[--i]===0;)s[i]=_e-1;--s[i],s[n]+=_e}s[n]-=f[n]}for(;s[--a]===0;)s.pop();for(;s[0]===0;s.shift())--t;return s[0]?(r.d=s,r.e=ai(s,t),K?$(r,c,l):r):new g(l===3?-0:0)};F.modulo=F.mod=function(r){var e,t=this,n=t.constructor;return r=new n(r),!t.d||!r.s||r.d&&!r.d[0]?new n(NaN):!r.d||t.d&&!t.d[0]?$(new n(t),n.precision,n.rounding):(K=!1,n.modulo==9?(e=dt(t,r.abs(),0,3,1),e.s*=r.s):e=dt(t,r,0,n.modulo,1),e=e.times(r),K=!0,t.minus(e))};F.naturalExponential=F.exp=function(){return Ji(this)};F.naturalLogarithm=F.ln=function(){return Ze(this)};F.negated=F.neg=function(){var r=new this.constructor(this);return r.s=-r.s,$(r)};F.plus=F.add=function(r){var e,t,n,i,o,a,c,l,s,u,h=this,f=h.constructor;if(r=new f(r),!h.d||!r.d)return!h.s||!r.s?r=new f(NaN):h.d||(r=new f(r.d||h.s===r.s?h:NaN)),r;if(h.s!=r.s)return r.s=-r.s,h.minus(r);if(s=h.d,u=r.d,c=f.precision,l=f.rounding,!s[0]||!u[0])return u[0]||(r=new f(h)),K?$(r,c,l):r;if(o=Wt(h.e/Z),n=Wt(r.e/Z),s=s.slice(),i=o-n,i){for(i<0?(t=s,i=-i,a=u.length):(t=u,n=o,a=s.length),o=Math.ceil(c/Z),a=o>a?o+1:a+1,i>a&&(i=a,t.length=1),t.reverse();i--;)t.push(0);t.reverse()}for(a=s.length,i=u.length,a-i<0&&(i=a,t=u,u=s,s=t),e=0;i;)e=(s[--i]=s[i]+u[i]+e)/_e|0,s[i]%=_e;for(e&&(s.unshift(e),++n),a=s.length;s[--a]==0;)s.pop();return r.d=s,r.e=ai(s,n),K?$(r,c,l):r};F.precision=F.sd=function(r){var e,t=this;if(r!==void 0&&r!==!!r&&r!==1&&r!==0)throw Error(Ke+r);return t.d?(e=zu(t.d),r&&t.e+1>e&&(e=t.e+1)):e=NaN,e};F.round=function(){var r=this,e=r.constructor;return $(new e(r),r.e+1,e.rounding)};F.sine=F.sin=function(){var r,e,t=this,n=t.constructor;return t.isFinite()?t.isZero()?new n(t):(r=n.precision,e=n.rounding,n.precision=r+Math.max(t.e,t.sd())+Z,n.rounding=1,t=Bd(n,Hu(n,t)),n.precision=r,n.rounding=e,$(Be>2?t.neg():t,r,e,!0)):new n(NaN)};F.squareRoot=F.sqrt=function(){var r,e,t,n,i,o,a=this,c=a.d,l=a.e,s=a.s,u=a.constructor;if(s!==1||!c||!c[0])return new u(!s||s<0&&(!c||c[0])?NaN:c?a:1/0);for(K=!1,s=Math.sqrt(+a),s==0||s==1/0?(e=Bt(c),(e.length+l)%2==0&&(e+="0"),s=Math.sqrt(e),l=Wt((l+1)/2)-(l<0||l%2),s==1/0?e="5e"+l:(e=s.toExponential(),e=e.slice(0,e.indexOf("e")+1)+l),n=new u(e)):n=new u(s.toString()),t=(l=u.precision)+3;;)if(o=n,n=o.plus(dt(a,o,t+2,1)).times(.5),Bt(o.d).slice(0,t)===(e=Bt(n.d)).slice(0,t))if(e=e.slice(t-3,t+1),e=="9999"||!i&&e=="4999"){if(!i&&($(o,l+1,0),o.times(o).eq(a))){n=o;break}t+=4,i=1}else{(!+e||!+e.slice(1)&&e.charAt(0)=="5")&&($(n,l+1,1),r=!n.times(n).eq(a));break}return K=!0,$(n,l,u.rounding,r)};F.tangent=F.tan=function(){var r,e,t=this,n=t.constructor;return t.isFinite()?t.isZero()?new n(t):(r=n.precision,e=n.rounding,n.precision=r+10,n.rounding=1,t=t.sin(),t.s=1,t=dt(t,new n(1).minus(t.times(t)).sqrt(),r+10,0),n.precision=r,n.rounding=e,$(Be==2||Be==4?t.neg():t,r,e,!0)):new n(NaN)};F.times=F.mul=function(r){var e,t,n,i,o,a,c,l,s,u=this,h=u.constructor,f=u.d,d=(r=new h(r)).d;if(r.s*=u.s,!f||!f[0]||!d||!d[0])return new h(!r.s||f&&!f[0]&&!d||d&&!d[0]&&!f?NaN:!f||!d?r.s/0:r.s*0);for(t=Wt(u.e/Z)+Wt(r.e/Z),l=f.length,s=d.length,l<s&&(o=f,f=d,d=o,a=l,l=s,s=a),o=[],a=l+s,n=a;n--;)o.push(0);for(n=s;--n>=0;){for(e=0,i=l+n;i>n;)c=o[i]+d[n]*f[i-n-1]+e,o[i--]=c%_e|0,e=c/_e|0;o[i]=(o[i]+e)%_e|0}for(;!o[--a];)o.pop();return e?++t:o.shift(),r.d=o,r.e=ai(o,t),K?$(r,h.precision,h.rounding):r};F.toBinary=function(r,e){return to(this,2,r,e)};F.toDecimalPlaces=F.toDP=function(r,e){var t=this,n=t.constructor;return t=new n(t),r===void 0?t:(Qt(r,0,Je),e===void 0?e=n.rounding:Qt(e,0,8),$(t,r+t.e+1,e))};F.toExponential=function(r,e){var t,n=this,i=n.constructor;return r===void 0?t=Pe(n,!0):(Qt(r,0,Je),e===void 0?e=i.rounding:Qt(e,0,8),n=$(new i(n),r+1,e),t=Pe(n,!0,r+1)),n.isNeg()&&!n.isZero()?"-"+t:t};F.toFixed=function(r,e){var t,n,i=this,o=i.constructor;return r===void 0?t=Pe(i):(Qt(r,0,Je),e===void 0?e=o.rounding:Qt(e,0,8),n=$(new o(i),r+i.e+1,e),t=Pe(n,!1,r+n.e+1)),i.isNeg()&&!i.isZero()?"-"+t:t};F.toFraction=function(r){var e,t,n,i,o,a,c,l,s,u,h,f,d=this,g=d.d,p=d.constructor;if(!g)return new p(d);if(s=t=new p(1),n=l=new p(0),e=new p(n),o=e.e=zu(g)-d.e-1,a=o%Z,e.d[0]=Pt(10,a<0?Z+a:a),r==null)r=o>0?e:s;else{if(c=new p(r),!c.isInt()||c.lt(s))throw Error(Ke+c);r=c.gt(e)?o>0?e:s:c}for(K=!1,c=new p(Bt(g)),u=p.precision,p.precision=o=g.length*Z*2;h=dt(c,e,0,1,1),i=t.plus(h.times(n)),i.cmp(r)!=1;)t=n,n=i,i=s,s=l.plus(h.times(i)),l=i,i=e,e=c.minus(h.times(i)),c=i;return i=dt(r.minus(t),n,0,1,1),l=l.plus(i.times(s)),t=t.plus(i.times(n)),l.s=s.s=d.s,f=dt(s,n,o,1).minus(d).abs().cmp(dt(l,t,o,1).minus(d).abs())<1?[s,n]:[l,t],p.precision=u,K=!0,f};F.toHexadecimal=F.toHex=function(r,e){return to(this,16,r,e)};F.toNearest=function(r,e){var t=this,n=t.constructor;if(t=new n(t),r==null){if(!t.d)return t;r=new n(1),e=n.rounding}else{if(r=new n(r),e===void 0?e=n.rounding:Qt(e,0,8),!t.d)return r.s?t:r;if(!r.d)return r.s&&(r.s=t.s),r}return r.d[0]?(K=!1,t=dt(t,r,0,e,1).times(r),K=!0,$(t)):(r.s=t.s,t=r),t};F.toNumber=function(){return+this};F.toOctal=function(r,e){return to(this,8,r,e)};F.toPower=F.pow=function(r){var e,t,n,i,o,a,c=this,l=c.constructor,s=+(r=new l(r));if(!c.d||!r.d||!c.d[0]||!r.d[0])return new l(Pt(+c,s));if(c=new l(c),c.eq(1))return c;if(n=l.precision,o=l.rounding,r.eq(1))return $(c,n,o);if(e=Wt(r.e/Z),e>=r.d.length-1&&(t=s<0?-s:s)<=Ld)return i=Gu(l,c,t,n),r.s<0?new l(1).div(i):$(i,n,o);if(a=c.s,a<0){if(e<r.d.length-1)return new l(NaN);if(r.d[e]&1||(a=1),c.e==0&&c.d[0]==1&&c.d.length==1)return c.s=a,c}return t=Pt(+c,s),e=t==0||!isFinite(t)?Wt(s*(Math.log("0."+Bt(c.d))/Math.LN10+c.e+1)):new l(t+"").e,e>l.maxE+1||e<l.minE-1?new l(e>0?a/0:0):(K=!1,l.rounding=c.s=1,t=Math.min(12,(e+"").length),i=Ji(r.times(Ze(c,n+t)),n),i.d&&(i=$(i,n+5,1),Zn(i.d,n,o)&&(e=n+10,i=$(Ji(r.times(Ze(c,e+t)),e),e+5,1),+Bt(i.d).slice(n+1,n+15)+1==1e14&&(i=$(i,n+1,0)))),i.s=a,K=!0,l.rounding=o,$(i,n,o))};F.toPrecision=function(r,e){var t,n=this,i=n.constructor;return r===void 0?t=Pe(n,n.e<=i.toExpNeg||n.e>=i.toExpPos):(Qt(r,1,Je),e===void 0?e=i.rounding:Qt(e,0,8),n=$(new i(n),r,e),t=Pe(n,r<=n.e||n.e<=i.toExpNeg,r)),n.isNeg()&&!n.isZero()?"-"+t:t};F.toSignificantDigits=F.toSD=function(r,e){var t=this,n=t.constructor;return r===void 0?(r=n.precision,e=n.rounding):(Qt(r,1,Je),e===void 0?e=n.rounding:Qt(e,0,8)),$(new n(t),r,e)};F.toString=function(){var r=this,e=r.constructor,t=Pe(r,r.e<=e.toExpNeg||r.e>=e.toExpPos);return r.isNeg()&&!r.isZero()?"-"+t:t};F.truncated=F.trunc=function(){return $(new this.constructor(this),this.e+1,1)};F.valueOf=F.toJSON=function(){var r=this,e=r.constructor,t=Pe(r,r.e<=e.toExpNeg||r.e>=e.toExpPos);return r.isNeg()?"-"+t:t};function Bt(r){var e,t,n,i=r.length-1,o="",a=r[0];if(i>0){for(o+=a,e=1;e<i;e++)n=r[e]+"",t=Z-n.length,t&&(o+=$e(t)),o+=n;a=r[e],n=a+"",t=Z-n.length,t&&(o+=$e(t))}else if(a===0)return"0";for(;a%10===0;)a/=10;return o+a}function Qt(r,e,t){if(r!==~~r||r<e||r>t)throw Error(Ke+r)}function Zn(r,e,t,n){var i,o,a,c;for(o=r[0];o>=10;o/=10)--e;return--e<0?(e+=Z,i=0):(i=Math.ceil((e+1)/Z),e%=Z),o=Pt(10,Z-e),c=r[i]%o|0,n==null?e<3?(e==0?c=c/100|0:e==1&&(c=c/10|0),a=t<4&&c==99999||t>3&&c==49999||c==5e4||c==0):a=(t<4&&c+1==o||t>3&&c+1==o/2)&&(r[i+1]/o/100|0)==Pt(10,e-2)-1||(c==o/2||c==0)&&(r[i+1]/o/100|0)==0:e<4?(e==0?c=c/1e3|0:e==1?c=c/100|0:e==2&&(c=c/10|0),a=(n||t<4)&&c==9999||!n&&t>3&&c==4999):a=((n||t<4)&&c+1==o||!n&&t>3&&c+1==o/2)&&(r[i+1]/o/1e3|0)==Pt(10,e-3)-1,a}function ni(r,e,t){for(var n,i=[0],o,a=0,c=r.length;a<c;){for(o=i.length;o--;)i[o]*=e;for(i[0]+=$i.indexOf(r.charAt(a++)),n=0;n<i.length;n++)i[n]>t-1&&(i[n+1]===void 0&&(i[n+1]=0),i[n+1]+=i[n]/t|0,i[n]%=t)}return i.reverse()}function Fd(r,e){var t,n,i;if(e.isZero())return e;n=e.d.length,n<32?(t=Math.ceil(n/3),i=(1/ui(4,t)).toString()):(t=16,i="2.3283064365386962890625e-10"),r.precision+=t,e=Pn(r,1,e.times(i),new r(1));for(var o=t;o--;){var a=e.times(e);e=a.times(a).minus(a).times(8).plus(1)}return r.precision-=t,e}var dt=function(){function r(n,i,o){var a,c=0,l=n.length;for(n=n.slice();l--;)a=n[l]*i+c,n[l]=a%o|0,c=a/o|0;return c&&n.unshift(c),n}function e(n,i,o,a){var c,l;if(o!=a)l=o>a?1:-1;else for(c=l=0;c<o;c++)if(n[c]!=i[c]){l=n[c]>i[c]?1:-1;break}return l}function t(n,i,o,a){for(var c=0;o--;)n[o]-=c,c=n[o]<i[o]?1:0,n[o]=c*a+n[o]-i[o];for(;!n[0]&&n.length>1;)n.shift()}return function(n,i,o,a,c,l){var s,u,h,f,d,g,p,m,v,b,y,S,x,_,M,w,C,P,D,R,W=n.constructor,G=n.s==i.s?1:-1,k=n.d,L=i.d;if(!k||!k[0]||!L||!L[0])return new W(!n.s||!i.s||(k?L&&k[0]==L[0]:!L)?NaN:k&&k[0]==0||!L?G*0:G/0);for(l?(d=1,u=n.e-i.e):(l=_e,d=Z,u=Wt(n.e/d)-Wt(i.e/d)),D=L.length,C=k.length,v=new W(G),b=v.d=[],h=0;L[h]==(k[h]||0);h++);if(L[h]>(k[h]||0)&&u--,o==null?(_=o=W.precision,a=W.rounding):c?_=o+(n.e-i.e)+1:_=o,_<0)b.push(1),g=!0;else{if(_=_/d+2|0,h=0,D==1){for(f=0,L=L[0],_++;(h<C||f)&&_--;h++)M=f*l+(k[h]||0),b[h]=M/L|0,f=M%L|0;g=f||h<C}else{for(f=l/(L[0]+1)|0,f>1&&(L=r(L,f,l),k=r(k,f,l),D=L.length,C=k.length),w=D,y=k.slice(0,D),S=y.length;S<D;)y[S++]=0;R=L.slice(),R.unshift(0),P=L[0],L[1]>=l/2&&++P;do f=0,s=e(L,y,D,S),s<0?(x=y[0],D!=S&&(x=x*l+(y[1]||0)),f=x/P|0,f>1?(f>=l&&(f=l-1),p=r(L,f,l),m=p.length,S=y.length,s=e(p,y,m,S),s==1&&(f--,t(p,D<m?R:L,m,l))):(f==0&&(s=f=1),p=L.slice()),m=p.length,m<S&&p.unshift(0),t(y,p,S,l),s==-1&&(S=y.length,s=e(L,y,D,S),s<1&&(f++,t(y,D<S?R:L,S,l))),S=y.length):s===0&&(f++,y=[0]),b[h++]=f,s&&y[0]?y[S++]=k[w]||0:(y=[k[w]],S=1);while((w++<C||y[0]!==void 0)&&_--);g=y[0]!==void 0}b[0]||b.shift()}if(d==1)v.e=u,Lu=g;else{for(h=1,f=b[0];f>=10;f/=10)h++;v.e=h+u*d-1,$(v,c?o+v.e+1:o,a,g)}return v}}();function $(r,e,t,n){var i,o,a,c,l,s,u,h,f,d=r.constructor;t:if(e!=null){if(h=r.d,!h)return r;for(i=1,c=h[0];c>=10;c/=10)i++;if(o=e-i,o<0)o+=Z,a=e,u=h[f=0],l=u/Pt(10,i-a-1)%10|0;else if(f=Math.ceil((o+1)/Z),c=h.length,f>=c)if(n){for(;c++<=f;)h.push(0);u=l=0,i=1,o%=Z,a=o-Z+1}else break t;else{for(u=c=h[f],i=1;c>=10;c/=10)i++;o%=Z,a=o-Z+i,l=a<0?0:u/Pt(10,i-a-1)%10|0}if(n=n||e<0||h[f+1]!==void 0||(a<0?u:u%Pt(10,i-a-1)),s=t<4?(l||n)&&(t==0||t==(r.s<0?3:2)):l>5||l==5&&(t==4||n||t==6&&(o>0?a>0?u/Pt(10,i-a):0:h[f-1])%10&1||t==(r.s<0?8:7)),e<1||!h[0])return h.length=0,s?(e-=r.e+1,h[0]=Pt(10,(Z-e%Z)%Z),r.e=-e||0):h[0]=r.e=0,r;if(o==0?(h.length=f,c=1,f--):(h.length=f+1,c=Pt(10,Z-o),h[f]=a>0?(u/Pt(10,i-a)%Pt(10,a)|0)*c:0),s)for(;;)if(f==0){for(o=1,a=h[0];a>=10;a/=10)o++;for(a=h[0]+=c,c=1;a>=10;a/=10)c++;o!=c&&(r.e++,h[0]==_e&&(h[0]=1));break}else{if(h[f]+=c,h[f]!=_e)break;h[f--]=0,c=1}for(o=h.length;h[--o]===0;)h.pop()}return K&&(r.e>d.maxE?(r.d=null,r.e=NaN):r.e<d.minE&&(r.e=0,r.d=[0])),r}function Pe(r,e,t){if(!r.isFinite())return Vu(r);var n,i=r.e,o=Bt(r.d),a=o.length;return e?(t&&(n=t-a)>0?o=o.charAt(0)+"."+o.slice(1)+$e(n):a>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(r.e<0?"e":"e+")+r.e):i<0?(o="0."+$e(-i-1)+o,t&&(n=t-a)>0&&(o+=$e(n))):i>=a?(o+=$e(i+1-a),t&&(n=t-i-1)>0&&(o=o+"."+$e(n))):((n=i+1)<a&&(o=o.slice(0,n)+"."+o.slice(n)),t&&(n=t-a)>0&&(i+1===a&&(o+="."),o+=$e(n))),o}function ai(r,e){var t=r[0];for(e*=Z;t>=10;t/=10)e++;return e}function oi(r,e,t){if(e>Od)throw K=!0,t&&(r.precision=t),Error(Ou);return $(new r(ri),e,1,!0)}function ve(r,e,t){if(e>Ki)throw Error(Ou);return $(new r(ii),e,t,!0)}function zu(r){var e=r.length-1,t=e*Z+1;if(e=r[e],e){for(;e%10==0;e/=10)t--;for(e=r[0];e>=10;e/=10)t++}return t}function $e(r){for(var e="";r--;)e+="0";return e}function Gu(r,e,t,n){var i,o=new r(1),a=Math.ceil(n/Z+4);for(K=!1;;){if(t%2&&(o=o.times(e),Ru(o.d,a)&&(i=!0)),t=Wt(t/2),t===0){t=o.d.length-1,i&&o.d[t]===0&&++o.d[t];break}e=e.times(e),Ru(e.d,a)}return K=!0,o}function Iu(r){return r.d[r.d.length-1]&1}function ku(r,e,t){for(var n,i=new r(e[0]),o=0;++o<e.length;)if(n=new r(e[o]),n.s)i[t](n)&&(i=n);else{i=n;break}return i}function Ji(r,e){var t,n,i,o,a,c,l,s=0,u=0,h=0,f=r.constructor,d=f.rounding,g=f.precision;if(!r.d||!r.d[0]||r.e>17)return new f(r.d?r.d[0]?r.s<0?0:1/0:1:r.s?r.s<0?0:r:NaN);for(e==null?(K=!1,l=g):l=e,c=new f(.03125);r.e>-2;)r=r.times(c),h+=5;for(n=Math.log(Pt(2,h))/Math.LN10*2+5|0,l+=n,t=o=a=new f(1),f.precision=l;;){if(o=$(o.times(r),l,1),t=t.times(++u),c=a.plus(dt(o,t,l,1)),Bt(c.d).slice(0,l)===Bt(a.d).slice(0,l)){for(i=h;i--;)a=$(a.times(a),l,1);if(e==null)if(s<3&&Zn(a.d,l-n,d,s))f.precision=l+=10,t=o=c=new f(1),u=0,s++;else return $(a,f.precision=g,d,K=!0);else return f.precision=g,a}a=c}}function Ze(r,e){var t,n,i,o,a,c,l,s,u,h,f,d=1,g=10,p=r,m=p.d,v=p.constructor,b=v.rounding,y=v.precision;if(p.s<0||!m||!m[0]||!p.e&&m[0]==1&&m.length==1)return new v(m&&!m[0]?-1/0:p.s!=1?NaN:m?0:p);if(e==null?(K=!1,u=y):u=e,v.precision=u+=g,t=Bt(m),n=t.charAt(0),Math.abs(o=p.e)<15e14){for(;n<7&&n!=1||n==1&&t.charAt(1)>3;)p=p.times(r),t=Bt(p.d),n=t.charAt(0),d++;o=p.e,n>1?(p=new v("0."+t),o++):p=new v(n+"."+t.slice(1))}else return s=oi(v,u+2,y).times(o+""),p=Ze(new v(n+"."+t.slice(1)),u-g).plus(s),v.precision=y,e==null?$(p,y,b,K=!0):p;for(h=p,l=a=p=dt(p.minus(1),p.plus(1),u,1),f=$(p.times(p),u,1),i=3;;){if(a=$(a.times(f),u,1),s=l.plus(dt(a,new v(i),u,1)),Bt(s.d).slice(0,u)===Bt(l.d).slice(0,u))if(l=l.times(2),o!==0&&(l=l.plus(oi(v,u+2,y).times(o+""))),l=dt(l,new v(d),u,1),e==null)if(Zn(l.d,u-g,b,c))v.precision=u+=g,s=a=p=dt(h.minus(1),h.plus(1),u,1),f=$(p.times(p),u,1),i=c=1;else return $(l,v.precision=y,b,K=!0);else return v.precision=y,l;l=s,i+=2}}function Vu(r){return String(r.s*r.s/0)}function Qi(r,e){var t,n,i;for((t=e.indexOf("."))>-1&&(e=e.replace(".","")),(n=e.search(/e/i))>0?(t<0&&(t=n),t+=+e.slice(n+1),e=e.substring(0,n)):t<0&&(t=e.length),n=0;e.charCodeAt(n)===48;n++);for(i=e.length;e.charCodeAt(i-1)===48;--i);if(e=e.slice(n,i),e){if(i-=n,r.e=t=t-n-1,r.d=[],n=(t+1)%Z,t<0&&(n+=Z),n<i){for(n&&r.d.push(+e.slice(0,n)),i-=Z;n<i;)r.d.push(+e.slice(n,n+=Z));e=e.slice(n),n=Z-e.length}else n-=i;for(;n--;)e+="0";r.d.push(+e),K&&(r.e>r.constructor.maxE?(r.d=null,r.e=NaN):r.e<r.constructor.minE&&(r.e=0,r.d=[0]))}else r.e=0,r.d=[0];return r}function Ud(r,e){var t,n,i,o,a,c,l,s,u;if(e.indexOf("_")>-1){if(e=e.replace(/(\d)_(?=\d)/g,"$1"),Bu.test(e))return Qi(r,e)}else if(e==="Infinity"||e==="NaN")return+e||(r.s=NaN),r.e=NaN,r.d=null,r;if(Rd.test(e))t=16,e=e.toLowerCase();else if(Id.test(e))t=2;else if(Nd.test(e))t=8;else throw Error(Ke+e);for(o=e.search(/p/i),o>0?(l=+e.slice(o+1),e=e.substring(2,o)):e=e.slice(2),o=e.indexOf("."),a=o>=0,n=r.constructor,a&&(e=e.replace(".",""),c=e.length,o=c-o,i=Gu(n,new n(t),o,o*2)),s=ni(e,t,_e),u=s.length-1,o=u;s[o]===0;--o)s.pop();return o<0?new n(r.s*0):(r.e=ai(s,u),r.d=s,K=!1,a&&(r=dt(r,i,c*4)),l&&(r=r.times(Math.abs(l)<54?Pt(2,l):Kn.pow(2,l))),K=!0,r)}function Bd(r,e){var t,n=e.d.length;if(n<3)return e.isZero()?e:Pn(r,2,e,e);t=1.4*Math.sqrt(n),t=t>16?16:t|0,e=e.times(1/ui(5,t)),e=Pn(r,2,e,e);for(var i,o=new r(5),a=new r(16),c=new r(20);t--;)i=e.times(e),e=e.times(o.plus(i.times(a.times(i).minus(c))));return e}function Pn(r,e,t,n,i){var o,a,c,l,s=1,u=r.precision,h=Math.ceil(u/Z);for(K=!1,l=t.times(t),c=new r(n);;){if(a=dt(c.times(l),new r(e++*e++),u,1),c=i?n.plus(a):n.minus(a),n=dt(a.times(l),new r(e++*e++),u,1),a=c.plus(n),a.d[h]!==void 0){for(o=h;a.d[o]===c.d[o]&&o--;);if(o==-1)break}o=c,c=n,n=a,a=o,s++}return K=!0,a.d.length=h+1,a}function ui(r,e){for(var t=r;--e;)t*=r;return t}function Hu(r,e){var t,n=e.s<0,i=ve(r,r.precision,1),o=i.times(.5);if(e=e.abs(),e.lte(o))return Be=n?4:1,e;if(t=e.divToInt(i),t.isZero())Be=n?3:2;else{if(e=e.minus(t.times(i)),e.lte(o))return Be=Iu(t)?n?2:3:n?4:1,e;Be=Iu(t)?n?1:4:n?3:2}return e.minus(i).abs()}function to(r,e,t,n){var i,o,a,c,l,s,u,h,f,d=r.constructor,g=t!==void 0;if(g?(Qt(t,1,Je),n===void 0?n=d.rounding:Qt(n,0,8)):(t=d.precision,n=d.rounding),!r.isFinite())u=Vu(r);else{for(u=Pe(r),a=u.indexOf("."),g?(i=2,e==16?t=t*4-3:e==8&&(t=t*3-2)):i=e,a>=0&&(u=u.replace(".",""),f=new d(1),f.e=u.length-a,f.d=ni(Pe(f),10,i),f.e=f.d.length),h=ni(u,10,i),o=l=h.length;h[--l]==0;)h.pop();if(!h[0])u=g?"0p+0":"0";else{if(a<0?o--:(r=new d(r),r.d=h,r.e=o,r=dt(r,f,t,n,0,i),h=r.d,o=r.e,s=Lu),a=h[t],c=i/2,s=s||h[t+1]!==void 0,s=n<4?(a!==void 0||s)&&(n===0||n===(r.s<0?3:2)):a>c||a===c&&(n===4||s||n===6&&h[t-1]&1||n===(r.s<0?8:7)),h.length=t,s)for(;++h[--t]>i-1;)h[t]=0,t||(++o,h.unshift(1));for(l=h.length;!h[l-1];--l);for(a=0,u="";a<l;a++)u+=$i.charAt(h[a]);if(g){if(l>1)if(e==16||e==8){for(a=e==16?4:3,--l;l%a;l++)u+="0";for(h=ni(u,i,e),l=h.length;!h[l-1];--l);for(a=1,u="1.";a<l;a++)u+=$i.charAt(h[a])}else u=u.charAt(0)+"."+u.slice(1);u=u+(o<0?"p":"p+")+o}else if(o<0){for(;++o;)u="0"+u;u="0."+u}else if(++o>l)for(o-=l;o--;)u+="0";else o<l&&(u=u.slice(0,o)+"."+u.slice(o))}u=(e==16?"0x":e==2?"0b":e==8?"0o":"")+u}return r.s<0?"-"+u:u}function Ru(r,e){if(r.length>e)return r.length=e,!0}function zd(r){return new this(r).abs()}function Gd(r){return new this(r).acos()}function kd(r){return new this(r).acosh()}function Vd(r,e){return new this(r).plus(e)}function Hd(r){return new this(r).asin()}function Wd(r){return new this(r).asinh()}function qd(r){return new this(r).atan()}function Xd(r){return new this(r).atanh()}function jd(r,e){r=new this(r),e=new this(e);var t,n=this.precision,i=this.rounding,o=n+4;return!r.s||!e.s?t=new this(NaN):!r.d&&!e.d?(t=ve(this,o,1).times(e.s>0?.25:.75),t.s=r.s):!e.d||r.isZero()?(t=e.s<0?ve(this,n,i):new this(0),t.s=r.s):!r.d||e.isZero()?(t=ve(this,o,1).times(.5),t.s=r.s):e.s<0?(this.precision=o,this.rounding=1,t=this.atan(dt(r,e,o,1)),e=ve(this,o,1),this.precision=n,this.rounding=i,t=r.s<0?t.minus(e):t.plus(e)):t=this.atan(dt(r,e,o,1)),t}function Yd(r){return new this(r).cbrt()}function $d(r){return $(r=new this(r),r.e+1,2)}function Zd(r,e,t){return new this(r).clamp(e,t)}function Kd(r){if(!r||typeof r!="object")throw Error(si+"Object expected");var e,t,n,i=r.defaults===!0,o=["precision",1,Je,"rounding",0,8,"toExpNeg",-An,0,"toExpPos",0,An,"maxE",0,An,"minE",-An,0,"modulo",0,9];for(e=0;e<o.length;e+=3)if(t=o[e],i&&(this[t]=Zi[t]),(n=r[t])!==void 0)if(Wt(n)===n&&n>=o[e+1]&&n<=o[e+2])this[t]=n;else throw Error(Ke+t+": "+n);if(t="crypto",i&&(this[t]=Zi[t]),(n=r[t])!==void 0)if(n===!0||n===!1||n===0||n===1)if(n)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[t]=!0;else throw Error(Fu);else this[t]=!1;else throw Error(Ke+t+": "+n);return this}function Jd(r){return new this(r).cos()}function Qd(r){return new this(r).cosh()}function Wu(r){var e,t,n;function i(o){var a,c,l,s=this;if(!(s instanceof i))return new i(o);if(s.constructor=i,Nu(o)){s.s=o.s,K?!o.d||o.e>i.maxE?(s.e=NaN,s.d=null):o.e<i.minE?(s.e=0,s.d=[0]):(s.e=o.e,s.d=o.d.slice()):(s.e=o.e,s.d=o.d?o.d.slice():o.d);return}if(l=typeof o,l==="number"){if(o===0){s.s=1/o<0?-1:1,s.e=0,s.d=[0];return}if(o<0?(o=-o,s.s=-1):s.s=1,o===~~o&&o<1e7){for(a=0,c=o;c>=10;c/=10)a++;K?a>i.maxE?(s.e=NaN,s.d=null):a<i.minE?(s.e=0,s.d=[0]):(s.e=a,s.d=[o]):(s.e=a,s.d=[o]);return}else if(o*0!==0){o||(s.s=NaN),s.e=NaN,s.d=null;return}return Qi(s,o.toString())}else if(l!=="string")throw Error(Ke+o);return(c=o.charCodeAt(0))===45?(o=o.slice(1),s.s=-1):(c===43&&(o=o.slice(1)),s.s=1),Bu.test(o)?Qi(s,o):Ud(s,o)}if(i.prototype=F,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.EUCLID=9,i.config=i.set=Kd,i.clone=Wu,i.isDecimal=Nu,i.abs=zd,i.acos=Gd,i.acosh=kd,i.add=Vd,i.asin=Hd,i.asinh=Wd,i.atan=qd,i.atanh=Xd,i.atan2=jd,i.cbrt=Yd,i.ceil=$d,i.clamp=Zd,i.cos=Jd,i.cosh=Qd,i.div=tg,i.exp=eg,i.floor=ng,i.hypot=rg,i.ln=ig,i.log=og,i.log10=ag,i.log2=sg,i.max=ug,i.min=lg,i.mod=cg,i.mul=hg,i.pow=pg,i.random=fg,i.round=dg,i.sign=gg,i.sin=mg,i.sinh=yg,i.sqrt=vg,i.sub=_g,i.sum=xg,i.tan=Eg,i.tanh=bg,i.trunc=Sg,r===void 0&&(r={}),r&&r.defaults!==!0)for(n=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],e=0;e<n.length;)r.hasOwnProperty(t=n[e++])||(r[t]=this[t]);return i.config(r),i}function tg(r,e){return new this(r).div(e)}function eg(r){return new this(r).exp()}function ng(r){return $(r=new this(r),r.e+1,3)}function rg(){var r,e,t=new this(0);for(K=!1,r=0;r<arguments.length;)if(e=new this(arguments[r++]),e.d)t.d&&(t=t.plus(e.times(e)));else{if(e.s)return K=!0,new this(1/0);t=e}return K=!0,t.sqrt()}function Nu(r){return r instanceof Kn||r&&r.toStringTag===Uu||!1}function ig(r){return new this(r).ln()}function og(r,e){return new this(r).log(e)}function sg(r){return new this(r).log(2)}function ag(r){return new this(r).log(10)}function ug(){return ku(this,arguments,"lt")}function lg(){return ku(this,arguments,"gt")}function cg(r,e){return new this(r).mod(e)}function hg(r,e){return new this(r).mul(e)}function pg(r,e){return new this(r).pow(e)}function fg(r){var e,t,n,i,o=0,a=new this(1),c=[];if(r===void 0?r=this.precision:Qt(r,1,Je),n=Math.ceil(r/Z),this.crypto)if(crypto.getRandomValues)for(e=crypto.getRandomValues(new Uint32Array(n));o<n;)i=e[o],i>=429e7?e[o]=crypto.getRandomValues(new Uint32Array(1))[0]:c[o++]=i%1e7;else if(crypto.randomBytes){for(e=crypto.randomBytes(n*=4);o<n;)i=e[o]+(e[o+1]<<8)+(e[o+2]<<16)+((e[o+3]&127)<<24),i>=214e7?crypto.randomBytes(4).copy(e,o):(c.push(i%1e7),o+=4);o=n/4}else throw Error(Fu);else for(;o<n;)c[o++]=Math.random()*1e7|0;for(n=c[--o],r%=Z,n&&r&&(i=Pt(10,Z-r),c[o]=(n/i|0)*i);c[o]===0;o--)c.pop();if(o<0)t=0,c=[0];else{for(t=-1;c[0]===0;t-=Z)c.shift();for(n=1,i=c[0];i>=10;i/=10)n++;n<Z&&(t-=Z-n)}return a.e=t,a.d=c,a}function dg(r){return $(r=new this(r),r.e+1,this.rounding)}function gg(r){return r=new this(r),r.d?r.d[0]?r.s:0*r.s:r.s||NaN}function mg(r){return new this(r).sin()}function yg(r){return new this(r).sinh()}function vg(r){return new this(r).sqrt()}function _g(r,e){return new this(r).sub(e)}function xg(){var r=0,e=arguments,t=new this(e[r]);for(K=!1;t.s&&++r<e.length;)t=t.plus(e[r]);return K=!0,$(t,this.precision,this.rounding)}function Eg(r){return new this(r).tan()}function bg(r){return new this(r).tanh()}function Sg(r){return $(r=new this(r),r.e+1,1)}F[Symbol.for("nodejs.util.inspect.custom")]=F.toString;F[Symbol.toStringTag]="Decimal";var Kn=F.constructor=Wu(Zi);ri=new Kn(ri);ii=new Kn(ii);var Jn=Kn;var Mg="BigNumber",wg=["?on","config"],eo=N(Mg,wg,r=>{var{on:e,config:t}=r,n=Jn.clone({precision:t.precision,modulo:Jn.EUCLID});return n.prototype=Object.create(n.prototype),n.prototype.type="BigNumber",n.prototype.isBigNumber=!0,n.prototype.toJSON=function(){return{mathjs:"BigNumber",value:this.toString()}},n.fromJSON=function(i){return new n(i.value)},e&&e("config",function(i,o){i.precision!==o.precision&&n.config({precision:i.precision})}),n},{isClass:!0});var Nt=pn(Xu(),1);var Tg="Complex",Cg=[],ro=N(Tg,Cg,()=>(Object.defineProperty(Nt.default,"name",{value:"Complex"}),Nt.default.prototype.constructor=Nt.default,Nt.default.prototype.type="Complex",Nt.default.prototype.isComplex=!0,Nt.default.prototype.toJSON=function(){return{mathjs:"Complex",re:this.re,im:this.im}},Nt.default.prototype.toPolar=function(){return{r:this.abs(),phi:this.arg()}},Nt.default.prototype.format=function(r){var e="",t=this.im,n=this.re,i=$n(this.re,r),o=$n(this.im,r),a=nt(r)?r:r?r.precision:null;if(a!==null){var c=Math.pow(10,-a);Math.abs(n/t)<c&&(n=0),Math.abs(t/n)<c&&(t=0)}return t===0?e=i:n===0?t===1?e="i":t===-1?e="-i":e=o+"i":t<0?t===-1?e=i+" - i":e=i+" - "+o.substring(1)+"i":t===1?e=i+" + i":e=i+" + "+o+"i",e},Nt.default.fromPolar=function(r){switch(arguments.length){case 1:{var e=arguments[0];if(typeof e=="object")return(0,Nt.default)(e);throw new TypeError("Input has to be an object with r and phi keys.")}case 2:{var t=arguments[0],n=arguments[1];if(nt(t)){if(Zr(n)&&n.hasBase("ANGLE")&&(n=n.toNumber("rad")),nt(n))return new Nt.default({r:t,phi:n});throw new TypeError("Phi is not a number nor an angle unit.")}else throw new TypeError("Radius r is not a number.")}default:throw new SyntaxError("Wrong number of arguments in function fromPolar")}},Nt.default.prototype.valueOf=Nt.default.prototype.toString,Nt.default.fromJSON=function(r){return new Nt.default(r)},Nt.default.compare=function(r,e){return r.re>e.re?1:r.re<e.re?-1:r.im>e.im?1:r.im<e.im?-1:0},Nt.default),{isClass:!0});var Ag=2e3,X={s:1,n:0,d:1};function ze(r,e){if(isNaN(r=parseInt(r,10)))throw li();return r*e}function bt(r,e){if(e===0)throw io();var t=Object.create(Lt.prototype);t.s=r<0?-1:1,r=r<0?-r:r;var n=Dn(r,e);return t.n=r/n,t.d=e/n,t}function ju(r){for(var e={},t=r,n=2,i=4;i<=t;){for(;t%n===0;)t/=n,e[n]=(e[n]||0)+1;i+=1+2*n++}return t!==r?t>1&&(e[t]=(e[t]||0)+1):e[r]=(e[r]||0)+1,e}var oe=function(r,e){var t=0,n=1,i=1,o=0,a=0,c=0,l=1,s=1,u=0,h=1,f=1,d=1,g=1e7,p;if(r!=null)if(e!==void 0){if(t=r,n=e,i=t*n,t%1!==0||n%1!==0)throw Rg()}else switch(typeof r){case"object":{if("d"in r&&"n"in r)t=r.n,n=r.d,"s"in r&&(t*=r.s);else if(0 in r)t=r[0],1 in r&&(n=r[1]);else throw li();i=t*n;break}case"number":{if(r<0&&(i=r,r=-r),r%1===0)t=r;else if(r>0){for(r>=1&&(s=Math.pow(10,Math.floor(1+Math.log(r)/Math.LN10)),r/=s);h<=g&&d<=g;)if(p=(u+f)/(h+d),r===p){h+d<=g?(t=u+f,n=h+d):d>h?(t=f,n=d):(t=u,n=h);break}else r>p?(u+=f,h+=d):(f+=u,d+=h),h>g?(t=f,n=d):(t=u,n=h);t*=s}else(isNaN(r)||isNaN(e))&&(n=t=NaN);break}case"string":{if(h=r.match(/\d+|./g),h===null)throw li();if(h[u]==="-"?(i=-1,u++):h[u]==="+"&&u++,h.length===u+1?a=ze(h[u++],i):h[u+1]==="."||h[u]==="."?(h[u]!=="."&&(o=ze(h[u++],i)),u++,(u+1===h.length||h[u+1]==="("&&h[u+3]===")"||h[u+1]==="'"&&h[u+3]==="'")&&(a=ze(h[u],i),l=Math.pow(10,h[u].length),u++),(h[u]==="("&&h[u+2]===")"||h[u]==="'"&&h[u+2]==="'")&&(c=ze(h[u+1],i),s=Math.pow(10,h[u+1].length)-1,u+=3)):h[u+1]==="/"||h[u+1]===":"?(a=ze(h[u],i),l=ze(h[u+2],1),u+=3):h[u+3]==="/"&&h[u+1]===" "&&(o=ze(h[u],i),a=ze(h[u+2],i),l=ze(h[u+4],1),u+=5),h.length<=u){n=l*s,i=t=c+n*o+s*a;break}}default:throw li()}if(n===0)throw io();X.s=i<0?-1:1,X.n=Math.abs(t),X.d=Math.abs(n)};function Pg(r,e,t){for(var n=1;e>0;r=r*r%t,e>>=1)e&1&&(n=n*r%t);return n}function Dg(r,e){for(;e%2===0;e/=2);for(;e%5===0;e/=5);if(e===1)return 0;for(var t=10%e,n=1;t!==1;n++)if(t=t*10%e,n>Ag)return 0;return n}function Ig(r,e,t){for(var n=1,i=Pg(10,t,e),o=0;o<300;o++){if(n===i)return o;n=n*10%e,i=i*10%e}return 0}function Dn(r,e){if(!r)return e;if(!e)return r;for(;;){if(r%=e,!r)return e;if(e%=r,!e)return r}}function Lt(r,e){if(oe(r,e),this instanceof Lt)r=Dn(X.d,X.n),this.s=X.s,this.n=X.n/r,this.d=X.d/r;else return bt(X.s*X.n,X.d)}var io=function(){return new Error("Division by Zero")},li=function(){return new Error("Invalid argument")},Rg=function(){return new Error("Parameters must be integer")};Lt.prototype={s:1,n:0,d:1,abs:function(){return bt(this.n,this.d)},neg:function(){return bt(-this.s*this.n,this.d)},add:function(r,e){return oe(r,e),bt(this.s*this.n*X.d+X.s*this.d*X.n,this.d*X.d)},sub:function(r,e){return oe(r,e),bt(this.s*this.n*X.d-X.s*this.d*X.n,this.d*X.d)},mul:function(r,e){return oe(r,e),bt(this.s*X.s*this.n*X.n,this.d*X.d)},div:function(r,e){return oe(r,e),bt(this.s*X.s*this.n*X.d,this.d*X.n)},clone:function(){return bt(this.s*this.n,this.d)},mod:function(r,e){if(isNaN(this.n)||isNaN(this.d))return new Lt(NaN);if(r===void 0)return bt(this.s*this.n%this.d,1);if(oe(r,e),X.n===0&&this.d===0)throw io();return bt(this.s*(X.d*this.n)%(X.n*this.d),X.d*this.d)},gcd:function(r,e){return oe(r,e),bt(Dn(X.n,this.n)*Dn(X.d,this.d),X.d*this.d)},lcm:function(r,e){return oe(r,e),X.n===0&&this.n===0?bt(0,1):bt(X.n*this.n,Dn(X.n,this.n)*Dn(X.d,this.d))},ceil:function(r){return r=Math.pow(10,r||0),isNaN(this.n)||isNaN(this.d)?new Lt(NaN):bt(Math.ceil(r*this.s*this.n/this.d),r)},floor:function(r){return r=Math.pow(10,r||0),isNaN(this.n)||isNaN(this.d)?new Lt(NaN):bt(Math.floor(r*this.s*this.n/this.d),r)},round:function(r){return r=Math.pow(10,r||0),isNaN(this.n)||isNaN(this.d)?new Lt(NaN):bt(Math.round(r*this.s*this.n/this.d),r)},roundTo:function(r,e){return oe(r,e),bt(this.s*Math.round(this.n*X.d/(this.d*X.n))*X.n,X.d)},inverse:function(){return bt(this.s*this.d,this.n)},pow:function(r,e){if(oe(r,e),X.d===1)return X.s<0?bt(Math.pow(this.s*this.d,X.n),Math.pow(this.n,X.n)):bt(Math.pow(this.s*this.n,X.n),Math.pow(this.d,X.n));if(this.s<0)return null;var t=ju(this.n),n=ju(this.d),i=1,o=1;for(var a in t)if(a!=="1"){if(a==="0"){i=0;break}if(t[a]*=X.n,t[a]%X.d===0)t[a]/=X.d;else return null;i*=Math.pow(a,t[a])}for(var a in n)if(a!=="1"){if(n[a]*=X.n,n[a]%X.d===0)n[a]/=X.d;else return null;o*=Math.pow(a,n[a])}return X.s<0?bt(o,i):bt(i,o)},equals:function(r,e){return oe(r,e),this.s*this.n*X.d===X.s*X.n*this.d},compare:function(r,e){oe(r,e);var t=this.s*this.n*X.d-X.s*X.n*this.d;return(0<t)-(t<0)},simplify:function(r){if(isNaN(this.n)||isNaN(this.d))return this;r=r||.001;for(var e=this.abs(),t=e.toContinued(),n=1;n<t.length;n++){for(var i=bt(t[n-1],1),o=n-2;o>=0;o--)i=i.inverse().add(t[o]);if(Math.abs(i.sub(e).valueOf())<r)return i.mul(this.s)}return this},divisible:function(r,e){return oe(r,e),!(!(X.n*this.d)||this.n*X.d%(X.n*this.d))},valueOf:function(){return this.s*this.n/this.d},toFraction:function(r){var e,t="",n=this.n,i=this.d;return this.s<0&&(t+="-"),i===1?t+=n:(r&&(e=Math.floor(n/i))>0&&(t+=e,t+=" ",n%=i),t+=n,t+="/",t+=i),t},toLatex:function(r){var e,t="",n=this.n,i=this.d;return this.s<0&&(t+="-"),i===1?t+=n:(r&&(e=Math.floor(n/i))>0&&(t+=e,n%=i),t+="\\frac{",t+=n,t+="}{",t+=i,t+="}"),t},toContinued:function(){var r,e=this.n,t=this.d,n=[];if(isNaN(e)||isNaN(t))return n;do n.push(Math.floor(e/t)),r=e%t,e=t,t=r;while(e!==1);return n},toString:function(r){var e=this.n,t=this.d;if(isNaN(e)||isNaN(t))return"NaN";r=r||15;var n=Dg(e,t),i=Ig(e,t,n),o=this.s<0?"-":"";if(o+=e/t|0,e%=t,e*=10,e&&(o+="."),n){for(var a=i;a--;)o+=e/t|0,e%=t,e*=10;o+="(";for(var a=n;a--;)o+=e/t|0,e%=t,e*=10;o+=")"}else for(var a=r;e&&a--;)o+=e/t|0,e%=t,e*=10;return o}};var Ng="Fraction",Lg=[],oo=N(Ng,Lg,()=>(Object.defineProperty(Lt,"name",{value:"Fraction"}),Lt.prototype.constructor=Lt,Lt.prototype.type="Fraction",Lt.prototype.isFraction=!0,Lt.prototype.toJSON=function(){return{mathjs:"Fraction",n:this.s*this.n,d:this.d}},Lt.fromJSON=function(r){return new Lt(r)},Lt),{isClass:!0});var Og="Matrix",Fg=[],so=N(Og,Fg,()=>{function r(){if(!(this instanceof r))throw new SyntaxError("Constructor must be called with the new operator")}return r.prototype.type="Matrix",r.prototype.isMatrix=!0,r.prototype.storage=function(){throw new Error("Cannot invoke storage on a Matrix interface")},r.prototype.datatype=function(){throw new Error("Cannot invoke datatype on a Matrix interface")},r.prototype.create=function(e,t){throw new Error("Cannot invoke create on a Matrix interface")},r.prototype.subset=function(e,t,n){throw new Error("Cannot invoke subset on a Matrix interface")},r.prototype.get=function(e){throw new Error("Cannot invoke get on a Matrix interface")},r.prototype.set=function(e,t,n){throw new Error("Cannot invoke set on a Matrix interface")},r.prototype.resize=function(e,t){throw new Error("Cannot invoke resize on a Matrix interface")},r.prototype.reshape=function(e,t){throw new Error("Cannot invoke reshape on a Matrix interface")},r.prototype.clone=function(){throw new Error("Cannot invoke clone on a Matrix interface")},r.prototype.size=function(){throw new Error("Cannot invoke size on a Matrix interface")},r.prototype.map=function(e,t){throw new Error("Cannot invoke map on a Matrix interface")},r.prototype.forEach=function(e){throw new Error("Cannot invoke forEach on a Matrix interface")},r.prototype[Symbol.iterator]=function(){throw new Error("Cannot iterate a Matrix interface")},r.prototype.toArray=function(){throw new Error("Cannot invoke toArray on a Matrix interface")},r.prototype.valueOf=function(){throw new Error("Cannot invoke valueOf on a Matrix interface")},r.prototype.format=function(e){throw new Error("Cannot invoke format on a Matrix interface")},r.prototype.toString=function(){throw new Error("Cannot invoke toString on a Matrix interface")},r},{isClass:!0});function ao(r,e,t){var n=r.constructor,i=new n(2),o="";if(t){if(t<1)throw new Error("size must be in greater than 0");if(!tt(t))throw new Error("size must be an integer");if(r.greaterThan(i.pow(t-1).sub(1))||r.lessThan(i.pow(t-1).mul(-1)))throw new Error("Value must be in range [-2^".concat(t-1,", 2^").concat(t-1,"-1]"));if(!r.isInteger())throw new Error("Value must be an integer");r.lessThan(0)&&(r=r.add(i.pow(t))),o="i".concat(t)}switch(e){case 2:return"".concat(r.toBinary()).concat(o);case 8:return"".concat(r.toOctal()).concat(o);case 16:return"".concat(r.toHexadecimal()).concat(o);default:throw new Error("Base ".concat(e," not supported "))}}function Zu(r,e){if(typeof e=="function")return e(r);if(!r.isFinite())return r.isNaN()?"NaN":r.gt(0)?"Infinity":"-Infinity";var{notation:t,precision:n,wordSize:i}=qi(e);switch(t){case"fixed":return Bg(r,n);case"exponential":return Yu(r,n);case"engineering":return Ug(r,n);case"bin":return ao(r,2,i);case"oct":return ao(r,8,i);case"hex":return ao(r,16,i);case"auto":{var o=$u(e?.lowerExp,-3),a=$u(e?.upperExp,5);if(r.isZero())return"0";var c,l=r.toSignificantDigits(n),s=l.e;return s>=o&&s<a?c=l.toFixed():c=Yu(r,n),c.replace(/((\.\d*?)(0+))($|e)/,function(){var u=arguments[2],h=arguments[4];return u!=="."?u+h:h})}default:throw new Error('Unknown notation "'+t+'". Choose "auto", "exponential", "fixed", "bin", "oct", or "hex.')}}function Ug(r,e){var t=r.e,n=t%3===0?t:t<0?t-3-t%3:t-t%3,i=r.mul(Math.pow(10,-n)),o=i.toPrecision(e);if(o.includes("e")){var a=r.constructor;o=new a(o).toFixed()}return o+"e"+(t>=0?"+":"")+n.toString()}function Yu(r,e){return e!==void 0?r.toExponential(e-1):r.toExponential()}function Bg(r,e){return r.toFixed(e)}function $u(r,e){return nt(r)?r:it(r)?r.toNumber():e}function vt(r,e){var t=zg(r,e);return e&&typeof e=="object"&&"truncate"in e&&t.length>e.truncate?t.substring(0,e.truncate-3)+"...":t}function zg(r,e){if(typeof r=="number")return $n(r,e);if(it(r))return Zu(r,e);if(Gg(r))return!e||e.fraction!=="decimal"?r.s*r.n+"/"+r.d:r.toString();if(Array.isArray(r))return Qu(r,e);if(jt(r))return Ku(r);if(typeof r=="function")return r.syntax?String(r.syntax):"function";if(r&&typeof r=="object"){if(typeof r.format=="function")return r.format(e);if(r&&r.toString(e)!=={}.toString())return r.toString(e);var t=Object.keys(r).map(n=>Ku(n)+": "+vt(r[n],e));return"{"+t.join(", ")+"}"}return String(r)}function Ku(r){for(var e=String(r),t="",n=0;n<e.length;){var i=e.charAt(n);t+=i in Ju?Ju[i]:i,n++}return'"'+t+'"'}var Ju={'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t"};function Qu(r,e){if(Array.isArray(r)){for(var t="[",n=r.length,i=0;i<n;i++)i!==0&&(t+=", "),t+=Qu(r[i],e);return t+="]",t}else return vt(r,e)}function Gg(r){return r&&typeof r=="object"&&typeof r.s=="number"&&typeof r.n=="number"&&typeof r.d=="number"||!1}function Q(r,e,t){if(!(this instanceof Q))throw new SyntaxError("Constructor must be called with the new operator");this.actual=r,this.expected=e,this.relation=t,this.message="Dimension mismatch ("+(Array.isArray(r)?"["+r.join(", ")+"]":r)+" "+(this.relation||"!=")+" "+(Array.isArray(e)?"["+e.join(", ")+"]":e)+")",this.stack=new Error().stack}Q.prototype=new RangeError;Q.prototype.constructor=RangeError;Q.prototype.name="DimensionError";Q.prototype.isDimensionError=!0;function xe(r,e,t){if(!(this instanceof xe))throw new SyntaxError("Constructor must be called with the new operator");this.index=r,arguments.length<3?(this.min=0,this.max=e):(this.min=e,this.max=t),this.min!==void 0&&this.index<this.min?this.message="Index out of range ("+this.index+" < "+this.min+")":this.max!==void 0&&this.index>=this.max?this.message="Index out of range ("+this.index+" > "+(this.max-1)+")":this.message="Index out of range ("+this.index+")",this.stack=new Error().stack}xe.prototype=new RangeError;xe.prototype.constructor=RangeError;xe.prototype.name="IndexError";xe.prototype.isIndexError=!0;function st(r){for(var e=[];Array.isArray(r);)e.push(r.length),r=r[0];return e}function tl(r,e,t){var n,i=r.length;if(i!==e[t])throw new Q(i,e[t]);if(t<e.length-1){var o=t+1;for(n=0;n<i;n++){var a=r[n];if(!Array.isArray(a))throw new Q(e.length-1,e.length,"<");tl(r[n],e,o)}}else for(n=0;n<i;n++)if(Array.isArray(r[n]))throw new Q(e.length+1,e.length,">")}function lo(r,e){var t=e.length===0;if(t){if(Array.isArray(r))throw new Q(r.length,0)}else tl(r,e,0)}function Et(r,e){if(r!==void 0){if(!nt(r)||!tt(r))throw new TypeError("Index must be an integer (value: "+r+")");if(r<0||typeof e=="number"&&r>=e)throw new xe(r,e)}}function un(r,e,t){if(!Array.isArray(e))throw new TypeError("Array expected");if(e.length===0)throw new Error("Resizing to scalar is not supported");e.forEach(function(i){if(!nt(i)||!tt(i)||i<0)throw new TypeError("Invalid size, must contain positive integers (size: "+vt(e)+")")}),(nt(r)||it(r))&&(r=[r]);var n=t!==void 0?t:0;return uo(r,e,0,n),r}function uo(r,e,t,n){var i,o,a=r.length,c=e[t],l=Math.min(a,c);if(r.length=c,t<e.length-1){var s=t+1;for(i=0;i<l;i++)o=r[i],Array.isArray(o)||(o=[o],r[i]=o),uo(o,e,s,n);for(i=l;i<c;i++)o=[],r[i]=o,uo(o,e,s,n)}else{for(i=0;i<l;i++)for(;Array.isArray(r[i]);)r[i]=r[i][0];for(i=l;i<c;i++)r[i]=n}}function Qn(r,e){var t=Vg(r),n=t.length;if(!Array.isArray(r)||!Array.isArray(e))throw new TypeError("Array expected");if(e.length===0)throw new Q(0,n,"!=");e=tr(e,n);var i=el(e);if(n!==i)throw new Q(i,n,"!=");try{return kg(t,e)}catch(o){throw o instanceof Q?new Q(i,n,"!="):o}}function tr(r,e){var t=el(r),n=r.slice(),i=-1,o=r.indexOf(i),a=r.indexOf(i,o+1)>=0;if(a)throw new Error("More than one wildcard in sizes");var c=o>=0,l=e%t===0;if(c)if(l)n[o]=-e/t;else throw new Error("Could not replace wildcard, since "+e+" is no multiple of "+-t);return n}function el(r){return r.reduce((e,t)=>e*t,1)}function kg(r,e){for(var t=r,n,i=e.length-1;i>0;i--){var o=e[i];n=[];for(var a=t.length/o,c=0;c<a;c++)n.push(t.slice(c*o,(c+1)*o));t=n}return t}function ci(r,e,t,n){var i=n||st(r);if(t)for(var o=0;o<t;o++)r=[r],i.unshift(1);for(r=nl(r,e,0);i.length<e;)i.push(1);return r}function nl(r,e,t){var n,i;if(Array.isArray(r)){var o=t+1;for(n=0,i=r.length;n<i;n++)r[n]=nl(r[n],e,o)}else for(var a=t;a<e;a++)r=[r];return r}function Vg(r){if(!Array.isArray(r))return r;var e=[];return r.forEach(function t(n){Array.isArray(n)?n.forEach(t):e.push(n)}),e}function In(r,e){for(var t,n=0,i=0;i<r.length;i++){var o=r[i],a=Array.isArray(o);if(i===0&&a&&(n=o.length),a&&o.length!==n)return;var c=a?In(o,e):e(o);if(t===void 0)t=c;else if(t!==c)return"mixed"}return t}function rl(r,e,t,n){if(n<t){if(r.length!==e.length)throw new Q(r.length,e.length);for(var i=[],o=0;o<r.length;o++)i[o]=rl(r[o],e[o],t,n+1);return i}else return r.concat(e)}function co(){var r=Array.prototype.slice.call(arguments,0,-1),e=Array.prototype.slice.call(arguments,-1);if(r.length===1)return r[0];if(r.length>1)return r.slice(1).reduce(function(t,n){return rl(t,n,e,0)},r[0]);throw new Error("Wrong number of arguments in function concat")}function ho(){for(var r=arguments.length,e=new Array(r),t=0;t<r;t++)e[t]=arguments[t];for(var n=e.map(f=>f.length),i=Math.max(...n),o=new Array(i).fill(null),a=0;a<e.length;a++)for(var c=e[a],l=n[a],s=0;s<l;s++){var u=i-l+s;c[s]>o[u]&&(o[u]=c[s])}for(var h=0;h<e.length;h++)il(e[h],o);return o}function il(r,e){for(var t=e.length,n=r.length,i=0;i<n;i++){var o=t-n+i;if(r[i]<e[o]&&r[i]>1||r[i]>e[o])throw new Error("shape missmatch: missmatch is found in arg with shape (".concat(r,") not possible to broadcast dimension ").concat(n," with size ").concat(r[i]," to size ").concat(e[o]))}}function er(r,e){var t=st(r);if(ce(t,e))return r;il(t,e);var n=ho(t,e),i=n.length,o=[...Array(i-t.length).fill(1),...t],a=Wg(r);t.length<i&&(a=Qn(a,o),t=st(a));for(var c=0;c<i;c++)t[c]<n[c]&&(a=Hg(a,n[c],c),t=st(a));return a}function Hg(r,e,t){return co(...Array(e).fill(r),t)}function ol(r,e){if(!Array.isArray(r))throw new Error("Array expected");var t=st(r);if(e.length!==t.length)throw new Q(e.length,t.length);for(var n=0;n<e.length;n++)Et(e[n],t[n]);return e.reduce((i,o)=>i[o],r)}function Wg(r){return bn([],r)}var nr=pn(Hi(),1);function hi(r,e,t,n,i){if(nr.default.isTypedFunction(r)){var o=[e,t,n],a=nr.default.resolve(r,o);if(a)return h(a.implementation,o);var c=[e,t],l=nr.default.resolve(r,c);if(l)return h(l.implementation,c);var s=[e],u=nr.default.resolve(r,s);return u?h(u.implementation,s):h(r,o)}else return r(e,t,n);function h(f,d){try{return f.apply(f,d)}catch(m){var g;if(m instanceof TypeError&&((g=m.data)===null||g===void 0?void 0:g.category)==="wrongType"){var p=[];throw p.push("value: ".concat(Ut(e))),d.length>=2&&p.push("index: ".concat(Ut(t))),d.length>=3&&p.push("array: ".concat(Ut(n))),new TypeError("Function ".concat(i," cannot apply callback arguments ")+"".concat(r.name,"(").concat(p.join(", "),") at index ").concat(JSON.stringify(t)))}else throw new TypeError("Function ".concat(i," cannot apply callback arguments ")+"to function ".concat(r.name,": ").concat(m.message))}}}var qg="DenseMatrix",Xg=["Matrix"],po=N(qg,Xg,r=>{var{Matrix:e}=r;function t(u,h){if(!(this instanceof t))throw new SyntaxError("Constructor must be called with the new operator");if(h&&!jt(h))throw new Error("Invalid datatype: "+h);if(ot(u))u.type==="DenseMatrix"?(this._data=ft(u._data),this._size=ft(u._size),this._datatype=h||u._datatype):(this._data=u.toArray(),this._size=u.size(),this._datatype=h||u._datatype);else if(u&&yt(u.data)&&yt(u.size))this._data=u.data,this._size=u.size,lo(this._data,this._size),this._datatype=h||u.datatype;else if(yt(u))this._data=s(u),this._size=st(this._data),lo(this._data,this._size),this._datatype=h;else{if(u)throw new TypeError("Unsupported type of data ("+Ut(u)+")");this._data=[],this._size=[0],this._datatype=h}}t.prototype=new e,t.prototype.createDenseMatrix=function(u,h){return new t(u,h)},Object.defineProperty(t,"name",{value:"DenseMatrix"}),t.prototype.constructor=t,t.prototype.type="DenseMatrix",t.prototype.isDenseMatrix=!0,t.prototype.getDataType=function(){return In(this._data,Ut)},t.prototype.storage=function(){return"dense"},t.prototype.datatype=function(){return this._datatype},t.prototype.create=function(u,h){return new t(u,h)},t.prototype.subset=function(u,h,f){switch(arguments.length){case 1:return n(this,u);case 2:case 3:return o(this,u,h,f);default:throw new SyntaxError("Wrong number of arguments")}},t.prototype.get=function(u){return ol(this._data,u)},t.prototype.set=function(u,h,f){if(!yt(u))throw new TypeError("Array expected");if(u.length<this._size.length)throw new Q(u.length,this._size.length,"<");var d,g,p,m=u.map(function(b){return b+1});l(this,m,f);var v=this._data;for(d=0,g=u.length-1;d<g;d++)p=u[d],Et(p,v.length),v=v[p];return p=u[u.length-1],Et(p,v.length),v[p]=h,this};function n(u,h){if(!Mn(h))throw new TypeError("Invalid index");var f=h.isScalar();if(f)return u.get(h.min());var d=h.size();if(d.length!==u._size.length)throw new Q(d.length,u._size.length);for(var g=h.min(),p=h.max(),m=0,v=u._size.length;m<v;m++)Et(g[m],u._size[m]),Et(p[m],u._size[m]);return new t(i(u._data,h,d.length,0),u._datatype)}function i(u,h,f,d){var g=d===f-1,p=h.dimension(d);return g?p.map(function(m){return Et(m,u.length),u[m]}).valueOf():p.map(function(m){Et(m,u.length);var v=u[m];return i(v,h,f,d+1)}).valueOf()}function o(u,h,f,d){if(!h||h.isIndex!==!0)throw new TypeError("Invalid index");var g=h.size(),p=h.isScalar(),m;if(ot(f)?(m=f.size(),f=f.valueOf()):m=st(f),p){if(m.length!==0)throw new TypeError("Scalar expected");u.set(h.min(),f,d)}else{if(!ce(m,g))try{m.length===0?f=er([f],g):f=er(f,g),m=st(f)}catch{}if(g.length<u._size.length)throw new Q(g.length,u._size.length,"<");if(m.length<g.length){for(var v=0,b=0;g[v]===1&&m[v]===1;)v++;for(;g[v]===1;)b++,v++;f=ci(f,g.length,b,m)}if(!ce(g,m))throw new Q(g,m,">");var y=h.max().map(function(_){return _+1});l(u,y,d);var S=g.length,x=0;a(u._data,h,f,S,x)}return u}function a(u,h,f,d,g){var p=g===d-1,m=h.dimension(g);p?m.forEach(function(v,b){Et(v),u[v]=f[b[0]]}):m.forEach(function(v,b){Et(v),a(u[v],h,f[b[0]],d,g+1)})}t.prototype.resize=function(u,h,f){if(!Ue(u))throw new TypeError("Array or Matrix expected");var d=u.valueOf().map(p=>Array.isArray(p)&&p.length===1?p[0]:p),g=f?this.clone():this;return c(g,d,h)};function c(u,h,f){if(h.length===0){for(var d=u._data;yt(d);)d=d[0];return d}return u._size=h.slice(0),u._data=un(u._data,u._size,f),u}t.prototype.reshape=function(u,h){var f=h?this.clone():this;f._data=Qn(f._data,u);var d=f._size.reduce((g,p)=>g*p);return f._size=tr(u,d),f};function l(u,h,f){for(var d=u._size.slice(0),g=!1;d.length<h.length;)d.push(0),g=!0;for(var p=0,m=h.length;p<m;p++)h[p]>d[p]&&(d[p]=h[p],g=!0);g&&c(u,d,f)}t.prototype.clone=function(){var u=new t({data:ft(this._data),size:ft(this._size),datatype:this._datatype});return u},t.prototype.size=function(){return this._size.slice(0)},t.prototype.map=function(u){var h=this,f=function(m,v){return yt(m)?m.map(function(b,y){return f(b,v.concat(y))}):hi(u,m,v,h,"map")},d=f(this._data,[]),g=this._datatype!==void 0?In(d,Ut):void 0;return new t(d,g)},t.prototype.forEach=function(u){var h=this,f=function(g,p){yt(g)?g.forEach(function(m,v){f(m,p.concat(v))}):u(g,p,h)};f(this._data,[])},t.prototype[Symbol.iterator]=function*(){var u=function*(f,d){if(yt(f))for(var g=0;g<f.length;g++)yield*u(f[g],d.concat(g));else yield{value:f,index:d}};yield*u(this._data,[])},t.prototype.rows=function(){var u=[],h=this.size();if(h.length!==2)throw new TypeError("Rows can only be returned for a 2D matrix.");var f=this._data;for(var d of f)u.push(new t([d],this._datatype));return u},t.prototype.columns=function(){var u=this,h=[],f=this.size();if(f.length!==2)throw new TypeError("Rows can only be returned for a 2D matrix.");for(var d=this._data,g=function(v){var b=d.map(y=>[y[v]]);h.push(new t(b,u._datatype))},p=0;p<f[1];p++)g(p);return h},t.prototype.toArray=function(){return ft(this._data)},t.prototype.valueOf=function(){return this._data},t.prototype.format=function(u){return vt(this._data,u)},t.prototype.toString=function(){return vt(this._data)},t.prototype.toJSON=function(){return{mathjs:"DenseMatrix",data:this._data,size:this._size,datatype:this._datatype}},t.prototype.diagonal=function(u){if(u){if(it(u)&&(u=u.toNumber()),!nt(u)||!tt(u))throw new TypeError("The parameter k must be an integer number")}else u=0;for(var h=u>0?u:0,f=u<0?-u:0,d=this._size[0],g=this._size[1],p=Math.min(d-f,g-h),m=[],v=0;v<p;v++)m[v]=this._data[v+f][v+h];return new t({data:m,size:[p],datatype:this._datatype})},t.diagonal=function(u,h,f,d){if(!yt(u))throw new TypeError("Array expected, size parameter");if(u.length!==2)throw new Error("Only two dimensions matrix are supported");if(u=u.map(function(M){if(it(M)&&(M=M.toNumber()),!nt(M)||!tt(M)||M<1)throw new Error("Size values must be positive integers");return M}),f){if(it(f)&&(f=f.toNumber()),!nt(f)||!tt(f))throw new TypeError("The parameter k must be an integer number")}else f=0;var g=f>0?f:0,p=f<0?-f:0,m=u[0],v=u[1],b=Math.min(m-p,v-g),y;if(yt(h)){if(h.length!==b)throw new Error("Invalid value array length");y=function(w){return h[w]}}else if(ot(h)){var S=h.size();if(S.length!==1||S[0]!==b)throw new Error("Invalid matrix length");y=function(w){return h.get([w])}}else y=function(){return h};d||(d=it(y(0))?y(0).mul(0):0);var x=[];if(u.length>0){x=un(x,u,d);for(var _=0;_<b;_++)x[_+p][_+g]=y(_)}return new t({data:x,size:[m,v]})},t.fromJSON=function(u){return new t(u)},t.prototype.swapRows=function(u,h){if(!nt(u)||!tt(u)||!nt(h)||!tt(h))throw new Error("Row index must be positive integers");if(this._size.length!==2)throw new Error("Only two dimensional matrix is supported");return Et(u,this._size[0]),Et(h,this._size[0]),t._swapRows(u,h,this._data),this},t._swapRows=function(u,h,f){var d=f[u];f[u]=f[h],f[h]=d};function s(u){return ot(u)?s(u.valueOf()):yt(u)?u.map(s):u}return t},{isClass:!0});function sl(r){var e=r.length,t=r[0].length,n,i,o=[];for(i=0;i<t;i++){var a=[];for(n=0;n<e;n++)a.push(r[n][i]);o.push(a)}return o}function al(r){for(var e=0;e<r.length;e++)if(Ue(r[e]))return!0;return!1}function fo(r,e){ot(r)&&(r=r.valueOf());for(var t=0,n=r.length;t<n;t++){var i=r[t];Array.isArray(i)?fo(i,e):e(i)}}function _t(r,e,t){return r&&typeof r.map=="function"?r.map(function(n){return _t(n,e,t)}):e(r)}function ul(r,e,t){var n=Array.isArray(r)?st(r):r.size();if(e<0||e>=n.length)throw new xe(e,n.length);return ot(r)?r.create(pi(r.valueOf(),e,t),r.datatype()):pi(r,e,t)}function pi(r,e,t){var n,i,o,a;if(e<=0)if(Array.isArray(r[0])){for(a=sl(r),i=[],n=0;n<a.length;n++)i[n]=pi(a[n],e-1,t);return i}else{for(o=r[0],n=1;n<r.length;n++)o=t(o,r[n]);return o}else{for(i=[],n=0;n<r.length;n++)i[n]=pi(r[n],e-1,t);return i}}var ll="isInteger",jg=["typed"],go=N(ll,jg,r=>{var{typed:e}=r;return e(ll,{number:tt,BigNumber:function(n){return n.isInt()},bigint:function(n){return!0},Fraction:function(n){return n.d===1&&isFinite(n.n)},"Array | Matrix":e.referToSelf(t=>n=>_t(n,t))})});var te="number",Ge="number, number";function mo(r){return Math.abs(r)}mo.signature=te;function yo(r,e){return r+e}yo.signature=Ge;function vo(r,e){return r-e}vo.signature=Ge;function _o(r,e){return r*e}_o.signature=Ge;function Yg(r,e){return r/e}Yg.signature=Ge;function xo(r){return-r}xo.signature=te;function $g(r){return r}$g.signature=te;function Zg(r){return Tu(r)}Zg.signature=te;function Kg(r){return r*r*r}Kg.signature=te;function Eo(r){return Math.exp(r)}Eo.signature=te;function Jg(r){return Cu(r)}Jg.signature=te;function Qg(r,e){if(!tt(r)||!tt(e))throw new Error("Parameters in function gcd must be integer numbers");for(var t;e!==0;)t=r%e,r=e,e=t;return r<0?-r:r}Qg.signature=Ge;function tm(r,e){if(!tt(r)||!tt(e))throw new Error("Parameters in function lcm must be integer numbers");if(r===0||e===0)return 0;for(var t,n=r*e;e!==0;)t=e,e=r%t,r=t;return Math.abs(n/r)}tm.signature=Ge;function em(r){return Mu(r)}em.signature=te;function bo(r){return Su(r)}bo.signature=te;function nm(r){return wu(r)}nm.signature=te;function rm(r,e){return e===0?r:r-e*Math.floor(r/e)}rm.signature=Ge;function im(r){return bu(r)}im.signature=te;function om(r){return Math.sqrt(r)}om.signature=te;function sm(r){return r*r}sm.signature=te;function am(r,e){var t,n,i,o=0,a=1,c=1,l=0;if(!tt(r)||!tt(e))throw new Error("Parameters in function xgcd must be integer numbers");for(;e;)n=Math.floor(r/e),i=r-n*e,t=o,o=a-n*o,a=t,t=c,c=l-n*c,l=t,r=e,e=i;var s;return r<0?s=[-r,-a,-l]:s=[r,r?a:0,l],s}am.signature=Ge;function So(r,e){return r*r<1&&e===1/0||r*r>1&&e===-1/0?0:Math.pow(r,e)}So.signature=Ge;function Rn(r){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(!tt(e)||e<0||e>15)throw new Error("Number of decimals in function round must be an integer from 0 to 15 inclusive");return parseFloat(Xi(r,e))}function um(r){return Math.abs(r)}um.signature=te;var cl=2*Math.PI;function Qe(r,e){var t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1e-9,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;if(t<=0)throw new Error("Relative tolerance must be greater than 0");if(n<0)throw new Error("Absolute tolerance must be at least 0");return r.isNaN()||e.isNaN()?!1:!r.isFinite()||!e.isFinite()?r.eq(e):r.eq(e)?!0:r.minus(e).abs().lte(r.constructor.max(r.constructor.max(r.abs(),e.abs()).mul(t),n))}var hl="isZero",lm=["typed","equalScalar"],Mo=N(hl,lm,r=>{var{typed:e,equalScalar:t}=r;return e(hl,{"number | BigNumber | Complex | Fraction":n=>t(n,0),bigint:n=>n===0n,Unit:e.referToSelf(n=>i=>e.find(n,i.valueType())(i.value)),"Array | Matrix":e.referToSelf(n=>i=>_t(i,n))})});function pl(r,e,t,n){return pe(r.re,e.re,t,n)&&pe(r.im,e.im,t,n)}var fl=N("compareUnits",["typed"],r=>{var{typed:e}=r;return{"Unit, Unit":e.referToSelf(t=>(n,i)=>{if(!n.equalBase(i))throw new Error("Cannot compare units with different base");return e.find(t,[n.valueType(),i.valueType()])(n.value,i.value)})}});var fi="equalScalar",cm=["typed","config"],wo=N(fi,cm,r=>{var{typed:e,config:t}=r,n=fl({typed:e});return e(fi,{"boolean, boolean":function(o,a){return o===a},"number, number":function(o,a){return pe(o,a,t.relTol,t.absTol)},"BigNumber, BigNumber":function(o,a){return o.eq(a)||Qe(o,a,t.relTol,t.absTol)},"bigint, bigint":function(o,a){return o===a},"Fraction, Fraction":function(o,a){return o.equals(a)},"Complex, Complex":function(o,a){return pl(o,a,t.relTol,t.absTol)}},n)}),Xw=N(fi,["typed","config"],r=>{var{typed:e,config:t}=r;return e(fi,{"number, number":function(i,o){return pe(i,o,t.relTol,t.absTol)}})});var hm="SparseMatrix",pm=["typed","equalScalar","Matrix"],To=N(hm,pm,r=>{var{typed:e,equalScalar:t,Matrix:n}=r;function i(p,m){if(!(this instanceof i))throw new SyntaxError("Constructor must be called with the new operator");if(m&&!jt(m))throw new Error("Invalid datatype: "+m);if(ot(p))o(this,p,m);else if(p&&yt(p.index)&&yt(p.ptr)&&yt(p.size))this._values=p.values,this._index=p.index,this._ptr=p.ptr,this._size=p.size,this._datatype=m||p.datatype;else if(yt(p))a(this,p,m);else{if(p)throw new TypeError("Unsupported type of data ("+Ut(p)+")");this._values=[],this._index=[],this._ptr=[0],this._size=[0,0],this._datatype=m}}function o(p,m,v){m.type==="SparseMatrix"?(p._values=m._values?ft(m._values):void 0,p._index=ft(m._index),p._ptr=ft(m._ptr),p._size=ft(m._size),p._datatype=v||m._datatype):a(p,m.valueOf(),v||m._datatype)}function a(p,m,v){p._values=[],p._index=[],p._ptr=[],p._datatype=v;var b=m.length,y=0,S=t,x=0;if(jt(v)&&(S=e.find(t,[v,v])||t,x=e.convert(0,v)),b>0){var _=0;do{p._ptr.push(p._index.length);for(var M=0;M<b;M++){var w=m[M];if(yt(w)){if(_===0&&y<w.length&&(y=w.length),_<w.length){var C=w[_];S(C,x)||(p._values.push(C),p._index.push(M))}}else _===0&&y<1&&(y=1),S(w,x)||(p._values.push(w),p._index.push(M))}_++}while(_<y)}p._ptr.push(p._index.length),p._size=[b,y]}i.prototype=new n,i.prototype.createSparseMatrix=function(p,m){return new i(p,m)},Object.defineProperty(i,"name",{value:"SparseMatrix"}),i.prototype.constructor=i,i.prototype.type="SparseMatrix",i.prototype.isSparseMatrix=!0,i.prototype.getDataType=function(){return In(this._values,Ut)},i.prototype.storage=function(){return"sparse"},i.prototype.datatype=function(){return this._datatype},i.prototype.create=function(p,m){return new i(p,m)},i.prototype.density=function(){var p=this._size[0],m=this._size[1];return p!==0&&m!==0?this._index.length/(p*m):0},i.prototype.subset=function(p,m,v){if(!this._values)throw new Error("Cannot invoke subset on a Pattern only matrix");switch(arguments.length){case 1:return c(this,p);case 2:case 3:return l(this,p,m,v);default:throw new SyntaxError("Wrong number of arguments")}};function c(p,m){if(!Mn(m))throw new TypeError("Invalid index");var v=m.isScalar();if(v)return p.get(m.min());var b=m.size();if(b.length!==p._size.length)throw new Q(b.length,p._size.length);var y,S,x,_,M=m.min(),w=m.max();for(y=0,S=p._size.length;y<S;y++)Et(M[y],p._size[y]),Et(w[y],p._size[y]);var C=p._values,P=p._index,D=p._ptr,R=m.dimension(0),W=m.dimension(1),G=[],k=[];R.forEach(function(j,J){k[j]=J[0],G[j]=!0});var L=C?[]:void 0,q=[],Y=[];return W.forEach(function(j){for(Y.push(q.length),x=D[j],_=D[j+1];x<_;x++)y=P[x],G[y]===!0&&(q.push(k[y]),L&&L.push(C[x]))}),Y.push(q.length),new i({values:L,index:q,ptr:Y,size:b,datatype:p._datatype})}function l(p,m,v,b){if(!m||m.isIndex!==!0)throw new TypeError("Invalid index");var y=m.size(),S=m.isScalar(),x;if(ot(v)?(x=v.size(),v=v.toArray()):x=st(v),S){if(x.length!==0)throw new TypeError("Scalar expected");p.set(m.min(),v,b)}else{if(y.length!==1&&y.length!==2)throw new Q(y.length,p._size.length,"<");if(x.length<y.length){for(var _=0,M=0;y[_]===1&&x[_]===1;)_++;for(;y[_]===1;)M++,_++;v=ci(v,y.length,M,x)}if(!ce(y,x))throw new Q(y,x,">");if(y.length===1){var w=m.dimension(0);w.forEach(function(D,R){Et(D),p.set([D,0],v[R[0]],b)})}else{var C=m.dimension(0),P=m.dimension(1);C.forEach(function(D,R){Et(D),P.forEach(function(W,G){Et(W),p.set([D,W],v[R[0]][G[0]],b)})})}}return p}i.prototype.get=function(p){if(!yt(p))throw new TypeError("Array expected");if(p.length!==this._size.length)throw new Q(p.length,this._size.length);if(!this._values)throw new Error("Cannot invoke get on a Pattern only matrix");var m=p[0],v=p[1];Et(m,this._size[0]),Et(v,this._size[1]);var b=s(m,this._ptr[v],this._ptr[v+1],this._index);return b<this._ptr[v+1]&&this._index[b]===m?this._values[b]:0},i.prototype.set=function(p,m,v){if(!yt(p))throw new TypeError("Array expected");if(p.length!==this._size.length)throw new Q(p.length,this._size.length);if(!this._values)throw new Error("Cannot invoke set on a Pattern only matrix");var b=p[0],y=p[1],S=this._size[0],x=this._size[1],_=t,M=0;jt(this._datatype)&&(_=e.find(t,[this._datatype,this._datatype])||t,M=e.convert(0,this._datatype)),(b>S-1||y>x-1)&&(f(this,Math.max(b+1,S),Math.max(y+1,x),v),S=this._size[0],x=this._size[1]),Et(b,S),Et(y,x);var w=s(b,this._ptr[y],this._ptr[y+1],this._index);return w<this._ptr[y+1]&&this._index[w]===b?_(m,M)?u(w,y,this._values,this._index,this._ptr):this._values[w]=m:_(m,M)||h(w,b,y,m,this._values,this._index,this._ptr),this};function s(p,m,v,b){if(v-m===0)return v;for(var y=m;y<v;y++)if(b[y]===p)return y;return m}function u(p,m,v,b,y){v.splice(p,1),b.splice(p,1);for(var S=m+1;S<y.length;S++)y[S]--}function h(p,m,v,b,y,S,x){y.splice(p,0,b),S.splice(p,0,m);for(var _=v+1;_<x.length;_++)x[_]++}i.prototype.resize=function(p,m,v){if(!Ue(p))throw new TypeError("Array or Matrix expected");var b=p.valueOf().map(S=>Array.isArray(S)&&S.length===1?S[0]:S);if(b.length!==2)throw new Error("Only two dimensions matrix are supported");b.forEach(function(S){if(!nt(S)||!tt(S)||S<0)throw new TypeError("Invalid size, must contain positive integers (size: "+vt(b)+")")});var y=v?this.clone():this;return f(y,b[0],b[1],m)};function f(p,m,v,b){var y=b||0,S=t,x=0;jt(p._datatype)&&(S=e.find(t,[p._datatype,p._datatype])||t,x=e.convert(0,p._datatype),y=e.convert(y,p._datatype));var _=!S(y,x),M=p._size[0],w=p._size[1],C,P,D;if(v>w){for(P=w;P<v;P++)if(p._ptr[P]=p._values.length,_)for(C=0;C<M;C++)p._values.push(y),p._index.push(C);p._ptr[v]=p._values.length}else v<w&&(p._ptr.splice(v+1,w-v),p._values.splice(p._ptr[v],p._values.length),p._index.splice(p._ptr[v],p._index.length));if(w=v,m>M){if(_){var R=0;for(P=0;P<w;P++){p._ptr[P]=p._ptr[P]+R,D=p._ptr[P+1]+R;var W=0;for(C=M;C<m;C++,W++)p._values.splice(D+W,0,y),p._index.splice(D+W,0,C),R++}p._ptr[w]=p._values.length}}else if(m<M){var G=0;for(P=0;P<w;P++){p._ptr[P]=p._ptr[P]-G;var k=p._ptr[P],L=p._ptr[P+1]-G;for(D=k;D<L;D++)C=p._index[D],C>m-1&&(p._values.splice(D,1),p._index.splice(D,1),G++)}p._ptr[P]=p._values.length}return p._size[0]=m,p._size[1]=v,p}i.prototype.reshape=function(p,m){if(!yt(p))throw new TypeError("Array expected");if(p.length!==2)throw new Error("Sparse matrices can only be reshaped in two dimensions");p.forEach(function(j){if(!nt(j)||!tt(j)||j<=-2||j===0)throw new TypeError("Invalid size, must contain positive integers or -1 (size: "+vt(p)+")")});var v=this._size[0]*this._size[1];p=tr(p,v);var b=p[0]*p[1];if(v!==b)throw new Error("Reshaping sparse matrix will result in the wrong number of elements");var y=m?this.clone():this;if(this._size[0]===p[0]&&this._size[1]===p[1])return y;for(var S=[],x=0;x<y._ptr.length;x++)for(var _=0;_<y._ptr[x+1]-y._ptr[x];_++)S.push(x);for(var M=y._values.slice(),w=y._index.slice(),C=0;C<y._index.length;C++){var P=w[C],D=S[C],R=P*y._size[1]+D;S[C]=R%p[1],w[C]=Math.floor(R/p[1])}y._values.length=0,y._index.length=0,y._ptr.length=p[1]+1,y._size=p.slice();for(var W=0;W<y._ptr.length;W++)y._ptr[W]=0;for(var G=0;G<M.length;G++){var k=w[G],L=S[G],q=M[G],Y=s(k,y._ptr[L],y._ptr[L+1],y._index);h(Y,k,L,q,y._values,y._index,y._ptr)}return y},i.prototype.clone=function(){var p=new i({values:this._values?ft(this._values):void 0,index:ft(this._index),ptr:ft(this._ptr),size:ft(this._size),datatype:this._datatype});return p},i.prototype.size=function(){return this._size.slice(0)},i.prototype.map=function(p,m){if(!this._values)throw new Error("Cannot invoke map on a Pattern only matrix");var v=this,b=this._size[0],y=this._size[1],S=function(_,M,w){return hi(p,_,[M,w],v,"map")};return d(this,0,b-1,0,y-1,S,m)};function d(p,m,v,b,y,S,x){var _=[],M=[],w=[],C=t,P=0;jt(p._datatype)&&(C=e.find(t,[p._datatype,p._datatype])||t,P=e.convert(0,p._datatype));for(var D=function(pt,Tt,wt){var St=S(pt,Tt,wt);C(St,P)||(_.push(St),M.push(Tt))},R=b;R<=y;R++){w.push(_.length);var W=p._ptr[R],G=p._ptr[R+1];if(x)for(var k=W;k<G;k++){var L=p._index[k];L>=m&&L<=v&&D(p._values[k],L-m,R-b)}else{for(var q={},Y=W;Y<G;Y++){var j=p._index[Y];q[j]=p._values[Y]}for(var J=m;J<=v;J++){var lt=J in q?q[J]:0;D(lt,J-m,R-b)}}}return w.push(_.length),new i({values:_,index:M,ptr:w,size:[v-m+1,y-b+1]})}i.prototype.forEach=function(p,m){if(!this._values)throw new Error("Cannot invoke forEach on a Pattern only matrix");for(var v=this,b=this._size[0],y=this._size[1],S=0;S<y;S++){var x=this._ptr[S],_=this._ptr[S+1];if(m)for(var M=x;M<_;M++){var w=this._index[M];p(this._values[M],[w,S],v)}else{for(var C={},P=x;P<_;P++){var D=this._index[P];C[D]=this._values[P]}for(var R=0;R<b;R++){var W=R in C?C[R]:0;p(W,[R,S],v)}}}},i.prototype[Symbol.iterator]=function*(){if(!this._values)throw new Error("Cannot iterate a Pattern only matrix");for(var p=this._size[1],m=0;m<p;m++)for(var v=this._ptr[m],b=this._ptr[m+1],y=v;y<b;y++){var S=this._index[y];yield{value:this._values[y],index:[S,m]}}},i.prototype.toArray=function(){return g(this._values,this._index,this._ptr,this._size,!0)},i.prototype.valueOf=function(){return g(this._values,this._index,this._ptr,this._size,!1)};function g(p,m,v,b,y){var S=b[0],x=b[1],_=[],M,w;for(M=0;M<S;M++)for(_[M]=[],w=0;w<x;w++)_[M][w]=0;for(w=0;w<x;w++)for(var C=v[w],P=v[w+1],D=C;D<P;D++)M=m[D],_[M][w]=p?y?ft(p[D]):p[D]:1;return _}return i.prototype.format=function(p){for(var m=this._size[0],v=this._size[1],b=this.density(),y="Sparse Matrix ["+vt(m,p)+" x "+vt(v,p)+"] density: "+vt(b,p)+`
7514
+ `);return Object.freeze(Bi)};bn(pe,Bi,{MATRIX_OPTIONS:vu,NUMBER_OPTIONS:_u});var ji=pn(Hi(),1);function N(r,e,t,n){function i(o){var a=yu(o,e.map(Td));return Md(r,e,o),t(a)}return i.isFactory=!0,i.fn=r,i.dependencies=e.slice().sort(),n&&(i.meta=n),i}function Md(r,e,t){var n=e.filter(o=>!wd(o)).every(o=>t[o]!==void 0);if(!n){var i=e.filter(o=>t[o]===void 0);throw new Error('Cannot create function "'.concat(r,'", ')+"some dependencies are missing: ".concat(i.map(o=>'"'.concat(o,'"')).join(", "),"."))}}function wd(r){return r&&r[0]==="?"}function Td(r){return r&&r[0]==="?"?r.slice(1):r}function tt(r){return typeof r=="boolean"?!0:isFinite(r)?r===Math.round(r):!1}var bu=Math.sign||function(r){return r>0?1:r<0?-1:0},Su=Math.log2||function(e){return Math.log(e)/Math.LN2},Mu=Math.log10||function(e){return Math.log(e)/Math.LN10},wu=Math.log1p||function(r){return Math.log(r+1)},Tu=Math.cbrt||function(e){if(e===0)return e;var t=e<0,n;return t&&(e=-e),isFinite(e)?(n=Math.exp(Math.log(e)/3),n=(e/(n*n)+2*n)/3):n=e,t?-n:n},Cu=Math.expm1||function(e){return e>=2e-4||e<=-2e-4?Math.exp(e)-1:e+e*e/2+e*e*e/6};function Wi(r,e,t){var n={2:"0b",8:"0o",16:"0x"},i=n[e],o="";if(t){if(t<1)throw new Error("size must be in greater than 0");if(!tt(t))throw new Error("size must be an integer");if(r>2**(t-1)-1||r<-(2**(t-1)))throw new Error("Value must be in range [-2^".concat(t-1,", 2^").concat(t-1,"-1]"));if(!tt(r))throw new Error("Value must be an integer");r<0&&(r=r+2**t),o="i".concat(t)}var a="";return r<0&&(r=-r,a="-"),"".concat(a).concat(i).concat(r.toString(e)).concat(o)}function $n(r,e){if(typeof e=="function")return e(r);if(r===1/0)return"Infinity";if(r===-1/0)return"-Infinity";if(isNaN(r))return"NaN";var{notation:t,precision:n,wordSize:i}=qi(e);switch(t){case"fixed":return Xi(r,n);case"exponential":return Au(r,n);case"engineering":return Cd(r,n);case"bin":return Wi(r,2,i);case"oct":return Wi(r,8,i);case"hex":return Wi(r,16,i);case"auto":return Ad(r,n,e).replace(/((\.\d*?)(0+))($|e)/,function(){var o=arguments[2],a=arguments[4];return o!=="."?o+a:a});default:throw new Error('Unknown notation "'+t+'". Choose "auto", "exponential", "fixed", "bin", "oct", or "hex.')}}function qi(r){var e="auto",t,n;if(r!==void 0)if(nt(r))t=r;else if(it(r))t=r.toNumber();else if(wn(r))r.precision!==void 0&&(t=xu(r.precision,()=>{throw new Error('Option "precision" must be a number or BigNumber')})),r.wordSize!==void 0&&(n=xu(r.wordSize,()=>{throw new Error('Option "wordSize" must be a number or BigNumber')})),r.notation&&(e=r.notation);else throw new Error("Unsupported type of options, number, BigNumber, or object expected");return{notation:e,precision:t,wordSize:n}}function Cn(r){var e=String(r).toLowerCase().match(/^(-?)(\d+\.?\d*)(e([+-]?\d+))?$/);if(!e)throw new SyntaxError("Invalid number "+r);var t=e[1],n=e[2],i=parseFloat(e[4]||"0"),o=n.indexOf(".");i+=o!==-1?o-1:n.length-1;var a=n.replace(".","").replace(/^0*/,function(c){return i-=c.length,""}).replace(/0*$/,"").split("").map(function(c){return parseInt(c)});return a.length===0&&(a.push(0),i++),{sign:t,coefficients:a,exponent:i}}function Cd(r,e){if(isNaN(r)||!isFinite(r))return String(r);var t=Cn(r),n=Jr(t,e),i=n.exponent,o=n.coefficients,a=i%3===0?i:i<0?i-3-i%3:i-i%3;if(nt(e))for(;e>o.length||i-a+1>o.length;)o.push(0);else for(var c=Math.abs(i-a)-(o.length-1),l=0;l<c;l++)o.push(0);for(var s=Math.abs(i-a),u=1;s>0;)u++,s--;var h=o.slice(u).join(""),f=nt(e)&&h.length||h.match(/[1-9]/)?"."+h:"",d=o.slice(0,u).join("")+f+"e"+(i>=0?"+":"")+a.toString();return n.sign+d}function Xi(r,e){if(isNaN(r)||!isFinite(r))return String(r);var t=Cn(r),n=typeof e=="number"?Jr(t,t.exponent+1+e):t,i=n.coefficients,o=n.exponent+1,a=o+(e||0);return i.length<a&&(i=i.concat(Tn(a-i.length))),o<0&&(i=Tn(-o+1).concat(i),o=1),o<i.length&&i.splice(o,0,o===0?"0.":"."),n.sign+i.join("")}function Au(r,e){if(isNaN(r)||!isFinite(r))return String(r);var t=Cn(r),n=e?Jr(t,e):t,i=n.coefficients,o=n.exponent;i.length<e&&(i=i.concat(Tn(e-i.length)));var a=i.shift();return n.sign+a+(i.length>0?"."+i.join(""):"")+"e"+(o>=0?"+":"")+o}function Ad(r,e,t){if(isNaN(r)||!isFinite(r))return String(r);var n=Eu(t?.lowerExp,-3),i=Eu(t?.upperExp,5),o=Cn(r),a=e?Jr(o,e):o;if(a.exponent<n||a.exponent>=i)return Au(r,e);var c=a.coefficients,l=a.exponent;c.length<e&&(c=c.concat(Tn(e-c.length))),c=c.concat(Tn(l-c.length+1+(c.length<e?e-c.length:0))),c=Tn(-l).concat(c);var s=l>0?l:0;return s<c.length-1&&c.splice(s+1,0,"."),a.sign+c.join("")}function Jr(r,e){for(var t={sign:r.sign,coefficients:r.coefficients,exponent:r.exponent},n=t.coefficients;e<=0;)n.unshift(0),t.exponent++,e++;if(n.length>e){var i=n.splice(e,n.length-e);if(i[0]>=5){var o=e-1;for(n[o]++;n[o]===10;)n.pop(),o===0&&(n.unshift(0),t.exponent++,o++),o--,n[o]++}}return t}function Tn(r){for(var e=[],t=0;t<r;t++)e.push(0);return e}function Pu(r){return r.toExponential().replace(/e.*$/,"").replace(/^0\.?0*|\./,"").length}var TM=Number.EPSILON||2220446049250313e-31;function fe(r,e){var t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1e-8,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;if(t<=0)throw new Error("Relative tolerance must be greater than 0");if(n<0)throw new Error("Absolute tolerance must be at least 0");return isNaN(r)||isNaN(e)?!1:!isFinite(r)||!isFinite(e)?r===e:r===e?!0:Math.abs(r-e)<=Math.max(t*Math.max(Math.abs(r),Math.abs(e)),n)}function xu(r,e){if(nt(r))return r;if(it(r))return r.toNumber();e()}function Eu(r,e){return nt(r)?r:it(r)?r.toNumber():e}var Du=function(){return Du=ji.default.create,ji.default},Pd=["?BigNumber","?Complex","?DenseMatrix","?Fraction"],Yi=N("typed",Pd,function(e){var{BigNumber:t,Complex:n,DenseMatrix:i,Fraction:o}=e,a=Du();return a.clear(),a.addTypes([{name:"number",test:nt},{name:"Complex",test:zi},{name:"BigNumber",test:it},{name:"bigint",test:ka},{name:"Fraction",test:Gi},{name:"Unit",test:Zr},{name:"identifier",test:c=>jt&&/^(?:[A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE3F\uDE40\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDF02\uDF04-\uDF10\uDF12-\uDF33\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC30-\uDC6D\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDCD0-\uDCEB\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF39\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD888[\uDC00-\uDFAF])(?:[0-9A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE3F\uDE40\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDF02\uDF04-\uDF10\uDF12-\uDF33\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC30-\uDC6D\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDCD0-\uDCEB\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF39\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD888[\uDC00-\uDFAF])*$/.test(c)},{name:"string",test:jt},{name:"Chain",test:mu},{name:"Array",test:yt},{name:"Matrix",test:ot},{name:"DenseMatrix",test:Va},{name:"SparseMatrix",test:Ha},{name:"Range",test:Wa},{name:"Index",test:Mn},{name:"boolean",test:qa},{name:"ResultSet",test:Xa},{name:"Help",test:ja},{name:"function",test:Ya},{name:"Date",test:$a},{name:"RegExp",test:Za},{name:"null",test:Ja},{name:"undefined",test:Qa},{name:"AccessorNode",test:tu},{name:"ArrayNode",test:eu},{name:"AssignmentNode",test:nu},{name:"BlockNode",test:ru},{name:"ConditionalNode",test:iu},{name:"ConstantNode",test:ou},{name:"FunctionNode",test:au},{name:"FunctionAssignmentNode",test:su},{name:"IndexNode",test:uu},{name:"Node",test:lu},{name:"ObjectNode",test:cu},{name:"OperatorNode",test:hu},{name:"ParenthesisNode",test:pu},{name:"RangeNode",test:fu},{name:"RelationalNode",test:du},{name:"SymbolNode",test:gu},{name:"Map",test:Ka},{name:"Object",test:wn}]),a.addConversions([{from:"number",to:"BigNumber",convert:function(l){if(t||Qr(l),Pu(l)>15)throw new TypeError("Cannot implicitly convert a number with >15 significant digits to BigNumber (value: "+l+"). Use function bignumber(x) to convert to BigNumber.");return new t(l)}},{from:"number",to:"Complex",convert:function(l){return n||ti(l),new n(l,0)}},{from:"BigNumber",to:"Complex",convert:function(l){return n||ti(l),new n(l.toNumber(),0)}},{from:"bigint",to:"number",convert:function(l){if(l>Number.MAX_SAFE_INTEGER)throw new TypeError("Cannot implicitly convert bigint to number: value exceeds the max safe integer value (value: "+l+")");return Number(l)}},{from:"bigint",to:"BigNumber",convert:function(l){return t||Qr(l),new t(l.toString())}},{from:"bigint",to:"Fraction",convert:function(l){return o||ei(l),new o(l.toString())}},{from:"Fraction",to:"BigNumber",convert:function(l){throw new TypeError("Cannot implicitly convert a Fraction to BigNumber or vice versa. Use function bignumber(x) to convert to BigNumber or fraction(x) to convert to Fraction.")}},{from:"Fraction",to:"Complex",convert:function(l){return n||ti(l),new n(l.valueOf(),0)}},{from:"number",to:"Fraction",convert:function(l){o||ei(l);var s=new o(l);if(s.valueOf()!==l)throw new TypeError("Cannot implicitly convert a number to a Fraction when there will be a loss of precision (value: "+l+"). Use function fraction(x) to convert to Fraction.");return s}},{from:"string",to:"number",convert:function(l){var s=Number(l);if(isNaN(s))throw new Error('Cannot convert "'+l+'" to a number');return s}},{from:"string",to:"BigNumber",convert:function(l){t||Qr(l);try{return new t(l)}catch{throw new Error('Cannot convert "'+l+'" to BigNumber')}}},{from:"string",to:"bigint",convert:function(l){try{return BigInt(l)}catch{throw new Error('Cannot convert "'+l+'" to BigInt')}}},{from:"string",to:"Fraction",convert:function(l){o||ei(l);try{return new o(l)}catch{throw new Error('Cannot convert "'+l+'" to Fraction')}}},{from:"string",to:"Complex",convert:function(l){n||ti(l);try{return new n(l)}catch{throw new Error('Cannot convert "'+l+'" to Complex')}}},{from:"boolean",to:"number",convert:function(l){return+l}},{from:"boolean",to:"BigNumber",convert:function(l){return t||Qr(l),new t(+l)}},{from:"boolean",to:"bigint",convert:function(l){return BigInt(+l)}},{from:"boolean",to:"Fraction",convert:function(l){return o||ei(l),new o(+l)}},{from:"boolean",to:"string",convert:function(l){return String(l)}},{from:"Array",to:"Matrix",convert:function(l){return i||Dd(),new i(l)}},{from:"Matrix",to:"Array",convert:function(l){return l.valueOf()}}]),a.onMismatch=(c,l,s)=>{var u=a.createError(c,l,s);if(["wrongType","mismatch"].includes(u.data.category)&&l.length===1&&Ue(l[0])&&s.some(f=>!f.params.includes(","))){var h=new TypeError("Function '".concat(c,"' doesn't apply to matrices. To call it ")+"elementwise on a matrix 'M', try 'map(M, ".concat(c,")'."));throw h.data=u.data,h}throw u},a.onMismatch=(c,l,s)=>{var u=a.createError(c,l,s);if(["wrongType","mismatch"].includes(u.data.category)&&l.length===1&&Ue(l[0])&&s.some(f=>!f.params.includes(","))){var h=new TypeError("Function '".concat(c,"' doesn't apply to matrices. To call it ")+"elementwise on a matrix 'M', try 'map(M, ".concat(c,")'."));throw h.data=u.data,h}throw u},a});function Qr(r){throw new Error("Cannot convert value ".concat(r," into a BigNumber: no class 'BigNumber' provided"))}function ti(r){throw new Error("Cannot convert value ".concat(r," into a Complex number: no class 'Complex' provided"))}function Dd(){throw new Error("Cannot convert array into a Matrix: no class 'DenseMatrix' provided")}function ei(r){throw new Error("Cannot convert value ".concat(r," into a Fraction, no class 'Fraction' provided."))}var An=9e15,Je=1e9,$i="0123456789abcdef",ri="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",ii="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",Zi={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-An,maxE:An,crypto:!1},Lu,Be,K=!0,si="[DecimalError] ",Ke=si+"Invalid argument: ",Ou=si+"Precision limit exceeded",Fu=si+"crypto unavailable",Uu="[object Decimal]",Wt=Math.floor,Pt=Math.pow,Id=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,Rd=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,Nd=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,Bu=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,_e=1e7,Z=7,Ld=9007199254740991,Od=ri.length-1,Ki=ii.length-1,F={toStringTag:Uu};F.absoluteValue=F.abs=function(){var r=new this.constructor(this);return r.s<0&&(r.s=1),$(r)};F.ceil=function(){return $(new this.constructor(this),this.e+1,2)};F.clampedTo=F.clamp=function(r,e){var t,n=this,i=n.constructor;if(r=new i(r),e=new i(e),!r.s||!e.s)return new i(NaN);if(r.gt(e))throw Error(Ke+e);return t=n.cmp(r),t<0?r:n.cmp(e)>0?e:new i(n)};F.comparedTo=F.cmp=function(r){var e,t,n,i,o=this,a=o.d,c=(r=new o.constructor(r)).d,l=o.s,s=r.s;if(!a||!c)return!l||!s?NaN:l!==s?l:a===c?0:!a^l<0?1:-1;if(!a[0]||!c[0])return a[0]?l:c[0]?-s:0;if(l!==s)return l;if(o.e!==r.e)return o.e>r.e^l<0?1:-1;for(n=a.length,i=c.length,e=0,t=n<i?n:i;e<t;++e)if(a[e]!==c[e])return a[e]>c[e]^l<0?1:-1;return n===i?0:n>i^l<0?1:-1};F.cosine=F.cos=function(){var r,e,t=this,n=t.constructor;return t.d?t.d[0]?(r=n.precision,e=n.rounding,n.precision=r+Math.max(t.e,t.sd())+Z,n.rounding=1,t=Fd(n,Hu(n,t)),n.precision=r,n.rounding=e,$(Be==2||Be==3?t.neg():t,r,e,!0)):new n(1):new n(NaN)};F.cubeRoot=F.cbrt=function(){var r,e,t,n,i,o,a,c,l,s,u=this,h=u.constructor;if(!u.isFinite()||u.isZero())return new h(u);for(K=!1,o=u.s*Pt(u.s*u,1/3),!o||Math.abs(o)==1/0?(t=Bt(u.d),r=u.e,(o=(r-t.length+1)%3)&&(t+=o==1||o==-2?"0":"00"),o=Pt(t,1/3),r=Wt((r+1)/3)-(r%3==(r<0?-1:2)),o==1/0?t="5e"+r:(t=o.toExponential(),t=t.slice(0,t.indexOf("e")+1)+r),n=new h(t),n.s=u.s):n=new h(o.toString()),a=(r=h.precision)+3;;)if(c=n,l=c.times(c).times(c),s=l.plus(u),n=dt(s.plus(u).times(c),s.plus(l),a+2,1),Bt(c.d).slice(0,a)===(t=Bt(n.d)).slice(0,a))if(t=t.slice(a-3,a+1),t=="9999"||!i&&t=="4999"){if(!i&&($(c,r+1,0),c.times(c).times(c).eq(u))){n=c;break}a+=4,i=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&($(n,r+1,1),e=!n.times(n).times(n).eq(u));break}return K=!0,$(n,r,h.rounding,e)};F.decimalPlaces=F.dp=function(){var r,e=this.d,t=NaN;if(e){if(r=e.length-1,t=(r-Wt(this.e/Z))*Z,r=e[r],r)for(;r%10==0;r/=10)t--;t<0&&(t=0)}return t};F.dividedBy=F.div=function(r){return dt(this,new this.constructor(r))};F.dividedToIntegerBy=F.divToInt=function(r){var e=this,t=e.constructor;return $(dt(e,new t(r),0,1,1),t.precision,t.rounding)};F.equals=F.eq=function(r){return this.cmp(r)===0};F.floor=function(){return $(new this.constructor(this),this.e+1,3)};F.greaterThan=F.gt=function(r){return this.cmp(r)>0};F.greaterThanOrEqualTo=F.gte=function(r){var e=this.cmp(r);return e==1||e===0};F.hyperbolicCosine=F.cosh=function(){var r,e,t,n,i,o=this,a=o.constructor,c=new a(1);if(!o.isFinite())return new a(o.s?1/0:NaN);if(o.isZero())return c;t=a.precision,n=a.rounding,a.precision=t+Math.max(o.e,o.sd())+4,a.rounding=1,i=o.d.length,i<32?(r=Math.ceil(i/3),e=(1/ui(4,r)).toString()):(r=16,e="2.3283064365386962890625e-10"),o=Pn(a,1,o.times(e),new a(1),!0);for(var l,s=r,u=new a(8);s--;)l=o.times(o),o=c.minus(l.times(u.minus(l.times(u))));return $(o,a.precision=t,a.rounding=n,!0)};F.hyperbolicSine=F.sinh=function(){var r,e,t,n,i=this,o=i.constructor;if(!i.isFinite()||i.isZero())return new o(i);if(e=o.precision,t=o.rounding,o.precision=e+Math.max(i.e,i.sd())+4,o.rounding=1,n=i.d.length,n<3)i=Pn(o,2,i,i,!0);else{r=1.4*Math.sqrt(n),r=r>16?16:r|0,i=i.times(1/ui(5,r)),i=Pn(o,2,i,i,!0);for(var a,c=new o(5),l=new o(16),s=new o(20);r--;)a=i.times(i),i=i.times(c.plus(a.times(l.times(a).plus(s))))}return o.precision=e,o.rounding=t,$(i,e,t,!0)};F.hyperbolicTangent=F.tanh=function(){var r,e,t=this,n=t.constructor;return t.isFinite()?t.isZero()?new n(t):(r=n.precision,e=n.rounding,n.precision=r+7,n.rounding=1,dt(t.sinh(),t.cosh(),n.precision=r,n.rounding=e)):new n(t.s)};F.inverseCosine=F.acos=function(){var r,e=this,t=e.constructor,n=e.abs().cmp(1),i=t.precision,o=t.rounding;return n!==-1?n===0?e.isNeg()?ve(t,i,o):new t(0):new t(NaN):e.isZero()?ve(t,i+4,o).times(.5):(t.precision=i+6,t.rounding=1,e=e.asin(),r=ve(t,i+4,o).times(.5),t.precision=i,t.rounding=o,r.minus(e))};F.inverseHyperbolicCosine=F.acosh=function(){var r,e,t=this,n=t.constructor;return t.lte(1)?new n(t.eq(1)?0:NaN):t.isFinite()?(r=n.precision,e=n.rounding,n.precision=r+Math.max(Math.abs(t.e),t.sd())+4,n.rounding=1,K=!1,t=t.times(t).minus(1).sqrt().plus(t),K=!0,n.precision=r,n.rounding=e,t.ln()):new n(t)};F.inverseHyperbolicSine=F.asinh=function(){var r,e,t=this,n=t.constructor;return!t.isFinite()||t.isZero()?new n(t):(r=n.precision,e=n.rounding,n.precision=r+2*Math.max(Math.abs(t.e),t.sd())+6,n.rounding=1,K=!1,t=t.times(t).plus(1).sqrt().plus(t),K=!0,n.precision=r,n.rounding=e,t.ln())};F.inverseHyperbolicTangent=F.atanh=function(){var r,e,t,n,i=this,o=i.constructor;return i.isFinite()?i.e>=0?new o(i.abs().eq(1)?i.s/0:i.isZero()?i:NaN):(r=o.precision,e=o.rounding,n=i.sd(),Math.max(n,r)<2*-i.e-1?$(new o(i),r,e,!0):(o.precision=t=n-i.e,i=dt(i.plus(1),new o(1).minus(i),t+r,1),o.precision=r+4,o.rounding=1,i=i.ln(),o.precision=r,o.rounding=e,i.times(.5))):new o(NaN)};F.inverseSine=F.asin=function(){var r,e,t,n,i=this,o=i.constructor;return i.isZero()?new o(i):(e=i.abs().cmp(1),t=o.precision,n=o.rounding,e!==-1?e===0?(r=ve(o,t+4,n).times(.5),r.s=i.s,r):new o(NaN):(o.precision=t+6,o.rounding=1,i=i.div(new o(1).minus(i.times(i)).sqrt().plus(1)).atan(),o.precision=t,o.rounding=n,i.times(2)))};F.inverseTangent=F.atan=function(){var r,e,t,n,i,o,a,c,l,s=this,u=s.constructor,h=u.precision,f=u.rounding;if(s.isFinite()){if(s.isZero())return new u(s);if(s.abs().eq(1)&&h+4<=Ki)return a=ve(u,h+4,f).times(.25),a.s=s.s,a}else{if(!s.s)return new u(NaN);if(h+4<=Ki)return a=ve(u,h+4,f).times(.5),a.s=s.s,a}for(u.precision=c=h+10,u.rounding=1,t=Math.min(28,c/Z+2|0),r=t;r;--r)s=s.div(s.times(s).plus(1).sqrt().plus(1));for(K=!1,e=Math.ceil(c/Z),n=1,l=s.times(s),a=new u(s),i=s;r!==-1;)if(i=i.times(l),o=a.minus(i.div(n+=2)),i=i.times(l),a=o.plus(i.div(n+=2)),a.d[e]!==void 0)for(r=e;a.d[r]===o.d[r]&&r--;);return t&&(a=a.times(2<<t-1)),K=!0,$(a,u.precision=h,u.rounding=f,!0)};F.isFinite=function(){return!!this.d};F.isInteger=F.isInt=function(){return!!this.d&&Wt(this.e/Z)>this.d.length-2};F.isNaN=function(){return!this.s};F.isNegative=F.isNeg=function(){return this.s<0};F.isPositive=F.isPos=function(){return this.s>0};F.isZero=function(){return!!this.d&&this.d[0]===0};F.lessThan=F.lt=function(r){return this.cmp(r)<0};F.lessThanOrEqualTo=F.lte=function(r){return this.cmp(r)<1};F.logarithm=F.log=function(r){var e,t,n,i,o,a,c,l,s=this,u=s.constructor,h=u.precision,f=u.rounding,d=5;if(r==null)r=new u(10),e=!0;else{if(r=new u(r),t=r.d,r.s<0||!t||!t[0]||r.eq(1))return new u(NaN);e=r.eq(10)}if(t=s.d,s.s<0||!t||!t[0]||s.eq(1))return new u(t&&!t[0]?-1/0:s.s!=1?NaN:t?0:1/0);if(e)if(t.length>1)o=!0;else{for(i=t[0];i%10===0;)i/=10;o=i!==1}if(K=!1,c=h+d,a=Ze(s,c),n=e?oi(u,c+10):Ze(r,c),l=dt(a,n,c,1),Zn(l.d,i=h,f))do if(c+=10,a=Ze(s,c),n=e?oi(u,c+10):Ze(r,c),l=dt(a,n,c,1),!o){+Bt(l.d).slice(i+1,i+15)+1==1e14&&(l=$(l,h+1,0));break}while(Zn(l.d,i+=10,f));return K=!0,$(l,h,f)};F.minus=F.sub=function(r){var e,t,n,i,o,a,c,l,s,u,h,f,d=this,g=d.constructor;if(r=new g(r),!d.d||!r.d)return!d.s||!r.s?r=new g(NaN):d.d?r.s=-r.s:r=new g(r.d||d.s!==r.s?d:NaN),r;if(d.s!=r.s)return r.s=-r.s,d.plus(r);if(s=d.d,f=r.d,c=g.precision,l=g.rounding,!s[0]||!f[0]){if(f[0])r.s=-r.s;else if(s[0])r=new g(d);else return new g(l===3?-0:0);return K?$(r,c,l):r}if(t=Wt(r.e/Z),u=Wt(d.e/Z),s=s.slice(),o=u-t,o){for(h=o<0,h?(e=s,o=-o,a=f.length):(e=f,t=u,a=s.length),n=Math.max(Math.ceil(c/Z),a)+2,o>n&&(o=n,e.length=1),e.reverse(),n=o;n--;)e.push(0);e.reverse()}else{for(n=s.length,a=f.length,h=n<a,h&&(a=n),n=0;n<a;n++)if(s[n]!=f[n]){h=s[n]<f[n];break}o=0}for(h&&(e=s,s=f,f=e,r.s=-r.s),a=s.length,n=f.length-a;n>0;--n)s[a++]=0;for(n=f.length;n>o;){if(s[--n]<f[n]){for(i=n;i&&s[--i]===0;)s[i]=_e-1;--s[i],s[n]+=_e}s[n]-=f[n]}for(;s[--a]===0;)s.pop();for(;s[0]===0;s.shift())--t;return s[0]?(r.d=s,r.e=ai(s,t),K?$(r,c,l):r):new g(l===3?-0:0)};F.modulo=F.mod=function(r){var e,t=this,n=t.constructor;return r=new n(r),!t.d||!r.s||r.d&&!r.d[0]?new n(NaN):!r.d||t.d&&!t.d[0]?$(new n(t),n.precision,n.rounding):(K=!1,n.modulo==9?(e=dt(t,r.abs(),0,3,1),e.s*=r.s):e=dt(t,r,0,n.modulo,1),e=e.times(r),K=!0,t.minus(e))};F.naturalExponential=F.exp=function(){return Ji(this)};F.naturalLogarithm=F.ln=function(){return Ze(this)};F.negated=F.neg=function(){var r=new this.constructor(this);return r.s=-r.s,$(r)};F.plus=F.add=function(r){var e,t,n,i,o,a,c,l,s,u,h=this,f=h.constructor;if(r=new f(r),!h.d||!r.d)return!h.s||!r.s?r=new f(NaN):h.d||(r=new f(r.d||h.s===r.s?h:NaN)),r;if(h.s!=r.s)return r.s=-r.s,h.minus(r);if(s=h.d,u=r.d,c=f.precision,l=f.rounding,!s[0]||!u[0])return u[0]||(r=new f(h)),K?$(r,c,l):r;if(o=Wt(h.e/Z),n=Wt(r.e/Z),s=s.slice(),i=o-n,i){for(i<0?(t=s,i=-i,a=u.length):(t=u,n=o,a=s.length),o=Math.ceil(c/Z),a=o>a?o+1:a+1,i>a&&(i=a,t.length=1),t.reverse();i--;)t.push(0);t.reverse()}for(a=s.length,i=u.length,a-i<0&&(i=a,t=u,u=s,s=t),e=0;i;)e=(s[--i]=s[i]+u[i]+e)/_e|0,s[i]%=_e;for(e&&(s.unshift(e),++n),a=s.length;s[--a]==0;)s.pop();return r.d=s,r.e=ai(s,n),K?$(r,c,l):r};F.precision=F.sd=function(r){var e,t=this;if(r!==void 0&&r!==!!r&&r!==1&&r!==0)throw Error(Ke+r);return t.d?(e=zu(t.d),r&&t.e+1>e&&(e=t.e+1)):e=NaN,e};F.round=function(){var r=this,e=r.constructor;return $(new e(r),r.e+1,e.rounding)};F.sine=F.sin=function(){var r,e,t=this,n=t.constructor;return t.isFinite()?t.isZero()?new n(t):(r=n.precision,e=n.rounding,n.precision=r+Math.max(t.e,t.sd())+Z,n.rounding=1,t=Bd(n,Hu(n,t)),n.precision=r,n.rounding=e,$(Be>2?t.neg():t,r,e,!0)):new n(NaN)};F.squareRoot=F.sqrt=function(){var r,e,t,n,i,o,a=this,c=a.d,l=a.e,s=a.s,u=a.constructor;if(s!==1||!c||!c[0])return new u(!s||s<0&&(!c||c[0])?NaN:c?a:1/0);for(K=!1,s=Math.sqrt(+a),s==0||s==1/0?(e=Bt(c),(e.length+l)%2==0&&(e+="0"),s=Math.sqrt(e),l=Wt((l+1)/2)-(l<0||l%2),s==1/0?e="5e"+l:(e=s.toExponential(),e=e.slice(0,e.indexOf("e")+1)+l),n=new u(e)):n=new u(s.toString()),t=(l=u.precision)+3;;)if(o=n,n=o.plus(dt(a,o,t+2,1)).times(.5),Bt(o.d).slice(0,t)===(e=Bt(n.d)).slice(0,t))if(e=e.slice(t-3,t+1),e=="9999"||!i&&e=="4999"){if(!i&&($(o,l+1,0),o.times(o).eq(a))){n=o;break}t+=4,i=1}else{(!+e||!+e.slice(1)&&e.charAt(0)=="5")&&($(n,l+1,1),r=!n.times(n).eq(a));break}return K=!0,$(n,l,u.rounding,r)};F.tangent=F.tan=function(){var r,e,t=this,n=t.constructor;return t.isFinite()?t.isZero()?new n(t):(r=n.precision,e=n.rounding,n.precision=r+10,n.rounding=1,t=t.sin(),t.s=1,t=dt(t,new n(1).minus(t.times(t)).sqrt(),r+10,0),n.precision=r,n.rounding=e,$(Be==2||Be==4?t.neg():t,r,e,!0)):new n(NaN)};F.times=F.mul=function(r){var e,t,n,i,o,a,c,l,s,u=this,h=u.constructor,f=u.d,d=(r=new h(r)).d;if(r.s*=u.s,!f||!f[0]||!d||!d[0])return new h(!r.s||f&&!f[0]&&!d||d&&!d[0]&&!f?NaN:!f||!d?r.s/0:r.s*0);for(t=Wt(u.e/Z)+Wt(r.e/Z),l=f.length,s=d.length,l<s&&(o=f,f=d,d=o,a=l,l=s,s=a),o=[],a=l+s,n=a;n--;)o.push(0);for(n=s;--n>=0;){for(e=0,i=l+n;i>n;)c=o[i]+d[n]*f[i-n-1]+e,o[i--]=c%_e|0,e=c/_e|0;o[i]=(o[i]+e)%_e|0}for(;!o[--a];)o.pop();return e?++t:o.shift(),r.d=o,r.e=ai(o,t),K?$(r,h.precision,h.rounding):r};F.toBinary=function(r,e){return to(this,2,r,e)};F.toDecimalPlaces=F.toDP=function(r,e){var t=this,n=t.constructor;return t=new n(t),r===void 0?t:(Qt(r,0,Je),e===void 0?e=n.rounding:Qt(e,0,8),$(t,r+t.e+1,e))};F.toExponential=function(r,e){var t,n=this,i=n.constructor;return r===void 0?t=Pe(n,!0):(Qt(r,0,Je),e===void 0?e=i.rounding:Qt(e,0,8),n=$(new i(n),r+1,e),t=Pe(n,!0,r+1)),n.isNeg()&&!n.isZero()?"-"+t:t};F.toFixed=function(r,e){var t,n,i=this,o=i.constructor;return r===void 0?t=Pe(i):(Qt(r,0,Je),e===void 0?e=o.rounding:Qt(e,0,8),n=$(new o(i),r+i.e+1,e),t=Pe(n,!1,r+n.e+1)),i.isNeg()&&!i.isZero()?"-"+t:t};F.toFraction=function(r){var e,t,n,i,o,a,c,l,s,u,h,f,d=this,g=d.d,p=d.constructor;if(!g)return new p(d);if(s=t=new p(1),n=l=new p(0),e=new p(n),o=e.e=zu(g)-d.e-1,a=o%Z,e.d[0]=Pt(10,a<0?Z+a:a),r==null)r=o>0?e:s;else{if(c=new p(r),!c.isInt()||c.lt(s))throw Error(Ke+c);r=c.gt(e)?o>0?e:s:c}for(K=!1,c=new p(Bt(g)),u=p.precision,p.precision=o=g.length*Z*2;h=dt(c,e,0,1,1),i=t.plus(h.times(n)),i.cmp(r)!=1;)t=n,n=i,i=s,s=l.plus(h.times(i)),l=i,i=e,e=c.minus(h.times(i)),c=i;return i=dt(r.minus(t),n,0,1,1),l=l.plus(i.times(s)),t=t.plus(i.times(n)),l.s=s.s=d.s,f=dt(s,n,o,1).minus(d).abs().cmp(dt(l,t,o,1).minus(d).abs())<1?[s,n]:[l,t],p.precision=u,K=!0,f};F.toHexadecimal=F.toHex=function(r,e){return to(this,16,r,e)};F.toNearest=function(r,e){var t=this,n=t.constructor;if(t=new n(t),r==null){if(!t.d)return t;r=new n(1),e=n.rounding}else{if(r=new n(r),e===void 0?e=n.rounding:Qt(e,0,8),!t.d)return r.s?t:r;if(!r.d)return r.s&&(r.s=t.s),r}return r.d[0]?(K=!1,t=dt(t,r,0,e,1).times(r),K=!0,$(t)):(r.s=t.s,t=r),t};F.toNumber=function(){return+this};F.toOctal=function(r,e){return to(this,8,r,e)};F.toPower=F.pow=function(r){var e,t,n,i,o,a,c=this,l=c.constructor,s=+(r=new l(r));if(!c.d||!r.d||!c.d[0]||!r.d[0])return new l(Pt(+c,s));if(c=new l(c),c.eq(1))return c;if(n=l.precision,o=l.rounding,r.eq(1))return $(c,n,o);if(e=Wt(r.e/Z),e>=r.d.length-1&&(t=s<0?-s:s)<=Ld)return i=Gu(l,c,t,n),r.s<0?new l(1).div(i):$(i,n,o);if(a=c.s,a<0){if(e<r.d.length-1)return new l(NaN);if(r.d[e]&1||(a=1),c.e==0&&c.d[0]==1&&c.d.length==1)return c.s=a,c}return t=Pt(+c,s),e=t==0||!isFinite(t)?Wt(s*(Math.log("0."+Bt(c.d))/Math.LN10+c.e+1)):new l(t+"").e,e>l.maxE+1||e<l.minE-1?new l(e>0?a/0:0):(K=!1,l.rounding=c.s=1,t=Math.min(12,(e+"").length),i=Ji(r.times(Ze(c,n+t)),n),i.d&&(i=$(i,n+5,1),Zn(i.d,n,o)&&(e=n+10,i=$(Ji(r.times(Ze(c,e+t)),e),e+5,1),+Bt(i.d).slice(n+1,n+15)+1==1e14&&(i=$(i,n+1,0)))),i.s=a,K=!0,l.rounding=o,$(i,n,o))};F.toPrecision=function(r,e){var t,n=this,i=n.constructor;return r===void 0?t=Pe(n,n.e<=i.toExpNeg||n.e>=i.toExpPos):(Qt(r,1,Je),e===void 0?e=i.rounding:Qt(e,0,8),n=$(new i(n),r,e),t=Pe(n,r<=n.e||n.e<=i.toExpNeg,r)),n.isNeg()&&!n.isZero()?"-"+t:t};F.toSignificantDigits=F.toSD=function(r,e){var t=this,n=t.constructor;return r===void 0?(r=n.precision,e=n.rounding):(Qt(r,1,Je),e===void 0?e=n.rounding:Qt(e,0,8)),$(new n(t),r,e)};F.toString=function(){var r=this,e=r.constructor,t=Pe(r,r.e<=e.toExpNeg||r.e>=e.toExpPos);return r.isNeg()&&!r.isZero()?"-"+t:t};F.truncated=F.trunc=function(){return $(new this.constructor(this),this.e+1,1)};F.valueOf=F.toJSON=function(){var r=this,e=r.constructor,t=Pe(r,r.e<=e.toExpNeg||r.e>=e.toExpPos);return r.isNeg()?"-"+t:t};function Bt(r){var e,t,n,i=r.length-1,o="",a=r[0];if(i>0){for(o+=a,e=1;e<i;e++)n=r[e]+"",t=Z-n.length,t&&(o+=$e(t)),o+=n;a=r[e],n=a+"",t=Z-n.length,t&&(o+=$e(t))}else if(a===0)return"0";for(;a%10===0;)a/=10;return o+a}function Qt(r,e,t){if(r!==~~r||r<e||r>t)throw Error(Ke+r)}function Zn(r,e,t,n){var i,o,a,c;for(o=r[0];o>=10;o/=10)--e;return--e<0?(e+=Z,i=0):(i=Math.ceil((e+1)/Z),e%=Z),o=Pt(10,Z-e),c=r[i]%o|0,n==null?e<3?(e==0?c=c/100|0:e==1&&(c=c/10|0),a=t<4&&c==99999||t>3&&c==49999||c==5e4||c==0):a=(t<4&&c+1==o||t>3&&c+1==o/2)&&(r[i+1]/o/100|0)==Pt(10,e-2)-1||(c==o/2||c==0)&&(r[i+1]/o/100|0)==0:e<4?(e==0?c=c/1e3|0:e==1?c=c/100|0:e==2&&(c=c/10|0),a=(n||t<4)&&c==9999||!n&&t>3&&c==4999):a=((n||t<4)&&c+1==o||!n&&t>3&&c+1==o/2)&&(r[i+1]/o/1e3|0)==Pt(10,e-3)-1,a}function ni(r,e,t){for(var n,i=[0],o,a=0,c=r.length;a<c;){for(o=i.length;o--;)i[o]*=e;for(i[0]+=$i.indexOf(r.charAt(a++)),n=0;n<i.length;n++)i[n]>t-1&&(i[n+1]===void 0&&(i[n+1]=0),i[n+1]+=i[n]/t|0,i[n]%=t)}return i.reverse()}function Fd(r,e){var t,n,i;if(e.isZero())return e;n=e.d.length,n<32?(t=Math.ceil(n/3),i=(1/ui(4,t)).toString()):(t=16,i="2.3283064365386962890625e-10"),r.precision+=t,e=Pn(r,1,e.times(i),new r(1));for(var o=t;o--;){var a=e.times(e);e=a.times(a).minus(a).times(8).plus(1)}return r.precision-=t,e}var dt=function(){function r(n,i,o){var a,c=0,l=n.length;for(n=n.slice();l--;)a=n[l]*i+c,n[l]=a%o|0,c=a/o|0;return c&&n.unshift(c),n}function e(n,i,o,a){var c,l;if(o!=a)l=o>a?1:-1;else for(c=l=0;c<o;c++)if(n[c]!=i[c]){l=n[c]>i[c]?1:-1;break}return l}function t(n,i,o,a){for(var c=0;o--;)n[o]-=c,c=n[o]<i[o]?1:0,n[o]=c*a+n[o]-i[o];for(;!n[0]&&n.length>1;)n.shift()}return function(n,i,o,a,c,l){var s,u,h,f,d,g,p,m,v,b,y,S,x,_,M,w,C,P,D,R,W=n.constructor,G=n.s==i.s?1:-1,k=n.d,L=i.d;if(!k||!k[0]||!L||!L[0])return new W(!n.s||!i.s||(k?L&&k[0]==L[0]:!L)?NaN:k&&k[0]==0||!L?G*0:G/0);for(l?(d=1,u=n.e-i.e):(l=_e,d=Z,u=Wt(n.e/d)-Wt(i.e/d)),D=L.length,C=k.length,v=new W(G),b=v.d=[],h=0;L[h]==(k[h]||0);h++);if(L[h]>(k[h]||0)&&u--,o==null?(_=o=W.precision,a=W.rounding):c?_=o+(n.e-i.e)+1:_=o,_<0)b.push(1),g=!0;else{if(_=_/d+2|0,h=0,D==1){for(f=0,L=L[0],_++;(h<C||f)&&_--;h++)M=f*l+(k[h]||0),b[h]=M/L|0,f=M%L|0;g=f||h<C}else{for(f=l/(L[0]+1)|0,f>1&&(L=r(L,f,l),k=r(k,f,l),D=L.length,C=k.length),w=D,y=k.slice(0,D),S=y.length;S<D;)y[S++]=0;R=L.slice(),R.unshift(0),P=L[0],L[1]>=l/2&&++P;do f=0,s=e(L,y,D,S),s<0?(x=y[0],D!=S&&(x=x*l+(y[1]||0)),f=x/P|0,f>1?(f>=l&&(f=l-1),p=r(L,f,l),m=p.length,S=y.length,s=e(p,y,m,S),s==1&&(f--,t(p,D<m?R:L,m,l))):(f==0&&(s=f=1),p=L.slice()),m=p.length,m<S&&p.unshift(0),t(y,p,S,l),s==-1&&(S=y.length,s=e(L,y,D,S),s<1&&(f++,t(y,D<S?R:L,S,l))),S=y.length):s===0&&(f++,y=[0]),b[h++]=f,s&&y[0]?y[S++]=k[w]||0:(y=[k[w]],S=1);while((w++<C||y[0]!==void 0)&&_--);g=y[0]!==void 0}b[0]||b.shift()}if(d==1)v.e=u,Lu=g;else{for(h=1,f=b[0];f>=10;f/=10)h++;v.e=h+u*d-1,$(v,c?o+v.e+1:o,a,g)}return v}}();function $(r,e,t,n){var i,o,a,c,l,s,u,h,f,d=r.constructor;t:if(e!=null){if(h=r.d,!h)return r;for(i=1,c=h[0];c>=10;c/=10)i++;if(o=e-i,o<0)o+=Z,a=e,u=h[f=0],l=u/Pt(10,i-a-1)%10|0;else if(f=Math.ceil((o+1)/Z),c=h.length,f>=c)if(n){for(;c++<=f;)h.push(0);u=l=0,i=1,o%=Z,a=o-Z+1}else break t;else{for(u=c=h[f],i=1;c>=10;c/=10)i++;o%=Z,a=o-Z+i,l=a<0?0:u/Pt(10,i-a-1)%10|0}if(n=n||e<0||h[f+1]!==void 0||(a<0?u:u%Pt(10,i-a-1)),s=t<4?(l||n)&&(t==0||t==(r.s<0?3:2)):l>5||l==5&&(t==4||n||t==6&&(o>0?a>0?u/Pt(10,i-a):0:h[f-1])%10&1||t==(r.s<0?8:7)),e<1||!h[0])return h.length=0,s?(e-=r.e+1,h[0]=Pt(10,(Z-e%Z)%Z),r.e=-e||0):h[0]=r.e=0,r;if(o==0?(h.length=f,c=1,f--):(h.length=f+1,c=Pt(10,Z-o),h[f]=a>0?(u/Pt(10,i-a)%Pt(10,a)|0)*c:0),s)for(;;)if(f==0){for(o=1,a=h[0];a>=10;a/=10)o++;for(a=h[0]+=c,c=1;a>=10;a/=10)c++;o!=c&&(r.e++,h[0]==_e&&(h[0]=1));break}else{if(h[f]+=c,h[f]!=_e)break;h[f--]=0,c=1}for(o=h.length;h[--o]===0;)h.pop()}return K&&(r.e>d.maxE?(r.d=null,r.e=NaN):r.e<d.minE&&(r.e=0,r.d=[0])),r}function Pe(r,e,t){if(!r.isFinite())return Vu(r);var n,i=r.e,o=Bt(r.d),a=o.length;return e?(t&&(n=t-a)>0?o=o.charAt(0)+"."+o.slice(1)+$e(n):a>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(r.e<0?"e":"e+")+r.e):i<0?(o="0."+$e(-i-1)+o,t&&(n=t-a)>0&&(o+=$e(n))):i>=a?(o+=$e(i+1-a),t&&(n=t-i-1)>0&&(o=o+"."+$e(n))):((n=i+1)<a&&(o=o.slice(0,n)+"."+o.slice(n)),t&&(n=t-a)>0&&(i+1===a&&(o+="."),o+=$e(n))),o}function ai(r,e){var t=r[0];for(e*=Z;t>=10;t/=10)e++;return e}function oi(r,e,t){if(e>Od)throw K=!0,t&&(r.precision=t),Error(Ou);return $(new r(ri),e,1,!0)}function ve(r,e,t){if(e>Ki)throw Error(Ou);return $(new r(ii),e,t,!0)}function zu(r){var e=r.length-1,t=e*Z+1;if(e=r[e],e){for(;e%10==0;e/=10)t--;for(e=r[0];e>=10;e/=10)t++}return t}function $e(r){for(var e="";r--;)e+="0";return e}function Gu(r,e,t,n){var i,o=new r(1),a=Math.ceil(n/Z+4);for(K=!1;;){if(t%2&&(o=o.times(e),Ru(o.d,a)&&(i=!0)),t=Wt(t/2),t===0){t=o.d.length-1,i&&o.d[t]===0&&++o.d[t];break}e=e.times(e),Ru(e.d,a)}return K=!0,o}function Iu(r){return r.d[r.d.length-1]&1}function ku(r,e,t){for(var n,i=new r(e[0]),o=0;++o<e.length;)if(n=new r(e[o]),n.s)i[t](n)&&(i=n);else{i=n;break}return i}function Ji(r,e){var t,n,i,o,a,c,l,s=0,u=0,h=0,f=r.constructor,d=f.rounding,g=f.precision;if(!r.d||!r.d[0]||r.e>17)return new f(r.d?r.d[0]?r.s<0?0:1/0:1:r.s?r.s<0?0:r:NaN);for(e==null?(K=!1,l=g):l=e,c=new f(.03125);r.e>-2;)r=r.times(c),h+=5;for(n=Math.log(Pt(2,h))/Math.LN10*2+5|0,l+=n,t=o=a=new f(1),f.precision=l;;){if(o=$(o.times(r),l,1),t=t.times(++u),c=a.plus(dt(o,t,l,1)),Bt(c.d).slice(0,l)===Bt(a.d).slice(0,l)){for(i=h;i--;)a=$(a.times(a),l,1);if(e==null)if(s<3&&Zn(a.d,l-n,d,s))f.precision=l+=10,t=o=c=new f(1),u=0,s++;else return $(a,f.precision=g,d,K=!0);else return f.precision=g,a}a=c}}function Ze(r,e){var t,n,i,o,a,c,l,s,u,h,f,d=1,g=10,p=r,m=p.d,v=p.constructor,b=v.rounding,y=v.precision;if(p.s<0||!m||!m[0]||!p.e&&m[0]==1&&m.length==1)return new v(m&&!m[0]?-1/0:p.s!=1?NaN:m?0:p);if(e==null?(K=!1,u=y):u=e,v.precision=u+=g,t=Bt(m),n=t.charAt(0),Math.abs(o=p.e)<15e14){for(;n<7&&n!=1||n==1&&t.charAt(1)>3;)p=p.times(r),t=Bt(p.d),n=t.charAt(0),d++;o=p.e,n>1?(p=new v("0."+t),o++):p=new v(n+"."+t.slice(1))}else return s=oi(v,u+2,y).times(o+""),p=Ze(new v(n+"."+t.slice(1)),u-g).plus(s),v.precision=y,e==null?$(p,y,b,K=!0):p;for(h=p,l=a=p=dt(p.minus(1),p.plus(1),u,1),f=$(p.times(p),u,1),i=3;;){if(a=$(a.times(f),u,1),s=l.plus(dt(a,new v(i),u,1)),Bt(s.d).slice(0,u)===Bt(l.d).slice(0,u))if(l=l.times(2),o!==0&&(l=l.plus(oi(v,u+2,y).times(o+""))),l=dt(l,new v(d),u,1),e==null)if(Zn(l.d,u-g,b,c))v.precision=u+=g,s=a=p=dt(h.minus(1),h.plus(1),u,1),f=$(p.times(p),u,1),i=c=1;else return $(l,v.precision=y,b,K=!0);else return v.precision=y,l;l=s,i+=2}}function Vu(r){return String(r.s*r.s/0)}function Qi(r,e){var t,n,i;for((t=e.indexOf("."))>-1&&(e=e.replace(".","")),(n=e.search(/e/i))>0?(t<0&&(t=n),t+=+e.slice(n+1),e=e.substring(0,n)):t<0&&(t=e.length),n=0;e.charCodeAt(n)===48;n++);for(i=e.length;e.charCodeAt(i-1)===48;--i);if(e=e.slice(n,i),e){if(i-=n,r.e=t=t-n-1,r.d=[],n=(t+1)%Z,t<0&&(n+=Z),n<i){for(n&&r.d.push(+e.slice(0,n)),i-=Z;n<i;)r.d.push(+e.slice(n,n+=Z));e=e.slice(n),n=Z-e.length}else n-=i;for(;n--;)e+="0";r.d.push(+e),K&&(r.e>r.constructor.maxE?(r.d=null,r.e=NaN):r.e<r.constructor.minE&&(r.e=0,r.d=[0]))}else r.e=0,r.d=[0];return r}function Ud(r,e){var t,n,i,o,a,c,l,s,u;if(e.indexOf("_")>-1){if(e=e.replace(/(\d)_(?=\d)/g,"$1"),Bu.test(e))return Qi(r,e)}else if(e==="Infinity"||e==="NaN")return+e||(r.s=NaN),r.e=NaN,r.d=null,r;if(Rd.test(e))t=16,e=e.toLowerCase();else if(Id.test(e))t=2;else if(Nd.test(e))t=8;else throw Error(Ke+e);for(o=e.search(/p/i),o>0?(l=+e.slice(o+1),e=e.substring(2,o)):e=e.slice(2),o=e.indexOf("."),a=o>=0,n=r.constructor,a&&(e=e.replace(".",""),c=e.length,o=c-o,i=Gu(n,new n(t),o,o*2)),s=ni(e,t,_e),u=s.length-1,o=u;s[o]===0;--o)s.pop();return o<0?new n(r.s*0):(r.e=ai(s,u),r.d=s,K=!1,a&&(r=dt(r,i,c*4)),l&&(r=r.times(Math.abs(l)<54?Pt(2,l):Kn.pow(2,l))),K=!0,r)}function Bd(r,e){var t,n=e.d.length;if(n<3)return e.isZero()?e:Pn(r,2,e,e);t=1.4*Math.sqrt(n),t=t>16?16:t|0,e=e.times(1/ui(5,t)),e=Pn(r,2,e,e);for(var i,o=new r(5),a=new r(16),c=new r(20);t--;)i=e.times(e),e=e.times(o.plus(i.times(a.times(i).minus(c))));return e}function Pn(r,e,t,n,i){var o,a,c,l,s=1,u=r.precision,h=Math.ceil(u/Z);for(K=!1,l=t.times(t),c=new r(n);;){if(a=dt(c.times(l),new r(e++*e++),u,1),c=i?n.plus(a):n.minus(a),n=dt(a.times(l),new r(e++*e++),u,1),a=c.plus(n),a.d[h]!==void 0){for(o=h;a.d[o]===c.d[o]&&o--;);if(o==-1)break}o=c,c=n,n=a,a=o,s++}return K=!0,a.d.length=h+1,a}function ui(r,e){for(var t=r;--e;)t*=r;return t}function Hu(r,e){var t,n=e.s<0,i=ve(r,r.precision,1),o=i.times(.5);if(e=e.abs(),e.lte(o))return Be=n?4:1,e;if(t=e.divToInt(i),t.isZero())Be=n?3:2;else{if(e=e.minus(t.times(i)),e.lte(o))return Be=Iu(t)?n?2:3:n?4:1,e;Be=Iu(t)?n?1:4:n?3:2}return e.minus(i).abs()}function to(r,e,t,n){var i,o,a,c,l,s,u,h,f,d=r.constructor,g=t!==void 0;if(g?(Qt(t,1,Je),n===void 0?n=d.rounding:Qt(n,0,8)):(t=d.precision,n=d.rounding),!r.isFinite())u=Vu(r);else{for(u=Pe(r),a=u.indexOf("."),g?(i=2,e==16?t=t*4-3:e==8&&(t=t*3-2)):i=e,a>=0&&(u=u.replace(".",""),f=new d(1),f.e=u.length-a,f.d=ni(Pe(f),10,i),f.e=f.d.length),h=ni(u,10,i),o=l=h.length;h[--l]==0;)h.pop();if(!h[0])u=g?"0p+0":"0";else{if(a<0?o--:(r=new d(r),r.d=h,r.e=o,r=dt(r,f,t,n,0,i),h=r.d,o=r.e,s=Lu),a=h[t],c=i/2,s=s||h[t+1]!==void 0,s=n<4?(a!==void 0||s)&&(n===0||n===(r.s<0?3:2)):a>c||a===c&&(n===4||s||n===6&&h[t-1]&1||n===(r.s<0?8:7)),h.length=t,s)for(;++h[--t]>i-1;)h[t]=0,t||(++o,h.unshift(1));for(l=h.length;!h[l-1];--l);for(a=0,u="";a<l;a++)u+=$i.charAt(h[a]);if(g){if(l>1)if(e==16||e==8){for(a=e==16?4:3,--l;l%a;l++)u+="0";for(h=ni(u,i,e),l=h.length;!h[l-1];--l);for(a=1,u="1.";a<l;a++)u+=$i.charAt(h[a])}else u=u.charAt(0)+"."+u.slice(1);u=u+(o<0?"p":"p+")+o}else if(o<0){for(;++o;)u="0"+u;u="0."+u}else if(++o>l)for(o-=l;o--;)u+="0";else o<l&&(u=u.slice(0,o)+"."+u.slice(o))}u=(e==16?"0x":e==2?"0b":e==8?"0o":"")+u}return r.s<0?"-"+u:u}function Ru(r,e){if(r.length>e)return r.length=e,!0}function zd(r){return new this(r).abs()}function Gd(r){return new this(r).acos()}function kd(r){return new this(r).acosh()}function Vd(r,e){return new this(r).plus(e)}function Hd(r){return new this(r).asin()}function Wd(r){return new this(r).asinh()}function qd(r){return new this(r).atan()}function Xd(r){return new this(r).atanh()}function jd(r,e){r=new this(r),e=new this(e);var t,n=this.precision,i=this.rounding,o=n+4;return!r.s||!e.s?t=new this(NaN):!r.d&&!e.d?(t=ve(this,o,1).times(e.s>0?.25:.75),t.s=r.s):!e.d||r.isZero()?(t=e.s<0?ve(this,n,i):new this(0),t.s=r.s):!r.d||e.isZero()?(t=ve(this,o,1).times(.5),t.s=r.s):e.s<0?(this.precision=o,this.rounding=1,t=this.atan(dt(r,e,o,1)),e=ve(this,o,1),this.precision=n,this.rounding=i,t=r.s<0?t.minus(e):t.plus(e)):t=this.atan(dt(r,e,o,1)),t}function Yd(r){return new this(r).cbrt()}function $d(r){return $(r=new this(r),r.e+1,2)}function Zd(r,e,t){return new this(r).clamp(e,t)}function Kd(r){if(!r||typeof r!="object")throw Error(si+"Object expected");var e,t,n,i=r.defaults===!0,o=["precision",1,Je,"rounding",0,8,"toExpNeg",-An,0,"toExpPos",0,An,"maxE",0,An,"minE",-An,0,"modulo",0,9];for(e=0;e<o.length;e+=3)if(t=o[e],i&&(this[t]=Zi[t]),(n=r[t])!==void 0)if(Wt(n)===n&&n>=o[e+1]&&n<=o[e+2])this[t]=n;else throw Error(Ke+t+": "+n);if(t="crypto",i&&(this[t]=Zi[t]),(n=r[t])!==void 0)if(n===!0||n===!1||n===0||n===1)if(n)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[t]=!0;else throw Error(Fu);else this[t]=!1;else throw Error(Ke+t+": "+n);return this}function Jd(r){return new this(r).cos()}function Qd(r){return new this(r).cosh()}function Wu(r){var e,t,n;function i(o){var a,c,l,s=this;if(!(s instanceof i))return new i(o);if(s.constructor=i,Nu(o)){s.s=o.s,K?!o.d||o.e>i.maxE?(s.e=NaN,s.d=null):o.e<i.minE?(s.e=0,s.d=[0]):(s.e=o.e,s.d=o.d.slice()):(s.e=o.e,s.d=o.d?o.d.slice():o.d);return}if(l=typeof o,l==="number"){if(o===0){s.s=1/o<0?-1:1,s.e=0,s.d=[0];return}if(o<0?(o=-o,s.s=-1):s.s=1,o===~~o&&o<1e7){for(a=0,c=o;c>=10;c/=10)a++;K?a>i.maxE?(s.e=NaN,s.d=null):a<i.minE?(s.e=0,s.d=[0]):(s.e=a,s.d=[o]):(s.e=a,s.d=[o]);return}else if(o*0!==0){o||(s.s=NaN),s.e=NaN,s.d=null;return}return Qi(s,o.toString())}else if(l!=="string")throw Error(Ke+o);return(c=o.charCodeAt(0))===45?(o=o.slice(1),s.s=-1):(c===43&&(o=o.slice(1)),s.s=1),Bu.test(o)?Qi(s,o):Ud(s,o)}if(i.prototype=F,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.EUCLID=9,i.config=i.set=Kd,i.clone=Wu,i.isDecimal=Nu,i.abs=zd,i.acos=Gd,i.acosh=kd,i.add=Vd,i.asin=Hd,i.asinh=Wd,i.atan=qd,i.atanh=Xd,i.atan2=jd,i.cbrt=Yd,i.ceil=$d,i.clamp=Zd,i.cos=Jd,i.cosh=Qd,i.div=tg,i.exp=eg,i.floor=ng,i.hypot=rg,i.ln=ig,i.log=og,i.log10=ag,i.log2=sg,i.max=ug,i.min=lg,i.mod=cg,i.mul=hg,i.pow=pg,i.random=fg,i.round=dg,i.sign=gg,i.sin=mg,i.sinh=yg,i.sqrt=vg,i.sub=_g,i.sum=xg,i.tan=Eg,i.tanh=bg,i.trunc=Sg,r===void 0&&(r={}),r&&r.defaults!==!0)for(n=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],e=0;e<n.length;)r.hasOwnProperty(t=n[e++])||(r[t]=this[t]);return i.config(r),i}function tg(r,e){return new this(r).div(e)}function eg(r){return new this(r).exp()}function ng(r){return $(r=new this(r),r.e+1,3)}function rg(){var r,e,t=new this(0);for(K=!1,r=0;r<arguments.length;)if(e=new this(arguments[r++]),e.d)t.d&&(t=t.plus(e.times(e)));else{if(e.s)return K=!0,new this(1/0);t=e}return K=!0,t.sqrt()}function Nu(r){return r instanceof Kn||r&&r.toStringTag===Uu||!1}function ig(r){return new this(r).ln()}function og(r,e){return new this(r).log(e)}function sg(r){return new this(r).log(2)}function ag(r){return new this(r).log(10)}function ug(){return ku(this,arguments,"lt")}function lg(){return ku(this,arguments,"gt")}function cg(r,e){return new this(r).mod(e)}function hg(r,e){return new this(r).mul(e)}function pg(r,e){return new this(r).pow(e)}function fg(r){var e,t,n,i,o=0,a=new this(1),c=[];if(r===void 0?r=this.precision:Qt(r,1,Je),n=Math.ceil(r/Z),this.crypto)if(crypto.getRandomValues)for(e=crypto.getRandomValues(new Uint32Array(n));o<n;)i=e[o],i>=429e7?e[o]=crypto.getRandomValues(new Uint32Array(1))[0]:c[o++]=i%1e7;else if(crypto.randomBytes){for(e=crypto.randomBytes(n*=4);o<n;)i=e[o]+(e[o+1]<<8)+(e[o+2]<<16)+((e[o+3]&127)<<24),i>=214e7?crypto.randomBytes(4).copy(e,o):(c.push(i%1e7),o+=4);o=n/4}else throw Error(Fu);else for(;o<n;)c[o++]=Math.random()*1e7|0;for(n=c[--o],r%=Z,n&&r&&(i=Pt(10,Z-r),c[o]=(n/i|0)*i);c[o]===0;o--)c.pop();if(o<0)t=0,c=[0];else{for(t=-1;c[0]===0;t-=Z)c.shift();for(n=1,i=c[0];i>=10;i/=10)n++;n<Z&&(t-=Z-n)}return a.e=t,a.d=c,a}function dg(r){return $(r=new this(r),r.e+1,this.rounding)}function gg(r){return r=new this(r),r.d?r.d[0]?r.s:0*r.s:r.s||NaN}function mg(r){return new this(r).sin()}function yg(r){return new this(r).sinh()}function vg(r){return new this(r).sqrt()}function _g(r,e){return new this(r).sub(e)}function xg(){var r=0,e=arguments,t=new this(e[r]);for(K=!1;t.s&&++r<e.length;)t=t.plus(e[r]);return K=!0,$(t,this.precision,this.rounding)}function Eg(r){return new this(r).tan()}function bg(r){return new this(r).tanh()}function Sg(r){return $(r=new this(r),r.e+1,1)}F[Symbol.for("nodejs.util.inspect.custom")]=F.toString;F[Symbol.toStringTag]="Decimal";var Kn=F.constructor=Wu(Zi);ri=new Kn(ri);ii=new Kn(ii);var Jn=Kn;var Mg="BigNumber",wg=["?on","config"],eo=N(Mg,wg,r=>{var{on:e,config:t}=r,n=Jn.clone({precision:t.precision,modulo:Jn.EUCLID});return n.prototype=Object.create(n.prototype),n.prototype.type="BigNumber",n.prototype.isBigNumber=!0,n.prototype.toJSON=function(){return{mathjs:"BigNumber",value:this.toString()}},n.fromJSON=function(i){return new n(i.value)},e&&e("config",function(i,o){i.precision!==o.precision&&n.config({precision:i.precision})}),n},{isClass:!0});var Nt=pn(Xu(),1);var Tg="Complex",Cg=[],ro=N(Tg,Cg,()=>(Object.defineProperty(Nt.default,"name",{value:"Complex"}),Nt.default.prototype.constructor=Nt.default,Nt.default.prototype.type="Complex",Nt.default.prototype.isComplex=!0,Nt.default.prototype.toJSON=function(){return{mathjs:"Complex",re:this.re,im:this.im}},Nt.default.prototype.toPolar=function(){return{r:this.abs(),phi:this.arg()}},Nt.default.prototype.format=function(r){var e="",t=this.im,n=this.re,i=$n(this.re,r),o=$n(this.im,r),a=nt(r)?r:r?r.precision:null;if(a!==null){var c=Math.pow(10,-a);Math.abs(n/t)<c&&(n=0),Math.abs(t/n)<c&&(t=0)}return t===0?e=i:n===0?t===1?e="i":t===-1?e="-i":e=o+"i":t<0?t===-1?e=i+" - i":e=i+" - "+o.substring(1)+"i":t===1?e=i+" + i":e=i+" + "+o+"i",e},Nt.default.fromPolar=function(r){switch(arguments.length){case 1:{var e=arguments[0];if(typeof e=="object")return(0,Nt.default)(e);throw new TypeError("Input has to be an object with r and phi keys.")}case 2:{var t=arguments[0],n=arguments[1];if(nt(t)){if(Zr(n)&&n.hasBase("ANGLE")&&(n=n.toNumber("rad")),nt(n))return new Nt.default({r:t,phi:n});throw new TypeError("Phi is not a number nor an angle unit.")}else throw new TypeError("Radius r is not a number.")}default:throw new SyntaxError("Wrong number of arguments in function fromPolar")}},Nt.default.prototype.valueOf=Nt.default.prototype.toString,Nt.default.fromJSON=function(r){return new Nt.default(r)},Nt.default.compare=function(r,e){return r.re>e.re?1:r.re<e.re?-1:r.im>e.im?1:r.im<e.im?-1:0},Nt.default),{isClass:!0});var Ag=2e3,X={s:1,n:0,d:1};function ze(r,e){if(isNaN(r=parseInt(r,10)))throw li();return r*e}function bt(r,e){if(e===0)throw io();var t=Object.create(Lt.prototype);t.s=r<0?-1:1,r=r<0?-r:r;var n=Dn(r,e);return t.n=r/n,t.d=e/n,t}function ju(r){for(var e={},t=r,n=2,i=4;i<=t;){for(;t%n===0;)t/=n,e[n]=(e[n]||0)+1;i+=1+2*n++}return t!==r?t>1&&(e[t]=(e[t]||0)+1):e[r]=(e[r]||0)+1,e}var oe=function(r,e){var t=0,n=1,i=1,o=0,a=0,c=0,l=1,s=1,u=0,h=1,f=1,d=1,g=1e7,p;if(r!=null)if(e!==void 0){if(t=r,n=e,i=t*n,t%1!==0||n%1!==0)throw Rg()}else switch(typeof r){case"object":{if("d"in r&&"n"in r)t=r.n,n=r.d,"s"in r&&(t*=r.s);else if(0 in r)t=r[0],1 in r&&(n=r[1]);else throw li();i=t*n;break}case"number":{if(r<0&&(i=r,r=-r),r%1===0)t=r;else if(r>0){for(r>=1&&(s=Math.pow(10,Math.floor(1+Math.log(r)/Math.LN10)),r/=s);h<=g&&d<=g;)if(p=(u+f)/(h+d),r===p){h+d<=g?(t=u+f,n=h+d):d>h?(t=f,n=d):(t=u,n=h);break}else r>p?(u+=f,h+=d):(f+=u,d+=h),h>g?(t=f,n=d):(t=u,n=h);t*=s}else(isNaN(r)||isNaN(e))&&(n=t=NaN);break}case"string":{if(h=r.match(/\d+|./g),h===null)throw li();if(h[u]==="-"?(i=-1,u++):h[u]==="+"&&u++,h.length===u+1?a=ze(h[u++],i):h[u+1]==="."||h[u]==="."?(h[u]!=="."&&(o=ze(h[u++],i)),u++,(u+1===h.length||h[u+1]==="("&&h[u+3]===")"||h[u+1]==="'"&&h[u+3]==="'")&&(a=ze(h[u],i),l=Math.pow(10,h[u].length),u++),(h[u]==="("&&h[u+2]===")"||h[u]==="'"&&h[u+2]==="'")&&(c=ze(h[u+1],i),s=Math.pow(10,h[u+1].length)-1,u+=3)):h[u+1]==="/"||h[u+1]===":"?(a=ze(h[u],i),l=ze(h[u+2],1),u+=3):h[u+3]==="/"&&h[u+1]===" "&&(o=ze(h[u],i),a=ze(h[u+2],i),l=ze(h[u+4],1),u+=5),h.length<=u){n=l*s,i=t=c+n*o+s*a;break}}default:throw li()}if(n===0)throw io();X.s=i<0?-1:1,X.n=Math.abs(t),X.d=Math.abs(n)};function Pg(r,e,t){for(var n=1;e>0;r=r*r%t,e>>=1)e&1&&(n=n*r%t);return n}function Dg(r,e){for(;e%2===0;e/=2);for(;e%5===0;e/=5);if(e===1)return 0;for(var t=10%e,n=1;t!==1;n++)if(t=t*10%e,n>Ag)return 0;return n}function Ig(r,e,t){for(var n=1,i=Pg(10,t,e),o=0;o<300;o++){if(n===i)return o;n=n*10%e,i=i*10%e}return 0}function Dn(r,e){if(!r)return e;if(!e)return r;for(;;){if(r%=e,!r)return e;if(e%=r,!e)return r}}function Lt(r,e){if(oe(r,e),this instanceof Lt)r=Dn(X.d,X.n),this.s=X.s,this.n=X.n/r,this.d=X.d/r;else return bt(X.s*X.n,X.d)}var io=function(){return new Error("Division by Zero")},li=function(){return new Error("Invalid argument")},Rg=function(){return new Error("Parameters must be integer")};Lt.prototype={s:1,n:0,d:1,abs:function(){return bt(this.n,this.d)},neg:function(){return bt(-this.s*this.n,this.d)},add:function(r,e){return oe(r,e),bt(this.s*this.n*X.d+X.s*this.d*X.n,this.d*X.d)},sub:function(r,e){return oe(r,e),bt(this.s*this.n*X.d-X.s*this.d*X.n,this.d*X.d)},mul:function(r,e){return oe(r,e),bt(this.s*X.s*this.n*X.n,this.d*X.d)},div:function(r,e){return oe(r,e),bt(this.s*X.s*this.n*X.d,this.d*X.n)},clone:function(){return bt(this.s*this.n,this.d)},mod:function(r,e){if(isNaN(this.n)||isNaN(this.d))return new Lt(NaN);if(r===void 0)return bt(this.s*this.n%this.d,1);if(oe(r,e),X.n===0&&this.d===0)throw io();return bt(this.s*(X.d*this.n)%(X.n*this.d),X.d*this.d)},gcd:function(r,e){return oe(r,e),bt(Dn(X.n,this.n)*Dn(X.d,this.d),X.d*this.d)},lcm:function(r,e){return oe(r,e),X.n===0&&this.n===0?bt(0,1):bt(X.n*this.n,Dn(X.n,this.n)*Dn(X.d,this.d))},ceil:function(r){return r=Math.pow(10,r||0),isNaN(this.n)||isNaN(this.d)?new Lt(NaN):bt(Math.ceil(r*this.s*this.n/this.d),r)},floor:function(r){return r=Math.pow(10,r||0),isNaN(this.n)||isNaN(this.d)?new Lt(NaN):bt(Math.floor(r*this.s*this.n/this.d),r)},round:function(r){return r=Math.pow(10,r||0),isNaN(this.n)||isNaN(this.d)?new Lt(NaN):bt(Math.round(r*this.s*this.n/this.d),r)},roundTo:function(r,e){return oe(r,e),bt(this.s*Math.round(this.n*X.d/(this.d*X.n))*X.n,X.d)},inverse:function(){return bt(this.s*this.d,this.n)},pow:function(r,e){if(oe(r,e),X.d===1)return X.s<0?bt(Math.pow(this.s*this.d,X.n),Math.pow(this.n,X.n)):bt(Math.pow(this.s*this.n,X.n),Math.pow(this.d,X.n));if(this.s<0)return null;var t=ju(this.n),n=ju(this.d),i=1,o=1;for(var a in t)if(a!=="1"){if(a==="0"){i=0;break}if(t[a]*=X.n,t[a]%X.d===0)t[a]/=X.d;else return null;i*=Math.pow(a,t[a])}for(var a in n)if(a!=="1"){if(n[a]*=X.n,n[a]%X.d===0)n[a]/=X.d;else return null;o*=Math.pow(a,n[a])}return X.s<0?bt(o,i):bt(i,o)},equals:function(r,e){return oe(r,e),this.s*this.n*X.d===X.s*X.n*this.d},compare:function(r,e){oe(r,e);var t=this.s*this.n*X.d-X.s*X.n*this.d;return(0<t)-(t<0)},simplify:function(r){if(isNaN(this.n)||isNaN(this.d))return this;r=r||.001;for(var e=this.abs(),t=e.toContinued(),n=1;n<t.length;n++){for(var i=bt(t[n-1],1),o=n-2;o>=0;o--)i=i.inverse().add(t[o]);if(Math.abs(i.sub(e).valueOf())<r)return i.mul(this.s)}return this},divisible:function(r,e){return oe(r,e),!(!(X.n*this.d)||this.n*X.d%(X.n*this.d))},valueOf:function(){return this.s*this.n/this.d},toFraction:function(r){var e,t="",n=this.n,i=this.d;return this.s<0&&(t+="-"),i===1?t+=n:(r&&(e=Math.floor(n/i))>0&&(t+=e,t+=" ",n%=i),t+=n,t+="/",t+=i),t},toLatex:function(r){var e,t="",n=this.n,i=this.d;return this.s<0&&(t+="-"),i===1?t+=n:(r&&(e=Math.floor(n/i))>0&&(t+=e,n%=i),t+="\\frac{",t+=n,t+="}{",t+=i,t+="}"),t},toContinued:function(){var r,e=this.n,t=this.d,n=[];if(isNaN(e)||isNaN(t))return n;do n.push(Math.floor(e/t)),r=e%t,e=t,t=r;while(e!==1);return n},toString:function(r){var e=this.n,t=this.d;if(isNaN(e)||isNaN(t))return"NaN";r=r||15;var n=Dg(e,t),i=Ig(e,t,n),o=this.s<0?"-":"";if(o+=e/t|0,e%=t,e*=10,e&&(o+="."),n){for(var a=i;a--;)o+=e/t|0,e%=t,e*=10;o+="(";for(var a=n;a--;)o+=e/t|0,e%=t,e*=10;o+=")"}else for(var a=r;e&&a--;)o+=e/t|0,e%=t,e*=10;return o}};var Ng="Fraction",Lg=[],oo=N(Ng,Lg,()=>(Object.defineProperty(Lt,"name",{value:"Fraction"}),Lt.prototype.constructor=Lt,Lt.prototype.type="Fraction",Lt.prototype.isFraction=!0,Lt.prototype.toJSON=function(){return{mathjs:"Fraction",n:this.s*this.n,d:this.d}},Lt.fromJSON=function(r){return new Lt(r)},Lt),{isClass:!0});var Og="Matrix",Fg=[],so=N(Og,Fg,()=>{function r(){if(!(this instanceof r))throw new SyntaxError("Constructor must be called with the new operator")}return r.prototype.type="Matrix",r.prototype.isMatrix=!0,r.prototype.storage=function(){throw new Error("Cannot invoke storage on a Matrix interface")},r.prototype.datatype=function(){throw new Error("Cannot invoke datatype on a Matrix interface")},r.prototype.create=function(e,t){throw new Error("Cannot invoke create on a Matrix interface")},r.prototype.subset=function(e,t,n){throw new Error("Cannot invoke subset on a Matrix interface")},r.prototype.get=function(e){throw new Error("Cannot invoke get on a Matrix interface")},r.prototype.set=function(e,t,n){throw new Error("Cannot invoke set on a Matrix interface")},r.prototype.resize=function(e,t){throw new Error("Cannot invoke resize on a Matrix interface")},r.prototype.reshape=function(e,t){throw new Error("Cannot invoke reshape on a Matrix interface")},r.prototype.clone=function(){throw new Error("Cannot invoke clone on a Matrix interface")},r.prototype.size=function(){throw new Error("Cannot invoke size on a Matrix interface")},r.prototype.map=function(e,t){throw new Error("Cannot invoke map on a Matrix interface")},r.prototype.forEach=function(e){throw new Error("Cannot invoke forEach on a Matrix interface")},r.prototype[Symbol.iterator]=function(){throw new Error("Cannot iterate a Matrix interface")},r.prototype.toArray=function(){throw new Error("Cannot invoke toArray on a Matrix interface")},r.prototype.valueOf=function(){throw new Error("Cannot invoke valueOf on a Matrix interface")},r.prototype.format=function(e){throw new Error("Cannot invoke format on a Matrix interface")},r.prototype.toString=function(){throw new Error("Cannot invoke toString on a Matrix interface")},r},{isClass:!0});function ao(r,e,t){var n=r.constructor,i=new n(2),o="";if(t){if(t<1)throw new Error("size must be in greater than 0");if(!tt(t))throw new Error("size must be an integer");if(r.greaterThan(i.pow(t-1).sub(1))||r.lessThan(i.pow(t-1).mul(-1)))throw new Error("Value must be in range [-2^".concat(t-1,", 2^").concat(t-1,"-1]"));if(!r.isInteger())throw new Error("Value must be an integer");r.lessThan(0)&&(r=r.add(i.pow(t))),o="i".concat(t)}switch(e){case 2:return"".concat(r.toBinary()).concat(o);case 8:return"".concat(r.toOctal()).concat(o);case 16:return"".concat(r.toHexadecimal()).concat(o);default:throw new Error("Base ".concat(e," not supported "))}}function Zu(r,e){if(typeof e=="function")return e(r);if(!r.isFinite())return r.isNaN()?"NaN":r.gt(0)?"Infinity":"-Infinity";var{notation:t,precision:n,wordSize:i}=qi(e);switch(t){case"fixed":return Bg(r,n);case"exponential":return Yu(r,n);case"engineering":return Ug(r,n);case"bin":return ao(r,2,i);case"oct":return ao(r,8,i);case"hex":return ao(r,16,i);case"auto":{var o=$u(e?.lowerExp,-3),a=$u(e?.upperExp,5);if(r.isZero())return"0";var c,l=r.toSignificantDigits(n),s=l.e;return s>=o&&s<a?c=l.toFixed():c=Yu(r,n),c.replace(/((\.\d*?)(0+))($|e)/,function(){var u=arguments[2],h=arguments[4];return u!=="."?u+h:h})}default:throw new Error('Unknown notation "'+t+'". Choose "auto", "exponential", "fixed", "bin", "oct", or "hex.')}}function Ug(r,e){var t=r.e,n=t%3===0?t:t<0?t-3-t%3:t-t%3,i=r.mul(Math.pow(10,-n)),o=i.toPrecision(e);if(o.includes("e")){var a=r.constructor;o=new a(o).toFixed()}return o+"e"+(t>=0?"+":"")+n.toString()}function Yu(r,e){return e!==void 0?r.toExponential(e-1):r.toExponential()}function Bg(r,e){return r.toFixed(e)}function $u(r,e){return nt(r)?r:it(r)?r.toNumber():e}function vt(r,e){var t=zg(r,e);return e&&typeof e=="object"&&"truncate"in e&&t.length>e.truncate?t.substring(0,e.truncate-3)+"...":t}function zg(r,e){if(typeof r=="number")return $n(r,e);if(it(r))return Zu(r,e);if(Gg(r))return!e||e.fraction!=="decimal"?r.s*r.n+"/"+r.d:r.toString();if(Array.isArray(r))return Qu(r,e);if(jt(r))return Ku(r);if(typeof r=="function")return r.syntax?String(r.syntax):"function";if(r&&typeof r=="object"){if(typeof r.format=="function")return r.format(e);if(r&&r.toString(e)!=={}.toString())return r.toString(e);var t=Object.keys(r).map(n=>Ku(n)+": "+vt(r[n],e));return"{"+t.join(", ")+"}"}return String(r)}function Ku(r){for(var e=String(r),t="",n=0;n<e.length;){var i=e.charAt(n);t+=i in Ju?Ju[i]:i,n++}return'"'+t+'"'}var Ju={'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t"};function Qu(r,e){if(Array.isArray(r)){for(var t="[",n=r.length,i=0;i<n;i++)i!==0&&(t+=", "),t+=Qu(r[i],e);return t+="]",t}else return vt(r,e)}function Gg(r){return r&&typeof r=="object"&&typeof r.s=="number"&&typeof r.n=="number"&&typeof r.d=="number"||!1}function Q(r,e,t){if(!(this instanceof Q))throw new SyntaxError("Constructor must be called with the new operator");this.actual=r,this.expected=e,this.relation=t,this.message="Dimension mismatch ("+(Array.isArray(r)?"["+r.join(", ")+"]":r)+" "+(this.relation||"!=")+" "+(Array.isArray(e)?"["+e.join(", ")+"]":e)+")",this.stack=new Error().stack}Q.prototype=new RangeError;Q.prototype.constructor=RangeError;Q.prototype.name="DimensionError";Q.prototype.isDimensionError=!0;function xe(r,e,t){if(!(this instanceof xe))throw new SyntaxError("Constructor must be called with the new operator");this.index=r,arguments.length<3?(this.min=0,this.max=e):(this.min=e,this.max=t),this.min!==void 0&&this.index<this.min?this.message="Index out of range ("+this.index+" < "+this.min+")":this.max!==void 0&&this.index>=this.max?this.message="Index out of range ("+this.index+" > "+(this.max-1)+")":this.message="Index out of range ("+this.index+")",this.stack=new Error().stack}xe.prototype=new RangeError;xe.prototype.constructor=RangeError;xe.prototype.name="IndexError";xe.prototype.isIndexError=!0;function st(r){for(var e=[];Array.isArray(r);)e.push(r.length),r=r[0];return e}function tl(r,e,t){var n,i=r.length;if(i!==e[t])throw new Q(i,e[t]);if(t<e.length-1){var o=t+1;for(n=0;n<i;n++){var a=r[n];if(!Array.isArray(a))throw new Q(e.length-1,e.length,"<");tl(r[n],e,o)}}else for(n=0;n<i;n++)if(Array.isArray(r[n]))throw new Q(e.length+1,e.length,">")}function lo(r,e){var t=e.length===0;if(t){if(Array.isArray(r))throw new Q(r.length,0)}else tl(r,e,0)}function Et(r,e){if(r!==void 0){if(!nt(r)||!tt(r))throw new TypeError("Index must be an integer (value: "+r+")");if(r<0||typeof e=="number"&&r>=e)throw new xe(r,e)}}function un(r,e,t){if(!Array.isArray(e))throw new TypeError("Array expected");if(e.length===0)throw new Error("Resizing to scalar is not supported");e.forEach(function(i){if(!nt(i)||!tt(i)||i<0)throw new TypeError("Invalid size, must contain positive integers (size: "+vt(e)+")")}),(nt(r)||it(r))&&(r=[r]);var n=t!==void 0?t:0;return uo(r,e,0,n),r}function uo(r,e,t,n){var i,o,a=r.length,c=e[t],l=Math.min(a,c);if(r.length=c,t<e.length-1){var s=t+1;for(i=0;i<l;i++)o=r[i],Array.isArray(o)||(o=[o],r[i]=o),uo(o,e,s,n);for(i=l;i<c;i++)o=[],r[i]=o,uo(o,e,s,n)}else{for(i=0;i<l;i++)for(;Array.isArray(r[i]);)r[i]=r[i][0];for(i=l;i<c;i++)r[i]=n}}function Qn(r,e){var t=Vg(r),n=t.length;if(!Array.isArray(r)||!Array.isArray(e))throw new TypeError("Array expected");if(e.length===0)throw new Q(0,n,"!=");e=tr(e,n);var i=el(e);if(n!==i)throw new Q(i,n,"!=");try{return kg(t,e)}catch(o){throw o instanceof Q?new Q(i,n,"!="):o}}function tr(r,e){var t=el(r),n=r.slice(),i=-1,o=r.indexOf(i),a=r.indexOf(i,o+1)>=0;if(a)throw new Error("More than one wildcard in sizes");var c=o>=0,l=e%t===0;if(c)if(l)n[o]=-e/t;else throw new Error("Could not replace wildcard, since "+e+" is no multiple of "+-t);return n}function el(r){return r.reduce((e,t)=>e*t,1)}function kg(r,e){for(var t=r,n,i=e.length-1;i>0;i--){var o=e[i];n=[];for(var a=t.length/o,c=0;c<a;c++)n.push(t.slice(c*o,(c+1)*o));t=n}return t}function ci(r,e,t,n){var i=n||st(r);if(t)for(var o=0;o<t;o++)r=[r],i.unshift(1);for(r=nl(r,e,0);i.length<e;)i.push(1);return r}function nl(r,e,t){var n,i;if(Array.isArray(r)){var o=t+1;for(n=0,i=r.length;n<i;n++)r[n]=nl(r[n],e,o)}else for(var a=t;a<e;a++)r=[r];return r}function Vg(r){if(!Array.isArray(r))return r;var e=[];return r.forEach(function t(n){Array.isArray(n)?n.forEach(t):e.push(n)}),e}function In(r,e){for(var t,n=0,i=0;i<r.length;i++){var o=r[i],a=Array.isArray(o);if(i===0&&a&&(n=o.length),a&&o.length!==n)return;var c=a?In(o,e):e(o);if(t===void 0)t=c;else if(t!==c)return"mixed"}return t}function rl(r,e,t,n){if(n<t){if(r.length!==e.length)throw new Q(r.length,e.length);for(var i=[],o=0;o<r.length;o++)i[o]=rl(r[o],e[o],t,n+1);return i}else return r.concat(e)}function co(){var r=Array.prototype.slice.call(arguments,0,-1),e=Array.prototype.slice.call(arguments,-1);if(r.length===1)return r[0];if(r.length>1)return r.slice(1).reduce(function(t,n){return rl(t,n,e,0)},r[0]);throw new Error("Wrong number of arguments in function concat")}function ho(){for(var r=arguments.length,e=new Array(r),t=0;t<r;t++)e[t]=arguments[t];for(var n=e.map(f=>f.length),i=Math.max(...n),o=new Array(i).fill(null),a=0;a<e.length;a++)for(var c=e[a],l=n[a],s=0;s<l;s++){var u=i-l+s;c[s]>o[u]&&(o[u]=c[s])}for(var h=0;h<e.length;h++)il(e[h],o);return o}function il(r,e){for(var t=e.length,n=r.length,i=0;i<n;i++){var o=t-n+i;if(r[i]<e[o]&&r[i]>1||r[i]>e[o])throw new Error("shape missmatch: missmatch is found in arg with shape (".concat(r,") not possible to broadcast dimension ").concat(n," with size ").concat(r[i]," to size ").concat(e[o]))}}function er(r,e){var t=st(r);if(he(t,e))return r;il(t,e);var n=ho(t,e),i=n.length,o=[...Array(i-t.length).fill(1),...t],a=Wg(r);t.length<i&&(a=Qn(a,o),t=st(a));for(var c=0;c<i;c++)t[c]<n[c]&&(a=Hg(a,n[c],c),t=st(a));return a}function Hg(r,e,t){return co(...Array(e).fill(r),t)}function ol(r,e){if(!Array.isArray(r))throw new Error("Array expected");var t=st(r);if(e.length!==t.length)throw new Q(e.length,t.length);for(var n=0;n<e.length;n++)Et(e[n],t[n]);return e.reduce((i,o)=>i[o],r)}function Wg(r){return bn([],r)}var nr=pn(Hi(),1);function hi(r,e,t,n,i){if(nr.default.isTypedFunction(r)){var o=[e,t,n],a=nr.default.resolve(r,o);if(a)return h(a.implementation,o);var c=[e,t],l=nr.default.resolve(r,c);if(l)return h(l.implementation,c);var s=[e],u=nr.default.resolve(r,s);return u?h(u.implementation,s):h(r,o)}else return r(e,t,n);function h(f,d){try{return f.apply(f,d)}catch(m){var g;if(m instanceof TypeError&&((g=m.data)===null||g===void 0?void 0:g.category)==="wrongType"){var p=[];throw p.push("value: ".concat(Ut(e))),d.length>=2&&p.push("index: ".concat(Ut(t))),d.length>=3&&p.push("array: ".concat(Ut(n))),new TypeError("Function ".concat(i," cannot apply callback arguments ")+"".concat(r.name,"(").concat(p.join(", "),") at index ").concat(JSON.stringify(t)))}else throw new TypeError("Function ".concat(i," cannot apply callback arguments ")+"to function ".concat(r.name,": ").concat(m.message))}}}var qg="DenseMatrix",Xg=["Matrix"],po=N(qg,Xg,r=>{var{Matrix:e}=r;function t(u,h){if(!(this instanceof t))throw new SyntaxError("Constructor must be called with the new operator");if(h&&!jt(h))throw new Error("Invalid datatype: "+h);if(ot(u))u.type==="DenseMatrix"?(this._data=ft(u._data),this._size=ft(u._size),this._datatype=h||u._datatype):(this._data=u.toArray(),this._size=u.size(),this._datatype=h||u._datatype);else if(u&&yt(u.data)&&yt(u.size))this._data=u.data,this._size=u.size,lo(this._data,this._size),this._datatype=h||u.datatype;else if(yt(u))this._data=s(u),this._size=st(this._data),lo(this._data,this._size),this._datatype=h;else{if(u)throw new TypeError("Unsupported type of data ("+Ut(u)+")");this._data=[],this._size=[0],this._datatype=h}}t.prototype=new e,t.prototype.createDenseMatrix=function(u,h){return new t(u,h)},Object.defineProperty(t,"name",{value:"DenseMatrix"}),t.prototype.constructor=t,t.prototype.type="DenseMatrix",t.prototype.isDenseMatrix=!0,t.prototype.getDataType=function(){return In(this._data,Ut)},t.prototype.storage=function(){return"dense"},t.prototype.datatype=function(){return this._datatype},t.prototype.create=function(u,h){return new t(u,h)},t.prototype.subset=function(u,h,f){switch(arguments.length){case 1:return n(this,u);case 2:case 3:return o(this,u,h,f);default:throw new SyntaxError("Wrong number of arguments")}},t.prototype.get=function(u){return ol(this._data,u)},t.prototype.set=function(u,h,f){if(!yt(u))throw new TypeError("Array expected");if(u.length<this._size.length)throw new Q(u.length,this._size.length,"<");var d,g,p,m=u.map(function(b){return b+1});l(this,m,f);var v=this._data;for(d=0,g=u.length-1;d<g;d++)p=u[d],Et(p,v.length),v=v[p];return p=u[u.length-1],Et(p,v.length),v[p]=h,this};function n(u,h){if(!Mn(h))throw new TypeError("Invalid index");var f=h.isScalar();if(f)return u.get(h.min());var d=h.size();if(d.length!==u._size.length)throw new Q(d.length,u._size.length);for(var g=h.min(),p=h.max(),m=0,v=u._size.length;m<v;m++)Et(g[m],u._size[m]),Et(p[m],u._size[m]);return new t(i(u._data,h,d.length,0),u._datatype)}function i(u,h,f,d){var g=d===f-1,p=h.dimension(d);return g?p.map(function(m){return Et(m,u.length),u[m]}).valueOf():p.map(function(m){Et(m,u.length);var v=u[m];return i(v,h,f,d+1)}).valueOf()}function o(u,h,f,d){if(!h||h.isIndex!==!0)throw new TypeError("Invalid index");var g=h.size(),p=h.isScalar(),m;if(ot(f)?(m=f.size(),f=f.valueOf()):m=st(f),p){if(m.length!==0)throw new TypeError("Scalar expected");u.set(h.min(),f,d)}else{if(!he(m,g))try{m.length===0?f=er([f],g):f=er(f,g),m=st(f)}catch{}if(g.length<u._size.length)throw new Q(g.length,u._size.length,"<");if(m.length<g.length){for(var v=0,b=0;g[v]===1&&m[v]===1;)v++;for(;g[v]===1;)b++,v++;f=ci(f,g.length,b,m)}if(!he(g,m))throw new Q(g,m,">");var y=h.max().map(function(_){return _+1});l(u,y,d);var S=g.length,x=0;a(u._data,h,f,S,x)}return u}function a(u,h,f,d,g){var p=g===d-1,m=h.dimension(g);p?m.forEach(function(v,b){Et(v),u[v]=f[b[0]]}):m.forEach(function(v,b){Et(v),a(u[v],h,f[b[0]],d,g+1)})}t.prototype.resize=function(u,h,f){if(!Ue(u))throw new TypeError("Array or Matrix expected");var d=u.valueOf().map(p=>Array.isArray(p)&&p.length===1?p[0]:p),g=f?this.clone():this;return c(g,d,h)};function c(u,h,f){if(h.length===0){for(var d=u._data;yt(d);)d=d[0];return d}return u._size=h.slice(0),u._data=un(u._data,u._size,f),u}t.prototype.reshape=function(u,h){var f=h?this.clone():this;f._data=Qn(f._data,u);var d=f._size.reduce((g,p)=>g*p);return f._size=tr(u,d),f};function l(u,h,f){for(var d=u._size.slice(0),g=!1;d.length<h.length;)d.push(0),g=!0;for(var p=0,m=h.length;p<m;p++)h[p]>d[p]&&(d[p]=h[p],g=!0);g&&c(u,d,f)}t.prototype.clone=function(){var u=new t({data:ft(this._data),size:ft(this._size),datatype:this._datatype});return u},t.prototype.size=function(){return this._size.slice(0)},t.prototype.map=function(u){var h=this,f=function(m,v){return yt(m)?m.map(function(b,y){return f(b,v.concat(y))}):hi(u,m,v,h,"map")},d=f(this._data,[]),g=this._datatype!==void 0?In(d,Ut):void 0;return new t(d,g)},t.prototype.forEach=function(u){var h=this,f=function(g,p){yt(g)?g.forEach(function(m,v){f(m,p.concat(v))}):u(g,p,h)};f(this._data,[])},t.prototype[Symbol.iterator]=function*(){var u=function*(f,d){if(yt(f))for(var g=0;g<f.length;g++)yield*u(f[g],d.concat(g));else yield{value:f,index:d}};yield*u(this._data,[])},t.prototype.rows=function(){var u=[],h=this.size();if(h.length!==2)throw new TypeError("Rows can only be returned for a 2D matrix.");var f=this._data;for(var d of f)u.push(new t([d],this._datatype));return u},t.prototype.columns=function(){var u=this,h=[],f=this.size();if(f.length!==2)throw new TypeError("Rows can only be returned for a 2D matrix.");for(var d=this._data,g=function(v){var b=d.map(y=>[y[v]]);h.push(new t(b,u._datatype))},p=0;p<f[1];p++)g(p);return h},t.prototype.toArray=function(){return ft(this._data)},t.prototype.valueOf=function(){return this._data},t.prototype.format=function(u){return vt(this._data,u)},t.prototype.toString=function(){return vt(this._data)},t.prototype.toJSON=function(){return{mathjs:"DenseMatrix",data:this._data,size:this._size,datatype:this._datatype}},t.prototype.diagonal=function(u){if(u){if(it(u)&&(u=u.toNumber()),!nt(u)||!tt(u))throw new TypeError("The parameter k must be an integer number")}else u=0;for(var h=u>0?u:0,f=u<0?-u:0,d=this._size[0],g=this._size[1],p=Math.min(d-f,g-h),m=[],v=0;v<p;v++)m[v]=this._data[v+f][v+h];return new t({data:m,size:[p],datatype:this._datatype})},t.diagonal=function(u,h,f,d){if(!yt(u))throw new TypeError("Array expected, size parameter");if(u.length!==2)throw new Error("Only two dimensions matrix are supported");if(u=u.map(function(M){if(it(M)&&(M=M.toNumber()),!nt(M)||!tt(M)||M<1)throw new Error("Size values must be positive integers");return M}),f){if(it(f)&&(f=f.toNumber()),!nt(f)||!tt(f))throw new TypeError("The parameter k must be an integer number")}else f=0;var g=f>0?f:0,p=f<0?-f:0,m=u[0],v=u[1],b=Math.min(m-p,v-g),y;if(yt(h)){if(h.length!==b)throw new Error("Invalid value array length");y=function(w){return h[w]}}else if(ot(h)){var S=h.size();if(S.length!==1||S[0]!==b)throw new Error("Invalid matrix length");y=function(w){return h.get([w])}}else y=function(){return h};d||(d=it(y(0))?y(0).mul(0):0);var x=[];if(u.length>0){x=un(x,u,d);for(var _=0;_<b;_++)x[_+p][_+g]=y(_)}return new t({data:x,size:[m,v]})},t.fromJSON=function(u){return new t(u)},t.prototype.swapRows=function(u,h){if(!nt(u)||!tt(u)||!nt(h)||!tt(h))throw new Error("Row index must be positive integers");if(this._size.length!==2)throw new Error("Only two dimensional matrix is supported");return Et(u,this._size[0]),Et(h,this._size[0]),t._swapRows(u,h,this._data),this},t._swapRows=function(u,h,f){var d=f[u];f[u]=f[h],f[h]=d};function s(u){return ot(u)?s(u.valueOf()):yt(u)?u.map(s):u}return t},{isClass:!0});function sl(r){var e=r.length,t=r[0].length,n,i,o=[];for(i=0;i<t;i++){var a=[];for(n=0;n<e;n++)a.push(r[n][i]);o.push(a)}return o}function al(r){for(var e=0;e<r.length;e++)if(Ue(r[e]))return!0;return!1}function fo(r,e){ot(r)&&(r=r.valueOf());for(var t=0,n=r.length;t<n;t++){var i=r[t];Array.isArray(i)?fo(i,e):e(i)}}function _t(r,e,t){return r&&typeof r.map=="function"?r.map(function(n){return _t(n,e,t)}):e(r)}function ul(r,e,t){var n=Array.isArray(r)?st(r):r.size();if(e<0||e>=n.length)throw new xe(e,n.length);return ot(r)?r.create(pi(r.valueOf(),e,t),r.datatype()):pi(r,e,t)}function pi(r,e,t){var n,i,o,a;if(e<=0)if(Array.isArray(r[0])){for(a=sl(r),i=[],n=0;n<a.length;n++)i[n]=pi(a[n],e-1,t);return i}else{for(o=r[0],n=1;n<r.length;n++)o=t(o,r[n]);return o}else{for(i=[],n=0;n<r.length;n++)i[n]=pi(r[n],e-1,t);return i}}var ll="isInteger",jg=["typed"],go=N(ll,jg,r=>{var{typed:e}=r;return e(ll,{number:tt,BigNumber:function(n){return n.isInt()},bigint:function(n){return!0},Fraction:function(n){return n.d===1&&isFinite(n.n)},"Array | Matrix":e.referToSelf(t=>n=>_t(n,t))})});var te="number",Ge="number, number";function mo(r){return Math.abs(r)}mo.signature=te;function yo(r,e){return r+e}yo.signature=Ge;function vo(r,e){return r-e}vo.signature=Ge;function _o(r,e){return r*e}_o.signature=Ge;function Yg(r,e){return r/e}Yg.signature=Ge;function xo(r){return-r}xo.signature=te;function $g(r){return r}$g.signature=te;function Zg(r){return Tu(r)}Zg.signature=te;function Kg(r){return r*r*r}Kg.signature=te;function Eo(r){return Math.exp(r)}Eo.signature=te;function Jg(r){return Cu(r)}Jg.signature=te;function Qg(r,e){if(!tt(r)||!tt(e))throw new Error("Parameters in function gcd must be integer numbers");for(var t;e!==0;)t=r%e,r=e,e=t;return r<0?-r:r}Qg.signature=Ge;function tm(r,e){if(!tt(r)||!tt(e))throw new Error("Parameters in function lcm must be integer numbers");if(r===0||e===0)return 0;for(var t,n=r*e;e!==0;)t=e,e=r%t,r=t;return Math.abs(n/r)}tm.signature=Ge;function em(r){return Mu(r)}em.signature=te;function bo(r){return Su(r)}bo.signature=te;function nm(r){return wu(r)}nm.signature=te;function rm(r,e){return e===0?r:r-e*Math.floor(r/e)}rm.signature=Ge;function im(r){return bu(r)}im.signature=te;function om(r){return Math.sqrt(r)}om.signature=te;function sm(r){return r*r}sm.signature=te;function am(r,e){var t,n,i,o=0,a=1,c=1,l=0;if(!tt(r)||!tt(e))throw new Error("Parameters in function xgcd must be integer numbers");for(;e;)n=Math.floor(r/e),i=r-n*e,t=o,o=a-n*o,a=t,t=c,c=l-n*c,l=t,r=e,e=i;var s;return r<0?s=[-r,-a,-l]:s=[r,r?a:0,l],s}am.signature=Ge;function So(r,e){return r*r<1&&e===1/0||r*r>1&&e===-1/0?0:Math.pow(r,e)}So.signature=Ge;function Rn(r){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(!tt(e)||e<0||e>15)throw new Error("Number of decimals in function round must be an integer from 0 to 15 inclusive");return parseFloat(Xi(r,e))}function um(r){return Math.abs(r)}um.signature=te;var cl=2*Math.PI;function Qe(r,e){var t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1e-9,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;if(t<=0)throw new Error("Relative tolerance must be greater than 0");if(n<0)throw new Error("Absolute tolerance must be at least 0");return r.isNaN()||e.isNaN()?!1:!r.isFinite()||!e.isFinite()?r.eq(e):r.eq(e)?!0:r.minus(e).abs().lte(r.constructor.max(r.constructor.max(r.abs(),e.abs()).mul(t),n))}var hl="isZero",lm=["typed","equalScalar"],Mo=N(hl,lm,r=>{var{typed:e,equalScalar:t}=r;return e(hl,{"number | BigNumber | Complex | Fraction":n=>t(n,0),bigint:n=>n===0n,Unit:e.referToSelf(n=>i=>e.find(n,i.valueType())(i.value)),"Array | Matrix":e.referToSelf(n=>i=>_t(i,n))})});function pl(r,e,t,n){return fe(r.re,e.re,t,n)&&fe(r.im,e.im,t,n)}var fl=N("compareUnits",["typed"],r=>{var{typed:e}=r;return{"Unit, Unit":e.referToSelf(t=>(n,i)=>{if(!n.equalBase(i))throw new Error("Cannot compare units with different base");return e.find(t,[n.valueType(),i.valueType()])(n.value,i.value)})}});var fi="equalScalar",cm=["typed","config"],wo=N(fi,cm,r=>{var{typed:e,config:t}=r,n=fl({typed:e});return e(fi,{"boolean, boolean":function(o,a){return o===a},"number, number":function(o,a){return fe(o,a,t.relTol,t.absTol)},"BigNumber, BigNumber":function(o,a){return o.eq(a)||Qe(o,a,t.relTol,t.absTol)},"bigint, bigint":function(o,a){return o===a},"Fraction, Fraction":function(o,a){return o.equals(a)},"Complex, Complex":function(o,a){return pl(o,a,t.relTol,t.absTol)}},n)}),Xw=N(fi,["typed","config"],r=>{var{typed:e,config:t}=r;return e(fi,{"number, number":function(i,o){return fe(i,o,t.relTol,t.absTol)}})});var hm="SparseMatrix",pm=["typed","equalScalar","Matrix"],To=N(hm,pm,r=>{var{typed:e,equalScalar:t,Matrix:n}=r;function i(p,m){if(!(this instanceof i))throw new SyntaxError("Constructor must be called with the new operator");if(m&&!jt(m))throw new Error("Invalid datatype: "+m);if(ot(p))o(this,p,m);else if(p&&yt(p.index)&&yt(p.ptr)&&yt(p.size))this._values=p.values,this._index=p.index,this._ptr=p.ptr,this._size=p.size,this._datatype=m||p.datatype;else if(yt(p))a(this,p,m);else{if(p)throw new TypeError("Unsupported type of data ("+Ut(p)+")");this._values=[],this._index=[],this._ptr=[0],this._size=[0,0],this._datatype=m}}function o(p,m,v){m.type==="SparseMatrix"?(p._values=m._values?ft(m._values):void 0,p._index=ft(m._index),p._ptr=ft(m._ptr),p._size=ft(m._size),p._datatype=v||m._datatype):a(p,m.valueOf(),v||m._datatype)}function a(p,m,v){p._values=[],p._index=[],p._ptr=[],p._datatype=v;var b=m.length,y=0,S=t,x=0;if(jt(v)&&(S=e.find(t,[v,v])||t,x=e.convert(0,v)),b>0){var _=0;do{p._ptr.push(p._index.length);for(var M=0;M<b;M++){var w=m[M];if(yt(w)){if(_===0&&y<w.length&&(y=w.length),_<w.length){var C=w[_];S(C,x)||(p._values.push(C),p._index.push(M))}}else _===0&&y<1&&(y=1),S(w,x)||(p._values.push(w),p._index.push(M))}_++}while(_<y)}p._ptr.push(p._index.length),p._size=[b,y]}i.prototype=new n,i.prototype.createSparseMatrix=function(p,m){return new i(p,m)},Object.defineProperty(i,"name",{value:"SparseMatrix"}),i.prototype.constructor=i,i.prototype.type="SparseMatrix",i.prototype.isSparseMatrix=!0,i.prototype.getDataType=function(){return In(this._values,Ut)},i.prototype.storage=function(){return"sparse"},i.prototype.datatype=function(){return this._datatype},i.prototype.create=function(p,m){return new i(p,m)},i.prototype.density=function(){var p=this._size[0],m=this._size[1];return p!==0&&m!==0?this._index.length/(p*m):0},i.prototype.subset=function(p,m,v){if(!this._values)throw new Error("Cannot invoke subset on a Pattern only matrix");switch(arguments.length){case 1:return c(this,p);case 2:case 3:return l(this,p,m,v);default:throw new SyntaxError("Wrong number of arguments")}};function c(p,m){if(!Mn(m))throw new TypeError("Invalid index");var v=m.isScalar();if(v)return p.get(m.min());var b=m.size();if(b.length!==p._size.length)throw new Q(b.length,p._size.length);var y,S,x,_,M=m.min(),w=m.max();for(y=0,S=p._size.length;y<S;y++)Et(M[y],p._size[y]),Et(w[y],p._size[y]);var C=p._values,P=p._index,D=p._ptr,R=m.dimension(0),W=m.dimension(1),G=[],k=[];R.forEach(function(j,J){k[j]=J[0],G[j]=!0});var L=C?[]:void 0,q=[],Y=[];return W.forEach(function(j){for(Y.push(q.length),x=D[j],_=D[j+1];x<_;x++)y=P[x],G[y]===!0&&(q.push(k[y]),L&&L.push(C[x]))}),Y.push(q.length),new i({values:L,index:q,ptr:Y,size:b,datatype:p._datatype})}function l(p,m,v,b){if(!m||m.isIndex!==!0)throw new TypeError("Invalid index");var y=m.size(),S=m.isScalar(),x;if(ot(v)?(x=v.size(),v=v.toArray()):x=st(v),S){if(x.length!==0)throw new TypeError("Scalar expected");p.set(m.min(),v,b)}else{if(y.length!==1&&y.length!==2)throw new Q(y.length,p._size.length,"<");if(x.length<y.length){for(var _=0,M=0;y[_]===1&&x[_]===1;)_++;for(;y[_]===1;)M++,_++;v=ci(v,y.length,M,x)}if(!he(y,x))throw new Q(y,x,">");if(y.length===1){var w=m.dimension(0);w.forEach(function(D,R){Et(D),p.set([D,0],v[R[0]],b)})}else{var C=m.dimension(0),P=m.dimension(1);C.forEach(function(D,R){Et(D),P.forEach(function(W,G){Et(W),p.set([D,W],v[R[0]][G[0]],b)})})}}return p}i.prototype.get=function(p){if(!yt(p))throw new TypeError("Array expected");if(p.length!==this._size.length)throw new Q(p.length,this._size.length);if(!this._values)throw new Error("Cannot invoke get on a Pattern only matrix");var m=p[0],v=p[1];Et(m,this._size[0]),Et(v,this._size[1]);var b=s(m,this._ptr[v],this._ptr[v+1],this._index);return b<this._ptr[v+1]&&this._index[b]===m?this._values[b]:0},i.prototype.set=function(p,m,v){if(!yt(p))throw new TypeError("Array expected");if(p.length!==this._size.length)throw new Q(p.length,this._size.length);if(!this._values)throw new Error("Cannot invoke set on a Pattern only matrix");var b=p[0],y=p[1],S=this._size[0],x=this._size[1],_=t,M=0;jt(this._datatype)&&(_=e.find(t,[this._datatype,this._datatype])||t,M=e.convert(0,this._datatype)),(b>S-1||y>x-1)&&(f(this,Math.max(b+1,S),Math.max(y+1,x),v),S=this._size[0],x=this._size[1]),Et(b,S),Et(y,x);var w=s(b,this._ptr[y],this._ptr[y+1],this._index);return w<this._ptr[y+1]&&this._index[w]===b?_(m,M)?u(w,y,this._values,this._index,this._ptr):this._values[w]=m:_(m,M)||h(w,b,y,m,this._values,this._index,this._ptr),this};function s(p,m,v,b){if(v-m===0)return v;for(var y=m;y<v;y++)if(b[y]===p)return y;return m}function u(p,m,v,b,y){v.splice(p,1),b.splice(p,1);for(var S=m+1;S<y.length;S++)y[S]--}function h(p,m,v,b,y,S,x){y.splice(p,0,b),S.splice(p,0,m);for(var _=v+1;_<x.length;_++)x[_]++}i.prototype.resize=function(p,m,v){if(!Ue(p))throw new TypeError("Array or Matrix expected");var b=p.valueOf().map(S=>Array.isArray(S)&&S.length===1?S[0]:S);if(b.length!==2)throw new Error("Only two dimensions matrix are supported");b.forEach(function(S){if(!nt(S)||!tt(S)||S<0)throw new TypeError("Invalid size, must contain positive integers (size: "+vt(b)+")")});var y=v?this.clone():this;return f(y,b[0],b[1],m)};function f(p,m,v,b){var y=b||0,S=t,x=0;jt(p._datatype)&&(S=e.find(t,[p._datatype,p._datatype])||t,x=e.convert(0,p._datatype),y=e.convert(y,p._datatype));var _=!S(y,x),M=p._size[0],w=p._size[1],C,P,D;if(v>w){for(P=w;P<v;P++)if(p._ptr[P]=p._values.length,_)for(C=0;C<M;C++)p._values.push(y),p._index.push(C);p._ptr[v]=p._values.length}else v<w&&(p._ptr.splice(v+1,w-v),p._values.splice(p._ptr[v],p._values.length),p._index.splice(p._ptr[v],p._index.length));if(w=v,m>M){if(_){var R=0;for(P=0;P<w;P++){p._ptr[P]=p._ptr[P]+R,D=p._ptr[P+1]+R;var W=0;for(C=M;C<m;C++,W++)p._values.splice(D+W,0,y),p._index.splice(D+W,0,C),R++}p._ptr[w]=p._values.length}}else if(m<M){var G=0;for(P=0;P<w;P++){p._ptr[P]=p._ptr[P]-G;var k=p._ptr[P],L=p._ptr[P+1]-G;for(D=k;D<L;D++)C=p._index[D],C>m-1&&(p._values.splice(D,1),p._index.splice(D,1),G++)}p._ptr[P]=p._values.length}return p._size[0]=m,p._size[1]=v,p}i.prototype.reshape=function(p,m){if(!yt(p))throw new TypeError("Array expected");if(p.length!==2)throw new Error("Sparse matrices can only be reshaped in two dimensions");p.forEach(function(j){if(!nt(j)||!tt(j)||j<=-2||j===0)throw new TypeError("Invalid size, must contain positive integers or -1 (size: "+vt(p)+")")});var v=this._size[0]*this._size[1];p=tr(p,v);var b=p[0]*p[1];if(v!==b)throw new Error("Reshaping sparse matrix will result in the wrong number of elements");var y=m?this.clone():this;if(this._size[0]===p[0]&&this._size[1]===p[1])return y;for(var S=[],x=0;x<y._ptr.length;x++)for(var _=0;_<y._ptr[x+1]-y._ptr[x];_++)S.push(x);for(var M=y._values.slice(),w=y._index.slice(),C=0;C<y._index.length;C++){var P=w[C],D=S[C],R=P*y._size[1]+D;S[C]=R%p[1],w[C]=Math.floor(R/p[1])}y._values.length=0,y._index.length=0,y._ptr.length=p[1]+1,y._size=p.slice();for(var W=0;W<y._ptr.length;W++)y._ptr[W]=0;for(var G=0;G<M.length;G++){var k=w[G],L=S[G],q=M[G],Y=s(k,y._ptr[L],y._ptr[L+1],y._index);h(Y,k,L,q,y._values,y._index,y._ptr)}return y},i.prototype.clone=function(){var p=new i({values:this._values?ft(this._values):void 0,index:ft(this._index),ptr:ft(this._ptr),size:ft(this._size),datatype:this._datatype});return p},i.prototype.size=function(){return this._size.slice(0)},i.prototype.map=function(p,m){if(!this._values)throw new Error("Cannot invoke map on a Pattern only matrix");var v=this,b=this._size[0],y=this._size[1],S=function(_,M,w){return hi(p,_,[M,w],v,"map")};return d(this,0,b-1,0,y-1,S,m)};function d(p,m,v,b,y,S,x){var _=[],M=[],w=[],C=t,P=0;jt(p._datatype)&&(C=e.find(t,[p._datatype,p._datatype])||t,P=e.convert(0,p._datatype));for(var D=function(pt,Tt,wt){var St=S(pt,Tt,wt);C(St,P)||(_.push(St),M.push(Tt))},R=b;R<=y;R++){w.push(_.length);var W=p._ptr[R],G=p._ptr[R+1];if(x)for(var k=W;k<G;k++){var L=p._index[k];L>=m&&L<=v&&D(p._values[k],L-m,R-b)}else{for(var q={},Y=W;Y<G;Y++){var j=p._index[Y];q[j]=p._values[Y]}for(var J=m;J<=v;J++){var lt=J in q?q[J]:0;D(lt,J-m,R-b)}}}return w.push(_.length),new i({values:_,index:M,ptr:w,size:[v-m+1,y-b+1]})}i.prototype.forEach=function(p,m){if(!this._values)throw new Error("Cannot invoke forEach on a Pattern only matrix");for(var v=this,b=this._size[0],y=this._size[1],S=0;S<y;S++){var x=this._ptr[S],_=this._ptr[S+1];if(m)for(var M=x;M<_;M++){var w=this._index[M];p(this._values[M],[w,S],v)}else{for(var C={},P=x;P<_;P++){var D=this._index[P];C[D]=this._values[P]}for(var R=0;R<b;R++){var W=R in C?C[R]:0;p(W,[R,S],v)}}}},i.prototype[Symbol.iterator]=function*(){if(!this._values)throw new Error("Cannot iterate a Pattern only matrix");for(var p=this._size[1],m=0;m<p;m++)for(var v=this._ptr[m],b=this._ptr[m+1],y=v;y<b;y++){var S=this._index[y];yield{value:this._values[y],index:[S,m]}}},i.prototype.toArray=function(){return g(this._values,this._index,this._ptr,this._size,!0)},i.prototype.valueOf=function(){return g(this._values,this._index,this._ptr,this._size,!1)};function g(p,m,v,b,y){var S=b[0],x=b[1],_=[],M,w;for(M=0;M<S;M++)for(_[M]=[],w=0;w<x;w++)_[M][w]=0;for(w=0;w<x;w++)for(var C=v[w],P=v[w+1],D=C;D<P;D++)M=m[D],_[M][w]=p?y?ft(p[D]):p[D]:1;return _}return i.prototype.format=function(p){for(var m=this._size[0],v=this._size[1],b=this.density(),y="Sparse Matrix ["+vt(m,p)+" x "+vt(v,p)+"] density: "+vt(b,p)+`
7515
7515
  `,S=0;S<v;S++)for(var x=this._ptr[S],_=this._ptr[S+1],M=x;M<_;M++){var w=this._index[M];y+=`
7516
- (`+vt(w,p)+", "+vt(S,p)+") ==> "+(this._values?vt(this._values[M],p):"X")}return y},i.prototype.toString=function(){return vt(this.toArray())},i.prototype.toJSON=function(){return{mathjs:"SparseMatrix",values:this._values,index:this._index,ptr:this._ptr,size:this._size,datatype:this._datatype}},i.prototype.diagonal=function(p){if(p){if(it(p)&&(p=p.toNumber()),!nt(p)||!tt(p))throw new TypeError("The parameter k must be an integer number")}else p=0;var m=p>0?p:0,v=p<0?-p:0,b=this._size[0],y=this._size[1],S=Math.min(b-v,y-m),x=[],_=[],M=[];M[0]=0;for(var w=m;w<y&&x.length<S;w++)for(var C=this._ptr[w],P=this._ptr[w+1],D=C;D<P;D++){var R=this._index[D];if(R===w-m+v){x.push(this._values[D]),_[x.length-1]=R-v;break}}return M.push(x.length),new i({values:x,index:_,ptr:M,size:[S,1]})},i.fromJSON=function(p){return new i(p)},i.diagonal=function(p,m,v,b,y){if(!yt(p))throw new TypeError("Array expected, size parameter");if(p.length!==2)throw new Error("Only two dimensions matrix are supported");if(p=p.map(function(j){if(it(j)&&(j=j.toNumber()),!nt(j)||!tt(j)||j<1)throw new Error("Size values must be positive integers");return j}),v){if(it(v)&&(v=v.toNumber()),!nt(v)||!tt(v))throw new TypeError("The parameter k must be an integer number")}else v=0;var S=t,x=0;jt(y)&&(S=e.find(t,[y,y])||t,x=e.convert(0,y));var _=v>0?v:0,M=v<0?-v:0,w=p[0],C=p[1],P=Math.min(w-M,C-_),D;if(yt(m)){if(m.length!==P)throw new Error("Invalid value array length");D=function(J){return m[J]}}else if(ot(m)){var R=m.size();if(R.length!==1||R[0]!==P)throw new Error("Invalid matrix length");D=function(J){return m.get([J])}}else D=function(){return m};for(var W=[],G=[],k=[],L=0;L<C;L++){k.push(W.length);var q=L-_;if(q>=0&&q<P){var Y=D(q);S(Y,x)||(G.push(q+M),W.push(Y))}}return k.push(W.length),new i({values:W,index:G,ptr:k,size:[w,C]})},i.prototype.swapRows=function(p,m){if(!nt(p)||!tt(p)||!nt(m)||!tt(m))throw new Error("Row index must be positive integers");if(this._size.length!==2)throw new Error("Only two dimensional matrix is supported");return Et(p,this._size[0]),Et(m,this._size[0]),i._swapRows(p,m,this._size[1],this._values,this._index,this._ptr),this},i._forEachRow=function(p,m,v,b,y){for(var S=b[p],x=b[p+1],_=S;_<x;_++)y(v[_],m[_])},i._swapRows=function(p,m,v,b,y,S){for(var x=0;x<v;x++){var _=S[x],M=S[x+1],w=s(p,_,M,y),C=s(m,_,M,y);if(w<M&&C<M&&y[w]===p&&y[C]===m){if(b){var P=b[w];b[w]=b[C],b[C]=P}continue}if(w<M&&y[w]===p&&(C>=M||y[C]!==m)){var D=b?b[w]:void 0;y.splice(C,0,m),b&&b.splice(C,0,D),y.splice(C<=w?w+1:w,1),b&&b.splice(C<=w?w+1:w,1);continue}if(C<M&&y[C]===m&&(w>=M||y[w]!==p)){var R=b?b[C]:void 0;y.splice(w,0,p),b&&b.splice(w,0,R),y.splice(w<=C?C+1:C,1),b&&b.splice(w<=C?C+1:C,1)}}},i},{isClass:!0});var fm="number",dm=["typed"];function gm(r){var e=r.match(/(0[box])([0-9a-fA-F]*)\.([0-9a-fA-F]*)/);if(e){var t={"0b":2,"0o":8,"0x":16}[e[1]],n=e[2],i=e[3];return{input:r,radix:t,integerPart:n,fractionalPart:i}}else return null}function mm(r){for(var e=parseInt(r.integerPart,r.radix),t=0,n=0;n<r.fractionalPart.length;n++){var i=parseInt(r.fractionalPart[n],r.radix);t+=i/Math.pow(r.radix,n+1)}var o=e+t;if(isNaN(o))throw new SyntaxError('String "'+r.input+'" is not a valid number');return o}var Co=N(fm,dm,r=>{var{typed:e}=r,t=e("number",{"":function(){return 0},number:function(i){return i},string:function(i){if(i==="NaN")return NaN;var o=gm(i);if(o)return mm(o);var a=0,c=i.match(/(0[box][0-9a-fA-F]*)i([0-9]*)/);c&&(a=Number(c[2]),i=c[1]);var l=Number(i);if(isNaN(l))throw new SyntaxError('String "'+i+'" is not a valid number');if(c){if(l>2**a-1)throw new SyntaxError('String "'.concat(i,'" is out of range'));l>=2**(a-1)&&(l=l-2**a)}return l},BigNumber:function(i){return i.toNumber()},bigint:function(i){return Number(i)},Fraction:function(i){return i.valueOf()},Unit:e.referToSelf(n=>i=>{var o=i.clone();return o.value=n(i.value),o}),null:function(i){return 0},"Unit, string | Unit":function(i,o){return i.toNumber(o)},"Array | Matrix":e.referToSelf(n=>i=>_t(i,n))});return t.fromJSON=function(n){return parseFloat(n.value)},t});var ym="bignumber",vm=["typed","BigNumber"],Ao=N(ym,vm,r=>{var{typed:e,BigNumber:t}=r;return e("bignumber",{"":function(){return new t(0)},number:function(i){return new t(i+"")},string:function(i){var o=i.match(/(0[box][0-9a-fA-F]*)i([0-9]*)/);if(o){var a=o[2],c=t(o[1]),l=new t(2).pow(Number(a));if(c.gt(l.sub(1)))throw new SyntaxError('String "'.concat(i,'" is out of range'));var s=new t(2).pow(Number(a)-1);return c.gte(s)?c.sub(l):c}return new t(i)},BigNumber:function(i){return i},bigint:function(i){return new t(i.toString())},Unit:e.referToSelf(n=>i=>{var o=i.clone();return o.value=n(i.value),o}),Fraction:function(i){return new t(i.n).div(i.d).times(i.s)},null:function(i){return new t(0)},"Array | Matrix":e.referToSelf(n=>i=>_t(i,n))})});var _m="fraction",xm=["typed","Fraction"],Po=N(_m,xm,r=>{var{typed:e,Fraction:t}=r;return e("fraction",{number:function(i){if(!isFinite(i)||isNaN(i))throw new Error(i+" cannot be represented as a fraction");return new t(i)},string:function(i){return new t(i)},"number, number":function(i,o){return new t(i,o)},null:function(i){return new t(0)},BigNumber:function(i){return new t(i.toString())},bigint:function(i){return new t(i.toString())},Fraction:function(i){return i},Unit:e.referToSelf(n=>i=>{var o=i.clone();return o.value=n(i.value),o}),Object:function(i){return new t(i)},"Array | Matrix":e.referToSelf(n=>i=>_t(i,n))})});var dl="matrix",Em=["typed","Matrix","DenseMatrix","SparseMatrix"],Do=N(dl,Em,r=>{var{typed:e,Matrix:t,DenseMatrix:n,SparseMatrix:i}=r;return e(dl,{"":function(){return o([])},string:function(c){return o([],c)},"string, string":function(c,l){return o([],c,l)},Array:function(c){return o(c)},Matrix:function(c){return o(c,c.storage())},"Array | Matrix, string":o,"Array | Matrix, string, string":o});function o(a,c,l){if(c==="dense"||c==="default"||c===void 0)return new n(a,l);if(c==="sparse")return new i(a,l);throw new TypeError("Unknown matrix type "+JSON.stringify(c)+".")}});var gl="unaryMinus",bm=["typed"],Io=N(gl,bm,r=>{var{typed:e}=r;return e(gl,{number:xo,"Complex | BigNumber | Fraction":t=>t.neg(),bigint:t=>-t,Unit:e.referToSelf(t=>n=>{var i=n.clone();return i.value=e.find(t,i.valueType())(n.value),i}),"Array | Matrix":e.referToSelf(t=>n=>_t(n,t,!0))})});var ml="abs",Sm=["typed"],Ro=N(ml,Sm,r=>{var{typed:e}=r;return e(ml,{number:mo,"Complex | BigNumber | Fraction | Unit":t=>t.abs(),bigint:t=>t<0n?-t:t,"Array | Matrix":e.referToSelf(t=>n=>_t(n,t,!0))})});var yl="addScalar",Mm=["typed"],No=N(yl,Mm,r=>{var{typed:e}=r;return e(yl,{"number, number":yo,"Complex, Complex":function(n,i){return n.add(i)},"BigNumber, BigNumber":function(n,i){return n.plus(i)},"bigint, bigint":function(n,i){return n+i},"Fraction, Fraction":function(n,i){return n.add(i)},"Unit, Unit":e.referToSelf(t=>(n,i)=>{if(n.value===null||n.value===void 0)throw new Error("Parameter x contains a unit with undefined value");if(i.value===null||i.value===void 0)throw new Error("Parameter y contains a unit with undefined value");if(!n.equalBase(i))throw new Error("Units do not match");var o=n.clone();return o.value=e.find(t,[o.valueType(),i.valueType()])(o.value,i.value),o.fixPrefix=!1,o})})});var vl="subtractScalar",wm=["typed"],Lo=N(vl,wm,r=>{var{typed:e}=r;return e(vl,{"number, number":vo,"Complex, Complex":function(n,i){return n.sub(i)},"BigNumber, BigNumber":function(n,i){return n.minus(i)},"bigint, bigint":function(n,i){return n-i},"Fraction, Fraction":function(n,i){return n.sub(i)},"Unit, Unit":e.referToSelf(t=>(n,i)=>{if(n.value===null||n.value===void 0)throw new Error("Parameter x contains a unit with undefined value");if(i.value===null||i.value===void 0)throw new Error("Parameter y contains a unit with undefined value");if(!n.equalBase(i))throw new Error("Units do not match");var o=n.clone();return o.value=e.find(t,[o.valueType(),i.valueType()])(o.value,i.value),o.fixPrefix=!1,o})})});var Tm="matAlgo11xS0s",Cm=["typed","equalScalar"],De=N(Tm,Cm,r=>{var{typed:e,equalScalar:t}=r;return function(i,o,a,c){var l=i._values,s=i._index,u=i._ptr,h=i._size,f=i._datatype;if(!l)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var d=h[0],g=h[1],p,m=t,v=0,b=a;typeof f=="string"&&(p=f,m=e.find(t,[p,p]),v=e.convert(0,p),o=e.convert(o,p),b=e.find(a,[p,p]));for(var y=[],S=[],x=[],_=0;_<g;_++){x[_]=S.length;for(var M=u[_],w=u[_+1],C=M;C<w;C++){var P=s[C],D=c?b(o,l[C]):b(l[C],o);m(D,v)||(S.push(P),y.push(D))}}return x[g]=S.length,i.createSparseMatrix({values:y,index:S,ptr:x,size:[d,g],datatype:p})}});var Am="matAlgo12xSfs",Pm=["typed","DenseMatrix"],Nn=N(Am,Pm,r=>{var{typed:e,DenseMatrix:t}=r;return function(i,o,a,c){var l=i._values,s=i._index,u=i._ptr,h=i._size,f=i._datatype;if(!l)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var d=h[0],g=h[1],p,m=a;typeof f=="string"&&(p=f,o=e.convert(o,p),m=e.find(a,[p,p]));for(var v=[],b=[],y=[],S=0;S<g;S++){for(var x=S+1,_=u[S],M=u[S+1],w=_;w<M;w++){var C=s[w];b[C]=l[w],y[C]=x}for(var P=0;P<d;P++)S===0&&(v[P]=[]),y[P]===x?v[P][S]=c?m(o,b[P]):m(b[P],o):v[P][S]=c?m(o,0):m(0,o)}return new t({data:v,size:[d,g],datatype:p})}});var Dm="matAlgo14xDs",Im=["typed"],Ie=N(Dm,Im,r=>{var{typed:e}=r;return function(i,o,a,c){var l=i._data,s=i._size,u=i._datatype,h,f=a;typeof u=="string"&&(h=u,o=e.convert(o,h),f=e.find(a,[h,h]));var d=s.length>0?t(f,0,s,s[0],l,o,c):[];return i.createDenseMatrix({data:d,size:ft(s),datatype:h})};function t(n,i,o,a,c,l,s){var u=[];if(i===o.length-1)for(var h=0;h<a;h++)u[h]=s?n(l,c[h]):n(c[h],l);else for(var f=0;f<a;f++)u[f]=t(n,i+1,o,o[i+1],c[f],l,s);return u}});var Oo="ceil",Rm=["typed","config","round","matrix","equalScalar","zeros","DenseMatrix"],Nm=N(Oo,["typed","config","round"],r=>{var{typed:e,config:t,round:n}=r;return e(Oo,{number:function(o){return pe(o,n(o),t.relTol,t.absTol)?n(o):Math.ceil(o)},"number, number":function(o,a){if(pe(o,n(o,a),t.relTol,t.absTol))return n(o,a);var[c,l]="".concat(o,"e").split("e"),s=Math.ceil(Number("".concat(c,"e").concat(Number(l)+a)));return[c,l]="".concat(s,"e").split("e"),Number("".concat(c,"e").concat(Number(l)-a))}})}),Fo=N(Oo,Rm,r=>{var{typed:e,config:t,round:n,matrix:i,equalScalar:o,zeros:a,DenseMatrix:c}=r,l=De({typed:e,equalScalar:o}),s=Nn({typed:e,DenseMatrix:c}),u=Ie({typed:e}),h=Nm({typed:e,config:t,round:n});return e("ceil",{number:h.signatures.number,"number,number":h.signatures["number,number"],Complex:function(d){return d.ceil()},"Complex, number":function(d,g){return d.ceil(g)},"Complex, BigNumber":function(d,g){return d.ceil(g.toNumber())},BigNumber:function(d){return Qe(d,n(d),t.relTol,t.absTol)?n(d):d.ceil()},"BigNumber, BigNumber":function(d,g){return Qe(d,n(d,g),t.relTol,t.absTol)?n(d,g):d.toDecimalPlaces(g.toNumber(),Jn.ROUND_CEIL)},Fraction:function(d){return d.ceil()},"Fraction, number":function(d,g){return d.ceil(g)},"Fraction, BigNumber":function(d,g){return d.ceil(g.toNumber())},"Array | Matrix":e.referToSelf(f=>d=>_t(d,f,!0)),"Array, number | BigNumber":e.referToSelf(f=>(d,g)=>_t(d,p=>f(p,g),!0)),"SparseMatrix, number | BigNumber":e.referToSelf(f=>(d,g)=>l(d,g,f,!1)),"DenseMatrix, number | BigNumber":e.referToSelf(f=>(d,g)=>u(d,g,f,!1)),"number | Complex | Fraction | BigNumber, Array":e.referToSelf(f=>(d,g)=>u(i(g),d,f,!0).valueOf()),"number | Complex | Fraction | BigNumber, Matrix":e.referToSelf(f=>(d,g)=>o(d,0)?a(g.size(),g.storage()):g.storage()==="dense"?u(g,d,f,!0):s(g,d,f,!0))})});var _l="exp",Lm=["typed"],Uo=N(_l,Lm,r=>{var{typed:e}=r;return e(_l,{number:Eo,Complex:function(n){return n.exp()},BigNumber:function(n){return n.exp()}})});var Om="matAlgo02xDS0",Fm=["typed","equalScalar"],xl=N(Om,Fm,r=>{var{typed:e,equalScalar:t}=r;return function(i,o,a,c){var l=i._data,s=i._size,u=i._datatype||i.getDataType(),h=o._values,f=o._index,d=o._ptr,g=o._size,p=o._datatype||o._data===void 0?o._datatype:o.getDataType();if(s.length!==g.length)throw new Q(s.length,g.length);if(s[0]!==g[0]||s[1]!==g[1])throw new RangeError("Dimension mismatch. Matrix A ("+s+") must match Matrix B ("+g+")");if(!h)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var m=s[0],v=s[1],b,y=t,S=0,x=a;typeof u=="string"&&u===p&&u!=="mixed"&&(b=u,y=e.find(t,[b,b]),S=e.convert(0,b),x=e.find(a,[b,b]));for(var _=[],M=[],w=[],C=0;C<v;C++){w[C]=M.length;for(var P=d[C],D=d[C+1],R=P;R<D;R++){var W=f[R],G=c?x(h[R],l[W][C]):x(l[W][C],h[R]);y(G,S)||(M.push(W),_.push(G))}}return w[v]=M.length,o.createSparseMatrix({values:_,index:M,ptr:w,size:[m,v],datatype:u===i._datatype&&p===o._datatype?b:void 0})}});var Um="matAlgo03xDSf",Bm=["typed"],El=N(Um,Bm,r=>{var{typed:e}=r;return function(n,i,o,a){var c=n._data,l=n._size,s=n._datatype||n.getDataType(),u=i._values,h=i._index,f=i._ptr,d=i._size,g=i._datatype||i._data===void 0?i._datatype:i.getDataType();if(l.length!==d.length)throw new Q(l.length,d.length);if(l[0]!==d[0]||l[1]!==d[1])throw new RangeError("Dimension mismatch. Matrix A ("+l+") must match Matrix B ("+d+")");if(!u)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var p=l[0],m=l[1],v,b=0,y=o;typeof s=="string"&&s===g&&s!=="mixed"&&(v=s,b=e.convert(0,v),y=e.find(o,[v,v]));for(var S=[],x=0;x<p;x++)S[x]=[];for(var _=[],M=[],w=0;w<m;w++){for(var C=w+1,P=f[w],D=f[w+1],R=P;R<D;R++){var W=h[R];_[W]=a?y(u[R],c[W][w]):y(c[W][w],u[R]),M[W]=C}for(var G=0;G<p;G++)M[G]===C?S[G][w]=_[G]:S[G][w]=a?y(b,c[G][w]):y(c[G][w],b)}return n.createDenseMatrix({data:S,size:[p,m],datatype:s===n._datatype&&g===i._datatype?v:void 0})}});var zm="matAlgo13xDD",Gm=["typed"],bl=N(zm,Gm,r=>{var{typed:e}=r;return function(i,o,a){var c=i._data,l=i._size,s=i._datatype,u=o._data,h=o._size,f=o._datatype,d=[];if(l.length!==h.length)throw new Q(l.length,h.length);for(var g=0;g<l.length;g++){if(l[g]!==h[g])throw new RangeError("Dimension mismatch. Matrix A ("+l+") must match Matrix B ("+h+")");d[g]=l[g]}var p,m=a;typeof s=="string"&&s===f&&(p=s,m=e.find(a,[p,p]));var v=d.length>0?t(m,0,d,d[0],c,u):[];return i.createDenseMatrix({data:v,size:d,datatype:p})};function t(n,i,o,a,c,l){var s=[];if(i===o.length-1)for(var u=0;u<a;u++)s[u]=n(c[u],l[u]);else for(var h=0;h<a;h++)s[h]=t(n,i+1,o,o[i+1],c[h],l[h]);return s}});function Dt(r,e){if(ce(r.size(),e.size()))return[r,e];var t=ho(r.size(),e.size());return[r,e].map(n=>km(n,t))}function km(r,e){return ce(r.size(),e)?r:r.create(er(r.valueOf(),e),r.datatype())}var Vm="matrixAlgorithmSuite",Hm=["typed","matrix"],di=N(Vm,Hm,r=>{var{typed:e,matrix:t}=r,n=bl({typed:e}),i=Ie({typed:e});return function(a){var c=a.elop,l=a.SD||a.DS,s;c?(s={"DenseMatrix, DenseMatrix":(d,g)=>n(...Dt(d,g),c),"Array, Array":(d,g)=>n(...Dt(t(d),t(g)),c).valueOf(),"Array, DenseMatrix":(d,g)=>n(...Dt(t(d),g),c),"DenseMatrix, Array":(d,g)=>n(...Dt(d,t(g)),c)},a.SS&&(s["SparseMatrix, SparseMatrix"]=(d,g)=>a.SS(...Dt(d,g),c,!1)),a.DS&&(s["DenseMatrix, SparseMatrix"]=(d,g)=>a.DS(...Dt(d,g),c,!1),s["Array, SparseMatrix"]=(d,g)=>a.DS(...Dt(t(d),g),c,!1)),l&&(s["SparseMatrix, DenseMatrix"]=(d,g)=>l(...Dt(g,d),c,!0),s["SparseMatrix, Array"]=(d,g)=>l(...Dt(t(g),d),c,!0))):(s={"DenseMatrix, DenseMatrix":e.referToSelf(d=>(g,p)=>n(...Dt(g,p),d)),"Array, Array":e.referToSelf(d=>(g,p)=>n(...Dt(t(g),t(p)),d).valueOf()),"Array, DenseMatrix":e.referToSelf(d=>(g,p)=>n(...Dt(t(g),p),d)),"DenseMatrix, Array":e.referToSelf(d=>(g,p)=>n(...Dt(g,t(p)),d))},a.SS&&(s["SparseMatrix, SparseMatrix"]=e.referToSelf(d=>(g,p)=>a.SS(...Dt(g,p),d,!1))),a.DS&&(s["DenseMatrix, SparseMatrix"]=e.referToSelf(d=>(g,p)=>a.DS(...Dt(g,p),d,!1)),s["Array, SparseMatrix"]=e.referToSelf(d=>(g,p)=>a.DS(...Dt(t(g),p),d,!1))),l&&(s["SparseMatrix, DenseMatrix"]=e.referToSelf(d=>(g,p)=>l(...Dt(p,g),d,!0)),s["SparseMatrix, Array"]=e.referToSelf(d=>(g,p)=>l(...Dt(t(p),g),d,!0))));var u=a.scalar||"any",h=a.Ds||a.Ss;h&&(c?(s["DenseMatrix,"+u]=(d,g)=>i(d,g,c,!1),s[u+", DenseMatrix"]=(d,g)=>i(g,d,c,!0),s["Array,"+u]=(d,g)=>i(t(d),g,c,!1).valueOf(),s[u+", Array"]=(d,g)=>i(t(g),d,c,!0).valueOf()):(s["DenseMatrix,"+u]=e.referToSelf(d=>(g,p)=>i(g,p,d,!1)),s[u+", DenseMatrix"]=e.referToSelf(d=>(g,p)=>i(p,g,d,!0)),s["Array,"+u]=e.referToSelf(d=>(g,p)=>i(t(g),p,d,!1).valueOf()),s[u+", Array"]=e.referToSelf(d=>(g,p)=>i(t(p),g,d,!0).valueOf())));var f=a.sS!==void 0?a.sS:a.Ss;return c?(a.Ss&&(s["SparseMatrix,"+u]=(d,g)=>a.Ss(d,g,c,!1)),f&&(s[u+", SparseMatrix"]=(d,g)=>f(g,d,c,!0))):(a.Ss&&(s["SparseMatrix,"+u]=e.referToSelf(d=>(g,p)=>a.Ss(g,p,d,!1))),f&&(s[u+", SparseMatrix"]=e.referToSelf(d=>(g,p)=>f(p,g,d,!0)))),c&&c.signatures&&Kr(s,c.signatures),s}});var Wm="matAlgo01xDSid",qm=["typed"],Sl=N(Wm,qm,r=>{var{typed:e}=r;return function(n,i,o,a){var c=n._data,l=n._size,s=n._datatype||n.getDataType(),u=i._values,h=i._index,f=i._ptr,d=i._size,g=i._datatype||i._data===void 0?i._datatype:i.getDataType();if(l.length!==d.length)throw new Q(l.length,d.length);if(l[0]!==d[0]||l[1]!==d[1])throw new RangeError("Dimension mismatch. Matrix A ("+l+") must match Matrix B ("+d+")");if(!u)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var p=l[0],m=l[1],v=typeof s=="string"&&s!=="mixed"&&s===g?s:void 0,b=v?e.find(o,[v,v]):o,y,S,x=[];for(y=0;y<p;y++)x[y]=[];var _=[],M=[];for(S=0;S<m;S++){for(var w=S+1,C=f[S],P=f[S+1],D=C;D<P;D++)y=h[D],_[y]=a?b(u[D],c[y][S]):b(c[y][S],u[D]),M[y]=w;for(y=0;y<p;y++)M[y]===w?x[y][S]=_[y]:x[y][S]=c[y][S]}return n.createDenseMatrix({data:x,size:[p,m],datatype:s===n._datatype&&g===i._datatype?v:void 0})}});var Xm="matAlgo04xSidSid",jm=["typed","equalScalar"],Ml=N(Xm,jm,r=>{var{typed:e,equalScalar:t}=r;return function(i,o,a){var c=i._values,l=i._index,s=i._ptr,u=i._size,h=i._datatype||i._data===void 0?i._datatype:i.getDataType(),f=o._values,d=o._index,g=o._ptr,p=o._size,m=o._datatype||o._data===void 0?o._datatype:o.getDataType();if(u.length!==p.length)throw new Q(u.length,p.length);if(u[0]!==p[0]||u[1]!==p[1])throw new RangeError("Dimension mismatch. Matrix A ("+u+") must match Matrix B ("+p+")");var v=u[0],b=u[1],y,S=t,x=0,_=a;typeof h=="string"&&h===m&&h!=="mixed"&&(y=h,S=e.find(t,[y,y]),x=e.convert(0,y),_=e.find(a,[y,y]));var M=c&&f?[]:void 0,w=[],C=[],P=c&&f?[]:void 0,D=c&&f?[]:void 0,R=[],W=[],G,k,L,q,Y;for(k=0;k<b;k++){C[k]=w.length;var j=k+1;for(q=s[k],Y=s[k+1],L=q;L<Y;L++)G=l[L],w.push(G),R[G]=j,P&&(P[G]=c[L]);for(q=g[k],Y=g[k+1],L=q;L<Y;L++)if(G=d[L],R[G]===j){if(P){var J=_(P[G],f[L]);S(J,x)?R[G]=null:P[G]=J}}else w.push(G),W[G]=j,D&&(D[G]=f[L]);if(P&&D)for(L=C[k];L<w.length;)G=w[L],R[G]===j?(M[L]=P[G],L++):W[G]===j?(M[L]=D[G],L++):w.splice(L,1)}return C[b]=w.length,i.createSparseMatrix({values:M,index:w,ptr:C,size:[v,b],datatype:h===i._datatype&&m===o._datatype?y:void 0})}});var Ym="matAlgo10xSids",$m=["typed","DenseMatrix"],wl=N(Ym,$m,r=>{var{typed:e,DenseMatrix:t}=r;return function(i,o,a,c){var l=i._values,s=i._index,u=i._ptr,h=i._size,f=i._datatype;if(!l)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var d=h[0],g=h[1],p,m=a;typeof f=="string"&&(p=f,o=e.convert(o,p),m=e.find(a,[p,p]));for(var v=[],b=[],y=[],S=0;S<g;S++){for(var x=S+1,_=u[S],M=u[S+1],w=_;w<M;w++){var C=s[w];b[C]=l[w],y[C]=x}for(var P=0;P<d;P++)S===0&&(v[P]=[]),y[P]===x?v[P][S]=c?m(o,b[P]):m(b[P],o):v[P][S]=o}return new t({data:v,size:[d,g],datatype:p})}});var Tl="log2",Zm=["typed","config","Complex"],Bo=N(Tl,Zm,r=>{var{typed:e,config:t,Complex:n}=r;return e(Tl,{number:function(a){return a>=0||t.predictable?bo(a):i(new n(a,0))},Complex:i,BigNumber:function(a){return!a.isNegative()||t.predictable?a.log(2):i(new n(a.toNumber(),0))},"Array | Matrix":e.referToSelf(o=>a=>_t(a,o))});function i(o){var a=Math.sqrt(o.re*o.re+o.im*o.im);return new n(Math.log2?Math.log2(a):Math.log(a)/Math.LN2,Math.atan2(o.im,o.re)/Math.LN2)}});var Km="multiplyScalar",Jm=["typed"],zo=N(Km,Jm,r=>{var{typed:e}=r;return e("multiplyScalar",{"number, number":_o,"Complex, Complex":function(n,i){return n.mul(i)},"BigNumber, BigNumber":function(n,i){return n.times(i)},"bigint, bigint":function(n,i){return n*i},"Fraction, Fraction":function(n,i){return n.mul(i)},"number | Fraction | BigNumber | Complex, Unit":(t,n)=>n.multiply(t),"Unit, number | Fraction | BigNumber | Complex | Unit":(t,n)=>t.multiply(n)})});var Cl="multiply",Qm=["typed","matrix","addScalar","multiplyScalar","equalScalar","dot"],Go=N(Cl,Qm,r=>{var{typed:e,matrix:t,addScalar:n,multiplyScalar:i,equalScalar:o,dot:a}=r,c=De({typed:e,equalScalar:o}),l=Ie({typed:e});function s(x,_){switch(x.length){case 1:switch(_.length){case 1:if(x[0]!==_[0])throw new RangeError("Dimension mismatch in multiplication. Vectors must have the same length");break;case 2:if(x[0]!==_[0])throw new RangeError("Dimension mismatch in multiplication. Vector length ("+x[0]+") must match Matrix rows ("+_[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+_.length+" dimensions)")}break;case 2:switch(_.length){case 1:if(x[1]!==_[0])throw new RangeError("Dimension mismatch in multiplication. Matrix columns ("+x[1]+") must match Vector length ("+_[0]+")");break;case 2:if(x[1]!==_[0])throw new RangeError("Dimension mismatch in multiplication. Matrix A columns ("+x[1]+") must match Matrix B rows ("+_[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+_.length+" dimensions)")}break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix A has "+x.length+" dimensions)")}}function u(x,_,M){if(M===0)throw new Error("Cannot multiply two empty vectors");return a(x,_)}function h(x,_){if(_.storage()!=="dense")throw new Error("Support for SparseMatrix not implemented");return f(x,_)}function f(x,_){var M=x._data,w=x._size,C=x._datatype||x.getDataType(),P=_._data,D=_._size,R=_._datatype||_.getDataType(),W=w[0],G=D[1],k,L=n,q=i;C&&R&&C===R&&typeof C=="string"&&C!=="mixed"&&(k=C,L=e.find(n,[k,k]),q=e.find(i,[k,k]));for(var Y=[],j=0;j<G;j++){for(var J=q(M[0],P[0][j]),lt=1;lt<W;lt++)J=L(J,q(M[lt],P[lt][j]));Y[j]=J}return x.createDenseMatrix({data:Y,size:[G],datatype:C===x._datatype&&R===_._datatype?k:void 0})}var d=e("_multiplyMatrixVector",{"DenseMatrix, any":p,"SparseMatrix, any":b}),g=e("_multiplyMatrixMatrix",{"DenseMatrix, DenseMatrix":m,"DenseMatrix, SparseMatrix":v,"SparseMatrix, DenseMatrix":y,"SparseMatrix, SparseMatrix":S});function p(x,_){var M=x._data,w=x._size,C=x._datatype||x.getDataType(),P=_._data,D=_._datatype||_.getDataType(),R=w[0],W=w[1],G,k=n,L=i;C&&D&&C===D&&typeof C=="string"&&C!=="mixed"&&(G=C,k=e.find(n,[G,G]),L=e.find(i,[G,G]));for(var q=[],Y=0;Y<R;Y++){for(var j=M[Y],J=L(j[0],P[0]),lt=1;lt<W;lt++)J=k(J,L(j[lt],P[lt]));q[Y]=J}return x.createDenseMatrix({data:q,size:[R],datatype:C===x._datatype&&D===_._datatype?G:void 0})}function m(x,_){var M=x._data,w=x._size,C=x._datatype||x.getDataType(),P=_._data,D=_._size,R=_._datatype||_.getDataType(),W=w[0],G=w[1],k=D[1],L,q=n,Y=i;C&&R&&C===R&&typeof C=="string"&&C!=="mixed"&&C!=="mixed"&&(L=C,q=e.find(n,[L,L]),Y=e.find(i,[L,L]));for(var j=[],J=0;J<W;J++){var lt=M[J];j[J]=[];for(var at=0;at<k;at++){for(var pt=Y(lt[0],P[0][at]),Tt=1;Tt<G;Tt++)pt=q(pt,Y(lt[Tt],P[Tt][at]));j[J][at]=pt}}return x.createDenseMatrix({data:j,size:[W,k],datatype:C===x._datatype&&R===_._datatype?L:void 0})}function v(x,_){var M=x._data,w=x._size,C=x._datatype||x.getDataType(),P=_._values,D=_._index,R=_._ptr,W=_._size,G=_._datatype||_._data===void 0?_._datatype:_.getDataType();if(!P)throw new Error("Cannot multiply Dense Matrix times Pattern only Matrix");var k=w[0],L=W[1],q,Y=n,j=i,J=o,lt=0;C&&G&&C===G&&typeof C=="string"&&C!=="mixed"&&(q=C,Y=e.find(n,[q,q]),j=e.find(i,[q,q]),J=e.find(o,[q,q]),lt=e.convert(0,q));for(var at=[],pt=[],Tt=[],wt=_.createSparseMatrix({values:at,index:pt,ptr:Tt,size:[k,L],datatype:C===x._datatype&&G===_._datatype?q:void 0}),St=0;St<L;St++){Tt[St]=pt.length;var xt=R[St],$t=R[St+1];if($t>xt)for(var Mt=0,gt=0;gt<k;gt++){for(var se=gt+1,Ot=void 0,ct=xt;ct<$t;ct++){var It=D[ct];Mt!==se?(Ot=j(M[gt][It],P[ct]),Mt=se):Ot=Y(Ot,j(M[gt][It],P[ct]))}Mt===se&&!J(Ot,lt)&&(pt.push(gt),at.push(Ot))}}return Tt[L]=pt.length,wt}function b(x,_){var M=x._values,w=x._index,C=x._ptr,P=x._datatype||x._data===void 0?x._datatype:x.getDataType();if(!M)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var D=_._data,R=_._datatype||_.getDataType(),W=x._size[0],G=_._size[0],k=[],L=[],q=[],Y,j=n,J=i,lt=o,at=0;P&&R&&P===R&&typeof P=="string"&&P!=="mixed"&&(Y=P,j=e.find(n,[Y,Y]),J=e.find(i,[Y,Y]),lt=e.find(o,[Y,Y]),at=e.convert(0,Y));var pt=[],Tt=[];q[0]=0;for(var wt=0;wt<G;wt++){var St=D[wt];if(!lt(St,at))for(var xt=C[wt],$t=C[wt+1],Mt=xt;Mt<$t;Mt++){var gt=w[Mt];Tt[gt]?pt[gt]=j(pt[gt],J(St,M[Mt])):(Tt[gt]=!0,L.push(gt),pt[gt]=J(St,M[Mt]))}}for(var se=L.length,Ot=0;Ot<se;Ot++){var ct=L[Ot];k[Ot]=pt[ct]}return q[1]=L.length,x.createSparseMatrix({values:k,index:L,ptr:q,size:[W,1],datatype:P===x._datatype&&R===_._datatype?Y:void 0})}function y(x,_){var M=x._values,w=x._index,C=x._ptr,P=x._datatype||x._data===void 0?x._datatype:x.getDataType();if(!M)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var D=_._data,R=_._datatype||_.getDataType(),W=x._size[0],G=_._size[0],k=_._size[1],L,q=n,Y=i,j=o,J=0;P&&R&&P===R&&typeof P=="string"&&P!=="mixed"&&(L=P,q=e.find(n,[L,L]),Y=e.find(i,[L,L]),j=e.find(o,[L,L]),J=e.convert(0,L));for(var lt=[],at=[],pt=[],Tt=x.createSparseMatrix({values:lt,index:at,ptr:pt,size:[W,k],datatype:P===x._datatype&&R===_._datatype?L:void 0}),wt=[],St=[],xt=0;xt<k;xt++){pt[xt]=at.length;for(var $t=xt+1,Mt=0;Mt<G;Mt++){var gt=D[Mt][xt];if(!j(gt,J))for(var se=C[Mt],Ot=C[Mt+1],ct=se;ct<Ot;ct++){var It=w[ct];St[It]!==$t?(St[It]=$t,at.push(It),wt[It]=Y(gt,M[ct])):wt[It]=q(wt[It],Y(gt,M[ct]))}}for(var zt=pt[xt],be=at.length,ke=zt;ke<be;ke++){var Un=at[ke];lt[ke]=wt[Un]}}return pt[k]=at.length,Tt}function S(x,_){var M=x._values,w=x._index,C=x._ptr,P=x._datatype||x._data===void 0?x._datatype:x.getDataType(),D=_._values,R=_._index,W=_._ptr,G=_._datatype||_._data===void 0?_._datatype:_.getDataType(),k=x._size[0],L=_._size[1],q=M&&D,Y,j=n,J=i;P&&G&&P===G&&typeof P=="string"&&P!=="mixed"&&(Y=P,j=e.find(n,[Y,Y]),J=e.find(i,[Y,Y]));for(var lt=q?[]:void 0,at=[],pt=[],Tt=x.createSparseMatrix({values:lt,index:at,ptr:pt,size:[k,L],datatype:P===x._datatype&&G===_._datatype?Y:void 0}),wt=q?[]:void 0,St=[],xt,$t,Mt,gt,se,Ot,ct,It,zt=0;zt<L;zt++){pt[zt]=at.length;var be=zt+1;for(se=W[zt],Ot=W[zt+1],gt=se;gt<Ot;gt++)if(It=R[gt],q)for($t=C[It],Mt=C[It+1],xt=$t;xt<Mt;xt++)ct=w[xt],St[ct]!==be?(St[ct]=be,at.push(ct),wt[ct]=J(D[gt],M[xt])):wt[ct]=j(wt[ct],J(D[gt],M[xt]));else for($t=C[It],Mt=C[It+1],xt=$t;xt<Mt;xt++)ct=w[xt],St[ct]!==be&&(St[ct]=be,at.push(ct));if(q)for(var ke=pt[zt],Un=at.length,cn=ke;cn<Un;cn++){var ar=at[cn];lt[cn]=wt[ar]}}return pt[L]=at.length,Tt}return e(Cl,i,{"Array, Array":e.referTo("Matrix, Matrix",x=>(_,M)=>{s(st(_),st(M));var w=x(t(_),t(M));return ot(w)?w.valueOf():w}),"Matrix, Matrix":function(_,M){var w=_.size(),C=M.size();return s(w,C),w.length===1?C.length===1?u(_,M,w[0]):h(_,M):C.length===1?d(_,M):g(_,M)},"Matrix, Array":e.referTo("Matrix,Matrix",x=>(_,M)=>x(_,t(M))),"Array, Matrix":e.referToSelf(x=>(_,M)=>x(t(_,M.storage()),M)),"SparseMatrix, any":function(_,M){return c(_,M,i,!1)},"DenseMatrix, any":function(_,M){return l(_,M,i,!1)},"any, SparseMatrix":function(_,M){return c(M,_,i,!0)},"any, DenseMatrix":function(_,M){return l(M,_,i,!0)},"Array, any":function(_,M){return l(t(_),M,i,!1).valueOf()},"any, Array":function(_,M){return l(t(M),_,i,!0).valueOf()},"any, any":i,"any, any, ...any":e.referToSelf(x=>(_,M,w)=>{for(var C=x(_,M),P=0;P<w.length;P++)C=x(C,w[P]);return C})})});var ty="matAlgo07xSSf",ey=["typed","DenseMatrix"],Al=N(ty,ey,r=>{var{typed:e,DenseMatrix:t}=r;return function(o,a,c){var l=o._size,s=o._datatype||o._data===void 0?o._datatype:o.getDataType(),u=a._size,h=a._datatype||a._data===void 0?a._datatype:a.getDataType();if(l.length!==u.length)throw new Q(l.length,u.length);if(l[0]!==u[0]||l[1]!==u[1])throw new RangeError("Dimension mismatch. Matrix A ("+l+") must match Matrix B ("+u+")");var f=l[0],d=l[1],g,p=0,m=c;typeof s=="string"&&s===h&&s!=="mixed"&&(g=s,p=e.convert(0,g),m=e.find(c,[g,g]));var v,b,y=[];for(v=0;v<f;v++)y[v]=[];var S=[],x=[],_=[],M=[];for(b=0;b<d;b++){var w=b+1;for(n(o,b,_,S,w),n(a,b,M,x,w),v=0;v<f;v++){var C=_[v]===w?S[v]:p,P=M[v]===w?x[v]:p;y[v][b]=m(C,P)}}return new t({data:y,size:[f,d],datatype:s===o._datatype&&h===a._datatype?g:void 0})};function n(i,o,a,c,l){for(var s=i._values,u=i._index,h=i._ptr,f=h[o],d=h[o+1];f<d;f++){var g=u[f];a[g]=l,c[g]=s[f]}}});var Pl="conj",ny=["typed"],ko=N(Pl,ny,r=>{var{typed:e}=r;return e(Pl,{"number | BigNumber | Fraction":t=>t,Complex:t=>t.conjugate(),"Array | Matrix":e.referToSelf(t=>n=>_t(n,t))})});var Dl="concat",ry=["typed","matrix","isInteger"],Vo=N(Dl,ry,r=>{var{typed:e,matrix:t,isInteger:n}=r;return e(Dl,{"...Array | Matrix | number | BigNumber":function(o){var a,c=o.length,l=-1,s,u=!1,h=[];for(a=0;a<c;a++){var f=o[a];if(ot(f)&&(u=!0),nt(f)||it(f)){if(a!==c-1)throw new Error("Dimension must be specified as last argument");if(s=l,l=f.valueOf(),!n(l))throw new TypeError("Integer number expected for dimension");if(l<0||a>0&&l>s)throw new xe(l,s+1)}else{var d=ft(f).valueOf(),g=st(d);if(h[a]=d,s=l,l=g.length-1,a>0&&l!==s)throw new Q(s+1,l+1)}}if(h.length===0)throw new SyntaxError("At least one matrix expected");for(var p=h.shift();h.length;)p=co(p,h.shift(),l);return u?t(p):p},"...string":function(o){return o.join("")}})});var Il="identity",iy=["typed","config","matrix","BigNumber","DenseMatrix","SparseMatrix"],Ho=N(Il,iy,r=>{var{typed:e,config:t,matrix:n,BigNumber:i,DenseMatrix:o,SparseMatrix:a}=r;return e(Il,{"":function(){return t.matrix==="Matrix"?n([]):[]},string:function(u){return n(u)},"number | BigNumber":function(u){return l(u,u,t.matrix==="Matrix"?"dense":void 0)},"number | BigNumber, string":function(u,h){return l(u,u,h)},"number | BigNumber, number | BigNumber":function(u,h){return l(u,h,t.matrix==="Matrix"?"dense":void 0)},"number | BigNumber, number | BigNumber, string":function(u,h,f){return l(u,h,f)},Array:function(u){return c(u)},"Array, string":function(u,h){return c(u,h)},Matrix:function(u){return c(u.valueOf(),u.storage())},"Matrix, string":function(u,h){return c(u.valueOf(),h)}});function c(s,u){switch(s.length){case 0:return u?n(u):[];case 1:return l(s[0],s[0],u);case 2:return l(s[0],s[1],u);default:throw new Error("Vector containing two values expected")}}function l(s,u,h){var f=it(s)||it(u)?i:null;if(it(s)&&(s=s.toNumber()),it(u)&&(u=u.toNumber()),!tt(s)||s<1)throw new Error("Parameters in function identity must be positive integers");if(!tt(u)||u<1)throw new Error("Parameters in function identity must be positive integers");var d=f?new i(1):1,g=f?new f(0):0,p=[s,u];if(h){if(h==="sparse")return a.diagonal(p,d,0,g);if(h==="dense")return o.diagonal(p,d,0,g);throw new TypeError('Unknown matrix type "'.concat(h,'"'))}for(var m=un([],p,g),v=s<u?s:u,b=0;b<v;b++)m[b][b]=d;return m}});function Rl(){throw new Error('No "bignumber" implementation available')}function Nl(){throw new Error('No "fraction" implementation available')}function Ll(){throw new Error('No "matrix" implementation available')}var Ol="reshape",oy=["typed","isInteger","matrix"],Wo=N(Ol,oy,r=>{var{typed:e,isInteger:t}=r;return e(Ol,{"Matrix, Array":function(i,o){return i.reshape(o,!0)},"Array, Array":function(i,o){return o.forEach(function(a){if(!t(a))throw new TypeError("Invalid size for dimension: "+a)}),Qn(i,o)}})});var Fl="size",sy=["typed","config","?matrix"],qo=N(Fl,sy,r=>{var{typed:e,config:t,matrix:n}=r;return e(Fl,{Matrix:function(o){return o.create(o.size(),"number")},Array:st,string:function(o){return t.matrix==="Array"?[o.length]:n([o.length],"dense","number")},"number | Complex | BigNumber | Unit | boolean | null":function(o){return t.matrix==="Array"?[]:n?n([],"dense","number"):Ll()}})});var Ul="zeros",ay=["typed","config","matrix","BigNumber"],Xo=N(Ul,ay,r=>{var{typed:e,config:t,matrix:n,BigNumber:i}=r;return e(Ul,{"":function(){return t.matrix==="Array"?o([]):o([],"default")},"...number | BigNumber | string":function(s){var u=s[s.length-1];if(typeof u=="string"){var h=s.pop();return o(s,h)}else return t.matrix==="Array"?o(s):o(s,"default")},Array:o,Matrix:function(s){var u=s.storage();return o(s.valueOf(),u)},"Array | Matrix, string":function(s,u){return o(s.valueOf(),u)}});function o(l,s){var u=a(l),h=u?new i(0):0;if(c(l),s){var f=n(s);return l.length>0?f.resize(l,h):f}else{var d=[];return l.length>0?un(d,l,h):d}}function a(l){var s=!1;return l.forEach(function(u,h,f){it(u)&&(s=!0,f[h]=u.toNumber())}),s}function c(l){l.forEach(function(s){if(typeof s!="number"||!tt(s)||s<0)throw new Error("Parameters in function zeros must be positive integers")})}});var Bl="fft",uy=["typed","matrix","addScalar","multiplyScalar","divideScalar","exp","tau","i","dotDivide","conj","pow","ceil","log2"],jo=N(Bl,uy,r=>{var{typed:e,matrix:t,addScalar:n,multiplyScalar:i,divideScalar:o,exp:a,tau:c,i:l,dotDivide:s,conj:u,pow:h,ceil:f,log2:d}=r;return e(Bl,{Array:g,Matrix:function(y){return y.create(g(y.valueOf()),y.datatype())}});function g(b){var y=st(b);return y.length===1?v(b,y[0]):p(b.map(S=>g(S,y.slice(1))),0)}function p(b,y){var S=st(b);if(y!==0)return new Array(S[0]).fill(0).map((_,M)=>p(b[M],y-1));if(S.length===1)return v(b);function x(_){var M=st(_);return new Array(M[1]).fill(0).map((w,C)=>new Array(M[0]).fill(0).map((P,D)=>_[D][C]))}return x(p(x(b),1))}function m(b){for(var y=b.length,S=a(o(i(-1,i(l,c)),y)),x=[],_=1-y;_<y;_++)x.push(h(S,o(h(_,2),2)));for(var M=h(2,f(d(y+y-1))),w=[...new Array(y).fill(0).map((L,q)=>i(b[q],x[y-1+q])),...new Array(M-y).fill(0)],C=[...new Array(y+y-1).fill(0).map((L,q)=>o(1,x[q])),...new Array(M-(y+y-1)).fill(0)],P=v(w),D=v(C),R=new Array(M).fill(0).map((L,q)=>i(P[q],D[q])),W=s(u(g(u(R))),M),G=[],k=y-1;k<y+y-1;k++)G.push(i(W[k],x[k]));return G}function v(b){var y=b.length;if(y===1)return[b[0]];if(y%2===0){for(var S=[...v(b.filter((w,C)=>C%2===0),y/2),...v(b.filter((w,C)=>C%2===1),y/2)],x=0;x<y/2;x++){var _=S[x],M=i(S[x+y/2],a(i(i(c,l),o(-x,y))));S[x]=n(_,M),S[x+y/2]=n(_,i(-1,M))}return S}else return m(b)}});function Yo(r,e,t){var n;return String(r).includes("Unexpected type")?(n=arguments.length>2?" (type: "+Ut(t)+", value: "+JSON.stringify(t)+")":" (type: "+r.data.actual+")",new TypeError("Cannot calculate "+e+", unexpected type of argument"+n)):String(r).includes("complex numbers")?(n=arguments.length>2?" (type: "+Ut(t)+", value: "+JSON.stringify(t)+")":"",new TypeError("Cannot calculate "+e+", no ordering relation is defined for complex numbers"+n)):r}var ly="numeric",cy=["number","?bignumber","?fraction"],$o=N(ly,cy,r=>{var{number:e,bignumber:t,fraction:n}=r,i={string:!0,number:!0,BigNumber:!0,Fraction:!0},o={number:a=>e(a),BigNumber:t?a=>t(a):Rl,bigint:a=>BigInt(a),Fraction:n?a=>n(a):Nl};return function(c){var l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"number",s=arguments.length>2?arguments[2]:void 0;if(s!==void 0)throw new SyntaxError("numeric() takes one or two arguments");var u=Ut(c);if(!(u in i))throw new TypeError("Cannot convert "+c+' of type "'+u+'"; valid input types are '+Object.keys(i).join(", "));if(!(l in o))throw new TypeError("Cannot convert "+c+' to type "'+l+'"; valid output types are '+Object.keys(o).join(", "));return l===u?c:o[l](c)}});var zl="divideScalar",hy=["typed","numeric"],Zo=N(zl,hy,r=>{var{typed:e,numeric:t}=r;return e(zl,{"number, number":function(i,o){return i/o},"Complex, Complex":function(i,o){return i.div(o)},"BigNumber, BigNumber":function(i,o){return i.div(o)},"bigint, bigint":function(i,o){return i/o},"Fraction, Fraction":function(i,o){return i.div(o)},"Unit, number | Complex | Fraction | BigNumber | Unit":(n,i)=>n.divide(i),"number | Fraction | Complex | BigNumber, Unit":(n,i)=>i.divideInto(n)})});var Gl="pow",py=["typed","config","identity","multiply","matrix","inv","fraction","number","Complex"],Ko=N(Gl,py,r=>{var{typed:e,config:t,identity:n,multiply:i,matrix:o,inv:a,number:c,fraction:l,Complex:s}=r;return e(Gl,{"number, number":u,"Complex, Complex":function(g,p){return g.pow(p)},"BigNumber, BigNumber":function(g,p){return p.isInteger()||g>=0||t.predictable?g.pow(p):new s(g.toNumber(),0).pow(p.toNumber(),0)},"bigint, bigint":(d,g)=>d**g,"Fraction, Fraction":function(g,p){var m=g.pow(p);if(m!=null)return m;if(t.predictable)throw new Error("Result of pow is non-rational and cannot be expressed as a fraction");return u(g.valueOf(),p.valueOf())},"Array, number":h,"Array, BigNumber":function(g,p){return h(g,p.toNumber())},"Matrix, number":f,"Matrix, BigNumber":function(g,p){return f(g,p.toNumber())},"Unit, number | BigNumber":function(g,p){return g.pow(p)}});function u(d,g){if(t.predictable&&!tt(g)&&d<0)try{var p=l(g),m=c(p);if((g===m||Math.abs((g-m)/g)<1e-14)&&p.d%2===1)return(p.n%2===0?1:-1)*Math.pow(-d,g)}catch{}return t.predictable&&(d<-1&&g===1/0||d>-1&&d<0&&g===-1/0)?NaN:tt(g)||d>=0||t.predictable?So(d,g):d*d<1&&g===1/0||d*d>1&&g===-1/0?0:new s(d,0).pow(g,0)}function h(d,g){if(!tt(g))throw new TypeError("For A^b, b must be an integer (value is "+g+")");var p=st(d);if(p.length!==2)throw new Error("For A^b, A must be 2 dimensional (A has "+p.length+" dimensions)");if(p[0]!==p[1])throw new Error("For A^b, A must be square (size is "+p[0]+"x"+p[1]+")");if(g<0)try{return h(a(d),-g)}catch(b){throw b.message==="Cannot calculate inverse, determinant is zero"?new TypeError("For A^b, when A is not invertible, b must be a positive integer (value is "+g+")"):b}for(var m=n(p[0]).valueOf(),v=d;g>=1;)(g&1)===1&&(m=i(v,m)),g>>=1,v=i(v,v);return m}function f(d,g){return o(h(d.valueOf(),g))}});var Ln="Number of decimals in function round must be an integer",kl="round",fy=["typed","config","matrix","equalScalar","zeros","BigNumber","DenseMatrix"],Jo=N(kl,fy,r=>{var{typed:e,config:t,matrix:n,equalScalar:i,zeros:o,BigNumber:a,DenseMatrix:c}=r,l=De({typed:e,equalScalar:i}),s=Nn({typed:e,DenseMatrix:c}),u=Ie({typed:e});function h(f){return Math.abs(Cn(f).exponent)}return e(kl,{number:function(d){var g=Rn(d,h(t.relTol)),p=pe(d,g,t.relTol,t.absTol)?g:d;return Rn(p)},"number, number":function(d,g){var p=h(t.relTol);if(g>=p)return Rn(d,g);var m=Rn(d,p),v=pe(d,m,t.relTol,t.absTol)?m:d;return Rn(v,g)},"number, BigNumber":function(d,g){if(!g.isInteger())throw new TypeError(Ln);return new a(d).toDecimalPlaces(g.toNumber())},Complex:function(d){return d.round()},"Complex, number":function(d,g){if(g%1)throw new TypeError(Ln);return d.round(g)},"Complex, BigNumber":function(d,g){if(!g.isInteger())throw new TypeError(Ln);var p=g.toNumber();return d.round(p)},BigNumber:function(d){var g=new a(d).toDecimalPlaces(h(t.relTol)),p=Qe(d,g,t.relTol,t.absTol)?g:d;return p.toDecimalPlaces(0)},"BigNumber, BigNumber":function(d,g){if(!g.isInteger())throw new TypeError(Ln);var p=h(t.relTol);if(g>=p)return d.toDecimalPlaces(g.toNumber());var m=d.toDecimalPlaces(p),v=Qe(d,m,t.relTol,t.absTol)?m:d;return v.toDecimalPlaces(g.toNumber())},Fraction:function(d){return d.round()},"Fraction, number":function(d,g){if(g%1)throw new TypeError(Ln);return d.round(g)},"Fraction, BigNumber":function(d,g){if(!g.isInteger())throw new TypeError(Ln);return d.round(g.toNumber())},"Unit, number, Unit":e.referToSelf(f=>function(d,g,p){var m=d.toNumeric(p);return p.multiply(f(m,g))}),"Unit, BigNumber, Unit":e.referToSelf(f=>(d,g,p)=>f(d,g.toNumber(),p)),"Unit, Unit":e.referToSelf(f=>(d,g)=>f(d,0,g)),"Array | Matrix, number, Unit":e.referToSelf(f=>(d,g,p)=>_t(d,m=>f(m,g,p),!0)),"Array | Matrix, BigNumber, Unit":e.referToSelf(f=>(d,g,p)=>f(d,g.toNumber(),p)),"Array | Matrix, Unit":e.referToSelf(f=>(d,g)=>f(d,0,g)),"Array | Matrix":e.referToSelf(f=>d=>_t(d,f,!0)),"SparseMatrix, number | BigNumber":e.referToSelf(f=>(d,g)=>l(d,g,f,!1)),"DenseMatrix, number | BigNumber":e.referToSelf(f=>(d,g)=>u(d,g,f,!1)),"Array, number | BigNumber":e.referToSelf(f=>(d,g)=>u(n(d),g,f,!1).valueOf()),"number | Complex | BigNumber | Fraction, SparseMatrix":e.referToSelf(f=>(d,g)=>i(d,0)?o(g.size(),g.storage()):s(g,d,f,!0)),"number | Complex | BigNumber | Fraction, DenseMatrix":e.referToSelf(f=>(d,g)=>i(d,0)?o(g.size(),g.storage()):u(g,d,f,!0)),"number | Complex | BigNumber | Fraction, Array":e.referToSelf(f=>(d,g)=>u(n(g),d,f,!0).valueOf())})});var Vl="dotDivide",dy=["typed","matrix","equalScalar","divideScalar","DenseMatrix","concat"],Qo=N(Vl,dy,r=>{var{typed:e,matrix:t,equalScalar:n,divideScalar:i,DenseMatrix:o,concat:a}=r,c=xl({typed:e,equalScalar:n}),l=El({typed:e}),s=Al({typed:e,DenseMatrix:o}),u=De({typed:e,equalScalar:n}),h=Nn({typed:e,DenseMatrix:o}),f=di({typed:e,matrix:t,concat:a});return e(Vl,f({elop:i,SS:s,DS:l,SD:c,Ss:u,sS:h}))});function Hl(r){var e=0,t=1,n=Object.create(null),i=Object.create(null),o=0,a=function(l){var s=i[l];if(s&&(delete n[s],delete i[l],--e,t===s)){if(!e){o=0,t=1;return}for(;!Object.prototype.hasOwnProperty.call(n,++t););}};return r=Math.abs(r),{hit:function(l){var s=i[l],u=++o;if(n[u]=l,i[l]=u,!s)return++e,e<=r?void 0:(l=n[t],a(l),l);if(delete n[s],t===s)for(;!Object.prototype.hasOwnProperty.call(n,++t););},delete:a,clear:function(){e=o=0,t=1,n=Object.create(null),i=Object.create(null)}}}function rr(r){var{hasher:e,limit:t}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return t=t??Number.POSITIVE_INFINITY,e=e??JSON.stringify,function n(){typeof n.cache!="object"&&(n.cache={values:new Map,lru:Hl(t||Number.POSITIVE_INFINITY)});for(var i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];var a=e(i);if(n.cache.values.has(a))return n.cache.lru.hit(a),n.cache.values.get(a);var c=r.apply(r,i);return n.cache.values.set(a,c),n.cache.values.delete(n.cache.lru.hit(a)),c}}var gy=rr(function(r){return new r(1).exp()},{hasher:gi}),my=rr(function(r){return new r(1).plus(new r(5).sqrt()).div(2)},{hasher:gi}),Wl=rr(function(r){return r.acos(-1)},{hasher:gi}),ql=rr(function(r){return Wl(r).times(2)},{hasher:gi});function gi(r){return r[0].precision}var Xl="add",yy=["typed","matrix","addScalar","equalScalar","DenseMatrix","SparseMatrix","concat"],ts=N(Xl,yy,r=>{var{typed:e,matrix:t,addScalar:n,equalScalar:i,DenseMatrix:o,SparseMatrix:a,concat:c}=r,l=Sl({typed:e}),s=Ml({typed:e,equalScalar:i}),u=wl({typed:e,DenseMatrix:o}),h=di({typed:e,matrix:t,concat:c});return e(Xl,{"any, any":n,"any, any, ...any":e.referToSelf(f=>(d,g,p)=>{for(var m=f(d,g),v=0;v<p.length;v++)m=f(m,p[v]);return m})},h({elop:n,DS:l,SS:s,Ss:u}))});var jl="dot",vy=["typed","addScalar","multiplyScalar","conj","size"],es=N(jl,vy,r=>{var{typed:e,addScalar:t,multiplyScalar:n,conj:i,size:o}=r;return e(jl,{"Array | DenseMatrix, Array | DenseMatrix":c,"SparseMatrix, SparseMatrix":l});function a(u,h){var f=s(u),d=s(h),g,p;if(f.length===1)g=f[0];else if(f.length===2&&f[1]===1)g=f[0];else throw new RangeError("Expected a column vector, instead got a matrix of size ("+f.join(", ")+")");if(d.length===1)p=d[0];else if(d.length===2&&d[1]===1)p=d[0];else throw new RangeError("Expected a column vector, instead got a matrix of size ("+d.join(", ")+")");if(g!==p)throw new RangeError("Vectors must have equal length ("+g+" != "+p+")");if(g===0)throw new RangeError("Cannot calculate the dot product of empty vectors");return g}function c(u,h){var f=a(u,h),d=ot(u)?u._data:u,g=ot(u)?u._datatype||u.getDataType():void 0,p=ot(h)?h._data:h,m=ot(h)?h._datatype||h.getDataType():void 0,v=s(u).length===2,b=s(h).length===2,y=t,S=n;if(g&&m&&g===m&&typeof g=="string"&&g!=="mixed"){var x=g;y=e.find(t,[x,x]),S=e.find(n,[x,x])}if(!v&&!b){for(var _=S(i(d[0]),p[0]),M=1;M<f;M++)_=y(_,S(i(d[M]),p[M]));return _}if(!v&&b){for(var w=S(i(d[0]),p[0][0]),C=1;C<f;C++)w=y(w,S(i(d[C]),p[C][0]));return w}if(v&&!b){for(var P=S(i(d[0][0]),p[0]),D=1;D<f;D++)P=y(P,S(i(d[D][0]),p[D]));return P}if(v&&b){for(var R=S(i(d[0][0]),p[0][0]),W=1;W<f;W++)R=y(R,S(i(d[W][0]),p[W][0]));return R}}function l(u,h){a(u,h);for(var f=u._index,d=u._values,g=h._index,p=h._values,m=0,v=t,b=n,y=0,S=0;y<f.length&&S<g.length;){var x=f[y],_=g[S];if(x<_){y++;continue}if(x>_){S++;continue}x===_&&(m=v(m,b(d[y],p[S])),y++,S++)}return m}function s(u){return ot(u)?u.size():o(u)}});var Yl="det",_y=["typed","matrix","subtractScalar","multiply","divideScalar","isZero","unaryMinus"],ns=N(Yl,_y,r=>{var{typed:e,matrix:t,subtractScalar:n,multiply:i,divideScalar:o,isZero:a,unaryMinus:c}=r;return e(Yl,{any:function(u){return ft(u)},"Array | Matrix":function(u){var h;switch(ot(u)?h=u.size():Array.isArray(u)?(u=t(u),h=u.size()):h=[],h.length){case 0:return ft(u);case 1:if(h[0]===1)return ft(u.valueOf()[0]);if(h[0]===0)return 1;throw new RangeError("Matrix must be square (size: "+vt(h)+")");case 2:{var f=h[0],d=h[1];if(f===d)return l(u.clone().valueOf(),f,d);if(d===0)return 1;throw new RangeError("Matrix must be square (size: "+vt(h)+")")}default:throw new RangeError("Matrix must be two dimensional (size: "+vt(h)+")")}}});function l(s,u,h){if(u===1)return ft(s[0][0]);if(u===2)return n(i(s[0][0],s[1][1]),i(s[1][0],s[0][1]));for(var f=!1,d=new Array(u).fill(0).map((M,w)=>w),g=0;g<u;g++){var p=d[g];if(a(s[p][g])){var m=void 0;for(m=g+1;m<u;m++)if(!a(s[d[m]][g])){p=d[m],d[m]=d[g],d[g]=p,f=!f;break}if(m===u)return s[p][g]}for(var v=s[p][g],b=g===0?1:s[d[g-1]][g-1],y=g+1;y<u;y++)for(var S=d[y],x=g+1;x<u;x++)s[S][x]=o(n(i(s[S][x],v),i(s[S][g],s[p][x])),b)}var _=s[d[u-1]][u-1];return f?c(_):_}});var $l="inv",xy=["typed","matrix","divideScalar","addScalar","multiply","unaryMinus","det","identity","abs"],rs=N($l,xy,r=>{var{typed:e,matrix:t,divideScalar:n,addScalar:i,multiply:o,unaryMinus:a,det:c,identity:l,abs:s}=r;return e($l,{"Array | Matrix":function(f){var d=ot(f)?f.size():st(f);switch(d.length){case 1:if(d[0]===1)return ot(f)?t([n(1,f.valueOf()[0])]):[n(1,f[0])];throw new RangeError("Matrix must be square (size: "+vt(d)+")");case 2:{var g=d[0],p=d[1];if(g===p)return ot(f)?t(u(f.valueOf(),g,p),f.storage()):u(f,g,p);throw new RangeError("Matrix must be square (size: "+vt(d)+")")}default:throw new RangeError("Matrix must be two dimensional (size: "+vt(d)+")")}},any:function(f){return n(1,f)}});function u(h,f,d){var g,p,m,v,b;if(f===1){if(v=h[0][0],v===0)throw Error("Cannot calculate inverse, determinant is zero");return[[n(1,v)]]}else if(f===2){var y=c(h);if(y===0)throw Error("Cannot calculate inverse, determinant is zero");return[[n(h[1][1],y),n(a(h[0][1]),y)],[n(a(h[1][0]),y),n(h[0][0],y)]]}else{var S=h.concat();for(g=0;g<f;g++)S[g]=S[g].concat();for(var x=l(f).valueOf(),_=0;_<d;_++){var M=s(S[_][_]),w=_;for(g=_+1;g<f;)s(S[g][_])>M&&(M=s(S[g][_]),w=g),g++;if(M===0)throw Error("Cannot calculate inverse, determinant is zero");g=w,g!==_&&(b=S[_],S[_]=S[g],S[g]=b,b=x[_],x[_]=x[g],x[g]=b);var C=S[_],P=x[_];for(g=0;g<f;g++){var D=S[g],R=x[g];if(g!==_){if(D[_]!==0){for(m=n(a(D[_]),C[_]),p=_;p<d;p++)D[p]=i(D[p],o(m,C[p]));for(p=0;p<d;p++)R[p]=i(R[p],o(m,P[p]))}}else{for(m=C[_],p=_;p<d;p++)D[p]=n(D[p],m);for(p=0;p<d;p++)R[p]=n(R[p],m)}}}return x}}});var Ey="divide",by=["typed","matrix","multiply","equalScalar","divideScalar","inv"],is=N(Ey,by,r=>{var{typed:e,matrix:t,multiply:n,equalScalar:i,divideScalar:o,inv:a}=r,c=De({typed:e,equalScalar:i}),l=Ie({typed:e});return e("divide",Kr({"Array | Matrix, Array | Matrix":function(u,h){return n(u,a(h))},"DenseMatrix, any":function(u,h){return l(u,h,o,!1)},"SparseMatrix, any":function(u,h){return c(u,h,o,!1)},"Array, any":function(u,h){return l(t(u),h,o,!1).valueOf()},"any, Array | Matrix":function(u,h){return n(u,a(h))}},o.signatures))});var Zl="mean",Sy=["typed","add","divide"],os=N(Zl,Sy,r=>{var{typed:e,add:t,divide:n}=r;return e(Zl,{"Array | Matrix":o,"Array | Matrix, number | BigNumber":i,"...":function(c){if(al(c))throw new TypeError("Scalar values expected in function mean");return o(c)}});function i(a,c){try{var l=ul(a,c,t),s=Array.isArray(a)?st(a):a.size();return n(l,s[c])}catch(u){throw Yo(u,"mean")}}function o(a){var c,l=0;if(fo(a,function(s){try{c=c===void 0?s:t(c,s),l++}catch(u){throw Yo(u,"mean",s)}}),l===0)throw new Error("Cannot calculate the mean of an empty array");return n(c,l)}});var ss=Kl("tau",["config","?BigNumber"],r=>{var{config:e,BigNumber:t}=r;return e.number==="BigNumber"?ql(t):cl});var as=Kl("i",["Complex"],r=>{var{Complex:e}=r;return e.I});function Kl(r,e,t){return N(r,e,t,{recreateOnConfigChange:!0})}var On=eo({config:he}),mi=ro({});var Jl=oo({}),zy=as({Complex:mi});var us=so({});var Gy=ss({BigNumber:On,config:he});var ln=po({Matrix:us});var rt=Yi({BigNumber:On,Complex:mi,DenseMatrix:ln,Fraction:Jl});var ky=Ro({typed:rt});var ir=No({typed:rt});var Ql=ko({typed:rt});var tn=wo({config:he,typed:rt});var Vy=Uo({typed:rt});var tc=go({typed:rt});var Hy=Mo({equalScalar:tn,typed:rt});var Wy=Bo({Complex:mi,config:he,typed:rt});var ls=zo({typed:rt});var ec=Co({typed:rt});var cs=To({Matrix:us,equalScalar:tn,typed:rt});var qy=Lo({typed:rt});var Xy=Ao({BigNumber:On,typed:rt});var nc=Io({typed:rt});var rc=Po({Fraction:Jl,typed:rt});var Yt=Do({DenseMatrix:ln,Matrix:us,SparseMatrix:cs,typed:rt});var jy=$o({bignumber:Xy,fraction:rc,number:ec});var ic=Wo({isInteger:tc,matrix:Yt,typed:rt}),Yy=qo({matrix:Yt,config:he,typed:rt});var oc=Xo({BigNumber:On,config:he,matrix:Yt,typed:rt});var sc=Vo({isInteger:tc,matrix:Yt,typed:rt});var or=Zo({numeric:jy,typed:rt}),$y=Qo({DenseMatrix:ln,concat:sc,divideScalar:or,equalScalar:tn,matrix:Yt,typed:rt});var ac=Ho({BigNumber:On,DenseMatrix:ln,SparseMatrix:cs,config:he,matrix:Yt,typed:rt});var Zy=Jo({BigNumber:On,DenseMatrix:ln,config:he,equalScalar:tn,matrix:Yt,typed:rt,zeros:oc});var Ky=ts({DenseMatrix:ln,SparseMatrix:cs,addScalar:ir,concat:sc,equalScalar:tn,matrix:Yt,typed:rt});var Jy=es({addScalar:ir,conj:Ql,multiplyScalar:ls,size:Yy,typed:rt});var Fn=Go({addScalar:ir,dot:Jy,equalScalar:tn,matrix:Yt,multiplyScalar:ls,typed:rt});var Qy=Fo({DenseMatrix:ln,config:he,equalScalar:tn,matrix:Yt,round:Zy,typed:rt,zeros:oc});var tv=ns({divideScalar:or,isZero:Hy,matrix:Yt,multiply:Fn,subtractScalar:qy,typed:rt,unaryMinus:nc});var uc=rs({abs:ky,addScalar:ir,det:tv,divideScalar:or,identity:ac,matrix:Yt,multiply:Fn,typed:rt,unaryMinus:nc});var ev=Ko({Complex:mi,config:he,fraction:rc,identity:ac,inv:uc,matrix:Yt,multiply:Fn,number:ec,typed:rt});var lc=jo({addScalar:ir,ceil:Qy,conj:Ql,divideScalar:or,dotDivide:$y,exp:Vy,i:zy,log2:Wy,matrix:Yt,multiplyScalar:ls,pow:ev,tau:Gy,typed:rt});var nv=is({divideScalar:or,equalScalar:tn,inv:uc,matrix:Yt,multiply:Fn,typed:rt});var cc=os({add:Ky,divide:nv,typed:rt});var yi=class{NumParticle;reSampNumParticle;initial_xy_uncertainty;initial_yaw_uncertainty;step_noise_sigma;yaw_noise_sigma;compass_update_interval;sigmaCompass;delta_yaw;sigmaBeacon;unaccess_weight;particle_PosInitFlag;particle_yawInitFlag;xEst;particleX;particleWeight;last_compass_time;last_yaw_compass=0;compass_consecutive_offset_count=0;constructor(e){this.NumParticle=e.NumParticle,this.reSampNumParticle=e.reSampNumParticle,this.initial_xy_uncertainty=e.initial_xy_uncertainty,this.initial_yaw_uncertainty=e.initial_yaw_uncertainty,this.step_noise_sigma=e.step_noise_sigma,this.yaw_noise_sigma=e.yaw_noise_sigma,this.compass_update_interval=e.compass_update_interval,this.sigmaCompass=e.sigmaCompass,this.delta_yaw=e.delta_yaw,this.sigmaBeacon=e.sigmaBeacon,this.unaccess_weight=e.unaccess_weight,this.particle_PosInitFlag=!1,this.particle_yawInitFlag=!1,this.xEst=[[0],[0],[0]],this.particleX=Array.from({length:3},()=>Array(this.NumParticle).fill(0)),this.particleWeight=Array.from({length:1},()=>Array(this.NumParticle).fill(1/this.NumParticle)),this.last_compass_time=0}motionModelRotYaw(e){if(!(Math.abs(e)<.001)){this.last_yaw_compass=jn(this.last_yaw_compass+e);for(let t=0;t<this.NumParticle;t++){let n=Math.random()*this.yaw_noise_sigma;this.particleX[2][t]=this.particleX[2][t]+e+n,this.particleX[2][t]=jn(this.particleX[2][t])}}}motionModelStepLength(e,t){if(e===0)return;for(let i=0;i<this.NumParticle;i++){let o=Math.random()*this.step_noise_sigma;this.particleX[0][i]+=(.65+o)*Math.sin(-this.particleX[2][i]/180*Math.PI),this.particleX[1][i]+=(.65+o)*Math.cos(this.particleX[2][i]/180*Math.PI),t(this.particleX[0][i],this.particleX[1][i])||(this.particleWeight[0][i]*=this.unaccess_weight)}let n=this.particleWeight[0].reduce((i,o)=>i+o,0);this.particleWeight[0]=this.particleWeight[0].map(i=>i/n)}motionModelCompassYaw(e,t){if(t-this.last_compass_time>this.compass_update_interval){let n=360-e;n+=this.delta_yaw,n=jn(n),Math.abs(n-this.last_yaw_compass)>60?this.compass_consecutive_offset_count++:this.compass_consecutive_offset_count=0;for(let o=0;o<this.NumParticle;o++){let a=Math.abs(this.particleX[2][o]-n);a>180&&(a=360-a),this.particleWeight[0][o]*=Yr(a,this.sigmaCompass)}let i=this.particleWeight[0].reduce((o,a)=>o+a,0);this.particleWeight[0]=this.particleWeight[0].map(o=>o/i),this.setLastCompassTime(t)}}resampling(){if(1/this.particleWeight[0].reduce((t,n)=>t+n*n,0)<this.reSampNumParticle){let t=this.particleWeight[0].reduce((c,l,s)=>c.concat(c[s]+l),[0]),i=this.particleWeight[0].map(()=>1/this.NumParticle).map((c,l)=>c+Math.random()/this.NumParticle),o=[],a=0;for(let c=0;c<this.NumParticle;c++){for(;i[c]>t[a];)a++;o.push(a)}this.particleX=this.particleX.map((c,l)=>o.map(s=>c[s])),this.particleWeight[0]=Array(this.NumParticle).fill(1/this.NumParticle)}}update(e,t){for(let i=0;i<this.NumParticle;i++){let o=En(this.particleX[0][i],this.particleX[1][i],e.x,e.y);this.particleWeight[0][i]=Math.max(1e-7,this.particleWeight[0][i]*Yr(o,t))}let n=this.particleWeight[0].reduce((i,o)=>i+o,0);this.particleWeight[0]=this.particleWeight[0].map(i=>i/n)}updateCar(e,t){let n=e.x-this.xEst[0][0],i=e.y-this.xEst[1][0];for(let a=0;a<this.NumParticle;a++){let c=En(this.particleX[0][a],this.particleX[1][a],e.x,e.y);this.particleWeight[0][a]=Math.max(1e-7,this.particleWeight[0][a]*Yr(c,t)),this.particleX[0][a]+=n,this.particleX[1][a]+=i}let o=this.particleWeight[0].reduce((a,c)=>a+c,0);this.particleWeight[0]=this.particleWeight[0].map(a=>a/o)}getPosInitFlag(){return this.particle_PosInitFlag}getYawInitFlag(){return this.particle_yawInitFlag}setPosInitFlag(e){this.particle_PosInitFlag=e}setYawInitFlag(e){this.particle_yawInitFlag=e}getResultX(){let e=ic(this.particleWeight,[this.NumParticle,1]),t=Fn(this.particleX,e);return this.xEst=t,this.xEst[0][0]}getResultY(){return this.xEst[1][0]}getResultYaw(){let e=this.particleWeight[0].indexOf(Math.max(...this.particleWeight[0]));return this.particleX[2][e]}getEstConfidence(){let e=this.particleWeight[0].indexOf(Math.max(...this.particleWeight[0])),t=this.particleWeight[0].indexOf(Math.min(...this.particleWeight[0])),n=[this.particleX[0][e],this.particleX[1][e]],i=[this.particleX[0][t],this.particleX[1][t]],o=En(n[0],n[1],i[0],i[1]),a=o*.67;return console.log(o,a),a}getParticleNum(){return this.NumParticle}getParticleX(){return this.particleX}setLastCompassTime(e){this.last_compass_time=e}getLastCompassTime(){return this.last_compass_time}initParticlesByPos(e,t,n){if(!this.particle_PosInitFlag){this.particleWeight[0]=Array(this.NumParticle).fill(1/this.NumParticle);let i=0;for(;i<this.NumParticle;){let a=(2*Math.random()-1)*this.initial_xy_uncertainty,c=(2*Math.random()-1)*this.initial_xy_uncertainty;n(e+a,t+c)||(this.particleWeight[0][i]*=this.unaccess_weight),this.particleX[0][i]=e+a,this.particleX[1][i]=t+c,i++}let o=this.particleWeight[0].reduce((a,c)=>a+c,0);this.particleWeight[0]=this.particleWeight[0].map(a=>a/o),this.particle_PosInitFlag=!0,this.xEst[0][0]=e,this.xEst[1][0]=t,this.xEst[2][0]=0}}initParticlesByCompass(e){console.log(`Init compass: ${e}`);let t=360-e;t+=this.delta_yaw,t=jn(t),console.log(`Init Yaw: ${t}`);for(let n=0;n<this.NumParticle;n++){let i=(2*Math.random()-1)*this.initial_yaw_uncertainty;this.particleX[2][n]=t+i}this.particle_yawInitFlag=!0,this.xEst[2][0]=t,this.last_yaw_compass=t,this.compass_consecutive_offset_count=0}};var vi=class{fre=100;accH_fifo=[];accH_time_fifo=[];accH_fifo_len=Math.floor(1*this.fre)+1;step_count=0;state_count=0;last_valley_time=0;last_peak_time=0;last_step_time=0;min_step_time=.3;max_step_time=1;min_peak=10.5;max_valley=9.5;peak_num=0;valley_num=0;fft_min_amp=.3;fft_min_fre=0;fft_max_fre=4;last_fft_amp=0;abnor_start_time=0;abnor_fft_detected=!1;abnor_time_threshold=4;abnor_peak_time=0;abnor_peak_accH=0;const_step_length=.65;last_rot=[];delta_rot=[];last_yaw=0;delta_yaw=null;delta_rot_sum_fifo=[];delta_rot_sum_time_fifo=[];delta_yaw_accum=0;delta_yaw_accum_timestamp=0;delta_yaw_time_threshold=.5;last_px=0;last_py=0;delta_px=0;delta_py=0;init(){this.fre=100,this.accH_fifo=[],this.accH_time_fifo=[],this.accH_fifo_len=Math.floor(1*this.fre)+1,this.step_count=0,this.state_count=0,this.last_valley_time=0,this.last_peak_time=0,this.last_step_time=0,this.min_step_time=.3,this.max_step_time=1,this.min_peak=10+.5,this.max_valley=10-.5,this.peak_num=0,this.valley_num=0,this.fft_min_amp=.3,this.fft_min_fre=0,this.fft_max_fre=4,this.last_fft_amp=0,this.abnor_start_time=0,this.abnor_fft_detected=!1,this.abnor_peak_time=0,this.abnor_peak_accH=0,this.const_step_length=.65,this.last_rot=[0,0,0],this.delta_rot=[0,0,0],this.last_yaw=0,this.delta_yaw=null,this.delta_rot_sum_fifo=[],this.delta_rot_sum_time_fifo=[],this.delta_yaw_accum=0,this.delta_yaw_accum_timestamp=0,this.delta_yaw_time_threshold=.5,this.last_px=0,this.last_py=0,this.delta_px=0,this.delta_py=0}reset(){this.init()}setInitPose(e=[0,0]){this.last_px=e[0],this.last_py=e[1],console.info(`pdr init pos: ${this.last_px}, ${this.last_py}`)}setInitYaw(e=0){this.last_yaw=e}getPos(e,t,n){let i=0;return n.length===3&&(this.delta_yaw=this.getDeltaYawFromRot(e,n)),t.length===3&&(i=this.getStepLength(e,t)),i!==0&&(this.last_px+=this.delta_px,this.last_py+=this.delta_py),[this.last_px,this.last_py]}getDeltaPose(){return[this.delta_px,this.delta_py]}getStepLength(e,t){if(t.length<3)return console.warn("acc data less than 3"),0;let n=!1,i=Math.sqrt(Math.pow(t[0],2)+Math.pow(t[1],2)+Math.pow(t[2],2));if(this.accH_fifo.push(i),this.accH_time_fifo.push(e),this.imuFreUpdate(),this.accH_fifo.length<this.accH_fifo_len+1)n=!1;else{for(;this.accH_fifo.length>=this.accH_fifo_len+1;)this.accH_fifo.shift(),this.accH_time_fifo.shift();let o=this.PVStepDetec(),a=this.FFTStepDetec(),c=this.recheckState(),l=this.accH_time_fifo[Math.floor(this.accH_time_fifo.length*3/4)];Math.abs(this.abnor_start_time)<.001&&this.abnor_fft_detected?this.abnor_start_time=l:this.abnor_fft_detected||(this.abnor_start_time=0),o&&a&&c?(this.step_count+=1,this.last_step_time=l,n=!0):Math.abs(this.abnor_start_time)>.001&&this.abnor_peak_time-this.abnor_start_time>this.abnor_time_threshold&&this.step_count>1&&this.abnor_peak_time-this.last_step_time>1?(this.step_count+=1,this.last_step_time=l,n=!0):(l-this.last_step_time>2&&(this.state_count=0),n=!1)}if(n){let o=this.last_yaw/180*Math.PI;return this.delta_px=this.const_step_length*Math.cos(o),this.delta_py=this.const_step_length*Math.sin(o),this.const_step_length}else return 0}imuFreUpdate(){if(this.accH_time_fifo.length>2&&(this.accH_time_fifo[this.accH_time_fifo.length-1]-this.accH_time_fifo[this.accH_time_fifo.length-2]<0||this.accH_time_fifo[this.accH_time_fifo.length-1]-this.accH_time_fifo[this.accH_time_fifo.length-2]>10||this.accH_time_fifo[this.accH_time_fifo.length-1]===this.accH_time_fifo[0])&&(console.warn(`pdr reset last one time ${this.accH_time_fifo[this.accH_time_fifo.length-1]} last two time ${this.accH_time_fifo[this.accH_time_fifo.length-2]}`),this.reset()),this.accH_fifo.length>9||this.fre<15){let e=(this.accH_fifo.length-1)/(this.accH_time_fifo[this.accH_time_fifo.length-1]-this.accH_time_fifo[0]);Math.abs(this.fre-e)>8&&(this.fre=Math.round((e-3)/10)*10,(this.fre<=10||this.fre>=100)&&(console.warn(`Frequency Error ${this.fre}`),this.fre=100),console.debug(`Frequency change to ${this.fre}`),this.accH_fifo_len=Math.floor(1*this.fre)+1)}}recheckState(){return!0}PVStepDetec(){let e=!1,t=this.accH_fifo.slice(Math.floor(this.accH_fifo_len/2)),n=this.accH_time_fifo.slice(Math.floor(this.accH_fifo_len/2)),i=t[Math.floor(t.length/2)],o=n[Math.floor(n.length/2)],a=Math.max(...t),c=Math.min(...t),l=!1,s=!1;return Math.abs(i-c)<.01&&i<this.max_valley&&this.valley_num<=this.peak_num&&(this.last_valley_time===0?s=!0:s=o-this.last_valley_time>this.min_step_time,s&&(this.last_valley_time=o,this.valley_num+=1)),Math.abs(i-a)<.01&&i>this.min_peak&&this.peak_num<=this.valley_num&&(this.last_peak_time===0?l=!0:l=o-this.last_peak_time>this.min_step_time,l&&(this.last_peak_time=o,this.peak_num+=1)),i===a&&i>this.min_peak&&(this.abnor_peak_time=o,this.abnor_peak_accH=i),this.peak_num===this.valley_num&&(l||s)&&(e=!0),e}FFTStepDetec(){return!0}getDeltaYawFromRot(e,t){if(t.length<3)return console.warn("rot data less than 3"),0;let n=[0,0,0];this.last_rot.length===3&&(n=t.map((c,l)=>c-this.last_rot[l]));for(let c=0;c<t.length;c++)n[c]<-180?n[c]+=360:n[c]>180&&(n[c]-=360);let i=.2;this.delta_rot.length===3?this.delta_rot=this.delta_rot.map((c,l)=>i*c+(1-i)*n[l]):this.delta_rot=n,this.last_rot=t,this.delta_yaw=this.delta_rot[0],this.last_yaw+=this.delta_yaw,this.last_yaw=this.limitYaw(this.last_yaw);let o=this.delta_rot.reduce((c,l)=>c+Math.abs(l),0);this.delta_rot_sum_fifo.push(o),this.delta_rot_sum_time_fifo.push(e),Math.abs(this.delta_rot_sum_time_fifo[this.delta_rot_sum_time_fifo.length-1]-this.delta_rot_sum_time_fifo[0])>1&&(this.delta_rot_sum_fifo.shift(),this.delta_rot_sum_time_fifo.shift()),this.delta_yaw_accum+=this.delta_yaw;let a=0;return Math.abs(this.delta_yaw_accum_timestamp-e)>this.delta_yaw_time_threshold?(a=this.delta_yaw_accum,this.delta_yaw_accum=0,this.delta_yaw_accum_timestamp=e,a):null}limitYaw(e){for(;e<-180;)e+=360;for(;e>180;)e-=360;return e}};var _i=class{particleFilter;pdr;sigmaBeacon=5;gps_horizontalAccuracy=10;using_gps=!0;last_beacon_time=null;last_pos_time;position_count=0;gps_max_horizontalAccuracy=20;MaxEstimateErr=5;outTrustRegionNum=0;TrustNum=4;cacheSensorData=[];constructor(){this.particleFilter=new yi({NumParticle:200,reSampNumParticle:.65,initial_xy_uncertainty:12,initial_yaw_uncertainty:100,step_noise_sigma:.5,yaw_noise_sigma:2,compass_update_interval:3e3,sigmaCompass:80,delta_yaw:2,sigmaBeacon:5,unaccess_weight:.7}),this.pdr=new vi}pfFusionPDRiBeacon(e){let{type:t,timestamp:n,res:i}=e,o=!1;if(this.particleFilter.getPosInitFlag()&&this.particleFilter.getYawInitFlag()){if(t==="acceleration"){let a=i,c=this.pdr.getStepLength(n/1e3,a);c!==0&&(this.particleFilter.motionModelStepLength(c,()=>!0),this.particleFilter.resampling(),this.position_count+=1,o=!0)}if(this.using_gps&&t==="gps"&&(this.last_beacon_time===null||n-this.last_beacon_time>5e3)){let a=this.getGpsPosition(i);o=a!==null,a&&(this.particleFilter.update(a,this.gps_horizontalAccuracy),this.resetParticleFilterDist(a),this.particleFilter.resampling(),this.position_count+=1)}if(t==="deviceMotion"){let a=this.pdr.getDeltaYawFromRot(n/1e3,i);a!==null&&this.particleFilter.motionModelRotYaw(a)}t==="compass"&&this.particleFilter.motionModelCompassYaw(i,n),this.last_pos_time&&n-this.last_pos_time>500&&(this.position_count+=1,o=!0)}else if(!this.particleFilter.getPosInitFlag()&&this.using_gps&&t==="gps"){let a=this.getGpsPosition(i);o=a!==null,a?(this.particleFilter.initParticlesByPos(a.x,a.y,()=>!0),this.last_pos_time=n,console.log(`init Pos by gps success time ${n}`),this.cacheSensorData.length=0):console.log(`init Pos by gps fail time ${n}`)}else if(!this.particleFilter.getYawInitFlag()&&t==="compass"){let a=i;this.particleFilter.initParticlesByCompass(a),this.particleFilter.setLastCompassTime(n),console.log(`init yaw by compass success time ${n}`)}else this.cacheSensorData.push(e);return o&&(this.last_pos_time=n),[o,this.particleFilter.getResultX(),this.particleFilter.getResultY()]}setBeaconPosition(e,t){return this.last_beacon_time=t,this.particleFilter.getPosInitFlag()?this.particleFilter.update(e,this.sigmaBeacon):this.particleFilter.initParticlesByPos(e.x,e.y,()=>!0),this.resetParticleFilterDist(e),this.particleFilter.resampling(),this.position_count+=1,this.cacheSensorData.filter(i=>i.timestamp>t).map(i=>this.pfFusionPDRiBeacon(i)),this.cacheSensorData.length=0,[this.particleFilter.getResultX(),this.particleFilter.getResultY()]}getGpsPosition(e){return e[2]>this.gps_max_horizontalAccuracy?null:Ba(e[0],e[1])}resetParticleFilterDist(e){let t=this.particleFilter.getResultX(),n=this.particleFilter.getResultY();En(t,n,e.x,e.y)>this.MaxEstimateErr?(this.outTrustRegionNum+=1,this.outTrustRegionNum>=this.TrustNum&&(console.info(`\u8D85\u51FA\u53EF\u4FE1\u533A\u57DF\uFF0C\u91CD\u7F6E\u7C92\u5B50\u8FC7\u6EE4\u5668\u5230: ${e.x}, ${e.y}`),this.particleFilter.setPosInitFlag(!1),this.particleFilter.setYawInitFlag(!1),this.outTrustRegionNum=0)):this.outTrustRegionNum=0}};var hc=class extends iv{sensor;pdr;_pause=!1;constructor(e={}){super(),this.sensor=new jr(e.sensor),this.pdr=new _i}checkSensor(){return this.sensor.checkSensor()}start(){this.sensor.start(),this.sensor.addEventListener("add-data-item",({item:e})=>{this.getPositionBySensorItem(e,!this._pause)})}pause(){this._pause=!0}continue(){this._pause=!1}getPositionBySensorItem(e,t=!0){let[n,i,o]=this.pdr.pfFusionPDRiBeacon(e);return n&&t&&this.dispatchEvent({type:"position",x:i,y:o,_type:e.type==="gps"?"gps":"pdr"}),[n,i,o]}setBeaconPosition(e,t){let[n,i]=this.pdr.setBeaconPosition(e,t);this.dispatchEvent({type:"position",x:n,y:i,_type:"beacon"})}dispose(){this.sensor.stop()}};async function pc({brand:r,project:e},t){let{apiDomain:n,apiPath:{floorRange:i},apiInfo:o}=t,a=`${n}${i}?brand=${r}&project=${e}&phase=${e}&building=${e}`;return await fetch(a,o).then(l=>l.json()).then(l=>l.data).then(l=>{let s=(l||[])[0];return s&&(s.info=JSON.parse(s.info)),s})}async function fc({brand:r,project:e,floor:t,ts:n,resource_type_list:i},o){let{apiDomain:a,apiPath:{floorGraphic:c},apiInfo:l}=o,s=`${a}${c}?brand=${r}&project=${e}&phase=${e}&building=${e}&floor=${t}&ts=${n}&resource_type_list=${i}`;return await fetch(s,l).then(h=>h.json()).then(h=>h.data).then(h=>((h||[]).map(f=>f.info=JSON.parse(f.info)),h||[]))}async function S2({project:r,floor:e},t){let{apiDomain:n,apiInfo:i}=t,o=`${n}/api/inception-map/external_street/get?projectCode=${r}&floorCode=${e}`;return await fetch(o,i).then(c=>c.json()).then(c=>c.data).then(c=>JSON.parse(c[0].streetInfo||"{}")).then(c=>c.fileId?ov(c.fileId,t):null)}async function ov(r,e){let{apiDomain:t,apiInfo:n}=e;return fetch(`${t}/api/inception-map/file/getFileStream?fileId=${r}`,n).then(i=>i.arrayBuffer()).then(i=>{let a=new TextDecoder("utf-8").decode(i);return a?JSON.parse(a):null})}var Ee;function dc(r="aibee_map"){return new Promise((e,t)=>{if(Ee)return e({db:Ee,type:"success"});let n=indexedDB.open(r);n.onupgradeneeded=function(i){Ee=i.target.result,console.log("onupgradeneeded"),e({db:Ee,type:"onupgradeneeded"})},n.onsuccess=i=>{Ee=i.target.result,e({db:Ee,type:"success"})},n.onerror=i=>{t(i)}})}function gc(r,e,t=Ee){return new Promise((n,i)=>{t||i("\u6CA1\u6709db");let a=t.transaction([r],"readonly").objectStore(r).get(e);a.onsuccess=()=>{a.result?n(a.result.value):n(null)},a.onerror=c=>{console.log("[getVersionByKey]",c),n(null)}})}function mc(r,e,t,n=Ee){return new Promise((i,o)=>(n||o("\u6CA1\u6709db"),new Promise((a,c)=>{let s=n.transaction([r],"readwrite").objectStore(r).add({key:e,value:t});s.onsuccess=function(u){a(u)},s.onerror=function(u){c(u)}})))}function sr(r,e=Ee){e&&(e.objectStoreNames.contains(r)||e.createObjectStore(r,{keyPath:"key"}))}function yc(){Ee?.close(),Ee=null}var vc="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAGQCAYAAAAUdV17AAAABGdBTUEAALGPC/xhBQAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAABLKADAAQAAAABAAABkAAAAAAun0XIAAAtt0lEQVR4Ae2dB9glRZm2ZxyyMiTJA0oaQFlgCJKzxEVZlCgiCJhYWBXDyqLrirL/qqy4oLD4iyQRFARFUGFILiBhJC1Z0iBRsuQwMHs/w3eY84WTu7uqup66rvc753Soet+7up+vqrq7evw4p6gIzJw5c04cWhlbbcjey+cK2NzYXE2m7Z7B7semN9ldfL92/Pjxr/LpZAK1IjC+VtEkGgwitSKu74J9GFsTmwMbJL3AzpdhF2AXIl538ulkAiZgAv0RQKQmY4dhN2Blp+kU8G/Y4v15671MwASyJIBoTMHOxUKklyn0RGz1LOE7aBMwge4IIBJrYOdgsaSLcWT97rz3ViZgAlkQQBSWxc7C3sBiS6/j0A+xiVlUhoM0ARNoTQAh2AN7Gos9PYSDGvB3MgETyI0AJ/9E7JTYVWoM/37NsoVyqy/Hmw4B39ZQcF1xwm9AlqdhyxWcdVXZ6RaIHbgV4t6qCnQ5JtAtAQtWt6S62A6x2pHNzsTm6WLzmDd5HOd2QrSuitlJ+5YfgbflF3I5ESNWuvHzbCx1sRKgRbFLiGk3/XAygVgIWLAKqAlO7L3J5gxMj8vUJUl4zyC2T9QlIMeRPgF3CQesQ07oA8jiR1hdWc4gth3pHuoxHycTCEqgridZJVARq80o6GJsQiUFhivkWYreGNG6OZwLLtkE6tsqKL1uEaulKOR6LJfn8x4g1vUQrUdKh+sCTKAFAY9htQDTbjFipbGqX2C5iJVwLIP9htg1zY2TCQQhYMHqD/t32W2j/nZNeq+18f6rSUdg55Mm4DGsHquPFsb72WVqj7vVaXNNDDiFruFtdQrKsaRBwILVQz0hVhpcvwH7ux52q+OmVxDUpojWzDoG55jiJeAuYW91o1sYchcrEdsY8/1ZIuFUKQG3sLrETetKU7BovvTFutyl7ptpPvnlaWU9XfdAHV88BNzC6r4uDmNTi9VsXgvy1a2s2Tz8rQICbmF1AXmodaX7j+brYvOcNtG9WWpl6W54JxMonYBbWN0h3pPNLFajWeneLE/8N5qLl5REwILVHdj9u9ssy60+n2XUDjoIAXcJO2CnO7g6m9zUYbPcV7+PbuG03CE4/vIJuIXVmbFbV50Z7dR5E29hAoMTsGB1Zrh7502y32Kb7AkYQCUE3CVsg5nu4Iqs1r1XTu0JvMHqxegWPtl+M681gcEIuIXVnt+G7Vd77RABHUd6xtLJBEolYMFqj9eC1Z5P89ptm3/4uwmUQcCC1Z6qBas9n+a16zT/8HcTKIOAx7BaUB26u13PyVnUWzAasfhZxrAWGLHMP02gUAI+GVvj1F3c5tOaz8g1etu13xo9kop/F0rAJ2RrnIu0XuU1LQi8u8VyLzaBQghYsFpjtGC1ZtNqzbtbrfByEyiCgAWrNUULVms2rdZMarXCy02gCAIWrNYULVit2XiNCQQhYMFqjd1XvFqzabXmtVYrvNwEiiBgwWpN8eXWq7ymBQG9UcfJBEojYMFqjfa51qu8pgUBC1YLMF5cDAELVmuOz7de5TUtCLhL2AKMFxdDwILVmqPeCuPUGwHP1tAbL2/dIwELVmtgd7de5TUtCNzaYrkXm0AhBPwsYQuMPGbydlZpHMuMWjAasfhpniVceMQy/zSBQgm4hdUCJyffC6x6sMVqLx5N4JbRi7zEBIolYMFqz/Pm9qu9tomABasJhr+WQ8CC1Z7rZe1Xe20TAQtWEwx/LYeABas910var/baJgK/b/ruryZQCgEPKLfBysC7BP0JzPM8teHEqhsY81ur/SZeawKDE3ALqw1DTkK9DeY3bTbxqjcJnGkQJlAFAQtWZ8qndt4k+y3Oyp6AAVRCwF3CDpiHuoV/YbOlO2ya6+qbaImumWvwjrtaAm5hdeA91C08ucNmOa8+KefgHXu1BNzC6oI3razF2Ww6Nk8Xm+e0yaMEuzyi/lJOQTvWcATcwuqCPSfkX9nsx11smtsm/2Gxyq3Kw8brFlaX/Gll6bVf92BzdrlL3Td7mABXQLA80WHdazqi+NzC6rIyODEfYNOjutw8h83UurJY5VDTEcXoFlYPlUErSzM43I6ptZVz0tQ7qyFYr+QMwbFXT8AtrB6Yc4JqBofP9bBLHTedQVAftVjVsWrjj8mC1WMdcaKezS5n9LhbnTY/HAbX1Ckgx5IOAXcJ+6gruobzs9t12Ep97J7yLlfi/GYI1uspB2Hf0yVgweqz7hAt3d19NTZ3n1mkttuzOLwGYjU9Ncftb30IuEvYZ11y4t7IrvtiM/vMIqXd9Pqu3SxWKVVZPX21YA1Qr5zAGsuq+yC8Btl3J9YLBkDlXU2gEAIWrAExciIfTRZHDJhNrLtrep29ifFXsTpov0zABPogwJjWoVid0hsEs18fKLyLCZhACgQ4wffHZtRAtZ4nht1TYG4f8yLgq4QF1zcn+nZk+VNskYKzriq7OynoQ3QDb6uqQJdjAt0S8BhWt6S63I4TXS9j0C0PumcptfRLHF7XYpVatdlfExiQAC2tObBvYK9gsafncLDuVzsHrFHvbgIZEEAIJmNTI1Ws1/HrJ9iSGVSFQzQBE+iWAKKwC3YLFku6DEemdOu/tzMBE8iMAAIxHtsZm4aFSLqCeT62Y2boHa4JmMAgBBCN9bAfYk9gZad7KeCr2KRBfPa+JhCagG9rCFwDiMhcuLAttjW2JfZebNCkl0JMw/6IXYhdxpW/HJ55JFSnOhOwYEVWuwjYYri0AbZyky3Fd01pI9PsEHpk5hnsySZ7gu83YBKpGxGo1/h0MgETMIFwBBC0OTHfPxeuClyyCZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACZiACcRNwFMkR1Q/zCQ6AXc2xzbG1sL0vsAFsZexpzG9Pv5P2G+ZAvkRPp1MwARMoFoCCNU7sW9jj2LdJL0A9SJsm2o9dWkmYAJZE0B0Dsb0qvh+06XsuHTWEB28CZhAuQQQmXmwk7Ei0iNkslG5Hjt3EzCBLAkgLpOwot/+/Ap5fjJLoA7aBEygHAKIykLYn7Gy0gHleO5cTcAEsiOASv2+LKUayvdVPtfPDqwDNgETKJYAQrJvyWLVyP4WvsxZrPfOzQRMIBsCCMh82GMNRang8+Bs4DrQbAj4lefVVfU+FLVodcWNOwRR1I2oTiZQGwIWrOqqsuoreO8mtK2rC88lmUD5BCxY5TMeR0tnEsWsWUFRI4v4wMgF/m0CKROwYFVTe5tVU8yoUkKVO8oRLzCBIghYsIqg2DmPVTpvUsoWK3kcqxSuzjQQAQtWNeCXqaaYUaXMxZLFRi31AhNIlIAFq5qKC3lPVMiyq6HrUrIhYMGqpqpD3l4Qsuxq6LqUbAhYsOpf1Z6ksf51nE2EFqxsqtqBmkD6BCxY6dehIzCBbAhYsLKpagdqAukTsGClX4eOwASyIWDByqaqHagJpE/AgpV+HToCE8iGgAUrm6p2oCaQPgELVvp16AhMIBsCFqxsqtqBmkD6BCxY6dehIzCBbAhYsLKpagdqAukTsGClX4eOwASyIWDByqaqHagJpE/AgpV+HToCE8iGgAUrm6p2oCaQPgELVvp16AhMIBsCFqxsqtqBmkD6BOZIPwRH0IHA/Lw5Z4EO29Rt9Yzx48e/ULegHM+4cRas+h8FN9Y/xFERXs6STUct9YLkCbhLmHwVOgATyIeABSufunakJpA8AQtW8lXoAEwgHwIWrHzq2pGaQPIELFjJV6EDMIF8CFiw8qlrR2oCyROwYCVfhQ7ABPIhYMHKp64dqQkkT8CClXwVOgATyIeABSufunakJpA8AQtW8lXoAEwgHwIWrHzq2pGaQPIELFjJV6EDMIF8CFiw8qlrR2oCyROwYCVfhQ7ABPIhYMHKp64dqQkkT8CClXwVOgATyIeABSufunakJpA8AQtW8lXoAEwgHwIWrHzq2pGaQPIELFjJV6EDMIF8CFiw8qlrR2oCyROwYCVfhQ7ABPIhYMHKp64dqQkkT8CClXwVOgATyIeABSufunakJpA8AQtW8lXoAEwgHwIWrHzq2pGaQPIELFjJV6EDMIF8CMyRT6jZRnolkb+YWfQ3ZxZvNuFasOpf1R8bP378vfUP0xHmQMBdwhxq2TGaQE0IWLBqUpEOwwRyIGDByqGWHaMJ1ISABasmFekwTCAHAhasHGrZMZpATQhYsGpSkQ7DBHIgYMHKoZYdownUhECWgjVz5sy3YbtgW2Bvr0ldOgwTqD2B7G4cRaDWp1aPwdYZqt3XWTaN7+dgZ3OT5d1Dy/1hAiZgAmEIqCWFHYO9gbVL17Pyw0V6SX5ntCuw5HXLFxmL8zKBkASy6BIiCFsBWc+XHYSN7wB8CuvPYp9rsS06bOvVJmACFRKotWAhOBOx4+F5EbZcj1zXZfuL2f8IrNaceuTizU0gGIHanoiIzPZQvRX75AB01Rr7F+w88ltwgHy8qwmYQAEEaidYCMtC2Mmw+S02qQBGykLidz75zl1Qfs7GBEygDwK1EiwEZTMYqFX1sT5YdNplQzY4kTLU6nIyARMIQKA2goWQfBF+GqtaskSOe5L3l0vM31mbgAm0IZC8YCFUGlj/JTF+F6vivrJ/pbyl2zD1KhMwgZIIJC1YCMdqcNFNnx8qic9Y2c7Hwv8Ya4WXmYAJlEsgWcFCrD4CmquxyeUiGjP3vYbEcsyVXmgCJlAOgeQEC6GYE9OjNadhoZ4D1MD7PuVUiXM1ARNoRSApwUKoJhLIhZjuWA+d9sSfpPiFBubyTWBQAsmccIjDEgT7P9jmgwZd0P4aeN+0oLycjQmYQBcEkhAsxGpFYvkjtkYXMVW5ie7NcjIBE6iIQPSChVitDQu9DHS5ipj0UkxsAtqL797WBJIjELVgIVbvh+il2GKRkl0zUr/slgnUkkC0goVY7Q7x87H5Iya/In5GyzBibnbNBPoiEOXJhghohoWfYXP1FVV1O4nfvNUV55JMIG8C0QkWYrUXVXIcFp1vLQ4V3fnuZAImUAGBqEQBsdqJmE/CovKrQz24hdUBkFebQFEEohEGxEoD7D/HqniAuSh+ysdzZBVJ03mZQBsCUQgWYqX7mX6FpXjye36sNgeYV5lAkQSCCxZipVsDdDUw1HOBRfJ0XiZgAiUSCCpYiNUqxKZnAz1feomV7KxNoC4EggkWYrU4ECVWiyYK82n8/kfML15NtALtdnoEggxwI1a6v0qzhC6THrJxb+Dzj7HDeEv0Ewn6b5dNIFkCQQQLWprPaqMEqd2GzwcgVFcl6LtdNoHkCVTeJaR19Wmo6U72lNJrOHs4NsVilVK12de6Eai0hYVYbQLAoxODeA3+qlV1S2J+210TqB2BylpYiJXGq87C5kyE4ov4+XlsQ4tVIjVmN2tPoJIWFmKlx1d0Y2is08SMrOg7WLALQqWXsjqZgAlEQqCqFtZ/E+9akcTcyY3T2WBdi1UnTF5vAtUTKF2waF3tSlhlvDq+aFqvkOGBCNVHsOeLztz5mYAJDE6g1C4hYqXXxqt1FXu6Dwd3Raiui91R+2cCORMoVbAA+xNs4cgB/wH/dkasdOe6kwmYQMQESusS0rrS/VbbRRy7XDsT29ZiFXkt2T0TGCJQimAhViuS/5GRU9b9YHsgVhq7cjIBE0iAQOGChVhNIO5TsVini5mJb/+MUH0W03OBTiZgAokQKGMM6yvEvn6k8esRm/0Qqp9G6p/dMgETaEOgUMGidbUyZX29TXkhV82gcHUBzw7phMs2ARPon0DRXcLv40qMj96o67evxar/A8V7mkAMBAoTLFpXHyCgGK8KaszqU4jVaTEAtw8mYAL9EyhEsBArvTziqP7dKHXPzyFWmnDPyQRMIHEChQgWDA7BVoiQxb8gVrp9wckETKAGBAYWLFpXS8HhsAhZHINY/b8I/bJLJmACfRIYWLAo9ztYbPdcXYxPavU5mYAJ1IjAQIJF60rzsu8VGY978Gc3Wle6jcHJBEygRgQGvQ/ru5GxeA5/PohYPRWZXyHdeS//WPzex5A10LpsTWP0GMfrM6038ZpmAn0LFifBVmS0QXNmgb/rXivNZaU32zjNJnDu7K/+FiMBziUJ1hXYRdhPOYafjNHPGHwapEv4tRgCaPLh61T0eU2//dUEUiGgFvCO2PexBxGwH2NLpOJ8lX72JVjA3AQnN6vS0Q5lXc76f++wjVebQAoE5sHJ/bE7OM9Sex1e6Xz7Eiy8iql19Sz+fIzWlWdeKP1wcQEVEliAso5HtI7D+h66qdDfSorqWbCAtx6ebV2Jd90VcjBiNb27Tb2VCSRHQBNhnsp5Nz45z0twuGfBwoeYWldnIVanlMDFWZpATAT2wJlvxeRQKF96EixUfgqO/n0oZ0eU+zC/PzVimX+aQF0JHMr5p/ses049CRakDo2IlmZg8P1WEVWIXSmVgLqEGtPKejyra8EC1OIA+4dSq6T7zM9HrHwLQ/e8vGU9CLyXMHauRyj9RdG1YJH9x7EYJufTSyM+11+43ssEkidwUPIRDBBAV4JF60rN0QMGKKfIXf+T1tXdRWZYQV5dca7ADxeRPoENOB91r1aWqdsTSY/hrBABoQfw4YgI/OjVhcm97uDtTaAFAfVydD5mmboVrE9EQueLtK5ejMSXrtzgv6Gm3lmtq429kQl0R+CD3W1Wv6063ozGCbcoYT+ESdlDpisRq41DOtBP2fBbnf1u6mdf72MCLQjolp5JnA96X0FWqZsW1r4QCS1WqpRv6E+CabEEfbbLcRPQLL9rx+1iOd61FSxaB2qBxdAdvJr/JlPLQVB6rvOVXoILyJFAlt3CtoLFUfA+bKUIjobDI/ChXxc0qaCTCRRNwII1BtEYbhSdRuvqd2P4lsoijTc4mUDRBNagB7Rs0ZnGnl+nFlYMgpVy60r1fxeW1JXN2A9a+/cWgexaWS0FC/VeGSyrvIUmzJcbaV0l/QgO/mueLk1962QCRRPQ29azSi0FCwoxPLN0bE1q48SaxOEw4iKwOQ2L+eNyqVxv2glW6O6gBqtPLzf8ynI/n5Ieq6w0F5QLgbkIdLtcglWcYwoWqr0k63SFMGQ6je6UXoOUfCKO1wji/ycfiAOIkUBW41hjCha1shPW8S74kmvvRyXnX3X2mjHy9qoLdXm1J7ADDYwJtY9yKMBWghW6O6hbGW6oUyUQz8vE81FMrS0nEyiKwMJklNwja/0GP0qwUGs9hrNpvxkWtN/xBeUTVTaI1vU4FNOsrVHxsTN9E8jmauGobh+CpbfiXN03usF31AR9i3Jy1/YOcRh/hhiPwbJpyg9+WDiHNgTu4nzJYgqjUS0soIRuXl5cZ7HSQUd8x/GhccIX9NvJBAYksBL/BEPfMzlgCN3tPpZgbdTdrqVtdU5pOUeUMaKlWx3Umv1jRG7ZlXQJZHG1MDbB0l3hv073mOnNc0TrVvZQi1YzYjzV297e2gSGEchCsIaNYdGsXBEEdw3DUO2PyzmJQw/4VxvxUGmwX5Cv6ibqCu222LzYWOl+FqqOXh9rpZcFI6B//lsHK33cOP2zX5zz54mAPpRe9Mh3nIUev8qiOzhWrXKgPcPyk2WIl+bQ0rTKErEFMD1+cR+mZyuf5tMpQgLU2824FWo6bAmmXnKsY6i2aaRghR6/+lVtSfcQGKKk2R2u7WEXbxoHgXNxI5RgiYC6hbUWrJFjWCEFazonqloRTiaQKoHfBHZ8G1p5cwf2odTi3xIsAtWYSchLo1eUGqkzN4HyCahV/Hj5xbQs4R2s2bLl2hqseEuwiEVTIY8PGJMFKyB8Fz04AXoIGvhWtzBkqvVd782CpQn7QiYLVkj6LrsoAqG7hRasomqyTT668nVbm/VeZQKpELgIR/V4Wag0ieGdtUIVXna5zS2skONXeklqdi+FLLtynX/1BDiO9bjV1OpLHlZibW8ibRaskF1CP54y7Hjzj8QJhO4WZiFYIZ/21iMqTiZQFwJ6TjRkmkK3cFJIB8oqe1YLi+CWpICJZRXSRb53dLGNNzGBJAjQLXwIR6cFdraWg++NLmHI7uBrVOy9gSvXxZtA0QRC395Qy25hQ7CWK7q2esjvHv4jzehhe29qAikQCD2OtQU9J91IWqvUEKxFAkZ1Z8CyXbQJlEKAf8I3kfEDpWTeXaZ6RGfb7jZNZ6uGYL0zoMsevwoI30WXSiD03G616xY2BCtkC+uuUg8ZZ24C4QiE7hbqFWCNczwchQJLbgQTsoX11wLjcVYmEBOBP+BMyJcB67zeMCYgg/rSEKyQLawnBw3C+5tAjAQYx9IjOr8L7FutuoUxCNYTgSvUxZtAmQRCdwtrKVghu4RuYZV5ujjv0ATUwtK0M6HSyoxjaeqoWqRGC2vhQNHoRQqeozwQfBdbPgG6hepBhJ46qTatrLehvvMDdI7yq27MEp6iQj1Lw5hovLBGBNwtLKgy1cJqtLIKyrKnbNy66gmXN06UwHmB/d6IhkmoXlShoYcUKwXid+sVWp3OLEYC9CJ0c3TIJzomUL5eAZZ8kmC5S5Z8NTqABAi4W1hAJYVuYRUQgrMwgSQIhJ69YVu6hXMlQaqNkxasNnC8ygQKJKBZdZ8qML9es9LFtc173Sm27UMLVsjXisVWF/anxgQYx9J4bejB9+Rvb5BgeQyrxieKQ4uKQOhxrA9ERaMPZ9zC6gOadzGBPglcyH6v9rlvEbstyzjWmkVkFCqP0IK1QKjAXa4JVE2AbuGzlHlp1eWOKC/pbqEE60UsVLcw5DOMI+rRP02gEgLuFg6AedagN81EPYAc6k7YhfjP88wAMXhXE0iGAOfau3B2ekCH1TiZxDn3cEAf+i660SUMOcWLW1l9V593TI0AQnE/Pt8Y0G81UpIdfLdgBTxyXHS2BEJ3C5Mdx4pBsBbN9rB14LkSCH3X+5Z0Td+eIvwYBMtdwhSPHPs8CIHr2PmRQTIYcN952H/rAfMIsnsMgrVckMhdqAkEIsA4lga+3S3sg38MgrVqH357FxNInUDobuGOdAsb538yLBsOPx7Q41UClu2iTSAUgUsoWPdAhkoaO14/VOH9ltsQrJDvBpyM0muCMScTyIYA3cKXCHZq4ICTu1rYEKw/BwSnOXqWD1i+izaBUARCdwuTFaz7qDG99DFU8jhWKPIuNySB8ylcA/Ch0qr0blYIVXg/5c5qYdE81XvTQrayPI7VT+15n6QJcN5pKObqwEEk1cpqdAnFTBPlh0prhSrY5ZpAYAK+vaGHCmgWrNt72K/oTTcpOkPnZwKJEAg9jrUx3cKFEmE17J2EIVtYS6XWl06lgu1n3AToFt6KhxpDDpX0EuUdQhXea7nNLayQgiW/N+3VeW9vAjUhELqVlczsDc2CpRc9hrxiYcGqydnnMHomEFqwtqeHM2fPXgfYYdYEfo1ycXo639/V+F3x5z00j1esuEwXZwLBCQyJhZ42CTll+NacfxeVDYNY56aM5THdTrEYNgNTl/hKytfdCm2T+q/N6U/8CCVYKxDMUjid5EyIzRD93QR6IcAx/xrH/u/YZ49e9it4W93eUIhgEcv85CVBUgNk5Ocklg1rKPFb6VH2+x6f34OHXok2Zhq2Izt8lq2+P+aW1Sz8OM6eVE1RLsUE4iHAubcn3vwsoEfTOfe6njkFfzUt1FiC1Gg59RuKpt7ZGV8eGCuDkYKl+6G0Q6h0Ho4mMwAYCpLLrR8BBEC3FjyGjez1VBns6px/N6tA/JE2LI2NbCE1fk/UdiUldRG3wJf7R+Y/UrAmsMHTmJp0IZIeD1oMR58NUbjLNIGQBBCJSyh/i4A+XEbZOvfUctI4kyb6C5X05M1aaMELzQ40XyUcx0r1Hf/YvEHF3zUgt2PFZbo4E4iFQOirhZsDQmNZ78FCihXFj5uMHa0vzWmYYA2tuLx5gwDfPxygTBdpAjEQCP2YTgwMmn3Yj1bnsKmcYxQs3ROS5AT5zaT93QR6JUAP5x72ua3X/Wq+/Teb4xtLsK5lg5BTzcxL+ds3O+nvJpARgdDdwthQr0cD5i09GCVYqPzLeDwtsNf7BC7fxZtAKAIWrNHkD2gsGiVYQyt0tSJk2gFVfXdIB1y2CQQicA3lhnzHQqCw2xYrPZh1G0UrwTqn7e7lr5Rfny6/GJdgAnERoIejx1POi8ur4N7oiuWsuwfGFCyg3cgG9wZ2c39UVbc5OJlAbgTcLRxd4xto0ZiCNbTt2aP3qXSJbv3ftdISXZgJxEFAb9PRWLLTbALr6ms7wfrl7G2DfTswWMku2AQ6EKAHMA/W7hzqkMPYq+nh6O7u0OPIYzsXbukasB4/7NGcZl+0kt8PYHqeKGRahwoM+XxjyNhddsQEOEfUddsG0/DJ3UOmR0o03fhtHLd9D56T96fI478xp9kEFmopWNoGaMfwcdDs7YN8O5eK3ylIyS7UBFoQ4NxYj1VXt1jdWPwoXzRtzK+xCzmOX2qs6PRJ/mooqMHQ9hztlE/N1q/YFgbQNifgSyMIel0qW3N1OZlAFAQ4NzR31FY9OPM82/4IO4pj+cFu9qMMHfNrd7NtJtus06n/fTkg+m7WFgjx8ALzclYmMBABhGQLMuhFrFTeO7BDsHvZ/3hsYS3skHy1cDigl9sKFv8JNHtDDIPver5w/eG++5cJVE+A41C9km8PULLmTv8kdht57dYhHwvWcEB/aytYQ9seP3yfYL/cygqG3gU3EdiL77MusTct6+fr4uz0c0TrRGzMF0DQYND9kBrHcnqTwNMdBWsI2lURENuait0kAj/sQqYEOP7mJfR/Lzj8fclvKnm36iJ6ypk3gd+LFr3QUbCGKue4oc/QH0dRsd36HNpXl18/Al8kpGVKCGsz8vwDx/aCY+TtbuGbUK7XR7cn/5ls++Sb+wX9qysmnwnqgQvPkgBisiSB/3OJwa9G3udSjp6ba06X8UNXGHNPugDYnWDRFNNjAidGQuwIKlX9fycTqJLAERT29pIL1JDHyc1lcO5pbroLmpdl+F0X/36huLttYWlb3XU7U18CpwUo/8jAPrj4jAjwD1KD7PtUFPJulLf3iLJy7xZORbh1E25vd9ECUkqvRxFiSFsQxGUxOGIf6kuAY14zhmj8RC9mqCo9Q0GrcXw/pALxQRMB6ISdoN+ZJTWSNoCF5gnrqYWl7Y/Vn0jSsVTkmJeDI/HPbtSDwDcJo0qxEjUNvr/Vi+BkfYLfMVypl29VpzMaYqWCe+kSavvzsLv0JYK0Kj7oYHIygVII8A9xAzL+QimZd85UXcNVmjbLsVt4O/EPm7GlJ8FC6TT4FZNIfJlK3aqpUv3VBAohwHGle65Owno6Rwop/M1MVO5hTfnlJlj3EfvfoznqHr+V+qmMn7G3ptCIIekxiVM4uNTHdzKBIgnoquDkIjPsI689ObaX0H6cuHfycXUfeaS2i6aIPhVbk5glWsNSz4I11Mo6fFguYX8sRfEnhHXBpdeJwFCr/bMRxDQBH/QoUCPFdN41fBr0U+NzEmI1hL6ELYvGfAx7lu+jklooPScqVEJ3K9bcx+45n4J3OIggf1hwns4uMwIc28sSsiaMjKXVfjPH9eqNasA/ndh7Nn4n8KkWk6bTuWfINNFh4/s9rYSJbcZMfQmWcgKcoAleLEk3t64HgP+NxSH7kRYBjul58PgKLKY5qDT8sirHtU58nXe6D/F3mC4IxJJewRF13yREwwRJy/H9VT4LSYMIllpZt2C6WhdLuh9HJFp/jcUh+5EOAcTgJLzdJzKPP8TxfE6zT/ipCwK683vH5uUlf9fg973YSEGSSD2IjzNLLn9W9n0LlvYG3O58nDErp3j+qD+8BQDV4nIyga4IcCz/Ixv+oKuNq9voco7jTccqDn/nYPn3sc9gajwMmiQ4j2JjCZK6bjE8S9zbne4jiQBNoG7A3upjj9wm0G/dbJZSPz8QJhcrAhzHG/NxCRbTjcjqAuoFLDq/WiZ8X5OVX8F2wtSl7ZSms8EdmFpLb40l6Tdlvchn1GmgFpYiA9gmfPxPhFF+gwr4twj9sksREeD4XQV3LsdiGWRv0DmW41etvq4ScUxkQ41rScAWxubD1Mt4fsh0w/c15Jn0cMnAggUEidYpfOyt75Glj1BBp0fmk92JhADH7bK4ciU2KRKXGm7oUv9kjt2nGwv8+SaBIvq+ykn3T/ztzSyj+nsSB+UOUXlkZ6IgwHGxKI5MxWITK/E51GIlDKNTIYI11Mz82ujsgy+ZCw/O5uDcJrgndiAaAhwP6j5dgE2OxqnZjlzL1xNm//S3ZgKFdAmVIQeB7sr9E6Y+dGxJffkdEdaLY3PM/lRLgONUA9MSq02rLbmr0jTQvj7H6bSuts5wo0JaWOIG5Nf5OBCr5H4MldlD0kGq6Wc372Efb1ozAtS/ZgzVQ8QxipVon2CxEobWqbAWVqMIDgo1Z/dr/I7s8wX82Z6DQleFnDIiwHGpK2e/xdaLNOyn8Gtljk0NuDu1IFBYC6spf90T8njT75i+6j/s7zl4dc+KUyYEqO+lCVX/pGIVK9XE5y1WwtA+FS5YQJdY7d++2KBrdX+KBuIPCuqFC6+EAPW8EgXp1oX3VFJgf4X8gvPmlP529V6FEOBA0RTGsacjcbDwbnEhAJ3JwASo2ynYXyM/CB/Av4UGDjaTDEo7WakEPaCpaTpWjZzlWfi3N//hdCXRqSYEOP52I5SfYBoGiDXpAtVWHHuXxupgbH4V3iVsBEglvMT3j2CFTS3RyLvgz13I72IO8CUKztfZBSBAPU7AvkvRP8diFivROdJiJQwRJQ6eL2AppEdx8v0RobMrPRKg/t6J6Z9PCukGnNSNzU49ECitS9jwgUpRGRdiKYiBbtw7AvsG//l0X5lTIgQ4ztbB1V9iyybgsnofa3OM3Z6Ar1G5WFqXsBEllaJ++j5YFPPpNPxq8SkeX8Mu4gRYssU2XhwRAf1DxP4JlzRTaApiJXpfslgJQ8SJg2pbbAaWStLVpe0iRpq9a9TPcthlqRxQQ36emn3FpQKACvunxA4uuXsytkgqjHPwk/pQq+oz2HNYSukqnJ07hzqqTYxU2PEpHWFDvj7O50drUwkJB0I9LItNHaqXlD7+grO+Ej3gsVf6oPtI/6i0OVmmQfjNR65L4Lf8/jTjD/cl4GutXOS40RU1jVX9KzZ/YsFp6uGNOW7aTnecWExB3K1csBQlB58eRNW8Pyvod2JJB983sf/iANTVHqeSCXC87EwRurcqxeNFF5125VjRFUynVAlwEK6KPYOlmh7E8U9genuJUwkEYLsmdimWctJVZ6c6EOAo3A5L6crhWCfOnSzcBQvSWq3DcTAyBlhqnOoE7HUs5eT3CYys3NR/czSqlfJGykflkO/T+Nw69foI6T/81OrWPPyvYqmnSwlAE0c6FUggilYBFXswMR1dYFwhs7qJwvWCy9MZt3glpCOplE39r4uvh2L/gEVxTA7ITtPZbEv9a8JIpwIJRHNwcNB+ibi+U2BsobN6DAeOk3HgJv0uuDJAUt96qkA35h6CbVVGGYHynEa576fOnw1Ufq2LjUawRJmDWAOUh9eMuGar0FjG8RzEV9Ustp7DoY5XZKePY3pcSzOB1indSDBbUs9+n2BJtRqVYClGDuhv8XFYSfGGznY6DpyBqbv4v6Gdqap86lTTvOyKSag2rarcisu5hfK2oF49J3uJ4KMTLMXKAX4kH18oMe4Ysr4NJ9TyknjdE4NDRfpAHS5KfjtgO2Lq+r0Dq2u6k8A2ox7d9S+5hqMULMXMAX8MHweVHH8s2euAvxi7CLuMAz/JLgV1tgb+S6Bk78M0TlX3pH82EquH6h5oDPFFK1iCwwmg8SyNa+WU3iDY6zEJmGwaJ8MzfEaVqJt5cWhtbL0h25DPuo1JEVLbpEdtdqB+Hm27lVcWRiBqwVKUnBif4ENX2ybod6bpAeLWmJdMt03o88+cKK/zWWqCv46RpTA9FrMSponyJFJ/h+V8l7+eK92FOniOT6eKCEQvWOLASaMuhubonk+/nWYR0Esz7scexh4Z4/MJlukK5WtN1vitVpweIF5gyCY2fS7M93dhEijZctg8mNNsAifz9QDEasbsRf5WBYEkBEsgEC2NiZyHaTDXyQRCEfgWQpXbMEUo1qPKTUaw5DmipXt4fo/pP7+TCVRJQN3vAxGrH1VZqMsaTiApwZLriJZaWOdj6+q3kwlUQEBTCu2OWKmF7xSQQHKXnTloHofXZtiJAbm56HwI3EOoG1ms4qjw5ARL2Dh4XsL246vsJS1zMoESCGjSvbU41vTIjVMEBJLrEo5kRhdRl9fPwiaPXOffJtAnAV1Z1au4/qvP/b1bSQSSFyxxQbR0if7H2G767WQCAxD4C/vuhlhdM0Ae3rUkAkl2CUey4OB6Dtud5QdjutfIyQT6IaCLOVMsVv2gq2afWghWAxUH2g/4vjF2d2OZP02gCwLqAn4F+wDH0FNdbO9NAhGolWCJIQecJlBbHTsSK/3RFcpwSpuAun4aWP82NjPtUOrvfS3GsFpVE2Nbeu7tBEwC5mQCzQRe4MdXsaMRKj2q5JQAgVoLlvgjWnPyoea+Dk69jNPJBKaC4FMI1X1GkRaB2gtWozoQrlX5rtbWBo1l/syOgOYZOwShOim7yGsScO3GsFrVCwfp7azTgPxnsb+12s7La0tAs32sarFKu36zaWE1VxOtrUX4rS7igZi7ic1w6vf9CkL6MkKV/QtA6lC1WQpWo+IQruX4fgS2B5Y1iwaTGn2qRX0oQvXrGsWUfSg+STkEEC5N9fsdbMvsj4j0AWgyw69jP0GsfFtL+vU5LAILVhMOhGt7fn4b0/OJTmkReBZ39U/nKIRK08E41ZCABWtEpSJauhDxYewL2HojVvtnfAQ03dCx2A8QKk0L7VRjAhasNpWLeG3E6i9iH8SyuaLaBklMq/RqtO9hpyBUL8fkmH0pj4AFqwu2CJemZv48ti/mF2EAIWD6A2XrsavzESo/ShOwIkIUbcHqgTrCpdshPo0dhC3Rw67edDACM9j9TOw/EanrBsvKe6dMwILVR+0hXHrcR69f/yim7qJfgwWEEpLE6VTsdITqsRLyd5aJEbBgDVhhiNdEstgFk3hthnmsCwgDpPvZ9zTsVETqjgHy8a41JGDBKrBSEa9JZLcXJvFarcCs657VMwR4FqbW1OUem6p7dfcfnwWrf3Zt90S8JFg7YNtgG2NzY06zCehO9AuG7FJE6pXZq/zNBMYmYMEam0uhSxEvXVlUd1HitS2mmSNyS3rg/CJslkghUH/JDYDjHZyABWtwhj3nMNR1lHBtjb0PW67nTOLfQd2867ErMYnU1YiUH5UBhFP/BCxY/bMrbE8EbEEymzJkaw19rsznBCyF9BROSpx0VW+WIU73puC4fUyLgAUr0voa6kaujnsSsvdgyzTZonyvOr1EgQ9g9zeZxqGuQ5ym8+lkAqUTsGCVjrj4AhAz3felK5LNIqbfE7F5xzBt31iuVpseDtac5s2mZc8PrXuOz4cxiZPGmu5HlHwfFCCcwhL4P4bRTjZEBcKyAAAAAElFTkSuQmCC";var _c="data:image/png;base64,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";var xc="data:image/png;base64,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";var U2={loadRoadNetwork:!1},hs="map_version",ps="route_version",fs="map_data",xi="road_network_data",Ec={half:vc,power:_c,mechanical:xc},bc=class{constructor(e){this.bmap=e;this.initDb()}floors=[];async initDb(){try{let{db:e,type:t}=await dc();t==="onupgradeneeded"&&(sr(hs),sr(ps),sr(fs),sr(xi))}catch(e){console.log("[\u6253\u5F00indexDb\u9519\u8BEF]",e)}}async load(e){if(this.clear(),Array.isArray(e))this.floors=e;else{let t=await fetch(e).then(n=>n.json());t.code==="0"&&(this.floors=t.data.list)}}setCacheData(e,t,n){return mc(e,`${t}`,n)}getCacheData(e,t){return gc(e,`${t}`)}getFloorCacheKey(e){return`${e.floor_id}`}async getFloorData(e){let t=this.floors.find(i=>i.floor===e);if(!t)return null;let n=this.getFloorCacheKey(t);try{if(await this.getCacheData(hs,n)===t.version_id){let o=await this.getCacheData(fs,n);if(o)return this.getDataByJson(o)}return this.getFloorDataByFloorInfo(t)}catch{return this.getFloorDataByFloorInfo(t)}}async getFloorDataByFloorInfo(e){let t=this.getFloorCacheKey(e);console.time("zstd_json");let n=await fetch(e.map_url).then(i=>i.json());return n.floor=e.floor,console.timeEnd("zstd_json"),this.setCacheData(fs,t,n),this.setCacheData(hs,t,e.version_id),this.getDataByJson(n)}async getRoadNetworkData(){return(await Promise.all(this.floors.map(async t=>{let n=this.getFloorCacheKey(t);try{if(await this.getCacheData(ps,n)===t.version_id){let a=await this.getCacheData(xi,n);if(a)return a}let o=await fetch(t.route_url).then(a=>a.json());return this.setCacheData(xi,n,o),this.setCacheData(ps,n,t.version_id),o}catch{let i=await fetch(t.route_url).then(o=>o.json());return this.setCacheData(xi,n,i),i}}))).filter(t=>t.points)}async getFacilitiesData(){if(this.floors[0]?.entry_infra_url)return fetch(this.floors[0].entry_infra_url).then(e=>e.json())}async getOtherDataByFreeTime(){}async getMulFloorsData(e){return Promise.all(e.map(t=>this.getFloorData(t))).then(t=>t.filter(n=>n))}async getDataByUrl(e){let t=await fetch(e).then(n=>n.json());return this.getDataByJson(t)}getDataByJson(e){let t=new Ce(this.bmap.context);t.userData.graphics=[],t.userData.graphicMap=new Map;let n=[0,0];return e.layers.forEach(i=>{switch(i.l_type){case"range":let o=i.elements[0];n=[o.center_x,o.center_y];break;case"graph":ee(i.elements,n);let a=[];i.elements.forEach(p=>{p.group==="ground"?t.createGround(p):a.push(p)});let c=a.reduce((p,m)=>{let{fillColor:v,fillOpacity:b,strokeColor:y,strokeOpacity:S,height:x}=m,_=`${v.toLowerCase()}-${b}-${y.toLowerCase()}-${S}-${x}`;return S===0&&(_=`${v.toLowerCase()}-${b}-${x}`),p[_]?p[_].push(m):p[_]=[m],p},{});Object.values(c).forEach(p=>{let m=new Dr(this.bmap.context,p);t.mergeGraphicLayer.add(m)});break;case"ground":ee(i.elements,n);let l=i.elements.map(p=>new Ft(this.bmap.context,p));t.addGrounds(l);break;case"wall":ee(i.elements,n);let s=i.elements.reduce((p,m)=>{let{fillColor:v,fillOpacity:b,strokeColor:y,strokeOpacity:S,height:x}=m,_=`${v.toLowerCase()}-${b}-${y.toLowerCase()}-${S}-${x}`;return S===0&&(_=`${v.toLowerCase()}-${b}-${x}`),p[_]?p[_].push(m):p[_]=[m],p},{});Object.values(s).forEach(p=>{let m=new Cr(this.bmap.context,p);t.wallLayer.add(m)});break;case"lane":ee(i.elements,n);let u=i.elements.reduce((p,m)=>{let{fillColor:v,fillOpacity:b,strokeColor:y,strokeOpacity:S}=m,x=`${v.toLowerCase()}-${b}-${y.toLowerCase()}-${S}`;return S===0&&(x=`${v.toLowerCase()}-${b}`),p[x]?p[x].push(m):p[x]=[m],p},{});Object.values(u).forEach(p=>{let m=new Pr(this.bmap.context,p);t.laneLayer.add(m)});break;case"texture2d":case"texture3d":if(ee(i.elements,n),i.elements.length){let p=new Wn(this.bmap.context,i.elements);t.textureLayer.add(p)}break;case"glb":ee(i.elements,n),i.elements.forEach(p=>{let m=me([p.center_x,p.center_y],n),v=new Ar(this.bmap.context,{...p,url:p.secondUrl,rotate:p.secondRotate,width:p.secondWidth,center_x:m[0],center_y:m[1]});t.glbModelLayer.add(v)});break;case"store":ee(i.elements,n),i.elements.map(p=>{let m=me([p.center_x,p.center_y],n),v=t.addGraphic(p);t.userData.graphics.push(v),t.userData.graphicMap.set(p.id,v);try{let b=new ne(this.bmap.context,{id:p.id,icon:p.poi_info.icon,text:p.poi_info.showName||p.store_name||p.poi_info.text,position:{x:m[0],y:m[1],z:p.airHeight+p.height},icon_size:[18,18]});t.poiLayer2.pushPoi(b),b&&(b.userData.type="store",b.userData.data=p)}catch(b){console.log("\u521B\u5EFA\u5E97\u94FApoi\u5931\u8D25",b,p)}});break;case"facility":ee(i.elements,n),i.elements.map(p=>{let m=me([p.center_x,p.center_y],n),v=t.addGraphic(p);if(t.userData.graphics.push(v),t.userData.graphicMap.set(p.id,v),p.poi_info){let b=new ne(this.bmap.context,{id:p.id,icon:p.poi_info.icon,text:p.poi_info.showName||p.store_name||p.poi_info.text,position:{x:m[0],y:m[1],z:p.airHeight+p.height},icon_size:[18,18]});t.poiLayer2.pushPoi(b),b.userData.type="facility",b.userData.data=p}else console.log("\u6DFB\u52A0facility\u5931\u8D25\u6CA1\u6709poi_info",p)});break;case"parkingSpace":ee(i.elements,n);let h=[],f=new Map;i.elements.forEach(p=>{let m=t.addGraphic(p);h.push(m),f.set(p.id,m);let v=me([p.center_x,p.center_y],n);if(p.texts[0]){let b=new ne(this.bmap.context,{id:p.id,text:p.texts[0],position:{x:v[0],y:v[1],z:p.airHeight+p.height}});b&&(b.userData.type="parkingSpace",b.userData.data=p),t.poiLayer2.pushPoi(b)}});let d=i.elements.filter(p=>Ec[p.parkingType]).map(p=>{let m=me([p.center_x,p.center_y],n),v=ws(p.geometry.coords,m);return{uuid:p.id,iconUrl:Ec[p.parkingType],name:p.texts[0],deltaHeight:p.deltaHeight,airHeight:p.airHeight,height:p.height,geometry:{...p.geometry,coords:v},opacity:p.fillOpacity,visible:!0}});if(d.length){let p=new Wn(this.bmap.context,d);t.textureLayer.add(p)}t.userData.parkingSpaces=h,t.userData.parkingSpacesGraphicMap=f;break;case"text":ee(i.elements,n);let g=new Rr(this.bmap.context,i.elements.map(p=>{let m=me([p.center_x,p.center_y],n);return{...p,center_x:m[0],center_y:m[1]}}));t.textTextureLayer.add(g);break}}),t.userData.center=n,t.userData.height=e.floorHeight*10,t.name=e.floor,t.userData.data=e,t.updateBox(),t}clear(){}dispose(){this.clear(),yc()}};var Sc=class{constructor(e){this.bmap=e}cacheData=new Map;floorDataLengthMap=new Map;buildingGroundMap=new Map;externalStreetMap=new Map;async load(e){let t=yn(e);if(this.cacheData.has(t))return this.cacheData.get(t);let[,n]=await Promise.all([this.loadBuildGround(e),fc(e,this.bmap.config)]),i=yn({floor:e.floor,ts:e.ts});ee(n.map(a=>a.info),this.bmap.buildingCenter,this.floorDataLengthMap.get(i)||0),n.forEach(a=>a.info.transformToBuildingGround=!1),this.cacheData.set(t,n);let o=this.floorDataLengthMap.get(i)||0;return this.floorDataLengthMap.set(i,o+n.length),this.loadExternalStreet(e),n}async loadExternalStreet(e){}switchFloorByData(e,t){if(!e.length)return;let n=t.userData.legacyToGraphicMap||new Map,i=t.userData.graphicMap||new Map,{ground:o,markGraphic:a,graphic:c}=this.bmap.config;for(let l=0;l<e.length;l++){let s=e[l];s.info.group==="ground"?(s.info.fillColor=o.color,s.info.fillOpacity=o.opacity,s.info.height=o.height,s.info.stroke=o.stroke,s.info.strokeColor=o.strokeColor,s.info.strokeOpacity=o.strokeOpacity):s.info.userData.mark?(s.info.height=a.height,s.info.fillColor=a.color,s.info.fillOpacity=a.opacity,s.info.stroke=a.stroke,s.info.strokeColor=a.strokeColor,s.info.strokeOpacity=a.strokeOpacity):(s.info.fillOpacity=c.fillOpacity,this.bmap.config.initTransToMark&&(s.info.height=a.height,s.info.fillColor=a.color,s.info.stroke=a.stroke,s.info.strokeColor=a.strokeColor,s.info.strokeOpacity=a.strokeOpacity))}for(let l of e){if(l.info.group==="ground")t.createGround(l.info);else{let s=t.addGraphic(l.info);s.userData.data=l,n.set(l.legacy_id,s)}i.set(l.element_uuid,l)}t.userData.legacyToGraphicMap=n,t.userData.graphicMap=i,t.updateBox(),t===this.bmap.context.currentFloor?(this.bmap.triggerHooks("switch_floor_before",{curFloor:t,graphics:t.graphicLayer.children}),this.bmap.initialFloorCamera(),this.bmap.triggerHooks("switch_floor_after",{curFloor:t,graphics:t.graphicLayer.children})):this.bmap.switchFloorByFloor(t)}filterData(e,t){let n=t.userData.graphicMap||new Map;return e.filter(i=>!n.has(i.element_uuid))}async switchFloorByStoreData(e,t){let n=await this.load({...e,resource_type_list:"6"}),i=this.filterData(n,t);this.switchFloorByData(i,t)}async switchFloorByOtherData(e,t){let n=await this.load({...e,resource_type_list:"1,2,3,4"}),i=this.filterData(n,t);this.switchFloorByData(i,t)}async loadBuildGround({brand:e,project:t}){let n=await this.loadBuildingGround({brand:e,project:t});return this.bmap.currentBuildGround=n,this.bmap.changeBuildingCenter(n,{brand:e,project:t}),this.bmap.currentBuildGround}async loadBuildingGround({brand:e,project:t}){let n=yn({brand:e,project:t});if(this.buildingGroundMap.has(n))return this.buildingGroundMap.get(n);let i=pc({brand:e,project:t},this.bmap.config).then(o=>(this.buildingGroundMap.set(n,o),o));return this.buildingGroundMap.set(n,i),i}async switchFloor(e){let t=new Ce(this.bmap.context);t.name=e.floor;try{await Promise.all([this.switchFloorByStoreData(e,t),this.switchFloorByOtherData(e,t)])}catch(n){console.log(n)}return t}dispose(){this.cacheData.clear(),this.floorDataLengthMap.clear(),this.buildingGroundMap.clear()}};export{bc as AibeeLoader,Ma as BMap,Oa as BMapSelect,le as BaseSvg,Hr as Context,Sc as CrLoader,La as CrNavPath,wa as Equipment,Ds as Events,Ce as Floor,Ar as GlbModel,Ft as Graphic,Er as GraphicLayer,Wn as GroundTexture,_r as HeatmapElement,Vn as HooksName,Or as HoverHelper,Pr as Lane,Ht as Layer,Vf as MapTypePolar,Dr as MergeGraphic,xr as Model,Ra as MulFloors,Na as NavPath,Ia as Navigation,vr as Overlay,Gs as PathDirection,hc as PdrPosition,rn as Poi,ne as Poi2,_n as PoiLayer,br as PoiLayer2,na as RoadNetwork,ra as RoadNetwork2,pa as SelectBox,Lr as Selection,jr as Sensor,yr as Shadow,wr as SvgLine,Tr as SvgPolygon,Rr as TextTexture,Gt as Timer,vn as TweenUtil,Ps as UA,Cr as Wall,Tv as addAlphaToHexColor,Ms as calc_angle,Mi as calc_direction,ia as convertToSnakeCase,Gn as createCircle,fr as createLine,He as createRect,Cs as createSvg,pr as createSvgElement,l_ as createThreeBox,u_ as createThreeLine,Oe as darkenColor,U2 as defaultAibeeLoaderOption,Bf as defaultConfig,Pi as defaultGraphicOptions,kp as defaultOptions,vf as defaultTextTextureOptions,Jt as dispose,zs as distancePointToSegment,yn as generatorKeyByObj,vh as getAngle,hr as getCenter,Sa as getConfig,Vv as getDirectPath,ks as getDistanceByPathPos,kt as getLength,vv as getLongestSideDir,ws as getMinEdgeSquare,Me as getPathLength,fn as getPointEdgeIndex,dr as getPosByPathDistance,Ss as hasChinese,bi as hexToRgb,bs as initDirectionalLight,Es as initLight,Se as initShape,Av as isAndroid,Ve as isContain,mn as isControl,kn as isIphone,gn as isMac,Ts as isPointInPolygon,pc as loadBuildingGround,S2 as loadExternalStreet,fc as loadGraphics,kv as moveOnRoute,dn as proxyOptions,xh as removeWeightPath,en as setCirclePosition,ge as setLineStartEnd,Xt as setRectPosition,Bs as simplifyPath,As as sleepOnePromise,Sv as sleepOneRf,Us as smoothPath,wv as strToNumber,Le as timeoutPromise,i_ as toWebWorker,ee as transformGraphicData,me as translatePosToCenter,Te as triggerWorker,et as vector3ToDevice,Ov as xhrGet};
7516
+ (`+vt(w,p)+", "+vt(S,p)+") ==> "+(this._values?vt(this._values[M],p):"X")}return y},i.prototype.toString=function(){return vt(this.toArray())},i.prototype.toJSON=function(){return{mathjs:"SparseMatrix",values:this._values,index:this._index,ptr:this._ptr,size:this._size,datatype:this._datatype}},i.prototype.diagonal=function(p){if(p){if(it(p)&&(p=p.toNumber()),!nt(p)||!tt(p))throw new TypeError("The parameter k must be an integer number")}else p=0;var m=p>0?p:0,v=p<0?-p:0,b=this._size[0],y=this._size[1],S=Math.min(b-v,y-m),x=[],_=[],M=[];M[0]=0;for(var w=m;w<y&&x.length<S;w++)for(var C=this._ptr[w],P=this._ptr[w+1],D=C;D<P;D++){var R=this._index[D];if(R===w-m+v){x.push(this._values[D]),_[x.length-1]=R-v;break}}return M.push(x.length),new i({values:x,index:_,ptr:M,size:[S,1]})},i.fromJSON=function(p){return new i(p)},i.diagonal=function(p,m,v,b,y){if(!yt(p))throw new TypeError("Array expected, size parameter");if(p.length!==2)throw new Error("Only two dimensions matrix are supported");if(p=p.map(function(j){if(it(j)&&(j=j.toNumber()),!nt(j)||!tt(j)||j<1)throw new Error("Size values must be positive integers");return j}),v){if(it(v)&&(v=v.toNumber()),!nt(v)||!tt(v))throw new TypeError("The parameter k must be an integer number")}else v=0;var S=t,x=0;jt(y)&&(S=e.find(t,[y,y])||t,x=e.convert(0,y));var _=v>0?v:0,M=v<0?-v:0,w=p[0],C=p[1],P=Math.min(w-M,C-_),D;if(yt(m)){if(m.length!==P)throw new Error("Invalid value array length");D=function(J){return m[J]}}else if(ot(m)){var R=m.size();if(R.length!==1||R[0]!==P)throw new Error("Invalid matrix length");D=function(J){return m.get([J])}}else D=function(){return m};for(var W=[],G=[],k=[],L=0;L<C;L++){k.push(W.length);var q=L-_;if(q>=0&&q<P){var Y=D(q);S(Y,x)||(G.push(q+M),W.push(Y))}}return k.push(W.length),new i({values:W,index:G,ptr:k,size:[w,C]})},i.prototype.swapRows=function(p,m){if(!nt(p)||!tt(p)||!nt(m)||!tt(m))throw new Error("Row index must be positive integers");if(this._size.length!==2)throw new Error("Only two dimensional matrix is supported");return Et(p,this._size[0]),Et(m,this._size[0]),i._swapRows(p,m,this._size[1],this._values,this._index,this._ptr),this},i._forEachRow=function(p,m,v,b,y){for(var S=b[p],x=b[p+1],_=S;_<x;_++)y(v[_],m[_])},i._swapRows=function(p,m,v,b,y,S){for(var x=0;x<v;x++){var _=S[x],M=S[x+1],w=s(p,_,M,y),C=s(m,_,M,y);if(w<M&&C<M&&y[w]===p&&y[C]===m){if(b){var P=b[w];b[w]=b[C],b[C]=P}continue}if(w<M&&y[w]===p&&(C>=M||y[C]!==m)){var D=b?b[w]:void 0;y.splice(C,0,m),b&&b.splice(C,0,D),y.splice(C<=w?w+1:w,1),b&&b.splice(C<=w?w+1:w,1);continue}if(C<M&&y[C]===m&&(w>=M||y[w]!==p)){var R=b?b[C]:void 0;y.splice(w,0,p),b&&b.splice(w,0,R),y.splice(w<=C?C+1:C,1),b&&b.splice(w<=C?C+1:C,1)}}},i},{isClass:!0});var fm="number",dm=["typed"];function gm(r){var e=r.match(/(0[box])([0-9a-fA-F]*)\.([0-9a-fA-F]*)/);if(e){var t={"0b":2,"0o":8,"0x":16}[e[1]],n=e[2],i=e[3];return{input:r,radix:t,integerPart:n,fractionalPart:i}}else return null}function mm(r){for(var e=parseInt(r.integerPart,r.radix),t=0,n=0;n<r.fractionalPart.length;n++){var i=parseInt(r.fractionalPart[n],r.radix);t+=i/Math.pow(r.radix,n+1)}var o=e+t;if(isNaN(o))throw new SyntaxError('String "'+r.input+'" is not a valid number');return o}var Co=N(fm,dm,r=>{var{typed:e}=r,t=e("number",{"":function(){return 0},number:function(i){return i},string:function(i){if(i==="NaN")return NaN;var o=gm(i);if(o)return mm(o);var a=0,c=i.match(/(0[box][0-9a-fA-F]*)i([0-9]*)/);c&&(a=Number(c[2]),i=c[1]);var l=Number(i);if(isNaN(l))throw new SyntaxError('String "'+i+'" is not a valid number');if(c){if(l>2**a-1)throw new SyntaxError('String "'.concat(i,'" is out of range'));l>=2**(a-1)&&(l=l-2**a)}return l},BigNumber:function(i){return i.toNumber()},bigint:function(i){return Number(i)},Fraction:function(i){return i.valueOf()},Unit:e.referToSelf(n=>i=>{var o=i.clone();return o.value=n(i.value),o}),null:function(i){return 0},"Unit, string | Unit":function(i,o){return i.toNumber(o)},"Array | Matrix":e.referToSelf(n=>i=>_t(i,n))});return t.fromJSON=function(n){return parseFloat(n.value)},t});var ym="bignumber",vm=["typed","BigNumber"],Ao=N(ym,vm,r=>{var{typed:e,BigNumber:t}=r;return e("bignumber",{"":function(){return new t(0)},number:function(i){return new t(i+"")},string:function(i){var o=i.match(/(0[box][0-9a-fA-F]*)i([0-9]*)/);if(o){var a=o[2],c=t(o[1]),l=new t(2).pow(Number(a));if(c.gt(l.sub(1)))throw new SyntaxError('String "'.concat(i,'" is out of range'));var s=new t(2).pow(Number(a)-1);return c.gte(s)?c.sub(l):c}return new t(i)},BigNumber:function(i){return i},bigint:function(i){return new t(i.toString())},Unit:e.referToSelf(n=>i=>{var o=i.clone();return o.value=n(i.value),o}),Fraction:function(i){return new t(i.n).div(i.d).times(i.s)},null:function(i){return new t(0)},"Array | Matrix":e.referToSelf(n=>i=>_t(i,n))})});var _m="fraction",xm=["typed","Fraction"],Po=N(_m,xm,r=>{var{typed:e,Fraction:t}=r;return e("fraction",{number:function(i){if(!isFinite(i)||isNaN(i))throw new Error(i+" cannot be represented as a fraction");return new t(i)},string:function(i){return new t(i)},"number, number":function(i,o){return new t(i,o)},null:function(i){return new t(0)},BigNumber:function(i){return new t(i.toString())},bigint:function(i){return new t(i.toString())},Fraction:function(i){return i},Unit:e.referToSelf(n=>i=>{var o=i.clone();return o.value=n(i.value),o}),Object:function(i){return new t(i)},"Array | Matrix":e.referToSelf(n=>i=>_t(i,n))})});var dl="matrix",Em=["typed","Matrix","DenseMatrix","SparseMatrix"],Do=N(dl,Em,r=>{var{typed:e,Matrix:t,DenseMatrix:n,SparseMatrix:i}=r;return e(dl,{"":function(){return o([])},string:function(c){return o([],c)},"string, string":function(c,l){return o([],c,l)},Array:function(c){return o(c)},Matrix:function(c){return o(c,c.storage())},"Array | Matrix, string":o,"Array | Matrix, string, string":o});function o(a,c,l){if(c==="dense"||c==="default"||c===void 0)return new n(a,l);if(c==="sparse")return new i(a,l);throw new TypeError("Unknown matrix type "+JSON.stringify(c)+".")}});var gl="unaryMinus",bm=["typed"],Io=N(gl,bm,r=>{var{typed:e}=r;return e(gl,{number:xo,"Complex | BigNumber | Fraction":t=>t.neg(),bigint:t=>-t,Unit:e.referToSelf(t=>n=>{var i=n.clone();return i.value=e.find(t,i.valueType())(n.value),i}),"Array | Matrix":e.referToSelf(t=>n=>_t(n,t,!0))})});var ml="abs",Sm=["typed"],Ro=N(ml,Sm,r=>{var{typed:e}=r;return e(ml,{number:mo,"Complex | BigNumber | Fraction | Unit":t=>t.abs(),bigint:t=>t<0n?-t:t,"Array | Matrix":e.referToSelf(t=>n=>_t(n,t,!0))})});var yl="addScalar",Mm=["typed"],No=N(yl,Mm,r=>{var{typed:e}=r;return e(yl,{"number, number":yo,"Complex, Complex":function(n,i){return n.add(i)},"BigNumber, BigNumber":function(n,i){return n.plus(i)},"bigint, bigint":function(n,i){return n+i},"Fraction, Fraction":function(n,i){return n.add(i)},"Unit, Unit":e.referToSelf(t=>(n,i)=>{if(n.value===null||n.value===void 0)throw new Error("Parameter x contains a unit with undefined value");if(i.value===null||i.value===void 0)throw new Error("Parameter y contains a unit with undefined value");if(!n.equalBase(i))throw new Error("Units do not match");var o=n.clone();return o.value=e.find(t,[o.valueType(),i.valueType()])(o.value,i.value),o.fixPrefix=!1,o})})});var vl="subtractScalar",wm=["typed"],Lo=N(vl,wm,r=>{var{typed:e}=r;return e(vl,{"number, number":vo,"Complex, Complex":function(n,i){return n.sub(i)},"BigNumber, BigNumber":function(n,i){return n.minus(i)},"bigint, bigint":function(n,i){return n-i},"Fraction, Fraction":function(n,i){return n.sub(i)},"Unit, Unit":e.referToSelf(t=>(n,i)=>{if(n.value===null||n.value===void 0)throw new Error("Parameter x contains a unit with undefined value");if(i.value===null||i.value===void 0)throw new Error("Parameter y contains a unit with undefined value");if(!n.equalBase(i))throw new Error("Units do not match");var o=n.clone();return o.value=e.find(t,[o.valueType(),i.valueType()])(o.value,i.value),o.fixPrefix=!1,o})})});var Tm="matAlgo11xS0s",Cm=["typed","equalScalar"],De=N(Tm,Cm,r=>{var{typed:e,equalScalar:t}=r;return function(i,o,a,c){var l=i._values,s=i._index,u=i._ptr,h=i._size,f=i._datatype;if(!l)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var d=h[0],g=h[1],p,m=t,v=0,b=a;typeof f=="string"&&(p=f,m=e.find(t,[p,p]),v=e.convert(0,p),o=e.convert(o,p),b=e.find(a,[p,p]));for(var y=[],S=[],x=[],_=0;_<g;_++){x[_]=S.length;for(var M=u[_],w=u[_+1],C=M;C<w;C++){var P=s[C],D=c?b(o,l[C]):b(l[C],o);m(D,v)||(S.push(P),y.push(D))}}return x[g]=S.length,i.createSparseMatrix({values:y,index:S,ptr:x,size:[d,g],datatype:p})}});var Am="matAlgo12xSfs",Pm=["typed","DenseMatrix"],Nn=N(Am,Pm,r=>{var{typed:e,DenseMatrix:t}=r;return function(i,o,a,c){var l=i._values,s=i._index,u=i._ptr,h=i._size,f=i._datatype;if(!l)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var d=h[0],g=h[1],p,m=a;typeof f=="string"&&(p=f,o=e.convert(o,p),m=e.find(a,[p,p]));for(var v=[],b=[],y=[],S=0;S<g;S++){for(var x=S+1,_=u[S],M=u[S+1],w=_;w<M;w++){var C=s[w];b[C]=l[w],y[C]=x}for(var P=0;P<d;P++)S===0&&(v[P]=[]),y[P]===x?v[P][S]=c?m(o,b[P]):m(b[P],o):v[P][S]=c?m(o,0):m(0,o)}return new t({data:v,size:[d,g],datatype:p})}});var Dm="matAlgo14xDs",Im=["typed"],Ie=N(Dm,Im,r=>{var{typed:e}=r;return function(i,o,a,c){var l=i._data,s=i._size,u=i._datatype,h,f=a;typeof u=="string"&&(h=u,o=e.convert(o,h),f=e.find(a,[h,h]));var d=s.length>0?t(f,0,s,s[0],l,o,c):[];return i.createDenseMatrix({data:d,size:ft(s),datatype:h})};function t(n,i,o,a,c,l,s){var u=[];if(i===o.length-1)for(var h=0;h<a;h++)u[h]=s?n(l,c[h]):n(c[h],l);else for(var f=0;f<a;f++)u[f]=t(n,i+1,o,o[i+1],c[f],l,s);return u}});var Oo="ceil",Rm=["typed","config","round","matrix","equalScalar","zeros","DenseMatrix"],Nm=N(Oo,["typed","config","round"],r=>{var{typed:e,config:t,round:n}=r;return e(Oo,{number:function(o){return fe(o,n(o),t.relTol,t.absTol)?n(o):Math.ceil(o)},"number, number":function(o,a){if(fe(o,n(o,a),t.relTol,t.absTol))return n(o,a);var[c,l]="".concat(o,"e").split("e"),s=Math.ceil(Number("".concat(c,"e").concat(Number(l)+a)));return[c,l]="".concat(s,"e").split("e"),Number("".concat(c,"e").concat(Number(l)-a))}})}),Fo=N(Oo,Rm,r=>{var{typed:e,config:t,round:n,matrix:i,equalScalar:o,zeros:a,DenseMatrix:c}=r,l=De({typed:e,equalScalar:o}),s=Nn({typed:e,DenseMatrix:c}),u=Ie({typed:e}),h=Nm({typed:e,config:t,round:n});return e("ceil",{number:h.signatures.number,"number,number":h.signatures["number,number"],Complex:function(d){return d.ceil()},"Complex, number":function(d,g){return d.ceil(g)},"Complex, BigNumber":function(d,g){return d.ceil(g.toNumber())},BigNumber:function(d){return Qe(d,n(d),t.relTol,t.absTol)?n(d):d.ceil()},"BigNumber, BigNumber":function(d,g){return Qe(d,n(d,g),t.relTol,t.absTol)?n(d,g):d.toDecimalPlaces(g.toNumber(),Jn.ROUND_CEIL)},Fraction:function(d){return d.ceil()},"Fraction, number":function(d,g){return d.ceil(g)},"Fraction, BigNumber":function(d,g){return d.ceil(g.toNumber())},"Array | Matrix":e.referToSelf(f=>d=>_t(d,f,!0)),"Array, number | BigNumber":e.referToSelf(f=>(d,g)=>_t(d,p=>f(p,g),!0)),"SparseMatrix, number | BigNumber":e.referToSelf(f=>(d,g)=>l(d,g,f,!1)),"DenseMatrix, number | BigNumber":e.referToSelf(f=>(d,g)=>u(d,g,f,!1)),"number | Complex | Fraction | BigNumber, Array":e.referToSelf(f=>(d,g)=>u(i(g),d,f,!0).valueOf()),"number | Complex | Fraction | BigNumber, Matrix":e.referToSelf(f=>(d,g)=>o(d,0)?a(g.size(),g.storage()):g.storage()==="dense"?u(g,d,f,!0):s(g,d,f,!0))})});var _l="exp",Lm=["typed"],Uo=N(_l,Lm,r=>{var{typed:e}=r;return e(_l,{number:Eo,Complex:function(n){return n.exp()},BigNumber:function(n){return n.exp()}})});var Om="matAlgo02xDS0",Fm=["typed","equalScalar"],xl=N(Om,Fm,r=>{var{typed:e,equalScalar:t}=r;return function(i,o,a,c){var l=i._data,s=i._size,u=i._datatype||i.getDataType(),h=o._values,f=o._index,d=o._ptr,g=o._size,p=o._datatype||o._data===void 0?o._datatype:o.getDataType();if(s.length!==g.length)throw new Q(s.length,g.length);if(s[0]!==g[0]||s[1]!==g[1])throw new RangeError("Dimension mismatch. Matrix A ("+s+") must match Matrix B ("+g+")");if(!h)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var m=s[0],v=s[1],b,y=t,S=0,x=a;typeof u=="string"&&u===p&&u!=="mixed"&&(b=u,y=e.find(t,[b,b]),S=e.convert(0,b),x=e.find(a,[b,b]));for(var _=[],M=[],w=[],C=0;C<v;C++){w[C]=M.length;for(var P=d[C],D=d[C+1],R=P;R<D;R++){var W=f[R],G=c?x(h[R],l[W][C]):x(l[W][C],h[R]);y(G,S)||(M.push(W),_.push(G))}}return w[v]=M.length,o.createSparseMatrix({values:_,index:M,ptr:w,size:[m,v],datatype:u===i._datatype&&p===o._datatype?b:void 0})}});var Um="matAlgo03xDSf",Bm=["typed"],El=N(Um,Bm,r=>{var{typed:e}=r;return function(n,i,o,a){var c=n._data,l=n._size,s=n._datatype||n.getDataType(),u=i._values,h=i._index,f=i._ptr,d=i._size,g=i._datatype||i._data===void 0?i._datatype:i.getDataType();if(l.length!==d.length)throw new Q(l.length,d.length);if(l[0]!==d[0]||l[1]!==d[1])throw new RangeError("Dimension mismatch. Matrix A ("+l+") must match Matrix B ("+d+")");if(!u)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var p=l[0],m=l[1],v,b=0,y=o;typeof s=="string"&&s===g&&s!=="mixed"&&(v=s,b=e.convert(0,v),y=e.find(o,[v,v]));for(var S=[],x=0;x<p;x++)S[x]=[];for(var _=[],M=[],w=0;w<m;w++){for(var C=w+1,P=f[w],D=f[w+1],R=P;R<D;R++){var W=h[R];_[W]=a?y(u[R],c[W][w]):y(c[W][w],u[R]),M[W]=C}for(var G=0;G<p;G++)M[G]===C?S[G][w]=_[G]:S[G][w]=a?y(b,c[G][w]):y(c[G][w],b)}return n.createDenseMatrix({data:S,size:[p,m],datatype:s===n._datatype&&g===i._datatype?v:void 0})}});var zm="matAlgo13xDD",Gm=["typed"],bl=N(zm,Gm,r=>{var{typed:e}=r;return function(i,o,a){var c=i._data,l=i._size,s=i._datatype,u=o._data,h=o._size,f=o._datatype,d=[];if(l.length!==h.length)throw new Q(l.length,h.length);for(var g=0;g<l.length;g++){if(l[g]!==h[g])throw new RangeError("Dimension mismatch. Matrix A ("+l+") must match Matrix B ("+h+")");d[g]=l[g]}var p,m=a;typeof s=="string"&&s===f&&(p=s,m=e.find(a,[p,p]));var v=d.length>0?t(m,0,d,d[0],c,u):[];return i.createDenseMatrix({data:v,size:d,datatype:p})};function t(n,i,o,a,c,l){var s=[];if(i===o.length-1)for(var u=0;u<a;u++)s[u]=n(c[u],l[u]);else for(var h=0;h<a;h++)s[h]=t(n,i+1,o,o[i+1],c[h],l[h]);return s}});function Dt(r,e){if(he(r.size(),e.size()))return[r,e];var t=ho(r.size(),e.size());return[r,e].map(n=>km(n,t))}function km(r,e){return he(r.size(),e)?r:r.create(er(r.valueOf(),e),r.datatype())}var Vm="matrixAlgorithmSuite",Hm=["typed","matrix"],di=N(Vm,Hm,r=>{var{typed:e,matrix:t}=r,n=bl({typed:e}),i=Ie({typed:e});return function(a){var c=a.elop,l=a.SD||a.DS,s;c?(s={"DenseMatrix, DenseMatrix":(d,g)=>n(...Dt(d,g),c),"Array, Array":(d,g)=>n(...Dt(t(d),t(g)),c).valueOf(),"Array, DenseMatrix":(d,g)=>n(...Dt(t(d),g),c),"DenseMatrix, Array":(d,g)=>n(...Dt(d,t(g)),c)},a.SS&&(s["SparseMatrix, SparseMatrix"]=(d,g)=>a.SS(...Dt(d,g),c,!1)),a.DS&&(s["DenseMatrix, SparseMatrix"]=(d,g)=>a.DS(...Dt(d,g),c,!1),s["Array, SparseMatrix"]=(d,g)=>a.DS(...Dt(t(d),g),c,!1)),l&&(s["SparseMatrix, DenseMatrix"]=(d,g)=>l(...Dt(g,d),c,!0),s["SparseMatrix, Array"]=(d,g)=>l(...Dt(t(g),d),c,!0))):(s={"DenseMatrix, DenseMatrix":e.referToSelf(d=>(g,p)=>n(...Dt(g,p),d)),"Array, Array":e.referToSelf(d=>(g,p)=>n(...Dt(t(g),t(p)),d).valueOf()),"Array, DenseMatrix":e.referToSelf(d=>(g,p)=>n(...Dt(t(g),p),d)),"DenseMatrix, Array":e.referToSelf(d=>(g,p)=>n(...Dt(g,t(p)),d))},a.SS&&(s["SparseMatrix, SparseMatrix"]=e.referToSelf(d=>(g,p)=>a.SS(...Dt(g,p),d,!1))),a.DS&&(s["DenseMatrix, SparseMatrix"]=e.referToSelf(d=>(g,p)=>a.DS(...Dt(g,p),d,!1)),s["Array, SparseMatrix"]=e.referToSelf(d=>(g,p)=>a.DS(...Dt(t(g),p),d,!1))),l&&(s["SparseMatrix, DenseMatrix"]=e.referToSelf(d=>(g,p)=>l(...Dt(p,g),d,!0)),s["SparseMatrix, Array"]=e.referToSelf(d=>(g,p)=>l(...Dt(t(p),g),d,!0))));var u=a.scalar||"any",h=a.Ds||a.Ss;h&&(c?(s["DenseMatrix,"+u]=(d,g)=>i(d,g,c,!1),s[u+", DenseMatrix"]=(d,g)=>i(g,d,c,!0),s["Array,"+u]=(d,g)=>i(t(d),g,c,!1).valueOf(),s[u+", Array"]=(d,g)=>i(t(g),d,c,!0).valueOf()):(s["DenseMatrix,"+u]=e.referToSelf(d=>(g,p)=>i(g,p,d,!1)),s[u+", DenseMatrix"]=e.referToSelf(d=>(g,p)=>i(p,g,d,!0)),s["Array,"+u]=e.referToSelf(d=>(g,p)=>i(t(g),p,d,!1).valueOf()),s[u+", Array"]=e.referToSelf(d=>(g,p)=>i(t(p),g,d,!0).valueOf())));var f=a.sS!==void 0?a.sS:a.Ss;return c?(a.Ss&&(s["SparseMatrix,"+u]=(d,g)=>a.Ss(d,g,c,!1)),f&&(s[u+", SparseMatrix"]=(d,g)=>f(g,d,c,!0))):(a.Ss&&(s["SparseMatrix,"+u]=e.referToSelf(d=>(g,p)=>a.Ss(g,p,d,!1))),f&&(s[u+", SparseMatrix"]=e.referToSelf(d=>(g,p)=>f(p,g,d,!0)))),c&&c.signatures&&Kr(s,c.signatures),s}});var Wm="matAlgo01xDSid",qm=["typed"],Sl=N(Wm,qm,r=>{var{typed:e}=r;return function(n,i,o,a){var c=n._data,l=n._size,s=n._datatype||n.getDataType(),u=i._values,h=i._index,f=i._ptr,d=i._size,g=i._datatype||i._data===void 0?i._datatype:i.getDataType();if(l.length!==d.length)throw new Q(l.length,d.length);if(l[0]!==d[0]||l[1]!==d[1])throw new RangeError("Dimension mismatch. Matrix A ("+l+") must match Matrix B ("+d+")");if(!u)throw new Error("Cannot perform operation on Dense Matrix and Pattern Sparse Matrix");var p=l[0],m=l[1],v=typeof s=="string"&&s!=="mixed"&&s===g?s:void 0,b=v?e.find(o,[v,v]):o,y,S,x=[];for(y=0;y<p;y++)x[y]=[];var _=[],M=[];for(S=0;S<m;S++){for(var w=S+1,C=f[S],P=f[S+1],D=C;D<P;D++)y=h[D],_[y]=a?b(u[D],c[y][S]):b(c[y][S],u[D]),M[y]=w;for(y=0;y<p;y++)M[y]===w?x[y][S]=_[y]:x[y][S]=c[y][S]}return n.createDenseMatrix({data:x,size:[p,m],datatype:s===n._datatype&&g===i._datatype?v:void 0})}});var Xm="matAlgo04xSidSid",jm=["typed","equalScalar"],Ml=N(Xm,jm,r=>{var{typed:e,equalScalar:t}=r;return function(i,o,a){var c=i._values,l=i._index,s=i._ptr,u=i._size,h=i._datatype||i._data===void 0?i._datatype:i.getDataType(),f=o._values,d=o._index,g=o._ptr,p=o._size,m=o._datatype||o._data===void 0?o._datatype:o.getDataType();if(u.length!==p.length)throw new Q(u.length,p.length);if(u[0]!==p[0]||u[1]!==p[1])throw new RangeError("Dimension mismatch. Matrix A ("+u+") must match Matrix B ("+p+")");var v=u[0],b=u[1],y,S=t,x=0,_=a;typeof h=="string"&&h===m&&h!=="mixed"&&(y=h,S=e.find(t,[y,y]),x=e.convert(0,y),_=e.find(a,[y,y]));var M=c&&f?[]:void 0,w=[],C=[],P=c&&f?[]:void 0,D=c&&f?[]:void 0,R=[],W=[],G,k,L,q,Y;for(k=0;k<b;k++){C[k]=w.length;var j=k+1;for(q=s[k],Y=s[k+1],L=q;L<Y;L++)G=l[L],w.push(G),R[G]=j,P&&(P[G]=c[L]);for(q=g[k],Y=g[k+1],L=q;L<Y;L++)if(G=d[L],R[G]===j){if(P){var J=_(P[G],f[L]);S(J,x)?R[G]=null:P[G]=J}}else w.push(G),W[G]=j,D&&(D[G]=f[L]);if(P&&D)for(L=C[k];L<w.length;)G=w[L],R[G]===j?(M[L]=P[G],L++):W[G]===j?(M[L]=D[G],L++):w.splice(L,1)}return C[b]=w.length,i.createSparseMatrix({values:M,index:w,ptr:C,size:[v,b],datatype:h===i._datatype&&m===o._datatype?y:void 0})}});var Ym="matAlgo10xSids",$m=["typed","DenseMatrix"],wl=N(Ym,$m,r=>{var{typed:e,DenseMatrix:t}=r;return function(i,o,a,c){var l=i._values,s=i._index,u=i._ptr,h=i._size,f=i._datatype;if(!l)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var d=h[0],g=h[1],p,m=a;typeof f=="string"&&(p=f,o=e.convert(o,p),m=e.find(a,[p,p]));for(var v=[],b=[],y=[],S=0;S<g;S++){for(var x=S+1,_=u[S],M=u[S+1],w=_;w<M;w++){var C=s[w];b[C]=l[w],y[C]=x}for(var P=0;P<d;P++)S===0&&(v[P]=[]),y[P]===x?v[P][S]=c?m(o,b[P]):m(b[P],o):v[P][S]=o}return new t({data:v,size:[d,g],datatype:p})}});var Tl="log2",Zm=["typed","config","Complex"],Bo=N(Tl,Zm,r=>{var{typed:e,config:t,Complex:n}=r;return e(Tl,{number:function(a){return a>=0||t.predictable?bo(a):i(new n(a,0))},Complex:i,BigNumber:function(a){return!a.isNegative()||t.predictable?a.log(2):i(new n(a.toNumber(),0))},"Array | Matrix":e.referToSelf(o=>a=>_t(a,o))});function i(o){var a=Math.sqrt(o.re*o.re+o.im*o.im);return new n(Math.log2?Math.log2(a):Math.log(a)/Math.LN2,Math.atan2(o.im,o.re)/Math.LN2)}});var Km="multiplyScalar",Jm=["typed"],zo=N(Km,Jm,r=>{var{typed:e}=r;return e("multiplyScalar",{"number, number":_o,"Complex, Complex":function(n,i){return n.mul(i)},"BigNumber, BigNumber":function(n,i){return n.times(i)},"bigint, bigint":function(n,i){return n*i},"Fraction, Fraction":function(n,i){return n.mul(i)},"number | Fraction | BigNumber | Complex, Unit":(t,n)=>n.multiply(t),"Unit, number | Fraction | BigNumber | Complex | Unit":(t,n)=>t.multiply(n)})});var Cl="multiply",Qm=["typed","matrix","addScalar","multiplyScalar","equalScalar","dot"],Go=N(Cl,Qm,r=>{var{typed:e,matrix:t,addScalar:n,multiplyScalar:i,equalScalar:o,dot:a}=r,c=De({typed:e,equalScalar:o}),l=Ie({typed:e});function s(x,_){switch(x.length){case 1:switch(_.length){case 1:if(x[0]!==_[0])throw new RangeError("Dimension mismatch in multiplication. Vectors must have the same length");break;case 2:if(x[0]!==_[0])throw new RangeError("Dimension mismatch in multiplication. Vector length ("+x[0]+") must match Matrix rows ("+_[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+_.length+" dimensions)")}break;case 2:switch(_.length){case 1:if(x[1]!==_[0])throw new RangeError("Dimension mismatch in multiplication. Matrix columns ("+x[1]+") must match Vector length ("+_[0]+")");break;case 2:if(x[1]!==_[0])throw new RangeError("Dimension mismatch in multiplication. Matrix A columns ("+x[1]+") must match Matrix B rows ("+_[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+_.length+" dimensions)")}break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix A has "+x.length+" dimensions)")}}function u(x,_,M){if(M===0)throw new Error("Cannot multiply two empty vectors");return a(x,_)}function h(x,_){if(_.storage()!=="dense")throw new Error("Support for SparseMatrix not implemented");return f(x,_)}function f(x,_){var M=x._data,w=x._size,C=x._datatype||x.getDataType(),P=_._data,D=_._size,R=_._datatype||_.getDataType(),W=w[0],G=D[1],k,L=n,q=i;C&&R&&C===R&&typeof C=="string"&&C!=="mixed"&&(k=C,L=e.find(n,[k,k]),q=e.find(i,[k,k]));for(var Y=[],j=0;j<G;j++){for(var J=q(M[0],P[0][j]),lt=1;lt<W;lt++)J=L(J,q(M[lt],P[lt][j]));Y[j]=J}return x.createDenseMatrix({data:Y,size:[G],datatype:C===x._datatype&&R===_._datatype?k:void 0})}var d=e("_multiplyMatrixVector",{"DenseMatrix, any":p,"SparseMatrix, any":b}),g=e("_multiplyMatrixMatrix",{"DenseMatrix, DenseMatrix":m,"DenseMatrix, SparseMatrix":v,"SparseMatrix, DenseMatrix":y,"SparseMatrix, SparseMatrix":S});function p(x,_){var M=x._data,w=x._size,C=x._datatype||x.getDataType(),P=_._data,D=_._datatype||_.getDataType(),R=w[0],W=w[1],G,k=n,L=i;C&&D&&C===D&&typeof C=="string"&&C!=="mixed"&&(G=C,k=e.find(n,[G,G]),L=e.find(i,[G,G]));for(var q=[],Y=0;Y<R;Y++){for(var j=M[Y],J=L(j[0],P[0]),lt=1;lt<W;lt++)J=k(J,L(j[lt],P[lt]));q[Y]=J}return x.createDenseMatrix({data:q,size:[R],datatype:C===x._datatype&&D===_._datatype?G:void 0})}function m(x,_){var M=x._data,w=x._size,C=x._datatype||x.getDataType(),P=_._data,D=_._size,R=_._datatype||_.getDataType(),W=w[0],G=w[1],k=D[1],L,q=n,Y=i;C&&R&&C===R&&typeof C=="string"&&C!=="mixed"&&C!=="mixed"&&(L=C,q=e.find(n,[L,L]),Y=e.find(i,[L,L]));for(var j=[],J=0;J<W;J++){var lt=M[J];j[J]=[];for(var at=0;at<k;at++){for(var pt=Y(lt[0],P[0][at]),Tt=1;Tt<G;Tt++)pt=q(pt,Y(lt[Tt],P[Tt][at]));j[J][at]=pt}}return x.createDenseMatrix({data:j,size:[W,k],datatype:C===x._datatype&&R===_._datatype?L:void 0})}function v(x,_){var M=x._data,w=x._size,C=x._datatype||x.getDataType(),P=_._values,D=_._index,R=_._ptr,W=_._size,G=_._datatype||_._data===void 0?_._datatype:_.getDataType();if(!P)throw new Error("Cannot multiply Dense Matrix times Pattern only Matrix");var k=w[0],L=W[1],q,Y=n,j=i,J=o,lt=0;C&&G&&C===G&&typeof C=="string"&&C!=="mixed"&&(q=C,Y=e.find(n,[q,q]),j=e.find(i,[q,q]),J=e.find(o,[q,q]),lt=e.convert(0,q));for(var at=[],pt=[],Tt=[],wt=_.createSparseMatrix({values:at,index:pt,ptr:Tt,size:[k,L],datatype:C===x._datatype&&G===_._datatype?q:void 0}),St=0;St<L;St++){Tt[St]=pt.length;var xt=R[St],$t=R[St+1];if($t>xt)for(var Mt=0,gt=0;gt<k;gt++){for(var se=gt+1,Ot=void 0,ct=xt;ct<$t;ct++){var It=D[ct];Mt!==se?(Ot=j(M[gt][It],P[ct]),Mt=se):Ot=Y(Ot,j(M[gt][It],P[ct]))}Mt===se&&!J(Ot,lt)&&(pt.push(gt),at.push(Ot))}}return Tt[L]=pt.length,wt}function b(x,_){var M=x._values,w=x._index,C=x._ptr,P=x._datatype||x._data===void 0?x._datatype:x.getDataType();if(!M)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var D=_._data,R=_._datatype||_.getDataType(),W=x._size[0],G=_._size[0],k=[],L=[],q=[],Y,j=n,J=i,lt=o,at=0;P&&R&&P===R&&typeof P=="string"&&P!=="mixed"&&(Y=P,j=e.find(n,[Y,Y]),J=e.find(i,[Y,Y]),lt=e.find(o,[Y,Y]),at=e.convert(0,Y));var pt=[],Tt=[];q[0]=0;for(var wt=0;wt<G;wt++){var St=D[wt];if(!lt(St,at))for(var xt=C[wt],$t=C[wt+1],Mt=xt;Mt<$t;Mt++){var gt=w[Mt];Tt[gt]?pt[gt]=j(pt[gt],J(St,M[Mt])):(Tt[gt]=!0,L.push(gt),pt[gt]=J(St,M[Mt]))}}for(var se=L.length,Ot=0;Ot<se;Ot++){var ct=L[Ot];k[Ot]=pt[ct]}return q[1]=L.length,x.createSparseMatrix({values:k,index:L,ptr:q,size:[W,1],datatype:P===x._datatype&&R===_._datatype?Y:void 0})}function y(x,_){var M=x._values,w=x._index,C=x._ptr,P=x._datatype||x._data===void 0?x._datatype:x.getDataType();if(!M)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var D=_._data,R=_._datatype||_.getDataType(),W=x._size[0],G=_._size[0],k=_._size[1],L,q=n,Y=i,j=o,J=0;P&&R&&P===R&&typeof P=="string"&&P!=="mixed"&&(L=P,q=e.find(n,[L,L]),Y=e.find(i,[L,L]),j=e.find(o,[L,L]),J=e.convert(0,L));for(var lt=[],at=[],pt=[],Tt=x.createSparseMatrix({values:lt,index:at,ptr:pt,size:[W,k],datatype:P===x._datatype&&R===_._datatype?L:void 0}),wt=[],St=[],xt=0;xt<k;xt++){pt[xt]=at.length;for(var $t=xt+1,Mt=0;Mt<G;Mt++){var gt=D[Mt][xt];if(!j(gt,J))for(var se=C[Mt],Ot=C[Mt+1],ct=se;ct<Ot;ct++){var It=w[ct];St[It]!==$t?(St[It]=$t,at.push(It),wt[It]=Y(gt,M[ct])):wt[It]=q(wt[It],Y(gt,M[ct]))}}for(var zt=pt[xt],be=at.length,ke=zt;ke<be;ke++){var Un=at[ke];lt[ke]=wt[Un]}}return pt[k]=at.length,Tt}function S(x,_){var M=x._values,w=x._index,C=x._ptr,P=x._datatype||x._data===void 0?x._datatype:x.getDataType(),D=_._values,R=_._index,W=_._ptr,G=_._datatype||_._data===void 0?_._datatype:_.getDataType(),k=x._size[0],L=_._size[1],q=M&&D,Y,j=n,J=i;P&&G&&P===G&&typeof P=="string"&&P!=="mixed"&&(Y=P,j=e.find(n,[Y,Y]),J=e.find(i,[Y,Y]));for(var lt=q?[]:void 0,at=[],pt=[],Tt=x.createSparseMatrix({values:lt,index:at,ptr:pt,size:[k,L],datatype:P===x._datatype&&G===_._datatype?Y:void 0}),wt=q?[]:void 0,St=[],xt,$t,Mt,gt,se,Ot,ct,It,zt=0;zt<L;zt++){pt[zt]=at.length;var be=zt+1;for(se=W[zt],Ot=W[zt+1],gt=se;gt<Ot;gt++)if(It=R[gt],q)for($t=C[It],Mt=C[It+1],xt=$t;xt<Mt;xt++)ct=w[xt],St[ct]!==be?(St[ct]=be,at.push(ct),wt[ct]=J(D[gt],M[xt])):wt[ct]=j(wt[ct],J(D[gt],M[xt]));else for($t=C[It],Mt=C[It+1],xt=$t;xt<Mt;xt++)ct=w[xt],St[ct]!==be&&(St[ct]=be,at.push(ct));if(q)for(var ke=pt[zt],Un=at.length,cn=ke;cn<Un;cn++){var ar=at[cn];lt[cn]=wt[ar]}}return pt[L]=at.length,Tt}return e(Cl,i,{"Array, Array":e.referTo("Matrix, Matrix",x=>(_,M)=>{s(st(_),st(M));var w=x(t(_),t(M));return ot(w)?w.valueOf():w}),"Matrix, Matrix":function(_,M){var w=_.size(),C=M.size();return s(w,C),w.length===1?C.length===1?u(_,M,w[0]):h(_,M):C.length===1?d(_,M):g(_,M)},"Matrix, Array":e.referTo("Matrix,Matrix",x=>(_,M)=>x(_,t(M))),"Array, Matrix":e.referToSelf(x=>(_,M)=>x(t(_,M.storage()),M)),"SparseMatrix, any":function(_,M){return c(_,M,i,!1)},"DenseMatrix, any":function(_,M){return l(_,M,i,!1)},"any, SparseMatrix":function(_,M){return c(M,_,i,!0)},"any, DenseMatrix":function(_,M){return l(M,_,i,!0)},"Array, any":function(_,M){return l(t(_),M,i,!1).valueOf()},"any, Array":function(_,M){return l(t(M),_,i,!0).valueOf()},"any, any":i,"any, any, ...any":e.referToSelf(x=>(_,M,w)=>{for(var C=x(_,M),P=0;P<w.length;P++)C=x(C,w[P]);return C})})});var ty="matAlgo07xSSf",ey=["typed","DenseMatrix"],Al=N(ty,ey,r=>{var{typed:e,DenseMatrix:t}=r;return function(o,a,c){var l=o._size,s=o._datatype||o._data===void 0?o._datatype:o.getDataType(),u=a._size,h=a._datatype||a._data===void 0?a._datatype:a.getDataType();if(l.length!==u.length)throw new Q(l.length,u.length);if(l[0]!==u[0]||l[1]!==u[1])throw new RangeError("Dimension mismatch. Matrix A ("+l+") must match Matrix B ("+u+")");var f=l[0],d=l[1],g,p=0,m=c;typeof s=="string"&&s===h&&s!=="mixed"&&(g=s,p=e.convert(0,g),m=e.find(c,[g,g]));var v,b,y=[];for(v=0;v<f;v++)y[v]=[];var S=[],x=[],_=[],M=[];for(b=0;b<d;b++){var w=b+1;for(n(o,b,_,S,w),n(a,b,M,x,w),v=0;v<f;v++){var C=_[v]===w?S[v]:p,P=M[v]===w?x[v]:p;y[v][b]=m(C,P)}}return new t({data:y,size:[f,d],datatype:s===o._datatype&&h===a._datatype?g:void 0})};function n(i,o,a,c,l){for(var s=i._values,u=i._index,h=i._ptr,f=h[o],d=h[o+1];f<d;f++){var g=u[f];a[g]=l,c[g]=s[f]}}});var Pl="conj",ny=["typed"],ko=N(Pl,ny,r=>{var{typed:e}=r;return e(Pl,{"number | BigNumber | Fraction":t=>t,Complex:t=>t.conjugate(),"Array | Matrix":e.referToSelf(t=>n=>_t(n,t))})});var Dl="concat",ry=["typed","matrix","isInteger"],Vo=N(Dl,ry,r=>{var{typed:e,matrix:t,isInteger:n}=r;return e(Dl,{"...Array | Matrix | number | BigNumber":function(o){var a,c=o.length,l=-1,s,u=!1,h=[];for(a=0;a<c;a++){var f=o[a];if(ot(f)&&(u=!0),nt(f)||it(f)){if(a!==c-1)throw new Error("Dimension must be specified as last argument");if(s=l,l=f.valueOf(),!n(l))throw new TypeError("Integer number expected for dimension");if(l<0||a>0&&l>s)throw new xe(l,s+1)}else{var d=ft(f).valueOf(),g=st(d);if(h[a]=d,s=l,l=g.length-1,a>0&&l!==s)throw new Q(s+1,l+1)}}if(h.length===0)throw new SyntaxError("At least one matrix expected");for(var p=h.shift();h.length;)p=co(p,h.shift(),l);return u?t(p):p},"...string":function(o){return o.join("")}})});var Il="identity",iy=["typed","config","matrix","BigNumber","DenseMatrix","SparseMatrix"],Ho=N(Il,iy,r=>{var{typed:e,config:t,matrix:n,BigNumber:i,DenseMatrix:o,SparseMatrix:a}=r;return e(Il,{"":function(){return t.matrix==="Matrix"?n([]):[]},string:function(u){return n(u)},"number | BigNumber":function(u){return l(u,u,t.matrix==="Matrix"?"dense":void 0)},"number | BigNumber, string":function(u,h){return l(u,u,h)},"number | BigNumber, number | BigNumber":function(u,h){return l(u,h,t.matrix==="Matrix"?"dense":void 0)},"number | BigNumber, number | BigNumber, string":function(u,h,f){return l(u,h,f)},Array:function(u){return c(u)},"Array, string":function(u,h){return c(u,h)},Matrix:function(u){return c(u.valueOf(),u.storage())},"Matrix, string":function(u,h){return c(u.valueOf(),h)}});function c(s,u){switch(s.length){case 0:return u?n(u):[];case 1:return l(s[0],s[0],u);case 2:return l(s[0],s[1],u);default:throw new Error("Vector containing two values expected")}}function l(s,u,h){var f=it(s)||it(u)?i:null;if(it(s)&&(s=s.toNumber()),it(u)&&(u=u.toNumber()),!tt(s)||s<1)throw new Error("Parameters in function identity must be positive integers");if(!tt(u)||u<1)throw new Error("Parameters in function identity must be positive integers");var d=f?new i(1):1,g=f?new f(0):0,p=[s,u];if(h){if(h==="sparse")return a.diagonal(p,d,0,g);if(h==="dense")return o.diagonal(p,d,0,g);throw new TypeError('Unknown matrix type "'.concat(h,'"'))}for(var m=un([],p,g),v=s<u?s:u,b=0;b<v;b++)m[b][b]=d;return m}});function Rl(){throw new Error('No "bignumber" implementation available')}function Nl(){throw new Error('No "fraction" implementation available')}function Ll(){throw new Error('No "matrix" implementation available')}var Ol="reshape",oy=["typed","isInteger","matrix"],Wo=N(Ol,oy,r=>{var{typed:e,isInteger:t}=r;return e(Ol,{"Matrix, Array":function(i,o){return i.reshape(o,!0)},"Array, Array":function(i,o){return o.forEach(function(a){if(!t(a))throw new TypeError("Invalid size for dimension: "+a)}),Qn(i,o)}})});var Fl="size",sy=["typed","config","?matrix"],qo=N(Fl,sy,r=>{var{typed:e,config:t,matrix:n}=r;return e(Fl,{Matrix:function(o){return o.create(o.size(),"number")},Array:st,string:function(o){return t.matrix==="Array"?[o.length]:n([o.length],"dense","number")},"number | Complex | BigNumber | Unit | boolean | null":function(o){return t.matrix==="Array"?[]:n?n([],"dense","number"):Ll()}})});var Ul="zeros",ay=["typed","config","matrix","BigNumber"],Xo=N(Ul,ay,r=>{var{typed:e,config:t,matrix:n,BigNumber:i}=r;return e(Ul,{"":function(){return t.matrix==="Array"?o([]):o([],"default")},"...number | BigNumber | string":function(s){var u=s[s.length-1];if(typeof u=="string"){var h=s.pop();return o(s,h)}else return t.matrix==="Array"?o(s):o(s,"default")},Array:o,Matrix:function(s){var u=s.storage();return o(s.valueOf(),u)},"Array | Matrix, string":function(s,u){return o(s.valueOf(),u)}});function o(l,s){var u=a(l),h=u?new i(0):0;if(c(l),s){var f=n(s);return l.length>0?f.resize(l,h):f}else{var d=[];return l.length>0?un(d,l,h):d}}function a(l){var s=!1;return l.forEach(function(u,h,f){it(u)&&(s=!0,f[h]=u.toNumber())}),s}function c(l){l.forEach(function(s){if(typeof s!="number"||!tt(s)||s<0)throw new Error("Parameters in function zeros must be positive integers")})}});var Bl="fft",uy=["typed","matrix","addScalar","multiplyScalar","divideScalar","exp","tau","i","dotDivide","conj","pow","ceil","log2"],jo=N(Bl,uy,r=>{var{typed:e,matrix:t,addScalar:n,multiplyScalar:i,divideScalar:o,exp:a,tau:c,i:l,dotDivide:s,conj:u,pow:h,ceil:f,log2:d}=r;return e(Bl,{Array:g,Matrix:function(y){return y.create(g(y.valueOf()),y.datatype())}});function g(b){var y=st(b);return y.length===1?v(b,y[0]):p(b.map(S=>g(S,y.slice(1))),0)}function p(b,y){var S=st(b);if(y!==0)return new Array(S[0]).fill(0).map((_,M)=>p(b[M],y-1));if(S.length===1)return v(b);function x(_){var M=st(_);return new Array(M[1]).fill(0).map((w,C)=>new Array(M[0]).fill(0).map((P,D)=>_[D][C]))}return x(p(x(b),1))}function m(b){for(var y=b.length,S=a(o(i(-1,i(l,c)),y)),x=[],_=1-y;_<y;_++)x.push(h(S,o(h(_,2),2)));for(var M=h(2,f(d(y+y-1))),w=[...new Array(y).fill(0).map((L,q)=>i(b[q],x[y-1+q])),...new Array(M-y).fill(0)],C=[...new Array(y+y-1).fill(0).map((L,q)=>o(1,x[q])),...new Array(M-(y+y-1)).fill(0)],P=v(w),D=v(C),R=new Array(M).fill(0).map((L,q)=>i(P[q],D[q])),W=s(u(g(u(R))),M),G=[],k=y-1;k<y+y-1;k++)G.push(i(W[k],x[k]));return G}function v(b){var y=b.length;if(y===1)return[b[0]];if(y%2===0){for(var S=[...v(b.filter((w,C)=>C%2===0),y/2),...v(b.filter((w,C)=>C%2===1),y/2)],x=0;x<y/2;x++){var _=S[x],M=i(S[x+y/2],a(i(i(c,l),o(-x,y))));S[x]=n(_,M),S[x+y/2]=n(_,i(-1,M))}return S}else return m(b)}});function Yo(r,e,t){var n;return String(r).includes("Unexpected type")?(n=arguments.length>2?" (type: "+Ut(t)+", value: "+JSON.stringify(t)+")":" (type: "+r.data.actual+")",new TypeError("Cannot calculate "+e+", unexpected type of argument"+n)):String(r).includes("complex numbers")?(n=arguments.length>2?" (type: "+Ut(t)+", value: "+JSON.stringify(t)+")":"",new TypeError("Cannot calculate "+e+", no ordering relation is defined for complex numbers"+n)):r}var ly="numeric",cy=["number","?bignumber","?fraction"],$o=N(ly,cy,r=>{var{number:e,bignumber:t,fraction:n}=r,i={string:!0,number:!0,BigNumber:!0,Fraction:!0},o={number:a=>e(a),BigNumber:t?a=>t(a):Rl,bigint:a=>BigInt(a),Fraction:n?a=>n(a):Nl};return function(c){var l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"number",s=arguments.length>2?arguments[2]:void 0;if(s!==void 0)throw new SyntaxError("numeric() takes one or two arguments");var u=Ut(c);if(!(u in i))throw new TypeError("Cannot convert "+c+' of type "'+u+'"; valid input types are '+Object.keys(i).join(", "));if(!(l in o))throw new TypeError("Cannot convert "+c+' to type "'+l+'"; valid output types are '+Object.keys(o).join(", "));return l===u?c:o[l](c)}});var zl="divideScalar",hy=["typed","numeric"],Zo=N(zl,hy,r=>{var{typed:e,numeric:t}=r;return e(zl,{"number, number":function(i,o){return i/o},"Complex, Complex":function(i,o){return i.div(o)},"BigNumber, BigNumber":function(i,o){return i.div(o)},"bigint, bigint":function(i,o){return i/o},"Fraction, Fraction":function(i,o){return i.div(o)},"Unit, number | Complex | Fraction | BigNumber | Unit":(n,i)=>n.divide(i),"number | Fraction | Complex | BigNumber, Unit":(n,i)=>i.divideInto(n)})});var Gl="pow",py=["typed","config","identity","multiply","matrix","inv","fraction","number","Complex"],Ko=N(Gl,py,r=>{var{typed:e,config:t,identity:n,multiply:i,matrix:o,inv:a,number:c,fraction:l,Complex:s}=r;return e(Gl,{"number, number":u,"Complex, Complex":function(g,p){return g.pow(p)},"BigNumber, BigNumber":function(g,p){return p.isInteger()||g>=0||t.predictable?g.pow(p):new s(g.toNumber(),0).pow(p.toNumber(),0)},"bigint, bigint":(d,g)=>d**g,"Fraction, Fraction":function(g,p){var m=g.pow(p);if(m!=null)return m;if(t.predictable)throw new Error("Result of pow is non-rational and cannot be expressed as a fraction");return u(g.valueOf(),p.valueOf())},"Array, number":h,"Array, BigNumber":function(g,p){return h(g,p.toNumber())},"Matrix, number":f,"Matrix, BigNumber":function(g,p){return f(g,p.toNumber())},"Unit, number | BigNumber":function(g,p){return g.pow(p)}});function u(d,g){if(t.predictable&&!tt(g)&&d<0)try{var p=l(g),m=c(p);if((g===m||Math.abs((g-m)/g)<1e-14)&&p.d%2===1)return(p.n%2===0?1:-1)*Math.pow(-d,g)}catch{}return t.predictable&&(d<-1&&g===1/0||d>-1&&d<0&&g===-1/0)?NaN:tt(g)||d>=0||t.predictable?So(d,g):d*d<1&&g===1/0||d*d>1&&g===-1/0?0:new s(d,0).pow(g,0)}function h(d,g){if(!tt(g))throw new TypeError("For A^b, b must be an integer (value is "+g+")");var p=st(d);if(p.length!==2)throw new Error("For A^b, A must be 2 dimensional (A has "+p.length+" dimensions)");if(p[0]!==p[1])throw new Error("For A^b, A must be square (size is "+p[0]+"x"+p[1]+")");if(g<0)try{return h(a(d),-g)}catch(b){throw b.message==="Cannot calculate inverse, determinant is zero"?new TypeError("For A^b, when A is not invertible, b must be a positive integer (value is "+g+")"):b}for(var m=n(p[0]).valueOf(),v=d;g>=1;)(g&1)===1&&(m=i(v,m)),g>>=1,v=i(v,v);return m}function f(d,g){return o(h(d.valueOf(),g))}});var Ln="Number of decimals in function round must be an integer",kl="round",fy=["typed","config","matrix","equalScalar","zeros","BigNumber","DenseMatrix"],Jo=N(kl,fy,r=>{var{typed:e,config:t,matrix:n,equalScalar:i,zeros:o,BigNumber:a,DenseMatrix:c}=r,l=De({typed:e,equalScalar:i}),s=Nn({typed:e,DenseMatrix:c}),u=Ie({typed:e});function h(f){return Math.abs(Cn(f).exponent)}return e(kl,{number:function(d){var g=Rn(d,h(t.relTol)),p=fe(d,g,t.relTol,t.absTol)?g:d;return Rn(p)},"number, number":function(d,g){var p=h(t.relTol);if(g>=p)return Rn(d,g);var m=Rn(d,p),v=fe(d,m,t.relTol,t.absTol)?m:d;return Rn(v,g)},"number, BigNumber":function(d,g){if(!g.isInteger())throw new TypeError(Ln);return new a(d).toDecimalPlaces(g.toNumber())},Complex:function(d){return d.round()},"Complex, number":function(d,g){if(g%1)throw new TypeError(Ln);return d.round(g)},"Complex, BigNumber":function(d,g){if(!g.isInteger())throw new TypeError(Ln);var p=g.toNumber();return d.round(p)},BigNumber:function(d){var g=new a(d).toDecimalPlaces(h(t.relTol)),p=Qe(d,g,t.relTol,t.absTol)?g:d;return p.toDecimalPlaces(0)},"BigNumber, BigNumber":function(d,g){if(!g.isInteger())throw new TypeError(Ln);var p=h(t.relTol);if(g>=p)return d.toDecimalPlaces(g.toNumber());var m=d.toDecimalPlaces(p),v=Qe(d,m,t.relTol,t.absTol)?m:d;return v.toDecimalPlaces(g.toNumber())},Fraction:function(d){return d.round()},"Fraction, number":function(d,g){if(g%1)throw new TypeError(Ln);return d.round(g)},"Fraction, BigNumber":function(d,g){if(!g.isInteger())throw new TypeError(Ln);return d.round(g.toNumber())},"Unit, number, Unit":e.referToSelf(f=>function(d,g,p){var m=d.toNumeric(p);return p.multiply(f(m,g))}),"Unit, BigNumber, Unit":e.referToSelf(f=>(d,g,p)=>f(d,g.toNumber(),p)),"Unit, Unit":e.referToSelf(f=>(d,g)=>f(d,0,g)),"Array | Matrix, number, Unit":e.referToSelf(f=>(d,g,p)=>_t(d,m=>f(m,g,p),!0)),"Array | Matrix, BigNumber, Unit":e.referToSelf(f=>(d,g,p)=>f(d,g.toNumber(),p)),"Array | Matrix, Unit":e.referToSelf(f=>(d,g)=>f(d,0,g)),"Array | Matrix":e.referToSelf(f=>d=>_t(d,f,!0)),"SparseMatrix, number | BigNumber":e.referToSelf(f=>(d,g)=>l(d,g,f,!1)),"DenseMatrix, number | BigNumber":e.referToSelf(f=>(d,g)=>u(d,g,f,!1)),"Array, number | BigNumber":e.referToSelf(f=>(d,g)=>u(n(d),g,f,!1).valueOf()),"number | Complex | BigNumber | Fraction, SparseMatrix":e.referToSelf(f=>(d,g)=>i(d,0)?o(g.size(),g.storage()):s(g,d,f,!0)),"number | Complex | BigNumber | Fraction, DenseMatrix":e.referToSelf(f=>(d,g)=>i(d,0)?o(g.size(),g.storage()):u(g,d,f,!0)),"number | Complex | BigNumber | Fraction, Array":e.referToSelf(f=>(d,g)=>u(n(g),d,f,!0).valueOf())})});var Vl="dotDivide",dy=["typed","matrix","equalScalar","divideScalar","DenseMatrix","concat"],Qo=N(Vl,dy,r=>{var{typed:e,matrix:t,equalScalar:n,divideScalar:i,DenseMatrix:o,concat:a}=r,c=xl({typed:e,equalScalar:n}),l=El({typed:e}),s=Al({typed:e,DenseMatrix:o}),u=De({typed:e,equalScalar:n}),h=Nn({typed:e,DenseMatrix:o}),f=di({typed:e,matrix:t,concat:a});return e(Vl,f({elop:i,SS:s,DS:l,SD:c,Ss:u,sS:h}))});function Hl(r){var e=0,t=1,n=Object.create(null),i=Object.create(null),o=0,a=function(l){var s=i[l];if(s&&(delete n[s],delete i[l],--e,t===s)){if(!e){o=0,t=1;return}for(;!Object.prototype.hasOwnProperty.call(n,++t););}};return r=Math.abs(r),{hit:function(l){var s=i[l],u=++o;if(n[u]=l,i[l]=u,!s)return++e,e<=r?void 0:(l=n[t],a(l),l);if(delete n[s],t===s)for(;!Object.prototype.hasOwnProperty.call(n,++t););},delete:a,clear:function(){e=o=0,t=1,n=Object.create(null),i=Object.create(null)}}}function rr(r){var{hasher:e,limit:t}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return t=t??Number.POSITIVE_INFINITY,e=e??JSON.stringify,function n(){typeof n.cache!="object"&&(n.cache={values:new Map,lru:Hl(t||Number.POSITIVE_INFINITY)});for(var i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];var a=e(i);if(n.cache.values.has(a))return n.cache.lru.hit(a),n.cache.values.get(a);var c=r.apply(r,i);return n.cache.values.set(a,c),n.cache.values.delete(n.cache.lru.hit(a)),c}}var gy=rr(function(r){return new r(1).exp()},{hasher:gi}),my=rr(function(r){return new r(1).plus(new r(5).sqrt()).div(2)},{hasher:gi}),Wl=rr(function(r){return r.acos(-1)},{hasher:gi}),ql=rr(function(r){return Wl(r).times(2)},{hasher:gi});function gi(r){return r[0].precision}var Xl="add",yy=["typed","matrix","addScalar","equalScalar","DenseMatrix","SparseMatrix","concat"],ts=N(Xl,yy,r=>{var{typed:e,matrix:t,addScalar:n,equalScalar:i,DenseMatrix:o,SparseMatrix:a,concat:c}=r,l=Sl({typed:e}),s=Ml({typed:e,equalScalar:i}),u=wl({typed:e,DenseMatrix:o}),h=di({typed:e,matrix:t,concat:c});return e(Xl,{"any, any":n,"any, any, ...any":e.referToSelf(f=>(d,g,p)=>{for(var m=f(d,g),v=0;v<p.length;v++)m=f(m,p[v]);return m})},h({elop:n,DS:l,SS:s,Ss:u}))});var jl="dot",vy=["typed","addScalar","multiplyScalar","conj","size"],es=N(jl,vy,r=>{var{typed:e,addScalar:t,multiplyScalar:n,conj:i,size:o}=r;return e(jl,{"Array | DenseMatrix, Array | DenseMatrix":c,"SparseMatrix, SparseMatrix":l});function a(u,h){var f=s(u),d=s(h),g,p;if(f.length===1)g=f[0];else if(f.length===2&&f[1]===1)g=f[0];else throw new RangeError("Expected a column vector, instead got a matrix of size ("+f.join(", ")+")");if(d.length===1)p=d[0];else if(d.length===2&&d[1]===1)p=d[0];else throw new RangeError("Expected a column vector, instead got a matrix of size ("+d.join(", ")+")");if(g!==p)throw new RangeError("Vectors must have equal length ("+g+" != "+p+")");if(g===0)throw new RangeError("Cannot calculate the dot product of empty vectors");return g}function c(u,h){var f=a(u,h),d=ot(u)?u._data:u,g=ot(u)?u._datatype||u.getDataType():void 0,p=ot(h)?h._data:h,m=ot(h)?h._datatype||h.getDataType():void 0,v=s(u).length===2,b=s(h).length===2,y=t,S=n;if(g&&m&&g===m&&typeof g=="string"&&g!=="mixed"){var x=g;y=e.find(t,[x,x]),S=e.find(n,[x,x])}if(!v&&!b){for(var _=S(i(d[0]),p[0]),M=1;M<f;M++)_=y(_,S(i(d[M]),p[M]));return _}if(!v&&b){for(var w=S(i(d[0]),p[0][0]),C=1;C<f;C++)w=y(w,S(i(d[C]),p[C][0]));return w}if(v&&!b){for(var P=S(i(d[0][0]),p[0]),D=1;D<f;D++)P=y(P,S(i(d[D][0]),p[D]));return P}if(v&&b){for(var R=S(i(d[0][0]),p[0][0]),W=1;W<f;W++)R=y(R,S(i(d[W][0]),p[W][0]));return R}}function l(u,h){a(u,h);for(var f=u._index,d=u._values,g=h._index,p=h._values,m=0,v=t,b=n,y=0,S=0;y<f.length&&S<g.length;){var x=f[y],_=g[S];if(x<_){y++;continue}if(x>_){S++;continue}x===_&&(m=v(m,b(d[y],p[S])),y++,S++)}return m}function s(u){return ot(u)?u.size():o(u)}});var Yl="det",_y=["typed","matrix","subtractScalar","multiply","divideScalar","isZero","unaryMinus"],ns=N(Yl,_y,r=>{var{typed:e,matrix:t,subtractScalar:n,multiply:i,divideScalar:o,isZero:a,unaryMinus:c}=r;return e(Yl,{any:function(u){return ft(u)},"Array | Matrix":function(u){var h;switch(ot(u)?h=u.size():Array.isArray(u)?(u=t(u),h=u.size()):h=[],h.length){case 0:return ft(u);case 1:if(h[0]===1)return ft(u.valueOf()[0]);if(h[0]===0)return 1;throw new RangeError("Matrix must be square (size: "+vt(h)+")");case 2:{var f=h[0],d=h[1];if(f===d)return l(u.clone().valueOf(),f,d);if(d===0)return 1;throw new RangeError("Matrix must be square (size: "+vt(h)+")")}default:throw new RangeError("Matrix must be two dimensional (size: "+vt(h)+")")}}});function l(s,u,h){if(u===1)return ft(s[0][0]);if(u===2)return n(i(s[0][0],s[1][1]),i(s[1][0],s[0][1]));for(var f=!1,d=new Array(u).fill(0).map((M,w)=>w),g=0;g<u;g++){var p=d[g];if(a(s[p][g])){var m=void 0;for(m=g+1;m<u;m++)if(!a(s[d[m]][g])){p=d[m],d[m]=d[g],d[g]=p,f=!f;break}if(m===u)return s[p][g]}for(var v=s[p][g],b=g===0?1:s[d[g-1]][g-1],y=g+1;y<u;y++)for(var S=d[y],x=g+1;x<u;x++)s[S][x]=o(n(i(s[S][x],v),i(s[S][g],s[p][x])),b)}var _=s[d[u-1]][u-1];return f?c(_):_}});var $l="inv",xy=["typed","matrix","divideScalar","addScalar","multiply","unaryMinus","det","identity","abs"],rs=N($l,xy,r=>{var{typed:e,matrix:t,divideScalar:n,addScalar:i,multiply:o,unaryMinus:a,det:c,identity:l,abs:s}=r;return e($l,{"Array | Matrix":function(f){var d=ot(f)?f.size():st(f);switch(d.length){case 1:if(d[0]===1)return ot(f)?t([n(1,f.valueOf()[0])]):[n(1,f[0])];throw new RangeError("Matrix must be square (size: "+vt(d)+")");case 2:{var g=d[0],p=d[1];if(g===p)return ot(f)?t(u(f.valueOf(),g,p),f.storage()):u(f,g,p);throw new RangeError("Matrix must be square (size: "+vt(d)+")")}default:throw new RangeError("Matrix must be two dimensional (size: "+vt(d)+")")}},any:function(f){return n(1,f)}});function u(h,f,d){var g,p,m,v,b;if(f===1){if(v=h[0][0],v===0)throw Error("Cannot calculate inverse, determinant is zero");return[[n(1,v)]]}else if(f===2){var y=c(h);if(y===0)throw Error("Cannot calculate inverse, determinant is zero");return[[n(h[1][1],y),n(a(h[0][1]),y)],[n(a(h[1][0]),y),n(h[0][0],y)]]}else{var S=h.concat();for(g=0;g<f;g++)S[g]=S[g].concat();for(var x=l(f).valueOf(),_=0;_<d;_++){var M=s(S[_][_]),w=_;for(g=_+1;g<f;)s(S[g][_])>M&&(M=s(S[g][_]),w=g),g++;if(M===0)throw Error("Cannot calculate inverse, determinant is zero");g=w,g!==_&&(b=S[_],S[_]=S[g],S[g]=b,b=x[_],x[_]=x[g],x[g]=b);var C=S[_],P=x[_];for(g=0;g<f;g++){var D=S[g],R=x[g];if(g!==_){if(D[_]!==0){for(m=n(a(D[_]),C[_]),p=_;p<d;p++)D[p]=i(D[p],o(m,C[p]));for(p=0;p<d;p++)R[p]=i(R[p],o(m,P[p]))}}else{for(m=C[_],p=_;p<d;p++)D[p]=n(D[p],m);for(p=0;p<d;p++)R[p]=n(R[p],m)}}}return x}}});var Ey="divide",by=["typed","matrix","multiply","equalScalar","divideScalar","inv"],is=N(Ey,by,r=>{var{typed:e,matrix:t,multiply:n,equalScalar:i,divideScalar:o,inv:a}=r,c=De({typed:e,equalScalar:i}),l=Ie({typed:e});return e("divide",Kr({"Array | Matrix, Array | Matrix":function(u,h){return n(u,a(h))},"DenseMatrix, any":function(u,h){return l(u,h,o,!1)},"SparseMatrix, any":function(u,h){return c(u,h,o,!1)},"Array, any":function(u,h){return l(t(u),h,o,!1).valueOf()},"any, Array | Matrix":function(u,h){return n(u,a(h))}},o.signatures))});var Zl="mean",Sy=["typed","add","divide"],os=N(Zl,Sy,r=>{var{typed:e,add:t,divide:n}=r;return e(Zl,{"Array | Matrix":o,"Array | Matrix, number | BigNumber":i,"...":function(c){if(al(c))throw new TypeError("Scalar values expected in function mean");return o(c)}});function i(a,c){try{var l=ul(a,c,t),s=Array.isArray(a)?st(a):a.size();return n(l,s[c])}catch(u){throw Yo(u,"mean")}}function o(a){var c,l=0;if(fo(a,function(s){try{c=c===void 0?s:t(c,s),l++}catch(u){throw Yo(u,"mean",s)}}),l===0)throw new Error("Cannot calculate the mean of an empty array");return n(c,l)}});var ss=Kl("tau",["config","?BigNumber"],r=>{var{config:e,BigNumber:t}=r;return e.number==="BigNumber"?ql(t):cl});var as=Kl("i",["Complex"],r=>{var{Complex:e}=r;return e.I});function Kl(r,e,t){return N(r,e,t,{recreateOnConfigChange:!0})}var On=eo({config:pe}),mi=ro({});var Jl=oo({}),zy=as({Complex:mi});var us=so({});var Gy=ss({BigNumber:On,config:pe});var ln=po({Matrix:us});var rt=Yi({BigNumber:On,Complex:mi,DenseMatrix:ln,Fraction:Jl});var ky=Ro({typed:rt});var ir=No({typed:rt});var Ql=ko({typed:rt});var tn=wo({config:pe,typed:rt});var Vy=Uo({typed:rt});var tc=go({typed:rt});var Hy=Mo({equalScalar:tn,typed:rt});var Wy=Bo({Complex:mi,config:pe,typed:rt});var ls=zo({typed:rt});var ec=Co({typed:rt});var cs=To({Matrix:us,equalScalar:tn,typed:rt});var qy=Lo({typed:rt});var Xy=Ao({BigNumber:On,typed:rt});var nc=Io({typed:rt});var rc=Po({Fraction:Jl,typed:rt});var Yt=Do({DenseMatrix:ln,Matrix:us,SparseMatrix:cs,typed:rt});var jy=$o({bignumber:Xy,fraction:rc,number:ec});var ic=Wo({isInteger:tc,matrix:Yt,typed:rt}),Yy=qo({matrix:Yt,config:pe,typed:rt});var oc=Xo({BigNumber:On,config:pe,matrix:Yt,typed:rt});var sc=Vo({isInteger:tc,matrix:Yt,typed:rt});var or=Zo({numeric:jy,typed:rt}),$y=Qo({DenseMatrix:ln,concat:sc,divideScalar:or,equalScalar:tn,matrix:Yt,typed:rt});var ac=Ho({BigNumber:On,DenseMatrix:ln,SparseMatrix:cs,config:pe,matrix:Yt,typed:rt});var Zy=Jo({BigNumber:On,DenseMatrix:ln,config:pe,equalScalar:tn,matrix:Yt,typed:rt,zeros:oc});var Ky=ts({DenseMatrix:ln,SparseMatrix:cs,addScalar:ir,concat:sc,equalScalar:tn,matrix:Yt,typed:rt});var Jy=es({addScalar:ir,conj:Ql,multiplyScalar:ls,size:Yy,typed:rt});var Fn=Go({addScalar:ir,dot:Jy,equalScalar:tn,matrix:Yt,multiplyScalar:ls,typed:rt});var Qy=Fo({DenseMatrix:ln,config:pe,equalScalar:tn,matrix:Yt,round:Zy,typed:rt,zeros:oc});var tv=ns({divideScalar:or,isZero:Hy,matrix:Yt,multiply:Fn,subtractScalar:qy,typed:rt,unaryMinus:nc});var uc=rs({abs:ky,addScalar:ir,det:tv,divideScalar:or,identity:ac,matrix:Yt,multiply:Fn,typed:rt,unaryMinus:nc});var ev=Ko({Complex:mi,config:pe,fraction:rc,identity:ac,inv:uc,matrix:Yt,multiply:Fn,number:ec,typed:rt});var lc=jo({addScalar:ir,ceil:Qy,conj:Ql,divideScalar:or,dotDivide:$y,exp:Vy,i:zy,log2:Wy,matrix:Yt,multiplyScalar:ls,pow:ev,tau:Gy,typed:rt});var nv=is({divideScalar:or,equalScalar:tn,inv:uc,matrix:Yt,multiply:Fn,typed:rt});var cc=os({add:Ky,divide:nv,typed:rt});var yi=class{NumParticle;reSampNumParticle;initial_xy_uncertainty;initial_yaw_uncertainty;step_noise_sigma;yaw_noise_sigma;compass_update_interval;sigmaCompass;delta_yaw;sigmaBeacon;unaccess_weight;particle_PosInitFlag;particle_yawInitFlag;xEst;particleX;particleWeight;last_compass_time;last_yaw_compass=0;compass_consecutive_offset_count=0;constructor(e){this.NumParticle=e.NumParticle,this.reSampNumParticle=e.reSampNumParticle,this.initial_xy_uncertainty=e.initial_xy_uncertainty,this.initial_yaw_uncertainty=e.initial_yaw_uncertainty,this.step_noise_sigma=e.step_noise_sigma,this.yaw_noise_sigma=e.yaw_noise_sigma,this.compass_update_interval=e.compass_update_interval,this.sigmaCompass=e.sigmaCompass,this.delta_yaw=e.delta_yaw,this.sigmaBeacon=e.sigmaBeacon,this.unaccess_weight=e.unaccess_weight,this.particle_PosInitFlag=!1,this.particle_yawInitFlag=!1,this.xEst=[[0],[0],[0]],this.particleX=Array.from({length:3},()=>Array(this.NumParticle).fill(0)),this.particleWeight=Array.from({length:1},()=>Array(this.NumParticle).fill(1/this.NumParticle)),this.last_compass_time=0}motionModelRotYaw(e){if(!(Math.abs(e)<.001)){this.last_yaw_compass=jn(this.last_yaw_compass+e);for(let t=0;t<this.NumParticle;t++){let n=Math.random()*this.yaw_noise_sigma;this.particleX[2][t]=this.particleX[2][t]+e+n,this.particleX[2][t]=jn(this.particleX[2][t])}}}motionModelStepLength(e,t){if(e===0)return;for(let i=0;i<this.NumParticle;i++){let o=Math.random()*this.step_noise_sigma;this.particleX[0][i]+=(.65+o)*Math.sin(-this.particleX[2][i]/180*Math.PI),this.particleX[1][i]+=(.65+o)*Math.cos(this.particleX[2][i]/180*Math.PI),t(this.particleX[0][i],this.particleX[1][i])||(this.particleWeight[0][i]*=this.unaccess_weight)}let n=this.particleWeight[0].reduce((i,o)=>i+o,0);this.particleWeight[0]=this.particleWeight[0].map(i=>i/n)}motionModelCompassYaw(e,t){if(t-this.last_compass_time>this.compass_update_interval){let n=360-e;n+=this.delta_yaw,n=jn(n),Math.abs(n-this.last_yaw_compass)>60?this.compass_consecutive_offset_count++:this.compass_consecutive_offset_count=0;for(let o=0;o<this.NumParticle;o++){let a=Math.abs(this.particleX[2][o]-n);a>180&&(a=360-a),this.particleWeight[0][o]*=Yr(a,this.sigmaCompass)}let i=this.particleWeight[0].reduce((o,a)=>o+a,0);this.particleWeight[0]=this.particleWeight[0].map(o=>o/i),this.setLastCompassTime(t)}}resampling(){if(1/this.particleWeight[0].reduce((t,n)=>t+n*n,0)<this.reSampNumParticle){let t=this.particleWeight[0].reduce((c,l,s)=>c.concat(c[s]+l),[0]),i=this.particleWeight[0].map(()=>1/this.NumParticle).map((c,l)=>c+Math.random()/this.NumParticle),o=[],a=0;for(let c=0;c<this.NumParticle;c++){for(;i[c]>t[a];)a++;o.push(a)}this.particleX=this.particleX.map((c,l)=>o.map(s=>c[s])),this.particleWeight[0]=Array(this.NumParticle).fill(1/this.NumParticle)}}update(e,t){for(let i=0;i<this.NumParticle;i++){let o=En(this.particleX[0][i],this.particleX[1][i],e.x,e.y);this.particleWeight[0][i]=Math.max(1e-7,this.particleWeight[0][i]*Yr(o,t))}let n=this.particleWeight[0].reduce((i,o)=>i+o,0);this.particleWeight[0]=this.particleWeight[0].map(i=>i/n)}updateCar(e,t){let n=e.x-this.xEst[0][0],i=e.y-this.xEst[1][0];for(let a=0;a<this.NumParticle;a++){let c=En(this.particleX[0][a],this.particleX[1][a],e.x,e.y);this.particleWeight[0][a]=Math.max(1e-7,this.particleWeight[0][a]*Yr(c,t)),this.particleX[0][a]+=n,this.particleX[1][a]+=i}let o=this.particleWeight[0].reduce((a,c)=>a+c,0);this.particleWeight[0]=this.particleWeight[0].map(a=>a/o)}getPosInitFlag(){return this.particle_PosInitFlag}getYawInitFlag(){return this.particle_yawInitFlag}setPosInitFlag(e){this.particle_PosInitFlag=e}setYawInitFlag(e){this.particle_yawInitFlag=e}getResultX(){let e=ic(this.particleWeight,[this.NumParticle,1]),t=Fn(this.particleX,e);return this.xEst=t,this.xEst[0][0]}getResultY(){return this.xEst[1][0]}getResultYaw(){let e=this.particleWeight[0].indexOf(Math.max(...this.particleWeight[0]));return this.particleX[2][e]}getEstConfidence(){let e=this.particleWeight[0].indexOf(Math.max(...this.particleWeight[0])),t=this.particleWeight[0].indexOf(Math.min(...this.particleWeight[0])),n=[this.particleX[0][e],this.particleX[1][e]],i=[this.particleX[0][t],this.particleX[1][t]],o=En(n[0],n[1],i[0],i[1]),a=o*.67;return console.log(o,a),a}getParticleNum(){return this.NumParticle}getParticleX(){return this.particleX}setLastCompassTime(e){this.last_compass_time=e}getLastCompassTime(){return this.last_compass_time}initParticlesByPos(e,t,n){if(!this.particle_PosInitFlag){this.particleWeight[0]=Array(this.NumParticle).fill(1/this.NumParticle);let i=0;for(;i<this.NumParticle;){let a=(2*Math.random()-1)*this.initial_xy_uncertainty,c=(2*Math.random()-1)*this.initial_xy_uncertainty;n(e+a,t+c)||(this.particleWeight[0][i]*=this.unaccess_weight),this.particleX[0][i]=e+a,this.particleX[1][i]=t+c,i++}let o=this.particleWeight[0].reduce((a,c)=>a+c,0);this.particleWeight[0]=this.particleWeight[0].map(a=>a/o),this.particle_PosInitFlag=!0,this.xEst[0][0]=e,this.xEst[1][0]=t,this.xEst[2][0]=0}}initParticlesByCompass(e){console.log(`Init compass: ${e}`);let t=360-e;t+=this.delta_yaw,t=jn(t),console.log(`Init Yaw: ${t}`);for(let n=0;n<this.NumParticle;n++){let i=(2*Math.random()-1)*this.initial_yaw_uncertainty;this.particleX[2][n]=t+i}this.particle_yawInitFlag=!0,this.xEst[2][0]=t,this.last_yaw_compass=t,this.compass_consecutive_offset_count=0}};var vi=class{fre=100;accH_fifo=[];accH_time_fifo=[];accH_fifo_len=Math.floor(1*this.fre)+1;step_count=0;state_count=0;last_valley_time=0;last_peak_time=0;last_step_time=0;min_step_time=.3;max_step_time=1;min_peak=10.5;max_valley=9.5;peak_num=0;valley_num=0;fft_min_amp=.3;fft_min_fre=0;fft_max_fre=4;last_fft_amp=0;abnor_start_time=0;abnor_fft_detected=!1;abnor_time_threshold=4;abnor_peak_time=0;abnor_peak_accH=0;const_step_length=.65;last_rot=[];delta_rot=[];last_yaw=0;delta_yaw=null;delta_rot_sum_fifo=[];delta_rot_sum_time_fifo=[];delta_yaw_accum=0;delta_yaw_accum_timestamp=0;delta_yaw_time_threshold=.5;last_px=0;last_py=0;delta_px=0;delta_py=0;init(){this.fre=100,this.accH_fifo=[],this.accH_time_fifo=[],this.accH_fifo_len=Math.floor(1*this.fre)+1,this.step_count=0,this.state_count=0,this.last_valley_time=0,this.last_peak_time=0,this.last_step_time=0,this.min_step_time=.3,this.max_step_time=1,this.min_peak=10+.5,this.max_valley=10-.5,this.peak_num=0,this.valley_num=0,this.fft_min_amp=.3,this.fft_min_fre=0,this.fft_max_fre=4,this.last_fft_amp=0,this.abnor_start_time=0,this.abnor_fft_detected=!1,this.abnor_peak_time=0,this.abnor_peak_accH=0,this.const_step_length=.65,this.last_rot=[0,0,0],this.delta_rot=[0,0,0],this.last_yaw=0,this.delta_yaw=null,this.delta_rot_sum_fifo=[],this.delta_rot_sum_time_fifo=[],this.delta_yaw_accum=0,this.delta_yaw_accum_timestamp=0,this.delta_yaw_time_threshold=.5,this.last_px=0,this.last_py=0,this.delta_px=0,this.delta_py=0}reset(){this.init()}setInitPose(e=[0,0]){this.last_px=e[0],this.last_py=e[1],console.info(`pdr init pos: ${this.last_px}, ${this.last_py}`)}setInitYaw(e=0){this.last_yaw=e}getPos(e,t,n){let i=0;return n.length===3&&(this.delta_yaw=this.getDeltaYawFromRot(e,n)),t.length===3&&(i=this.getStepLength(e,t)),i!==0&&(this.last_px+=this.delta_px,this.last_py+=this.delta_py),[this.last_px,this.last_py]}getDeltaPose(){return[this.delta_px,this.delta_py]}getStepLength(e,t){if(t.length<3)return console.warn("acc data less than 3"),0;let n=!1,i=Math.sqrt(Math.pow(t[0],2)+Math.pow(t[1],2)+Math.pow(t[2],2));if(this.accH_fifo.push(i),this.accH_time_fifo.push(e),this.imuFreUpdate(),this.accH_fifo.length<this.accH_fifo_len+1)n=!1;else{for(;this.accH_fifo.length>=this.accH_fifo_len+1;)this.accH_fifo.shift(),this.accH_time_fifo.shift();let o=this.PVStepDetec(),a=this.FFTStepDetec(),c=this.recheckState(),l=this.accH_time_fifo[Math.floor(this.accH_time_fifo.length*3/4)];Math.abs(this.abnor_start_time)<.001&&this.abnor_fft_detected?this.abnor_start_time=l:this.abnor_fft_detected||(this.abnor_start_time=0),o&&a&&c?(this.step_count+=1,this.last_step_time=l,n=!0):Math.abs(this.abnor_start_time)>.001&&this.abnor_peak_time-this.abnor_start_time>this.abnor_time_threshold&&this.step_count>1&&this.abnor_peak_time-this.last_step_time>1?(this.step_count+=1,this.last_step_time=l,n=!0):(l-this.last_step_time>2&&(this.state_count=0),n=!1)}if(n){let o=this.last_yaw/180*Math.PI;return this.delta_px=this.const_step_length*Math.cos(o),this.delta_py=this.const_step_length*Math.sin(o),this.const_step_length}else return 0}imuFreUpdate(){if(this.accH_time_fifo.length>2&&(this.accH_time_fifo[this.accH_time_fifo.length-1]-this.accH_time_fifo[this.accH_time_fifo.length-2]<0||this.accH_time_fifo[this.accH_time_fifo.length-1]-this.accH_time_fifo[this.accH_time_fifo.length-2]>10||this.accH_time_fifo[this.accH_time_fifo.length-1]===this.accH_time_fifo[0])&&(console.warn(`pdr reset last one time ${this.accH_time_fifo[this.accH_time_fifo.length-1]} last two time ${this.accH_time_fifo[this.accH_time_fifo.length-2]}`),this.reset()),this.accH_fifo.length>9||this.fre<15){let e=(this.accH_fifo.length-1)/(this.accH_time_fifo[this.accH_time_fifo.length-1]-this.accH_time_fifo[0]);Math.abs(this.fre-e)>8&&(this.fre=Math.round((e-3)/10)*10,(this.fre<=10||this.fre>=100)&&(console.warn(`Frequency Error ${this.fre}`),this.fre=100),console.debug(`Frequency change to ${this.fre}`),this.accH_fifo_len=Math.floor(1*this.fre)+1)}}recheckState(){return!0}PVStepDetec(){let e=!1,t=this.accH_fifo.slice(Math.floor(this.accH_fifo_len/2)),n=this.accH_time_fifo.slice(Math.floor(this.accH_fifo_len/2)),i=t[Math.floor(t.length/2)],o=n[Math.floor(n.length/2)],a=Math.max(...t),c=Math.min(...t),l=!1,s=!1;return Math.abs(i-c)<.01&&i<this.max_valley&&this.valley_num<=this.peak_num&&(this.last_valley_time===0?s=!0:s=o-this.last_valley_time>this.min_step_time,s&&(this.last_valley_time=o,this.valley_num+=1)),Math.abs(i-a)<.01&&i>this.min_peak&&this.peak_num<=this.valley_num&&(this.last_peak_time===0?l=!0:l=o-this.last_peak_time>this.min_step_time,l&&(this.last_peak_time=o,this.peak_num+=1)),i===a&&i>this.min_peak&&(this.abnor_peak_time=o,this.abnor_peak_accH=i),this.peak_num===this.valley_num&&(l||s)&&(e=!0),e}FFTStepDetec(){return!0}getDeltaYawFromRot(e,t){if(t.length<3)return console.warn("rot data less than 3"),0;let n=[0,0,0];this.last_rot.length===3&&(n=t.map((c,l)=>c-this.last_rot[l]));for(let c=0;c<t.length;c++)n[c]<-180?n[c]+=360:n[c]>180&&(n[c]-=360);let i=.2;this.delta_rot.length===3?this.delta_rot=this.delta_rot.map((c,l)=>i*c+(1-i)*n[l]):this.delta_rot=n,this.last_rot=t,this.delta_yaw=this.delta_rot[0],this.last_yaw+=this.delta_yaw,this.last_yaw=this.limitYaw(this.last_yaw);let o=this.delta_rot.reduce((c,l)=>c+Math.abs(l),0);this.delta_rot_sum_fifo.push(o),this.delta_rot_sum_time_fifo.push(e),Math.abs(this.delta_rot_sum_time_fifo[this.delta_rot_sum_time_fifo.length-1]-this.delta_rot_sum_time_fifo[0])>1&&(this.delta_rot_sum_fifo.shift(),this.delta_rot_sum_time_fifo.shift()),this.delta_yaw_accum+=this.delta_yaw;let a=0;return Math.abs(this.delta_yaw_accum_timestamp-e)>this.delta_yaw_time_threshold?(a=this.delta_yaw_accum,this.delta_yaw_accum=0,this.delta_yaw_accum_timestamp=e,a):null}limitYaw(e){for(;e<-180;)e+=360;for(;e>180;)e-=360;return e}};var _i=class{particleFilter;pdr;sigmaBeacon=5;gps_horizontalAccuracy=10;using_gps=!0;last_beacon_time=null;last_pos_time;position_count=0;gps_max_horizontalAccuracy=20;MaxEstimateErr=5;outTrustRegionNum=0;TrustNum=4;cacheSensorData=[];constructor(){this.particleFilter=new yi({NumParticle:200,reSampNumParticle:.65,initial_xy_uncertainty:12,initial_yaw_uncertainty:100,step_noise_sigma:.5,yaw_noise_sigma:2,compass_update_interval:3e3,sigmaCompass:80,delta_yaw:2,sigmaBeacon:5,unaccess_weight:.7}),this.pdr=new vi}pfFusionPDRiBeacon(e){let{type:t,timestamp:n,res:i}=e,o=!1;if(this.particleFilter.getPosInitFlag()&&this.particleFilter.getYawInitFlag()){if(t==="acceleration"){let a=i,c=this.pdr.getStepLength(n/1e3,a);c!==0&&(this.particleFilter.motionModelStepLength(c,()=>!0),this.particleFilter.resampling(),this.position_count+=1,o=!0)}if(this.using_gps&&t==="gps"&&(this.last_beacon_time===null||n-this.last_beacon_time>5e3)){let a=this.getGpsPosition(i);o=a!==null,a&&(this.particleFilter.update(a,this.gps_horizontalAccuracy),this.resetParticleFilterDist(a),this.particleFilter.resampling(),this.position_count+=1)}if(t==="deviceMotion"){let a=this.pdr.getDeltaYawFromRot(n/1e3,i);a!==null&&this.particleFilter.motionModelRotYaw(a)}t==="compass"&&this.particleFilter.motionModelCompassYaw(i,n),this.last_pos_time&&n-this.last_pos_time>500&&(this.position_count+=1,o=!0)}else if(!this.particleFilter.getPosInitFlag()&&this.using_gps&&t==="gps"){let a=this.getGpsPosition(i);o=a!==null,a?(this.particleFilter.initParticlesByPos(a.x,a.y,()=>!0),this.last_pos_time=n,console.log(`init Pos by gps success time ${n}`),this.cacheSensorData.length=0):console.log(`init Pos by gps fail time ${n}`)}else if(!this.particleFilter.getYawInitFlag()&&t==="compass"){let a=i;this.particleFilter.initParticlesByCompass(a),this.particleFilter.setLastCompassTime(n),console.log(`init yaw by compass success time ${n}`)}else this.cacheSensorData.push(e);return o&&(this.last_pos_time=n),[o,this.particleFilter.getResultX(),this.particleFilter.getResultY()]}setBeaconPosition(e,t){return this.last_beacon_time=t,this.particleFilter.getPosInitFlag()?this.particleFilter.update(e,this.sigmaBeacon):this.particleFilter.initParticlesByPos(e.x,e.y,()=>!0),this.resetParticleFilterDist(e),this.particleFilter.resampling(),this.position_count+=1,this.cacheSensorData.filter(i=>i.timestamp>t).map(i=>this.pfFusionPDRiBeacon(i)),this.cacheSensorData.length=0,[this.particleFilter.getResultX(),this.particleFilter.getResultY()]}getGpsPosition(e){return e[2]>this.gps_max_horizontalAccuracy?null:Ba(e[0],e[1])}resetParticleFilterDist(e){let t=this.particleFilter.getResultX(),n=this.particleFilter.getResultY();En(t,n,e.x,e.y)>this.MaxEstimateErr?(this.outTrustRegionNum+=1,this.outTrustRegionNum>=this.TrustNum&&(console.info(`\u8D85\u51FA\u53EF\u4FE1\u533A\u57DF\uFF0C\u91CD\u7F6E\u7C92\u5B50\u8FC7\u6EE4\u5668\u5230: ${e.x}, ${e.y}`),this.particleFilter.setPosInitFlag(!1),this.particleFilter.setYawInitFlag(!1),this.outTrustRegionNum=0)):this.outTrustRegionNum=0}};var hc=class extends iv{sensor;pdr;_pause=!1;constructor(e={}){super(),this.sensor=new jr(e.sensor),this.pdr=new _i}checkSensor(){return this.sensor.checkSensor()}start(){this.sensor.start(),this.sensor.addEventListener("add-data-item",({item:e})=>{this.getPositionBySensorItem(e,!this._pause)})}pause(){this._pause=!0}continue(){this._pause=!1}getPositionBySensorItem(e,t=!0){let[n,i,o]=this.pdr.pfFusionPDRiBeacon(e);return n&&t&&this.dispatchEvent({type:"position",x:i,y:o,_type:e.type==="gps"?"gps":"pdr"}),[n,i,o]}setBeaconPosition(e,t){let[n,i]=this.pdr.setBeaconPosition(e,t);this.dispatchEvent({type:"position",x:n,y:i,_type:"beacon"})}dispose(){this.sensor.stop()}};async function pc({brand:r,project:e},t){let{apiDomain:n,apiPath:{floorRange:i},apiInfo:o}=t,a=`${n}${i}?brand=${r}&project=${e}&phase=${e}&building=${e}`;return await fetch(a,o).then(l=>l.json()).then(l=>l.data).then(l=>{let s=(l||[])[0];return s&&(s.info=JSON.parse(s.info)),s})}async function fc({brand:r,project:e,floor:t,ts:n,resource_type_list:i},o){let{apiDomain:a,apiPath:{floorGraphic:c},apiInfo:l}=o,s=`${a}${c}?brand=${r}&project=${e}&phase=${e}&building=${e}&floor=${t}&ts=${n}&resource_type_list=${i}`;return await fetch(s,l).then(h=>h.json()).then(h=>h.data).then(h=>((h||[]).map(f=>f.info=JSON.parse(f.info)),h||[]))}async function S2({project:r,floor:e},t){let{apiDomain:n,apiInfo:i}=t,o=`${n}/api/inception-map/external_street/get?projectCode=${r}&floorCode=${e}`;return await fetch(o,i).then(c=>c.json()).then(c=>c.data).then(c=>JSON.parse(c[0].streetInfo||"{}")).then(c=>c.fileId?ov(c.fileId,t):null)}async function ov(r,e){let{apiDomain:t,apiInfo:n}=e;return fetch(`${t}/api/inception-map/file/getFileStream?fileId=${r}`,n).then(i=>i.arrayBuffer()).then(i=>{let a=new TextDecoder("utf-8").decode(i);return a?JSON.parse(a):null})}var Ee;function dc(r="aibee_map"){return new Promise((e,t)=>{if(Ee)return e({db:Ee,type:"success"});let n=indexedDB.open(r);n.onupgradeneeded=function(i){Ee=i.target.result,console.log("onupgradeneeded"),e({db:Ee,type:"onupgradeneeded"})},n.onsuccess=i=>{Ee=i.target.result,e({db:Ee,type:"success"})},n.onerror=i=>{t(i)}})}function gc(r,e,t=Ee){return new Promise((n,i)=>{t||i("\u6CA1\u6709db");let a=t.transaction([r],"readonly").objectStore(r).get(e);a.onsuccess=()=>{a.result?n(a.result.value):n(null)},a.onerror=c=>{console.log("[getVersionByKey]",c),n(null)}})}function mc(r,e,t,n=Ee){return new Promise((i,o)=>(n||o("\u6CA1\u6709db"),new Promise((a,c)=>{let s=n.transaction([r],"readwrite").objectStore(r).add({key:e,value:t});s.onsuccess=function(u){a(u)},s.onerror=function(u){c(u)}})))}function sr(r,e=Ee){e&&(e.objectStoreNames.contains(r)||e.createObjectStore(r,{keyPath:"key"}))}function yc(){Ee?.close(),Ee=null}var vc="data:image/png;base64,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";var _c="data:image/png;base64,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";var xc="data:image/png;base64,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";var U2={loadRoadNetwork:!1},hs="map_version",ps="route_version",fs="map_data",xi="road_network_data",Ec={half:vc,power:_c,mechanical:xc},bc=class{constructor(e){this.bmap=e;this.initDb()}floors=[];async initDb(){try{let{db:e,type:t}=await dc();t==="onupgradeneeded"&&(sr(hs),sr(ps),sr(fs),sr(xi))}catch(e){console.log("[\u6253\u5F00indexDb\u9519\u8BEF]",e)}}async load(e){if(this.clear(),Array.isArray(e))this.floors=e;else{let t=await fetch(e).then(n=>n.json());t.code==="0"&&(this.floors=t.data.list)}}setCacheData(e,t,n){return mc(e,`${t}`,n)}getCacheData(e,t){return gc(e,`${t}`)}getFloorCacheKey(e){return`${e.floor_id}`}async getFloorData(e){let t=this.floors.find(i=>i.floor===e);if(!t)return null;let n=this.getFloorCacheKey(t);try{if(await this.getCacheData(hs,n)===t.version_id){let o=await this.getCacheData(fs,n);if(o)return this.getDataByJson(o)}return this.getFloorDataByFloorInfo(t)}catch{return this.getFloorDataByFloorInfo(t)}}async getFloorDataByFloorInfo(e){let t=this.getFloorCacheKey(e);console.time("zstd_json");let n=await fetch(e.map_url).then(i=>i.json());return n.floor=e.floor,console.timeEnd("zstd_json"),this.setCacheData(fs,t,n),this.setCacheData(hs,t,e.version_id),this.getDataByJson(n)}async getRoadNetworkData(){return(await Promise.all(this.floors.map(async t=>{let n=this.getFloorCacheKey(t);try{if(await this.getCacheData(ps,n)===t.version_id){let a=await this.getCacheData(xi,n);if(a)return a}let o=await fetch(t.route_url).then(a=>a.json());return this.setCacheData(xi,n,o),this.setCacheData(ps,n,t.version_id),o}catch{let i=await fetch(t.route_url).then(o=>o.json());return this.setCacheData(xi,n,i),i}}))).filter(t=>t.points)}async getFacilitiesData(){if(this.floors[0]?.entry_infra_url)return fetch(this.floors[0].entry_infra_url).then(e=>e.json())}async getOtherDataByFreeTime(){}async getMulFloorsData(e){return Promise.all(e.map(t=>this.getFloorData(t))).then(t=>t.filter(n=>n))}async getDataByUrl(e){let t=await fetch(e).then(n=>n.json());return this.getDataByJson(t)}getDataByJson(e){let t=new Ce(this.bmap.context);t.userData.graphics=[],t.userData.graphicMap=new Map;let n=[0,0];return e.layers.forEach(i=>{switch(i.l_type){case"range":let o=i.elements[0];n=[o.center_x,o.center_y];break;case"graph":ee(i.elements,n);let a=[];i.elements.forEach(p=>{p.group==="ground"?t.createGround(p):a.push(p)});let c=a.reduce((p,m)=>{let{fillColor:v,fillOpacity:b,strokeColor:y,strokeOpacity:S,height:x}=m,_=`${v.toLowerCase()}-${b}-${y.toLowerCase()}-${S}-${x}`;return S===0&&(_=`${v.toLowerCase()}-${b}-${x}`),p[_]?p[_].push(m):p[_]=[m],p},{});Object.values(c).forEach(p=>{let m=new Dr(this.bmap.context,p);t.mergeGraphicLayer.add(m)});break;case"ground":ee(i.elements,n);let l=i.elements.map(p=>new Ft(this.bmap.context,p));t.addGrounds(l);break;case"wall":ee(i.elements,n);let s=i.elements.reduce((p,m)=>{let{fillColor:v,fillOpacity:b,strokeColor:y,strokeOpacity:S,height:x}=m,_=`${v.toLowerCase()}-${b}-${y.toLowerCase()}-${S}-${x}`;return S===0&&(_=`${v.toLowerCase()}-${b}-${x}`),p[_]?p[_].push(m):p[_]=[m],p},{});Object.values(s).forEach(p=>{let m=new Cr(this.bmap.context,p);t.wallLayer.add(m)});break;case"lane":ee(i.elements,n);let u=i.elements.reduce((p,m)=>{let{fillColor:v,fillOpacity:b,strokeColor:y,strokeOpacity:S}=m,x=`${v.toLowerCase()}-${b}-${y.toLowerCase()}-${S}`;return S===0&&(x=`${v.toLowerCase()}-${b}`),p[x]?p[x].push(m):p[x]=[m],p},{});Object.values(u).forEach(p=>{let m=new Pr(this.bmap.context,p);t.laneLayer.add(m)});break;case"texture2d":case"texture3d":if(ee(i.elements,n),i.elements.length){let p=new Wn(this.bmap.context,i.elements);t.textureLayer.add(p)}break;case"glb":ee(i.elements,n),i.elements.forEach(p=>{let m=le([p.center_x,p.center_y],n),v=new Ar(this.bmap.context,{...p,url:p.secondUrl,rotate:p.secondRotate,width:p.secondWidth,center_x:m[0],center_y:m[1]});t.glbModelLayer.add(v)});break;case"store":ee(i.elements,n),i.elements.map(p=>{let m=le([p.center_x,p.center_y],n),v=t.addGraphic(p);t.userData.graphics.push(v),t.userData.graphicMap.set(p.id,v);try{let b=new ne(this.bmap.context,{id:p.id,icon:p.poi_info.icon,text:p.poi_info.showName||p.store_name||p.poi_info.text,position:{x:m[0],y:m[1],z:p.airHeight+p.height},icon_size:[18,18]});t.poiLayer2.pushPoi(b),b&&(b.userData.type="store",b.userData.data=p)}catch(b){console.log("\u521B\u5EFA\u5E97\u94FApoi\u5931\u8D25",b,p)}});break;case"facility":ee(i.elements,n),i.elements.map(p=>{let m=le([p.center_x,p.center_y],n),v=t.addGraphic(p);if(t.userData.graphics.push(v),t.userData.graphicMap.set(p.id,v),p.poi_info){let b=new ne(this.bmap.context,{id:p.id,icon:p.poi_info.icon,text:p.poi_info.showName||p.store_name||p.poi_info.text,position:{x:m[0],y:m[1],z:p.airHeight+p.height},icon_size:[18,18]});t.poiLayer2.pushPoi(b),b.userData.type="facility",b.userData.data=p}else console.log("\u6DFB\u52A0facility\u5931\u8D25\u6CA1\u6709poi_info",p)});break;case"parkingSpace":ee(i.elements,n);let h=[],f=new Map;i.elements.forEach(p=>{let m=t.addGraphic(p);h.push(m),f.set(p.id,m);let v=le([p.center_x,p.center_y],n);if(p.texts[0]){let b=new ne(this.bmap.context,{id:p.id,text:p.texts[0],position:{x:v[0],y:v[1],z:p.airHeight+p.height}});b&&(b.userData.type="parkingSpace",b.userData.data=p),t.poiLayer2.pushPoi(b)}});let d=i.elements.filter(p=>Ec[p.parkingType]).map(p=>{let m=le([p.center_x,p.center_y],n),v=ws(p.geometry.coords,m);return{uuid:p.id,iconUrl:Ec[p.parkingType],name:p.texts[0],deltaHeight:p.deltaHeight,airHeight:p.airHeight,height:p.height,geometry:{...p.geometry,coords:v},opacity:p.fillOpacity,visible:!0}});if(d.length){let p=new Wn(this.bmap.context,d);t.textureLayer.add(p)}t.userData.parkingSpaces=h,t.userData.parkingSpacesGraphicMap=f;break;case"text":ee(i.elements,n);let g=new Rr(this.bmap.context,i.elements.map(p=>{let m=le([p.center_x,p.center_y],n);return{...p,center_x:m[0],center_y:m[1]}}));t.textTextureLayer.add(g);break}}),t.userData.center=n,t.userData.height=e.floorHeight*10,t.name=e.floor,t.userData.data=e,t.updateBox(),t}clear(){}dispose(){this.clear(),yc()}};var Sc=class{constructor(e){this.bmap=e}cacheData=new Map;floorDataLengthMap=new Map;buildingGroundMap=new Map;externalStreetMap=new Map;async load(e){let t=yn(e);if(this.cacheData.has(t))return this.cacheData.get(t);let[,n]=await Promise.all([this.loadBuildGround(e),fc(e,this.bmap.config)]),i=yn({floor:e.floor,ts:e.ts});ee(n.map(a=>a.info),this.bmap.buildingCenter,this.floorDataLengthMap.get(i)||0),n.forEach(a=>a.info.transformToBuildingGround=!1),this.cacheData.set(t,n);let o=this.floorDataLengthMap.get(i)||0;return this.floorDataLengthMap.set(i,o+n.length),this.loadExternalStreet(e),n}async loadExternalStreet(e){}switchFloorByData(e,t){if(!e.length)return;let n=t.userData.legacyToGraphicMap||new Map,i=t.userData.graphicMap||new Map,{ground:o,markGraphic:a,graphic:c}=this.bmap.config;for(let l=0;l<e.length;l++){let s=e[l];s.info.group==="ground"?(s.info.fillColor=o.color,s.info.fillOpacity=o.opacity,s.info.height=o.height,s.info.stroke=o.stroke,s.info.strokeColor=o.strokeColor,s.info.strokeOpacity=o.strokeOpacity):s.info.userData.mark?(s.info.height=a.height,s.info.fillColor=a.color,s.info.fillOpacity=a.opacity,s.info.stroke=a.stroke,s.info.strokeColor=a.strokeColor,s.info.strokeOpacity=a.strokeOpacity):(s.info.fillOpacity=c.fillOpacity,this.bmap.config.initTransToMark&&(s.info.height=a.height,s.info.fillColor=a.color,s.info.stroke=a.stroke,s.info.strokeColor=a.strokeColor,s.info.strokeOpacity=a.strokeOpacity))}for(let l of e){if(l.info.group==="ground")t.createGround(l.info);else{let s=t.addGraphic(l.info);s.userData.data=l,n.set(l.legacy_id,s)}i.set(l.element_uuid,l)}t.userData.legacyToGraphicMap=n,t.userData.graphicMap=i,t.updateBox(),t===this.bmap.context.currentFloor?(this.bmap.triggerHooks("switch_floor_before",{curFloor:t,graphics:t.graphicLayer.children}),this.bmap.initialFloorCamera(),this.bmap.triggerHooks("switch_floor_after",{curFloor:t,graphics:t.graphicLayer.children})):this.bmap.switchFloorByFloor(t)}filterData(e,t){let n=t.userData.graphicMap||new Map;return e.filter(i=>!n.has(i.element_uuid))}async switchFloorByStoreData(e,t){let n=await this.load({...e,resource_type_list:"6"}),i=this.filterData(n,t);this.switchFloorByData(i,t)}async switchFloorByOtherData(e,t){let n=await this.load({...e,resource_type_list:"1,2,3,4"}),i=this.filterData(n,t);this.switchFloorByData(i,t)}async loadBuildGround({brand:e,project:t}){let n=await this.loadBuildingGround({brand:e,project:t});return this.bmap.currentBuildGround=n,this.bmap.changeBuildingCenter(n,{brand:e,project:t}),this.bmap.currentBuildGround}async loadBuildingGround({brand:e,project:t}){let n=yn({brand:e,project:t});if(this.buildingGroundMap.has(n))return this.buildingGroundMap.get(n);let i=pc({brand:e,project:t},this.bmap.config).then(o=>(this.buildingGroundMap.set(n,o),o));return this.buildingGroundMap.set(n,i),i}async switchFloor(e){let t=new Ce(this.bmap.context);t.name=e.floor;try{await Promise.all([this.switchFloorByStoreData(e,t),this.switchFloorByOtherData(e,t)])}catch(n){console.log(n)}return t}dispose(){this.cacheData.clear(),this.floorDataLengthMap.clear(),this.buildingGroundMap.clear()}};export{bc as AibeeLoader,Ma as BMap,Oa as BMapSelect,ce as BaseSvg,Hr as Context,Sc as CrLoader,La as CrNavPath,wa as Equipment,Ds as Events,Ce as Floor,Ar as GlbModel,Ft as Graphic,Er as GraphicLayer,Wn as GroundTexture,_r as HeatmapElement,Vn as HooksName,Or as HoverHelper,Pr as Lane,Ht as Layer,Vf as MapTypePolar,Dr as MergeGraphic,xr as Model,Ra as MulFloors,Na as NavPath,Ia as Navigation,vr as Overlay,Gs as PathDirection,hc as PdrPosition,rn as Poi,ne as Poi2,_n as PoiLayer,br as PoiLayer2,na as RoadNetwork,ra as RoadNetwork2,pa as SelectBox,Lr as Selection,jr as Sensor,yr as Shadow,wr as SvgLine,Tr as SvgPolygon,Rr as TextTexture,Gt as Timer,vn as TweenUtil,Ps as UA,Cr as Wall,Tv as addAlphaToHexColor,Ms as calc_angle,Mi as calc_direction,ia as convertToSnakeCase,Gn as createCircle,fr as createLine,He as createRect,Cs as createSvg,pr as createSvgElement,l_ as createThreeBox,u_ as createThreeLine,Oe as darkenColor,U2 as defaultAibeeLoaderOption,Bf as defaultConfig,Pi as defaultGraphicOptions,kp as defaultOptions,vf as defaultTextTextureOptions,Jt as dispose,zs as distancePointToSegment,yn as generatorKeyByObj,vh as getAngle,hr as getCenter,Sa as getConfig,Vv as getDirectPath,ks as getDistanceByPathPos,kt as getLength,vv as getLongestSideDir,ws as getMinEdgeSquare,Me as getPathLength,fn as getPointEdgeIndex,dr as getPosByPathDistance,Ss as hasChinese,bi as hexToRgb,bs as initDirectionalLight,Es as initLight,Se as initShape,Av as isAndroid,Ve as isContain,mn as isControl,kn as isIphone,gn as isMac,Ts as isPointInPolygon,pc as loadBuildingGround,S2 as loadExternalStreet,fc as loadGraphics,kv as moveOnRoute,dn as proxyOptions,xh as removeWeightPath,en as setCirclePosition,me as setLineStartEnd,Xt as setRectPosition,Bs as simplifyPath,As as sleepOnePromise,Sv as sleepOneRf,Us as smoothPath,wv as strToNumber,Le as timeoutPromise,i_ as toWebWorker,ee as transformGraphicData,le as translatePosToCenter,Te as triggerWorker,et as vector3ToDevice,Ov as xhrGet};
7517
7517
  /*! Bundled license information:
7518
7518
 
7519
7519
  complex.js/complex.js: