@jdultra/threedtiles 14.0.19 → 14.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/physicsHelper.worker-Cr8S3sZk.js.map +1 -0
- package/dist/assets/physicsRapier.worker-jgQ9dgLt.js.map +1 -0
- package/dist/assets/rapier-CaKmQPsS.js +5218 -0
- package/dist/assets/rapier-CaKmQPsS.js.map +1 -0
- package/dist/entry.d.ts +2 -0
- package/dist/simulation/ColliderShape.d.ts +112 -0
- package/dist/simulation/physics.d.ts +177 -0
- package/dist/simulation/physicsHelper.worker.d.ts +6 -0
- package/dist/simulation/physicsRapier.worker.d.ts +1 -0
- package/dist/threedtiles.cjs.js +455 -25
- package/dist/threedtiles.cjs.js.map +1 -1
- package/dist/threedtiles.es.js +5861 -5017
- package/dist/threedtiles.es.js.map +1 -1
- package/dist/threedtiles.umd.js +455 -25
- package/dist/threedtiles.umd.js.map +1 -1
- package/dist/tileset/OGC3DTile.d.ts +54 -0
- package/package.json +5 -2
- package/dist/geometry/obb copy.d.ts +0 -16
package/dist/threedtiles.umd.js
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(ZA,l){typeof exports=="object"&&typeof module<"u"?l(exports,require("three")):typeof define=="function"&&define.amd?define(["exports","three"],l):l((ZA=typeof globalThis<"u"?globalThis:ZA||self).threedtiles={},ZA.THREE)})(this,function(ZA,l){"use strict";var rI=typeof document<"u"?document.currentScript:null;function He(B){const A=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(B){for(const g in B)if(g!=="default"){const I=Object.getOwnPropertyDescriptor(B,g);Object.defineProperty(A,g,I.get?I:{enumerable:!0,get:()=>B[g]})}}return A.default=B,Object.freeze(A)}const x=He(l),ng=new l.Matrix3,mA=new l.Vector3,TQ=new l.Vector3,OQ=new l.Box3;new l.Matrix4,new l.Matrix4;const xB=new l.Ray;class ag{constructor(A){this.isOBB=!0,this.center=new l.Vector3(A[0],A[1],A[2]),this.e1=new l.Vector3(A[3],A[4],A[5]),this.e2=new l.Vector3(A[6],A[7],A[8]),this.e3=new l.Vector3(A[9],A[10],A[11]),this.halfSize=new l.Vector3(this.e1.length(),this.e2.length(),this.e3.length()),this.e1.normalize();const g=this.e2.dot(this.e1);this.e2.addScaledVector(this.e1,-g).normalize(),this.e3.copy(this.e1).cross(this.e2),this.e3.lengthSq()===0?(this.e2.set(0,1,0),Math.abs(this.e1.y)>.999&&this.e2.set(1,0,0),this.e2.addScaledVector(this.e1,-this.e2.dot(this.e1)).normalize(),this.e3.copy(this.e1).cross(this.e2)):this.e3.normalize(),this.rotationMatrix=new l.Matrix3,this.rotationMatrix.set(this.e1.x,this.e2.x,this.e3.x,this.e1.y,this.e2.y,this.e3.y,this.e1.z,this.e2.z,this.e3.z)}copy(A){this.center.copy(A.center),this.rotationMatrix.copy(A.rotationMatrix),this.halfSize.copy(A.halfSize),this.e1.copy(A.e1),this.e2.copy(A.e2),this.e3.copy(A.e3)}getSize(A){return A.copy(this.halfSize).multiplyScalar(2)}applyMatrix4(A){const g=A.elements;let I=mA.set(g[0],g[1],g[2]).length(),Q=mA.set(g[4],g[5],g[6]).length(),C=mA.set(g[8],g[9],g[10]).length();ng.setFromMatrix4(A);const a=I!==0?1/I:0,e=Q!==0?1/Q:0,i=C!==0?1/C:0;return ng.elements[0]*=a,ng.elements[1]*=a,ng.elements[2]*=a,ng.elements[3]*=e,ng.elements[4]*=e,ng.elements[5]*=e,ng.elements[6]*=i,ng.elements[7]*=i,ng.elements[8]*=i,this.rotationMatrix.premultiply(ng),this.halfSize.x*=Math.abs(I),this.halfSize.y*=Math.abs(Q),this.halfSize.z*=Math.abs(C),this.center.applyMatrix4(A),this.rotationMatrix.extractBasis(this.e1,this.e2,this.e3),this}intersectRay(A,g){this.getSize(TQ),OQ.setFromCenterAndSize(mA.set(0,0,0),TQ);const I=ng.copy(this.rotationMatrix).transpose();return xB.origin.copy(A.origin).sub(this.center).applyMatrix3(I),xB.direction.copy(A.direction).applyMatrix3(I).normalize(),xB.intersectBox(OQ,g)?g.applyMatrix3(this.rotationMatrix).add(this.center):null}clampPoint(A,g){mA.copy(A).sub(this.center);const I=mA.dot(this.e1),Q=mA.dot(this.e2),C=mA.dot(this.e3),a=Math.max(-this.halfSize.x,Math.min(this.halfSize.x,I)),e=Math.max(-this.halfSize.y,Math.min(this.halfSize.y,Q)),i=Math.max(-this.halfSize.z,Math.min(this.halfSize.z,C));return g.copy(this.center).addScaledVector(this.e1,a).addScaledVector(this.e2,e).addScaledVector(this.e3,i)}intersectsSphere(A){return this.clampPoint(A.center,mA),mA.distanceToSquared(A.center)<=A.radius*A.radius}intersectsOBB(A,g=Number.EPSILON){const I=[this.e1,this.e2,this.e3],Q=[A.e1,A.e2,A.e3],C=[this.halfSize.x,this.halfSize.y,this.halfSize.z],a=[A.halfSize.x,A.halfSize.y,A.halfSize.z],e=[[0,0,0],[0,0,0],[0,0,0]],i=[[0,0,0],[0,0,0],[0,0,0]];for(let r=0;r<3;++r)for(let n=0;n<3;++n)e[r][n]=I[r].dot(Q[n]),i[r][n]=Math.abs(e[r][n])+g;mA.subVectors(A.center,this.center);const t=[mA.dot(I[0]),mA.dot(I[1]),mA.dot(I[2])];let E,o;for(let r=0;r<3;++r)if(E=C[r],o=a[0]*i[r][0]+a[1]*i[r][1]+a[2]*i[r][2],Math.abs(t[r])>E+o)return!1;for(let r=0;r<3;++r)if(E=C[0]*i[0][r]+C[1]*i[1][r]+C[2]*i[2][r],o=a[r],Math.abs(t[0]*e[0][r]+t[1]*e[1][r]+t[2]*e[2][r])>E+o)return!1;return E=C[1]*i[2][0]+C[2]*i[1][0],o=a[1]*i[0][2]+a[2]*i[0][1],!(Math.abs(t[2]*e[1][0]-t[1]*e[2][0])>E+o)&&(E=C[1]*i[2][1]+C[2]*i[1][1],o=a[0]*i[0][2]+a[2]*i[0][0],!(Math.abs(t[2]*e[1][1]-t[1]*e[2][1])>E+o)&&(E=C[1]*i[2][2]+C[2]*i[1][2],o=a[0]*i[0][1]+a[1]*i[0][0],!(Math.abs(t[2]*e[1][2]-t[1]*e[2][2])>E+o)&&(E=C[0]*i[2][0]+C[2]*i[0][0],o=a[1]*i[1][2]+a[2]*i[1][1],!(Math.abs(t[0]*e[2][0]-t[2]*e[0][0])>E+o)&&(E=C[0]*i[2][1]+C[2]*i[0][1],o=a[0]*i[1][2]+a[2]*i[1][0],!(Math.abs(t[0]*e[2][1]-t[2]*e[0][1])>E+o)&&(E=C[0]*i[2][2]+C[2]*i[0][2],o=a[0]*i[1][1]+a[1]*i[1][0],!(Math.abs(t[0]*e[2][2]-t[2]*e[0][2])>E+o)&&(E=C[0]*i[1][0]+C[1]*i[0][0],o=a[1]*i[2][2]+a[2]*i[2][1],!(Math.abs(t[1]*e[0][0]-t[0]*e[1][0])>E+o)&&(E=C[0]*i[1][1]+C[1]*i[0][1],o=a[0]*i[2][2]+a[2]*i[2][0],!(Math.abs(t[1]*e[0][1]-t[0]*e[1][1])>E+o)&&(E=C[0]*i[1][2]+C[1]*i[0][2],o=a[0]*i[2][1]+a[1]*i[2][0],!(Math.abs(t[1]*e[0][2]-t[0]*e[1][2])>E+o)))))))))}intersectsRay(A){return this.intersectRay(A,mA)!==null}insidePlane(A){const g=A.normal,I=g.length();if(I===0)return!0;const Q=mA.copy(g).multiplyScalar(1/I),C=this.halfSize.x*Math.abs(Q.dot(this.e1))+this.halfSize.y*Math.abs(Q.dot(this.e2))+this.halfSize.z*Math.abs(Q.dot(this.e3));return g.dot(this.center)+A.constant>=-C*I}inFrustum(A){for(let g=0;g<6;g++){const I=A.planes[g];if(!this.insidePlane(I))return!1}return!0}distanceToPoint(A){mA.copy(A),mA.sub(this.center);const g=ng.copy(this.rotationMatrix).transpose();mA.applyMatrix3(g);let I=Math.max(0,Math.max(-this.halfSize.x-mA.x,mA.x-this.halfSize.x)),Q=Math.max(0,Math.max(-this.halfSize.y-mA.y,mA.y-this.halfSize.y)),C=Math.max(0,Math.max(-this.halfSize.z-mA.z,mA.z-this.halfSize.z));return Math.sqrt(I*I+Q*Q+C*C)}helper(){const A=this.halfSize,g=this.center,I=this.e1,Q=this.e2,C=this.e3,a=[new l.Vector3().copy(g).add(I.clone().multiplyScalar(A.x)).add(Q.clone().multiplyScalar(A.y)).add(C.clone().multiplyScalar(A.z)),new l.Vector3().copy(g).add(I.clone().multiplyScalar(-A.x)).add(Q.clone().multiplyScalar(A.y)).add(C.clone().multiplyScalar(A.z)),new l.Vector3().copy(g).add(I.clone().multiplyScalar(-A.x)).add(Q.clone().multiplyScalar(-A.y)).add(C.clone().multiplyScalar(A.z)),new l.Vector3().copy(g).add(I.clone().multiplyScalar(A.x)).add(Q.clone().multiplyScalar(-A.y)).add(C.clone().multiplyScalar(A.z)),new l.Vector3().copy(g).add(I.clone().multiplyScalar(A.x)).add(Q.clone().multiplyScalar(A.y)).add(C.clone().multiplyScalar(-A.z)),new l.Vector3().copy(g).add(I.clone().multiplyScalar(-A.x)).add(Q.clone().multiplyScalar(A.y)).add(C.clone().multiplyScalar(-A.z)),new l.Vector3().copy(g).add(I.clone().multiplyScalar(-A.x)).add(Q.clone().multiplyScalar(-A.y)).add(C.clone().multiplyScalar(-A.z)),new l.Vector3().copy(g).add(I.clone().multiplyScalar(A.x)).add(Q.clone().multiplyScalar(-A.y)).add(C.clone().multiplyScalar(-A.z))],e=new l.BufferGeometry().setFromPoints(a);e.setIndex([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),e.computeBoundingSphere();const i=new l.LineBasicMaterial({color:16711680}),t=new l.LineSegments(e,i);return t.dispose=()=>{i.dispose(),e.dispose()},t}}/**
|
|
2
2
|
* @copyright 2021 Aaron Zhao <yujianzhao2013@gmail.com>
|
|
3
3
|
* @license MIT
|
|
4
4
|
* Linked hash map data structure
|
|
5
5
|
* @class LinkedHashMap
|
|
6
|
-
*/class jQ{constructor(){this._data=new Map,this._link=new Map,this._head=void 0,this._tail=void 0}put(A,g,I=!1){this.has(A)?this._data.set(A,g):(this._data.set(A,g),this._link.set(A,{previous:void 0,next:void 0}),this._head==null?(this._head=A,this._tail=A):I?(this._link.get(this._head).previous=A,this._link.get(A).next=this._head,this._head=A):(this._link.get(this._tail).next=A,this._link.get(A).previous=this._tail,this._tail=A))}head(){return{key:this._head,value:this.get(this._head),next:()=>this.next(this._head),previous:()=>null}}tail(){return{key:this._tail,value:this.get(this._tail),next:()=>null,previous:()=>this.previous(this._tail)}}get(A){return this._data.get(A)}previousKey(A){const g=this._link.get(A);return g?.previous}previousValue(A){return this.get(this.previousKey(A))}previous(A){const g=this.previousKey(A);return{key:g,value:this.get(g),next:()=>this.next(g),previous:()=>this.previous(g)}}nextKey(A){const g=this._link.get(A);return g?.next}nextValue(A){return this.get(this.nextKey(A))}next(A){const g=this.nextKey(A);return{key:g,value:this.get(g),next:()=>this.next(g),previous:()=>this.previous(g)}}remove(A){const g=this._data.get(A);if(g!=null)if(this.size()===1)this.reset();else{if(A===this._head){const I=this._link.get(this._head);this._link.get(I.next).previous=null,this._head=I.next}else if(A===this._tail){const I=this._link.get(this._tail);this._link.get(I.previous).next=null,this._tail=I.previous}else{const I=this._link.get(A),Q=this._link.get(I.previous),C=this._link.get(I.next);Q.next=I.next,C.previous=I.previous}this._link.delete(A),this._data.delete(A)}return g}has(A){return this._data.has(A)}size(){return this._data.size}reset(){this._data.clear(),this._link.clear(),this._head=void 0,this._tail=void 0}keys(){return this._data.keys()}values(){return this._data.values()}entries(){return this._data.entries()}toArray(A="orderByInsert"){if(A!=="orderByInsert"){const g=[];let I=this._head;for(;I!=null;)g.push({key:I,value:this.get(I)}),I=this.nextKey(I);return g}return Array.from(this.keys()).map(g=>({key:g,value:this.get(g)}))}}const pa=new TextDecoder;class qQ{constructor(A,g,I,Q){this.buffer=A,this.binOffset=g+I,this.binLength=Q;let C=null;if(I!==0)try{const E=new Uint8Array(A,g,I);C=JSON.parse(pa.decode(E))}catch{C={}}else C={};this.header=C}getKeys(){return Object.keys(this.header)}getData(A,g,I=null,Q=null){const C=this.header;if(!(A in C))return null;const E=C[A];if(E instanceof Object){if(Array.isArray(E))return E;{const{buffer:a,binOffset:i,binLength:t}=this,e=E.byteOffset||0,o=E.type||Q,s=E.componentType||I;if("type"in E&&Q&&E.type!==Q)throw new Error("FeatureTable: Specified type does not match expected type.");let n,r;switch(o){case"SCALAR":n=1;break;case"VEC2":n=2;break;case"VEC3":n=3;break;case"VEC4":n=4;break;default:throw new Error(`FeatureTable : Feature type not provided for "${A}".`)}const c=i+e,D=g*n;switch(s){case"BYTE":r=new Int8Array(a,c,D);break;case"UNSIGNED_BYTE":r=new Uint8Array(a,c,D);break;case"SHORT":r=new Int16Array(a,c,D);break;case"UNSIGNED_SHORT":r=new Uint16Array(a,c,D);break;case"INT":r=new Int32Array(a,c,D);break;case"UNSIGNED_INT":r=new Uint32Array(a,c,D);break;case"FLOAT":r=new Float32Array(a,c,D);break;case"DOUBLE":r=new Float64Array(a,c,D);break;default:throw new Error(`FeatureTable : Feature component type not provided for "${A}".`)}if(c+D*r.BYTES_PER_ELEMENT>i+t)throw new Error("FeatureTable: Feature data read outside binary body length.");return r}}return E}}class Na extends qQ{constructor(A,g,I,Q,C){super(A,I,Q,C),this.batchSize=g}getData(A,g=null,I=null){return super.getData(A,this.batchSize,g,I)}}function vQ(B){let A,g,I,Q=-1,C=0;for(let t=0;t<B.length;++t){const e=B[t];if(A===void 0&&(A=e.array.constructor),A!==e.array.constructor)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes."),null;if(g===void 0&&(g=e.itemSize),g!==e.itemSize)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes."),null;if(I===void 0&&(I=e.normalized),I!==e.normalized)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes."),null;if(Q===-1&&(Q=e.gpuType),Q!==e.gpuType)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.gpuType must be consistent across matching attributes."),null;C+=e.count*g}const E=new A(C),a=new d.BufferAttribute(E,g,I);let i=0;for(let t=0;t<B.length;++t){const e=B[t];if(e.isInterleavedBufferAttribute){const o=i/g;for(let s=0,n=e.count;s<n;s++)for(let r=0;r<g;r++){const c=e.getComponent(s,r);a.setComponent(s+o,r,c)}}else E.set(e.array,i);i+=e.count*g}return Q!==void 0&&(a.gpuType=Q),a}function TQ(B,A){if(A===d.TrianglesDrawMode)return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."),B;if(A===d.TriangleFanDrawMode||A===d.TriangleStripDrawMode){let g=B.getIndex();if(g===null){const E=[],a=B.getAttribute("position");if(a===void 0)return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),B;for(let i=0;i<a.count;i++)E.push(i);B.setIndex(E),g=B.getIndex()}const I=g.count-2,Q=[];if(A===d.TriangleFanDrawMode)for(let E=1;E<=I;E++)Q.push(g.getX(0)),Q.push(g.getX(E)),Q.push(g.getX(E+1));else for(let E=0;E<I;E++)E%2==0?(Q.push(g.getX(E)),Q.push(g.getX(E+1)),Q.push(g.getX(E+2))):(Q.push(g.getX(E+2)),Q.push(g.getX(E+1)),Q.push(g.getX(E)));Q.length/3!==I&&console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");const C=B.clone();return C.setIndex(Q),C.clearGroups(),C}return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:",A),B}class OQ{constructor(A){this.gltfLoader=A,this.tempMatrix=new W.Matrix4,this.zUpToYUpMatrix=new W.Matrix4,this.zUpToYUpMatrix.set(1,0,0,0,0,0,-1,0,0,1,0,0,0,0,0,1)}parseB3DM(A,g,I,Q){const C=this,E=new DataView(A),a=String.fromCharCode(E.getUint8(0))+String.fromCharCode(E.getUint8(1))+String.fromCharCode(E.getUint8(2))+String.fromCharCode(E.getUint8(3));console.assert(a==="b3dm");const i=E.getUint32(8,!0);console.assert(i===A.byteLength);const t=E.getUint32(12,!0),e=E.getUint32(16,!0),o=E.getUint32(20,!0),s=E.getUint32(24,!0),n=new qQ(A,28,t,e),r=28+t+e;new Na(A,n.getData("BATCH_LENGTH"),r,o,s);const c=r+o+s,D=new Uint8Array(A,c,i-c).slice().buffer;return new Promise(async(b,h)=>{await this.checkLoaderInitialized(),this.gltfLoader.parse(D,null,w=>{const f=n.getData("RTC_CENTER");f?(this.tempMatrix.makeTranslation(f[0],f[1],f[2]),w.scene.applyMatrix4(this.tempMatrix)):w.userData.gltfExtensions&&w.userData.gltfExtensions.CESIUM_RTC&&(this.tempMatrix.makeTranslation(w.userData.gltfExtensions.CESIUM_RTC.center[0],w.userData.gltfExtensions.CESIUM_RTC.center[1],w.userData.gltfExtensions.CESIUM_RTC.center[2]),w.scene.applyMatrix4(this.tempMatrix)),I&&w.scene.applyMatrix4(C.zUpToYUpMatrix),w.scene.asset=w.asset,w.scene.traverse(p=>{p.isMesh&&(Q&&p.applyMatrix4(C.zUpToYUpMatrix),g&&g(p))}),b(w.scene)},w=>{console.error(w)})})}checkLoaderInitialized=async()=>new Promise(A=>{const g=setInterval(()=>{this.gltfLoader.hasDracoLoader&&!this.gltfLoader.dracoLoader||this.gltfLoader.hasKTX2Loader&&!this.gltfLoader.ktx2Loader||(clearInterval(g),A())},10)});parseB3DMInstanced(A,g,I,Q,C){return this.parseB3DM(A,g,Q,C).then(E=>{let a,i=[],t=[];E.updateWorldMatrix(!1,!0),E.traverse(o=>{o.isMesh&&(o.geometry.applyMatrix4(o.matrixWorld),i.push(o.geometry),t.push(o.material))});let e=function(o){let s=new Set;return o.forEach(r=>{for(let c in r.attributes)s.add(c)}),o.forEach(r=>{s.forEach(c=>{if(!r.attributes[c]){const D=function(h){switch(h){case"position":case"normal":case"color":return 3;case"uv":case"uv2":return 2;default:throw new Error(`Unknown attribute ${h}`)}}(c),b=new Float32Array(D*r.getAttribute("position").count).fill(0);r.setAttribute(c,new W.BufferAttribute(b,D))}})}),function(r,c=!1){const D=r[0].index!==null,b=new Set(Object.keys(r[0].attributes)),h=new Set(Object.keys(r[0].morphAttributes)),w={},f={},p=r[0].morphTargetsRelative,R=new d.BufferGeometry;let m=0;for(let G=0;G<r.length;++G){const k=r[G];let U=0;if(D!==(k.index!==null))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+G+". All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them."),null;for(const S in k.attributes){if(!b.has(S))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+G+'. All geometries must have compatible attributes; make sure "'+S+'" attribute exists among all geometries, or in none of them.'),null;w[S]===void 0&&(w[S]=[]),w[S].push(k.attributes[S]),U++}if(U!==b.size)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+G+". Make sure all geometries have the same number of attributes."),null;if(p!==k.morphTargetsRelative)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+G+". .morphTargetsRelative must be consistent throughout all geometries."),null;for(const S in k.morphAttributes){if(!h.has(S))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+G+". .morphAttributes must be consistent throughout all geometries."),null;f[S]===void 0&&(f[S]=[]),f[S].push(k.morphAttributes[S])}if(c){let S;if(D)S=k.index.count;else{if(k.attributes.position===void 0)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+G+". The geometry must have either an index or a position attribute"),null;S=k.attributes.position.count}R.addGroup(m,S,G),m+=S}}if(D){let G=0;const k=[];for(let U=0;U<r.length;++U){const S=r[U].index;for(let q=0;q<S.count;++q)k.push(S.getX(q)+G);G+=r[U].attributes.position.count}R.setIndex(k)}for(const G in w){const k=vQ(w[G]);if(!k)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the "+G+" attribute."),null;R.setAttribute(G,k)}for(const G in f){const k=f[G][0].length;if(k===0)break;R.morphAttributes=R.morphAttributes||{},R.morphAttributes[G]=[];for(let U=0;U<k;++U){const S=[];for(let z=0;z<f[G].length;++z)S.push(f[G][z][U]);const q=vQ(S);if(!q)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the "+G+" morphAttribute."),null;R.morphAttributes[G].push(q)}}return R}(o,!0)}(i);return a=new W.InstancedMesh(e,t,I),a.baseMatrix=new W.Matrix4().identity(),a})}}async function ka(B={}){var A,g,I=B,Q=typeof window=="object",C=typeof WorkerGlobalScope<"u",E=typeof process=="object"&&((A=process.versions)==null?void 0:A.node)&&process.type!="renderer";if(E){const{createRequire:l}=await Promise.resolve().then(()=>La);var a=l(typeof document>"u"&&typeof location>"u"?require("url").pathToFileURL(__filename).href:typeof document>"u"?location.href:nI&&nI.tagName.toUpperCase()==="SCRIPT"&&nI.src||new URL("threedtiles.umd.js",document.baseURI).href)}var i,t="./this.program",e=typeof document>"u"&&typeof location>"u"?require("url").pathToFileURL(__filename).href:typeof document>"u"?location.href:nI&&nI.tagName.toUpperCase()==="SCRIPT"&&nI.src||new URL("threedtiles.umd.js",document.baseURI).href;if(E){var o=a("fs");e.startsWith("file:")&&a("path").dirname(a("url").fileURLToPath(e)),i=l=>(l=z(l)?new URL(l):l,o.readFileSync(l)),1<process.argv.length&&(t=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2)}else if(Q||C){try{new URL(".",e)}catch{}C&&(i=l=>{var u=new XMLHttpRequest;return u.open("GET",l,!1),u.responseType="arraybuffer",u.send(null),new Uint8Array(u.response)})}var s,n,r,c,D,b,h,w,f,p,R,m,G,k,U=console.log.bind(console),S=console.error.bind(console),q=!1,z=l=>l.startsWith("file://"),gA=!1;function $(){var l=c.buffer;D=new Int8Array(l),h=new Int16Array(l),I.HEAPU8=b=new Uint8Array(l),w=new Uint16Array(l),f=new Int32Array(l),p=new Uint32Array(l),I.HEAPF32=R=new Float32Array(l),m=new Float64Array(l),G=new BigInt64Array(l),k=new BigUint64Array(l)}var X,aA=0,wA=null;function sA(l){var u;throw(u=I.onAbort)==null||u.call(I,l),S(l="Aborted("+l+")"),q=!0,l=new WebAssembly.RuntimeError(l+". Build with -sASSERTIONS for more info."),r?.(l),l}async function fA(l){var u=X;try{var y=await async function(F){if(!ArrayBuffer.isView(F))if(F==X&&s)F=new Uint8Array(s);else{if(!i)throw"both async and sync fetching of the wasm failed";F=i(F)}return F}(u);return await WebAssembly.instantiate(y,l)}catch(F){S(`failed to asynchronously prepare wasm: ${F}`),sA(F)}}var lA=l=>{for(;0<l.length;)l.shift()(I)},iA=[],GA=[],eA=()=>{var l=I.preRun.shift();GA.push(l)},rA={},yA=l=>{for(;l.length;){var u=l.pop();l.pop()(u)}};function RA(l){return this.N(p[l>>2])}var oA={},cA={},JA={},qA=class extends Error{constructor(l){super(l),this.name="InternalError"}},sg=(l,u,y)=>{function F(P){if((P=y(P)).length!==l.length)throw new qA("Mismatched type converter count");for(var IA=0;IA<l.length;++IA)N(l[IA],P[IA])}l.forEach(P=>JA[P]=u);var L=Array(u.length),T=[],H=0;u.forEach((P,IA)=>{cA.hasOwnProperty(P)?L[IA]=cA[P]:(T.push(P),oA.hasOwnProperty(P)||(oA[P]=[]),oA[P].push(()=>{L[IA]=cA[P],++H===T.length&&F(L)}))}),T.length===0&&F(L)},OA=l=>{for(var u="";;){var y=b[l++];if(!y)return u;u+=String.fromCharCode(y)}},hA=class extends Error{constructor(l){super(l),this.name="BindingError"}},M=l=>{throw new hA(l)};function N(l,u,y={}){return function(F,L,T={}){var H=L.name;if(!F)throw new hA(`type "${H}" must have a positive integer typeid pointer`);if(cA.hasOwnProperty(F)){if(T.wa)return;throw new hA(`Cannot register type '${H}' twice`)}cA[F]=L,delete JA[F],oA.hasOwnProperty(F)&&(L=oA[F],delete oA[F],L.forEach(P=>P()))}(l,u,y)}var J=(l,u,y)=>{switch(u){case 1:return y?F=>D[F]:F=>b[F];case 2:return y?F=>h[F>>1]:F=>w[F>>1];case 4:return y?F=>f[F>>2]:F=>p[F>>2];case 8:return y?F=>G[F>>3]:F=>k[F>>3];default:throw new TypeError(`invalid integer width (${u}): ${l}`)}},x=l=>{throw new hA(l.L.P.M.name+" instance already deleted")},K=!1,O=()=>{},Z=l=>typeof FinalizationRegistry>"u"?(Z=u=>u,l):(K=new FinalizationRegistry(u=>{--(u=u.L).count.value,u.count.value===0&&(u.S?u.W.Y(u.S):u.P.M.Y(u.O))}),Z=u=>{var y=u.L;return y.S&&K.register(u,{L:y},u),u},O=u=>{K.unregister(u)},Z(l));function v(){}var AA=(l,u)=>Object.defineProperty(u,"name",{value:l}),V={},MA=(l,u,y)=>{if(l[u].R===void 0){var F=l[u];l[u]=function(...L){if(!l[u].R.hasOwnProperty(L.length))throw new hA(`Function '${y}' called with an invalid number of arguments (${L.length}) - expects one of (${l[u].R})!`);return l[u].R[L.length].apply(this,L)},l[u].R=[],l[u].R[F.aa]=F}},bA=(l,u,y)=>{if(I.hasOwnProperty(l)){if(y===void 0||I[l].R!==void 0&&I[l].R[y]!==void 0)throw new hA(`Cannot register public name '${l}' twice`);if(MA(I,l,l),I[l].R.hasOwnProperty(y))throw new hA(`Cannot register multiple overloads of a function with the same number of arguments (${y})!`);I[l].R[y]=u}else I[l]=u,I[l].aa=y};function YA(l,u,y,F,L,T,H,P){this.name=l,this.constructor=u,this.$=y,this.Y=F,this.U=L,this.ra=T,this.ea=H,this.pa=P,this.ya=[]}var zA=(l,u,y)=>{for(;u!==y;){if(!u.ea)throw new hA(`Expected null or instance of ${y.name}, got an instance of ${u.name}`);l=u.ea(l),u=u.U}return l},ig=l=>{if(l===null)return"null";var u=typeof l;return u==="object"||u==="array"||u==="function"?l.toString():""+l};function rg(l,u){if(u===null){if(this.ha)throw new hA(`null is not a valid ${this.name}`);return 0}if(!u.L)throw new hA(`Cannot pass "${ig(u)}" as a ${this.name}`);if(!u.L.O)throw new hA(`Cannot pass deleted object as a pointer of type ${this.name}`);return zA(u.L.O,u.L.P.M,this.M)}function yg(l,u){if(u===null){if(this.ha)throw new hA(`null is not a valid ${this.name}`);if(this.ga){var y=this.ia();return l!==null&&l.push(this.Y,y),y}return 0}if(!u||!u.L)throw new hA(`Cannot pass "${ig(u)}" as a ${this.name}`);if(!u.L.O)throw new hA(`Cannot pass deleted object as a pointer of type ${this.name}`);if(!this.fa&&u.L.P.fa)throw new hA(`Cannot convert argument of type ${u.L.W?u.L.W.name:u.L.P.name} to parameter type ${this.name}`);if(y=zA(u.L.O,u.L.P.M,this.M),this.ga){if(u.L.S===void 0)throw new hA("Passing raw pointer to smart pointer is illegal");switch(this.Da){case 0:if(u.L.W!==this)throw new hA(`Cannot convert argument of type ${u.L.W?u.L.W.name:u.L.P.name} to parameter type ${this.name}`);y=u.L.S;break;case 1:y=u.L.S;break;case 2:if(u.L.W===this)y=u.L.S;else{var F=u.clone();y=this.za(y,TI(()=>F.delete())),l!==null&&l.push(this.Y,y)}break;default:throw new hA("Unsupporting sharing policy")}}return y}function Vg(l,u){if(u===null){if(this.ha)throw new hA(`null is not a valid ${this.name}`);return 0}if(!u.L)throw new hA(`Cannot pass "${ig(u)}" as a ${this.name}`);if(!u.L.O)throw new hA(`Cannot pass deleted object as a pointer of type ${this.name}`);if(u.L.P.fa)throw new hA(`Cannot convert argument of type ${u.L.P.name} to parameter type ${this.name}`);return zA(u.L.O,u.L.P.M,this.M)}var iI=(l,u,y)=>u===y?l:y.U===void 0||(l=iI(l,u,y.U))===null?null:y.pa(l),pQ={},RI=(l,u)=>{if(!u.P||!u.O)throw new qA("makeClassHandle requires ptr and ptrType");if(!!u.W!=!!u.S)throw new qA("Both smartPtrType and smartPtr must be specified");return u.count={value:1},Z(Object.create(l,{L:{value:u,writable:!0}}))};function pI(l,u,y,F,L,T,H,P,IA,QA,BA){this.name=l,this.M=u,this.ha=y,this.fa=F,this.ga=L,this.xa=T,this.Da=H,this.na=P,this.ia=IA,this.za=QA,this.Y=BA,L||u.U!==void 0?this.T=yg:(this.T=F?rg:Vg,this.V=null)}var fB,FB=(l,u,y)=>{if(!I.hasOwnProperty(l))throw new qA("Replacing nonexistent public symbol");I[l].R!==void 0&&y!==void 0?I[l].R[y]=u:(I[l]=u,I[l].aa=y)},cg=(l,u)=>{l=OA(l);var y=fB.get(u);if(typeof y!="function")throw new hA(`unknown function pointer with signature ${l}: ${u}`);return y};class NQ extends Error{}var yB=l=>{l=Ma(l);var u=OA(l);return $g(l),u},NI=(l,u)=>{var y=[],F={};throw u.forEach(function L(T){F[T]||cA[T]||(JA[T]?JA[T].forEach(L):(y.push(T),F[T]=!0))}),new NQ(`${l}: `+y.map(yB).join([", "]))},HI=(l,u)=>{for(var y=[],F=0;F<l;F++)y.push(p[u+4*F>>2]);return y};function MB(l){for(var u=1;u<l.length;++u)if(l[u]!==null&&l[u].V===void 0)return!0;return!1}function KI(l,u,y,F,L,T){var H=u.length;if(2>H)throw new hA("argTypes array size mismatch! Must at least get return value and 'this' types!");var P=u[1]!==null&&y!==null,IA=MB(u);y=!u[0].ma;var QA=u[0],BA=u[1];for(F=[l,M,F,L,yA,QA.N.bind(QA),BA?.T.bind(BA)],L=2;L<H;++L)QA=u[L],F.push(QA.T.bind(QA));if(!IA)for(L=P?1:2;L<u.length;++L)u[L].V!==null&&F.push(u[L].V);for(IA=MB(u),L=u.length-2,BA=[],QA=["fn"],P&&QA.push("thisWired"),H=0;H<L;++H)BA.push(`arg${H}`),QA.push(`arg${H}Wired`);BA=BA.join(","),QA=QA.join(","),BA=`return function (${BA}) {
|
|
6
|
+
*/class WQ{constructor(){this._data=new Map,this._link=new Map,this._head=void 0,this._tail=void 0}put(A,g,I=!1){this.has(A)?this._data.set(A,g):(this._data.set(A,g),this._link.set(A,{previous:void 0,next:void 0}),this._head==null?(this._head=A,this._tail=A):I?(this._link.get(this._head).previous=A,this._link.get(A).next=this._head,this._head=A):(this._link.get(this._tail).next=A,this._link.get(A).previous=this._tail,this._tail=A))}head(){return{key:this._head,value:this.get(this._head),next:()=>this.next(this._head),previous:()=>null}}tail(){return{key:this._tail,value:this.get(this._tail),next:()=>null,previous:()=>this.previous(this._tail)}}get(A){return this._data.get(A)}previousKey(A){const g=this._link.get(A);return g?.previous}previousValue(A){return this.get(this.previousKey(A))}previous(A){const g=this.previousKey(A);return{key:g,value:this.get(g),next:()=>this.next(g),previous:()=>this.previous(g)}}nextKey(A){const g=this._link.get(A);return g?.next}nextValue(A){return this.get(this.nextKey(A))}next(A){const g=this.nextKey(A);return{key:g,value:this.get(g),next:()=>this.next(g),previous:()=>this.previous(g)}}remove(A){const g=this._data.get(A);if(g!=null)if(this.size()===1)this.reset();else{if(A===this._head){const I=this._link.get(this._head);this._link.get(I.next).previous=null,this._head=I.next}else if(A===this._tail){const I=this._link.get(this._tail);this._link.get(I.previous).next=null,this._tail=I.previous}else{const I=this._link.get(A),Q=this._link.get(I.previous),C=this._link.get(I.next);Q.next=I.next,C.previous=I.previous}this._link.delete(A),this._data.delete(A)}return g}has(A){return this._data.has(A)}size(){return this._data.size}reset(){this._data.clear(),this._link.clear(),this._head=void 0,this._tail=void 0}keys(){return this._data.keys()}values(){return this._data.values()}entries(){return this._data.entries()}toArray(A="orderByInsert"){if(A!=="orderByInsert"){const g=[];let I=this._head;for(;I!=null;)g.push({key:I,value:this.get(I)}),I=this.nextKey(I);return g}return Array.from(this.keys()).map(g=>({key:g,value:this.get(g)}))}}const Ke=new TextDecoder;class PQ{constructor(A,g,I,Q){this.buffer=A,this.binOffset=g+I,this.binLength=Q;let C=null;if(I!==0)try{const a=new Uint8Array(A,g,I);C=JSON.parse(Ke.decode(a))}catch{C={}}else C={};this.header=C}getKeys(){return Object.keys(this.header)}getData(A,g,I=null,Q=null){const C=this.header;if(!(A in C))return null;const a=C[A];if(a instanceof Object){if(Array.isArray(a))return a;{const{buffer:e,binOffset:i,binLength:t}=this,E=a.byteOffset||0,o=a.type||Q,r=a.componentType||I;if("type"in a&&Q&&a.type!==Q)throw new Error("FeatureTable: Specified type does not match expected type.");let n,s;switch(o){case"SCALAR":n=1;break;case"VEC2":n=2;break;case"VEC3":n=3;break;case"VEC4":n=4;break;default:throw new Error(`FeatureTable : Feature type not provided for "${A}".`)}const c=i+E,d=g*n;switch(r){case"BYTE":s=new Int8Array(e,c,d);break;case"UNSIGNED_BYTE":s=new Uint8Array(e,c,d);break;case"SHORT":s=new Int16Array(e,c,d);break;case"UNSIGNED_SHORT":s=new Uint16Array(e,c,d);break;case"INT":s=new Int32Array(e,c,d);break;case"UNSIGNED_INT":s=new Uint32Array(e,c,d);break;case"FLOAT":s=new Float32Array(e,c,d);break;case"DOUBLE":s=new Float64Array(e,c,d);break;default:throw new Error(`FeatureTable : Feature component type not provided for "${A}".`)}if(c+d*s.BYTES_PER_ELEMENT>i+t)throw new Error("FeatureTable: Feature data read outside binary body length.");return s}}return a}}class je extends PQ{constructor(A,g,I,Q,C){super(A,I,Q,C),this.batchSize=g}getData(A,g=null,I=null){return super.getData(A,this.batchSize,g,I)}}function VQ(B){let A,g,I,Q=-1,C=0;for(let t=0;t<B.length;++t){const E=B[t];if(A===void 0&&(A=E.array.constructor),A!==E.array.constructor)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes."),null;if(g===void 0&&(g=E.itemSize),g!==E.itemSize)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes."),null;if(I===void 0&&(I=E.normalized),I!==E.normalized)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes."),null;if(Q===-1&&(Q=E.gpuType),Q!==E.gpuType)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.gpuType must be consistent across matching attributes."),null;C+=E.count*g}const a=new A(C),e=new l.BufferAttribute(a,g,I);let i=0;for(let t=0;t<B.length;++t){const E=B[t];if(E.isInterleavedBufferAttribute){const o=i/g;for(let r=0,n=E.count;r<n;r++)for(let s=0;s<g;s++){const c=E.getComponent(r,s);e.setComponent(r+o,s,c)}}else a.set(E.array,i);i+=E.count*g}return Q!==void 0&&(e.gpuType=Q),e}function zQ(B,A){if(A===l.TrianglesDrawMode)return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."),B;if(A===l.TriangleFanDrawMode||A===l.TriangleStripDrawMode){let g=B.getIndex();if(g===null){const a=[],e=B.getAttribute("position");if(e===void 0)return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),B;for(let i=0;i<e.count;i++)a.push(i);B.setIndex(a),g=B.getIndex()}const I=g.count-2,Q=[];if(A===l.TriangleFanDrawMode)for(let a=1;a<=I;a++)Q.push(g.getX(0)),Q.push(g.getX(a)),Q.push(g.getX(a+1));else for(let a=0;a<I;a++)a%2==0?(Q.push(g.getX(a)),Q.push(g.getX(a+1)),Q.push(g.getX(a+2))):(Q.push(g.getX(a+2)),Q.push(g.getX(a+1)),Q.push(g.getX(a)));Q.length/3!==I&&console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");const C=B.clone();return C.setIndex(Q),C.clearGroups(),C}return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:",A),B}class XQ{constructor(A){this.gltfLoader=A,this.tempMatrix=new x.Matrix4,this.zUpToYUpMatrix=new x.Matrix4,this.zUpToYUpMatrix.set(1,0,0,0,0,0,-1,0,0,1,0,0,0,0,0,1)}parseB3DM(A,g,I,Q){const C=this,a=new DataView(A),e=String.fromCharCode(a.getUint8(0))+String.fromCharCode(a.getUint8(1))+String.fromCharCode(a.getUint8(2))+String.fromCharCode(a.getUint8(3));console.assert(e==="b3dm");const i=a.getUint32(8,!0);console.assert(i===A.byteLength);const t=a.getUint32(12,!0),E=a.getUint32(16,!0),o=a.getUint32(20,!0),r=a.getUint32(24,!0),n=new PQ(A,28,t,E),s=28+t+E;new je(A,n.getData("BATCH_LENGTH"),s,o,r);const c=s+o+r,d=new Uint8Array(A,c,i-c).slice().buffer;return new Promise(async(D,h)=>{await this.checkLoaderInitialized(),this.gltfLoader.parse(d,null,u=>{const f=n.getData("RTC_CENTER");f?(this.tempMatrix.makeTranslation(f[0],f[1],f[2]),u.scene.applyMatrix4(this.tempMatrix)):u.userData.gltfExtensions&&u.userData.gltfExtensions.CESIUM_RTC&&(this.tempMatrix.makeTranslation(u.userData.gltfExtensions.CESIUM_RTC.center[0],u.userData.gltfExtensions.CESIUM_RTC.center[1],u.userData.gltfExtensions.CESIUM_RTC.center[2]),u.scene.applyMatrix4(this.tempMatrix)),I&&u.scene.applyMatrix4(C.zUpToYUpMatrix),u.scene.asset=u.asset,u.scene.traverse(R=>{R.isMesh&&(Q&&R.applyMatrix4(C.zUpToYUpMatrix),g&&g(R))}),D(u.scene)},u=>{console.error(u)})})}checkLoaderInitialized=async()=>new Promise(A=>{const g=setInterval(()=>{this.gltfLoader.hasDracoLoader&&!this.gltfLoader.dracoLoader||this.gltfLoader.hasKTX2Loader&&!this.gltfLoader.ktx2Loader||(clearInterval(g),A())},10)});parseB3DMInstanced(A,g,I,Q,C){return this.parseB3DM(A,g,Q,C).then(a=>{let e,i=[],t=[];a.updateWorldMatrix(!1,!0),a.traverse(o=>{o.isMesh&&(o.geometry.applyMatrix4(o.matrixWorld),i.push(o.geometry),t.push(o.material))});let E=function(o){let r=new Set;return o.forEach(s=>{for(let c in s.attributes)r.add(c)}),o.forEach(s=>{r.forEach(c=>{if(!s.attributes[c]){const d=function(h){switch(h){case"position":case"normal":case"color":return 3;case"uv":case"uv2":return 2;default:throw new Error(`Unknown attribute ${h}`)}}(c),D=new Float32Array(d*s.getAttribute("position").count).fill(0);s.setAttribute(c,new x.BufferAttribute(D,d))}})}),function(s,c=!1){const d=s[0].index!==null,D=new Set(Object.keys(s[0].attributes)),h=new Set(Object.keys(s[0].morphAttributes)),u={},f={},R=s[0].morphTargetsRelative,G=new l.BufferGeometry;let k=0;for(let F=0;F<s.length;++F){const m=s[F];let N=0;if(d!==(m.index!==null))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+F+". All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them."),null;for(const S in m.attributes){if(!D.has(S))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+F+'. All geometries must have compatible attributes; make sure "'+S+'" attribute exists among all geometries, or in none of them.'),null;u[S]===void 0&&(u[S]=[]),u[S].push(m.attributes[S]),N++}if(N!==D.size)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+F+". Make sure all geometries have the same number of attributes."),null;if(R!==m.morphTargetsRelative)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+F+". .morphTargetsRelative must be consistent throughout all geometries."),null;for(const S in m.morphAttributes){if(!h.has(S))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+F+". .morphAttributes must be consistent throughout all geometries."),null;f[S]===void 0&&(f[S]=[]),f[S].push(m.morphAttributes[S])}if(c){let S;if(d)S=m.index.count;else{if(m.attributes.position===void 0)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+F+". The geometry must have either an index or a position attribute"),null;S=m.attributes.position.count}G.addGroup(k,S,F),k+=S}}if(d){let F=0;const m=[];for(let N=0;N<s.length;++N){const S=s[N].index;for(let j=0;j<S.count;++j)m.push(S.getX(j)+F);F+=s[N].attributes.position.count}G.setIndex(m)}for(const F in u){const m=VQ(u[F]);if(!m)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the "+F+" attribute."),null;G.setAttribute(F,m)}for(const F in f){const m=f[F][0].length;if(m===0)break;G.morphAttributes=G.morphAttributes||{},G.morphAttributes[F]=[];for(let N=0;N<m;++N){const S=[];for(let z=0;z<f[F].length;++z)S.push(f[F][z][N]);const j=VQ(S);if(!j)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the "+F+" morphAttribute."),null;G.morphAttributes[F].push(j)}}return G}(o,!0)}(i);return e=new x.InstancedMesh(E,t,I),e.baseMatrix=new x.Matrix4().identity(),e})}}async function ve(B={}){var A,g,I=B,Q=typeof window=="object",C=typeof WorkerGlobalScope<"u",a=typeof process=="object"&&((A=process.versions)==null?void 0:A.node)&&process.type!="renderer";if(a){const{createRequire:w}=await Promise.resolve().then(()=>We);var e=w(typeof document>"u"&&typeof location>"u"?require("url").pathToFileURL(__filename).href:typeof document>"u"?location.href:rI&&rI.tagName.toUpperCase()==="SCRIPT"&&rI.src||new URL("threedtiles.umd.js",document.baseURI).href)}var i,t="./this.program",E=typeof document>"u"&&typeof location>"u"?require("url").pathToFileURL(__filename).href:typeof document>"u"?location.href:rI&&rI.tagName.toUpperCase()==="SCRIPT"&&rI.src||new URL("threedtiles.umd.js",document.baseURI).href;if(a){var o=e("fs");E.startsWith("file:")&&e("path").dirname(e("url").fileURLToPath(E)),i=w=>(w=z(w)?new URL(w):w,o.readFileSync(w)),1<process.argv.length&&(t=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2)}else if(Q||C){try{new URL(".",E)}catch{}C&&(i=w=>{var b=new XMLHttpRequest;return b.open("GET",w,!1),b.responseType="arraybuffer",b.send(null),new Uint8Array(b.response)})}var r,n,s,c,d,D,h,u,f,R,G,k,F,m,N=console.log.bind(console),S=console.error.bind(console),j=!1,z=w=>w.startsWith("file://"),$=!1;function _(){var w=c.buffer;d=new Int8Array(w),h=new Int16Array(w),I.HEAPU8=D=new Uint8Array(w),u=new Uint16Array(w),f=new Int32Array(w),R=new Uint32Array(w),I.HEAPF32=G=new Float32Array(w),k=new Float64Array(w),F=new BigInt64Array(w),m=new BigUint64Array(w)}var X,CA=0,sA=null;function oA(w){var b;throw(b=I.onAbort)==null||b.call(I,w),S(w="Aborted("+w+")"),j=!0,w=new WebAssembly.RuntimeError(w+". Build with -sASSERTIONS for more info."),s?.(w),w}async function fA(w){var b=X;try{var p=await async function(y){if(!ArrayBuffer.isView(y))if(y==X&&r)y=new Uint8Array(r);else{if(!i)throw"both async and sync fetching of the wasm failed";y=i(y)}return y}(b);return await WebAssembly.instantiate(p,w)}catch(y){S(`failed to asynchronously prepare wasm: ${y}`),oA(y)}}var bA=w=>{for(;0<w.length;)w.shift()(I)},iA=[],yA=[],EA=()=>{var w=I.preRun.shift();yA.push(w)},cA={},pA=w=>{for(;w.length;){var b=w.pop();w.pop()(b)}};function GA(w){return this.N(R[w>>2])}var nA={},hA={},JA={},vA=class extends Error{constructor(w){super(w),this.name="InternalError"}},sg=(w,b,p)=>{function y(P){if((P=p(P)).length!==w.length)throw new vA("Mismatched type converter count");for(var IA=0;IA<w.length;++IA)U(w[IA],P[IA])}w.forEach(P=>JA[P]=b);var L=Array(b.length),O=[],K=0;b.forEach((P,IA)=>{hA.hasOwnProperty(P)?L[IA]=hA[P]:(O.push(P),nA.hasOwnProperty(P)||(nA[P]=[]),nA[P].push(()=>{L[IA]=hA[P],++K===O.length&&y(L)}))}),O.length===0&&y(L)},OA=w=>{for(var b="";;){var p=D[w++];if(!p)return b;b+=String.fromCharCode(p)}},dA=class extends Error{constructor(w){super(w),this.name="BindingError"}},M=w=>{throw new dA(w)};function U(w,b,p={}){return function(y,L,O={}){var K=L.name;if(!y)throw new dA(`type "${K}" must have a positive integer typeid pointer`);if(hA.hasOwnProperty(y)){if(O.wa)return;throw new dA(`Cannot register type '${K}' twice`)}hA[y]=L,delete JA[y],nA.hasOwnProperty(y)&&(L=nA[y],delete nA[y],L.forEach(P=>P()))}(w,b,p)}var J=(w,b,p)=>{switch(b){case 1:return p?y=>d[y]:y=>D[y];case 2:return p?y=>h[y>>1]:y=>u[y>>1];case 4:return p?y=>f[y>>2]:y=>R[y>>2];case 8:return p?y=>F[y>>3]:y=>m[y>>3];default:throw new TypeError(`invalid integer width (${b}): ${w}`)}},H=w=>{throw new dA(w.L.P.M.name+" instance already deleted")},v=!1,W=()=>{},Z=w=>typeof FinalizationRegistry>"u"?(Z=b=>b,w):(v=new FinalizationRegistry(b=>{--(b=b.L).count.value,b.count.value===0&&(b.S?b.W.Y(b.S):b.P.M.Y(b.O))}),Z=b=>{var p=b.L;return p.S&&v.register(b,{L:p},b),b},W=b=>{v.unregister(b)},Z(w));function T(){}var gA=(w,b)=>Object.defineProperty(b,"name",{value:w}),V={},MA=(w,b,p)=>{if(w[b].R===void 0){var y=w[b];w[b]=function(...L){if(!w[b].R.hasOwnProperty(L.length))throw new dA(`Function '${p}' called with an invalid number of arguments (${L.length}) - expects one of (${w[b].R})!`);return w[b].R[L.length].apply(this,L)},w[b].R=[],w[b].R[y.aa]=y}},uA=(w,b,p)=>{if(I.hasOwnProperty(w)){if(p===void 0||I[w].R!==void 0&&I[w].R[p]!==void 0)throw new dA(`Cannot register public name '${w}' twice`);if(MA(I,w,w),I[w].R.hasOwnProperty(p))throw new dA(`Cannot register multiple overloads of a function with the same number of arguments (${p})!`);I[w].R[p]=b}else I[w]=b,I[w].aa=p};function xA(w,b,p,y,L,O,K,P){this.name=w,this.constructor=b,this.$=p,this.Y=y,this.U=L,this.ra=O,this.ea=K,this.pa=P,this.ya=[]}var zA=(w,b,p)=>{for(;b!==p;){if(!b.ea)throw new dA(`Expected null or instance of ${p.name}, got an instance of ${b.name}`);w=b.ea(w),b=b.U}return w},og=w=>{if(w===null)return"null";var b=typeof w;return b==="object"||b==="array"||b==="function"?w.toString():""+w};function cg(w,b){if(b===null){if(this.ha)throw new dA(`null is not a valid ${this.name}`);return 0}if(!b.L)throw new dA(`Cannot pass "${og(b)}" as a ${this.name}`);if(!b.L.O)throw new dA(`Cannot pass deleted object as a pointer of type ${this.name}`);return zA(b.L.O,b.L.P.M,this.M)}function pg(w,b){if(b===null){if(this.ha)throw new dA(`null is not a valid ${this.name}`);if(this.ga){var p=this.ia();return w!==null&&w.push(this.Y,p),p}return 0}if(!b||!b.L)throw new dA(`Cannot pass "${og(b)}" as a ${this.name}`);if(!b.L.O)throw new dA(`Cannot pass deleted object as a pointer of type ${this.name}`);if(!this.fa&&b.L.P.fa)throw new dA(`Cannot convert argument of type ${b.L.W?b.L.W.name:b.L.P.name} to parameter type ${this.name}`);if(p=zA(b.L.O,b.L.P.M,this.M),this.ga){if(b.L.S===void 0)throw new dA("Passing raw pointer to smart pointer is illegal");switch(this.Da){case 0:if(b.L.W!==this)throw new dA(`Cannot convert argument of type ${b.L.W?b.L.W.name:b.L.P.name} to parameter type ${this.name}`);p=b.L.S;break;case 1:p=b.L.S;break;case 2:if(b.L.W===this)p=b.L.S;else{var y=b.clone();p=this.za(p,PI(()=>y.delete())),w!==null&&w.push(this.Y,p)}break;default:throw new dA("Unsupporting sharing policy")}}return p}function zg(w,b){if(b===null){if(this.ha)throw new dA(`null is not a valid ${this.name}`);return 0}if(!b.L)throw new dA(`Cannot pass "${og(b)}" as a ${this.name}`);if(!b.L.O)throw new dA(`Cannot pass deleted object as a pointer of type ${this.name}`);if(b.L.P.fa)throw new dA(`Cannot convert argument of type ${b.L.P.name} to parameter type ${this.name}`);return zA(b.L.O,b.L.P.M,this.M)}var tI=(w,b,p)=>b===p?w:p.U===void 0||(w=tI(w,b,p.U))===null?null:p.pa(w),SQ={},RI=(w,b)=>{if(!b.P||!b.O)throw new vA("makeClassHandle requires ptr and ptrType");if(!!b.W!=!!b.S)throw new vA("Both smartPtrType and smartPtr must be specified");return b.count={value:1},Z(Object.create(w,{L:{value:b,writable:!0}}))};function kI(w,b,p,y,L,O,K,P,IA,QA,BA){this.name=w,this.M=b,this.ha=p,this.fa=y,this.ga=L,this.xa=O,this.Da=K,this.na=P,this.ia=IA,this.za=QA,this.Y=BA,L||b.U!==void 0?this.T=pg:(this.T=y?cg:zg,this.V=null)}var MB,GB=(w,b,p)=>{if(!I.hasOwnProperty(w))throw new vA("Replacing nonexistent public symbol");I[w].R!==void 0&&p!==void 0?I[w].R[p]=b:(I[w]=b,I[w].aa=p)},hg=(w,b)=>{w=OA(w);var p=MB.get(b);if(typeof p!="function")throw new dA(`unknown function pointer with signature ${w}: ${b}`);return p};class LQ extends Error{}var RB=w=>{w=xe(w);var b=OA(w);return AI(w),b},mI=(w,b)=>{var p=[],y={};throw b.forEach(function L(O){y[O]||hA[O]||(JA[O]?JA[O].forEach(L):(p.push(O),y[O]=!0))}),new LQ(`${w}: `+p.map(RB).join([", "]))},vI=(w,b)=>{for(var p=[],y=0;y<w;y++)p.push(R[b+4*y>>2]);return p};function kB(w){for(var b=1;b<w.length;++b)if(w[b]!==null&&w[b].V===void 0)return!0;return!1}function qI(w,b,p,y,L,O){var K=b.length;if(2>K)throw new dA("argTypes array size mismatch! Must at least get return value and 'this' types!");var P=b[1]!==null&&p!==null,IA=kB(b);p=!b[0].ma;var QA=b[0],BA=b[1];for(y=[w,M,y,L,pA,QA.N.bind(QA),BA?.T.bind(BA)],L=2;L<K;++L)QA=b[L],y.push(QA.T.bind(QA));if(!IA)for(L=P?1:2;L<b.length;++L)b[L].V!==null&&y.push(b[L].V);for(IA=kB(b),L=b.length-2,BA=[],QA=["fn"],P&&QA.push("thisWired"),K=0;K<L;++K)BA.push(`arg${K}`),QA.push(`arg${K}Wired`);BA=BA.join(","),QA=QA.join(","),BA=`return function (${BA}) {
|
|
7
7
|
`,IA&&(BA+=`var destructors = [];
|
|
8
|
-
`);var
|
|
9
|
-
`),
|
|
10
|
-
`,Dg.push(Qg)}if(BA+=(
|
|
8
|
+
`);var RA=IA?"destructors":"null",Dg="humanName throwBindingError invoker fn runDestructors fromRetWire toClassParamWire".split(" ");for(P&&(BA+=`var thisWired = toClassParamWire(${RA}, this);
|
|
9
|
+
`),K=0;K<L;++K){var Qg=`toArg${K}Wire`;BA+=`var arg${K}Wired = ${Qg}(${RA}, arg${K});
|
|
10
|
+
`,Dg.push(Qg)}if(BA+=(p||O?"var rv = ":"")+`invoker(${QA});
|
|
11
11
|
`,IA)BA+=`runDestructors(destructors);
|
|
12
|
-
`;else for(
|
|
13
|
-
`,Dg.push(`${
|
|
12
|
+
`;else for(K=P?1:2;K<b.length;++K)O=K===1?"thisWired":"arg"+(K-2)+"Wired",b[K].V!==null&&(BA+=`${O}_dtor(${O});
|
|
13
|
+
`,Dg.push(`${O}_dtor`));return p&&(BA+=`var ret = fromRetWire(rv);
|
|
14
14
|
return ret;
|
|
15
|
-
`),
|
|
16
|
-
`)(...F),AA(l,u)}for(var jI,GB=l=>{const u=(l=l.trim()).indexOf("(");return u===-1?l:l.slice(0,u)},RB=[],zg=[0,1,,1,null,1,!0,1,!1,1],qI=l=>{9<l&&--zg[l+1]==0&&(zg[l]=void 0,RB.push(l))},vI=l=>{if(!l)throw new hA(`Cannot use deleted val. handle = ${l}`);return zg[l]},TI=l=>{switch(l){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:const u=RB.pop()||zg.length;return zg[u]=l,zg[u+1]=1,u}},pB={name:"emscripten::val",N:l=>{var u=vI(l);return qI(l),u},T:(l,u)=>TI(u),X:RA,V:null},kQ=(l,u,y)=>{switch(u){case 1:return y?function(F){return this.N(D[F])}:function(F){return this.N(b[F])};case 2:return y?function(F){return this.N(h[F>>1])}:function(F){return this.N(w[F>>1])};case 4:return y?function(F){return this.N(f[F>>2])}:function(F){return this.N(p[F>>2])};default:throw new TypeError(`invalid integer width (${u}): ${l}`)}},NB=(l,u)=>{var y=cA[l];if(y===void 0)throw l=`${u} has unknown type ${yB(l)}`,new hA(l);return y},mQ=(l,u)=>{switch(u){case 4:return function(y){return this.N(R[y>>2])};case 8:return function(y){return this.N(m[y>>3])};default:throw new TypeError(`invalid float width (${u}): ${l}`)}},SQ=Object.assign({optional:!0},pB),Xg=(l,u,y)=>{var F=b;if(!(0<y))return 0;var L=u;y=u+y-1;for(var T=0;T<l.length;++T){var H=l.codePointAt(T);if(127>=H){if(u>=y)break;F[u++]=H}else if(2047>=H){if(u+1>=y)break;F[u++]=192|H>>6,F[u++]=128|63&H}else if(65535>=H){if(u+2>=y)break;F[u++]=224|H>>12,F[u++]=128|H>>6&63,F[u++]=128|63&H}else{if(u+3>=y)break;F[u++]=240|H>>18,F[u++]=128|H>>12&63,F[u++]=128|H>>6&63,F[u++]=128|63&H,T++}}return F[u]=0,u-L},kB=l=>{for(var u=0,y=0;y<l.length;++y){var F=l.charCodeAt(y);127>=F?u++:2047>=F?u+=2:55296<=F&&57343>=F?(u+=4,++y):u+=3}return u},mB=new TextDecoder,OI=(l,u,y,F)=>{if(y=u+y,F)return y;for(;l[u]&&!(u>=y);)++u;return u},tI=new TextDecoder("utf-16le"),DA=(l,u,y)=>(l>>=1,tI.decode(w.subarray(l,OI(w,l,u/2,y)))),hg=(l,u,y)=>{if(y??(y=2147483647),2>y)return 0;var F=u;y=(y-=2)<2*l.length?y/2:l.length;for(var L=0;L<y;++L)h[u>>1]=l.charCodeAt(L),u+=2;return h[u>>1]=0,u-F},WI=l=>2*l.length,Zg=(l,u,y)=>{var F="";l>>=2;for(var L=0;!(L>=u/4);L++){var T=p[l+L];if(!T&&!y)break;F+=String.fromCodePoint(T)}return F},oI=(l,u,y)=>{if(y??(y=2147483647),4>y)return 0;var F=u;y=F+y-4;for(var L=0;L<l.length;++L){var T=l.codePointAt(L);if(65535<T&&L++,f[u>>2]=T,(u+=4)+4>y)break}return f[u>>2]=0,u-F},UQ=l=>{for(var u=0,y=0;y<l.length;++y)65535<l.codePointAt(y)&&y++,u+=4;return u},LQ=[],go=(l,u,y)=>{var F=[];return l=l(F,y),F.length&&(p[u>>2]=TI(F)),l},Io={},Bo=l=>{var u=Io[l];return u===void 0?OA(l):u},JQ={},ya=()=>{if(!jI){var l,u={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(typeof navigator=="object"&&navigator.language||"C").replace("-","_")+".UTF-8",_:t||"./this.program"};for(l in JQ)JQ[l]===void 0?delete u[l]:u[l]=JQ[l];var y=[];for(l in u)y.push(`${l}=${u[l]}`);jI=y}return jI},Qo=[null,[],[]],Jg=new Uint8Array(123),_g=25;0<=_g;--_g)Jg[48+_g]=52+_g,Jg[65+_g]=_g,Jg[97+_g]=26+_g;Jg[43]=62,Jg[47]=63,(()=>{let l=v.prototype;Object.assign(l,{isAliasOf:function(y){if(!(this instanceof v&&y instanceof v))return!1;var F=this.L.P.M,L=this.L.O;y.L=y.L;var T=y.L.P.M;for(y=y.L.O;F.U;)L=F.ea(L),F=F.U;for(;T.U;)y=T.ea(y),T=T.U;return F===T&&L===y},clone:function(){if(this.L.O||x(this),this.L.da)return this.L.count.value+=1,this;var y=Z,F=Object,L=F.create,T=Object.getPrototypeOf(this),H=this.L;return(y=y(L.call(F,T,{L:{value:{count:H.count,ba:H.ba,da:H.da,O:H.O,P:H.P,S:H.S,W:H.W}}}))).L.count.value+=1,y.L.ba=!1,y},delete(){if(this.L.O||x(this),this.L.ba&&!this.L.da)throw new hA("Object already scheduled for deletion");O(this);var y=this.L;--y.count.value,y.count.value===0&&(y.S?y.W.Y(y.S):y.P.M.Y(y.O)),this.L.da||(this.L.S=void 0,this.L.O=void 0)},isDeleted:function(){return!this.L.O},deleteLater:function(){if(this.L.O||x(this),this.L.ba&&!this.L.da)throw new hA("Object already scheduled for deletion");return this.L.ba=!0,this}});const u=Symbol.dispose;u&&(l[u]=l.delete)})(),Object.assign(pI.prototype,{sa(l){return this.na&&(l=this.na(l)),l},ka(l){var u;(u=this.Y)==null||u.call(this,l)},X:RA,N:function(l){function u(){return this.ga?RI(this.M.$,{P:this.xa,O:y,W:this,S:l}):RI(this.M.$,{P:this,O:l})}var y=this.sa(l);if(!y)return this.ka(l),null;var F=((T,H)=>{if(H===void 0)throw new hA("ptr should not be undefined");for(;T.U;)H=T.ea(H),T=T.U;return pQ[H]})(this.M,y);if(F!==void 0)return F.L.count.value===0?(F.L.O=y,F.L.S=l,F.clone()):(F=F.clone(),this.ka(l),F);if(F=this.M.ra(y),!(F=V[F]))return u.call(this);F=this.fa?F.oa:F.pointerType;var L=iI(y,this.M,F.M);return L===null?u.call(this):this.ga?RI(F.M.$,{P:F,O:L,W:this,S:l}):RI(F.M.$,{P:F,O:L})}}),I.print&&(U=I.print),I.printErr&&(S=I.printErr),I.wasmBinary&&(s=I.wasmBinary),I.thisProgram&&(t=I.thisProgram);var Ma,YQ,$g,Co={x:()=>sA(""),q:l=>{var u=rA[l];delete rA[l];var y=u.ia,F=u.Y,L=u.la,T=L.map(H=>H.va).concat(L.map(H=>H.Ba));sg([l],T,H=>{var P={};return L.forEach((IA,QA)=>{var BA=H[QA],pA=IA.ta,Dg=IA.ua,Qg=H[QA+L.length],WA=IA.Aa,Cg=IA.Ca;P[IA.qa]={read:Yg=>BA.N(pA(Dg,Yg)),write:(Yg,PI)=>{var AI=[];WA(Cg,Yg,Qg.T(AI,PI)),yA(AI)},optional:H[QA].optional}}),[{name:u.name,N:IA=>{var QA,BA={};for(QA in P)BA[QA]=P[QA].read(IA);return F(IA),BA},T:(IA,QA)=>{for(var BA in P)if(!(BA in QA)&&!P[BA].optional)throw new TypeError(`Missing field: "${BA}"`);var pA=y();for(BA in P)P[BA].write(pA,QA[BA]);return IA!==null&&IA.push(F,pA),pA},X:RA,V:F}]})},n:(l,u,y,F,L)=>{u=OA(u);let T=H=>H;if(F=F===0n){const H=8*y;T=P=>BigInt.asUintN(H,P),L=T(L)}N(l,{name:u,N:T,T:(H,P)=>(typeof P=="number"&&(P=BigInt(P)),P),X:J(u,y,!F),V:null})},B:(l,u,y,F)=>{N(l,{name:u=OA(u),N:function(L){return!!L},T:function(L,T){return T?y:F},X:function(L){return this.N(b[L])},V:null})},j:(l,u,y,F,L,T,H,P,IA,QA,BA,pA,Dg)=>{BA=OA(BA),T=cg(L,T),P&&(P=cg(H,P)),QA&&(QA=cg(IA,QA)),Dg=cg(pA,Dg);var Qg=(WA=>{var Cg=(WA=WA.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return 48<=Cg&&57>=Cg?`_${WA}`:WA})(BA);bA(Qg,function(){NI(`Cannot construct ${BA} due to unbound types`,[F])}),sg([l,u,y],F?[F]:[],WA=>{if(WA=WA[0],F)var Cg=WA.M,Yg=Cg.$;else Yg=v.prototype;WA=AA(BA,function(...xQ){if(Object.getPrototypeOf(this)!==PI)throw new hA(`Use 'new' to construct ${BA}`);if(kg.Z===void 0)throw new hA(`${BA} has no accessible constructor`);var Ga=kg.Z[xQ.length];if(Ga===void 0)throw new hA(`Tried to invoke ctor of ${BA} with invalid number of parameters (${xQ.length}) - expected (${Object.keys(kg.Z).toString()}) parameters instead!`);return Ga.apply(this,xQ)});var PI=Object.create(Yg,{constructor:{value:WA}});WA.prototype=PI;var AI,kg=new YA(BA,WA,PI,Dg,Cg,T,P,QA);return kg.U&&((AI=kg.U).ja??(AI.ja=[]),kg.U.ja.push(kg)),Cg=new pI(BA,kg,!0,!1,!1),AI=new pI(BA+"*",kg,!1,!1,!1),Yg=new pI(BA+" const*",kg,!1,!0,!1),V[l]={pointerType:AI,oa:Yg},FB(Qg,WA),[Cg,AI,Yg]})},g:(l,u,y,F,L,T)=>{var H=HI(u,y);L=cg(F,L),sg([],[l],P=>{var IA=`constructor ${(P=P[0]).name}`;if(P.M.Z===void 0&&(P.M.Z=[]),P.M.Z[u-1]!==void 0)throw new hA(`Cannot register multiple constructors with identical number of parameters (${u-1}) for class '${P.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return P.M.Z[u-1]=()=>{NI(`Cannot construct ${P.name} due to unbound types`,H)},sg([],H,QA=>(QA.splice(1,0,null),P.M.Z[u-1]=KI(IA,QA,null,L,T),[])),[]})},b:(l,u,y,F,L,T,H,P,IA)=>{var QA=HI(y,F);u=OA(u),u=GB(u),T=cg(L,T),sg([],[l],BA=>{function pA(){NI(`Cannot call ${Dg} due to unbound types`,QA)}var Dg=`${(BA=BA[0]).name}.${u}`;u.startsWith("@@")&&(u=Symbol[u.substring(2)]),P&&BA.M.ya.push(u);var Qg=BA.M.$,WA=Qg[u];return WA===void 0||WA.R===void 0&&WA.className!==BA.name&&WA.aa===y-2?(pA.aa=y-2,pA.className=BA.name,Qg[u]=pA):(MA(Qg,u,Dg),Qg[u].R[y-2]=pA),sg([],QA,Cg=>(Cg=KI(Dg,Cg,BA,T,H,IA),Qg[u].R===void 0?(Cg.aa=y-2,Qg[u]=Cg):Qg[u].R[y-2]=Cg,[])),[]})},z:l=>N(l,pB),r:(l,u,y,F)=>{function L(){}u=OA(u),L.values={},N(l,{name:u,constructor:L,N:function(T){return this.constructor.values[T]},T:(T,H)=>H.value,X:kQ(u,y,F),V:null}),bA(u,L)},d:(l,u,y)=>{var F=NB(l,"enum");u=OA(u),l=F.constructor,F=Object.create(F.constructor.prototype,{value:{value:y},constructor:{value:AA(`${F.name}_${u}`,function(){})}}),l.values[y]=F,l[u]=F},m:(l,u,y)=>{N(l,{name:u=OA(u),N:F=>F,T:(F,L)=>L,X:mQ(u,y),V:null})},l:(l,u,y,F,L,T,H)=>{var P=HI(u,y);l=OA(l),l=GB(l),L=cg(F,L),bA(l,function(){NI(`Cannot call ${l} due to unbound types`,P)},u-1),sg([],P,IA=>(IA=[IA[0],null].concat(IA.slice(1)),FB(l,KI(l,IA,null,L,T,H),u-1),[]))},c:(l,u,y,F,L)=>{u=OA(u);let T=P=>P;if(F===0){var H=32-8*y;T=P=>P<<H>>>H,L=T(L)}N(l,{name:u,N:T,T:(P,IA)=>IA,X:J(u,y,F!==0),V:null})},a:(l,u,y)=>{function F(T){return new L(D.buffer,p[T+4>>2],p[T>>2])}var L=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][u];N(l,{name:y=OA(y),N:F,X:F},{wa:!0})},h:l=>{N(l,SQ)},A:(l,u)=>{N(l,{name:u=OA(u),N(y){var F=(F=y+4)?mB.decode(b.subarray(F,OI(b,F,p[y>>2],!0))):"";return $g(y),F},T(y,F){F instanceof ArrayBuffer&&(F=new Uint8Array(F));var L=typeof F=="string";if(!(L||ArrayBuffer.isView(F)&&F.BYTES_PER_ELEMENT==1))throw new hA("Cannot pass non-string to std::string");var T=L?kB(F):F.length,H=YQ(4+T+1),P=H+4;return p[H>>2]=T,L?Xg(F,P,T+1):b.set(F,P),y!==null&&y.push($g,H),H},X:RA,V(y){$g(y)}})},f:(l,u,y)=>{if(y=OA(y),u===2)var F=DA,L=hg,T=WI;else F=Zg,L=oI,T=UQ;N(l,{name:y,N:H=>{var P=F(H+4,p[H>>2]*u,!0);return $g(H),P},T:(H,P)=>{if(typeof P!="string")throw new hA(`Cannot pass non-string to C++ string type ${y}`);var IA=T(P),QA=YQ(4+IA+u);return p[QA>>2]=IA/u,L(P,QA+4,IA+u),H!==null&&H.push($g,QA),QA},X:RA,V(H){$g(H)}})},i:(l,u,y,F,L,T)=>{rA[l]={name:OA(u),ia:cg(y,F),Y:cg(L,T),la:[]}},e:(l,u,y,F,L,T,H,P,IA,QA)=>{rA[l].la.push({qa:OA(u),va:y,ta:cg(F,L),ua:T,Ba:H,Aa:cg(P,IA),Ca:QA})},C:(l,u)=>{N(l,{ma:!0,name:u=OA(u),N:()=>{},T:()=>{}})},p:(l,u,y)=>{var[F,...L]=((IA,QA)=>{for(var BA=Array(IA),pA=0;pA<IA;++pA)BA[pA]=NB(p[QA+4*pA>>2],`parameter ${pA}`);return BA})(l,u);u=F.T.bind(F);var T=L.map(IA=>IA.X.bind(IA));l--;var H={toValue:vI};switch(l=T.map((IA,QA)=>{var BA=`argFromPtr${QA}`;return H[BA]=IA,`${BA}(args${QA?"+"+8*QA:""})`}),y){case 0:var P="toValue(handle)";break;case 2:P="new (toValue(handle))";break;case 3:P="";break;case 1:H.getStringOrSymbol=Bo,P="toValue(handle)[getStringOrSymbol(methodName)]"}return P+=`(${l})`,F.ma||(H.toReturnWire=u,H.emval_returnValue=go,P=`return emval_returnValue(toReturnWire, destructorsRef, ${P})`),P=`return function (handle, methodName, destructorsRef, args) {
|
|
15
|
+
`),b=new Function(Dg,BA+`}
|
|
16
|
+
`)(...y),gA(w,b)}for(var TI,mB=w=>{const b=(w=w.trim()).indexOf("(");return b===-1?w:w.slice(0,b)},NB=[],Xg=[0,1,,1,null,1,!0,1,!1,1],OI=w=>{9<w&&--Xg[w+1]==0&&(Xg[w]=void 0,NB.push(w))},WI=w=>{if(!w)throw new dA(`Cannot use deleted val. handle = ${w}`);return Xg[w]},PI=w=>{switch(w){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:const b=NB.pop()||Xg.length;return Xg[b]=w,Xg[b+1]=1,b}},UB={name:"emscripten::val",N:w=>{var b=WI(w);return OI(w),b},T:(w,b)=>PI(b),X:GA,V:null},JQ=(w,b,p)=>{switch(b){case 1:return p?function(y){return this.N(d[y])}:function(y){return this.N(D[y])};case 2:return p?function(y){return this.N(h[y>>1])}:function(y){return this.N(u[y>>1])};case 4:return p?function(y){return this.N(f[y>>2])}:function(y){return this.N(R[y>>2])};default:throw new TypeError(`invalid integer width (${b}): ${w}`)}},SB=(w,b)=>{var p=hA[w];if(p===void 0)throw w=`${b} has unknown type ${RB(w)}`,new dA(w);return p},xQ=(w,b)=>{switch(b){case 4:return function(p){return this.N(G[p>>2])};case 8:return function(p){return this.N(k[p>>3])};default:throw new TypeError(`invalid float width (${b}): ${w}`)}},YQ=Object.assign({optional:!0},UB),Zg=(w,b,p)=>{var y=D;if(!(0<p))return 0;var L=b;p=b+p-1;for(var O=0;O<w.length;++O){var K=w.codePointAt(O);if(127>=K){if(b>=p)break;y[b++]=K}else if(2047>=K){if(b+1>=p)break;y[b++]=192|K>>6,y[b++]=128|63&K}else if(65535>=K){if(b+2>=p)break;y[b++]=224|K>>12,y[b++]=128|K>>6&63,y[b++]=128|63&K}else{if(b+3>=p)break;y[b++]=240|K>>18,y[b++]=128|K>>12&63,y[b++]=128|K>>6&63,y[b++]=128|63&K,O++}}return y[b]=0,b-L},LB=w=>{for(var b=0,p=0;p<w.length;++p){var y=w.charCodeAt(p);127>=y?b++:2047>=y?b+=2:55296<=y&&57343>=y?(b+=4,++p):b+=3}return b},JB=new TextDecoder,VI=(w,b,p,y)=>{if(p=b+p,y)return p;for(;w[b]&&!(b>=p);)++b;return b},oI=new TextDecoder("utf-16le"),DA=(w,b,p)=>(w>>=1,oI.decode(u.subarray(w,VI(u,w,b/2,p)))),dg=(w,b,p)=>{if(p??(p=2147483647),2>p)return 0;var y=b;p=(p-=2)<2*w.length?p/2:w.length;for(var L=0;L<p;++L)h[b>>1]=w.charCodeAt(L),b+=2;return h[b>>1]=0,b-y},zI=w=>2*w.length,_g=(w,b,p)=>{var y="";w>>=2;for(var L=0;!(L>=b/4);L++){var O=R[w+L];if(!O&&!p)break;y+=String.fromCodePoint(O)}return y},nI=(w,b,p)=>{if(p??(p=2147483647),4>p)return 0;var y=b;p=y+p-4;for(var L=0;L<w.length;++L){var O=w.codePointAt(L);if(65535<O&&L++,f[b>>2]=O,(b+=4)+4>p)break}return f[b>>2]=0,b-y},HQ=w=>{for(var b=0,p=0;p<w.length;++p)65535<w.codePointAt(p)&&p++,b+=4;return b},KQ=[],so=(w,b,p)=>{var y=[];return w=w(y,p),y.length&&(R[b>>2]=PI(y)),w},co={},ho=w=>{var b=co[w];return b===void 0?OA(w):b},jQ={},Je=()=>{if(!TI){var w,b={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(typeof navigator=="object"&&navigator.language||"C").replace("-","_")+".UTF-8",_:t||"./this.program"};for(w in jQ)jQ[w]===void 0?delete b[w]:b[w]=jQ[w];var p=[];for(w in b)p.push(`${w}=${b[w]}`);TI=p}return TI},Do=[null,[],[]],xg=new Uint8Array(123),$g=25;0<=$g;--$g)xg[48+$g]=52+$g,xg[65+$g]=$g,xg[97+$g]=26+$g;xg[43]=62,xg[47]=63,(()=>{let w=T.prototype;Object.assign(w,{isAliasOf:function(p){if(!(this instanceof T&&p instanceof T))return!1;var y=this.L.P.M,L=this.L.O;p.L=p.L;var O=p.L.P.M;for(p=p.L.O;y.U;)L=y.ea(L),y=y.U;for(;O.U;)p=O.ea(p),O=O.U;return y===O&&L===p},clone:function(){if(this.L.O||H(this),this.L.da)return this.L.count.value+=1,this;var p=Z,y=Object,L=y.create,O=Object.getPrototypeOf(this),K=this.L;return(p=p(L.call(y,O,{L:{value:{count:K.count,ba:K.ba,da:K.da,O:K.O,P:K.P,S:K.S,W:K.W}}}))).L.count.value+=1,p.L.ba=!1,p},delete(){if(this.L.O||H(this),this.L.ba&&!this.L.da)throw new dA("Object already scheduled for deletion");W(this);var p=this.L;--p.count.value,p.count.value===0&&(p.S?p.W.Y(p.S):p.P.M.Y(p.O)),this.L.da||(this.L.S=void 0,this.L.O=void 0)},isDeleted:function(){return!this.L.O},deleteLater:function(){if(this.L.O||H(this),this.L.ba&&!this.L.da)throw new dA("Object already scheduled for deletion");return this.L.ba=!0,this}});const b=Symbol.dispose;b&&(w[b]=w.delete)})(),Object.assign(kI.prototype,{sa(w){return this.na&&(w=this.na(w)),w},ka(w){var b;(b=this.Y)==null||b.call(this,w)},X:GA,N:function(w){function b(){return this.ga?RI(this.M.$,{P:this.xa,O:p,W:this,S:w}):RI(this.M.$,{P:this,O:w})}var p=this.sa(w);if(!p)return this.ka(w),null;var y=((O,K)=>{if(K===void 0)throw new dA("ptr should not be undefined");for(;O.U;)K=O.ea(K),O=O.U;return SQ[K]})(this.M,p);if(y!==void 0)return y.L.count.value===0?(y.L.O=p,y.L.S=w,y.clone()):(y=y.clone(),this.ka(w),y);if(y=this.M.ra(p),!(y=V[y]))return b.call(this);y=this.fa?y.oa:y.pointerType;var L=tI(p,this.M,y.M);return L===null?b.call(this):this.ga?RI(y.M.$,{P:y,O:L,W:this,S:w}):RI(y.M.$,{P:y,O:L})}}),I.print&&(N=I.print),I.printErr&&(S=I.printErr),I.wasmBinary&&(r=I.wasmBinary),I.thisProgram&&(t=I.thisProgram);var xe,vQ,AI,lo={x:()=>oA(""),q:w=>{var b=cA[w];delete cA[w];var p=b.ia,y=b.Y,L=b.la,O=L.map(K=>K.va).concat(L.map(K=>K.Ba));sg([w],O,K=>{var P={};return L.forEach((IA,QA)=>{var BA=K[QA],RA=IA.ta,Dg=IA.ua,Qg=K[QA+L.length],WA=IA.Aa,Cg=IA.Ca;P[IA.qa]={read:Yg=>BA.N(RA(Dg,Yg)),write:(Yg,XI)=>{var gI=[];WA(Cg,Yg,Qg.T(gI,XI)),pA(gI)},optional:K[QA].optional}}),[{name:b.name,N:IA=>{var QA,BA={};for(QA in P)BA[QA]=P[QA].read(IA);return y(IA),BA},T:(IA,QA)=>{for(var BA in P)if(!(BA in QA)&&!P[BA].optional)throw new TypeError(`Missing field: "${BA}"`);var RA=p();for(BA in P)P[BA].write(RA,QA[BA]);return IA!==null&&IA.push(y,RA),RA},X:GA,V:y}]})},n:(w,b,p,y,L)=>{b=OA(b);let O=K=>K;if(y=y===0n){const K=8*p;O=P=>BigInt.asUintN(K,P),L=O(L)}U(w,{name:b,N:O,T:(K,P)=>(typeof P=="number"&&(P=BigInt(P)),P),X:J(b,p,!y),V:null})},B:(w,b,p,y)=>{U(w,{name:b=OA(b),N:function(L){return!!L},T:function(L,O){return O?p:y},X:function(L){return this.N(D[L])},V:null})},j:(w,b,p,y,L,O,K,P,IA,QA,BA,RA,Dg)=>{BA=OA(BA),O=hg(L,O),P&&(P=hg(K,P)),QA&&(QA=hg(IA,QA)),Dg=hg(RA,Dg);var Qg=(WA=>{var Cg=(WA=WA.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return 48<=Cg&&57>=Cg?`_${WA}`:WA})(BA);uA(Qg,function(){mI(`Cannot construct ${BA} due to unbound types`,[y])}),sg([w,b,p],y?[y]:[],WA=>{if(WA=WA[0],y)var Cg=WA.M,Yg=Cg.$;else Yg=T.prototype;WA=gA(BA,function(...qQ){if(Object.getPrototypeOf(this)!==XI)throw new dA(`Use 'new' to construct ${BA}`);if(Ng.Z===void 0)throw new dA(`${BA} has no accessible constructor`);var Ye=Ng.Z[qQ.length];if(Ye===void 0)throw new dA(`Tried to invoke ctor of ${BA} with invalid number of parameters (${qQ.length}) - expected (${Object.keys(Ng.Z).toString()}) parameters instead!`);return Ye.apply(this,qQ)});var XI=Object.create(Yg,{constructor:{value:WA}});WA.prototype=XI;var gI,Ng=new xA(BA,WA,XI,Dg,Cg,O,P,QA);return Ng.U&&((gI=Ng.U).ja??(gI.ja=[]),Ng.U.ja.push(Ng)),Cg=new kI(BA,Ng,!0,!1,!1),gI=new kI(BA+"*",Ng,!1,!1,!1),Yg=new kI(BA+" const*",Ng,!1,!0,!1),V[w]={pointerType:gI,oa:Yg},GB(Qg,WA),[Cg,gI,Yg]})},g:(w,b,p,y,L,O)=>{var K=vI(b,p);L=hg(y,L),sg([],[w],P=>{var IA=`constructor ${(P=P[0]).name}`;if(P.M.Z===void 0&&(P.M.Z=[]),P.M.Z[b-1]!==void 0)throw new dA(`Cannot register multiple constructors with identical number of parameters (${b-1}) for class '${P.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return P.M.Z[b-1]=()=>{mI(`Cannot construct ${P.name} due to unbound types`,K)},sg([],K,QA=>(QA.splice(1,0,null),P.M.Z[b-1]=qI(IA,QA,null,L,O),[])),[]})},b:(w,b,p,y,L,O,K,P,IA)=>{var QA=vI(p,y);b=OA(b),b=mB(b),O=hg(L,O),sg([],[w],BA=>{function RA(){mI(`Cannot call ${Dg} due to unbound types`,QA)}var Dg=`${(BA=BA[0]).name}.${b}`;b.startsWith("@@")&&(b=Symbol[b.substring(2)]),P&&BA.M.ya.push(b);var Qg=BA.M.$,WA=Qg[b];return WA===void 0||WA.R===void 0&&WA.className!==BA.name&&WA.aa===p-2?(RA.aa=p-2,RA.className=BA.name,Qg[b]=RA):(MA(Qg,b,Dg),Qg[b].R[p-2]=RA),sg([],QA,Cg=>(Cg=qI(Dg,Cg,BA,O,K,IA),Qg[b].R===void 0?(Cg.aa=p-2,Qg[b]=Cg):Qg[b].R[p-2]=Cg,[])),[]})},z:w=>U(w,UB),r:(w,b,p,y)=>{function L(){}b=OA(b),L.values={},U(w,{name:b,constructor:L,N:function(O){return this.constructor.values[O]},T:(O,K)=>K.value,X:JQ(b,p,y),V:null}),uA(b,L)},d:(w,b,p)=>{var y=SB(w,"enum");b=OA(b),w=y.constructor,y=Object.create(y.constructor.prototype,{value:{value:p},constructor:{value:gA(`${y.name}_${b}`,function(){})}}),w.values[p]=y,w[b]=y},m:(w,b,p)=>{U(w,{name:b=OA(b),N:y=>y,T:(y,L)=>L,X:xQ(b,p),V:null})},l:(w,b,p,y,L,O,K)=>{var P=vI(b,p);w=OA(w),w=mB(w),L=hg(y,L),uA(w,function(){mI(`Cannot call ${w} due to unbound types`,P)},b-1),sg([],P,IA=>(IA=[IA[0],null].concat(IA.slice(1)),GB(w,qI(w,IA,null,L,O,K),b-1),[]))},c:(w,b,p,y,L)=>{b=OA(b);let O=P=>P;if(y===0){var K=32-8*p;O=P=>P<<K>>>K,L=O(L)}U(w,{name:b,N:O,T:(P,IA)=>IA,X:J(b,p,y!==0),V:null})},a:(w,b,p)=>{function y(O){return new L(d.buffer,R[O+4>>2],R[O>>2])}var L=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][b];U(w,{name:p=OA(p),N:y,X:y},{wa:!0})},h:w=>{U(w,YQ)},A:(w,b)=>{U(w,{name:b=OA(b),N(p){var y=(y=p+4)?JB.decode(D.subarray(y,VI(D,y,R[p>>2],!0))):"";return AI(p),y},T(p,y){y instanceof ArrayBuffer&&(y=new Uint8Array(y));var L=typeof y=="string";if(!(L||ArrayBuffer.isView(y)&&y.BYTES_PER_ELEMENT==1))throw new dA("Cannot pass non-string to std::string");var O=L?LB(y):y.length,K=vQ(4+O+1),P=K+4;return R[K>>2]=O,L?Zg(y,P,O+1):D.set(y,P),p!==null&&p.push(AI,K),K},X:GA,V(p){AI(p)}})},f:(w,b,p)=>{if(p=OA(p),b===2)var y=DA,L=dg,O=zI;else y=_g,L=nI,O=HQ;U(w,{name:p,N:K=>{var P=y(K+4,R[K>>2]*b,!0);return AI(K),P},T:(K,P)=>{if(typeof P!="string")throw new dA(`Cannot pass non-string to C++ string type ${p}`);var IA=O(P),QA=vQ(4+IA+b);return R[QA>>2]=IA/b,L(P,QA+4,IA+b),K!==null&&K.push(AI,QA),QA},X:GA,V(K){AI(K)}})},i:(w,b,p,y,L,O)=>{cA[w]={name:OA(b),ia:hg(p,y),Y:hg(L,O),la:[]}},e:(w,b,p,y,L,O,K,P,IA,QA)=>{cA[w].la.push({qa:OA(b),va:p,ta:hg(y,L),ua:O,Ba:K,Aa:hg(P,IA),Ca:QA})},C:(w,b)=>{U(w,{ma:!0,name:b=OA(b),N:()=>{},T:()=>{}})},p:(w,b,p)=>{var[y,...L]=((IA,QA)=>{for(var BA=Array(IA),RA=0;RA<IA;++RA)BA[RA]=SB(R[QA+4*RA>>2],`parameter ${RA}`);return BA})(w,b);b=y.T.bind(y);var O=L.map(IA=>IA.X.bind(IA));w--;var K={toValue:WI};switch(w=O.map((IA,QA)=>{var BA=`argFromPtr${QA}`;return K[BA]=IA,`${BA}(args${QA?"+"+8*QA:""})`}),p){case 0:var P="toValue(handle)";break;case 2:P="new (toValue(handle))";break;case 3:P="";break;case 1:K.getStringOrSymbol=ho,P="toValue(handle)[getStringOrSymbol(methodName)]"}return P+=`(${w})`,y.ma||(K.toReturnWire=b,K.emval_returnValue=so,P=`return emval_returnValue(toReturnWire, destructorsRef, ${P})`),P=`return function (handle, methodName, destructorsRef, args) {
|
|
17
17
|
${P}
|
|
18
|
-
}`,y=new Function(Object.keys(H),P)(...Object.values(H)),P=`methodCaller<(${L.map(IA=>IA.name)}) => ${F.name}>`,(IA=>{var QA=LQ.length;return LQ.push(IA),QA})(AA(P,y))},E:qI,o:(l,u,y,F,L)=>LQ[l](u,y,F,L),D:l=>{var u=vI(l);yA(u),qI(l)},s:(l,u,y,F)=>{var L=new Date().getFullYear(),T=new Date(L,0,1).getTimezoneOffset();L=new Date(L,6,1).getTimezoneOffset(),p[l>>2]=60*Math.max(T,L),f[u>>2]=+(T!=L),u=H=>{var P=Math.abs(H);return`UTC${0<=H?"-":"+"}${String(Math.floor(P/60)).padStart(2,"0")}${String(P%60).padStart(2,"0")}`},l=u(T),u=u(L),L<T?(Xg(l,y,17),Xg(u,F,17)):(Xg(l,F,17),Xg(u,y,17))},y:l=>{var u=b.length;if(2147483648<(l>>>=0))return!1;for(var y=1;4>=y;y*=2){var F=u*(1+.2/y);F=Math.min(F,l+100663296);A:{F=(Math.min(2147483648,65536*Math.ceil(Math.max(l,F)/65536))-c.buffer.byteLength+65535)/65536|0;try{c.grow(F),$();var L=1;break A}catch{}L=void 0}if(L)return!0}return!1},t:(l,u)=>{var y,F=0,L=0;for(y of ya()){var T=u+F;p[l+L>>2]=T,F+=Xg(y,T,1/0)+1,L+=4}return 0},u:(l,u)=>{var y=ya();for(var F of(p[l>>2]=y.length,l=0,y))l+=kB(F)+1;return p[u>>2]=l,0},v:()=>52,w:function(){return 70},k:(l,u,y,F)=>{for(var L=0,T=0;T<y;T++){var H=p[u>>2],P=p[u+4>>2];u+=8;for(var IA=0;IA<P;IA++){var QA=l,BA=b[H+IA],pA=Qo[QA];BA===0||BA===10?(QA=QA===1?U:S,BA=OI(pA,0),QA(BA=mB.decode(pA.buffer?pA.subarray(0,BA):new Uint8Array(pA.slice(0,BA)))),pA.length=0):pA.push(BA)}L+=P}return p[F>>2]=L,0}},kI=await async function(){var l;function u(F){var L;return kI=F.exports,c=kI.F,$(),fB=kI.H,Ma=(F=kI).I,I._malloc=YQ=F.J,I._free=$g=F.K,aA--,(L=I.monitorRunDependencies)==null||L.call(I,aA),aA==0&&wA&&(F=wA,wA=null,F()),kI}aA++,(l=I.monitorRunDependencies)==null||l.call(I,aA);var y={a:Co};return I.instantiateWasm?new Promise(F=>{I.instantiateWasm(y,(L,T)=>{F(u(L))})}):(X??(X=(F=>{if(E)return F=Buffer.from(F,"base64"),new Uint8Array(F.buffer,F.byteOffset,F.length);for(var L,T,H=0,P=0,IA=F.length,QA=new Uint8Array((3*IA>>2)-(F[IA-2]=="=")-(F[IA-1]=="="));H<IA;H+=4,P+=3)L=Jg[F.charCodeAt(H+1)],T=Jg[F.charCodeAt(H+2)],QA[P]=Jg[F.charCodeAt(H)]<<2|L>>4,QA[P+1]=L<<4|T>>2,QA[P+2]=T<<6|Jg[F.charCodeAt(H+3)];return QA})("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C0EAEKEDRQRAQZiDASEBIARBmIMBQRgQiwFFDQJBsIMBIQEgBEGwgwFBGBCLAUUNAkEAIQBBvO4BLQAARQRAA0AgAEECdCAAQcYfEKIDNgKM7gEgAEEBaiIAQQZHDQALQbzuAUEBOgAAQaTuAUGM7gEoAgA2AgALQYzuASEBIAJBCGoiAEGM7gFBGBCLAUUNAkGk7gEhASAAQaTuAUEYEIsBRQ0CQRgQNCIBRQ0BCyABIAIpAgg3AgAgASACKQIYNwIQIAEgAikCEDcCCAwBC0EAIQELIAJBIGokAEGc8QFBAToAAEGY8QEgATYCACABC80KAgV/CX4jAEHgAGsiBSQAIARC////////P4MhCiACIASFQoCAgICAgICAgH+DIQsgAkL///////8/gyIMQiCIIQ8gBEIwiKdB//8BcSEHAkACQCACQjCIp0H//wFxIglB//8Ba0GCgH5PBEAgB0H//wFrQYGAfksNAQsgAVAgAkL///////////8AgyINQoCAgICAgMD//wBUIA1CgICAgICAwP//AFEbRQRAIAJCgICAgICAIIQhCwwCCyADUCAEQv///////////wCDIgJCgICAgICAwP//AFQgAkKAgICAgIDA//8AURtFBEAgBEKAgICAgIAghCELIAMhAQwCCyABIA1CgICAgICAwP//AIWEUARAIAIgA4RQBEBCgICAgICA4P//ACELQgAhAQwDCyALQoCAgICAgMD//wCEIQtCACEBDAILIAMgAkKAgICAgIDA//8AhYRQBEAgASANhEIAIQFQBEBCgICAgICA4P//ACELDAMLIAtCgICAgICAwP//AIQhCwwCCyABIA2EUARAQgAhAQwCCyACIAOEUARAQgAhAQwCCyANQv///////z9YBEAgBUHQAGogASAMIAEgDCAMUCIGG3lCwABCACAGG3ynIgZBD2sQREEQIAZrIQYgBSkDWCIMQiCIIQ8gBSkDUCEBCyACQv///////z9WDQAgBUFAayADIAogAyAKIApQIggbeULAAEIAIAgbfKciCEEPaxBEIAYgCGtBEGohBiAFKQNIIQogBSkDQCEDCyAHIAlqIAZqQf//AGshBgJAIApCD4YiDkIgiEKAgICACIQiAiABQiCIIgR+IhAgA0IPhiIRQiCIIgogD0KAgASEIg1+fCIPIBBUrSAPIANCMYggDoRC/////w+DIgMgDEL/////D4MiDH58Ig4gD1StfCACIA1+fCAOIA4gEUKAgP7/D4MiDyAMfiIRIAQgCn58IhAgEVStIBAgECADIAFC/////w+DIgF+fCIQVq18fCIOVq18IAMgDX4iEiACIAx+fCIRIBJUrUIghiARQiCIhHwgDiAOIBFCIIZ8Ig5WrXwgDiANIA9+Ig0gCiAMfnwiDCABIAJ+fCICIAMgBH58IgNCIIggAiADVq0gDCANVK0gAiAMVK18fEIghoR8IgIgDlStfCACIBAgBCAPfiIMIAEgCn58IgRCIIggBCAMVK1CIIaEfCIKIBBUrSAKIANCIIZ8IgMgClStfHwiCiACVK18IAogAyAEQiCGIgIgASAPfnwiASACVK18IgIgA1StfCIEIApUrXwiA0KAgICAgIDAAINQRQRAIAZBAWohBgwBCyABQj+IIANCAYYgBEI/iIQhAyAEQgGGIAJCP4iEIQQgAUIBhiEBIAJCAYaEIQILIAZB//8BTgRAIAtCgICAgICAwP//AIQhC0IAIQEMAQsCfiAGQQBMBEBBASAGayIHQf8ATQRAIAVBMGogASACIAZB/wBqIgYQRCAFQSBqIAQgAyAGEEQgBUEQaiABIAIgBxCKASAFIAQgAyAHEIoBIAUpAzAgBSkDOIRCAFKtIAUpAyAgBSkDEISEIQEgBSkDKCAFKQMYhCECIAUpAwAhBCAFKQMIDAILQgAhAQwCCyADQv///////z+DIAatQjCGhAsgC4QhCyABUCACQgBZIAJCgICAgICAgICAf1EbRQRAIAsgBEIBfCIBUK18IQsMAQsgASACQoCAgICAgICAgH+FhFBFBEAgBCEBDAELIAsgBCAEQgGDfCIBIARUrXwhCwsgACABNwMAIAAgCzcDCCAFQeAAaiQACwYAIAAQLQt8AQN/IwBBEGsiASQAIAEgADYCDCMAQRBrIgIkACAAKAIAQX9HBEAgAkEIaiACQQxqIAFBDGoQVRBVIQMDQCAAKAIAQQFGDQALIAAoAgBFBEAgAEEBNgIAIAMQ0gIgAEF/NgIACwsgAkEQaiQAIAAoAgQgAUEQaiQAQQFrCyAAIAAgAUEBazYCBCAAQeDVATYCACAAQZCtATYCACAAC/cFAQl/IwBBEGsiCSQAIAEQ1wIgCUEMaiABEFUhCCAAQQhqIgMQayACTQRAAkAgAkEBaiIAIAMQayIBSwRAIwBBIGsiCiQAAkAgACABayIHIAMoAgggAygCBGtBAnVNBEAgAyAHENkCDAELIApBDGohAQJ/IAMQayAHaiEFIwBBEGsiACQAIAAgBTYCDCAFELwCIgRNBEAgAxC5AiIFIARBAXZJBEAgACAFQQF0NgIIIABBCGogAEEMahCgASgCACEECyAAQRBqJAAgBAwBCxCMAQALIQQgAxBrIQUjAEEQayIAJAAgASADQQxqIgs2AhAgAUEANgIMIAQEfyAAQQhqIAsgBBC7AiAAKAIIIQYgACgCDAVBAAshBCABIAY2AgAgASAGIAVBAnRqIgU2AgggASAGIARBAnRqNgIMIAEgBTYCBCAAQRBqJAAjAEEQayIGJAAgASgCCCEEIAZBBGoiACABQQhqNgIIIAAgBDYCACAAIAQgB0ECdGo2AgQgACgCACEEA0AgACgCBCAERwRAIAEoAhAaIAQQugIgACAAKAIAQQRqIgQ2AgAMAQsLIAAoAgggACgCADYCACAGQRBqJAAgASgCBCADKAIAIgAgAygCBGtqIQQgAygCBCAAayIHBEAgBCAAIAf8CgAACyABIAQ2AgQgAyADKAIANgIEIAMgAUEEahDXASADQQRqIAFBCGoQ1wEgA0EIaiABQQxqENcBIAEgASgCBDYCACADEGsaIAEoAgQhAANAIAEoAggiBCAARwRAIAEgBEEEazYCCCABKAIQGgwBCwsgASgCACIABEAgASgCECAAIAEoAgwgASgCAGtBAnUQuAILCyAKQSBqJAAMAQsgACABSQRAIAMoAgAgAEECdGohACADEGsaIAMgABDYAgsLCyADIAIQggEoAgAEQCADIAIQggEoAgAQvwELIAgQrAEhACADIAIQggEgADYCACAIKAIAIQAgCEEANgIAIAAEQCAAEL8BCyAJQRBqJAALySgBC38jAEEQayIKJAACQAJAAkACQAJAAkACQAJAAkACQCAAQfQBTQRAQYzqASgCACIEQRAgAEELakH4A3EgAEELSRsiBkEDdiIAdiIBQQNxBEACQCABQX9zQQFxIABqIgJBA3QiAUG06gFqIgAgASgCvOoBIgEoAggiBUYEQEGM6gEgBEF+IAJ3cTYCAAwBCyAFIAA2AgwgACAFNgIICyABQQhqIQAgASACQQN0IgJBA3I2AgQgASACaiIBIAEoAgRBAXI2AgQMCwsgBkGU6gEoAgAiCE0NASABBEACQEECIAB0IgJBACACa3IgASAAdHFoIgFBA3QiAEG06gFqIgIgACgCvOoBIgAoAggiBUYEQEGM6gEgBEF+IAF3cSIENgIADAELIAUgAjYCDCACIAU2AggLIAAgBkEDcjYCBCAAIAZqIgcgAUEDdCIBIAZrIgVBAXI2AgQgACABaiAFNgIAIAgEQCAIQXhxQbTqAWohAUGg6gEoAgAhAgJ/IARBASAIQQN2dCIDcUUEQEGM6gEgAyAEcjYCACABDAELIAEoAggLIQMgASACNgIIIAMgAjYCDCACIAE2AgwgAiADNgIICyAAQQhqIQBBoOoBIAc2AgBBlOoBIAU2AgAMCwtBkOoBKAIAIgtFDQEgC2hBAnQoArzsASICKAIEQXhxIAZrIQMgAiEBA0ACQCABKAIQIgBFBEAgASgCFCIARQ0BCyAAKAIEQXhxIAZrIgEgAyABIANJIgEbIQMgACACIAEbIQIgACEBDAELCyACKAIYIQkgAiACKAIMIgBHBEAgAigCCCIBIAA2AgwgACABNgIIDAoLIAIoAhQiAQR/IAJBFGoFIAIoAhAiAUUNAyACQRBqCyEFA0AgBSEHIAEiAEEUaiEFIAAoAhQiAQ0AIABBEGohBSAAKAIQIgENAAsgB0EANgIADAkLQX8hBiAAQb9/Sw0AIABBC2oiAUF4cSEGQZDqASgCACIHRQ0AQR8hCEEAIAZrIQMgAEH0//8HTQRAIAZBJiABQQh2ZyIAa3ZBAXEgAEEBdGtBPmohCAsCQAJAAkAgCEECdCgCvOwBIgFFBEBBACEADAELQQAhACAGQRkgCEEBdmtBACAIQR9HG3QhAgNAAkAgASgCBEF4cSAGayIEIANPDQAgASEFIAQiAw0AQQAhAyABIQAMAwsgACABKAIUIgQgBCABIAJBHXZBBHFqKAIQIgFGGyAAIAQbIQAgAkEBdCECIAENAAsLIAAgBXJFBEBBACEFQQIgCHQiAEEAIABrciAHcSIARQ0DIABoQQJ0KAK87AEhAAsgAEUNAQsDQCAAKAIEQXhxIAZrIgIgA0khASACIAMgARshAyAAIAUgARshBSAAKAIQIgEEfyABBSAAKAIUCyIADQALCyAFRQ0AIANBlOoBKAIAIAZrTw0AIAUoAhghCCAFIAUoAgwiAEcEQCAFKAIIIgEgADYCDCAAIAE2AggMCAsgBSgCFCIBBH8gBUEUagUgBSgCECIBRQ0DIAVBEGoLIQIDQCACIQQgASIAQRRqIQIgACgCFCIBDQAgAEEQaiECIAAoAhAiAQ0ACyAEQQA2AgAMBwsgBkGU6gEoAgAiBU0EQEGg6gEoAgAhAAJAIAUgBmsiAUEQTwRAIAAgBmoiAiABQQFyNgIEIAAgBWogATYCACAAIAZBA3I2AgQMAQsgACAFQQNyNgIEIAAgBWoiASABKAIEQQFyNgIEQQAhAkEAIQELQZTqASABNgIAQaDqASACNgIAIABBCGohAAwJCyAGQZjqASgCACICSQRAQZjqASACIAZrIgE2AgBBpOoBQaTqASgCACIAIAZqIgI2AgAgAiABQQFyNgIEIAAgBkEDcjYCBCAAQQhqIQAMCQtBACEAIAZBL2oiAwJ/QeTtASgCAARAQeztASgCAAwBC0Hw7QFCfzcCAEHo7QFCgKCAgICABDcCAEHk7QEgCkEMakFwcUHYqtWqBXM2AgBB+O0BQQA2AgBByO0BQQA2AgBBgCALIgFqIgRBACABayIHcSIBIAZNDQhBxO0BKAIAIgUEQEG87QEoAgAiCCABaiIJIAhNIAUgCUlyDQkLAkBByO0BLQAAQQRxRQRAAkACQAJAAkBBpOoBKAIAIgUEQEHM7QEhAANAIAAoAgAiCCAFTQRAIAUgCCAAKAIEakkNAwsgACgCCCIADQALC0EAEKUBIgJBf0YNAyABIQRB6O0BKAIAIgBBAWsiBSACcQRAIAEgAmsgAiAFakEAIABrcWohBAsgBCAGTQ0DQcTtASgCACIABEBBvO0BKAIAIgUgBGoiByAFTSAAIAdJcg0ECyAEEKUBIgAgAkcNAQwFCyAEIAJrIAdxIgQQpQEiAiAAKAIAIAAoAgRqRg0BIAIhAAsgAEF/Rg0BIAZBMGogBE0EQCAAIQIMBAtB7O0BKAIAIgIgAyAEa2pBACACa3EiAhClAUF/Rg0BIAIgBGohBCAAIQIMAwsgAkF/Rw0CC0HI7QFByO0BKAIAQQRyNgIACyABEKUBIgJBf0ZBABClASIAQX9GciAAIAJNcg0FIAAgAmsiBCAGQShqTQ0FC0G87QFBvO0BKAIAIARqIgA2AgBBwO0BKAIAIABJBEBBwO0BIAA2AgALAkBBpOoBKAIAIgMEQEHM7QEhAANAIAIgACgCACIBIAAoAgQiBWpGDQIgACgCCCIADQALDAQLQZzqASgCACIAQQAgACACTRtFBEBBnOoBIAI2AgALQQAhAEHQ7QEgBDYCAEHM7QEgAjYCAEGs6gFBfzYCAEGw6gFB5O0BKAIANgIAQdjtAUEANgIAA0AgAEEDdCIBIAFBtOoBaiIFNgK86gEgASAFNgLA6gEgAEEBaiIAQSBHDQALQZjqASAEQShrIgBBeCACa0EHcSIBayIFNgIAQaTqASABIAJqIgE2AgAgASAFQQFyNgIEIAAgAmpBKDYCBEGo6gFB9O0BKAIANgIADAQLIAIgA00gASADS3INAiAAKAIMQQhxDQIgACAEIAVqNgIEQaTqASADQXggA2tBB3EiAGoiATYCAEGY6gFBmOoBKAIAIARqIgIgAGsiADYCACABIABBAXI2AgQgAiADakEoNgIEQajqAUH07QEoAgA2AgAMAwtBACEADAYLQQAhAAwEC0Gc6gEoAgAgAksEQEGc6gEgAjYCAAsgAiAEaiEFQcztASEAAkADQCAFIAAoAgAiAUcEQCAAKAIIIgANAQwCCwsgAC0ADEEIcUUNAwtBzO0BIQADQAJAIAAoAgAiASADTQRAIAMgASAAKAIEaiIFSQ0BCyAAKAIIIQAMAQsLQZjqASAEQShrIgBBeCACa0EHcSIBayIHNgIAQaTqASABIAJqIgE2AgAgASAHQQFyNgIEIAAgAmpBKDYCBEGo6gFB9O0BKAIANgIAIAMgBUEnIAVrQQdxakEvayIAIAAgA0EQakkbIgFBGzYCBCABQdTtASkCADcCECABQcztASkCADcCCEHU7QEgAUEIajYCAEHQ7QEgBDYCAEHM7QEgAjYCAEHY7QFBADYCACABQRhqIQADQCAAQQc2AgQgAEEIaiAAQQRqIQAgBUkNAAsgASADRg0AIAEgASgCBEF+cTYCBCADIAEgA2siAkEBcjYCBCABIAI2AgACfyACQf8BTQRAIAJBeHFBtOoBaiEAAn9BjOoBKAIAIgFBASACQQN2dCICcUUEQEGM6gEgASACcjYCACAADAELIAAoAggLIQEgACADNgIIIAEgAzYCDEEMIQJBCAwBC0EfIQAgAkH///8HTQRAIAJBJiACQQh2ZyIAa3ZBAXEgAEEBdGtBPmohAAsgAyAANgIcIANCADcCECAAQQJ0QbzsAWohAQJAAkBBkOoBKAIAIgVBASAAdCIEcUUEQEGQ6gEgBCAFcjYCACABIAM2AgAMAQsgAkEZIABBAXZrQQAgAEEfRxt0IQAgASgCACEFA0AgBSIBKAIEQXhxIAJGDQIgAEEddiEFIABBAXQhACABIAVBBHFqIgQoAhAiBQ0ACyAEIAM2AhALIAMgATYCGEEIIQIgAyIBIQBBDAwBCyABKAIIIgAgAzYCDCABIAM2AgggAyAANgIIQQAhAEEYIQJBDAsgA2ogATYCACACIANqIAA2AgALQZjqASgCACIAIAZNDQBBmOoBIAAgBmsiATYCAEGk6gFBpOoBKAIAIgAgBmoiAjYCACACIAFBAXI2AgQgACAGQQNyNgIEIABBCGohAAwEC0GI6gFBMDYCAEEAIQAMAwsgACACNgIAIAAgACgCBCAEajYCBCACQXggAmtBB3FqIgggBkEDcjYCBCABQXggAWtBB3FqIgQgBiAIaiIDayEHAkBBpOoBKAIAIARGBEBBpOoBIAM2AgBBmOoBQZjqASgCACAHaiIANgIAIAMgAEEBcjYCBAwBC0Gg6gEoAgAgBEYEQEGg6gEgAzYCAEGU6gFBlOoBKAIAIAdqIgA2AgAgAyAAQQFyNgIEIAAgA2ogADYCAAwBCyAEKAIEIgBBA3FBAUYEQCAAQXhxIQkgBCgCDCECAkAgAEH/AU0EQCAEKAIIIgEgAkYEQEGM6gFBjOoBKAIAQX4gAEEDdndxNgIADAILIAEgAjYCDCACIAE2AggMAQsgBCgCGCEGAkAgAiAERwRAIAQoAggiACACNgIMIAIgADYCCAwBCwJAIAQoAhQiAAR/IARBFGoFIAQoAhAiAEUNASAEQRBqCyEBA0AgASEFIAAiAkEUaiEBIAAoAhQiAA0AIAJBEGohASACKAIQIgANAAsgBUEANgIADAELQQAhAgsgBkUNAAJAIAQoAhwiAEECdCIBKAK87AEgBEYEQCABQbzsAWogAjYCACACDQFBkOoBQZDqASgCAEF+IAB3cTYCAAwCCwJAIAQgBigCEEYEQCAGIAI2AhAMAQsgBiACNgIUCyACRQ0BCyACIAY2AhggBCgCECIABEAgAiAANgIQIAAgAjYCGAsgBCgCFCIARQ0AIAIgADYCFCAAIAI2AhgLIAcgCWohByAEIAlqIgQoAgQhAAsgBCAAQX5xNgIEIAMgB0EBcjYCBCADIAdqIAc2AgAgB0H/AU0EQCAHQXhxQbTqAWohAAJ/QYzqASgCACIBQQEgB0EDdnQiAnFFBEBBjOoBIAEgAnI2AgAgAAwBCyAAKAIICyEBIAAgAzYCCCABIAM2AgwgAyAANgIMIAMgATYCCAwBC0EfIQIgB0H///8HTQRAIAdBJiAHQQh2ZyIAa3ZBAXEgAEEBdGtBPmohAgsgAyACNgIcIANCADcCECACQQJ0QbzsAWohAAJAAkBBkOoBKAIAIgFBASACdCIFcUUEQEGQ6gEgASAFcjYCACAAIAM2AgAMAQsgB0EZIAJBAXZrQQAgAkEfRxt0IQIgACgCACEBA0AgASIAKAIEQXhxIAdGDQIgAkEddiEBIAJBAXQhAiAAIAFBBHFqIgUoAhAiAQ0ACyAFIAM2AhALIAMgADYCGCADIAM2AgwgAyADNgIIDAELIAAoAggiASADNgIMIAAgAzYCCCADQQA2AhggAyAANgIMIAMgATYCCAsgCEEIaiEADAILAkAgCEUNAAJAIAUoAhwiAUECdCICKAK87AEgBUYEQCACQbzsAWogADYCACAADQFBkOoBIAdBfiABd3EiBzYCAAwCCwJAIAUgCCgCEEYEQCAIIAA2AhAMAQsgCCAANgIUCyAARQ0BCyAAIAg2AhggBSgCECIBBEAgACABNgIQIAEgADYCGAsgBSgCFCIBRQ0AIAAgATYCFCABIAA2AhgLAkAgA0EPTQRAIAUgAyAGaiIAQQNyNgIEIAAgBWoiACAAKAIEQQFyNgIEDAELIAUgBkEDcjYCBCAFIAZqIgQgA0EBcjYCBCADIARqIAM2AgAgA0H/AU0EQCADQXhxQbTqAWohAAJ/QYzqASgCACIBQQEgA0EDdnQiAnFFBEBBjOoBIAEgAnI2AgAgAAwBCyAAKAIICyEBIAAgBDYCCCABIAQ2AgwgBCAANgIMIAQgATYCCAwBC0EfIQAgA0H///8HTQRAIANBJiADQQh2ZyIAa3ZBAXEgAEEBdGtBPmohAAsgBCAANgIcIARCADcCECAAQQJ0QbzsAWohAQJAAkAgB0EBIAB0IgJxRQRAQZDqASACIAdyNgIAIAEgBDYCACAEIAE2AhgMAQsgA0EZIABBAXZrQQAgAEEfRxt0IQAgASgCACEBA0AgASICKAIEQXhxIANGDQIgAEEddiEBIABBAXQhACACIAFBBHFqIgcoAhAiAQ0ACyAHIAQ2AhAgBCACNgIYCyAEIAQ2AgwgBCAENgIIDAELIAIoAggiACAENgIMIAIgBDYCCCAEQQA2AhggBCACNgIMIAQgADYCCAsgBUEIaiEADAELAkAgCUUNAAJAIAIoAhwiAUECdCIFKAK87AEgAkYEQCAFQbzsAWogADYCACAADQFBkOoBIAtBfiABd3E2AgAMAgsCQCACIAkoAhBGBEAgCSAANgIQDAELIAkgADYCFAsgAEUNAQsgACAJNgIYIAIoAhAiAQRAIAAgATYCECABIAA2AhgLIAIoAhQiAUUNACAAIAE2AhQgASAANgIYCwJAIANBD00EQCACIAMgBmoiAEEDcjYCBCAAIAJqIgAgACgCBEEBcjYCBAwBCyACIAZBA3I2AgQgAiAGaiIFIANBAXI2AgQgAyAFaiADNgIAIAgEQCAIQXhxQbTqAWohAEGg6gEoAgAhAQJ/QQEgCEEDdnQiByAEcUUEQEGM6gEgBCAHcjYCACAADAELIAAoAggLIQQgACABNgIIIAQgATYCDCABIAA2AgwgASAENgIIC0Gg6gEgBTYCAEGU6gEgAzYCAAsgAkEIaiEACyAKQRBqJAAgAAsIACAAQQAQPAsVACAAIAE2AgAgACACKAIANgIEIAALCgAgACgCABC9AwsLACAAKAIAEMMDwAsXACAAEEcEQCAAKAIAIAAQfhCpAQsgAAs7AQJ/IwBBEGsiASQAIAEgADYCDCABKAIMIgAoAgAiAgRAIAAgAjYCBCAAKAIIGiACEC0LIAFBEGokAAstACACRQRAIAAoAgQgASgCBEYPCyAAIAFGBEBBAQ8LIAAoAgQgASgCBBDQAUULIQEBfyAAKAIAIQIgACABNgIAIAIEQCACIAAoAgQRAgALCwYAEMoDAAsNACAAKAIAELwDGiAACw0AIAAoAgAQnQIaIAALdQEBfiAAIAEgBH4gAiADfnwgA0IgiCICIAFCIIgiBH58IANC/////w+DIgMgAUL/////D4MiAX4iBUIgiCADIAR+fCIDQiCIfCABIAJ+IANC/////w+DfCIBQiCIfDcDCCAAIAVC/////w+DIAFCIIaENwMACxEAIAAgASAAKAIAKAIcEQQAC8EBAQN/IAAtAABBIHFFBEACQCAAKAIQIgMEfyADBSAAEN8BDQEgACgCEAsgACgCFCIEayACSQRAIAAgASACIAAoAiQRAwAaDAELAkACQCACRSAAKAJQQQBIcg0AIAIhAwNAIAEgA2oiBUEBay0AAEEKRwRAIANBAWsiAw0BDAILCyAAIAEgAyAAKAIkEQMAIANJDQIgAiADayECIAAoAhQhBAwBCyABIQULIAQgBSACEHEaIAAgACgCFCACajYCFAsLC6EBAQJ/AkAgABAfRSACIAFrQQVIcg0AIAEgAhDHASACQQRrIQQgABAjIgIgABAfaiEFAkADQAJAIAIsAAAhACABIARPDQAgAEEATCAAQf8ATnJFBEAgASgCACACLAAARw0DCyABQQRqIQEgAiAFIAJrQQFKaiECDAELCyAAQQBMIABB/wBOcg0BIAIsAAAgBCgCAEEBa0sNAQsgA0EENgIACwtQAQF+AkAgA0HAAHEEQCABIANBQGqthiECQgAhAQwBCyADRQ0AIAIgA60iBIYgAUHAACADa62IhCECIAEgBIYhAQsgACABNwMAIAAgAjcDCAtpAQF/IwBBgAJrIgUkACAEQYDABHEgAiADTHJFBEAgBSABIAIgA2siA0GAAiADQYACSSIBGxCYAiABRQRAA0AgACAFQYACEEIgA0GAAmsiA0H/AUsNAAsLIAAgBSADEEILIAVBgAJqJAALBABBAAsKACAALQALQQd2CwoAIABB0PIBEHoLCgAgAEHY8gEQegvPCQIEfwR+IwBB8ABrIgYkACAEQv///////////wCDIQkCQAJAIAFQIgUgAkL///////////8AgyIKQoCAgICAgMD//wB9QoCAgICAgMCAgH9UIApQG0UEQCADQgBSIAlCgICAgICAwP//AH0iC0KAgICAgIDAgIB/ViALQoCAgICAgMCAgH9RGw0BCyAFIApCgICAgICAwP//AFQgCkKAgICAgIDA//8AURtFBEAgAkKAgICAgIAghCEEIAEhAwwCCyADUCAJQoCAgICAgMD//wBUIAlCgICAgICAwP//AFEbRQRAIARCgICAgICAIIQhBAwCCyABIApCgICAgICAwP//AIWEUARAQoCAgICAgOD//wAgAiABIAOFIAIgBIVCgICAgICAgICAf4WEUCIFGyEEQgAgASAFGyEDDAILIAMgCUKAgICAgIDA//8AhYRQDQEgASAKhFAEQCADIAmEQgBSDQIgASADgyEDIAIgBIMhBAwCCyADIAmEUEUNACABIQMgAiEEDAELIAMgASABIANUIAkgClYgCSAKURsiCBshCiAEIAIgCBsiDEL///////8/gyEJIAIgBCAIGyILQjCIp0H//wFxIQcgDEIwiKdB//8BcSIFRQRAIAZB4ABqIAogCSAKIAkgCVAiBRt5QsAAQgAgBRt8pyIFQQ9rEEQgBikDaCEJIAYpA2AhCkEQIAVrIQULIAEgAyAIGyEDIAtC////////P4MhASAHBH4gAQUgBkHQAGogAyABIAMgASABUCIHG3lCwABCACAHG3ynIgdBD2sQREEQIAdrIQcgBikDUCEDIAYpA1gLQgOGIANCPYiEQoCAgICAgIAEhCEBIAlCA4YgCkI9iIQgAiAEhSEEAn4gA0IDhiICIAUgB0YNABogBSAHayIHQf8ASwRAQgAhAUIBDAELIAZBQGsgAiABQYABIAdrEEQgBkEwaiACIAEgBxCKASAGKQM4IQEgBikDMCAGKQNAIAYpA0iEQgBSrYQLIQlCgICAgICAgASEIQsgCkIDhiEKAkAgBEIAUwRAQgAhA0IAIQQgCSAKhSABIAuFhFANAiAKIAl9IQIgCyABfSAJIApWrX0iBEL/////////A1YNASAGQSBqIAIgBCACIAQgBFAiBxt5QsAAQgAgBxt8p0EMayIHEEQgBSAHayEFIAYpAyghBCAGKQMgIQIMAQsgCSAKfCICIAlUrSABIAt8fCIEQoCAgICAgIAIg1ANACAJQgGDIARCP4YgAkIBiISEIQIgBUEBaiEFIARCAYghBAsgDEKAgICAgICAgIB/gyEDIAVB//8BTgRAIANCgICAgICAwP//AIQhBEIAIQMMAQtBACEHAkAgBUEASgRAIAUhBwwBCyAGQRBqIAIgBCAFQf8AahBEIAYgAiAEQQEgBWsQigEgBikDACAGKQMQIAYpAxiEQgBSrYQhAiAGKQMIIQQLIARCPYYgAkIDiIQhASAEQgOIQv///////z+DIAetQjCGhCADhCEEAkACQCACp0EHcSIFQQRHBEAgBCABIAEgBUEES618IgNWrXwhBAwBCyAEIAEgASABQgGDfCIDVq18IQQMAQsgBUUN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C14BA38gAEEANgIIIABCADcCACABKAIAIQMgASgCBCIBIANrIgRBAnUiAgRAIAAgAhCuAyAAKAIEIQIgBEUgASADRnJFBEAgAiADIAT8CgAACyAAIAIgBGo2AgQLIAALDQAgACgCACABQQJ0agsXACAAEEcEQCAAIAE2AgQPCyAAIAEQUAthAQF/IwBBEGsiAiQAIAIgADYCDAJAIAAgAUYNAANAIAIgAUEBayIBNgIIIAAgAU8NASACKAIMIAIoAggQ8wIgAiACKAIMQQFqIgA2AgwgAigCCCEBDAALAAsgAkEQaiQAC6wBAQR/IwBBEGsiByQAAkAgAEUNACAEKAIMIQYgAiABa0ECdSIIQQBKBEAgACABIAgQjQIgCEcNAQsgAyABa0ECdSIBIAZIBEAgACAHQQRqIAYgAWsiASAFEP0CIgUQIyABEI0CIQYgBRA5GiABIAZHDQELIAMgAmtBAnUiAUEASgRAIAAgAiABEI0CIAFHDQELIAQoAgwaIARBADYCDCAAIQkLIAdBEGokACAJCycBAX8jAEEQayIDJAAgAyACNgIMIABB5AAgASACENEBIANBEGokAAvbAQIBfwJ+QQEhBAJAIABCAFIgAUL///////////8AgyIFQoCAgICAgMD//wBWIAVCgICAgICAwP//AFEbDQAgAkIAUiADQv///////////wCDIgZCgICAgICAwP//AFYgBkKAgICAgIDA//8AURsNACAAIAKEIAUgBoSEUARAQQAPCyABIAODQgBZBEAgACACVCABIANTIAEgA1EbBEBBfw8LIAAgAoUgASADhYRCAFIPCyAAIAJWIAEgA1UgASADURsEQEF/DwsgACAChSABIAOFhEIAUiEECyAEC+wBAQR/IwBBEGsiBCQAIABBADYCBCMAQRBrIgUkACAEQQA6AA8gACAAKAIAQQxrKAIAahDZASEGIAAgACgCAEEMaygCAGohAwJAIAYEQCADKAJIBEAgACAAKAIAQQxrKAIAaigCSBDFAwsgBCAAIAAoAgBBDGsoAgBqENkBOgAPDAELIANBBBDVAQsgBUEQaiQAQQQhAyAELQAPBEAgACAAIAAoAgBBDGsoAgBqKAIYIgMgASACIAMoAgAoAiARAwAiATYCBEEGQQAgASACRxshAwsgACAAKAIAQQxrKAIAaiADENUBIARB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AxsLPAAgAEEANgIIIABCADcCACAAIAEoAgA2AgAgACABKAIENgIEIAAgASgCCDYCCCABQQA2AgggAUIANwIACywBAX8gAEEANgIIIABCADcCACAAIAEoAgAiAiABKAIEIgEgASACaxDAAyAACwgAIABB/wFxC/wBAQN/IAAoAgQgACgCACIDa0ECdSICIAFJBEAjAEEgayIDJAACQCABIAJrIgIgACgCCCAAKAIEIgFrQQJ1TQRAIAAoAgQiASACQQJ0aiECA0AgASACRgRAIAAgAjYCBAUgAUEANgIAIAFBBGohAQwBCwsMAQsgA0EMaiAAIAEgACgCAGtBAnUgAmoQtgEgACgCBCAAKAIAa0ECdSAAEIcCIgQoAggiASACQQJ0aiECA0AgASACRwRAIAFBADYCACABQQRqIQEMAQsLIAQgAjYCCCAAIAQQhQIgBBCBAgsgA0EgaiQADwsgASACSQRAIAAgAyABQQJ0ajYCBAsLUgECf0HU3gEoAgAiASAAQQdqQXhxIgJqIQACQCACQQAgACABTRtFBEAgAD8AQRB0TQ0BIAAQGA0BC0GI6gFBMDYCAEF/DwtB1N4BIAA2AgAgAQt/AgF+A38CQCAAQoCAgIAQVARAIAAhAgwBCwNAIAFBAWsiASAAIABCCoAiAkIKfn2nQTByOgAAIABC/////58BViACIQANAAsLIAJQRQRAIAKnIQMDQCABQQFrIgEgAyADQQpuIgRBCmxrQTByOgAAIANBCUsgBCEDDQALCyABC78BAQN/IAAoAgQgACgCACIDayICIAFJBEAjAEEgayIDJAACQCABIAJrIgIgACgCCCAAKAIEIgFrTQRAIAAgAhCYAwwBCyACIANBDGogACABIAJqIAAoAgBrELQBIAAoAgQgACgCAGsgABDGASIEKAIIIgFqIQIDQCABIAJHBEAgAUEAOgAAIAFBAWohAQwBCwsgBCACNgIIIAAgBBDvASAEELoBCyADQSBqJAAPCyABIAJJBEAgACABIANqNgIECwt9AQN/AkACQCAAIgFBA3FFDQAgAS0AAEUEQEEADwsDQCABQQFqIgFBA3FFDQEgAS0AAA0ACwwBCwNAIAEiAkEEaiEBQYCChAggAigCACIDayADckGAgYKEeHFBgIGChHhGDQALA0AgAiIBQQFqIQIgAS0AAA0ACwsgASAA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BEBBCiEBIAAQXgwBCyAAEH5BAWshASAAKAIECyIDIAFGBEAgACABQQEgASABEPQBIAAQIxoMAQsgABAjGiAEDQAgACIBIANBAWoQUAwBCyAAKAIAIQEgACADQQFqNgIECyABIANqIgAgAkEPahBdIAJBADoADiAAQQFqIAJBDmoQXSACQRBqJAALoQIBA38jAEEgayIIJABB9////wciCSABQX9zaiACTwRAIAAQIyEKIAFB8////wNJBEAgCCABQQF0NgIcIAggASACajYCECAIQRBqIAhBHGoQoAEoAgAQnwFBAWohCQsgCEEcaiAIQRhqIAAQVSgCABC8ASAIQRBqIAkQngEgCCgCECECIAgoAhQaIAQEQCACIAogBBBNCyAGBEAgAiAEaiAHIAYQTQsgAyAEIAVqIglrIQcgAyAJRwRAIAIgBGogBmogBCAKaiAFaiAHEE0LIAFBCkcEQCAKEIsCCyAAIAI2AgAgACAIKAIUEFwgACAEIAZqIAdqIgA2AgQgCEEAOgAPIAAgAmogCEEPahBdIAhBHGoQuwEgCEEgaiQADwsQWwALCQAgAEEBEKgCCwoAIAAoAgAQHxoLCQAgACABEFUaCwcAIABBAkkLBABBBAsoAQF/IAAgACgCBEEBayIBNgIEIAFBf0YEQCAAIAAoAgAoAggRAgALC5UBAQN/IwBBEGsiBCQAIAQgATYCDCAEIAM2AgggBEEEaiAEQQxqEGMgBCgCCCEDIwBBEGsiASQAIAEgAzYCDCABIAM2AghBfyEFAkBBAEEAIAIgAxDRASIDQQBIDQAgACADQQFqIgMQNCIANgIAIABFDQAgACADIAIgASgCDBDRASEFCyABQRBqJAAQYiAEQRBqJAAgBQsPACAAIAAoAgAoAiQRAAALEQAgACABIAEoAgAoAiARAQALDgAgACABKAIANgIAIAALCABB/////wcLBQBB/wALOwAgACADNgIQIAAgAQR/IAEQUwVBAAsiAzYCACAAIAIgA2oiAjYCCCAAIAEgA2o2AgwgACACNgIEIAALYQEBfyMAQRBrIgIkACACIAA2AgwCQCAAIAFGDQADQCACIAFBBGsiATYCCCAAIAFPDQEgAigCDCACKAIIENcBIAIgAigCDEEEaiIANgIMIAIoAgghAQwACwALIAJBEGokAAs5AgF/AX4jAEEQayIEJAAgAykDACEFIAQgAykDCDcDCCAEIAU3AwAgACABIAIgBBDAASAEQRBqJAAL0AEBAn8gAkGAEHEEQCAAQSs6AAAgAEEBaiEACyACQYAIcQRAIABBIzoAACAAQQFqIQALIAJBhAJxIgNBhAJHBEAgAEGu1AA7AAAgAEECaiEACyACQYCAAXEhAgNAIAEtAAAiBARAIAAgBDoAACAAQQFqIQAgAUEBaiEBDAELCyAAAn8CQCADQYACRwRAIANBBEcNAUHGAEHmACACGwwCC0HFAEHlACACGwwBC0HBAEHhACACGyADQYQCRg0AGkHHAEHnACACGws6AAAgA0GEAkcLKwEBfyMAQRBrIgUkACAFIAQoAgA2AgAgACABIAIgAyAFEJYBIAVBEGokAAuqAQEBfwJAIANBgBBxRSACRXINACADQcoAcSIEQQhGIARBwABGcg0AIABBKzoAACAAQQFqIQALIANBgARxBEAgAEEjOgAAIABBAWohAAsDQCABLQAAIgQEQCAAIAQ6AAAgAEEBaiEAIAFBAWohAQwBCwsgAAJ/Qe8AIANBygBxIgFBwABGDQAaQdgAQfgAIANBgIABcRsgAUEIRg0AGkHkAEH1ACACGws6AAALDAAgABAjIAFBAnRqC5IEAQt/IwBBgAFrIgokACAKIAE2AnwgAiADELUCIQggCkHjADYCECAKQQhqQQAgCkEQaiIJEDYhDwJAAkACQCAIQeUATwRAIAgQNCIJRQ0BIA8gCRA8CyAJIQcgAiEBA0AgASADRgRAA0AgACAKQfwAaiIBECtBASAIGwRAIAAgARArBEAgBSAFKAIAQQJyNgIACwNAIAIgA0YNBiAJLQAAQQJGDQcgCUEBaiEJIAJBDGohAgwACwALIAAQNyEOIAZFBEAgBCAOEEEhDgsgDUEBaiEMQQAhECAJIQcgAiEBA0AgASADRgRAIAwhDSAQRQ0CIAAQPhogCSEHIAIhASAIIAtqQQJJDQIDQCABIANGBEAMBAUCQCAHLQAAQQJHDQAgARAfIA1GDQAgB0EAOgAAIAtBAWshCwsgB0EBaiEHIAFBDGohAQwBCwALAAUCQCAHLQAAQQFHDQAgASANEMwBKAIAIRECQCAGBH8gEQUgBCAREEELIA5GBEBBASEQIAEQHyAMRw0CIAdBAjoAACALQQFqIQsMAQsgB0EAOgAACyAIQQFrIQgLIAdBAWohByABQQxqIQEMAQsACwALAAUgB0ECQQEgARBaIgwbOgAAIAdBAWohByABQQxqIQEgCyAMaiELIAggDGshCAwBCwALAAsQPQALIAUgBSgCAEEEcjYCAAsgDxA1IApBgAFqJAAgAgsRACAAIAEgACgCACgCDBEEAAuTBAELfyMAQYABayIKJAAgCiABNgJ8IAIgAxC1AiEIIApB4wA2AhAgCkEIakEAIApBEGoiCRA2IQ8CQAJAAkAgCEHlAE8EQCAIEDQiCUUNASAPIAkQPAsgCSEHIAIhAQNAIAEgA0YEQANAIAAgCkH8AGoiARAsQQEgCBsEQCAAIAEQLARAIAUgBSgCAEECcjYCAAsDQCACIANGDQYgCS0AAEECRg0HIAlBAWohCSACQQxqIQIMAAsACyAAEDghDiAGRQRAIAQgDhDOASEOCyANQQFqIQxBACEQIAkhByACIQEDQCABIANGBEAgDCENIBBFDQIgABA/GiAJIQcgAiEBIAggC2pBAkkNAgNAIAEgA0YEQAwEBQJAIActAABBAkcNACABEB8gDUYNACAHQQA6AAAgC0EBayELCyAHQQFqIQcgAUEMaiEBDAELAAsABQJAIActAABBAUcNACABIA0QIiwAACERAkAgBgR/IBEFIAQgERDOAQsgDkYEQEEBIRAgARAfIAxHDQIgB0ECOgAAIAtBAWohCwwBCyAHQQA6AAALIAhBAWshCAsgB0EBaiEHIAFBDGohAQwBCwALAAsABSAHQQJBASABEFoiDBs6AAAgB0EBaiEHIAFBDGohASALIAxqIQsgCCAMayEIDAELAAsACxA9AAsgBSAFKAIAQQRyNgIACyAPEDUgCkGAAWokACACC0oBAn8CQCAALQAAIgJFIAIgAS0AACIDR3INAANAIAEtAAEhAyAALQABIgJFDQEgAUEBaiEBIABBAWohACACIANGDQALCyACIANrC4QBAQJ/IwBBoAFrIgQkACAEIAAgBEGeAWogARsiADYClAEgBCABQQFrIgVBACABIAVPGzYCmAEgBEEAQZAB/AsAIARBfzYCTCAEQeIANgIkIARBfzYCUCAEIARBnwFqNgIsIAQgBEGUAWo2AlQgAEEAOgAAIAQgAiADEM0DIARBoAFqJAALuwIBBH8gA0H87QEgAxsiBSgCACEDAkAC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IBAtIAAoAiQQLSAAKAIwEC0gACgCPBAtCyAACwcAIAEgAGsLDABBARDWARogABAtCwkAIAAQsQEQLQsTACAAIAEgAiAAKAIAKAIwEQMACwkAIAAQ2AEQLQsMACAAQQRqENoBIAALDAAgAEEIahDaASAACygBAn8jAEEQayICJAAgASgCACAAKAIASCEDIAJBEGokACABIAAgAxsLEAAgACABNwMIIABCADcDAAsCAAsUACAAQZj1ADYCACAAQQRqECUgAAvyAwICfgV/IwBBIGsiBSQAIAFC////////P4MhAgJ+IAFCMIhC//8BgyIDpyIEQYH4AGtB/Q9NBEAgAkIEhiAAQjyIhCECIARBgPgAa60hAwJAIABC//////////8PgyIAQoGAgICAgICACFoEQCACQgF8IQIMAQsgAEKAgICAgICAgAhSDQAgAkIBgyACfCECC0IAIAIgAkL/////////B1YiBBshACAErSADfAwBCyAAIAKEUCADQv//AVJyRQRAIAJCBIYgAEI8iIRCgICAgICAgASEIQBC/w8MAQsgBEH+hwFLBEBCACEAQv8PDAELQYD4AEGB+AAgA1AiBxsiCCAEayIGQfAASgRAQgAhAEIADAELIAVBEGogACACIAJCgICAgICAwACEIAcbIgJBgAEgBmsQRCAFIAAgAiAGEIoBIAUpAwhCBIYgBSkDACICQjyIhCEAAkAgBCAIRyAFKQMQIAUpAxiEQgBSca0gAkL//////////w+DhCICQoGAgICAgICACFoEQCAAQgF8IQAMAQsgAkKAgICAgICAgAhSDQAgAEIBgyAAfCEACyAAQoCAgICAgIAIhSAAIABC/////////wdWIgQbIQAgBK0LIQIgBUEgaiQAIAFCgICAgICAgICAf4MgAkI0hoQgAIS/C4kCAAJAIAAEfyABQf8ATQ0BAkBB3OEBKAIAKAIARQRAIAFBgH9xQYC/A0YNAwwBCyABQf8PTQRAIAAgAUE/cUGAAXI6AAEgACABQQZ2QcABcjoAAEECDwsgAUGAQHFBgMADRyABQYCwA09xRQRAIAAgAUE/cUGAAXI6AAIgACABQQx2QeABcjoAACAAIAFBBnZBP3FBgAFyOgABQQMPCyABQYCABGtB//8/TQRAIAAgAUE/cUGAAXI6AAMgACABQRJ2QfABcjoAACAA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AXI2AgQgCSAGIAkoAgBBAXFyQQJyNgIAIAEgBmoiAiACKAIEQQFyNgIEIAEgBhDbAQsCQCAAKAIEIgJBA3FFDQAgAkF4cSIBIAVBEGpNDQAgACAFIAJBAXFyQQJyNgIEIAAgBWoiBCABIAVrIgJBA3I2AgQgACABaiIBIAEoAgRBAXI2AgQgBCACENsBCyAAQQhqCwsiAEUNARogCCAANgIMQQAhAQsgAQshAEEAIAgoAgwgABshAQsgCEEQaiQAIAENAEHk/gEoAgAiAEUNACAAEQwADAELCyABRQRAEOsBCyABCwoAIAEgAGtBDG0LCQAgABAuNgIACyMBAn8gACEBA0AgASICQQRqIQEgAigCAA0ACyACIABrQQJ1Cy8BAX8jAEEQayIDJAACQCAAIAFGBEAgAEEAOgB4DAELIAEgAhCpAQsgA0EQaiQACxAAIAAoAgggACgCAGtBAnULCQAgAEEANgIAC0kBAX8jAEEQayIDJAACQAJAIAJBHksNACABLQB4QQFxDQAgAUEBOgB4DAELIAIQwQIhAQsgA0EQaiQAIAAgAjYCBCAAIAE2AgALOgECfyMAQRBrIgAkACAAQf////8DNgIMIABB/////wc2AgggAEEMaiAAQQhqELUDKAIAIABBEGokAAs0AQF/IwBBEGsiAyQAIAMgARBzNgIMIAMgAhBzNgIIIAAgA0EMaiADQQhqEGYgA0EQaiQAC04BAX8jAEEQayIDJAAgAyABNgIIIAMgADYCDCADIAI2AgRBACEBIANBBGoiACADQQxqENMBRQRAIAAgA0EIahDTASEBCyADQRBqJAAgAQswAQF/IwBBEGsiAyQAIAMgATYCDCADIAI2AgggACADQQxqIANBCGoQZiADQRBqJAALMwEBfyMAQRBrIgMkACAAEB8aIAAgAhCDASADQQA6AA8gASACaiADQQ9qEF0gA0EQaiQACzEAIABB/////wNLBEAQqgIACwJ/IABBAnQhAEEEENYBBEAgAEEEELQCDAELIAAQUwsLCQAgABDtARAtCxUAIABB8KoBNgIAIABBEGoQIBogAAsVACAAQciqATYCACAAQQxqECAaIAALgAMBBH8gAiEAA0ACQCAEIAdNIAAgA09yDQAgACwAACIBQf8BcSEFAn9BASABQQBODQAaIAFBQkkNASABQV9NBEAgAyAA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ZEYNAEEAIQAgC0EANgIQIBEgDygCACALKAJkIAtBEGoQQyALKAIQBEAgBSAFKAIAQQRyNgIADAELQQEhAAsgEBAgGiANECAaIA4QIBogDBAgGiARECAaIA8QNQwDCyACIQELIANBAWohAwwACwALIAtBkARqJAAgAAsMACAAQQFBLRD9AhoLCwAgAEEBQS0QsAILHAEBfyAALQAAIQIgACABLQAAOgAAIAEgAjoAAAtlAQF/IwBBEGsiBiQAIAZBADoADyAGIAU6AA4gBiAEOgANIAZBJToADCAFBEAgBkENaiAGQQ5qEPMCCyACIAEgASACKAIAEIoCIAZBDGogAyAAKAIAEJ4DIAFqNgIAIAZBEGokAAtBACABIAIgAyAEQQQQZyEBIAMtAABBBHFFBEAgACABQdAPaiABQewOaiABIAFB5ABJGyABQcUASBtB7A5rNgIACwtAACACIAMgAEEIaiAAKAIIKAIEEQAAIgAgAEGgAmogBSAEQQAQzQEgAGsiAEGfAkwEQCABIABBDG1BDG82AgALC0AAIAIgAyAAQQhqIAAoAggoAgARAAAiACAAQagBaiAFIARBABDNASAAayIAQacBTARAIAEgAEEMbUEHbzYCAAsLQQAgASACIAMgBEEEEGghASADLQAAQQRxRQRAIAAgAUHQD2ogAUHsDmogASABQeQASRsgAUHFAEgbQewOazYCAAsLQAAgAiADIABBCGogACgCCCgCBBEAACIAIABBoAJqIAUgBEEAEM8BIABrIgBBnwJMBEAgASAAQQxtQQxvNgIACwtAACACIAMgAEEIaiAAKAIIKAIAEQAAIgAgAEGoAWogBSAEQQAQzwEgAGsiAEGnAUwEQCABIABBDG1BB282AgALCxgBAX9BDBBTIgBBADYCCCAAQgA3AgAgAAsEAEECC8oBAQR/IwBBEGsiAyQAAkAgAUH3////A00EQAJAIAEQvQEEQCAAIAEQUCAAIQQMAQsgA0EIaiABEJABQQFqEI8BIAMoAgwaIAAgAygCCCIENgIAIAAgAygCDBBcIAAgATYCBAsjAEEQayIFJAAgBSACNgIMIAQhBiABIQIDQCACBEAgBiAFKAIMNgIAIAJBAWshAiAGQQRqIQYMAQsLIAVBEGokACADQQA2AgQgBCABQQJ0aiADQQRqEFYgA0EQaiQADAELEFsA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hoRCAEKAgICAgIDAwz8QLyAFKQNIIQIgBSkDQCEEDAELIAlC////////P4MgBiAHcq1CMIaEIQILIAAgBDcDACAAIAI3AwggBUGAAWokAAuIEAIFfw9+IwBB0AJrIgUkACAEQv///////z+DIQsgAkL///////8/gyEKIAIgBIVCgICAgICAgICAf4MhDCAEQjCIp0H//wFxIQcCQAJAIAJCMIinQf//AXEiCEH//wFrQYKAfk8EQCAHQf//AWtBgYB+Sw0BCyABUCACQv///////////wCDIg5CgICAgICAwP//AFQgDkKAgICAgIDA//8AURtFBEAgAkKAgICAgIAghCEMDAILIANQIARC////////////AIMiAkKAgICAgIDA//8AVCACQoCAgICAgMD//wBRG0UEQCAEQoCAgICAgCCEIQwgAyEBDAILIAEgDkKAgICAgIDA//8AhYRQBEAgAyACQoCAgICAgMD//wCFhFAEQEIAIQFCgICAgICA4P//ACEMDAMLIAxCgICAgICAwP//AIQhDEIAIQEMAgsgAyACQoCAgICAgMD//wCFhFAEQEIAIQEMAgsgASAOhFAEQEKAgICAgIDg//8AIAwgAiADhFAbIQxCACEBDAILIAIgA4RQBEAgDEKAgICAgIDA//8AhCEMQgAhAQwCCyAOQv///////z9YBEAgBUHAAmogASAKIAEgCiAKUCIGG3lCwABCACAGG3ynIgZBD2sQREEQIAZrIQYgBSkDyAIhCiAFKQPAAiEBCyACQv///////z9WDQAgBUGwAmogAyALIAMgCyALUCIJG3lCwABCACAJG3ynIglBD2sQRCAGIAlqQRBrIQYgBSkDuAIhCyAFKQOwAiEDCyAFQaACaiALQoCAgICAgMAAhCISQg+GIANCMYiEIgJCAEKAgICAsOa8gvUAIAJ9IgRCABBAIAVBkAJqQgAgBSkDqAJ9QgAgBEIAEEAgBUGAAmogBSkDmAJCAYYgBSkDkAJCP4iEIgRCACACQgAQQCAFQfABaiAEQgBCACAFKQOIAn1CABBAIAVB4AFqIAUpA/gBQgGGIAUpA/ABQj+IhCIEQgAgAkIAEEAgBUHQAWogBEIAQgAgBSkD6AF9QgAQQCAFQcABaiAFKQPYAUIBhiAFKQPQAUI/iIQiBEIAIAJCABBAIAVBsAFqIARCAEIAIAUpA8gBfUIAEEAgBUGgAWogAkIAIAUpA7gBQgGGIAUpA7ABQj+IhEIBfSICQgAQQCAFQZABaiADQg+GQgAgAkIAEEAgBUHwAGogAkIAQgAgBSkDqAEgBSkDoAEiDiAFKQOYAXwiBCAOVK18IARCAVatfH1CABBAIAVBgAFqQgEgBH1CACACQgAQQCAGIAggB2tqIghB//8AaiEGAn4gBSkDcCITQgGGIg0gBSkDiAEiD0IBhiAFKQOAAUI/iIR8IhBC5+wAfSIUQiCIIgIgCkKAgICAgIDAAIQiFUIBhiIWQiCIIgR+IhEgAUIBhiIOQiCIIgsgECAUVq0gDSAQVq0gBSkDeEIBhiATQj+IhCAPQj+IfHx8QgF9IhNCIIgiEH58Ig0gEVStIA0gDSATQv////8PgyITIAFCP4giFyAKQgGGhEL/////D4MiCn58Ig1WrXwgBCAQfnwgBCATfiIRIAogEH58Ig8gEVStQiCGIA9CIIiEfCANIA9CIIZ8Ig8gDVStfCAPIA8gFEL/////D4MiFCAKfiINIAIgC358IhEgDVStIBEgESATIA5C/v///w+DIg1+fCIRVq18fCIPVq18IA8gBCAUfiIYIA0gEH58IgQgAiAKfnwiCiALIBN+fCIQQiCIIAogEFatIAQgGFStIAQgClatfHxCIIaEfCIEIA9UrXwgBCAEIBEgAiANfiIKIAsgFH58IgJCIIggAiAKVK1CIIaEfCIKIBFUrSAKIAogEEIghnwiClatfHwiBFatfCAEIAQgCiACQiCGIgIgDSAUfnwgAlStQn+FIgJWIAIgClJxrXwiBFatfCICQv////////8AWARAIBYgF4QhFSAFQdAAaiAEIAJCgICAgICAwABUIgetIguGIgogAiALhiAEQgGIIAdBP3OtiIQiBCADIBIQQCAIQf7/AGogBiAHG0EBayEGIAFCMYYgBSkDWH0gBSkDUCIBQgBSrX0hC0IAIAF9DAELIAVB4ABqIAJCP4YgBEIBiIQiCiACQgGIIgQgAyASEEAgAUIwhiAFKQNofSAFKQNgIgJCAFKtfSELIAEhDkIAIAJ9CyECIAZB//8BTgRAIAxCgICAgICAwP//AIQhDEIAIQEMAQsCfiAGQQBKBEAgC0IBhiACQj+IhCEBIARC////////P4MgBq1CMIaEIQsgAkIBhgwBCyAGQY9/TARAQgAhAQwCCyAFQUBrIAogBEEBIAZrEIoBIAVBMGogDiAVIAZB8ABqEEQgBUEgaiADIBIgBSkDQCIKIAUpA0giCxBAIAUpAzggBSkDKEIBhiAFKQMgIgFCP4iEfSAFKQMwIgIgAUIBhiIEVK19IQEgAiAEfQshAiAFQRBqIAMgEkIDQgAQQCAFIAMgEkIFQgAQQCALIAogAyAKQgGDIgMgAnwiAlQgASACIANUrXwiASASViABIBJRG618IgMgClStfCIEIAMgAyAEQoCAgICAgMD//wBUIAIgBSkDEFYgASAFKQMYIgRWIAEgBFEbca18IgNWrXwiBCADIARCgICAgICAwP//AFQgAiAFKQMAViABIAUpAwgiAlYgASACURtxrXwiASADVK18IAyEIQwLIAAgATcDACAAIAw3AwggBUHQAmokAAu/AgEBfyMAQdAAayIEJAACQCADQYCAAU4EQCAEQSBqIAEgAkIAQoCAgICAgID//wAQLyAEKQMoIQIgBCkDICEBIANB//8BSQRAIANB//8AayEDDAILIARBEGogASACQgBCgICAgICAgP//ABAvQf3/AiADIANB/f8CTxtB/v8BayEDIAQpAxghAiAEKQMQIQEMAQsgA0GBgH9KDQAgBEFAayABIAJCAEKAgICAgICAORAvIAQpA0ghAiAEKQNAIQEgA0H0gH5LBEAgA0GN/wBqIQMMAQsgBEEwaiABIAJCAEKAgICAgICAORAvQeiBfSADIANB6IF9TRtBmv4BaiEDIAQpAzghAiAEKQMwIQELIAQgASACQgAgA0H//wBqrUIwhhAvIAAgBCkDCDcDCCAAIAQpAwA3AwAgBEHQAGokAAs8ACAAIAE3AwAgACACQv///////z+DIAJCgICAgICAwP//AINCMIinIANCMIinQYCAAnFyrUIwhoQ3AwgLwAECAX8CfkF/IQMCQCAAQgBSIAFC////////////AIMiBEKAgICAgIDA//8AViAEQoCAgICAgMD//wBRGw0AIAJC////////////AIMiBUKAgICAgIDA//8AViAFQoCAgICAgMD//wBScQ0AIAAgBCAFhIRQBEBBAA8LIAEgAoNCAFkEQCABIAJSIAEgAlNxDQEgACABIAKFhEIAUg8LIABCAFIgASACVSABIAJRGw0AIAAg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EKYCCyEAIAEQTAR/QZiEASgCACABQf8BcUECdGooAgAFIAELwAsJACAAENACEC0LOwADQCABIAJGRQRAIAMhACAEIAEoAgAQTAR/IAEoAgAFIAALOgAAIARBAWohBCABQQRqIQEMAQsLIAELDAAgASACIAEQTBvACyoAA0AgASACRkUEQCADIAEsAAA2AgAgA0EEaiEDIAFBAWohAQwBCwsgAQsPACAAIAEgAkGgkAEQpwILHAAgARBMBH9BoJABKAIAIAFBAnRqKAIABSABCwsPACAAIAEgAkGYhAEQpwILHAAgARBMBH9BmIQBKAIAIAFBAnRqKAIABSABCwsQACAABEAgABDHAwsgABAtCzoAA0ACQCACIANGDQAgAigCABBMRQ0AIAIoAgBBAnRBkKIBaigCACABcUUNACACQQRqIQIMAQsLIAILOQADQAJAIAIgA0YNACACKAIAEEwEQCACKAIAQQJ0QZCiAWooAgAgAXENAQsgAkEEaiECDAELCyACC0YAA0AgASACRkUEQEEAIQAgAyABKAIAEEwEfyABKAIAQQJ0QZCiAWooAgAFQQALNgIAIANBBGohAyABQQRqIQEMAQsLIAELIwBBACEAIAIQTAR/IAJBAnRBkKIBaigCACABcUEARwVBAAsLDwAgACAAKAIAKAIEEQIACwkAIAAQ1gIQLQsVAQF/QdQAEFMiAEEAQdQA/AsAIAALFAAgACgCACABaiACLQAAOgAAQQELrgEAAkAgBRBHRQRAIAAgBSkCADcCACAAIAUoAgg2AgggABBeGgwBCyAFKAIAIQQgBSgCBCECIwBBEGsiAyQAAkACQAJAIAIQvQEEQCAAIgEgAhBQDAELIAJB9////wNLDQEgA0EIaiACEJABQQFqEI8BIAMoAgwaIAAgAygCCCIBNgIAIAAgAygCDBBcIAAgAjYCBAsgASAEIAJBAWoQZSADQRBqJAAMAQsQWwALCwsJACAAIAUQ5AELhAMBCH8jAEHgA2siACQAIABB3ANqIgYgAxAnIAYQSCEKIAUQHwRAIAVBABDMASgCACAKQS0QS0YhCwsgAiALIABB3ANqIABB2ANqIABB1ANqIABB0ANqIABBxANqECQiDCAAQbgDahAkIgYgAEGsA2oQJCIHIABBqANqEN8CIABB4wA2AhAgAEEIakEAIABBEGoiAhA2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KAK8ASAEEI8DOQMAIABBzAFqIABBEGogACgCDCAEEEMgAEHcAmogAEHYAmoQKwRAIAQgBCgCAEECcjYCAAsgACgC3AIgARAgGiAAQcwBahAgGiAAQeACaiQADAMLQQEhAwsgAEHcAmoQPhoMAAsACwvKBAEDfwJ/IwBB4AJrIgAkACAAIAI2AtgCIAAgATYC3AIgAEHMAWogAyAAQeABaiAAQdwBaiAAQdgBahD7ASAAQcABahAkIgEgARAoECEgACABQQAQIiICNgK8ASAAIABBEGo2AgwgAEEANgIIIABBAToAByAAQcUAOgAGQQAhAwNAAkACQAJAIABB3AJqIABB2AJqECsNACAAKAK8ASABEB8gAmpGBEAgARAfIQYgASABEB9BAXQQISABIAEQKBAhIAAgBiABQQAQIiICajYCvAELIABB3AJqEDcgAEEHaiAAQQZqIAIgAEG8AWogACgC3AEgACgC2AEgAEHMAWogAEEQaiAAQQxqIABBCGogAEHgAWoQ+gENACADDQFBACEDIAAoArwBIAJrIgdBAEwNAgJAAkAgAi0AACIGQStrIggOAwEAAQALIAZBLkYNAkEBIQMgBkEwa0H/AXFBCkkNAwwBCyAHQQFGDQICQCAIDgMAAwADCyACLQABIgZBLkYNAUEBIQMgBkEwa0H/AXFBCU0NAgsCQCAAQcwBahAfRQ0AIAAtAAdBAXFFDQAgACgCDCIDIABBEGprQZ8BSg0AIAAgA0EEajYCDCADIAAoAgg2AgALIAUgAiAAKAK8ASAEEJEDOAIAIABBzAFqIABBEGogACgCDCAEEEMgAEHcAmogAEHYAmoQKwRAIAQgBCgCAEECcjYCAAsgACgC3AIgARAgGiAAQcwBahAgGiAAQeACaiQADAMLQQEhAwsgAEHcAmoQPhoMAAsACwuWAwECfyMAQdACayIAJAAgACACNgLIAiAAIAE2AswCIAMQaiEGIAMgAEHQAWoQrgEhByAAQcQBaiADIABBxAJqEK0BIABBuAFqECQiASABECgQISAAIAFBABAiIgI2ArQBIAAgAEEQajYCDCAAQQA2AggDQAJAIABBzAJqIABByAJqECsNACAAKAK0ASABEB8gAmpGBEAgARAfIQMgASABEB9BAXQQISABIAEQKBAhIAAgAyABQQAQIiICajYCtAELIABBzAJqIgMQNyAGIAIgAEG0AWogAEEIaiAAKALEAiAAQcQBaiAAQRBqIABBDGogBxCYAQ0AIAMQPhoMAQsLAkAgAEHEAWoQH0UNACAAKAIMIgMgAEEQamtBnwFKDQAgACADQQRqNgIMIAMgACgCCDYCAAsgBSACIAAoArQBIAQgBhCSAzcDACAAQcQBaiAAQRBqIAAoAgwgBBBDIABBzAJqIABByAJqECsEQCAEIAQoAgBBAnI2AgALIAAoAswCIAEQIBogAEHEAWoQIBogAEHQAmokAAuWAwECfyMAQdACayIAJAAgACACNgLIAiAAIAE2AswCIAMQaiEGIAMgAEHQAWoQrgEhByAAQcQBaiADIABBxAJqEK0BIABBuAFqECQiASABECgQISAAIAFBABAiIgI2ArQBIAAgAEEQajYCDCAAQQA2AggDQAJAIABBzAJqIABByAJqECsNACAAKAK0ASABEB8gAmpGBEAgARAfIQMgASABEB9BAXQQISABIAEQKBAhIAAgAyABQQAQIiICajYCtAELIABBzAJqIgMQNyAGIAIgAEG0AWogAEEIaiAAKALEAiAAQcQBaiAAQRBqIABBDGogBxCYAQ0AIAMQPhoMAQsLAkAgAEHEAWoQH0UNACAAKAIMIgMgAEEQamtBnwFKDQAgACADQQRqNgIMIAMgACgCCDYCAAsgBSACIAAoArQBIAQgBhCVAzsBACAAQcQBaiAAQRBqIAAoAgwgBBBDIABBzAJqIABByAJqECsEQCAEIAQoAgBBAnI2AgALIAAoAswCIAEQIBogAEHEAWoQIBogAEHQAmokAAuWAwECfyMAQdACayIAJAAgACACNgLIAiAAIAE2AswCIAMQaiEGIAMgAEHQAWoQrgEhByAAQcQBaiADIABBxAJqEK0BIABBuAFqECQiASABECgQISAAIAFBABAiIgI2ArQBIAAgAEEQajYCDCAAQQA2AggDQAJAIABBzAJqIABByAJqECsNACAAKAK0ASABEB8gAmpGBEAgARAfIQMgASABEB9BAXQQISABIAEQKBAhIAAgAyABQQAQIiICajYCtAELIABBzAJqIgMQNyAGIAIgAEG0AWogAEEIaiAAKALEAiAAQcQBaiAAQRBqIABBDGogBxCYAQ0AIAMQPhoMAQsLAkAgAEHEAWoQH0UNACAAKAIMIgMgAEEQamtB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DCECDAYLIANBIHIhAyABQQRqIQIgBEEEayEEIAEtAAMgCHQgB2ohBwsCQCAFQQRxRQ0AIAcgBigCIEYNACAKQd4ONgIYIAZB0f4ANgIEIAIhASAGKAIEIQUMAQsLIAIhAUEAIQdBACEDCyAGQdD+ADYCBAtBASECDAELQQAhBCAMIQILIAogDzYCECAKIBA2AgwgCiAENgIEIAogATYCACAGIAM2AkAgBiAHNgI8AkACQCAGKAIsRQRAIA8gFUYNASAGKAIEQdD+AEsNAQsCfyAVIA9rIQMCQAJAIAooAhwiASgCOCIMRQRAQQEhBSABIAooAihBASABKAIodEEBIAooAiARAwAiDDYCOCAMRQ0BCyABKAIsIgRFBEAgAUIANwIwIAFBASABKAIodCIENgIsCyADIARPBEAgBARAIAwgECAEayAE/AoAAAsgAUEANgI0DAILIAQgASgCNCIIayIFIAMgAyAFSxsiBARAIAggDGogECADayAE/AoAAAsgAyAFSwRAIAMgBGsiAwRAIAEoAjggECADayAD/AoAAAsgASADNgI0DAILQQAhBSABIAEoAjQgBGoiA0EAIAMgASgCLCIMRxs2AjQgDCABKAIwIgNNDQAgASADIARqNgIwCyAFDAELIAEgASgCLDYCMEEACw0BIAooAhAhDyAKKAIEIQQLIAogCigCCCAkIARrajYCCCAKIBUgD2siASAKKAIUajYCFCAGIAYoAiAgAWo2AiAgBi0ADEEEcUUgDyAVRnJFBEAgCigCDCABayEDIAYoAhwhBSAGAn8gBigCFARAIAUgAyABEFEMAQsgBSADIAEQswELIgE2AhwgCiABNgIwCyAKIAYoAkBBwABBACAGKAIIG2pBgAFBACAGKAIEIgFBv/4ARhtqQYACQYACQQAgAUHC/gBGGyABQcf+AEYbajYCLCACQXsgAhsgAiAPIBVGGyACIAQgJEYbIRwMAgsgBkHS/gA2AgQLQXwhHAsgF0EQaiQAIBxBAUsNASATQagBaiEBIBMoAqwBIQMgGigCACEJIBooAgQgEygCFGshDCMAQSBrIggkAAJAIAwgCWsiBUEATA0AIAEoAgggASgCBCICayAFTgRAIAIgA2siBCAFSARAIAwgBCAJaiIHayILRSAHIAxGckUEQCACIAcgC/wKAAALIAEgAiALajYCBCAE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eQAtKyAgIDBYMHgALTBYKzBYIDBYLTB4KzB4IDB4AE5vdgBUaHUAQXVndXN0AHVuc2lnbmVkIHNob3J0AHVuc2lnbmVkIGludABpbnZhbGlkIGxpdGVyYWwvbGVuZ3RocyBzZXQAaW52YWxpZCBjb2RlIGxlbmd0aHMgc2V0AHVua25vd24gaGVhZGVyIGZsYWdzIHNldABpbnZhbGlkIGRpc3RhbmNlcyBzZXQAZ2V0AE9jdABmbG9hdABpbnZhbGlkIGJpdCBsZW5ndGggcmVwZWF0AFNhdABudW1Qb2ludHMAY29sb3JzAFVucGFja09wdGlvbnMAcG9zaXRpb25zAHJvdGF0aW9ucwB0b28gbWFueSBsZW5ndGggb3IgZGlzdGFuY2Ugc3ltYm9scwBpbnZhbGlkIHN0b3JlZCBibG9jayBsZW5ndGhzAHNjYWxlcwBhbHBoYXMAW1NQWjogRVJST1JdIENoZWNrIGZhaWxlZDogJXM6JWQ6ICVzAHZmMzJfcHRyAEFwcgB2ZWN0b3IAbW9uZXlfZ2V0IGVycm9yAFtTUFogRVJST1JdIGRlc2VyaWFsaXplUGFja2VkR2F1c3NpYW5zOiByZWFkIGVycm9yAE9jdG9iZXIATm92ZW1iZXIAU2VwdGVtYmVyAERlY2VtYmVyAHVuc2lnbmVkIGNoYXIAaW9zX2Jhc2U6OmNsZWFyAE1hcgAvZW1zZGsvZW1zY3JpcHRlbi9zeXN0ZW0vbGliL2xpYmN4eGFiaS9zcmMvcHJpdmF0ZV90eXBlaW5mby5jcHAAU2VwACVJOiVNOiVTICVwAFN1bgBKdW4ATW9uAG5hbgBKYW4AY29vcmRpbmF0ZVN5c3RlbQBDb29yZGluYXRlU3lzdGVtAEp1bABib29sAGxsAEFwcmlsAGludmFsaWQgY29kZSAtLSBtaXNzaW5nIGVuZC1vZi1ibG9jawBpbmNvcnJlY3QgaGVhZGVyIGNoZWNrAGluY29ycmVjdCBsZW5ndGggY2hlY2sAaW5jb3JyZWN0IGRhdGEgY2hlY2sAcHVzaF9iYWNrAGludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrAEZyaQBzaABoZWFkZXIgY3JjIG1pc21hdGNoAE1hcmNoAEF1ZwB1bnNpZ25lZCBsb25nIGxvbmcAdW5zaWduZWQgbG9uZwBzdGQ6OndzdHJpbmcAYmFzaWNfc3RyaW5nAHN0ZDo6c3RyaW5nAHN0ZDo6dTE2c3RyaW5nAHN0ZDo6dTMyc3RyaW5nAGluZgAlLjBMZgAlTGYAcmVzaXplAGludmFsaWQgd2luZG93IHNpemUAdHJ1ZQBUdWUAZmFsc2UAaW52YWxpZCBibG9jayB0eXBlAEp1bmUAZG91YmxlAHNoRGVncmVlAGJhZF9hcnJheV9uZXdfbGVuZ3RoIHdhcyB0aHJvd24gaW4gLWZuby1leGNlcHRpb25zIG1vZGUAaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlAGludmFsaWQgZGlzdGFuY2UgY29kZQBSYXdHYXVzc2lhbkNsb3VkAHVua25vd24gY29tcHJlc3Npb24gbWV0aG9kAFtTUFogRVJST1JdIGRlc2VyaWFsaXplUGFja2VkR2F1c3NpYW5zOiBoZWFkZXIgbm90IGZvdW5kACUwKmxsZAAlKmxsZAArJWxsZAAlKy40bGQAdm9pZABsb2NhbGUgbm90IHN1cHBvcnRlZABhbnRpYWxpYXNlZABXZWQAJVktJW0tJWQAW1NQWiBFUlJPUl0gZGVzZXJpYWxpemVQYWNrZWRHYXVzc2lhbnM6IFRvbyBtYW55IHBvaW50czogJWQAW1NQWiBFUlJPUl0gZGVzZXJpYWxpemVQYWNrZWRHYXVzc2lhbnM6IFVuc3VwcG9ydGVkIFNIIGRlZ3JlZTogJWQAW1NQWiBFUlJPUl0gZGVzZXJpYWxpemVQYWNrZWRHYXVzc2lhbnM6IHZlcnNpb24gbm90IHN1cHBvcnRlZDogJWQARGVjAC4vc3B6L3NyYy9jYy9sb2FkLXNwei5jYwBGZWIAJWEgJWIgJWQgJUg6JU06JVMgJVkAUE9TSVgAVmVjdG9yVUludDhUACVIOiVNOiVTAE5BTgBQTQBBTQAlSDolTQBMQ19BTEwAQVNDSUkATEFORwBSVUYATFVGAElORgBSREYATERGAFVOU1BFQ0lGSUVEAEMAUlVCAExVQgBSREIATERCAGNhdGNoaW5nIGEgY2xhc3Mgd2l0aG91dCBhbiBvYmplY3Q/AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50NjRfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50NjRfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDMyX3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDMyX3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxsb25nPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBsb25nPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxkb3VibGU+ADAxMjM0NTY3ODkAQy5VVEYtOABWZWN0b3JGbG9hdDMyADEuMy4xAC4ALQAocGFja2VkLmFscGhhcy5zaXplKCkpID09IChudW1Qb2ludHMpAChudWxsKQAocGFja2VkLmNvbG9ycy5zaXplKCkpID09IChudW1Qb2ludHMgKiAzKQAocGFja2VkLnNjYWxlcy5zaXplKCkpID09IChudW1Qb2ludHMgKiAzKQAocGFja2VkLnNoLnNpemUoKSkgPT0gKG51bVBvaW50cyAqIHNoRGltICogMykAKHBhY2tlZC5yb3RhdGlvbnMuc2l6ZSgpKSA9PSAobnVtUG9pbnRzICogKHBhY2tlZC51c2VzUXVhdGVybmlvblNtYWxsZXN0VGhyZWUgPyA0IDogMykpAChwYWNrZWQucG9zaXRpb25zLnNpemUoKSkgPT0gKG51bVBvaW50cyAqIDMgKiAodXNlc0Zsb2F0MTYgPyAyIDogMykpACUAbGVuZ3RoX2Vycm9yIHdhcyB0aHJvd24gaW4gLWZuby1leGNlcHRpb25zIG1vZGUgd2l0aCBtZXNzYWdlICIlcyIAUHVyZSB2aXJ0dWFsIGZ1bmN0aW9uIGNhbGxlZCEAW1NQWjogRVJST1JdIFVuc3VwcG9ydGVkIFNIIGRlZ3JlZTogJWQKAAkAAAAAgD8AAIA/AACAPwAAgD8AAIA/AACAPwAAgD8AAIA/AACAPwAAgD8AAIA/AACAPwAAgD8AAIA/AACAPwBBkCALthMgEAAA9GwAAPRsAABAEAAAqG0AACgQAABOM3NwejEzR2F1c3NpYW5DbG91ZEUAAACobQAASBAAAE4zc3B6MTNVbnBhY2tPcHRpb25zRQBwcGlpcAD0bAAAbBAAAKhtAAB0EAAATlN0M19fMjZ2ZWN0b3JJZk5TXzlhbGxvY2F0b3JJZkVFRUUAaXBwACxuAADEEAAAAAAAAAMAAADcEAAAAAAAACgSAAAAAAAAWBIAAAAAAABOU3QzX18yOG9wdGlvbmFsSWZFRQAAAADQbQAA6BAAABgRAABOU3QzX18yMjdfX29wdGlvbmFsX21vdmVfYXNzaWduX2Jhc2VJZkxiMUVFRQAAAADQbQAAJBEAAFQRAABOU3QzX18yMjdfX29wdGlvbmFsX2NvcHlfYXNzaWduX2Jhc2VJZkxiMUVFRQAAAADQbQAAYBEAAIgRAABOU3QzX18yMjBfX29wdGlvbmFsX21vdmVfYmFzZUlmTGIxRUVFAAAA0G0AAJQRAAC8EQAATlN0M19fMjIwX19vcHRpb25hbF9jb3B5X2Jhc2VJZkxiMUVFRQAAANBtAADIEQAA9BEAAE5TdDNfXzIyM19fb3B0aW9uYWxfc3RvcmFnZV9iYXNlSWZMYjBFRUUAAAAAqG0AAPwRAABOU3QzX18yMjRfX29wdGlvbmFsX2Rlc3RydWN0X2Jhc2VJZkxiMUVFRQAAAKhtAAAwEgAATlN0M19fMjE4X19zZmluYWVfY3Rvcl9iYXNlSUxiMUVMYjFFRUUAAKhtAABgEgAATlN0M19fMjIwX19zZmluYWVfYXNzaWduX2Jhc2VJTGIxRUxiMUVFRQAAAACIbgAAnBIAAAAAAABsEAAAUE5TdDNfXzI2dmVjdG9ySWZOU185YWxsb2NhdG9ySWZFRUVFAAAAAIhuAADUEgAAAQAAAGwQAABQS05TdDNfXzI2dmVjdG9ySWZOU185YWxsb2NhdG9ySWZFRUVFAHBwAHYAdnAAAACMEgAAcHAAAJRsAACMEgAAPG0AAHZwcGQAAAAAlGwAAIwSAAAYbQAAPG0AAHZwcHBkAAAAGG0AAMQSAABwcHAATBMAADxtAACobQAAVBMAAE4xMGVtc2NyaXB0ZW4zdmFsRQAAnBAAAGwQAAAYbQAAcHBwcAAAAAAAAAAArGwAAGwQAAAYbQAAPG0AAGlwcHBkAAAALG4AAMATAAAAAAAAAwAAANgTAAAAAAAAKBIAAAAAAABYEgAAAAAAAE5TdDNfXzI4b3B0aW9uYWxJaEVFAAAAANBtAADkEwAAFBQAAE5TdDNfXzIyN19fb3B0aW9uYWxfbW92ZV9hc3NpZ25fYmFzZUloTGIxRUVFAAAAANBtAAAgFAAAUBQAAE5TdDNfXzIyN19fb3B0aW9uYWxfY29weV9hc3NpZ25fYmFzZUloTGIxRUVFAAAAANBtAABcFAAAhBQAAE5TdDNfXzIyMF9fb3B0aW9uYWxfbW92ZV9iYXNlSWhMYjFFRUUAAADQbQAAkBQAALgUAABOU3QzX18yMjBfX29wdGlvbmFsX2NvcHlfYmFzZUloTGIxRUVFAAAA0G0AAMQUAADwFAAATlN0M19fMjIzX19vcHRpb25hbF9zdG9yYWdlX2Jhc2VJaExiMEVFRQAAAACobQAA+BQAAE5TdDNfXzIyNF9fb3B0aW9uYWxfZGVzdHJ1Y3RfYmFzZUloTGIxRUVFAAAAqG0AACwVAABOU3QzX18yNnZlY3RvckloTlNfOWFsbG9jYXRvckloRUVFRQCIbgAAYBUAAAAAAAAkFQAAUE5TdDNfXzI2dmVjdG9ySWhOU185YWxsb2NhdG9ySWhFRUVFAAAAAIhuAACYFQAAAQAAACQVAABQS05TdDNfXzI2dmVjdG9ySWhOU185YWxsb2NhdG9ySWhFRUVFAHBwAHZwAFAVAABwcAAAlGwAAFAVAADEbAAAdnBwaQAAAACUbAAAUBUAABhtAADEbAAAdnBwcGkAAAAYbQAAiBUAAHBwcABMEwAAxGwAAJgTAAAkFQAAGG0AAHBwcHAAAAAArGwAACQVAAAYbQAAxGwAAGlwcHBpAHAAdnAAaXBwAHZwcGkAaXBwAHZwcGkAcHBwAHZwcHAAAABcbQAAYBYAAE4zc3B6MTZDb29yZGluYXRlU3lzdGVtRQBwAHZwAGlwcAB2cHBpAAAAAAAAAwAAAAgAAAAPAAAAqG0AAKAWAABOU3QzX18yMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRQAAqG0AAOgWAABOU3QzX18yMTJiYXNpY19zdHJpbmdJd05TXzExY2hhcl90cmFpdHNJd0VFTlNfOWFsbG9jYXRvckl3RUVFRQAAqG0AADAXAABOU3QzX18yMTJiYXNpY19zdHJpbmdJRHNOU18xMWNoYXJfdHJhaXRzSURzRUVOU185YWxsb2NhdG9ySURzRUVFRQAAAKhtAAB8FwAATlN0M19fMjEyYmFzaWNfc3RyaW5nSURpTlNfMTFjaGFyX3RyYWl0c0lEaUVFTlNfOWFsbG9jYXRvcklEaUVFRUUAAACobQAAyBcAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWNFRQAAqG0AAPAXAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lhRUUAAKhtAAAYGAAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJaEVFAACobQAAQBgAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SXNFRQAAqG0AAGgYAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0l0RUUAAKhtAACQGAAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJaUVFAACobQAAuBgAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWpFRQAAqG0AAOAYAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lsRUUAAKhtAAAIGQAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJbUVFAACobQAAMBkAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SXhFRQAAqG0AAFgZAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0l5RUUAAKhtAACAGQAATjEwZW1zY3Jp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AAAJqAAACAQAAAiEAAAIRAAACegAEAcIAAAIXAAACBwAAAmYABQHUwAACHwAAAg8AAAJ2AASBxcAAAhsAAAILAAACbgAAAgMAAAIjAAACEwAAAn4ABAHAwAACFIAAAgSABUIowATByMAAAhyAAAIMgAACcQAEQcLAAAIYgAACCIAAAmkAAAIAgAACIIAAAhCAAAJ5AAQBwcAAAhaAAAIGgAACZQAFAdDAAAIegAACDoAAAnUABIHEwAACGoAAAgqAAAJtAAACAoAAAiKAAAISgAACfQAEAcFAAAIVgAACBYAQAgAABMHMwAACHYAAAg2AAAJzAARBw8AAAhmAAAIJgAACawAAAgGAAAIhgAACEYAAAnsABAHCQAACF4AAAgeAAAJnAAUB2MAAAh+AAAIPgAACdwAEgcbAAAIbgAACC4AAAm8AAAIDgAACI4AAAhOAAAJ/ABgBwAAAAhRAAAIEQAVCIMAEgcfAAAIcQAACDEAAAnCABAHCgAACGEAAAghAAAJogAACAEAAAiBAAAIQQAACeIAEAcGAAAIWQAACBkAAAmSABMHOwAACHkAAAg5AAAJ0gARBxEAAAhpAAAIKQAACbIAAAgJAAAIiQAACEkAAAnyABAHBAAACFUAAAgVABAIAgETBysAAAh1AAAINQAACcoAEQcNAAAIZQAACCUAAAmqAAAIBQAACIUAAAhFAAAJ6gAQBwgAAAhdAAAIHQAACZoAFAdTAAAIfQAACD0AAAnaABIHFwAACG0AAAgtAAAJugAACA0AAAiNAAAITQAACfoAEAcDAAAIUwAACBMAFQjDABMHIwAACHMAAAgzAAAJxgARBwsAAAhjAAAIIwAACaYAAAgDAAAIgwAACEMAAAnmABAHBwAACFsAAAgbAAAJlgAUB0MAAAh7AAAIOwAACdYAEgcTAAAIawAACCsAAAm2AAAICwAACIsAAAhLAAAJ9gAQBwUAAAhXAAAIFwBACAAAEwczAAAIdwAACDcAAAnOABEHDwAACGcAAAgnAAAJrgAACAcAAAiHAAAIRwAACe4AEAcJAAAIXwAACB8AAAmeABQHYwAACH8AAAg/AAAJ3gASBxsAAAhvAAAILwAACb4AAAgPAAAIjwAACE8AAAn+AGAHAAAACFAAAAgQABQIcwASBx8AAAhwAAAIMAAACcEAEAcKAAAIYAAACCAAAAmhAAAIAAAACIAAAAhAAAAJ4QAQBwYAAAhYAAAIGAAACZEAEwc7AAAIeAAACDgAAAnRABEHEQAACGgAAAgoAAAJsQAACAgAAAiIAAAISAAACfEAEAcEAAAIVAAACBQAFQjjABMHKwAACHQAAAg0AAAJyQARBw0AAAhkAAAIJAAACakAAAgEAAAIhAAACEQAAAnpABAHCAAACFwAAAgcAAAJmQAUB1MAAAh8AAAIPAAACdkAEgcXAAAIbAAACCwAAAm5AAAIDAAACIwAAAhMAAAJ+QAQBwMAAAhSAAAIEgAVCKMAEwcjAAAIcgAACDIAAAnFABEHCwAACGIAAAgiAAAJpQAACAIAAAiCAAAIQgAACeUAEAcHAAAIWgAACBoAAAmVABQHQwAACHoAAAg6AAAJ1QASBxMAAAhqAAAIKgAACbUAAAgKAAAIigAACEoAAAn1ABAHBQAACFYAAAgWAEAIAAATBzMAAAh2AAAINgAACc0AEQcPAAAIZgAACCYAAAmtAAAIBgAACIYAAAhGAAAJ7QAQBwkAAAheAAAIHgAACZ0AFAdjAAAIfgAACD4AAAndABIHGwAACG4AAAguAAAJvQAACA4AAAiOAAAITgAACf0AYAcAAAAIUQAACBEAFQiDABIHHwAACHEAAAgxAAAJwwAQBwoAAAhhAAAIIQAACaMAAAgBAAAIgQAACEEAAAnjABAHBgAACFkAAAgZAAAJkwATBzsAAAh5AAAIOQAACdMAEQcRAAAIaQAACCkAAAmzAAAICQAACIkAAAhJAAAJ8wAQBwQAAAhVAAAIFQAQCAIBEwcrAAAIdQAACDUAAAnLABEHDQAACGUAAAglAAAJqwAACAUAAAiFAAAIRQAACesAEAcIAAAIXQAACB0AAAmbABQHUwAACH0AAAg9AAAJ2wASBxcAAAhtAAAILQAACbsAAAgNAAAIjQAACE0AAAn7ABAHAwAACFMAAAgTABUIwwATByMAAAhzAAAIMwAACccAEQcLAAAIYwAACCMAAAmnAAAIAwAACIMAAAhDAAAJ5wAQBwcAAAhbAAAIGwAACZcAFAdDAAAIewAACDsAAAnXABIHEwAACGsAAAgrAAAJtwAACAsAAAiLAAAISwAACfcAEAcFAAAIVwAACBcAQAgAABMHMwAACHcAAAg3AAAJzwARBw8AAAhnAAAIJwAACa8AAAgH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Y05TXzExY2hhcl90cmFpdHNJY0VFRUUA0G0AAHg9AAAAPAAATlN0M19fMjE1YmFzaWNfc3RyaW5nYnVmSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUAAABAAAAAAAAAAKw+AABZAAAAWgAAADgAAAD4////rD4AAFsAAABcAAAAwP///8D///+sPgAAXQAAAF4AAADIPQAALD4AAGg+AAB8PgAAkD4AAKQ+AABUPgAAQD4AAPA9AADcPQAAQAAAAAAAAAAcPQAATAAAAE0AAAA4AAAA+P///xw9AABOAAAATwAAAMD////A////HD0AAFAAAABRAAAAQAAAAAAAAAA8PAAARAAAAEUAAADA////wP///zw8AABGAAAARwAAADgAAAAAAAAAhDwAAEgAAABJAAAAyP///8j///+EPAAASgAAAEsAAADQbQAAuD4AABw9AABOU3QzX18yMThiYXNpY19zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRQAAAAAAAAAAED8AAF8AAABgAAAAqG0AABg/AABOU3QzX18yOGlvc19iYXNlRQAAAAAAAADRdJ4AV529KoBwUg///z4nCgAAAGQAAADoAwAAECcAAKCGAQBAQg8AgJaYAADh9QUYAAAANQAAAHEAAABr////zvv//5K///8AAAAAAAAAAP////////////////////////////////////////////////////////////////8AAQIDBAUGBwgJ/////////woLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIj////////CgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiP/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAECBAcDBgUAAAAAAAAAAgAAwAMAAMAEAADABQAAwAYAAMAHAADACAAAwAkAAMAKAADACwAAwAwAAMANAADADgAAwA8AAMAQAADAEQAAwBIAAMATAADA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")),u((await async function(F){return fA(F)}(y)).instance))}();if(I.preInit)for(typeof I.preInit=="function"&&(I.preInit=[I.preInit]);0<I.preInit.length;)I.preInit.shift()();return function l(){function u(){var y;if(I.calledRun=!0,!q){if(gA=!0,kI.G(),n?.(I),(y=I.onRuntimeInitialized)==null||y.call(I),I.postRun)for(typeof I.postRun=="function"&&(I.postRun=[I.postRun]);I.postRun.length;){var F=I.postRun.shift();iA.push(F)}lA(iA)}}if(0<aA)wA=l;else{if(I.preRun)for(typeof I.preRun=="function"&&(I.preRun=[I.preRun]);I.preRun.length;)eA();lA(GA),0<aA?wA=l:I.setStatus?(I.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>I.setStatus(""),1),u()},1)):u()}}(),g=gA?I:new Promise((l,u)=>{n=l,r=u}),g}const sI=(B,A,g=I=>I)=>{const I=B.vf32_ptr(A),Q=A.size();return new Float32Array(B.HEAPF32.buffer,I,Q).map(g)},ma=B=>1/(1+Math.exp(-B)),Sa=B=>A=>A*B+.5,Ua=async(B,A)=>{var g;const I=await ka(),Q=B instanceof Uint8Array?B:new Uint8Array(B);let C=null;try{if(C=I._malloc(Uint8Array.BYTES_PER_ELEMENT*Q.length),C===null)throw new Error("couldn't allocate memory");I.HEAPU8.set(Q,C/Uint8Array.BYTES_PER_ELEMENT);const E=I.CoordinateSystem[((g=A?.unpackOptions)==null?void 0:g.coordinateSystem)??"UNSPECIFIED"],a=I.load_spz(C,Q.length,{coordinateSystem:E}),i=((t,e,o)=>{const s=o?.colorScaleFactor??.282;return{numPoints:e.numPoints,shDegree:e.shDegree,antialiased:e.antialiased,positions:sI(t,e.positions),scales:sI(t,e.scales,Math.exp),rotations:sI(t,e.rotations),alphas:sI(t,e.alphas,ma),colors:sI(t,e.colors,Sa(s)),sh:sI(t,e.sh)}})(I,a,A);return((t,e)=>{t._free(t.vf32_ptr(e.positions)),t._free(t.vf32_ptr(e.scales)),t._free(t.vf32_ptr(e.rotations)),t._free(t.vf32_ptr(e.alphas)),t._free(t.vf32_ptr(e.colors)),t._free(t.vf32_ptr(e.sh))})(I,a),i}catch(E){throw E}finally{C!==null&&I._free(C)}},La=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),WQ=`async function OI(w = {}) {
|
|
18
|
+
}`,p=new Function(Object.keys(K),P)(...Object.values(K)),P=`methodCaller<(${L.map(IA=>IA.name)}) => ${y.name}>`,(IA=>{var QA=KQ.length;return KQ.push(IA),QA})(gA(P,p))},E:OI,o:(w,b,p,y,L)=>KQ[w](b,p,y,L),D:w=>{var b=WI(w);pA(b),OI(w)},s:(w,b,p,y)=>{var L=new Date().getFullYear(),O=new Date(L,0,1).getTimezoneOffset();L=new Date(L,6,1).getTimezoneOffset(),R[w>>2]=60*Math.max(O,L),f[b>>2]=+(O!=L),b=K=>{var P=Math.abs(K);return`UTC${0<=K?"-":"+"}${String(Math.floor(P/60)).padStart(2,"0")}${String(P%60).padStart(2,"0")}`},w=b(O),b=b(L),L<O?(Zg(w,p,17),Zg(b,y,17)):(Zg(w,y,17),Zg(b,p,17))},y:w=>{var b=D.length;if(2147483648<(w>>>=0))return!1;for(var p=1;4>=p;p*=2){var y=b*(1+.2/p);y=Math.min(y,w+100663296);A:{y=(Math.min(2147483648,65536*Math.ceil(Math.max(w,y)/65536))-c.buffer.byteLength+65535)/65536|0;try{c.grow(y),_();var L=1;break A}catch{}L=void 0}if(L)return!0}return!1},t:(w,b)=>{var p,y=0,L=0;for(p of Je()){var O=b+y;R[w+L>>2]=O,y+=Zg(p,O,1/0)+1,L+=4}return 0},u:(w,b)=>{var p=Je();for(var y of(R[w>>2]=p.length,w=0,p))w+=LB(y)+1;return R[b>>2]=w,0},v:()=>52,w:function(){return 70},k:(w,b,p,y)=>{for(var L=0,O=0;O<p;O++){var K=R[b>>2],P=R[b+4>>2];b+=8;for(var IA=0;IA<P;IA++){var QA=w,BA=D[K+IA],RA=Do[QA];BA===0||BA===10?(QA=QA===1?N:S,BA=VI(RA,0),QA(BA=JB.decode(RA.buffer?RA.subarray(0,BA):new Uint8Array(RA.slice(0,BA)))),RA.length=0):RA.push(BA)}L+=P}return R[y>>2]=L,0}},NI=await async function(){var w;function b(y){var L;return NI=y.exports,c=NI.F,_(),MB=NI.H,xe=(y=NI).I,I._malloc=vQ=y.J,I._free=AI=y.K,CA--,(L=I.monitorRunDependencies)==null||L.call(I,CA),CA==0&&sA&&(y=sA,sA=null,y()),NI}CA++,(w=I.monitorRunDependencies)==null||w.call(I,CA);var p={a:lo};return I.instantiateWasm?new Promise(y=>{I.instantiateWasm(p,(L,O)=>{y(b(L))})}):(X??(X=(y=>{if(a)return y=Buffer.from(y,"base64"),new Uint8Array(y.buffer,y.byteOffset,y.length);for(var L,O,K=0,P=0,IA=y.length,QA=new Uint8Array((3*IA>>2)-(y[IA-2]=="=")-(y[IA-1]=="="));K<IA;K+=4,P+=3)L=xg[y.charCodeAt(K+1)],O=xg[y.charCodeAt(K+2)],QA[P]=xg[y.charCodeAt(K)]<<2|L>>4,QA[P+1]=L<<4|O>>2,QA[P+2]=O<<6|xg[y.charCodeAt(K+3)];return QA})("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C0EAEKEDRQRAQZiDASEBIARBmIMBQRgQiwFFDQJBsIMBIQEgBEGwgwFBGBCLAUUNAkEAIQBBvO4BLQAARQRAA0AgAEECdCAAQcYfEKIDNgKM7gEgAEEBaiIAQQZHDQALQbzuAUEBOgAAQaTuAUGM7gEoAgA2AgALQYzuASEBIAJBCGoiAEGM7gFBGBCLAUUNAkGk7gEhASAAQaTuAUEYEIsBRQ0CQRgQNCIBRQ0BCyABIAIpAgg3AgAgASACKQIYNwIQIAEgAikCEDcCCAwBC0EAIQELIAJBIGokAEGc8QFBAToAAEGY8QEgATYCACABC80KAgV/CX4jAEHgAGsiBSQAIARC////////P4MhCiACIASFQoCAgICAgICAgH+DIQsgAkL///////8/gyIMQiCIIQ8gBEIwiKdB//8BcSEHAkACQCACQjCIp0H//wFxIglB//8Ba0GCgH5PBEAgB0H//wFrQYGAfksNAQsgAVAgAkL///////////8AgyINQoCAgICAgMD//wBUIA1CgICAgICAwP//AFEbRQRAIAJCgICAgICAIIQhCwwCCyADUCAEQv///////////wCDIgJCgICAgICAwP//AFQgAkKAgICAgIDA//8AURtFBEAgBEKAgICAgIAghCELIAMhAQwCCyABIA1CgICAgICAwP//AIWEUARAIAIgA4RQBEBCgICAgICA4P//ACELQgAhAQwDCyALQoCAgICAgMD//wCEIQtCACEBDAILIAMgAkKAgICAgIDA//8AhYRQBEAgASANhEIAIQFQBEBCgICAgICA4P//ACELDAMLIAtCgICAgICAwP//AIQhCwwCCyABIA2EUARAQgAhAQwCCyACIAOEUARAQgAhAQwCCyANQv///////z9YBEAgBUHQAGogASAMIAEgDCAMUCIGG3lCwABCACAGG3ynIgZBD2sQREEQIAZrIQYgBSkDWCIMQiCIIQ8gBSkDUCEBCyACQv///////z9WDQAgBUFAayADIAogAyAKIApQIggbeULAAEIAIAgbfKciCEEPaxBEIAYgCGtBEGohBiAFKQNIIQogBSkDQCEDCyAHIAlqIAZqQf//AGshBgJAIApCD4YiDkIgiEKAgICACIQiAiABQiCIIgR+IhAgA0IPhiIRQiCIIgogD0KAgASEIg1+fCIPIBBUrSAPIANCMYggDoRC/////w+DIgMgDEL/////D4MiDH58Ig4gD1StfCACIA1+fCAOIA4gEUKAgP7/D4MiDyAMfiIRIAQgCn58IhAgEVStIBAgECADIAFC/////w+DIgF+fCIQVq18fCIOVq18IAMgDX4iEiACIAx+fCIRIBJUrUIghiARQiCIhHwgDiAOIBFCIIZ8Ig5WrXwgDiANIA9+Ig0gCiAMfnwiDCABIAJ+fCICIAMgBH58IgNCIIggAiADVq0gDCANVK0gAiAMVK18fEIghoR8IgIgDlStfCACIBAgBCAPfiIMIAEgCn58IgRCIIggBCAMVK1CIIaEfCIKIBBUrSAKIANCIIZ8IgMgClStfHwiCiACVK18IAogAyAEQiCGIgIgASAPfnwiASACVK18IgIgA1StfCIEIApUrXwiA0KAgICAgIDAAINQRQRAIAZBAWohBgwBCyABQj+IIANCAYYgBEI/iIQhAyAEQgGGIAJCP4iEIQQgAUIBhiEBIAJCAYaEIQILIAZB//8BTgRAIAtCgICAgICAwP//AIQhC0IAIQEMAQsCfiAGQQBMBEBBASAGayIHQf8ATQRAIAVBMGogASACIAZB/wBqIgYQRCAFQSBqIAQgAyAGEEQgBUEQaiABIAIgBxCKASAFIAQgAyAHEIoBIAUpAzAgBSkDOIRCAFKtIAUpAyAgBSkDEISEIQEgBSkDKCAFKQMYhCECIAUpAwAhBCAFKQMIDAILQgAhAQwCCyADQv///////z+DIAatQjCGhAsgC4QhCyABUCACQgBZIAJCgICAgICAgICAf1EbRQRAIAsgBEIBfCIBUK18IQsMAQsgASACQoCAgICAgICAgH+FhFBFBEAgBCEBDAELIAsgBCAEQgGDfCIBIARUrXwhCwsgACABNwMAIAAgCzcDCCAFQeAAaiQACwYAIAAQLQt8AQN/IwBBEGsiASQAIAEgADYCDCMAQRBrIgIkACAAKAIAQX9HBEAgAkEIaiACQQxqIAFBDGoQVRBVIQMDQCAAKAIAQQFGDQALIAAoAgBFBEAgAEEBNgIAIAMQ0gIgAEF/NgIACwsgAkEQaiQAIAAoAgQgAUEQaiQAQQFrCyAAIAAgAUEBazYCBCAAQeDVATYCACAAQZCtATYCACAAC/cFAQl/IwBBEGsiCSQAIAEQ1wIgCUEMaiABEFUhCCAAQQhqIgMQayACTQRAAkAgAkEBaiIAIAMQayIBSwRAIwBBIGsiCiQAAkAgACABayIHIAMoAgggAygCBGtBAnVNBEAgAyAHENkCDAELIApBDGohAQJ/IAMQayAHaiEFIwBBEGsiACQAIAAgBTYCDCAFELwCIgRNBEAgAxC5AiIFIARBAXZJBEAgACAFQQF0NgIIIABBCGogAEEMahCgASgCACEECyAAQRBqJAAgBAwBCxCMAQALIQQgAxBrIQUjAEEQayIAJAAgASADQQxqIgs2AhAgAUEANgIMIAQEfyAAQQhqIAsgBBC7AiAAKAIIIQYgACgCDAVBAAshBCABIAY2AgAgASAGIAVBAnRqIgU2AgggASAGIARBAnRqNgIMIAEgBTYCBCAAQRBqJAAjAEEQayIGJAAgASgCCCEEIAZBBGoiACABQQhqNgIIIAAgBDYCACAAIAQgB0ECdGo2AgQgACgCACEEA0AgACgCBCAERwRAIAEoAhAaIAQQugIgACAAKAIAQQRqIgQ2AgAMAQsLIAAoAgggACgCADYCACAGQRBqJAAgASgCBCADKAIAIgAgAygCBGtqIQQgAygCBCAAayIHBEAgBCAAIAf8CgAACyABIAQ2AgQgAyADKAIANgIEIAMgAUEEahDXASADQQRqIAFBCGoQ1wEgA0EIaiABQQxqENcBIAEgASgCBDYCACADEGsaIAEoAgQhAANAIAEoAggiBCAARwRAIAEgBEEEazYCCCABKAIQGgwBCwsgASgCACIABEAgASgCECAAIAEoAgwgASgCAGtBAnUQuAILCyAKQSBqJAAMAQsgACABSQRAIAMoAgAgAEECdGohACADEGsaIAMgABDYAgsLCyADIAIQggEoAgAEQCADIAIQggEoAgAQvwELIAgQrAEhACADIAIQggEgADYCACAIKAIAIQAgCEEANgIAIAAEQCAAEL8BCyAJQRBqJAALySgBC38jAEEQayIKJAACQAJAAkACQAJAAkACQAJAAkACQCAAQfQBTQRAQYzqASgCACIEQRAgAEELakH4A3EgAEELSRsiBkEDdiIAdiIBQQNxBEACQCABQX9zQQFxIABqIgJBA3QiAUG06gFqIgAgASgCvOoBIgEoAggiBUYEQEGM6gEgBEF+IAJ3cTYCAAwBCyAFIAA2AgwgACAFNgIICyABQQhqIQAgASACQQN0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KAIAKAIcEQQAC8EBAQN/IAAtAABBIHFFBEACQCAAKAIQIgMEfyADBSAAEN8BDQEgACgCEAsgACgCFCIEayACSQRAIAAgASACIAAoAiQRAwAaDAELAkACQCACRSAAKAJQQQBIcg0AIAIhAwNAIAEgA2oiBUEBay0AAEEKRwRAIANBAWsiAw0BDAILCyAAIAEgAyAAKAIkEQMAIANJDQIgAiADayECIAAoAhQhBAwBCyABIQULIAQgBSACEHEaIAAgACgCFCACajYCFAsLC6EBAQJ/AkAgABAfRSACIAFrQQVIcg0AIAEgAhDHASACQQRrIQQgABAjIgIgABAfaiEFAkADQAJAIAIsAAAhACABIARPDQAgAEEATCAAQf8ATnJFBEAgASgCACACLAAARw0DCyABQQRqIQEgAiAFIAJrQQFKaiECDAELCyAAQQBMIABB/wBOcg0BIAIsAAAgBCgCAEEBa0sNAQsgA0EENgIACwtQAQF+AkAgA0HAAHEEQCABIANBQGqthiECQgAhAQwBCyADRQ0AIAIgA60iBIYgAUHAACADa62IhCECIAEgBIYhAQsgACABNwMAIAAgAjcDCAtpAQF/IwBBgAJrIgUkACAEQYDABHEgAiADTHJFBEAgBSABIAIgA2siA0GAAiADQYACSSIBGxCYAiABRQRAA0AgACAFQYACEEIgA0GAAmsiA0H/AUsNAAsLIAAgBSADEEILIAVBgAJqJAALBABBAAsKACAALQALQQd2CwoAIABB0PIBEHoLCgAgAEHY8gEQegvPCQIEfwR+IwBB8ABrIgYkACAEQv///////////wCDIQkCQAJAIAFQIgUgAkL///////////8AgyIKQoCAgICAgMD//wB9QoCAgICAgMCAgH9UIApQG0UEQCADQgBSIAlCgICAgICAwP//AH0iC0KAgICAgIDAgIB/ViALQoCAgICAgMCAgH9RGw0BCyAFIApCgICAgICAwP//AFQgCkKAgICAgIDA//8AURtFBEAgAkKAgICAgIAghCEEIAEhAwwCCyADUCAJQoCAgICAgMD//wBUIAlCgICAgICAwP//AFEbRQRAIARCgICAgICAIIQhBAwCCyABIApCgICAgICAwP//AIWEUARAQoCAgICAgOD//wAgAiABIAOFIAIgBIVCgICAgICAgICAf4WEUCIFGyEEQgAgASAFGyEDDAILIAMgCUKAgICAgIDA//8AhYRQDQEgASAKhFAEQCADIAmEQgBSDQIgASADgyEDIAIgBIMhBAwCCyADIAmEUEUNACABIQMgAiEEDAELIAMgASABIANUIAkgClYgCSAKURsiCBshCiAEIAIgCBsiDEL///////8/gyEJIAIgBCAIGyILQjCIp0H//wFxIQcgDEIwiKdB//8BcSIFRQRAIAZB4ABqIAogCSAKIAkgCVAiBRt5QsAAQgAgBRt8pyIFQQ9rEEQgBikDaCEJIAYpA2AhCkEQIAVrIQULIAEgAyAIGyEDIAtC////////P4MhASAHBH4gAQUgBkHQAGogAyABIAMgASABUCIHG3lCwABCACAHG3ynIgdBD2sQREEQIAdrIQcgBikDUCEDIAYpA1gLQgOGIANCPYiEQoCAgICAgIAEhCEBIAlCA4YgCkI9iIQgAiAEhSEEAn4gA0IDhiICIAUgB0YNABogBSAHayIHQf8ASwRAQgAhAUIBDAELIAZBQGsgAiABQYABIAdrEEQgBkEwaiACIAEgBxCKASAGKQM4IQEgBikDMCAGKQNAIAYpA0iEQgBSrYQLIQlCgICAgICAgASEIQsgCkIDhiEKAkAgBEIAUwRAQgAhA0IAIQQgCSAKhSABIAuFhFANAiAKIAl9IQIgCyABfSAJIApWrX0iBEL/////////A1YNASAGQSBqIAIgBCACIAQgBFAiBxt5QsAAQgAgBxt8p0EMayIHEEQgBSAHayEFIAYpAyghBCAGKQMgIQIMAQsgCSAKfCICIAlUrSABIAt8fCIEQoCAgICAgIAIg1ANACAJQgGDIARCP4YgAkIBiISEIQIgBUEBaiEFIARCAYghBAsgDEKAgICAgICAgIB/gyEDIAVB//8BTgRAIANCgICAgICAwP//AIQhBEIAIQMMAQtBACEHAkAgBUEASgRAIAUhBwwBCyAGQRBqIAIgBCAFQf8AahBEIAYgAiAEQQEgBWsQigEgBikDACAGKQMQIAYpAxiEQgBSrYQhAiAGKQMIIQQLIARCPYYgAkIDiIQhASAEQgOIQv///////z+DIAetQjCGhCADhCEEAkACQCACp0EHcSIFQQRHBEAgBCABIAEgBUEES618IgNWrXwhBAwBCyAEIAEgASABQgGDfCIDVq18IQQMAQsgBUUN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C14BA38gAEEANgIIIABCADcCACABKAIAIQMgASgCBCIBIANrIgRBAnUiAgRAIAAgAhCuAyAAKAIEIQIgBEUgASADRnJFBEAgAiADIAT8CgAACyAAIAIgBGo2AgQLIAALDQAgACgCACABQQJ0agsXACAAEEcEQCAAIAE2AgQPCyAAIAEQUAthAQF/IwBBEGsiAiQAIAIgADYCDAJAIAAgAUYNAANAIAIgAUEBayIBNgIIIAAgAU8NASACKAIMIAIoAggQ8wIgAiACKAIMQQFqIgA2AgwgAigCCCEBDAALAAsgAkEQaiQAC6wBAQR/IwBBEGsiByQAAkAgAEUNACAEKAIMIQYgAiABa0ECdSIIQQBKBEAgACABIAgQjQIgCEcNAQsgAyABa0ECdSIBIAZIBEAgACAHQQRqIAYgAWsiASAFEP0CIgUQIyABEI0CIQYgBRA5GiABIAZHDQELIAMgAmtBAnUiAUEASgRAIAAgAiABEI0CIAFHDQELIAQoAgwaIARBADYCDCAAIQkLIAdBEGokACAJCycBAX8jAEEQayIDJAAgAyACNgIMIABB5AAgASACENEBIANBEGokAAvbAQIBfwJ+QQEhBAJAIABCAFIgAUL///////////8AgyIFQoCAgICAgMD//wBWIAVCgICAgICAwP//AFEbDQAgAkIAUiADQv///////////wCDIgZCgICAgICAwP//AFYgBkKAgICAgIDA//8AURsNACAAIAKEIAUgBoSEUARAQQAPCyABIAODQgBZBEAgACACVCABIANTIAEgA1EbBEBBfw8LIAAgAoUgASADhYRCAFIPCyAAIAJWIAEgA1UgASADURsEQEF/DwsgACAChSABIAOFhEIAUiEECyAEC+wBAQR/IwBBEGsiBCQAIABBADYCBCMAQRBrIgUkACAEQQA6AA8gACAAKAIAQQxrKAIAahDZASEGIAAgACgCAEEMaygCAGohAwJAIAYEQCADKAJIBEAgACAAKAIAQQxrKAIAaigCSBDFAwsgBCAAIAAoAgBBDGsoAgBqENkBOgAPDAELIANBBBDVAQsgBUEQaiQAQQQhAyAELQAPBEAgACAAIAAoAgBBDGsoAgBqKAIYIgMgASACIAMoAgAoAiARAwAiATYCBEEGQQAgASACRxshAwsgACAAKAIAQQxrKAIAaiADENUBIARB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AxsLPAAgAEEANgIIIABCADcCACAAIAEoAgA2AgAgACABKAIENgIEIAAgASgCCDYCCCABQQA2AgggAUIANwIACywBAX8gAEEANgIIIABCADcCACAAIAEoAgAiAiABKAIEIgEgASACaxDAAyAACwgAIABB/wFxC/wBAQN/IAAoAgQgACgCACIDa0ECdSICIAFJBEAjAEEgayIDJAACQCABIAJrIgIgACgCCCAAKAIEIgFrQQJ1TQRAIAAoAgQiASACQQJ0aiECA0AgASACRgRAIAAgAjYCBAUgAUEANgIAIAFBBGohAQwBCwsMAQsgA0EMaiAAIAEgACgCAGtBAnUgAmoQtgEgACgCBCAAKAIAa0ECdSAAEIcCIgQoAggiASACQQJ0aiECA0AgASACRwRAIAFBADYCACABQQRqIQEMAQsLIAQgAjYCCCAAIAQQhQIgBBCBAgsgA0EgaiQADwsgASACSQRAIAAgAyABQQJ0ajYCBAsLUgECf0HU3gEoAgAiASAAQQdqQXhxIgJqIQACQCACQQAgACABTRtFBEAgAD8AQRB0TQ0BIAAQGA0BC0GI6gFBMDYCAEF/DwtB1N4BIAA2AgAgAQt/AgF+A38CQCAAQoCAgIAQVARAIAAhAgwBCwNAIAFBAWsiASAAIABCCoAiAkIKfn2nQTByOgAAIABC/////58BViACIQANAAsLIAJQRQRAIAKnIQMDQCABQQFrIgEgAyADQQpuIgRBCmxrQTByOgAAIANBCUsgBCEDDQALCyABC78BAQN/IAAoAgQgACgCACIDayICIAFJBEAjAEEgayIDJAACQCABIAJrIgIgACgCCCAAKAIEIgFrTQRAIAAgAhCYAwwBCyACIANBDGogACABIAJqIAAoAgBrELQBIAAoAgQgACgCAGsgABDGASIEKAIIIgFqIQIDQCABIAJHBEAgAUEAOgAAIAFBAWohAQwBCwsgBCACNgIIIAAgBBDvASAEELoBCyADQSBqJAAPCyABIAJJBEAgACABIANqNgIECwt9AQN/AkACQCAAIgFBA3FFDQAgAS0AAEUEQEEADwsDQCABQQFqIgFBA3FFDQEgAS0AAA0ACwwBCwNAIAEiAkEEaiEBQYCChAggAigCACIDayADckGAgYKEeHFBgIGChHhGDQALA0AgAiIBQQFqIQIgAS0AAA0ACwsgASAA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BEBBCiEBIAAQXgwBCyAAEH5BAWshASAAKAIECyIDIAFGBEAgACABQQEgASABEPQBIAAQIxoMAQsgABAjGiAEDQAgACIBIANBAWoQUAwBCyAAKAIAIQEgACADQQFqNgIECyABIANqIgAgAkEPahBdIAJBADoADiAAQQFqIAJBDmoQXSACQRBqJAALoQIBA38jAEEgayIIJABB9////wciCSABQX9zaiACTwRAIAAQIyEKIAFB8////wNJBEAgCCABQQF0NgIcIAggASACajYCECAIQRBqIAhBHGoQoAEoAgAQnwFBAWohCQsgCEEcaiAIQRhqIAAQVSgCABC8ASAIQRBqIAkQngEgCCgCECECIAgoAhQaIAQEQCACIAogBBBNCyAGBEAgAiAEaiAHIAYQTQsgAyAEIAVqIglrIQcgAyAJRwRAIAIgBGogBmogBCAKaiAFaiAHEE0LIAFBCkcEQCAKEIsCCyAAIAI2AgAgACAIKAIUEFwgACAEIAZqIAdqIgA2AgQgCEEAOgAPIAAgAmogCEEPahBdIAhBHGoQuwEgCEEgaiQADwsQWwALCQAgAEEBEKgCCwoAIAAoAgAQHxoLCQAgACABEFUaCwcAIABBAkkLBABBBAsoAQF/IAAgACgCBEEBayIBNgIEIAFBf0YEQCAAIAAoAgAoAggRAgALC5UBAQN/IwBBEGsiBCQAIAQgATYCDCAEIAM2AgggBEEEaiAEQQxqEGMgBCgCCCEDIwBBEGsiASQAIAEgAzYCDCABIAM2AghBfyEFAkBBAEEAIAIgAxDRASIDQQBIDQAgACADQQFqIgMQNCIANgIAIABFDQAgACADIAIgASgCDBDRASEFCyABQRBqJAAQYiAEQRBqJAAgBQsPACAAIAAoAgAoAiQRAAALEQAgACABIAEoAgAoAiARAQALDgAgACABKAIANgIAIAALCABB/////wcLBQBB/wALOwAgACADNgIQIAAgAQR/IAEQUwVBAAsiAzYCACAAIAIgA2oiAjYCCCAAIAEgA2o2AgwgACACNgIEIAALYQEBfyMAQRBrIgIkACACIAA2AgwCQCAAIAFGDQADQCACIAFBBGsiATYCCCAAIAFPDQEgAigCDCACKAIIENcBIAIgAigCDEEEaiIANgIMIAIoAgghAQwACwALIAJBEGokAAs5AgF/AX4jAEEQayIEJAAgAykDACEFIAQgAykDCDcDCCAEIAU3AwAgACABIAIgBBDAASAEQRBqJAAL0AEBAn8gAkGAEHEEQCAAQSs6AAAgAEEBaiEACyACQYAIcQRAIABBIzoAACAAQQFqIQALIAJBhAJxIgNBhAJHBEAgAEGu1AA7AAAgAEECaiEACyACQYCAAXEhAgNAIAEtAAAiBARAIAAgBDoAACAAQQFqIQAgAUEBaiEBDAELCyAAAn8CQCADQYACRwRAIANBBEcNAUHGAEHmACACGwwCC0HFAEHlACACGwwBC0HBAEHhACACGyADQYQCRg0AGkHHAEHnACACGws6AAAgA0GEAkcLKwEBfyMAQRBrIgUkACAFIAQoAgA2AgAgACABIAIgAyAFEJYBIAVBEGokAAuqAQEBfwJAIANBgBBxRSACRXINACADQcoAcSIEQQhGIARBwABGcg0AIABBKzoAACAAQQFqIQALIANBgARxBEAgAEEjOgAAIABBAWohAAsDQCABLQAAIgQEQCAAIAQ6AAAgAEEBaiEAIAFBAWohAQwBCwsgAAJ/Qe8AIANBygBxIgFBwABGDQAaQdgAQfgAIANBgIABcRsgAUEIRg0AGkHkAEH1ACACGws6AAALDAAgABAjIAFBAnRqC5IEAQt/IwBBgAFrIgokACAKIAE2AnwgAiADELUCIQggCkHjADYCECAKQQhqQQAgCkEQaiIJEDYhDwJAAkACQCAIQeUATwRAIAgQNCIJRQ0BIA8gCRA8CyAJIQcgAiEBA0AgASADRgRAA0AgACAKQfwAaiIBECtBASAIGwRAIAAgARArBEAgBSAFKAIAQQJyNgIACwNAIAIgA0YNBiAJLQAAQQJGDQcgCUEBaiEJIAJBDGohAgwACwALIAAQNyEOIAZFBEAgBCAOEEEhDgsgDUEBaiEMQQAhECAJIQcgAiEBA0AgASADRgRAIAwhDSAQRQ0CIAAQPhogCSEHIAIhASAIIAtqQQJJDQIDQCABIANGBEAMBAUCQCAHLQAAQQJHDQAgARAfIA1GDQAgB0EAOgAAIAtBAWshCwsgB0EBaiEHIAFBDGohAQwBCwALAAUCQCAHLQAAQQFHDQAgASANEMwBKAIAIRECQCAGBH8gEQUgBCAREEELIA5GBEBBASEQIAEQHyAMRw0CIAdBAjoAACALQQFqIQsMAQsgB0EAOgAACyAIQQFrIQgLIAdBAWohByABQQxqIQEMAQsACwALAAUgB0ECQQEgARBaIgwbOgAAIAdBAWohByABQQxqIQEgCyAMaiELIAggDGshCAwBCwALAAsQPQALIAUgBSgCAEEEcjYCAAsgDxA1IApBgAFqJAAgAgsRACAAIAEgACgCACgCDBEEAAuTBAELfyMAQYABayIKJAAgCiABNgJ8IAIgAxC1AiEIIApB4wA2AhAgCkEIakEAIApBEGoiCRA2IQ8CQAJAAkAgCEHlAE8EQCAIEDQiCUUNASAPIAkQPAsgCSEHIAIhAQNAIAEgA0YEQANAIAAgCkH8AGoiARAsQQEgCBsEQCAAIAEQLARAIAUgBSgCAEECcjYCAAsDQCACIANGDQYgCS0AAEECRg0HIAlBAWohCSACQQxqIQIMAAsACyAAEDghDiAGRQRAIAQgDhDOASEOCyANQQFqIQxBACEQIAkhByACIQEDQCABIANGBEAgDCENIBBFDQIgABA/GiAJIQcgAiEBIAggC2pBAkkNAgNAIAEgA0YEQAwEBQJAIActAABBAkcNACABEB8gDUYNACAHQQA6AAAgC0EBayELCyAHQQFqIQcgAUEMaiEBDAELAAsABQJAIActAABBAUcNACABIA0QIiwAACERAkAgBgR/IBEFIAQgERDOAQsgDkYEQEEBIRAgARAfIAxHDQIgB0ECOgAAIAtBAWohCwwBCyAHQQA6AAALIAhBAWshCAsgB0EBaiEHIAFBDGohAQwBCwALAAsABSAHQQJBASABEFoiDBs6AAAgB0EBaiEHIAFBDGohASALIAxqIQsgCCAMayEIDAELAAsACxA9AAsgBSAFKAIAQQRyNgIACyAPEDUgCkGAAWokACACC0oBAn8CQCAALQAAIgJFIAIgAS0AACIDR3INAANAIAEtAAEhAyAALQABIgJFDQEgAUEBaiEBIABBAWohACACIANGDQALCyACIANrC4QBAQJ/IwBBoAFrIgQkACAEIAAgBEGeAWogARsiADYClAEgBCABQQFrIgVBACABIAVPGzYCmAEgBEEAQZAB/AsAIARBfzYCTCAEQeIANgIkIARBfzYCUCAEIARBnwFqNgIsIAQgBEGUAWo2AlQgAEEAOgAAIAQgAiADEM0DIARBoAFqJAALuwIBBH8gA0H87QEgAxsiBSgCACEDAkAC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IBAtIAAoAiQQLSAAKAIwEC0gACgCPBAtCyAACwcAIAEgAGsLDABBARDWARogABAtCwkAIAAQsQEQLQsTACAAIAEgAiAAKAIAKAIwEQMACwkAIAAQ2AEQLQsMACAAQQRqENoBIAALDAAgAEEIahDaASAACygBAn8jAEEQayICJAAgASgCACAAKAIASCEDIAJBEGokACABIAAgAxsLEAAgACABNwMIIABCADcDAAsCAAsUACAAQZj1ADYCACAAQQRqECUgAAvyAwICfgV/IwBBIGsiBSQAIAFC////////P4MhAgJ+IAFCMIhC//8BgyIDpyIEQYH4AGtB/Q9NBEAgAkIEhiAAQjyIhCECIARBgPgAa60hAwJAIABC//////////8PgyIAQoGAgICAgICACFoEQCACQgF8IQIMAQsgAEKAgICAgICAgAhSDQAgAkIBgyACfCECC0IAIAIgAkL/////////B1YiBBshACAErSADfAwBCyAAIAKEUCADQv//AVJyRQRAIAJCBIYgAEI8iIRCgICAgICAgASEIQBC/w8MAQsgBEH+hwFLBEBCACEAQv8PDAELQYD4AEGB+AAgA1AiBxsiCCAEayIGQfAASgRAQgAhAEIADAELIAVBEGogACACIAJCgICAgICAwACEIAcbIgJBgAEgBmsQRCAFIAAgAiAGEIoBIAUpAwhCBIYgBSkDACICQjyIhCEAAkAgBCAIRyAFKQMQIAUpAxiEQgBSca0gAkL//////////w+DhCICQoGAgICAgICACFoEQCAAQgF8IQAMAQsgAkKAgICAgICAgAhSDQAgAEIBgyAAfCEACyAAQoCAgICAgIAIhSAAIABC/////////wdWIgQbIQAgBK0LIQIgBUEgaiQAIAFCgICAgICAgICAf4MgAkI0hoQgAIS/C4kCAAJAIAAEfyABQf8ATQ0BAkBB3OEBKAIAKAIARQRAIAFBgH9xQYC/A0YNAwwBCyABQf8PTQRAIAAgAUE/cUGAAXI6AAEgACABQQZ2QcABcjoAAEECDwsgAUGAQHFBgMADRyABQYCwA09xRQRAIAAgAUE/cUGAAXI6AAIgACABQQx2QeABcjoAACAAIAFBBnZBP3FBgAFyOgABQQMPCyABQYCABGtB//8/TQRAIAAgAUE/cUGAAXI6AAMgACABQRJ2QfABcjoAACAA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AXI2AgQgCSAGIAkoAgBBAXFyQQJyNgIAIAEgBmoiAiACKAIEQQFyNgIEIAEgBhDbAQsCQCAAKAIEIgJBA3FFDQAgAkF4cSIBIAVBEGpNDQAgACAFIAJBAXFyQQJyNgIEIAAgBWoiBCABIAVrIgJBA3I2AgQgACABaiIBIAEoAgRBAXI2AgQgBCACENsBCyAAQQhqCwsiAEUNARogCCAANgIMQQAhAQsgAQshAEEAIAgoAgwgABshAQsgCEEQaiQAIAENAEHk/gEoAgAiAEUNACAAEQwADAELCyABRQRAEOsBCyABCwoAIAEgAGtBDG0LCQAgABAuNgIACyMBAn8gACEBA0AgASICQQRqIQEgAigCAA0ACyACIABrQQJ1Cy8BAX8jAEEQayIDJAACQCAAIAFGBEAgAEEAOgB4DAELIAEgAhCpAQsgA0EQaiQACxAAIAAoAgggACgCAGtBAnULCQAgAEEANgIAC0kBAX8jAEEQayIDJAACQAJAIAJBHksNACABLQB4QQFxDQAgAUEBOgB4DAELIAIQwQIhAQsgA0EQaiQAIAAgAjYCBCAAIAE2AgALOgECfyMAQRBrIgAkACAAQf////8DNgIMIABB/////wc2AgggAEEMaiAAQQhqELUDKAIAIABBEGokAAs0AQF/IwBBEGsiAyQAIAMgARBzNgIMIAMgAhBzNgIIIAAgA0EMaiADQQhqEGYgA0EQaiQAC04BAX8jAEEQayIDJAAgAyABNgIIIAMgADYCDCADIAI2AgRBACEBIANBBGoiACADQQxqENMBRQRAIAAgA0EIahDTASEBCyADQRBqJAAgAQswAQF/IwBBEGsiAyQAIAMgATYCDCADIAI2AgggACADQQxqIANBCGoQZiADQRBqJAALMwEBfyMAQRBrIgMkACAAEB8aIAAgAhCDASADQQA6AA8gASACaiADQQ9qEF0gA0EQaiQACzEAIABB/////wNLBEAQqgIACwJ/IABBAnQhAEEEENYBBEAgAEEEELQCDAELIAAQUwsLCQAgABDtARAtCxUAIABB8KoBNgIAIABBEGoQIBogAAsVACAAQciqATYCACAAQQxqECAaIAALgAMBBH8gAiEAA0ACQCAEIAdNIAAgA09yDQAgACwAACIBQf8BcSEFAn9BASABQQBODQAaIAFBQkkNASABQV9NBEAgAyAA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ZEYNAEEAIQAgC0EANgIQIBEgDygCACALKAJkIAtBEGoQQyALKAIQBEAgBSAFKAIAQQRyNgIADAELQQEhAAsgEBAgGiANECAaIA4QIBogDBAgGiARECAaIA8QNQwDCyACIQELIANBAWohAwwACwALIAtBkARqJAAgAAsMACAAQQFBLRD9AhoLCwAgAEEBQS0QsAILHAEBfyAALQAAIQIgACABLQAAOgAAIAEgAjoAAAtlAQF/IwBBEGsiBiQAIAZBADoADyAGIAU6AA4gBiAEOgANIAZBJToADCAFBEAgBkENaiAGQQ5qEPMCCyACIAEgASACKAIAEIoCIAZBDGogAyAAKAIAEJ4DIAFqNgIAIAZBEGokAAtBACABIAIgAyAEQQQQZyEBIAMtAABBBHFFBEAgACABQdAPaiABQewOaiABIAFB5ABJGyABQcUASBtB7A5rNgIACwtAACACIAMgAEEIaiAAKAIIKAIEEQAAIgAgAEGgAmogBSAEQQAQzQEgAGsiAEGfAkwEQCABIABBDG1BDG82AgALC0AAIAIgAyAAQQhqIAAoAggoAgARAAAiACAAQagBaiAFIARBABDNASAAayIAQacBTARAIAEgAEEMbUEHbzYCAAsLQQAgASACIAMgBEEEEGghASADLQAAQQRxRQRAIAAgAUHQD2ogAUHsDmogASABQeQASRsgAUHFAEgbQewOazYCAAsLQAAgAiADIABBCGogACgCCCgCBBEAACIAIABBoAJqIAUgBEEAEM8BIABrIgBBnwJMBEAgASAAQQxtQQxvNgIACwtAACACIAMgAEEIaiAAKAIIKAIAEQAAIgAgAEGoAWogBSAEQQAQzwEgAGsiAEGnAUwEQCABIABBDG1BB282AgALCxgBAX9BDBBTIgBBADYCCCAAQgA3AgAgAAsEAEECC8oBAQR/IwBBEGsiAyQAAkAgAUH3////A00EQAJAIAEQvQEEQCAAIAEQUCAAIQQMAQsgA0EIaiABEJABQQFqEI8BIAMoAgwaIAAgAygCCCIENgIAIAAgAygCDBBcIAAgATYCBAsjAEEQayIFJAAgBSACNgIMIAQhBiABIQIDQCACBEAgBiAFKAIMNgIAIAJBAWshAiAGQQRqIQYMAQsLIAVBEGokACADQQA2AgQgBCABQQJ0aiADQQRqEFYgA0EQaiQADAELEFsA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hoRCAEKAgICAgIDAwz8QLyAFKQNIIQIgBSkDQCEEDAELIAlC////////P4MgBiAHcq1CMIaEIQILIAAgBDcDACAAIAI3AwggBUGAAWokAAuIEAIFfw9+IwBB0AJrIgUkACAEQv///////z+DIQsgAkL///////8/gyEKIAIgBIVCgICAgICAgICAf4MhDCAEQjCIp0H//wFxIQcCQAJAIAJCMIinQf//AXEiCEH//wFrQYKAfk8EQCAHQf//AWtBgYB+Sw0BCyABUCACQv///////////wCDIg5CgICAgICAwP//AFQgDkKAgICAgIDA//8AURtFBEAgAkKAgICAgIAghCEMDAILIANQIARC////////////AIMiAkKAgICAgIDA//8AVCACQoCAgICAgMD//wBRG0UEQCAEQoCAgICAgCCEIQwgAyEBDAILIAEgDkKAgICAgIDA//8AhYRQBEAgAyACQoCAgICAgMD//wCFhFAEQEIAIQFCgICAgICA4P//ACEMDAMLIAxCgICAgICAwP//AIQhDEIAIQEMAgsgAyACQoCAgICAgMD//wCFhFAEQEIAIQEMAgsgASAOhFAEQEKAgICAgIDg//8AIAwgAiADhFAbIQxCACEBDAILIAIgA4RQBEAgDEKAgICAgIDA//8AhCEMQgAhAQwCCyAOQv///////z9YBEAgBUHAAmogASAKIAEgCiAKUCIGG3lCwABCACAGG3ynIgZBD2sQREEQIAZrIQYgBSkDyAIhCiAFKQPAAiEBCyACQv///////z9WDQAgBUGwAmogAyALIAMgCyALUCIJG3lCwABCACAJG3ynIglBD2sQRCAGIAlqQRBrIQYgBSkDuAIhCyAFKQOwAiEDCyAFQaACaiALQoCAgICAgMAAhCISQg+GIANCMYiEIgJCAEKAgICAsOa8gvUAIAJ9IgRCABBAIAVBkAJqQgAgBSkDqAJ9QgAgBEIAEEAgBUGAAmogBSkDmAJCAYYgBSkDkAJCP4iEIgRCACACQgAQQCAFQfABaiAEQgBCACAFKQOIAn1CABBAIAVB4AFqIAUpA/gBQgGGIAUpA/ABQj+IhCIEQgAgAkIAEEAgBUHQAWogBEIAQgAgBSkD6AF9QgAQQCAFQcABaiAFKQPYAUIBhiAFKQPQAUI/iIQiBEIAIAJCABBAIAVBsAFqIARCAEIAIAUpA8gBfUIAEEAgBUGgAWogAkIAIAUpA7gBQgGGIAUpA7ABQj+IhEIBfSICQgAQQCAFQZABaiADQg+GQgAgAkIAEEAgBUHwAGogAkIAQgAgBSkDqAEgBSkDoAEiDiAFKQOYAXwiBCAOVK18IARCAVatfH1CABBAIAVBgAFqQgEgBH1CACACQgAQQCAGIAggB2tqIghB//8AaiEGAn4gBSkDcCITQgGGIg0gBSkDiAEiD0IBhiAFKQOAAUI/iIR8IhBC5+wAfSIUQiCIIgIgCkKAgICAgIDAAIQiFUIBhiIWQiCIIgR+IhEgAUIBhiIOQiCIIgsgECAUVq0gDSAQVq0gBSkDeEIBhiATQj+IhCAPQj+IfHx8QgF9IhNCIIgiEH58Ig0gEVStIA0gDSATQv////8PgyITIAFCP4giFyAKQgGGhEL/////D4MiCn58Ig1WrXwgBCAQfnwgBCATfiIRIAogEH58Ig8gEVStQiCGIA9CIIiEfCANIA9CIIZ8Ig8gDVStfCAPIA8gFEL/////D4MiFCAKfiINIAIgC358IhEgDVStIBEgESATIA5C/v///w+DIg1+fCIRVq18fCIPVq18IA8gBCAUfiIYIA0gEH58IgQgAiAKfnwiCiALIBN+fCIQQiCIIAogEFatIAQgGFStIAQgClatfHxCIIaEfCIEIA9UrXwgBCAEIBEgAiANfiIKIAsgFH58IgJCIIggAiAKVK1CIIaEfCIKIBFUrSAKIAogEEIghnwiClatfHwiBFatfCAEIAQgCiACQiCGIgIgDSAUfnwgAlStQn+FIgJWIAIgClJxrXwiBFatfCICQv////////8AWARAIBYgF4QhFSAFQdAAaiAEIAJCgICAgICAwABUIgetIguGIgogAiALhiAEQgGIIAdBP3OtiIQiBCADIBIQQCAIQf7/AGogBiAHG0EBayEGIAFCMYYgBSkDWH0gBSkDUCIBQgBSrX0hC0IAIAF9DAELIAVB4ABqIAJCP4YgBEIBiIQiCiACQgGIIgQgAyASEEAgAUIwhiAFKQNofSAFKQNgIgJCAFKtfSELIAEhDkIAIAJ9CyECIAZB//8BTgRAIAxCgICAgICAwP//AIQhDEIAIQEMAQsCfiAGQQBKBEAgC0IBhiACQj+IhCEBIARC////////P4MgBq1CMIaEIQsgAkIBhgwBCyAGQY9/TARAQgAhAQwCCyAFQUBrIAogBEEBIAZrEIoBIAVBMGogDiAVIAZB8ABqEEQgBUEgaiADIBIgBSkDQCIKIAUpA0giCxBAIAUpAzggBSkDKEIBhiAFKQMgIgFCP4iEfSAFKQMwIgIgAUIBhiIEVK19IQEgAiAEfQshAiAFQRBqIAMgEkIDQgAQQCAFIAMgEkIFQgAQQCALIAogAyAKQgGDIgMgAnwiAlQgASACIANUrXwiASASViABIBJRG618IgMgClStfCIEIAMgAyAEQoCAgICAgMD//wBUIAIgBSkDEFYgASAFKQMYIgRWIAEgBFEbca18IgNWrXwiBCADIARCgICAgICAwP//AFQgAiAFKQMAViABIAUpAwgiAlYgASACURtxrXwiASADVK18IAyEIQwLIAAgATcDACAAIAw3AwggBUHQAmokAAu/AgEBfyMAQdAAayIEJAACQCADQYCAAU4EQCAEQSBqIAEgAkIAQoCAgICAgID//wAQLyAEKQMoIQIgBCkDICEBIANB//8BSQRAIANB//8AayEDDAILIARBEGogASACQgBCgICAgICAgP//ABAvQf3/AiADIANB/f8CTxtB/v8BayEDIAQpAxghAiAEKQMQIQEMAQsgA0GBgH9KDQAgBEFAayABIAJCAEKAgICAgICAORAvIAQpA0ghAiAEKQNAIQEgA0H0gH5LBEAgA0GN/wBqIQMMAQsgBEEwaiABIAJCAEKAgICAgICAORAvQeiBfSADIANB6IF9TRtBmv4BaiEDIAQpAzghAiAEKQMwIQELIAQgASACQgAgA0H//wBqrUIwhhAvIAAgBCkDCDcDCCAAIAQpAwA3AwAgBEHQAGokAAs8ACAAIAE3AwAgACACQv///////z+DIAJCgICAgICAwP//AINCMIinIANCMIinQYCAAnFyrUIwhoQ3AwgLwAECAX8CfkF/IQMCQCAAQgBSIAFC////////////AIMiBEKAgICAgIDA//8AViAEQoCAgICAgMD//wBRGw0AIAJC////////////AIMiBUKAgICAgIDA//8AViAFQoCAgICAgMD//wBScQ0AIAAgBCAFhIRQBEBBAA8LIAEgAoNCAFkEQCABIAJSIAEgAlNxDQEgACABIAKFhEIAUg8LIABCAFIgASACVSABIAJRGw0AIAAg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EKYCCyEAIAEQTAR/QZiEASgCACABQf8BcUECdGooAgAFIAELwAsJACAAENACEC0LOwADQCABIAJGRQRAIAMhACAEIAEoAgAQTAR/IAEoAgAFIAALOgAAIARBAWohBCABQQRqIQEMAQsLIAELDAAgASACIAEQTBvACyoAA0AgASACRkUEQCADIAEsAAA2AgAgA0EEaiEDIAFBAWohAQwBCwsgAQsPACAAIAEgAkGgkAEQpwILHAAgARBMBH9BoJABKAIAIAFBAnRqKAIABSABCwsPACAAIAEgAkGYhAEQpwILHAAgARBMBH9BmIQBKAIAIAFBAnRqKAIABSABCwsQACAABEAgABDHAwsgABAtCzoAA0ACQCACIANGDQAgAigCABBMRQ0AIAIoAgBBAnRBkKIBaigCACABcUUNACACQQRqIQIMAQsLIAILOQADQAJAIAIgA0YNACACKAIAEEwEQCACKAIAQQJ0QZCiAWooAgAgAXENAQsgAkEEaiECDAELCyACC0YAA0AgASACRkUEQEEAIQAgAyABKAIAEEwEfyABKAIAQQJ0QZCiAWooAgAFQQALNgIAIANBBGohAyABQQRqIQEMAQsLIAELIwBBACEAIAIQTAR/IAJBAnRBkKIBaigCACABcUEARwVBAAsLDwAgACAAKAIAKAIEEQIACwkAIAAQ1gIQLQsVAQF/QdQAEFMiAEEAQdQA/AsAIAALFAAgACgCACABaiACLQAAOgAAQQELrgEAAkAgBRBHRQRAIAAgBSkCADcCACAAIAUoAgg2AgggABBeGgwBCyAFKAIAIQQgBSgCBCECIwBBEGsiAyQAAkACQAJAIAIQvQEEQCAAIgEgAhBQDAELIAJB9////wNLDQEgA0EIaiACEJABQQFqEI8BIAMoAgwaIAAgAygCCCIBNgIAIAAgAygCDBBcIAAgAjYCBAsgASAEIAJBAWoQZSADQRBqJAAMAQsQWwALCwsJACAAIAUQ5AELhAMBCH8jAEHgA2siACQAIABB3ANqIgYgAxAnIAYQSCEKIAUQHwRAIAVBABDMASgCACAKQS0QS0YhCwsgAiALIABB3ANqIABB2ANqIABB1ANqIABB0ANqIABBxANqECQiDCAAQbgDahAkIgYgAEGsA2oQJCIHIABBqANqEN8CIABB4wA2AhAgAEEIakEAIABBEGoiAhA2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KAK8ASAEEI8DOQMAIABBzAFqIABBEGogACgCDCAEEEMgAEHcAmogAEHYAmoQKwRAIAQgBCgCAEECcjYCAAsgACgC3AIgARAgGiAAQcwBahAgGiAAQeACaiQADAMLQQEhAwsgAEHcAmoQPhoMAAsACwvKBAEDfwJ/IwBB4AJrIgAkACAAIAI2AtgCIAAgATYC3AIgAEHMAWogAyAAQeABaiAAQdwBaiAAQdgBahD7ASAAQcABahAkIgEgARAoECEgACABQQAQIiICNgK8ASAAIABBEGo2AgwgAEEANgIIIABBAToAByAAQcUAOgAGQQAhAwNAAkACQAJAIABB3AJqIABB2AJqECsNACAAKAK8ASABEB8gAmpGBEAgARAfIQYgASABEB9BAXQQISABIAEQKBAhIAAgBiABQQAQIiICajYCvAELIABB3AJqEDcgAEEHaiAAQQZqIAIgAEG8AWogACgC3AEgACgC2AEgAEHMAWogAEEQaiAAQQxqIABBCGogAEHgAWoQ+gENACADDQFBACEDIAAoArwBIAJrIgdBAEwNAgJAAkAgAi0AACIGQStrIggOAwEAAQALIAZBLkYNAkEBIQMgBkEwa0H/AXFBCkkNAwwBCyAHQQFGDQICQCAIDgMAAwADCyACLQABIgZBLkYNAUEBIQMgBkEwa0H/AXFBCU0NAgsCQCAAQcwBahAfRQ0AIAAtAAdBAXFFDQAgACgCDCIDIABBEGprQZ8BSg0AIAAgA0EEajYCDCADIAAoAgg2AgALIAUgAiAAKAK8ASAEEJEDOAIAIABBzAFqIABBEGogACgCDCAEEEMgAEHcAmogAEHYAmoQKwRAIAQgBCgCAEECcjYCAAsgACgC3AIgARAgGiAAQcwBahAgGiAAQeACaiQADAMLQQEhAwsgAEHcAmoQPhoMAAsACwuWAwECfyMAQdACayIAJAAgACACNgLIAiAAIAE2AswCIAMQaiEGIAMgAEHQAWoQrgEhByAAQcQBaiADIABBxAJqEK0BIABBuAFqECQiASABECgQISAAIAFBABAiIgI2ArQBIAAgAEEQajYCDCAAQQA2AggDQAJAIABBzAJqIABByAJqECsNACAAKAK0ASABEB8gAmpGBEAgARAfIQMgASABEB9BAXQQISABIAEQKBAhIAAgAyABQQAQIiICajYCtAELIABBzAJqIgMQNyAGIAIgAEG0AWogAEEIaiAAKALEAiAAQcQBaiAAQRBqIABBDGogBxCYAQ0AIAMQPhoMAQsLAkAgAEHEAWoQH0UNACAAKAIMIgMgAEEQamtBnwFKDQAgACADQQRqNgIMIAMgACgCCDYCAAsgBSACIAAoArQBIAQgBhCSAzcDACAAQcQBaiAAQRBqIAAoAgwgBBBDIABBzAJqIABByAJqECsEQCAEIAQoAgBBAnI2AgALIAAoAswCIAEQIBogAEHEAWoQIBogAEHQAmokAAuWAwECfyMAQdACayIAJAAgACACNgLIAiAAIAE2AswCIAMQaiEGIAMgAEHQAWoQrgEhByAAQcQBaiADIABBxAJqEK0BIABBuAFqECQiASABECgQISAAIAFBABAiIgI2ArQBIAAgAEEQajYCDCAAQQA2AggDQAJAIABBzAJqIABByAJqECsNACAAKAK0ASABEB8gAmpGBEAgARAfIQMgASABEB9BAXQQISABIAEQKBAhIAAgAyABQQAQIiICajYCtAELIABBzAJqIgMQNyAGIAIgAEG0AWogAEEIaiAAKALEAiAAQcQBaiAAQRBqIABBDGogBxCYAQ0AIAMQPhoMAQsLAkAgAEHEAWoQH0UNACAAKAIMIgMgAEEQamtBnwFKDQAgACADQQRqNgIMIAMgACgCCDYCAAsgBSACIAAoArQBIAQgBhCVAzsBACAAQcQBaiAAQRBqIAAoAgwgBBBDIABBzAJqIABByAJqECsEQCAEIAQoAgBBAnI2AgALIAAoAswCIAEQIBogAEHEAWoQIBogAEHQAmokAAuWAwECfyMAQdACayIAJAAgACACNgLIAiAAIAE2AswCIAMQaiEGIAMgAEHQAWoQrgEhByAAQcQBaiADIABBxAJqEK0BIABBuAFqECQiASABECgQISAAIAFBABAiIgI2ArQBIAAgAEEQajYCDCAAQQA2AggDQAJAIABBzAJqIABByAJqECsNACAAKAK0ASABEB8gAmpGBEAgARAfIQMgASABEB9BAXQQISABIAEQKBAhIAAgAyABQQAQIiICajYCtAELIABBzAJqIgMQNyAGIAIgAEG0AWogAEEIaiAAKALEAiAAQcQBaiAAQRBqIABBDGogBxCYAQ0AIAMQPhoMAQsLAkAgAEHEAWoQH0UNACAAKAIMIgMgAEEQamtB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DCECDAYLIANBIHIhAyABQQRqIQIgBEEEayEEIAEtAAMgCHQgB2ohBwsCQCAFQQRxRQ0AIAcgBigCIEYNACAKQd4ONgIYIAZB0f4ANgIEIAIhASAGKAIEIQUMAQsLIAIhAUEAIQdBACEDCyAGQdD+ADYCBAtBASECDAELQQAhBCAMIQILIAogDzYCECAKIBA2AgwgCiAENgIEIAogATYCACAGIAM2AkAgBiAHNgI8AkACQCAGKAIsRQRAIA8gFUYNASAGKAIEQdD+AEsNAQsCfyAVIA9rIQMCQAJAIAooAhwiASgCOCIMRQRAQQEhBSABIAooAihBASABKAIodEEBIAooAiARAwAiDDYCOCAMRQ0BCyABKAIsIgRFBEAgAUIANwIwIAFBASABKAIodCIENgIsCyADIARPBEAgBARAIAwgECAEayAE/AoAAAsgAUEANgI0DAILIAQgASgCNCIIayIFIAMgAyAFSxsiBARAIAggDGogECADayAE/AoAAAsgAyAFSwRAIAMgBGsiAwRAIAEoAjggECADayAD/AoAAAsgASADNgI0DAILQQAhBSABIAEoAjQgBGoiA0EAIAMgASgCLCIMRxs2AjQgDCABKAIwIgNNDQAgASADIARqNgIwCyAFDAELIAEgASgCLDYCMEEACw0BIAooAhAhDyAKKAIEIQQLIAogCigCCCAkIARrajYCCCAKIBUgD2siASAKKAIUajYCFCAGIAYoAiAgAWo2AiAgBi0ADEEEcUUgDyAVRnJFBEAgCigCDCABayEDIAYoAhwhBSAGAn8gBigCFARAIAUgAyABEFEMAQsgBSADIAEQswELIgE2AhwgCiABNgIwCyAKIAYoAkBBwABBACAGKAIIG2pBgAFBACAGKAIEIgFBv/4ARhtqQYACQYACQQAgAUHC/gBGGyABQcf+AEYbajYCLCACQXsgAhsgAiAPIBVGGyACIAQgJEYbIRwMAgsgBkHS/gA2AgQLQXwhHAsgF0EQaiQAIBxBAUsNASATQagBaiEBIBMoAqwBIQMgGigCACEJIBooAgQgEygCFGshDCMAQSBrIggkAAJAIAwgCWsiBUEATA0AIAEoAgggASgCBCICayAFTgRAIAIgA2siBCAFSARAIAwgBCAJaiIHayILRSAHIAxGckUEQCACIAcgC/wKAAALIAEgAiALajYCBCAE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eQAtKyAgIDBYMHgALTBYKzBYIDBYLTB4KzB4IDB4AE5vdgBUaHUAQXVndXN0AHVuc2lnbmVkIHNob3J0AHVuc2lnbmVkIGludABpbnZhbGlkIGxpdGVyYWwvbGVuZ3RocyBzZXQAaW52YWxpZCBjb2RlIGxlbmd0aHMgc2V0AHVua25vd24gaGVhZGVyIGZsYWdzIHNldABpbnZhbGlkIGRpc3RhbmNlcyBzZXQAZ2V0AE9jdABmbG9hdABpbnZhbGlkIGJpdCBsZW5ndGggcmVwZWF0AFNhdABudW1Qb2ludHMAY29sb3JzAFVucGFja09wdGlvbnMAcG9zaXRpb25zAHJvdGF0aW9ucwB0b28gbWFueSBsZW5ndGggb3IgZGlzdGFuY2Ugc3ltYm9scwBpbnZhbGlkIHN0b3JlZCBibG9jayBsZW5ndGhzAHNjYWxlcwBhbHBoYXMAW1NQWjogRVJST1JdIENoZWNrIGZhaWxlZDogJXM6JWQ6ICVzAHZmMzJfcHRyAEFwcgB2ZWN0b3IAbW9uZXlfZ2V0IGVycm9yAFtTUFogRVJST1JdIGRlc2VyaWFsaXplUGFja2VkR2F1c3NpYW5zOiByZWFkIGVycm9yAE9jdG9iZXIATm92ZW1iZXIAU2VwdGVtYmVyAERlY2VtYmVyAHVuc2lnbmVkIGNoYXIAaW9zX2Jhc2U6OmNsZWFyAE1hcgAvZW1zZGsvZW1zY3JpcHRlbi9zeXN0ZW0vbGliL2xpYmN4eGFiaS9zcmMvcHJpdmF0ZV90eXBlaW5mby5jcHAAU2VwACVJOiVNOiVTICVwAFN1bgBKdW4ATW9uAG5hbgBKYW4AY29vcmRpbmF0ZVN5c3RlbQBDb29yZGluYXRlU3lzdGVtAEp1bABib29sAGxsAEFwcmlsAGludmFsaWQgY29kZSAtLSBtaXNzaW5nIGVuZC1vZi1ibG9jawBpbmNvcnJlY3QgaGVhZGVyIGNoZWNrAGluY29ycmVjdCBsZW5ndGggY2hlY2sAaW5jb3JyZWN0IGRhdGEgY2hlY2sAcHVzaF9iYWNrAGludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrAEZyaQBzaABoZWFkZXIgY3JjIG1pc21hdGNoAE1hcmNoAEF1ZwB1bnNpZ25lZCBsb25nIGxvbmcAdW5zaWduZWQgbG9uZwBzdGQ6OndzdHJpbmcAYmFzaWNfc3RyaW5nAHN0ZDo6c3RyaW5nAHN0ZDo6dTE2c3RyaW5nAHN0ZDo6dTMyc3RyaW5nAGluZgAlLjBMZgAlTGYAcmVzaXplAGludmFsaWQgd2luZG93IHNpemUAdHJ1ZQBUdWUAZmFsc2UAaW52YWxpZCBibG9jayB0eXBlAEp1bmUAZG91YmxlAHNoRGVncmVlAGJhZF9hcnJheV9uZXdfbGVuZ3RoIHdhcyB0aHJvd24gaW4gLWZuby1leGNlcHRpb25zIG1vZGUAaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlAGludmFsaWQgZGlzdGFuY2UgY29kZQBSYXdHYXVzc2lhbkNsb3VkAHVua25vd24gY29tcHJlc3Npb24gbWV0aG9kAFtTUFogRVJST1JdIGRlc2VyaWFsaXplUGFja2VkR2F1c3NpYW5zOiBoZWFkZXIgbm90IGZvdW5kACUwKmxsZAAlKmxsZAArJWxsZAAlKy40bGQAdm9pZABsb2NhbGUgbm90IHN1cHBvcnRlZABhbnRpYWxpYXNlZABXZWQAJVktJW0tJWQAW1NQWiBFUlJPUl0gZGVzZXJpYWxpemVQYWNrZWRHYXVzc2lhbnM6IFRvbyBtYW55IHBvaW50czogJWQAW1NQWiBFUlJPUl0gZGVzZXJpYWxpemVQYWNrZWRHYXVzc2lhbnM6IFVuc3VwcG9ydGVkIFNIIGRlZ3JlZTogJWQAW1NQWiBFUlJPUl0gZGVzZXJpYWxpemVQYWNrZWRHYXVzc2lhbnM6IHZlcnNpb24gbm90IHN1cHBvcnRlZDogJWQARGVjAC4vc3B6L3NyYy9jYy9sb2FkLXNwei5jYwBGZWIAJWEgJWIgJWQgJUg6JU06JVMgJVkAUE9TSVgAVmVjdG9yVUludDhUACVIOiVNOiVTAE5BTgBQTQBBTQAlSDolTQBMQ19BTEwAQVNDSUkATEFORwBSVUYATFVGAElORgBSREYATERGAFVOU1BFQ0lGSUVEAEMAUlVCAExVQgBSREIATERCAGNhdGNoaW5nIGEgY2xhc3Mgd2l0aG91dCBhbiBvYmplY3Q/AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50NjRfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50NjRfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDMyX3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDMyX3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxsb25nPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBsb25nPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxkb3VibGU+ADAxMjM0NTY3ODkAQy5VVEYtOABWZWN0b3JGbG9hdDMyADEuMy4xAC4ALQAocGFja2VkLmFscGhhcy5zaXplKCkpID09IChudW1Qb2ludHMpAChudWxsKQAocGFja2VkLmNvbG9ycy5zaXplKCkpID09IChudW1Qb2ludHMgKiAzKQAocGFja2VkLnNjYWxlcy5zaXplKCkpID09IChudW1Qb2ludHMgKiAzKQAocGFja2VkLnNoLnNpemUoKSkgPT0gKG51bVBvaW50cyAqIHNoRGltICogMykAKHBhY2tlZC5yb3RhdGlvbnMuc2l6ZSgpKSA9PSAobnVtUG9pbnRzICogKHBhY2tlZC51c2VzUXVhdGVybmlvblNtYWxsZXN0VGhyZWUgPyA0IDogMykpAChwYWNrZWQucG9zaXRpb25zLnNpemUoKSkgPT0gKG51bVBvaW50cyAqIDMgKiAodXNlc0Zsb2F0MTYgPyAyIDogMykpACUAbGVuZ3RoX2Vycm9yIHdhcyB0aHJvd24gaW4gLWZuby1leGNlcHRpb25zIG1vZGUgd2l0aCBtZXNzYWdlICIlcyIAUHVyZSB2aXJ0dWFsIGZ1bmN0aW9uIGNhbGxlZCEAW1NQWjogRVJST1JdIFVuc3VwcG9ydGVkIFNIIGRlZ3JlZTogJWQKAAkAAAAAgD8AAIA/AACAPwAAgD8AAIA/AACAPwAAgD8AAIA/AACAPwAAgD8AAIA/AACAPwAAgD8AAIA/AACAPwBBkCALthMgEAAA9GwAAPRsAABAEAAAqG0AACgQAABOM3NwejEzR2F1c3NpYW5DbG91ZEUAAACobQAASBAAAE4zc3B6MTNVbnBhY2tPcHRpb25zRQBwcGlpcAD0bAAAbBAAAKhtAAB0EAAATlN0M19fMjZ2ZWN0b3JJZk5TXzlhbGxvY2F0b3JJZkVFRUUAaXBwACxuAADEEAAAAAAAAAMAAADcEAAAAAAAACgSAAAAAAAAWBIAAAAAAABOU3QzX18yOG9wdGlvbmFsSWZFRQAAAADQbQAA6BAAABgRAABOU3QzX18yMjdfX29wdGlvbmFsX21vdmVfYXNzaWduX2Jhc2VJZkxiMUVFRQAAAADQbQAAJBEAAFQRAABOU3QzX18yMjdfX29wdGlvbmFsX2NvcHlfYXNzaWduX2Jhc2VJZkxiMUVFRQAAAADQbQAAYBEAAIgRAABOU3QzX18yMjBfX29wdGlvbmFsX21vdmVfYmFzZUlmTGIxRUVFAAAA0G0AAJQRAAC8EQAATlN0M19fMjIwX19vcHRpb25hbF9jb3B5X2Jhc2VJZkxiMUVFRQAAANBtAADIEQAA9BEAAE5TdDNfXzIyM19fb3B0aW9uYWxfc3RvcmFnZV9iYXNlSWZMYjBFRUUAAAAAqG0AAPwRAABOU3QzX18yMjRfX29wdGlvbmFsX2Rlc3RydWN0X2Jhc2VJZkxiMUVFRQAAAKhtAAAwEgAATlN0M19fMjE4X19zZmluYWVfY3Rvcl9iYXNlSUxiMUVMYjFFRUUAAKhtAABgEgAATlN0M19fMjIwX19zZmluYWVfYXNzaWduX2Jhc2VJTGIxRUxiMUVFRQAAAACIbgAAnBIAAAAAAABsEAAAUE5TdDNfXzI2dmVjdG9ySWZOU185YWxsb2NhdG9ySWZFRUVFAAAAAIhuAADUEgAAAQAAAGwQAABQS05TdDNfXzI2dmVjdG9ySWZOU185YWxsb2NhdG9ySWZFRUVFAHBwAHYAdnAAAACMEgAAcHAAAJRsAACMEgAAPG0AAHZwcGQAAAAAlGwAAIwSAAAYbQAAPG0AAHZwcHBkAAAAGG0AAMQSAABwcHAATBMAADxtAACobQAAVBMAAE4xMGVtc2NyaXB0ZW4zdmFsRQAAnBAAAGwQAAAYbQAAcHBwcAAAAAAAAAAArGwAAGwQAAAYbQAAPG0AAGlwcHBkAAAALG4AAMATAAAAAAAAAwAAANgTAAAAAAAAKBIAAAAAAABYEgAAAAAAAE5TdDNfXzI4b3B0aW9uYWxJaEVFAAAAANBtAADkEwAAFBQAAE5TdDNfXzIyN19fb3B0aW9uYWxfbW92ZV9hc3NpZ25fYmFzZUloTGIxRUVFAAAAANBtAAAgFAAAUBQAAE5TdDNfXzIyN19fb3B0aW9uYWxfY29weV9hc3NpZ25fYmFzZUloTGIxRUVFAAAAANBtAABcFAAAhBQAAE5TdDNfXzIyMF9fb3B0aW9uYWxfbW92ZV9iYXNlSWhMYjFFRUUAAADQbQAAkBQAALgUAABOU3QzX18yMjBfX29wdGlvbmFsX2NvcHlfYmFzZUloTGIxRUVFAAAA0G0AAMQUAADwFAAATlN0M19fMjIzX19vcHRpb25hbF9zdG9yYWdlX2Jhc2VJaExiMEVFRQAAAACobQAA+BQAAE5TdDNfXzIyNF9fb3B0aW9uYWxfZGVzdHJ1Y3RfYmFzZUloTGIxRUVFAAAAqG0AACwVAABOU3QzX18yNnZlY3RvckloTlNfOWFsbG9jYXRvckloRUVFRQCIbgAAYBUAAAAAAAAkFQAAUE5TdDNfXzI2dmVjdG9ySWhOU185YWxsb2NhdG9ySWhFRUVFAAAAAIhuAACYFQAAAQAAACQVAABQS05TdDNfXzI2dmVjdG9ySWhOU185YWxsb2NhdG9ySWhFRUVFAHBwAHZwAFAVAABwcAAAlGwAAFAVAADEbAAAdnBwaQAAAACUbAAAUBUAABhtAADEbAAAdnBwcGkAAAAYbQAAiBUAAHBwcABMEwAAxGwAAJgTAAAkFQAAGG0AAHBwcHAAAAAArGwAACQVAAAYbQAAxGwAAGlwcHBpAHAAdnAAaXBwAHZwcGkAaXBwAHZwcGkAcHBwAHZwcHAAAABcbQAAYBYAAE4zc3B6MTZDb29yZGluYXRlU3lzdGVtRQBwAHZwAGlwcAB2cHBpAAAAAAAAAwAAAAgAAAAPAAAAqG0AAKAWAABOU3QzX18yMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRQAAqG0AAOgWAABOU3QzX18yMTJiYXNpY19zdHJpbmdJd05TXzExY2hhcl90cmFpdHNJd0VFTlNfOWFsbG9jYXRvckl3RUVFRQAAqG0AADAXAABOU3QzX18yMTJiYXNpY19zdHJpbmdJRHNOU18xMWNoYXJfdHJhaXRzSURzRUVOU185YWxsb2NhdG9ySURzRUVFRQAAAKhtAAB8FwAATlN0M19fMjEyYmFzaWNfc3RyaW5nSURpTlNfMTFjaGFyX3RyYWl0c0lEaUVFTlNfOWFsbG9jYXRvcklEaUVFRUUAAACobQAAyBcAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWNFRQAAqG0AAPAXAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lhRUUAAKhtAAAYGAAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJaEVFAACobQAAQBgAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SXNFRQAAqG0AAGgYAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0l0RUUAAKhtAACQGAAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJaUVFAACobQAAuBgAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWpFRQAAqG0AAOAYAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lsRUUAAKhtAAAIGQAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJbUVFAACobQAAMBkAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SXhFRQAAqG0AAFgZAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0l5RUUAAKhtAACAGQAATjEwZW1zY3Jp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AAAJqAAACAQAAAiEAAAIRAAACegAEAcIAAAIXAAACBwAAAmYABQHUwAACHwAAAg8AAAJ2AASBxcAAAhsAAAILAAACbgAAAgMAAAIjAAACEwAAAn4ABAHAwAACFIAAAgSABUIowATByMAAAhyAAAIMgAACcQAEQcLAAAIYgAACCIAAAmkAAAIAgAACIIAAAhCAAAJ5AAQBwcAAAhaAAAIGgAACZQAFAdDAAAIegAACDoAAAnUABIHEwAACGoAAAgqAAAJtAAACAoAAAiKAAAISgAACfQAEAcFAAAIVgAACBYAQAgAABMHMwAACHYAAAg2AAAJzAARBw8AAAhmAAAIJgAACawAAAgGAAAIhgAACEYAAAnsABAHCQAACF4AAAgeAAAJnAAUB2MAAAh+AAAIPgAACdwAEgcbAAAIbgAACC4AAAm8AAAIDgAACI4AAAhOAAAJ/ABgBwAAAAhRAAAIEQAVCIMAEgcfAAAIcQAACDEAAAnCABAHCgAACGEAAAghAAAJogAACAEAAAiBAAAIQQAACeIAEAcGAAAIWQAACBkAAAmSABMHOwAACHkAAAg5AAAJ0gARBxEAAAhpAAAIKQAACbIAAAgJAAAIiQAACEkAAAnyABAHBAAACFUAAAgVABAIAgETBysAAAh1AAAINQAACcoAEQcNAAAIZQAACCUAAAmqAAAIBQAACIUAAAhFAAAJ6gAQBwgAAAhdAAAIHQAACZoAFAdTAAAIfQAACD0AAAnaABIHFwAACG0AAAgtAAAJugAACA0AAAiNAAAITQAACfoAEAcDAAAIUwAACBMAFQjDABMHIwAACHMAAAgzAAAJxgARBwsAAAhjAAAIIwAACaYAAAgDAAAIgwAACEMAAAnmABAHBwAACFsAAAgbAAAJlgAUB0MAAAh7AAAIOwAACdYAEgcTAAAIawAACCsAAAm2AAAICwAACIsAAAhLAAAJ9gAQBwUAAAhXAAAIFwBACAAAEwczAAAIdwAACDcAAAnOABEHDwAACGcAAAgnAAAJrgAACAcAAAiHAAAIRwAACe4AEAcJAAAIXwAACB8AAAmeABQHYwAACH8AAAg/AAAJ3gASBxsAAAhvAAAILwAACb4AAAgPAAAIjwAACE8AAAn+AGAHAAAACFAAAAgQABQIcwASBx8AAAhwAAAIMAAACcEAEAcKAAAIYAAACCAAAAmhAAAIAAAACIAAAAhAAAAJ4QAQBwYAAAhYAAAIGAAACZEAEwc7AAAIeAAACDgAAAnRABEHEQAACGgAAAgoAAAJsQAACAgAAAiIAAAISAAACfEAEAcEAAAIVAAACBQAFQjjABMHKwAACHQAAAg0AAAJyQARBw0AAAhkAAAIJAAACakAAAgEAAAIhAAACEQAAAnpABAHCAAACFwAAAgcAAAJmQAUB1MAAAh8AAAIPAAACdkAEgcXAAAIbAAACCwAAAm5AAAIDAAACIwAAAhMAAAJ+QAQBwMAAAhSAAAIEgAVCKMAEwcjAAAIcgAACDIAAAnFABEHCwAACGIAAAgiAAAJpQAACAIAAAiCAAAIQgAACeUAEAcHAAAIWgAACBoAAAmVABQHQwAACHoAAAg6AAAJ1QASBxMAAAhqAAAIKgAACbUAAAgKAAAIigAACEoAAAn1ABAHBQAACFYAAAgWAEAIAAATBzMAAAh2AAAINgAACc0AEQcPAAAIZgAACCYAAAmtAAAIBgAACIYAAAhGAAAJ7QAQBwkAAAheAAAIHgAACZ0AFAdjAAAIfgAACD4AAAndABIHGwAACG4AAAguAAAJvQAACA4AAAiOAAAITgAACf0AYAcAAAAIUQAACBEAFQiDABIHHwAACHEAAAgxAAAJwwAQBwoAAAhhAAAIIQAACaMAAAgBAAAIgQAACEEAAAnjABAHBgAACFkAAAgZAAAJkwATBzsAAAh5AAAIOQAACdMAEQcRAAAIaQAACCkAAAmzAAAICQAACIkAAAhJAAAJ8wAQBwQAAAhVAAAIFQAQCAIBEwcrAAAIdQAACDUAAAnLABEHDQAACGUAAAglAAAJqwAACAUAAAiFAAAIRQAACesAEAcIAAAIXQAACB0AAAmbABQHUwAACH0AAAg9AAAJ2wASBxcAAAhtAAAILQAACbsAAAgNAAAIjQAACE0AAAn7ABAHAwAACFMAAAgTABUIwwATByMAAAhzAAAIMwAACccAEQcLAAAIYwAACCMAAAmnAAAIAwAACIMAAAhDAAAJ5wAQBwcAAAhbAAAIGwAACZcAFAdDAAAIewAACDsAAAnXABIHEwAACGsAAAgrAAAJtwAACAsAAAiLAAAISwAACfcAEAcFAAAIVwAACBcAQAgAABMHMwAACHcAAAg3AAAJzwARBw8AAAhnAAAIJwAACa8AAAgH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Y05TXzExY2hhcl90cmFpdHNJY0VFRUUA0G0AAHg9AAAAPAAATlN0M19fMjE1YmFzaWNfc3RyaW5nYnVmSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUAAABAAAAAAAAAAKw+AABZAAAAWgAAADgAAAD4////rD4AAFsAAABcAAAAwP///8D///+sPgAAXQAAAF4AAADIPQAALD4AAGg+AAB8PgAAkD4AAKQ+AABUPgAAQD4AAPA9AADcPQAAQAAAAAAAAAAcPQAATAAAAE0AAAA4AAAA+P///xw9AABOAAAATwAAAMD////A////HD0AAFAAAABRAAAAQAAAAAAAAAA8PAAARAAAAEUAAADA////wP///zw8AABGAAAARwAAADgAAAAAAAAAhDwAAEgAAABJAAAAyP///8j///+EPAAASgAAAEsAAADQbQAAuD4AABw9AABOU3QzX18yMThiYXNpY19zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRQAAAAAAAAAAED8AAF8AAABgAAAAqG0AABg/AABOU3QzX18yOGlvc19iYXNlRQAAAAAAAADRdJ4AV529KoBwUg///z4nCgAAAGQAAADoAwAAECcAAKCGAQBAQg8AgJaYAADh9QUYAAAANQAAAHEAAABr////zvv//5K///8AAAAAAAAAAP////////////////////////////////////////////////////////////////8AAQIDBAUGBwgJ/////////woLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIj////////CgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiP/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAECBAcDBgUAAAAAAAAAAgAAwAMAAMAEAADABQAAwAYAAMAHAADACAAAwAkAAMAKAADACwAAwAwAAMANAADADgAAwA8AAMAQAADAEQAAwBIAAMATAADA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")),b((await async function(y){return fA(y)}(p)).instance))}();if(I.preInit)for(typeof I.preInit=="function"&&(I.preInit=[I.preInit]);0<I.preInit.length;)I.preInit.shift()();return function w(){function b(){var p;if(I.calledRun=!0,!j){if($=!0,NI.G(),n?.(I),(p=I.onRuntimeInitialized)==null||p.call(I),I.postRun)for(typeof I.postRun=="function"&&(I.postRun=[I.postRun]);I.postRun.length;){var y=I.postRun.shift();iA.push(y)}bA(iA)}}if(0<CA)sA=w;else{if(I.preRun)for(typeof I.preRun=="function"&&(I.preRun=[I.preRun]);I.preRun.length;)EA();bA(yA),0<CA?sA=w:I.setStatus?(I.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>I.setStatus(""),1),b()},1)):b()}}(),g=$?I:new Promise((w,b)=>{n=w,s=b}),g}const sI=(B,A,g=I=>I)=>{const I=B.vf32_ptr(A),Q=A.size();return new Float32Array(B.HEAPF32.buffer,I,Q).map(g)},qe=B=>1/(1+Math.exp(-B)),Te=B=>A=>A*B+.5,Oe=async(B,A)=>{var g;const I=await ve(),Q=B instanceof Uint8Array?B:new Uint8Array(B);let C=null;try{if(C=I._malloc(Uint8Array.BYTES_PER_ELEMENT*Q.length),C===null)throw new Error("couldn't allocate memory");I.HEAPU8.set(Q,C/Uint8Array.BYTES_PER_ELEMENT);const a=I.CoordinateSystem[((g=A?.unpackOptions)==null?void 0:g.coordinateSystem)??"UNSPECIFIED"],e=I.load_spz(C,Q.length,{coordinateSystem:a}),i=((t,E,o)=>{const r=o?.colorScaleFactor??.282;return{numPoints:E.numPoints,shDegree:E.shDegree,antialiased:E.antialiased,positions:sI(t,E.positions),scales:sI(t,E.scales,Math.exp),rotations:sI(t,E.rotations),alphas:sI(t,E.alphas,qe),colors:sI(t,E.colors,Te(r)),sh:sI(t,E.sh)}})(I,e,A);return((t,E)=>{t._free(t.vf32_ptr(E.positions)),t._free(t.vf32_ptr(E.scales)),t._free(t.vf32_ptr(E.rotations)),t._free(t.vf32_ptr(E.alphas)),t._free(t.vf32_ptr(E.colors)),t._free(t.vf32_ptr(E.sh))})(I,e),i}catch(a){throw a}finally{C!==null&&I._free(C)}},We=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),ZQ=`async function OI(w = {}) {
|
|
19
19
|
var G, a, D = w, N = typeof window == "object", C = typeof WorkerGlobalScope < "u", h = typeof process == "object" && ((G = process.versions) == null ? void 0 : G.node) && process.type != "renderer";
|
|
20
20
|
if (h) {
|
|
21
21
|
const { createRequire: I } = await Promise.resolve().then(() => vI);
|
|
@@ -946,30 +946,30 @@ self.onmessage = async function(w) {
|
|
|
946
946
|
}
|
|
947
947
|
};
|
|
948
948
|
//# sourceMappingURL=GLTFTileDecoder.worker-Bm2N-LYs.js.map
|
|
949
|
-
`,PQ=typeof self<"u"&&self.Blob&&new Blob(["URL.revokeObjectURL(import.meta.url);",WQ],{type:"text/javascript;charset=utf-8"});function Ja(B){let A;try{if(A=PQ&&(self.URL||self.webkitURL).createObjectURL(PQ),!A)throw"";const g=new Worker(A,{type:"module",name:B?.name});return g.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(A)}),g}catch{return new Worker("data:text/javascript;charset=utf-8,"+encodeURIComponent(WQ),{type:"module",name:B?.name})}}class Ya{constructor(A,g){this.gltfLoader=A,this.renderer=g,this.gltfLoader?.register&&this.gltfLoader.register(()=>({name:"KHR_spz_gaussian_splats_compression"}));try{this.worker=new Ja,this.workerJobId=0,this.workerCallbacks=new Map,this.worker.onmessage=I=>{const{id:Q,pos:C,col:E,c0:a,c1:i,error:t}=I.data||{},e=this.workerCallbacks.get(Q);e&&(this.workerCallbacks.delete(Q),t?e.reject(new Error(t)):e.resolve({pos:C,col:E,c0:a,c1:i}))},this.worker.onerror=I=>{for(const[,Q]of this.workerCallbacks)Q.reject(I instanceof Error?I:new Error(String(I)));this.workerCallbacks.clear()}}catch{this.worker=void 0}}parseSplats(A,g,I,Q){return new Promise(async(C,E)=>{await this.#e(),this.gltfLoader.parse(A,"",async a=>{try{const i=await this.#B(a,Q);C(i)}catch(i){E(i)}},a=>E(a))})}async#B(A,g){if(g)return this.#A(A);const I=A.parser,Q=I.json,C=this.#Q(Q);return C?.type==="SPZ"?this.#C(I,C,A):C?.type==="KHR"?this.#E(I,Q,C,A):C?.type==="ULTRA"?this.#A(A):(A.scene||(A.scene=new W.Object3D),A.scene.asset=A.asset,A.scene)}#Q(A){if(!A?.meshes)return null;for(let g=0;g<A.meshes.length;g++){const I=A.meshes[g];for(let Q=0;Q<(I.primitives?.length||0);Q++){const C=I.primitives[Q],E=C?.extensions;if(E?.KHR_spz_gaussian_splats_compression&&Number.isInteger(E.KHR_spz_gaussian_splats_compression.bufferView))return{mesh:g,prim:Q,type:"SPZ",bv:E.KHR_spz_gaussian_splats_compression.bufferView};if(E?.KHR_gaussian_splatting)return{mesh:g,prim:Q,type:"KHR"};if(E?.ULTRA_splats)return{mesh:g,prim:Q,type:"ULTRA"}}}return null}async#C(A,g,I){let Q=await A.getDependency("bufferView",g.bv);if(Q?.buffer?.byteLength&&(Q=Q.buffer.slice(Q.byteOffset,Q.byteLength+Q.byteOffset)),this.worker){const h=this.workerJobId++,w=new Promise((X,aA)=>{this.workerCallbacks.set(h,{resolve:X,reject:aA})});try{this.worker.postMessage({id:h,op:"decodeSPZ",spz:Q},[Q])}catch(X){throw this.workerCallbacks.delete(h),X}const{pos:f,col:p,c0:R,c1:m}=await w,G=new Float32Array(f),k=new Float32Array(p),U=new Float32Array(R),S=new Float32Array(m),q=new W.BufferAttribute(G,3),z=new W.BufferAttribute(k,4),gA=new W.BufferAttribute(U,3),$=new W.BufferAttribute(S,3);return I.scene.traverse(X=>X.dispose&&X.dispose()),{isSplatsData:!0,positions:q,colors:z,cov0:gA,cov1:$}}const C=await Ua(Q,{coordinateSystem:"LUF"}),E=C.numPoints??C.positions.length/3,a=new Float32Array(C.positions),i=C.colors??C.color,t=C.alphas??C.opacity??C.opacities,e=new Float32Array(4*E);for(let h=0;h<E;h++){const w=i[3*h+0],f=i[3*h+1],p=i[3*h+2],R=t?this.#a(t[h]):1,[m,G,k]=this.#I(w,f,p);e.set([m,G,k,R],4*h)}const o=C.rotations??C.quaternions,s=C.scales??C.scale,n=this.#g(o,s),r=new W.BufferAttribute(a,3),c=new W.BufferAttribute(e,4),D=new W.BufferAttribute(n.c0,3),b=new W.BufferAttribute(n.c1,3);return I.scene.traverse(h=>h.dispose&&h.dispose()),{isSplatsData:!0,positions:r,colors:c,cov0:D,cov1:b}}async#E(A,g,I,Q){const C=g.meshes[I.mesh].primitives[I.prim],E=async U=>{const S=C.attributes?.[U];return Number.isInteger(S)?A.getDependency("accessor",S):null};let a=await E("POSITION");if(!a)return this.#A(Q);let i=await E("COLOR_0"),t=await E("ROTATION")||await E("_ROTATION"),e=await E("SCALE")||await E("_SCALE");const o=a?.buffer?a.buffer.slice(a.byteOffset,a.byteOffset+a.byteLength):null,s=i?.buffer?i.buffer.slice(i.byteOffset,i.byteOffset+i.byteLength):null,n=t?.buffer?t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength):null,r=e?.buffer?e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength):null;if(this.worker){const U=this.workerJobId++,S=new Promise((eA,rA)=>{this.workerCallbacks.set(U,{resolve:eA,reject:rA})});try{const eA=[],rA={pos:o,col:s,rot:n,scl:r};o&&eA.push(o),s&&eA.push(s),n&&eA.push(n),r&&eA.push(r),this.worker.postMessage({id:U,op:"handleKHR",payload:rA},eA)}catch(eA){throw this.workerCallbacks.delete(U),eA}const{pos:q,col:z,c0:gA,c1:$}=await S,X=new Float32Array(q),aA=new Float32Array(z),wA=new Float32Array(gA),sA=new Float32Array($),fA=new W.BufferAttribute(X,3),lA=new W.BufferAttribute(aA,4),iA=new W.BufferAttribute(wA,3),GA=new W.BufferAttribute(sA,3);return Q.scene.traverse(eA=>eA.dispose&&eA.dispose()),{isSplatsData:!0,positions:fA,colors:lA,cov0:iA,cov1:GA}}let c=a;c?.buffer&&(c=new Float32Array(c.buffer,c.byteOffset,3*c.count));let D=i;D?.buffer&&(D=new Float32Array(D.buffer,D.byteOffset,(D.itemSize||4)*D.count));let b=t,h=e;b?.buffer&&(b=new Float32Array(b.buffer,b.byteOffset,4*b.count)),h?.buffer&&(h=new Float32Array(h.buffer,h.byteOffset,3*h.count));const w=c.length/3,f=new Float32Array(4*w);if(D){const U=D.length===4*w?4:3;for(let S=0;S<w;S++){const q=D[S*U+0],z=D[S*U+1],gA=D[S*U+2],[$,X,aA]=this.#I(q,z,gA);f.set([$,X,aA,U===4?D[S*U+3]:1],4*S)}}else for(let U=0;U<w;U++)f.set([1,1,1,1],4*U);const p=this.#g(b,h),R=new W.BufferAttribute(c,3),m=new W.BufferAttribute(f,4),G=new W.BufferAttribute(p.c0,3),k=new W.BufferAttribute(p.c1,3);return Q.scene.traverse(U=>U.dispose&&U.dispose()),{isSplatsData:!0,positions:R,colors:m,cov0:G,cov1:k}}async#A(A){const g=A.scene.children[0].geometry,I=g.attributes.position,Q=g.attributes.color,C=g.attributes.cov_0||g.attributes.COV_0,E=g.attributes.cov_1||g.attributes.COV_1;return A.scene.traverse(a=>a.dispose&&a.dispose()),{isSplatsData:!0,positions:I,colors:Q,cov0:C,cov1:E}}#g(A,g){const I=(A?.length||0)/4,Q=new Float32Array(3*I),C=new Float32Array(3*I),E=new Float32Array(9);for(let a=0;a<I;a++){const i=A?A[4*a+0]:0,t=A?A[4*a+1]:0,e=A?A[4*a+2]:0,o=A?A[4*a+3]:1,s=i*i,n=t*t,r=e*e,c=i*t,D=i*e,b=t*e,h=o*i,w=o*t,f=o*e;E[0]=1-2*(n+r),E[1]=2*(c-f),E[2]=2*(D+w),E[3]=2*(c+f),E[4]=1-2*(s+r),E[5]=2*(b-h),E[6]=2*(D-w),E[7]=2*(b+h),E[8]=1-2*(s+n);const p=Math.max(1e-12,g?g[3*a+0]:0),R=Math.max(1e-12,g?g[3*a+1]:0),m=Math.max(1e-12,g?g[3*a+2]:0),G=p*p,k=R*R,U=m*m,S=E[0]*E[0]*G+E[1]*E[1]*k+E[2]*E[2]*U,q=E[3]*E[0]*G+E[4]*E[1]*k+E[5]*E[2]*U,z=E[6]*E[0]*G+E[7]*E[1]*k+E[8]*E[2]*U,gA=E[3]*E[3]*G+E[4]*E[4]*k+E[5]*E[5]*U,$=E[6]*E[3]*G+E[7]*E[4]*k+E[8]*E[5]*U,X=E[6]*E[6]*G+E[7]*E[7]*k+E[8]*E[8]*U,aA=3*a;Q[aA+0]=S,Q[aA+1]=q,Q[aA+2]=z,C[aA+0]=gA,C[aA+1]=$,C[aA+2]=X}return{c0:Q,c1:C}}#a(A){return Number.isFinite(A)?A>=0&&A<=1?A:A>=0&&A<=255&&Math.abs(A-Math.round(A))<.001?A/255:A>=0&&A<=65535&&Math.abs(A-Math.round(A))<.001?A/65535:Math.min(1,Math.max(0,A)):1}#I(A,g,I){const Q=o=>o>=0&&o<=255&&Math.abs(o-Math.round(o))<.001,C=o=>o>=0&&o<=65535&&Math.abs(o-Math.round(o))<.001,E=o=>o<=.04045?o/12.92:Math.pow((o+.055)/1.055,2.4),a=o=>Math.min(1,Math.max(0,o));let i=A,t=g,e=I;if(!(A>=0&&A<=1&&g>=0&&g<=1&&I>=0&&I<=1))if(Q(A)&&Q(g)&&Q(I))i=A/255,t=g/255,e=I/255;else if(C(A)&&C(g)&&C(I))i=A/65535,t=g/65535,e=I/65535;else{const o=s=>.5+.28209479177387814*s;i=o(A),t=o(g),e=o(I)}return i=a(i),t=a(t),e=a(e),[E(i),E(t),E(e)]}#e(){return new Promise(A=>{const g=setInterval(()=>{const I=this.gltfLoader;I.hasDracoLoader&&!I.dracoLoader||I.hasKTX2Loader&&!I.ktx2Loader||(clearInterval(g),A())},10)})}}class VQ extends d.Loader{constructor(A){super(A),this.dracoLoader=null,this.ktx2Loader=null,this.meshoptDecoder=null,this.pluginCallbacks=[],this.register(function(g){return new qa(g)}),this.register(function(g){return new va(g)}),this.register(function(g){return new _a(g)}),this.register(function(g){return new $a(g)}),this.register(function(g){return new Ae(g)}),this.register(function(g){return new Oa(g)}),this.register(function(g){return new Wa(g)}),this.register(function(g){return new Pa(g)}),this.register(function(g){return new Va(g)}),this.register(function(g){return new ja(g)}),this.register(function(g){return new za(g)}),this.register(function(g){return new Ta(g)}),this.register(function(g){return new Za(g)}),this.register(function(g){return new Xa(g)}),this.register(function(g){return new Ha(g)}),this.register(function(g){return new ge(g)}),this.register(function(g){return new Ie(g)})}load(A,g,I,Q){const C=this;let E;if(this.resourcePath!=="")E=this.resourcePath;else if(this.path!==""){const t=d.LoaderUtils.extractUrlBase(A);E=d.LoaderUtils.resolveURL(t,this.path)}else E=d.LoaderUtils.extractUrlBase(A);this.manager.itemStart(A);const a=function(t){Q?Q(t):console.error(t),C.manager.itemError(A),C.manager.itemEnd(A)},i=new d.FileLoader(this.manager);i.setPath(this.path),i.setResponseType("arraybuffer"),i.setRequestHeader(this.requestHeader),i.setWithCredentials(this.withCredentials),i.load(A,function(t){try{C.parse(t,E,function(e){g(e),C.manager.itemEnd(A)},a)}catch(e){a(e)}},I,a)}setDRACOLoader(A){return this.dracoLoader=A,this}setKTX2Loader(A){return this.ktx2Loader=A,this}setMeshoptDecoder(A){return this.meshoptDecoder=A,this}register(A){return this.pluginCallbacks.indexOf(A)===-1&&this.pluginCallbacks.push(A),this}unregister(A){return this.pluginCallbacks.indexOf(A)!==-1&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(A),1),this}parse(A,g,I,Q){let C;const E={},a={},i=new TextDecoder;if(typeof A=="string")C=JSON.parse(A);else if(A instanceof ArrayBuffer)if(i.decode(new Uint8Array(A,0,4))===zQ){try{E[dA.KHR_BINARY_GLTF]=new Ce(A)}catch(e){return void(Q&&Q(e))}C=JSON.parse(E[dA.KHR_BINARY_GLTF].content)}else C=JSON.parse(i.decode(A));else C=A;if(C.asset===void 0||C.asset.version[0]<2)return void(Q&&Q(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported.")));const t=new de(C,{path:g||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});t.fileLoader.setRequestHeader(this.requestHeader);for(let e=0;e<this.pluginCallbacks.length;e++){const o=this.pluginCallbacks[e](t);o.name||console.error("THREE.GLTFLoader: Invalid plugin found: missing name"),a[o.name]=o,E[o.name]=!0}if(C.extensionsUsed)for(let e=0;e<C.extensionsUsed.length;++e){const o=C.extensionsUsed[e],s=C.extensionsRequired||[];switch(o){case dA.KHR_MATERIALS_UNLIT:E[o]=new Ka;break;case dA.KHR_DRACO_MESH_COMPRESSION:E[o]=new Ee(C,this.dracoLoader);break;case dA.KHR_TEXTURE_TRANSFORM:E[o]=new ae;break;case dA.KHR_MESH_QUANTIZATION:E[o]=new ee;break;default:s.indexOf(o)>=0&&a[o]===void 0&&console.warn('THREE.GLTFLoader: Unknown extension "'+o+'".')}}t.setExtensions(E),t.setPlugins(a),t.parse(I,Q)}parseAsync(A,g){const I=this;return new Promise(function(Q,C){I.parse(A,g,Q,C)})}}function xa(){let B={};return{get:function(A){return B[A]},add:function(A,g){B[A]=g},remove:function(A){delete B[A]},removeAll:function(){B={}}}}const dA={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_DISPERSION:"KHR_materials_dispersion",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_MATERIALS_BUMP:"EXT_materials_bump",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"};class Ha{constructor(A){this.parser=A,this.name=dA.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const A=this.parser,g=this.parser.json.nodes||[];for(let I=0,Q=g.length;I<Q;I++){const C=g[I];C.extensions&&C.extensions[this.name]&&C.extensions[this.name].light!==void 0&&A._addNodeRef(this.cache,C.extensions[this.name].light)}}_loadLight(A){const g=this.parser,I="light:"+A;let Q=g.cache.get(I);if(Q)return Q;const C=g.json,E=((C.extensions&&C.extensions[this.name]||{}).lights||[])[A];let a;const i=new d.Color(16777215);E.color!==void 0&&i.setRGB(E.color[0],E.color[1],E.color[2],d.LinearSRGBColorSpace);const t=E.range!==void 0?E.range:0;switch(E.type){case"directional":a=new d.DirectionalLight(i),a.target.position.set(0,0,-1),a.add(a.target);break;case"point":a=new d.PointLight(i),a.distance=t;break;case"spot":a=new d.SpotLight(i),a.distance=t,E.spot=E.spot||{},E.spot.innerConeAngle=E.spot.innerConeAngle!==void 0?E.spot.innerConeAngle:0,E.spot.outerConeAngle=E.spot.outerConeAngle!==void 0?E.spot.outerConeAngle:Math.PI/4,a.angle=E.spot.outerConeAngle,a.penumbra=1-E.spot.innerConeAngle/E.spot.outerConeAngle,a.target.position.set(0,0,-1),a.add(a.target);break;default:throw new Error("THREE.GLTFLoader: Unexpected light type: "+E.type)}return a.position.set(0,0,0),Mg(a,E),E.intensity!==void 0&&(a.intensity=E.intensity),a.name=g.createUniqueName(E.name||"light_"+A),Q=Promise.resolve(a),g.cache.add(I,Q),Q}getDependency(A,g){if(A==="light")return this._loadLight(g)}createNodeAttachment(A){const g=this,I=this.parser,Q=I.json.nodes[A],C=(Q.extensions&&Q.extensions[this.name]||{}).light;return C===void 0?null:this._loadLight(C).then(function(E){return I._getNodeRef(g.cache,C,E)})}}class Ka{constructor(){this.name=dA.KHR_MATERIALS_UNLIT}getMaterialType(){return d.MeshBasicMaterial}extendParams(A,g,I){const Q=[];A.color=new d.Color(1,1,1),A.opacity=1;const C=g.pbrMetallicRoughness;if(C){if(Array.isArray(C.baseColorFactor)){const E=C.baseColorFactor;A.color.setRGB(E[0],E[1],E[2],d.LinearSRGBColorSpace),A.opacity=E[3]}C.baseColorTexture!==void 0&&Q.push(I.assignTexture(A,"map",C.baseColorTexture,d.SRGBColorSpace))}return Promise.all(Q)}}class ja{constructor(A){this.parser=A,this.name=dA.KHR_MATERIALS_EMISSIVE_STRENGTH}extendMaterialParams(A,g){const I=this.parser.json.materials[A];if(!I.extensions||!I.extensions[this.name])return Promise.resolve();const Q=I.extensions[this.name].emissiveStrength;return Q!==void 0&&(g.emissiveIntensity=Q),Promise.resolve()}}class qa{constructor(A){this.parser=A,this.name=dA.KHR_MATERIALS_CLEARCOAT}getMaterialType(A){const g=this.parser.json.materials[A];return g.extensions&&g.extensions[this.name]?d.MeshPhysicalMaterial:null}extendMaterialParams(A,g){const I=this.parser,Q=I.json.materials[A];if(!Q.extensions||!Q.extensions[this.name])return Promise.resolve();const C=[],E=Q.extensions[this.name];if(E.clearcoatFactor!==void 0&&(g.clearcoat=E.clearcoatFactor),E.clearcoatTexture!==void 0&&C.push(I.assignTexture(g,"clearcoatMap",E.clearcoatTexture)),E.clearcoatRoughnessFactor!==void 0&&(g.clearcoatRoughness=E.clearcoatRoughnessFactor),E.clearcoatRoughnessTexture!==void 0&&C.push(I.assignTexture(g,"clearcoatRoughnessMap",E.clearcoatRoughnessTexture)),E.clearcoatNormalTexture!==void 0&&(C.push(I.assignTexture(g,"clearcoatNormalMap",E.clearcoatNormalTexture)),E.clearcoatNormalTexture.scale!==void 0)){const a=E.clearcoatNormalTexture.scale;g.clearcoatNormalScale=new d.Vector2(a,a)}return Promise.all(C)}}class va{constructor(A){this.parser=A,this.name=dA.KHR_MATERIALS_DISPERSION}getMaterialType(A){const g=this.parser.json.materials[A];return g.extensions&&g.extensions[this.name]?d.MeshPhysicalMaterial:null}extendMaterialParams(A,g){const I=this.parser.json.materials[A];if(!I.extensions||!I.extensions[this.name])return Promise.resolve();const Q=I.extensions[this.name];return g.dispersion=Q.dispersion!==void 0?Q.dispersion:0,Promise.resolve()}}class Ta{constructor(A){this.parser=A,this.name=dA.KHR_MATERIALS_IRIDESCENCE}getMaterialType(A){const g=this.parser.json.materials[A];return g.extensions&&g.extensions[this.name]?d.MeshPhysicalMaterial:null}extendMaterialParams(A,g){const I=this.parser,Q=I.json.materials[A];if(!Q.extensions||!Q.extensions[this.name])return Promise.resolve();const C=[],E=Q.extensions[this.name];return E.iridescenceFactor!==void 0&&(g.iridescence=E.iridescenceFactor),E.iridescenceTexture!==void 0&&C.push(I.assignTexture(g,"iridescenceMap",E.iridescenceTexture)),E.iridescenceIor!==void 0&&(g.iridescenceIOR=E.iridescenceIor),g.iridescenceThicknessRange===void 0&&(g.iridescenceThicknessRange=[100,400]),E.iridescenceThicknessMinimum!==void 0&&(g.iridescenceThicknessRange[0]=E.iridescenceThicknessMinimum),E.iridescenceThicknessMaximum!==void 0&&(g.iridescenceThicknessRange[1]=E.iridescenceThicknessMaximum),E.iridescenceThicknessTexture!==void 0&&C.push(I.assignTexture(g,"iridescenceThicknessMap",E.iridescenceThicknessTexture)),Promise.all(C)}}class Oa{constructor(A){this.parser=A,this.name=dA.KHR_MATERIALS_SHEEN}getMaterialType(A){const g=this.parser.json.materials[A];return g.extensions&&g.extensions[this.name]?d.MeshPhysicalMaterial:null}extendMaterialParams(A,g){const I=this.parser,Q=I.json.materials[A];if(!Q.extensions||!Q.extensions[this.name])return Promise.resolve();const C=[];g.sheenColor=new d.Color(0,0,0),g.sheenRoughness=0,g.sheen=1;const E=Q.extensions[this.name];if(E.sheenColorFactor!==void 0){const a=E.sheenColorFactor;g.sheenColor.setRGB(a[0],a[1],a[2],d.LinearSRGBColorSpace)}return E.sheenRoughnessFactor!==void 0&&(g.sheenRoughness=E.sheenRoughnessFactor),E.sheenColorTexture!==void 0&&C.push(I.assignTexture(g,"sheenColorMap",E.sheenColorTexture,d.SRGBColorSpace)),E.sheenRoughnessTexture!==void 0&&C.push(I.assignTexture(g,"sheenRoughnessMap",E.sheenRoughnessTexture)),Promise.all(C)}}class Wa{constructor(A){this.parser=A,this.name=dA.KHR_MATERIALS_TRANSMISSION}getMaterialType(A){const g=this.parser.json.materials[A];return g.extensions&&g.extensions[this.name]?d.MeshPhysicalMaterial:null}extendMaterialParams(A,g){const I=this.parser,Q=I.json.materials[A];if(!Q.extensions||!Q.extensions[this.name])return Promise.resolve();const C=[],E=Q.extensions[this.name];return E.transmissionFactor!==void 0&&(g.transmission=E.transmissionFactor),E.transmissionTexture!==void 0&&C.push(I.assignTexture(g,"transmissionMap",E.transmissionTexture)),Promise.all(C)}}class Pa{constructor(A){this.parser=A,this.name=dA.KHR_MATERIALS_VOLUME}getMaterialType(A){const g=this.parser.json.materials[A];return g.extensions&&g.extensions[this.name]?d.MeshPhysicalMaterial:null}extendMaterialParams(A,g){const I=this.parser,Q=I.json.materials[A];if(!Q.extensions||!Q.extensions[this.name])return Promise.resolve();const C=[],E=Q.extensions[this.name];g.thickness=E.thicknessFactor!==void 0?E.thicknessFactor:0,E.thicknessTexture!==void 0&&C.push(I.assignTexture(g,"thicknessMap",E.thicknessTexture)),g.attenuationDistance=E.attenuationDistance||1/0;const a=E.attenuationColor||[1,1,1];return g.attenuationColor=new d.Color().setRGB(a[0],a[1],a[2],d.LinearSRGBColorSpace),Promise.all(C)}}class Va{constructor(A){this.parser=A,this.name=dA.KHR_MATERIALS_IOR}getMaterialType(A){const g=this.parser.json.materials[A];return g.extensions&&g.extensions[this.name]?d.MeshPhysicalMaterial:null}extendMaterialParams(A,g){const I=this.parser.json.materials[A];if(!I.extensions||!I.extensions[this.name])return Promise.resolve();const Q=I.extensions[this.name];return g.ior=Q.ior!==void 0?Q.ior:1.5,Promise.resolve()}}class za{constructor(A){this.parser=A,this.name=dA.KHR_MATERIALS_SPECULAR}getMaterialType(A){const g=this.parser.json.materials[A];return g.extensions&&g.extensions[this.name]?d.MeshPhysicalMaterial:null}extendMaterialParams(A,g){const I=this.parser,Q=I.json.materials[A];if(!Q.extensions||!Q.extensions[this.name])return Promise.resolve();const C=[],E=Q.extensions[this.name];g.specularIntensity=E.specularFactor!==void 0?E.specularFactor:1,E.specularTexture!==void 0&&C.push(I.assignTexture(g,"specularIntensityMap",E.specularTexture));const a=E.specularColorFactor||[1,1,1];return g.specularColor=new d.Color().setRGB(a[0],a[1],a[2],d.LinearSRGBColorSpace),E.specularColorTexture!==void 0&&C.push(I.assignTexture(g,"specularColorMap",E.specularColorTexture,d.SRGBColorSpace)),Promise.all(C)}}class Xa{constructor(A){this.parser=A,this.name=dA.EXT_MATERIALS_BUMP}getMaterialType(A){const g=this.parser.json.materials[A];return g.extensions&&g.extensions[this.name]?d.MeshPhysicalMaterial:null}extendMaterialParams(A,g){const I=this.parser,Q=I.json.materials[A];if(!Q.extensions||!Q.extensions[this.name])return Promise.resolve();const C=[],E=Q.extensions[this.name];return g.bumpScale=E.bumpFactor!==void 0?E.bumpFactor:1,E.bumpTexture!==void 0&&C.push(I.assignTexture(g,"bumpMap",E.bumpTexture)),Promise.all(C)}}class Za{constructor(A){this.parser=A,this.name=dA.KHR_MATERIALS_ANISOTROPY}getMaterialType(A){const g=this.parser.json.materials[A];return g.extensions&&g.extensions[this.name]?d.MeshPhysicalMaterial:null}extendMaterialParams(A,g){const I=this.parser,Q=I.json.materials[A];if(!Q.extensions||!Q.extensions[this.name])return Promise.resolve();const C=[],E=Q.extensions[this.name];return E.anisotropyStrength!==void 0&&(g.anisotropy=E.anisotropyStrength),E.anisotropyRotation!==void 0&&(g.anisotropyRotation=E.anisotropyRotation),E.anisotropyTexture!==void 0&&C.push(I.assignTexture(g,"anisotropyMap",E.anisotropyTexture)),Promise.all(C)}}class _a{constructor(A){this.parser=A,this.name=dA.KHR_TEXTURE_BASISU}loadTexture(A){const g=this.parser,I=g.json,Q=I.textures[A];if(!Q.extensions||!Q.extensions[this.name])return null;const C=Q.extensions[this.name],E=g.options.ktx2Loader;if(!E){if(I.extensionsRequired&&I.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return g.loadTextureImage(A,C.source,E)}}class $a{constructor(A){this.parser=A,this.name=dA.EXT_TEXTURE_WEBP}loadTexture(A){const g=this.name,I=this.parser,Q=I.json,C=Q.textures[A];if(!C.extensions||!C.extensions[g])return null;const E=C.extensions[g],a=Q.images[E.source];let i=I.textureLoader;if(a.uri){const t=I.options.manager.getHandler(a.uri);t!==null&&(i=t)}return I.loadTextureImage(A,E.source,i)}}class Ae{constructor(A){this.parser=A,this.name=dA.EXT_TEXTURE_AVIF}loadTexture(A){const g=this.name,I=this.parser,Q=I.json,C=Q.textures[A];if(!C.extensions||!C.extensions[g])return null;const E=C.extensions[g],a=Q.images[E.source];let i=I.textureLoader;if(a.uri){const t=I.options.manager.getHandler(a.uri);t!==null&&(i=t)}return I.loadTextureImage(A,E.source,i)}}class ge{constructor(A){this.name=dA.EXT_MESHOPT_COMPRESSION,this.parser=A}loadBufferView(A){const g=this.parser.json,I=g.bufferViews[A];if(I.extensions&&I.extensions[this.name]){const Q=I.extensions[this.name],C=this.parser.getDependency("buffer",Q.buffer),E=this.parser.options.meshoptDecoder;if(!E||!E.supported){if(g.extensionsRequired&&g.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return C.then(function(a){const i=Q.byteOffset||0,t=Q.byteLength||0,e=Q.count,o=Q.byteStride,s=new Uint8Array(a,i,t);return E.decodeGltfBufferAsync?E.decodeGltfBufferAsync(e,o,s,Q.mode,Q.filter).then(function(n){return n.buffer}):E.ready.then(function(){const n=new ArrayBuffer(e*o);return E.decodeGltfBuffer(new Uint8Array(n),e,o,s,Q.mode,Q.filter),n})})}return null}}class Ie{constructor(A){this.name=dA.EXT_MESH_GPU_INSTANCING,this.parser=A}createNodeMesh(A){const g=this.parser.json,I=g.nodes[A];if(!I.extensions||!I.extensions[this.name]||I.mesh===void 0)return null;const Q=g.meshes[I.mesh];for(const i of Q.primitives)if(i.mode!==dg.TRIANGLES&&i.mode!==dg.TRIANGLE_STRIP&&i.mode!==dg.TRIANGLE_FAN&&i.mode!==void 0)return null;const C=I.extensions[this.name].attributes,E=[],a={};for(const i in C)E.push(this.parser.getDependency("accessor",C[i]).then(t=>(a[i]=t,a[i])));return E.length<1?null:(E.push(this.parser.createNodeMesh(A)),Promise.all(E).then(i=>{const t=i.pop(),e=t.isGroup?t.children:[t],o=i[0].count,s=[];for(const n of e){const r=new d.Matrix4,c=new d.Vector3,D=new d.Quaternion,b=new d.Vector3(1,1,1),h=new d.InstancedMesh(n.geometry,n.material,o);for(let w=0;w<o;w++)a.TRANSLATION&&c.fromBufferAttribute(a.TRANSLATION,w),a.ROTATION&&D.fromBufferAttribute(a.ROTATION,w),a.SCALE&&b.fromBufferAttribute(a.SCALE,w),h.setMatrixAt(w,r.compose(c,D,b));for(const w in a)if(w==="_COLOR_0"){const f=a[w];h.instanceColor=new d.InstancedBufferAttribute(f.array,f.itemSize,f.normalized)}else w!=="TRANSLATION"&&w!=="ROTATION"&&w!=="SCALE"&&n.geometry.setAttribute(w,a[w]);d.Object3D.prototype.copy.call(h,n),this.parser.assignFinalMaterial(h),s.push(h)}return t.isGroup?(t.clear(),t.add(...s),t):s[0]}))}}const zQ="glTF",Be=1313821514,Qe=5130562;class Ce{constructor(A){this.name=dA.KHR_BINARY_GLTF,this.content=null,this.body=null;const g=new DataView(A,0,12),I=new TextDecoder;if(this.header={magic:I.decode(new Uint8Array(A.slice(0,4))),version:g.getUint32(4,!0),length:g.getUint32(8,!0)},this.header.magic!==zQ)throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw new Error("THREE.GLTFLoader: Legacy binary file detected.");const Q=this.header.length-12,C=new DataView(A,12);let E=0;for(;E<Q;){const a=C.getUint32(E,!0);E+=4;const i=C.getUint32(E,!0);if(E+=4,i===Be){const t=new Uint8Array(A,12+E,a);this.content=I.decode(t)}else if(i===Qe){const t=12+E;this.body=A.slice(t,t+a)}E+=a}if(this.content===null)throw new Error("THREE.GLTFLoader: JSON content not found.")}}class Ee{constructor(A,g){if(!g)throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.");this.name=dA.KHR_DRACO_MESH_COMPRESSION,this.json=A,this.dracoLoader=g,this.dracoLoader.preload()}decodePrimitive(A,g){const I=this.json,Q=this.dracoLoader,C=A.extensions[this.name].bufferView,E=A.extensions[this.name].attributes,a={},i={},t={};for(const e in E){const o=LB[e]||e.toLowerCase();a[o]=E[e]}for(const e in A.attributes){const o=LB[e]||e.toLowerCase();if(E[e]!==void 0){const s=I.accessors[A.attributes[e]],n=rI[s.componentType];t[o]=n.name,i[o]=s.normalized===!0}}return g.getDependency("bufferView",C).then(function(e){return new Promise(function(o,s){Q.decodeDracoFile(e,function(n){for(const r in n.attributes){const c=n.attributes[r],D=i[r];D!==void 0&&(c.normalized=D)}o(n)},a,t,d.LinearSRGBColorSpace,s)})})}}class ae{constructor(){this.name=dA.KHR_TEXTURE_TRANSFORM}extendTexture(A,g){return(g.texCoord!==void 0&&g.texCoord!==A.channel||g.offset!==void 0||g.rotation!==void 0||g.scale!==void 0)&&(A=A.clone(),g.texCoord!==void 0&&(A.channel=g.texCoord),g.offset!==void 0&&A.offset.fromArray(g.offset),g.rotation!==void 0&&(A.rotation=g.rotation),g.scale!==void 0&&A.repeat.fromArray(g.scale),A.needsUpdate=!0),A}}class ee{constructor(){this.name=dA.KHR_MESH_QUANTIZATION}}class XQ extends d.Interpolant{constructor(A,g,I,Q){super(A,g,I,Q)}copySampleValue_(A){const g=this.resultBuffer,I=this.sampleValues,Q=this.valueSize,C=A*Q*3+Q;for(let E=0;E!==Q;E++)g[E]=I[C+E];return g}interpolate_(A,g,I,Q){const C=this.resultBuffer,E=this.sampleValues,a=this.valueSize,i=2*a,t=3*a,e=Q-g,o=(I-g)/e,s=o*o,n=s*o,r=A*t,c=r-t,D=-2*n+3*s,b=n-s,h=1-D,w=b-s+o;for(let f=0;f!==a;f++){const p=E[c+f+a],R=E[c+f+i]*e,m=E[r+f+a],G=E[r+f]*e;C[f]=h*p+w*R+D*m+b*G}return C}}const ie=new d.Quaternion;class te extends XQ{interpolate_(A,g,I,Q){const C=super.interpolate_(A,g,I,Q);return ie.fromArray(C).normalize().toArray(C),C}}const dg={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},rI={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},ZQ={9728:d.NearestFilter,9729:d.LinearFilter,9984:d.NearestMipmapNearestFilter,9985:d.LinearMipmapNearestFilter,9986:d.NearestMipmapLinearFilter,9987:d.LinearMipmapLinearFilter},_Q={33071:d.ClampToEdgeWrapping,33648:d.MirroredRepeatWrapping,10497:d.RepeatWrapping},UB={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},LB={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv1",TEXCOORD_2:"uv2",TEXCOORD_3:"uv3",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},xg={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},oe={CUBICSPLINE:void 0,LINEAR:d.InterpolateLinear,STEP:d.InterpolateDiscrete},ne="OPAQUE",se="MASK",re="BLEND";function gI(B,A,g){for(const I in g.extensions)B[I]===void 0&&(A.userData.gltfExtensions=A.userData.gltfExtensions||{},A.userData.gltfExtensions[I]=g.extensions[I])}function Mg(B,A){A.extras!==void 0&&(typeof A.extras=="object"?Object.assign(B.userData,A.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+A.extras))}function ce(B,A){if(B.updateMorphTargets(),A.weights!==void 0)for(let g=0,I=A.weights.length;g<I;g++)B.morphTargetInfluences[g]=A.weights[g];if(A.extras&&Array.isArray(A.extras.targetNames)){const g=A.extras.targetNames;if(B.morphTargetInfluences.length===g.length){B.morphTargetDictionary={};for(let I=0,Q=g.length;I<Q;I++)B.morphTargetDictionary[g[I]]=I}else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.")}}function he(B){let A;const g=B.extensions&&B.extensions[dA.KHR_DRACO_MESH_COMPRESSION];if(A=g?"draco:"+g.bufferView+":"+g.indices+":"+JB(g.attributes):B.indices+":"+JB(B.attributes)+":"+B.mode,B.targets!==void 0)for(let I=0,Q=B.targets.length;I<Q;I++)A+=":"+JB(B.targets[I]);return A}function JB(B){let A="";const g=Object.keys(B).sort();for(let I=0,Q=g.length;I<Q;I++)A+=g[I]+":"+B[g[I]]+";";return A}function YB(B){switch(B){case Int8Array:return 1/127;case Uint8Array:return 1/255;case Int16Array:return 1/32767;case Uint16Array:return 1/65535;default:throw new Error("THREE.GLTFLoader: Unsupported normalized accessor component type.")}}const De=new d.Matrix4;class de{constructor(A={},g={}){this.json=A,this.extensions={},this.plugins={},this.options=g,this.cache=new xa,this.associations=new Map,this.primitiveCache={},this.nodeCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let I=!1,Q=-1,C=!1,E=-1;if(typeof navigator<"u"){const a=navigator.userAgent;I=/^((?!chrome|android).)*safari/i.test(a)===!0;const i=a.match(/Version\/(\d+)/);Q=I&&i?parseInt(i[1],10):-1,C=a.indexOf("Firefox")>-1,E=C?a.match(/Firefox\/([0-9]+)\./)[1]:-1}typeof createImageBitmap>"u"||I&&Q<17||C&&E<98?this.textureLoader=new d.TextureLoader(this.options.manager):this.textureLoader=new d.ImageBitmapLoader(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new d.FileLoader(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),this.options.crossOrigin==="use-credentials"&&this.fileLoader.setWithCredentials(!0)}setExtensions(A){this.extensions=A}setPlugins(A){this.plugins=A}parse(A,g){const I=this,Q=this.json,C=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(E){return E._markDefs&&E._markDefs()}),Promise.all(this._invokeAll(function(E){return E.beforeRoot&&E.beforeRoot()})).then(function(){return Promise.all([I.getDependencies("scene"),I.getDependencies("animation"),I.getDependencies("camera")])}).then(function(E){const a={scene:E[0][Q.scene||0],scenes:E[0],animations:E[1],cameras:E[2],asset:Q.asset,parser:I,userData:{}};return gI(C,a,Q),Mg(a,Q),Promise.all(I._invokeAll(function(i){return i.afterRoot&&i.afterRoot(a)})).then(function(){for(const i of a.scenes)i.updateMatrixWorld();A(a)})}).catch(g)}_markDefs(){const A=this.json.nodes||[],g=this.json.skins||[],I=this.json.meshes||[];for(let Q=0,C=g.length;Q<C;Q++){const E=g[Q].joints;for(let a=0,i=E.length;a<i;a++)A[E[a]].isBone=!0}for(let Q=0,C=A.length;Q<C;Q++){const E=A[Q];E.mesh!==void 0&&(this._addNodeRef(this.meshCache,E.mesh),E.skin!==void 0&&(I[E.mesh].isSkinnedMesh=!0)),E.camera!==void 0&&this._addNodeRef(this.cameraCache,E.camera)}}_addNodeRef(A,g){g!==void 0&&(A.refs[g]===void 0&&(A.refs[g]=A.uses[g]=0),A.refs[g]++)}_getNodeRef(A,g,I){if(A.refs[g]<=1)return I;const Q=I.clone(),C=(E,a)=>{const i=this.associations.get(E);i!=null&&this.associations.set(a,i);for(const[t,e]of E.children.entries())C(e,a.children[t])};return C(I,Q),Q.name+="_instance_"+A.uses[g]++,Q}_invokeOne(A){const g=Object.values(this.plugins);g.push(this);for(let I=0;I<g.length;I++){const Q=A(g[I]);if(Q)return Q}return null}_invokeAll(A){const g=Object.values(this.plugins);g.unshift(this);const I=[];for(let Q=0;Q<g.length;Q++){const C=A(g[Q]);C&&I.push(C)}return I}getDependency(A,g){const I=A+":"+g;let Q=this.cache.get(I);if(!Q){switch(A){case"scene":Q=this.loadScene(g);break;case"node":Q=this._invokeOne(function(C){return C.loadNode&&C.loadNode(g)});break;case"mesh":Q=this._invokeOne(function(C){return C.loadMesh&&C.loadMesh(g)});break;case"accessor":Q=this.loadAccessor(g);break;case"bufferView":Q=this._invokeOne(function(C){return C.loadBufferView&&C.loadBufferView(g)});break;case"buffer":Q=this.loadBuffer(g);break;case"material":Q=this._invokeOne(function(C){return C.loadMaterial&&C.loadMaterial(g)});break;case"texture":Q=this._invokeOne(function(C){return C.loadTexture&&C.loadTexture(g)});break;case"skin":Q=this.loadSkin(g);break;case"animation":Q=this._invokeOne(function(C){return C.loadAnimation&&C.loadAnimation(g)});break;case"camera":Q=this.loadCamera(g);break;default:if(Q=this._invokeOne(function(C){return C!=this&&C.getDependency&&C.getDependency(A,g)}),!Q)throw new Error("Unknown type: "+A)}this.cache.add(I,Q)}return Q}getDependencies(A){let g=this.cache.get(A);if(!g){const I=this,Q=this.json[A+(A==="mesh"?"es":"s")]||[];g=Promise.all(Q.map(function(C,E){return I.getDependency(A,E)})),this.cache.add(A,g)}return g}loadBuffer(A){const g=this.json.buffers[A],I=this.fileLoader;if(g.type&&g.type!=="arraybuffer")throw new Error("THREE.GLTFLoader: "+g.type+" buffer type is not supported.");if(g.uri===void 0&&A===0)return Promise.resolve(this.extensions[dA.KHR_BINARY_GLTF].body);const Q=this.options;return new Promise(function(C,E){I.load(d.LoaderUtils.resolveURL(g.uri,Q.path),C,void 0,function(){E(new Error('THREE.GLTFLoader: Failed to load buffer "'+g.uri+'".'))})})}loadBufferView(A){const g=this.json.bufferViews[A];return this.getDependency("buffer",g.buffer).then(function(I){const Q=g.byteLength||0,C=g.byteOffset||0;return I.slice(C,C+Q)})}loadAccessor(A){const g=this,I=this.json,Q=this.json.accessors[A];if(Q.bufferView===void 0&&Q.sparse===void 0){const E=UB[Q.type],a=rI[Q.componentType],i=Q.normalized===!0,t=new a(Q.count*E);return Promise.resolve(new d.BufferAttribute(t,E,i))}const C=[];return Q.bufferView!==void 0?C.push(this.getDependency("bufferView",Q.bufferView)):C.push(null),Q.sparse!==void 0&&(C.push(this.getDependency("bufferView",Q.sparse.indices.bufferView)),C.push(this.getDependency("bufferView",Q.sparse.values.bufferView))),Promise.all(C).then(function(E){const a=E[0],i=UB[Q.type],t=rI[Q.componentType],e=t.BYTES_PER_ELEMENT,o=e*i,s=Q.byteOffset||0,n=Q.bufferView!==void 0?I.bufferViews[Q.bufferView].byteStride:void 0,r=Q.normalized===!0;let c,D;if(n&&n!==o){const b=Math.floor(s/n),h="InterleavedBuffer:"+Q.bufferView+":"+Q.componentType+":"+b+":"+Q.count;let w=g.cache.get(h);w||(c=new t(a,b*n,Q.count*n/e),w=new d.InterleavedBuffer(c,n/e),g.cache.add(h,w)),D=new d.InterleavedBufferAttribute(w,i,s%n/e,r)}else c=a===null?new t(Q.count*i):new t(a,s,Q.count*i),D=new d.BufferAttribute(c,i,r);if(Q.sparse!==void 0){const b=UB.SCALAR,h=rI[Q.sparse.indices.componentType],w=Q.sparse.indices.byteOffset||0,f=Q.sparse.values.byteOffset||0,p=new h(E[1],w,Q.sparse.count*b),R=new t(E[2],f,Q.sparse.count*i);a!==null&&(D=new d.BufferAttribute(D.array.slice(),D.itemSize,D.normalized)),D.normalized=!1;for(let m=0,G=p.length;m<G;m++){const k=p[m];if(D.setX(k,R[m*i]),i>=2&&D.setY(k,R[m*i+1]),i>=3&&D.setZ(k,R[m*i+2]),i>=4&&D.setW(k,R[m*i+3]),i>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}D.normalized=r}return D})}loadTexture(A){const g=this.json,I=this.options,Q=g.textures[A].source,C=g.images[Q];let E=this.textureLoader;if(C.uri){const a=I.manager.getHandler(C.uri);a!==null&&(E=a)}return this.loadTextureImage(A,Q,E)}loadTextureImage(A,g,I){const Q=this,C=this.json,E=C.textures[A],a=C.images[g],i=(a.uri||a.bufferView)+":"+E.sampler;if(this.textureCache[i])return this.textureCache[i];const t=this.loadImageSource(g,I).then(function(e){e.flipY=!1,e.name=E.name||a.name||"",e.name===""&&typeof a.uri=="string"&&a.uri.startsWith("data:image/")===!1&&(e.name=a.uri);const o=(C.samplers||{})[E.sampler]||{};return e.magFilter=ZQ[o.magFilter]||d.LinearFilter,e.minFilter=ZQ[o.minFilter]||d.LinearMipmapLinearFilter,e.wrapS=_Q[o.wrapS]||d.RepeatWrapping,e.wrapT=_Q[o.wrapT]||d.RepeatWrapping,e.generateMipmaps=!e.isCompressedTexture&&e.minFilter!==d.NearestFilter&&e.minFilter!==d.LinearFilter,Q.associations.set(e,{textures:A}),e}).catch(function(){return null});return this.textureCache[i]=t,t}loadImageSource(A,g){const I=this,Q=this.json,C=this.options;if(this.sourceCache[A]!==void 0)return this.sourceCache[A].then(o=>o.clone());const E=Q.images[A],a=self.URL||self.webkitURL;let i=E.uri||"",t=!1;if(E.bufferView!==void 0)i=I.getDependency("bufferView",E.bufferView).then(function(o){t=!0;const s=new Blob([o],{type:E.mimeType});return i=a.createObjectURL(s),i});else if(E.uri===void 0)throw new Error("THREE.GLTFLoader: Image "+A+" is missing URI and bufferView");const e=Promise.resolve(i).then(function(o){return new Promise(function(s,n){let r=s;g.isImageBitmapLoader===!0&&(r=function(c){const D=new d.Texture(c);D.needsUpdate=!0,s(D)}),g.load(d.LoaderUtils.resolveURL(o,C.path),r,void 0,n)})}).then(function(o){var s;return t===!0&&a.revokeObjectURL(i),Mg(o,E),o.userData.mimeType=E.mimeType||((s=E.uri).search(/\.jpe?g($|\?)/i)>0||s.search(/^data\:image\/jpeg/)===0?"image/jpeg":s.search(/\.webp($|\?)/i)>0||s.search(/^data\:image\/webp/)===0?"image/webp":s.search(/\.ktx2($|\?)/i)>0||s.search(/^data\:image\/ktx2/)===0?"image/ktx2":"image/png"),o}).catch(function(o){throw console.error("THREE.GLTFLoader: Couldn't load texture",i),o});return this.sourceCache[A]=e,e}assignTexture(A,g,I,Q){const C=this;return this.getDependency("texture",I.index).then(function(E){if(!E)return null;if(I.texCoord!==void 0&&I.texCoord>0&&((E=E.clone()).channel=I.texCoord),C.extensions[dA.KHR_TEXTURE_TRANSFORM]){const a=I.extensions!==void 0?I.extensions[dA.KHR_TEXTURE_TRANSFORM]:void 0;if(a){const i=C.associations.get(E);E=C.extensions[dA.KHR_TEXTURE_TRANSFORM].extendTexture(E,a),C.associations.set(E,i)}}return Q!==void 0&&(E.colorSpace=Q),A[g]=E,E})}assignFinalMaterial(A){const g=A.geometry;let I=A.material;const Q=g.attributes.tangent===void 0,C=g.attributes.color!==void 0,E=g.attributes.normal===void 0;if(A.isPoints){const a="PointsMaterial:"+I.uuid;let i=this.cache.get(a);i||(i=new d.PointsMaterial,d.Material.prototype.copy.call(i,I),i.color.copy(I.color),i.map=I.map,i.sizeAttenuation=!1,this.cache.add(a,i)),I=i}else if(A.isLine){const a="LineBasicMaterial:"+I.uuid;let i=this.cache.get(a);i||(i=new d.LineBasicMaterial,d.Material.prototype.copy.call(i,I),i.color.copy(I.color),i.map=I.map,this.cache.add(a,i)),I=i}if(Q||C||E){let a="ClonedMaterial:"+I.uuid+":";Q&&(a+="derivative-tangents:"),C&&(a+="vertex-colors:"),E&&(a+="flat-shading:");let i=this.cache.get(a);i||(i=I.clone(),C&&(i.vertexColors=!0),E&&(i.flatShading=!0),Q&&(i.normalScale&&(i.normalScale.y*=-1),i.clearcoatNormalScale&&(i.clearcoatNormalScale.y*=-1)),this.cache.add(a,i),this.associations.set(i,this.associations.get(I))),I=i}A.material=I}getMaterialType(){return d.MeshStandardMaterial}loadMaterial(A){const g=this,I=this.json,Q=this.extensions,C=I.materials[A];let E;const a={},i=[];if((C.extensions||{})[dA.KHR_MATERIALS_UNLIT]){const e=Q[dA.KHR_MATERIALS_UNLIT];E=e.getMaterialType(),i.push(e.extendParams(a,C,g))}else{const e=C.pbrMetallicRoughness||{};if(a.color=new d.Color(1,1,1),a.opacity=1,Array.isArray(e.baseColorFactor)){const o=e.baseColorFactor;a.color.setRGB(o[0],o[1],o[2],d.LinearSRGBColorSpace),a.opacity=o[3]}e.baseColorTexture!==void 0&&i.push(g.assignTexture(a,"map",e.baseColorTexture,d.SRGBColorSpace)),a.metalness=e.metallicFactor!==void 0?e.metallicFactor:1,a.roughness=e.roughnessFactor!==void 0?e.roughnessFactor:1,e.metallicRoughnessTexture!==void 0&&(i.push(g.assignTexture(a,"metalnessMap",e.metallicRoughnessTexture)),i.push(g.assignTexture(a,"roughnessMap",e.metallicRoughnessTexture))),E=this._invokeOne(function(o){return o.getMaterialType&&o.getMaterialType(A)}),i.push(Promise.all(this._invokeAll(function(o){return o.extendMaterialParams&&o.extendMaterialParams(A,a)})))}C.doubleSided===!0&&(a.side=d.DoubleSide);const t=C.alphaMode||ne;if(t===re?(a.transparent=!0,a.depthWrite=!1):(a.transparent=!1,t===se&&(a.alphaTest=C.alphaCutoff!==void 0?C.alphaCutoff:.5)),C.normalTexture!==void 0&&E!==d.MeshBasicMaterial&&(i.push(g.assignTexture(a,"normalMap",C.normalTexture)),a.normalScale=new d.Vector2(1,1),C.normalTexture.scale!==void 0)){const e=C.normalTexture.scale;a.normalScale.set(e,e)}if(C.occlusionTexture!==void 0&&E!==d.MeshBasicMaterial&&(i.push(g.assignTexture(a,"aoMap",C.occlusionTexture)),C.occlusionTexture.strength!==void 0&&(a.aoMapIntensity=C.occlusionTexture.strength)),C.emissiveFactor!==void 0&&E!==d.MeshBasicMaterial){const e=C.emissiveFactor;a.emissive=new d.Color().setRGB(e[0],e[1],e[2],d.LinearSRGBColorSpace)}return C.emissiveTexture!==void 0&&E!==d.MeshBasicMaterial&&i.push(g.assignTexture(a,"emissiveMap",C.emissiveTexture,d.SRGBColorSpace)),Promise.all(i).then(function(){const e=new E(a);return C.name&&(e.name=C.name),Mg(e,C),g.associations.set(e,{materials:A}),C.extensions&&gI(Q,e,C),e})}createUniqueName(A){const g=d.PropertyBinding.sanitizeNodeName(A||"");return g in this.nodeNamesUsed?g+"_"+ ++this.nodeNamesUsed[g]:(this.nodeNamesUsed[g]=0,g)}loadGeometries(A){const g=this,I=this.extensions,Q=this.primitiveCache;function C(a){return I[dA.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(a,g).then(function(i){return $Q(i,a,g)})}const E=[];for(let a=0,i=A.length;a<i;a++){const t=A[a],e=he(t),o=Q[e];if(o)E.push(o.promise);else{let s;s=t.extensions&&t.extensions[dA.KHR_DRACO_MESH_COMPRESSION]?C(t):$Q(new d.BufferGeometry,t,g),Q[e]={primitive:t,promise:s},E.push(s)}}return Promise.all(E)}loadMesh(A){const g=this,I=this.json,Q=this.extensions,C=I.meshes[A],E=C.primitives,a=[];for(let t=0,e=E.length;t<e;t++){const o=E[t].material===void 0?((i=this.cache).DefaultMaterial===void 0&&(i.DefaultMaterial=new d.MeshStandardMaterial({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:d.FrontSide})),i.DefaultMaterial):this.getDependency("material",E[t].material);a.push(o)}var i;return a.push(g.loadGeometries(E)),Promise.all(a).then(function(t){const e=t.slice(0,t.length-1),o=t[t.length-1],s=[];for(let r=0,c=o.length;r<c;r++){const D=o[r],b=E[r];let h;const w=e[r];if(b.mode===dg.TRIANGLES||b.mode===dg.TRIANGLE_STRIP||b.mode===dg.TRIANGLE_FAN||b.mode===void 0)h=C.isSkinnedMesh===!0?new d.SkinnedMesh(D,w):new d.Mesh(D,w),h.isSkinnedMesh===!0&&h.normalizeSkinWeights(),b.mode===dg.TRIANGLE_STRIP?h.geometry=TQ(h.geometry,d.TriangleStripDrawMode):b.mode===dg.TRIANGLE_FAN&&(h.geometry=TQ(h.geometry,d.TriangleFanDrawMode));else if(b.mode===dg.LINES)h=new d.LineSegments(D,w);else if(b.mode===dg.LINE_STRIP)h=new d.Line(D,w);else if(b.mode===dg.LINE_LOOP)h=new d.LineLoop(D,w);else{if(b.mode!==dg.POINTS)throw new Error("THREE.GLTFLoader: Primitive mode unsupported: "+b.mode);h=new d.Points(D,w)}Object.keys(h.geometry.morphAttributes).length>0&&ce(h,C),h.name=g.createUniqueName(C.name||"mesh_"+A),Mg(h,C),b.extensions&&gI(Q,h,b),g.assignFinalMaterial(h),s.push(h)}for(let r=0,c=s.length;r<c;r++)g.associations.set(s[r],{meshes:A,primitives:r});if(s.length===1)return C.extensions&&gI(Q,s[0],C),s[0];const n=new d.Group;C.extensions&&gI(Q,n,C),g.associations.set(n,{meshes:A});for(let r=0,c=s.length;r<c;r++)n.add(s[r]);return n})}loadCamera(A){let g;const I=this.json.cameras[A],Q=I[I.type];if(Q)return I.type==="perspective"?g=new d.PerspectiveCamera(d.MathUtils.radToDeg(Q.yfov),Q.aspectRatio||1,Q.znear||1,Q.zfar||2e6):I.type==="orthographic"&&(g=new d.OrthographicCamera(-Q.xmag,Q.xmag,Q.ymag,-Q.ymag,Q.znear,Q.zfar)),I.name&&(g.name=this.createUniqueName(I.name)),Mg(g,I),Promise.resolve(g);console.warn("THREE.GLTFLoader: Missing camera parameters.")}loadSkin(A){const g=this.json.skins[A],I=[];for(let Q=0,C=g.joints.length;Q<C;Q++)I.push(this._loadNodeShallow(g.joints[Q]));return g.inverseBindMatrices!==void 0?I.push(this.getDependency("accessor",g.inverseBindMatrices)):I.push(null),Promise.all(I).then(function(Q){const C=Q.pop(),E=Q,a=[],i=[];for(let t=0,e=E.length;t<e;t++){const o=E[t];if(o){a.push(o);const s=new d.Matrix4;C!==null&&s.fromArray(C.array,16*t),i.push(s)}else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.',g.joints[t])}return new d.Skeleton(a,i)})}loadAnimation(A){const g=this.json,I=this,Q=g.animations[A],C=Q.name?Q.name:"animation_"+A,E=[],a=[],i=[],t=[],e=[];for(let o=0,s=Q.channels.length;o<s;o++){const n=Q.channels[o],r=Q.samplers[n.sampler],c=n.target,D=c.node,b=Q.parameters!==void 0?Q.parameters[r.input]:r.input,h=Q.parameters!==void 0?Q.parameters[r.output]:r.output;c.node!==void 0&&(E.push(this.getDependency("node",D)),a.push(this.getDependency("accessor",b)),i.push(this.getDependency("accessor",h)),t.push(r),e.push(c))}return Promise.all([Promise.all(E),Promise.all(a),Promise.all(i),Promise.all(t),Promise.all(e)]).then(function(o){const s=o[0],n=o[1],r=o[2],c=o[3],D=o[4],b=[];for(let w=0,f=s.length;w<f;w++){const p=s[w],R=n[w],m=r[w],G=c[w],k=D[w];if(p===void 0)continue;p.updateMatrix&&p.updateMatrix();const U=I._createAnimationTracks(p,R,m,G,k);if(U)for(let S=0;S<U.length;S++)b.push(U[S])}const h=new d.AnimationClip(C,void 0,b);return Mg(h,Q),h})}createNodeMesh(A){const g=this.json,I=this,Q=g.nodes[A];return Q.mesh===void 0?null:I.getDependency("mesh",Q.mesh).then(function(C){const E=I._getNodeRef(I.meshCache,Q.mesh,C);return Q.weights!==void 0&&E.traverse(function(a){if(a.isMesh)for(let i=0,t=Q.weights.length;i<t;i++)a.morphTargetInfluences[i]=Q.weights[i]}),E})}loadNode(A){const g=this,I=this.json.nodes[A],Q=g._loadNodeShallow(A),C=[],E=I.children||[];for(let i=0,t=E.length;i<t;i++)C.push(g.getDependency("node",E[i]));const a=I.skin===void 0?Promise.resolve(null):g.getDependency("skin",I.skin);return Promise.all([Q,Promise.all(C),a]).then(function(i){const t=i[0],e=i[1],o=i[2];o!==null&&t.traverse(function(s){s.isSkinnedMesh&&s.bind(o,De)});for(let s=0,n=e.length;s<n;s++)t.add(e[s]);return t})}_loadNodeShallow(A){const g=this.json,I=this.extensions,Q=this;if(this.nodeCache[A]!==void 0)return this.nodeCache[A];const C=g.nodes[A],E=C.name?Q.createUniqueName(C.name):"",a=[],i=Q._invokeOne(function(t){return t.createNodeMesh&&t.createNodeMesh(A)});return i&&a.push(i),C.camera!==void 0&&a.push(Q.getDependency("camera",C.camera).then(function(t){return Q._getNodeRef(Q.cameraCache,C.camera,t)})),Q._invokeAll(function(t){return t.createNodeAttachment&&t.createNodeAttachment(A)}).forEach(function(t){a.push(t)}),this.nodeCache[A]=Promise.all(a).then(function(t){let e;if(e=C.isBone===!0?new d.Bone:t.length>1?new d.Group:t.length===1?t[0]:new d.Object3D,e!==t[0])for(let o=0,s=t.length;o<s;o++)e.add(t[o]);if(C.name&&(e.userData.name=C.name,e.name=E),Mg(e,C),C.extensions&&gI(I,e,C),C.matrix!==void 0){const o=new d.Matrix4;o.fromArray(C.matrix),e.applyMatrix4(o)}else C.translation!==void 0&&e.position.fromArray(C.translation),C.rotation!==void 0&&e.quaternion.fromArray(C.rotation),C.scale!==void 0&&e.scale.fromArray(C.scale);if(Q.associations.has(e)){if(C.mesh!==void 0&&Q.meshCache.refs[C.mesh]>1){const o=Q.associations.get(e);Q.associations.set(e,{...o})}}else Q.associations.set(e,{});return Q.associations.get(e).nodes=A,e}),this.nodeCache[A]}loadScene(A){const g=this.extensions,I=this.json.scenes[A],Q=this,C=new d.Group;I.name&&(C.name=Q.createUniqueName(I.name)),Mg(C,I),I.extensions&&gI(g,C,I);const E=I.nodes||[],a=[];for(let i=0,t=E.length;i<t;i++)a.push(Q.getDependency("node",E[i]));return Promise.all(a).then(function(i){for(let t=0,e=i.length;t<e;t++)C.add(i[t]);return Q.associations=(t=>{const e=new Map;for(const[o,s]of Q.associations)(o instanceof d.Material||o instanceof d.Texture)&&e.set(o,s);return t.traverse(o=>{const s=Q.associations.get(o);s!=null&&e.set(o,s)}),e})(C),C})}_createAnimationTracks(A,g,I,Q,C){const E=[],a=A.name?A.name:A.uuid,i=[];let t;switch(xg[C.path]===xg.weights?A.traverse(function(s){s.morphTargetInfluences&&i.push(s.name?s.name:s.uuid)}):i.push(a),xg[C.path]){case xg.weights:t=d.NumberKeyframeTrack;break;case xg.rotation:t=d.QuaternionKeyframeTrack;break;case xg.translation:case xg.scale:t=d.VectorKeyframeTrack;break;default:I.itemSize===1?t=d.NumberKeyframeTrack:t=d.VectorKeyframeTrack}const e=Q.interpolation!==void 0?oe[Q.interpolation]:d.InterpolateLinear,o=this._getArrayFromAccessor(I);for(let s=0,n=i.length;s<n;s++){const r=new t(i[s]+"."+xg[C.path],g.array,o,e);Q.interpolation==="CUBICSPLINE"&&this._createCubicSplineTrackInterpolant(r),E.push(r)}return E}_getArrayFromAccessor(A){let g=A.array;if(A.normalized){const I=YB(g.constructor),Q=new Float32Array(g.length);for(let C=0,E=g.length;C<E;C++)Q[C]=g[C]*I;g=Q}return g}_createCubicSplineTrackInterpolant(A){A.createInterpolant=function(g){return new(this instanceof d.QuaternionKeyframeTrack?te:XQ)(this.times,this.values,this.getValueSize()/3,g)},A.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0}}function $Q(B,A,g){const I=A.attributes,Q=[];function C(E,a){return g.getDependency("accessor",E).then(function(i){B.setAttribute(a,i)})}for(const E in I){const a=LB[E]||E.toLowerCase();a in B.attributes||Q.push(C(I[E],a))}if(A.indices!==void 0&&!B.index){const E=g.getDependency("accessor",A.indices).then(function(a){B.setIndex(a)});Q.push(E)}return d.ColorManagement.workingColorSpace!==d.LinearSRGBColorSpace&&"COLOR_0"in I&&console.warn(`THREE.GLTFLoader: Converting vertex colors from "srgb-linear" to "${d.ColorManagement.workingColorSpace}" not supported.`),Mg(B,A),function(E,a,i){const t=a.attributes,e=new d.Box3;if(t.POSITION===void 0)return;{const n=i.json.accessors[t.POSITION],r=n.min,c=n.max;if(r===void 0||c===void 0)return void console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");if(e.set(new d.Vector3(r[0],r[1],r[2]),new d.Vector3(c[0],c[1],c[2])),n.normalized){const D=YB(rI[n.componentType]);e.min.multiplyScalar(D),e.max.multiplyScalar(D)}}const o=a.targets;if(o!==void 0){const n=new d.Vector3,r=new d.Vector3;for(let c=0,D=o.length;c<D;c++){const b=o[c];if(b.POSITION!==void 0){const h=i.json.accessors[b.POSITION],w=h.min,f=h.max;if(w!==void 0&&f!==void 0){if(r.setX(Math.max(Math.abs(w[0]),Math.abs(f[0]))),r.setY(Math.max(Math.abs(w[1]),Math.abs(f[1]))),r.setZ(Math.max(Math.abs(w[2]),Math.abs(f[2]))),h.normalized){const p=YB(rI[h.componentType]);r.multiplyScalar(p)}n.max(r)}else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}}e.expandByVector(n)}E.boundingBox=e;const s=new d.Sphere;e.getCenter(s.center),s.radius=e.min.distanceTo(e.max)/2,E.boundingSphere=s}(B,A,g),Promise.all(Q).then(function(){return A.targets!==void 0?function(E,a,i){let t=!1,e=!1,o=!1;for(let c=0,D=a.length;c<D;c++){const b=a[c];if(b.POSITION!==void 0&&(t=!0),b.NORMAL!==void 0&&(e=!0),b.COLOR_0!==void 0&&(o=!0),t&&e&&o)break}if(!t&&!e&&!o)return Promise.resolve(E);const s=[],n=[],r=[];for(let c=0,D=a.length;c<D;c++){const b=a[c];if(t){const h=b.POSITION!==void 0?i.getDependency("accessor",b.POSITION):E.attributes.position;s.push(h)}if(e){const h=b.NORMAL!==void 0?i.getDependency("accessor",b.NORMAL):E.attributes.normal;n.push(h)}if(o){const h=b.COLOR_0!==void 0?i.getDependency("accessor",b.COLOR_0):E.attributes.color;r.push(h)}}return Promise.all([Promise.all(s),Promise.all(n),Promise.all(r)]).then(function(c){const D=c[0],b=c[1],h=c[2];return t&&(E.morphAttributes.position=D),e&&(E.morphAttributes.normal=b),o&&(E.morphAttributes.color=h),E.morphTargetsRelative=!0,E})}(B,A.targets,g):B})}const xB=new WeakMap;class AC extends d.Loader{constructor(A){super(A),this.decoderPath="",this.decoderConfig={},this.decoderBinary=null,this.decoderPending=null,this.workerLimit=4,this.workerPool=[],this.workerNextTaskID=1,this.workerSourceURL="",this.defaultAttributeIDs={position:"POSITION",normal:"NORMAL",color:"COLOR",uv:"TEX_COORD"},this.defaultAttributeTypes={position:"Float32Array",normal:"Float32Array",color:"Float32Array",uv:"Float32Array"}}setDecoderPath(A){return this.decoderPath=A,this}setDecoderConfig(A){return this.decoderConfig=A,this}setWorkerLimit(A){return this.workerLimit=A,this}load(A,g,I,Q){const C=new d.FileLoader(this.manager);C.setPath(this.path),C.setResponseType("arraybuffer"),C.setRequestHeader(this.requestHeader),C.setWithCredentials(this.withCredentials),C.load(A,E=>{this.parse(E,g,Q)},I,Q)}parse(A,g,I=()=>{}){this.decodeDracoFile(A,g,null,null,d.SRGBColorSpace,I).catch(I)}decodeDracoFile(A,g,I,Q,C=d.LinearSRGBColorSpace,E=()=>{}){const a={attributeIDs:I||this.defaultAttributeIDs,attributeTypes:Q||this.defaultAttributeTypes,useUniqueIDs:!!I,vertexColorSpace:C};return this.decodeGeometry(A,a).then(g).catch(E)}decodeGeometry(A,g){const I=JSON.stringify(g);if(xB.has(A)){const i=xB.get(A);if(i.key===I)return i.promise;if(A.byteLength===0)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let Q;const C=this.workerNextTaskID++,E=A.byteLength,a=this._getWorker(C,E).then(i=>(Q=i,new Promise((t,e)=>{Q._callbacks[C]={resolve:t,reject:e},Q.postMessage({type:"decode",id:C,taskConfig:g,buffer:A},[A])}))).then(i=>this._createGeometry(i.geometry));return a.catch(()=>!0).then(()=>{Q&&C&&this._releaseTask(Q,C)}),xB.set(A,{key:I,promise:a}),a}_createGeometry(A){const g=new d.BufferGeometry;A.index&&g.setIndex(new d.BufferAttribute(A.index.array,1));for(let I=0;I<A.attributes.length;I++){const Q=A.attributes[I],C=Q.name,E=Q.array,a=Q.itemSize,i=new d.BufferAttribute(E,a);C==="color"&&(this._assignVertexColorSpace(i,Q.vertexColorSpace),i.normalized=!(E instanceof Float32Array)),g.setAttribute(C,i)}return g}_assignVertexColorSpace(A,g){if(g!==d.SRGBColorSpace)return;const I=new d.Color;for(let Q=0,C=A.count;Q<C;Q++)I.fromBufferAttribute(A,Q),d.ColorManagement.colorSpaceToWorking(I,d.SRGBColorSpace),A.setXYZ(Q,I.r,I.g,I.b)}_loadLibrary(A,g){const I=new d.FileLoader(this.manager);return I.setPath(this.decoderPath),I.setResponseType(g),I.setWithCredentials(this.withCredentials),new Promise((Q,C)=>{I.load(A,Q,void 0,C)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;const A=typeof WebAssembly!="object"||this.decoderConfig.type==="js",g=[];return A?g.push(this._loadLibrary("draco_decoder.js","text")):(g.push(this._loadLibrary("draco_wasm_wrapper.js","text")),g.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(g).then(I=>{const Q=I[0];A||(this.decoderConfig.wasmBinary=I[1]);const C=be.toString(),E=["/* draco decoder */",Q,"","/* worker */",C.substring(C.indexOf("{")+1,C.lastIndexOf("}"))].join(`
|
|
950
|
-
`);this.workerSourceURL=URL.createObjectURL(new Blob([E]))}),this.decoderPending}_getWorker(A,g){return this._initDecoder().then(()=>{if(this.workerPool.length<this.workerLimit){const Q=new Worker(this.workerSourceURL);Q._callbacks={},Q._taskCosts={},Q._taskLoad=0,Q.postMessage({type:"init",decoderConfig:this.decoderConfig}),Q.onmessage=function(C){const E=C.data;switch(E.type){case"decode":Q._callbacks[E.id].resolve(E);break;case"error":Q._callbacks[E.id].reject(E);break;default:console.error('THREE.DRACOLoader: Unexpected message, "'+E.type+'"')}},this.workerPool.push(Q)}else this.workerPool.sort(function(Q,C){return Q._taskLoad>C._taskLoad?-1:1});const I=this.workerPool[this.workerPool.length-1];return I._taskCosts[A]=g,I._taskLoad+=g,I})}_releaseTask(A,g){A._taskLoad-=A._taskCosts[g],delete A._callbacks[g],delete A._taskCosts[g]}debug(){console.log("Task load: ",this.workerPool.map(A=>A._taskLoad))}dispose(){for(let A=0;A<this.workerPool.length;++A)this.workerPool[A].terminate();return this.workerPool.length=0,this.workerSourceURL!==""&&URL.revokeObjectURL(this.workerSourceURL),this}}function be(){let B,A;function g(I,Q,C,E,a,i){const t=i.num_components(),e=C.num_points()*t,o=e*a.BYTES_PER_ELEMENT,s=function(c,D){switch(D){case Float32Array:return c.DT_FLOAT32;case Int8Array:return c.DT_INT8;case Int16Array:return c.DT_INT16;case Int32Array:return c.DT_INT32;case Uint8Array:return c.DT_UINT8;case Uint16Array:return c.DT_UINT16;case Uint32Array:return c.DT_UINT32}}(I,a),n=I._malloc(o);Q.GetAttributeDataArrayForAllPoints(C,i,s,o,n);const r=new a(I.HEAPF32.buffer,n,e).slice();return I._free(n),{name:E,array:r,itemSize:t}}onmessage=function(I){const Q=I.data;switch(Q.type){case"init":B=Q.decoderConfig,A=new Promise(function(a){B.onModuleLoaded=function(i){a({draco:i})},DracoDecoderModule(B)});break;case"decode":const C=Q.buffer,E=Q.taskConfig;A.then(a=>{const i=a.draco,t=new i.Decoder;try{const e=function(s,n,r,c){const D=c.attributeIDs,b=c.attributeTypes;let h,w;const f=n.GetEncodedGeometryType(r);if(f===s.TRIANGULAR_MESH)h=new s.Mesh,w=n.DecodeArrayToMesh(r,r.byteLength,h);else{if(f!==s.POINT_CLOUD)throw new Error("THREE.DRACOLoader: Unexpected geometry type.");h=new s.PointCloud,w=n.DecodeArrayToPointCloud(r,r.byteLength,h)}if(!w.ok()||h.ptr===0)throw new Error("THREE.DRACOLoader: Decoding failed: "+w.error_msg());const p={index:null,attributes:[]};for(const R in D){const m=self[b[R]];let G,k;if(c.useUniqueIDs)k=D[R],G=n.GetAttributeByUniqueId(h,k);else{if(k=n.GetAttributeId(h,s[D[R]]),k===-1)continue;G=n.GetAttribute(h,k)}const U=g(s,n,h,R,m,G);R==="color"&&(U.vertexColorSpace=c.vertexColorSpace),p.attributes.push(U)}return f===s.TRIANGULAR_MESH&&(p.index=function(R,m,G){const k=G.num_faces(),U=3*k,S=4*U,q=R._malloc(S);m.GetTrianglesUInt32Array(G,S,q);const z=new Uint32Array(R.HEAPF32.buffer,q,U).slice();return R._free(q),{array:z,itemSize:1}}(s,n,h)),s.destroy(h),p}(i,t,new Int8Array(C),E),o=e.attributes.map(s=>s.array.buffer);e.index&&o.push(e.index.array.buffer),self.postMessage({type:"decode",id:Q.id,geometry:e},o)}catch(e){console.error(e),self.postMessage({type:"error",id:Q.id,error:e.message})}finally{i.destroy(t)}})}}}class we{constructor(A=4){this.pool=A,this.queue=[],this.workers=[],this.workersResolve=[],this.workerStatus=0,this.workerCreator=null}_initWorker(A){if(!this.workers[A]){const g=this.workerCreator();g.addEventListener("message",this._onMessage.bind(this,A)),this.workers[A]=g}}_getIdleWorker(){for(let A=0;A<this.pool;A++)if(!(this.workerStatus&1<<A))return A;return-1}_onMessage(A,g){const I=this.workersResolve[A];if(I&&I(g),this.queue.length){const{resolve:Q,msg:C,transfer:E}=this.queue.shift();this.workersResolve[A]=Q,this.workers[A].postMessage(C,E)}else this.workerStatus^=1<<A}setWorkerCreator(A){this.workerCreator=A}setWorkerLimit(A){this.pool=A}postMessage(A,g){return new Promise(I=>{const Q=this._getIdleWorker();Q!==-1?(this._initWorker(Q),this.workerStatus|=1<<Q,this.workersResolve[Q]=I,this.workers[Q].postMessage(A,g)):this.queue.push({resolve:I,msg:A,transfer:g})})}dispose(){this.workers.forEach(A=>A.terminate()),this.workersResolve.length=0,this.workers.length=0,this.queue.length=0,this.workerStatus=0}}const gC=9,IC=15,BC=16,QC=22,CC=37,EC=43,aC=76,eC=83,iC=97,tC=100,oC=103,nC=109,sC=122,rC=123,cC=131,hC=132,DC=133,dC=134,bC=137,wC=138,uC=139,lC=140,fC=141,FC=142,yC=145,MC=146,GC=148,RC=152,pC=157,NC=158,kC=165,mC=166,SC=1000054e3,UC=1000054001,LC=1000054004,JC=1000054005,HB=1000066e3,YC=1000066004;class mI{constructor(A,g,I,Q){this._dataView=void 0,this._littleEndian=void 0,this._offset=void 0,this._dataView=new DataView(A.buffer,A.byteOffset+g,I),this._littleEndian=Q,this._offset=0}_nextUint8(){const A=this._dataView.getUint8(this._offset);return this._offset+=1,A}_nextUint16(){const A=this._dataView.getUint16(this._offset,this._littleEndian);return this._offset+=2,A}_nextUint32(){const A=this._dataView.getUint32(this._offset,this._littleEndian);return this._offset+=4,A}_nextUint64(){const A=this._dataView.getUint32(this._offset,this._littleEndian)+4294967296*this._dataView.getUint32(this._offset+4,this._littleEndian);return this._offset+=8,A}_nextInt32(){const A=this._dataView.getInt32(this._offset,this._littleEndian);return this._offset+=4,A}_nextUint8Array(A){const g=new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+this._offset,A);return this._offset+=A,g}_skip(A){return this._offset+=A,this}_scan(A,g=0){const I=this._offset;let Q=0;for(;this._dataView.getUint8(this._offset)!==g&&Q<A;)Q++,this._offset++;return Q<A&&this._offset++,new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+I,Q)}}const Ig=[171,75,84,88,32,50,48,187,13,10,26,10];function xC(B){return new TextDecoder().decode(B)}let KB,mg,jB;const qB={env:{emscripten_notify_memory_growth:function(B){jB=new Uint8Array(mg.exports.memory.buffer)}}};class ue{init(){return KB||(KB=typeof fetch<"u"?fetch("data:application/wasm;base64,"+HC).then(A=>A.arrayBuffer()).then(A=>WebAssembly.instantiate(A,qB)).then(this._init):WebAssembly.instantiate(Buffer.from(HC,"base64"),qB).then(this._init),KB)}_init(A){mg=A.instance,qB.env.emscripten_notify_memory_growth(0)}decode(A,g=0){if(!mg)throw new Error("ZSTDDecoder: Await .init() before decoding.");const I=A.byteLength,Q=mg.exports.malloc(I);jB.set(A,Q),g=g||Number(mg.exports.ZSTD_findDecompressedSize(Q,I));const C=mg.exports.malloc(g),E=mg.exports.ZSTD_decompress(C,g,Q,I),a=jB.slice(C,C+E);return mg.exports.free(Q),mg.exports.free(C),a}}const HC="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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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";d.ColorManagement.spaces[d.SRGBColorSpace];const vB=new WeakMap;let TB,OB=0;class ng extends d.Loader{constructor(A){super(A),this.transcoderPath="",this.transcoderBinary=null,this.transcoderPending=null,this.workerPool=new we,this.workerSourceURL="",this.workerConfig=null,typeof MSC_TRANSCODER<"u"&&console.warn('THREE.KTX2Loader: Please update to latest "basis_transcoder". "msc_basis_transcoder" is no longer supported in three.js r125+.')}setTranscoderPath(A){return this.transcoderPath=A,this}setWorkerLimit(A){return this.workerPool.setWorkerLimit(A),this}async detectSupportAsync(A){return this.workerConfig={astcSupported:await A.hasFeatureAsync("texture-compression-astc"),astcHDRSupported:!1,etc1Supported:await A.hasFeatureAsync("texture-compression-etc2"),etc2Supported:await A.hasFeatureAsync("texture-compression-etc2"),dxtSupported:await A.hasFeatureAsync("texture-compression-bc"),bptcSupported:await A.hasFeatureAsync("texture-compression-bc"),pvrtcSupported:await A.hasFeatureAsync("texture-compression-pvrtc")},this}detectSupport(A){return A.isWebGPURenderer===!0?this.workerConfig={astcSupported:A.hasFeature("texture-compression-astc"),astcHDRSupported:!1,etc1Supported:A.hasFeature("texture-compression-etc2"),etc2Supported:A.hasFeature("texture-compression-etc2"),dxtSupported:A.hasFeature("texture-compression-bc"),bptcSupported:A.hasFeature("texture-compression-bc"),pvrtcSupported:A.hasFeature("texture-compression-pvrtc")}:this.workerConfig={astcSupported:A.extensions.has("WEBGL_compressed_texture_astc"),astcHDRSupported:A.extensions.has("WEBGL_compressed_texture_astc")&&A.extensions.get("WEBGL_compressed_texture_astc").getSupportedProfiles().includes("hdr"),etc1Supported:A.extensions.has("WEBGL_compressed_texture_etc1"),etc2Supported:A.extensions.has("WEBGL_compressed_texture_etc"),dxtSupported:A.extensions.has("WEBGL_compressed_texture_s3tc"),bptcSupported:A.extensions.has("EXT_texture_compression_bptc"),pvrtcSupported:A.extensions.has("WEBGL_compressed_texture_pvrtc")||A.extensions.has("WEBKIT_WEBGL_compressed_texture_pvrtc")},this}init(){if(!this.transcoderPending){const A=new d.FileLoader(this.manager);A.setPath(this.transcoderPath),A.setWithCredentials(this.withCredentials);const g=A.loadAsync("basis_transcoder.js"),I=new d.FileLoader(this.manager);I.setPath(this.transcoderPath),I.setResponseType("arraybuffer"),I.setWithCredentials(this.withCredentials);const Q=I.loadAsync("basis_transcoder.wasm");this.transcoderPending=Promise.all([g,Q]).then(([C,E])=>{const a=ng.BasisWorker.toString(),i=["/* constants */","let _EngineFormat = "+JSON.stringify(ng.EngineFormat),"let _EngineType = "+JSON.stringify(ng.EngineType),"let _TranscoderFormat = "+JSON.stringify(ng.TranscoderFormat),"let _BasisFormat = "+JSON.stringify(ng.BasisFormat),"/* basis_transcoder.js */",C,"/* worker */",a.substring(a.indexOf("{")+1,a.lastIndexOf("}"))].join(`
|
|
951
|
-
`);this.workerSourceURL=URL.createObjectURL(new Blob([i])),this.transcoderBinary=E,this.workerPool.setWorkerCreator(()=>{const t=new Worker(this.workerSourceURL),e=this.transcoderBinary.slice(0);return t.postMessage({type:"init",config:this.workerConfig,transcoderBinary:e},[e]),t})}),OB>0&&console.warn("THREE.KTX2Loader: Multiple active KTX2 loaders may cause performance issues. Use a single KTX2Loader instance, or call .dispose() on old instances."),OB++}return this.transcoderPending}load(A,g,I,Q){if(this.workerConfig===null)throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");const C=new d.FileLoader(this.manager);C.setPath(this.path),C.setCrossOrigin(this.crossOrigin),C.setWithCredentials(this.withCredentials),C.setResponseType("arraybuffer"),C.load(A,E=>{this.parse(E,g,Q)},I,Q)}parse(A,g,I){if(this.workerConfig===null)throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");if(vB.has(A))return vB.get(A).promise.then(g).catch(I);this._createTexture(A).then(Q=>g?g(Q):null).catch(I)}_createTextureFrom(A,g){const{type:I,error:Q,data:{faces:C,width:E,height:a,format:i,type:t,dfdFlags:e}}=A;if(I==="error")return Promise.reject(Q);let o;if(g.faceCount===6)o=new d.CompressedCubeTexture(C,i,t);else{const s=C[0].mipmaps;o=g.layerCount>1?new d.CompressedArrayTexture(s,E,a,g.layerCount,i,t):new d.CompressedTexture(s,E,a,i,t)}return o.minFilter=C[0].mipmaps.length===1?d.LinearFilter:d.LinearMipmapLinearFilter,o.magFilter=d.LinearFilter,o.generateMipmaps=!1,o.needsUpdate=!0,o.colorSpace=KC(g),o.premultiplyAlpha=!!(1&e),o}async _createTexture(A,g={}){const I=function(a){const i=new Uint8Array(a.buffer,a.byteOffset,Ig.length);if(i[0]!==Ig[0]||i[1]!==Ig[1]||i[2]!==Ig[2]||i[3]!==Ig[3]||i[4]!==Ig[4]||i[5]!==Ig[5]||i[6]!==Ig[6]||i[7]!==Ig[7]||i[8]!==Ig[8]||i[9]!==Ig[9]||i[10]!==Ig[10]||i[11]!==Ig[11])throw new Error("Missing KTX 2.0 identifier.");const t={vkFormat:0,typeSize:1,pixelWidth:0,pixelHeight:0,pixelDepth:0,layerCount:0,faceCount:1,levelCount:0,supercompressionScheme:0,levels:[],dataFormatDescriptor:[{vendorId:0,descriptorType:0,versionNumber:2,colorModel:0,colorPrimaries:1,transferFunction:2,flags:0,texelBlockDimension:[0,0,0,0],bytesPlane:[0,0,0,0,0,0,0,0],samples:[]}],keyValue:{},globalData:null},e=17*Uint32Array.BYTES_PER_ELEMENT,o=new mI(a,Ig.length,e,!0);t.vkFormat=o._nextUint32(),t.typeSize=o._nextUint32(),t.pixelWidth=o._nextUint32(),t.pixelHeight=o._nextUint32(),t.pixelDepth=o._nextUint32(),t.layerCount=o._nextUint32(),t.faceCount=o._nextUint32(),t.levelCount=o._nextUint32(),t.supercompressionScheme=o._nextUint32();const s=o._nextUint32(),n=o._nextUint32(),r=o._nextUint32(),c=o._nextUint32(),D=o._nextUint64(),b=o._nextUint64(),h=3*Math.max(t.levelCount,1)*8,w=new mI(a,Ig.length+e,h,!0);for(let oA=0,cA=Math.max(t.levelCount,1);oA<cA;oA++)t.levels.push({levelData:new Uint8Array(a.buffer,a.byteOffset+w._nextUint64(),w._nextUint64()),uncompressedByteLength:w._nextUint64()});const f=new mI(a,s,n,!0);f._skip(4);const p=f._nextUint16(),R=f._nextUint16(),m=f._nextUint16(),G=f._nextUint16(),k={vendorId:p,descriptorType:R,versionNumber:m,colorModel:f._nextUint8(),colorPrimaries:f._nextUint8(),transferFunction:f._nextUint8(),flags:f._nextUint8(),texelBlockDimension:[f._nextUint8(),f._nextUint8(),f._nextUint8(),f._nextUint8()],bytesPlane:[f._nextUint8(),f._nextUint8(),f._nextUint8(),f._nextUint8(),f._nextUint8(),f._nextUint8(),f._nextUint8(),f._nextUint8()],samples:[]},U=(G/4-6)/4;for(let oA=0;oA<U;oA++){const cA={bitOffset:f._nextUint16(),bitLength:f._nextUint8(),channelType:f._nextUint8(),samplePosition:[f._nextUint8(),f._nextUint8(),f._nextUint8(),f._nextUint8()],sampleLower:Number.NEGATIVE_INFINITY,sampleUpper:Number.POSITIVE_INFINITY};64&cA.channelType?(cA.sampleLower=f._nextInt32(),cA.sampleUpper=f._nextInt32()):(cA.sampleLower=f._nextUint32(),cA.sampleUpper=f._nextUint32()),k.samples[oA]=cA}t.dataFormatDescriptor.length=0,t.dataFormatDescriptor.push(k);const S=new mI(a,r,c,!0);for(;S._offset<c;){const oA=S._nextUint32(),cA=S._scan(oA),JA=xC(cA);if(t.keyValue[JA]=S._nextUint8Array(oA-cA.byteLength-1),JA.match(/^ktx/i)){const qA=xC(t.keyValue[JA]);t.keyValue[JA]=qA.substring(0,qA.lastIndexOf("\0"))}S._skip(oA%4?4-oA%4:0)}if(b<=0)return t;const q=new mI(a,D,b,!0),z=q._nextUint16(),gA=q._nextUint16(),$=q._nextUint32(),X=q._nextUint32(),aA=q._nextUint32(),wA=q._nextUint32(),sA=[];for(let oA=0,cA=Math.max(t.levelCount,1);oA<cA;oA++)sA.push({imageFlags:q._nextUint32(),rgbSliceByteOffset:q._nextUint32(),rgbSliceByteLength:q._nextUint32(),alphaSliceByteOffset:q._nextUint32(),alphaSliceByteLength:q._nextUint32()});const fA=D+q._offset,lA=fA+$,iA=lA+X,GA=iA+aA,eA=new Uint8Array(a.buffer,a.byteOffset+fA,$),rA=new Uint8Array(a.buffer,a.byteOffset+lA,X),yA=new Uint8Array(a.buffer,a.byteOffset+iA,aA),RA=new Uint8Array(a.buffer,a.byteOffset+GA,wA);return t.globalData={endpointCount:z,selectorCount:gA,imageDescs:sA,endpointsData:eA,selectorsData:rA,tablesData:yA,extendedData:RA},t}(new Uint8Array(A)),Q=I.vkFormat===HB&&I.dataFormatDescriptor[0].colorModel===167;if(!(I.vkFormat===0||Q&&!this.workerConfig.astcHDRSupported))return async function(a){const{vkFormat:i}=a;if(WB[i]===void 0)throw new Error("THREE.KTX2Loader: Unsupported vkFormat: "+i);cI[i]===void 0&&console.warn('THREE.KTX2Loader: Missing ".type" for vkFormat: '+i);let t;a.supercompressionScheme===2&&(TB||(TB=new Promise(async n=>{const r=new ue;await r.init(),n(r)})),t=await TB);const e=[];for(let n=0;n<a.levels.length;n++){const r=Math.max(1,a.pixelWidth>>n),c=Math.max(1,a.pixelHeight>>n),D=a.pixelDepth?Math.max(1,a.pixelDepth>>n):0,b=a.levels[n];let h,w;if(a.supercompressionScheme===0)h=b.levelData;else{if(a.supercompressionScheme!==2)throw new Error("THREE.KTX2Loader: Unsupported supercompressionScheme.");h=t.decode(b.levelData,b.uncompressedByteLength)}w=cI[i]===d.FloatType?new Float32Array(h.buffer,h.byteOffset,h.byteLength/Float32Array.BYTES_PER_ELEMENT):cI[i]===d.HalfFloatType?new Uint16Array(h.buffer,h.byteOffset,h.byteLength/Uint16Array.BYTES_PER_ELEMENT):cI[i]===d.UnsignedInt5999Type||cI[i]===d.UnsignedInt101111Type?new Uint32Array(h.buffer,h.byteOffset,h.byteLength/Uint32Array.BYTES_PER_ELEMENT):h,e.push({data:w,width:r,height:c,depth:D})}const o=a.levelCount===0||e.length>1;let s;if(le.has(WB[i]))s=a.pixelDepth===0?new d.DataTexture(e[0].data,a.pixelWidth,a.pixelHeight):new d.Data3DTexture(e[0].data,a.pixelWidth,a.pixelHeight,a.pixelDepth),s.minFilter=o?d.NearestMipmapNearestFilter:d.NearestFilter,s.magFilter=d.NearestFilter,s.generateMipmaps=a.levelCount===0;else{if(a.pixelDepth>0)throw new Error("THREE.KTX2Loader: Unsupported pixelDepth.");s=new d.CompressedTexture(e,a.pixelWidth,a.pixelHeight),s.minFilter=o?d.LinearMipmapLinearFilter:d.LinearFilter,s.magFilter=d.LinearFilter}return s.mipmaps=e,s.type=cI[i],s.format=WB[i],s.colorSpace=KC(a),s.needsUpdate=!0,Promise.resolve(s)}(I);const C=g,E=this.init().then(()=>this.workerPool.postMessage({type:"transcode",buffer:A,taskConfig:C},[A])).then(a=>this._createTextureFrom(a.data,I));return vB.set(A,{promise:E}),E}dispose(){this.workerPool.dispose(),this.workerSourceURL&&URL.revokeObjectURL(this.workerSourceURL),OB--}}ng.BasisFormat={ETC1S:0,UASTC:1,UASTC_HDR:2},ng.TranscoderFormat={ETC1:0,ETC2:1,BC1:2,BC3:3,BC4:4,BC5:5,BC7_M6_OPAQUE_ONLY:6,BC7_M5:7,PVRTC1_4_RGB:8,PVRTC1_4_RGBA:9,ASTC_4x4:10,ATC_RGB:11,ATC_RGBA_INTERPOLATED_ALPHA:12,RGBA32:13,RGB565:14,BGR565:15,RGBA4444:16,BC6H:22,RGB_HALF:24,RGBA_HALF:25},ng.EngineFormat={RGBAFormat:d.RGBAFormat,RGBA_ASTC_4x4_Format:d.RGBA_ASTC_4x4_Format,RGB_BPTC_UNSIGNED_Format:d.RGB_BPTC_UNSIGNED_Format,RGBA_BPTC_Format:d.RGBA_BPTC_Format,RGBA_ETC2_EAC_Format:d.RGBA_ETC2_EAC_Format,RGBA_PVRTC_4BPPV1_Format:d.RGBA_PVRTC_4BPPV1_Format,RGBA_S3TC_DXT5_Format:d.RGBA_S3TC_DXT5_Format,RGB_ETC1_Format:d.RGB_ETC1_Format,RGB_ETC2_Format:d.RGB_ETC2_Format,RGB_PVRTC_4BPPV1_Format:d.RGB_PVRTC_4BPPV1_Format,RGBA_S3TC_DXT1_Format:d.RGBA_S3TC_DXT1_Format},ng.EngineType={UnsignedByteType:d.UnsignedByteType,HalfFloatType:d.HalfFloatType,FloatType:d.FloatType},ng.BasisWorker=function(){let B,A,g;const I=_EngineFormat,Q=_EngineType,C=_TranscoderFormat,E=_BasisFormat;self.addEventListener("message",function(o){const s=o.data;switch(s.type){case"init":B=s.config,n=s.transcoderBinary,A=new Promise(r=>{g={wasmBinary:n,onRuntimeInitialized:r},BASIS(g)}).then(()=>{g.initializeBasis(),g.KTX2File===void 0&&console.warn("THREE.KTX2Loader: Please update Basis Universal transcoder.")});break;case"transcode":A.then(()=>{try{const{faces:r,buffers:c,width:D,height:b,hasAlpha:h,format:w,type:f,dfdFlags:p}=function(R){const m=new g.KTX2File(new Uint8Array(R));function G(){m.close(),m.delete()}if(!m.isValid())throw G(),new Error("THREE.KTX2Loader: Invalid or unsupported .ktx2 file");let k;if(m.isUASTC())k=E.UASTC;else if(m.isETC1S())k=E.ETC1S;else{if(!m.isHDR())throw new Error("THREE.KTX2Loader: Unknown Basis encoding");k=E.UASTC_HDR}const U=m.getWidth(),S=m.getHeight(),q=m.getLayers()||1,z=m.getLevels(),gA=m.getFaces(),$=m.getHasAlpha(),X=m.getDFDFlags(),{transcoderFormat:aA,engineFormat:wA,engineType:sA}=function(iA,GA,eA,rA){const yA=i[iA];for(let RA=0;RA<yA.length;RA++){const oA=yA[RA];if(!(oA.if&&!B[oA.if])&&oA.basisFormat.includes(iA)&&!(rA&&oA.transcoderFormat.length<2)&&!(oA.needsPowerOfTwo&&(!t(GA)||!t(eA))))return{transcoderFormat:oA.transcoderFormat[rA?1:0],engineFormat:oA.engineFormat[rA?1:0],engineType:oA.engineType[0]}}throw new Error("THREE.KTX2Loader: Failed to identify transcoding target.")}(k,U,S,$);if(!U||!S||!z)throw G(),new Error("THREE.KTX2Loader: Invalid texture");if(!m.startTranscoding())throw G(),new Error("THREE.KTX2Loader: .startTranscoding failed");const fA=[],lA=[];for(let iA=0;iA<gA;iA++){const GA=[];for(let eA=0;eA<z;eA++){const rA=[];let yA,RA;for(let cA=0;cA<q;cA++){const JA=m.getImageLevelInfo(eA,cA,iA);iA!==0||eA!==0||cA!==0||JA.origWidth%4==0&&JA.origHeight%4==0||console.warn("THREE.KTX2Loader: ETC1S and UASTC textures should use multiple-of-four dimensions."),z>1?(yA=JA.origWidth,RA=JA.origHeight):(yA=JA.width,RA=JA.height);let qA=new Uint8Array(m.getImageTranscodedSizeInBytes(eA,cA,0,aA));const sg=m.transcodeImage(qA,eA,cA,iA,aA,0,-1,-1);if(sA===Q.HalfFloatType&&(qA=new Uint16Array(qA.buffer,qA.byteOffset,qA.byteLength/Uint16Array.BYTES_PER_ELEMENT)),!sg)throw G(),new Error("THREE.KTX2Loader: .transcodeImage failed.");rA.push(qA)}const oA=e(rA);GA.push({data:oA,width:yA,height:RA}),lA.push(oA.buffer)}fA.push({mipmaps:GA,width:U,height:S,format:wA,type:sA})}return G(),{faces:fA,buffers:lA,width:U,height:S,hasAlpha:$,dfdFlags:X,format:wA,type:sA}}(s.buffer);self.postMessage({type:"transcode",id:s.id,data:{faces:r,width:D,height:b,hasAlpha:h,format:w,type:f,dfdFlags:p}},c)}catch(r){console.error(r),self.postMessage({type:"error",id:s.id,error:r.message})}})}var n});const a=[{if:"astcSupported",basisFormat:[E.UASTC],transcoderFormat:[C.ASTC_4x4,C.ASTC_4x4],engineFormat:[I.RGBA_ASTC_4x4_Format,I.RGBA_ASTC_4x4_Format],engineType:[Q.UnsignedByteType],priorityETC1S:1/0,priorityUASTC:1,needsPowerOfTwo:!1},{if:"bptcSupported",basisFormat:[E.ETC1S,E.UASTC],transcoderFormat:[C.BC7_M5,C.BC7_M5],engineFormat:[I.RGBA_BPTC_Format,I.RGBA_BPTC_Format],engineType:[Q.UnsignedByteType],priorityETC1S:3,priorityUASTC:2,needsPowerOfTwo:!1},{if:"dxtSupported",basisFormat:[E.ETC1S,E.UASTC],transcoderFormat:[C.BC1,C.BC3],engineFormat:[I.RGBA_S3TC_DXT1_Format,I.RGBA_S3TC_DXT5_Format],engineType:[Q.UnsignedByteType],priorityETC1S:4,priorityUASTC:5,needsPowerOfTwo:!1},{if:"etc2Supported",basisFormat:[E.ETC1S,E.UASTC],transcoderFormat:[C.ETC1,C.ETC2],engineFormat:[I.RGB_ETC2_Format,I.RGBA_ETC2_EAC_Format],engineType:[Q.UnsignedByteType],priorityETC1S:1,priorityUASTC:3,needsPowerOfTwo:!1},{if:"etc1Supported",basisFormat:[E.ETC1S,E.UASTC],transcoderFormat:[C.ETC1],engineFormat:[I.RGB_ETC1_Format],engineType:[Q.UnsignedByteType],priorityETC1S:2,priorityUASTC:4,needsPowerOfTwo:!1},{if:"pvrtcSupported",basisFormat:[E.ETC1S,E.UASTC],transcoderFormat:[C.PVRTC1_4_RGB,C.PVRTC1_4_RGBA],engineFormat:[I.RGB_PVRTC_4BPPV1_Format,I.RGBA_PVRTC_4BPPV1_Format],engineType:[Q.UnsignedByteType],priorityETC1S:5,priorityUASTC:6,needsPowerOfTwo:!0},{if:"bptcSupported",basisFormat:[E.UASTC_HDR],transcoderFormat:[C.BC6H],engineFormat:[I.RGB_BPTC_UNSIGNED_Format],engineType:[Q.HalfFloatType],priorityHDR:1,needsPowerOfTwo:!1},{basisFormat:[E.ETC1S,E.UASTC],transcoderFormat:[C.RGBA32,C.RGBA32],engineFormat:[I.RGBAFormat,I.RGBAFormat],engineType:[Q.UnsignedByteType,Q.UnsignedByteType],priorityETC1S:100,priorityUASTC:100,needsPowerOfTwo:!1},{basisFormat:[E.UASTC_HDR],transcoderFormat:[C.RGBA_HALF],engineFormat:[I.RGBAFormat],engineType:[Q.HalfFloatType],priorityHDR:100,needsPowerOfTwo:!1}],i={[E.ETC1S]:a.filter(o=>o.basisFormat.includes(E.ETC1S)).sort((o,s)=>o.priorityUASTC-s.priorityUASTC),[E.UASTC]:a.filter(o=>o.basisFormat.includes(E.UASTC)).sort((o,s)=>o.priorityUASTC-s.priorityUASTC),[E.UASTC_HDR]:a.filter(o=>o.basisFormat.includes(E.UASTC_HDR)).sort((o,s)=>o.priorityHDR-s.priorityHDR)};function t(o){return o<=2||!(o&o-1)&&o!==0}function e(o){if(o.length===1)return o[0];let s=0;for(let c=0;c<o.length;c++)s+=o[c].byteLength;const n=new Uint8Array(s);let r=0;for(let c=0;c<o.length;c++){const D=o[c];n.set(D,r),r+=D.byteLength}return n}};const le=new Set([d.RGBAFormat,d.RGBFormat,d.RGFormat,d.RedFormat]),WB={[nC]:d.RGBAFormat,[oC]:d.RGFormat,[tC]:d.RedFormat,[iC]:d.RGBAFormat,[eC]:d.RGFormat,[aC]:d.RedFormat,[EC]:d.RGBAFormat,[CC]:d.RGBAFormat,[QC]:d.RGFormat,[BC]:d.RGFormat,[IC]:d.RedFormat,[gC]:d.RedFormat,[rC]:d.RGBFormat,[sC]:d.RGBFormat,[RC]:d.RGBA_ETC2_EAC_Format,[GC]:d.RGB_ETC2_Format,[HB]:d.RGBA_ASTC_4x4_Format,[NC]:d.RGBA_ASTC_4x4_Format,[pC]:d.RGBA_ASTC_4x4_Format,[YC]:d.RGBA_ASTC_6x6_Format,[mC]:d.RGBA_ASTC_6x6_Format,[kC]:d.RGBA_ASTC_6x6_Format,[dC]:d.RGBA_S3TC_DXT1_Format,[DC]:d.RGBA_S3TC_DXT1_Format,[hC]:d.RGB_S3TC_DXT1_Format,[cC]:d.RGB_S3TC_DXT1_Format,[wC]:d.RGBA_S3TC_DXT3_Format,[bC]:d.RGBA_S3TC_DXT3_Format,[lC]:d.SIGNED_RED_RGTC1_Format,[uC]:d.RED_RGTC1_Format,[FC]:d.SIGNED_RED_GREEN_RGTC2_Format,[fC]:d.RED_GREEN_RGTC2_Format,[MC]:d.RGBA_BPTC_Format,[yC]:d.RGBA_BPTC_Format,[JC]:d.RGBA_PVRTC_4BPPV1_Format,[UC]:d.RGBA_PVRTC_4BPPV1_Format,[LC]:d.RGBA_PVRTC_2BPPV1_Format,[SC]:d.RGBA_PVRTC_2BPPV1_Format},cI={[nC]:d.FloatType,[oC]:d.FloatType,[tC]:d.FloatType,[iC]:d.HalfFloatType,[eC]:d.HalfFloatType,[aC]:d.HalfFloatType,[EC]:d.UnsignedByteType,[CC]:d.UnsignedByteType,[QC]:d.UnsignedByteType,[BC]:d.UnsignedByteType,[IC]:d.UnsignedByteType,[gC]:d.UnsignedByteType,[rC]:d.UnsignedInt5999Type,[sC]:d.UnsignedInt101111Type,[RC]:d.UnsignedByteType,[GC]:d.UnsignedByteType,[HB]:d.HalfFloatType,[NC]:d.UnsignedByteType,[pC]:d.UnsignedByteType,[YC]:d.HalfFloatType,[mC]:d.UnsignedByteType,[kC]:d.UnsignedByteType,[dC]:d.UnsignedByteType,[DC]:d.UnsignedByteType,[hC]:d.UnsignedByteType,[cC]:d.UnsignedByteType,[wC]:d.UnsignedByteType,[bC]:d.UnsignedByteType,[lC]:d.UnsignedByteType,[uC]:d.UnsignedByteType,[FC]:d.UnsignedByteType,[fC]:d.UnsignedByteType,[MC]:d.UnsignedByteType,[yC]:d.UnsignedByteType,[JC]:d.UnsignedByteType,[UC]:d.UnsignedByteType,[LC]:d.UnsignedByteType,[SC]:d.UnsignedByteType};function KC(B){const A=B.dataFormatDescriptor[0];return A.colorPrimaries===1?A.transferFunction===2?d.SRGBColorSpace:d.LinearSRGBColorSpace:A.colorPrimaries===10?A.transferFunction===2?"display-p3":"display-p3-linear":(A.colorPrimaries===0||console.warn(`THREE.KTX2Loader: Unsupported color primaries, "${A.colorPrimaries}"`),d.NoColorSpace)}async function jC(B){const A=B.split("?")[0].split(".").pop(),g=await fetch(B);if(!g.ok)throw new Error(`Failed to fetch ${B}: ${g.statusText}`);if(A==="json"){const I=await g.json();return handleJSONSubtree(I,qC(B))}if(A==="subtree")return async function(I,Q){const C=new DataView(I),E=C.getBigUint64(8,!0),a=C.getBigUint64(16,!0),i=24,t=i+Number(E),e=t+(8-t%8)%8,o=e+Number(a),s=I.slice(i,t),n=new TextDecoder().decode(s).trim(),r=JSON.parse(n);if(!r.buffers)throw new Error("subtree has no buffers");const c=r.buffers.map(async b=>{if(b.uri){const h=new URL(b.uri,Q).href,w=await fetch(h);if(!w.ok)throw new Error(`Failed to fetch binary file ${h}: ${w.statusText}`);return new Uint8Array(await w.arrayBuffer())}return new Uint8Array(I.slice(e,o))}),D=await Promise.all(c);return function(b,h){function w(G,k){if(!G)throw new Error("incomplete json subtree");if(G.constant){if(G.constant==0)return!1;if(G.constant==1)return!0}if(G.bitstream==null)throw new Error('json subtree "tileAvailability" does not specify a bitstream');if(!b.bufferViews||!b.bufferViews[G.bitstream])throw new Error('json subtree "bufferViews" does not specify a bitstream');const U=b.bufferViews[G.bitstream];return f(h[U.buffer],U.byteOffset,k)}function f(G,k,U){const S=U%8;return G[k+Math.floor(U/8)]>>S&!0}function p(G){let k=0;return k=G.z==null?PB(G.x,G.y,G.level):zB(G.x,G.y,G.z,G.level),w(b.tileAvailability,k)}function R(G){let k=0;k=G.z==null?PB(G.x,G.y,G.level):zB(G.x,G.y,G.z,G.level);const U=[];return b.contentAvailability.forEach(S=>{U.push(w(S,k))}),U}function m(G){let k=0;return k=G.z==null?PB(G.x,G.y):zB(G.x,G.y,G.z),w(b.childSubtreeAvailability,k)}return{isTileAvailable:p,isContentAvailable:R,isChildSubtreeAvailable:m}}(r,D)}(await g.arrayBuffer(),qC(B));throw new Error(`Unsupported file extension: ${A}`)}function qC(B){const A=B.split("?")[0];return A.substring(0,A.lastIndexOf("/")+1)}function vC(B){return B=1431655765&((B=858993459&((B=252645135&((B=16711935&((B&=65535)^B<<8))^B<<4))^B<<2))^B<<1)}function PB(B,A,g){let I=0;return g&&(I=(Math.pow(4,g)-1)/3),I+(vC(B)|vC(A)<<1)}function VB(B){return B=153391689&((B=51130563&((B=50393103&((B=4278190335&((B&=1023)^B<<16))^B<<8))^B<<4))^B<<2)}function zB(B,A,g,I){let Q=0;return I&&(Q=(Math.pow(8,I)-1)/7),Q+(VB(B)|VB(A)<<1|VB(g)<<2)}const SI=new Map;async function XB(B,A){if(!B.root||!B.root.implicitTiling)return B;if(!B.root.content&&!B.root.contents)throw new Error("implicit tiling requires a Template URI");let g=!0;B.root.implicitTiling.subdivisionScheme&&(g=B.root.implicitTiling.subdivisionScheme.toUpperCase()==="QUADTREE");let I="";B.root.implicitTiling.subtrees&&(B.root.implicitTiling.subtrees.uri?I=B.root.implicitTiling.subtrees.uri:B.root.implicitTiling.subtrees.url&&(I=B.root.implicitTiling.subtrees.url));let Q=[];B.root.content?B.root.content.uri?Q.push(B.root.content.uri):B.root.content.url&&Q.push(B.root.content.url):B.root.contents&&B.root.contents.forEach(n=>{n.uri?Q.push(n.uri):n.url&&Q.push(n.url)});const C=function(n){const r=n.split("?")[0];return r.substring(0,r.lastIndexOf("/")+1)}(A);let E;g&&(E=I.replace("{level}",0).replace("{x}",0).replace("{y}",0)),g||(E=I.replace("{level}",0).replace("{x}",0).replace("{y}",0).replace("{z}",0));const a={level:0,x:0,y:0},i={level:0,x:0,y:0};g||(a.z=0,i.z=0),SI.set(E,await jC(C+E));const t=SI.get(E),e=[];t.isContentAvailable(i)&&Q.forEach(n=>{let r;g&&(r=n.replace("{level}",a.level).replace("{x}",a.x).replace("{y}",a.y)),g||(r=n.replace("{level}",a.level).replace("{x}",a.x).replace("{y}",a.y).replace("{z}",a.z)),e.push({uri:r})});const o={geometricError:B.root.geometricError,boundingVolume:B.root.boundingVolume,refine:B.root.refine,globalAddress:a,localAddress:i,subtree:t,contents:e,getChildren:async()=>s(o)};return{root:o};async function s(n){const r=[];if(n.localAddress.level==B.root.implicitTiling.availableLevels-1)return r;if((n.localAddress.level+1)%B.root.implicitTiling.subtreeLevels==0){const c=VI(n.localAddress),D=VI(n.globalAddress),b=TC(g,B.root.boundingVolume,D);for(let h=0;h<c.length;h++){const w=c[h],f=D[h];n.subtree.isChildSubtreeAvailable(w)&&(g&&I.replace("{level}",f.level).replace("{x}",f.x).replace("{y}",f.y),g||I.replace("{level}",f.level).replace("{x}",f.x).replace("{y}",f.y).replace("{z}",f.z)),SI.has(E)||SI.set(E,await jC(C+E));const p=SI.get(E),R={level:0,x:0,y:0};g||(R.z=0);const m=[];p.isContentAvailable(R)&&Q.forEach(k=>{let U;g&&(U=k.replace("{level}",f.level).replace("{x}",f.x).replace("{y}",f.y)),g||(U=k.replace("{level}",f.level).replace("{x}",f.x).replace("{y}",f.y).replace("{z}",f.z)),m.push({uri:U})});const G={geometricError:n.geometricError/2,boundingVolume:b[h],refine:B.root.refine,globalAddress:f,localAddress:R,subtree:p,contents:m,getChildren:async()=>s(G)};r.push(G)}}else{const c=VI(n.localAddress),D=VI(n.globalAddress),b=TC(g,B.root.boundingVolume,D);for(let h=0;h<c.length;h++){const w=c[h],f=D[h];if(!n.subtree.isTileAvailable(w))continue;const p=[],R=n.subtree.isContentAvailable(w);for(let G=0;G<Q.length;G++){if(!R[G])continue;const k=Q[G];let U;g&&(U=k.replace("{level}",f.level).replace("{x}",f.x).replace("{y}",f.y)),g||(U=k.replace("{level}",f.level).replace("{x}",f.x).replace("{y}",f.y).replace("{z}",f.z)),p.push({uri:U})}const m={geometricError:n.geometricError/2,boundingVolume:b[h],refine:B.root.refine,globalAddress:f,localAddress:w,subtree:n.subtree,contents:p,getChildren:async()=>s(m)};r.push(m)}}return r.length>0?r:void 0}}function VI(B){const{level:A,x:g,y:I,z:Q}=B,C=A+1;let E=[];return E=Q===void 0?[{level:C,x:2*g,y:2*I},{level:C,x:2*g+1,y:2*I},{level:C,x:2*g,y:2*I+1},{level:C,x:2*g+1,y:2*I+1}]:[{level:C,x:2*g,y:2*I,z:2*Q},{level:C,x:2*g+1,y:2*I,z:2*Q},{level:C,x:2*g,y:2*I+1,z:2*Q},{level:C,x:2*g+1,y:2*I+1,z:2*Q},{level:C,x:2*g,y:2*I,z:2*Q+1},{level:C,x:2*g+1,y:2*I,z:2*Q+1},{level:C,x:2*g,y:2*I+1,z:2*Q+1},{level:C,x:2*g+1,y:2*I+1,z:2*Q+1}],E}function TC(B,A,g){const I=[];for(let Q=0;Q<g.length;Q++)I.push(fe(B,A,g[Q]));return I}function fe(B,A,g){if(A.region)return function(I,Q,C){const[E,a,i,t,e,o]=Q,s=(i-E)/2**C.level,n=(t-a)/2**C.level,r=I?0:(o-e)/2**C.level,c=E+s*C.x,D=a+n*C.y,b=c+s,h=D+n,w=I?e:e+r*C.z,f=I?o:w+r;return{region:[c,D,b,h,w,f]}}(B,A.region,g);if(A.box)return function(I,Q,C){const E=Q.slice(0,3),a=[Q.slice(3,6),Q.slice(6,9),Q.slice(9,12)],i=1/Math.pow(2,C.level),t=[i,i,I?1:i],e=a.map((n,r)=>n.map(c=>c*t[r])),o=[E[0]-a[0][0]-a[1][0]-a[2][0],E[1]-a[0][1]-a[1][1]-a[2][1],E[2]-a[0][2]-a[1][2]-a[2][2]];return{box:[o[0]+(2*C.x+1)*(e[0][0]+e[1][0]+e[2][0]),o[1]+(2*C.y+1)*(e[0][1]+e[1][1]+e[2][1]),I?E[2]:o[2]+(2*C.z+1)*(e[0][2]+e[1][2]+e[2][2])].concat(...e)}}(B,A.box,g);throw new Error("Unsupported bounding volume type")}(function(){var B,A=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};function g(i){if(!i)throw new Error("Assertion failed")}function I(i){return new Uint8Array(i.buffer,i.byteOffset,i.byteLength)}function Q(i,t,e,o,s,n,r){var c=B.exports.sbrk,D=c(t),b=c(o*s),h=new Uint8Array(B.exports.memory.buffer);h.set(I(e),b);var w=i(D,t,b,o,s,n,r),f=new Uint8Array(w);return f.set(h.subarray(D,D+w)),c(D-c(0)),f}function C(i){for(var t=0,e=0;e<i.length;++e)var o=i[e];return t}function E(i,t){if(g(t==2||t==4),t==4)return new Uint32Array(i.buffer,i.byteOffset,i.byteLength/4);var e=new Uint16Array(i.buffer,i.byteOffset,i.byteLength/2);return new Uint32Array(e)}function a(i,t,e,o,s,n,r){var c=B.exports.sbrk,D=c(e*o),b=c(e*n),h=new Uint8Array(B.exports.memory.buffer);h.set(I(t),b),i(D,e,o,s,b,r);var w=new Uint8Array(e*o);return w.set(h.subarray(D,D+e*o)),c(D-c(0)),w}WebAssembly.instantiate(function(i){for(var t=new Uint8Array(i.length),e=0;e<i.length;++e){var o=i.charCodeAt(e);t[e]=o>96?o-97:o>64?o-39:o+4}var s=0;for(e=0;e<i.length;++e)t[s++]=t[e]<60?A[t[e]]:64*(t[e]-60)+t[++e];return t.buffer.slice(0,s)}("b9H79Tebbbe9ok9Geueu9Geub9Gbb9Gruuuuuuueu9Gvuuuuueu9Gduueu9Gluuuueu9Gvuuuuub9Gouuuuuub9Gluuuub9GiuuueuiE8AdilveoveovrrwrrrDDoDrbqqbelve9Weiiviebeoweuec;G:Qdkr:PlCo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8F9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWV9mW4W2be8A9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWVbd8F9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWV9c9V919U9KbiE9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949wWV79P9V9UblY9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWVbv8E9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWV9c9V919U9Kbo8A9TW79O9V9Wt9FW9U9J9V9KW69U9KW949wWV79P9V9UbrE9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JWbwa9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JW9c9V919U9KbDL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9p9JtbqK9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9r919HtbkL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWVT949WbxY9TW79O9V9Wt9FW9U9J9V9KWS9P2tWVJ9V29VVbmE9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OWbza9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OW9ttV9P9WbHa9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9WbOK9TW79O9V9Wt9F79W9Ht9P9H29t9VVt9sW9T9H9WbAl79IV9RbXDwebcekdKYq;i28Adbk:Bhdhud9:8Jjjjjbc;qw9Rgr8KjjjjbcbhwdnaeTmbabcbyd;C:kjjbaoaocb9iEgDc:GeV86bbarc;adfcbcjdz:xjjjb8AdnaiTmbarc;adfadalz:wjjjb8Akarc;abfalfcbcbcjdal9RalcFe0Ez:xjjjb8Aarc;abfarc;adfalz:wjjjb8AarcUf9cb83ibarc8Wf9cb83ibarcyf9cb83ibarcaf9cb83ibarcKf9cb83ibarczf9cb83ibar9cb83iwar9cb83ibcj;abal9Uc;WFbGcjdalca0Ehqdnaicd6mbavcd9imbaDTmbadcefhkaqci2gxal2hmarc;alfclfhParc;qlfceVhsarc;qofclVhzarc;qofcKfhHarc;qofczfhOcbhAincdhCcbhodnavci6mbaH9cb83ibaO9cb83ibar9cb83i;yoar9cb83i;qoadaAfgoybbhXcbhQincbhwcbhLdninaoalfhKaoybbgYaX7aLVhLawcP0meaKhoaYhXawcefgwaQfai6mbkkcbhXarc;qofhwincwh8AcwhEdnaLaX93gocFeGg3cs0mbclhEa3ci0mba3cb9hcethEkdnaocw4cFeGg3cs0mbclh8Aa3ci0mba3cb9hceth8Aka8AaEfh3awydbh5cwh8AcwhEdnaocz4cFeGg8Ecs0mbclhEa8Eci0mba8Ecb9hcethEka3a5fh3dnaocFFFFb0mbclh8AaocFFF8F0mbaocFFFr0ceth8Akawa3aEfa8AfBdbawclfhwaXcefgXcw9hmbkaKhoaYhXaQczfgQai6mbkcbhocehwazhLinawaoaLydbarc;qofaocdtfydb6EhoaLclfhLawcefgwcw9hmbkcihCkcbh3arc;qlfcbcjdz:xjjjb8Aarc;alfcwfcbBdbar9cb83i;alaoclth8Fadhaaqhhakh5inarc;qlfadcba3cufgoaoa30Eal2falz:wjjjb8Aaiahaiah6Ehgdnaqaia39Ra3aqfai6EgYcsfc9WGgoaY9nmbarc;qofaYfcbaoaY9Rz:xjjjb8Akada3al2fh8Jcbh8Kina8Ka8FVcl4hQarc;alfa8Kcdtfh8LaAh8Mcbh8Nina8NaAfhwdndndndndndna8KPldebidkasa8Mc98GgLfhoa5aLfh8Aarc;qlfawc98GgLfRbbhXcwhwinaoRbbawtaXVhXaocefhoawcwfgwca9hmbkaYTmla8Ncith8Ea8JaLfhEcbhKinaERbbhLcwhoa8AhwinawRbbaotaLVhLawcefhwaocwfgoca9hmbkarc;qofaKfaLaX7aQ93a8E486bba8Aalfh8AaEalfhEaLhXaKcefgKaY9hmbxlkkaYTmia8Mc9:Ghoa8NcitcwGhEarc;qlfawceVfRbbcwtarc;qlfawc9:GfRbbVhLarc;qofhwaghXinawa5aofRbbcwtaaaofRbbVg8AaL9RgLcetaLcztcz91cs47cFFiGaE486bbaoalfhoawcefhwa8AhLa3aXcufgX9hmbxikkaYTmda8Jawfhoarc;qlfawfRbbhLarc;qofhwaghXinawaoRbbg8AaL9RgLcetaLcKtcK91cr4786bbawcefhwaoalfhoa8AhLa3aXcufgX9hmbxdkkaYTmeka8LydbhEcbhKarc;qofhoincdhLcbhwinaLaoawfRbbcb9hfhLawcefgwcz9hmbkclhXcbhwinaXaoawfRbbcd0fhXawcefgwcz9hmbkcwh8Acbhwina8AaoawfRbbcP0fh8Aawcefgwcz9hmbkaLaXaLaX6Egwa8Aawa8A6Egwczawcz6EaEfhEaoczfhoaKczfgKaY6mbka8LaEBdbka8Mcefh8Ma8Ncefg8Ncl9hmbka8Kcefg8KaC9hmbkaaamfhaahaxfhha5amfh5a3axfg3ai6mbkcbhocehwaPhLinawaoaLydbarc;alfaocdtfydb6EhoaLclfhLawcefgXhwaCaX9hmbkaraAcd4fa8FcdVaoaocdSE86bbaAclfgAal6mbkkabaefh8Kabcefhoalcd4gecbaDEhkadcefhOarc;abfceVhHcbhmdndninaiam9nmearc;qofcbcjdz:xjjjb8Aa8Kao9Rak6mdadamal2gwfhxcbh8JaOawfhzaocbakz:xjjjbghakfh5aqaiam9Ramaqfai6Egscsfgocl4cifcd4hCaoc9WGg8LThPindndndndndndndndndndnaDTmbara8Jcd4fRbbgLciGPlbedlbkasTmdaxa8Jfhoarc;abfa8JfRbbhLarc;qofhwashXinawaoRbbg8AaL9RgLcetaLcKtcK91cr4786bbawcefhwaoalfhoa8AhLaXcufgXmbxikkasTmia8JcitcwGhEarc;abfa8JceVfRbbcwtarc;abfa8Jc9:GgofRbbVhLaxaofhoarc;qofhwashXinawao8Vbbg8AaL9RgLcetaLcztcz91cs47cFFiGaE486bbawcefhwaoalfhoa8AhLaXcufgXmbxdkkaHa8Jc98GgEfhoazaEfh8Aarc;abfaEfRbbhXcwhwinaoRbbawtaXVhXaocefhoawcwfgwca9hmbkasTmbaLcl4hYa8JcitcKGh3axaEfhEcbhKinaERbbhLcwhoa8AhwinawRbbaotaLVhLawcefhwaocwfgoca9hmbkarc;qofaKfaLaX7aY93a3486bba8Aalfh8AaEalfhEaLhXaKcefgKas9hmbkkaDmbcbhoxlka8LTmbcbhodninarc;qofaofgwcwf8Pibaw8Pib:e9qTmeaoczfgoa8L9pmdxbkkdnavmbcehoxikcbhEaChKaChYinarc;qofaEfgocwf8Pibhyao8Pibh8PcdhLcbhwinaLaoawfRbbcb9hfhLawcefgwcz9hmbkclhXcbhwinaXaoawfRbbcd0fhXawcefgwcz9hmbkcwh8Acbhwina8AaoawfRbbcP0fh8Aawcefgwcz9hmbkaLaXaLaX6Egoa8Aaoa8A6Egoczaocz6EaYfhYaocucbaya8P:e9cb9sEgwaoaw6EaKfhKaEczfgEa8L9pmdxbkkaha8Jcd4fgoaoRbbcda8JcetcoGtV86bbxikdnaKas6mbaYas6mbaha8Jcd4fgoaoRbbcia8JcetcoGtV86bba8Ka59Ras6mra5arc;qofasz:wjjjbasfh5xikaKaY9phokaha8Jcd4fgwawRbbaoa8JcetcoGtV86bbka8Ka59RaC6mla5cbaCz:xjjjbgAaCfhYdndna8LmbaPhoxekdna8KaY9RcK9pmbaPhoxekaocdtc:q1jjbfcj1jjbaDEg5ydxggcetc;:FFFeGh8Fcuh3cuagtcu7cFeGhacbh8Marc;qofhLinarc;qofa8MfhQczhEdndndnagPDbeeeeeeedekcucbaQcwf8PibaQ8Pib:e9cb9sEhExekcbhoa8FhEinaEaaaLaofRbb9nfhEaocefgocz9hmbkkcih8Ecbh8Ainczhwdndndna5a8AcdtfydbgKPDbeeeeeeedekcucbaQcwf8PibaQ8Pib:e9cb9sEhwxekaKcetc;:FFFeGhwcuaKtcu7cFeGhXcbhoinawaXaLaofRbb9nfhwaocefgocz9hmbkkdndnawaE6mbaKa39hmeawaE9hmea5a8EcdtfydbcwSmeka8Ah8EawhEka8Acefg8Aci9hmbkaAa8Mco4fgoaoRbba8Ea8Mci4coGtV86bbdndndna5a8Ecdtfydbg3PDdbbbbbbbebkdncwa39Tg8ETmbcua3tcu7hwdndna3ceSmbcbh8NaLhQinaQhoa8Eh8AcbhXinaoRbbgEawcFeGgKaEaK6EaXa3tVhXaocefhoa8Acufg8AmbkaYaX86bbaQa8EfhQaYcefhYa8Na8Efg8Ncz6mbxdkkcbh8NaLhQinaQhoa8Eh8AcbhXinaoRbbgEawcFeGgKaEaK6EaXcetVhXaocefhoa8Acufg8AmbkaYaX:T9cFe:d9c:c:qj:bw9:9c:q;c1:I1e:d9c:b:c:e1z9:9ca188bbaQa8EfhQaYcefhYa8Na8Efg8Ncz6mbkkcbhoinaYaLaofRbbgX86bbaYaXawcFeG9pfhYaocefgocz9hmbxikkdna3ceSmbinaYcb86bbaYcefhYxbkkinaYcb86bbaYcefhYxbkkaYaQ8Pbb83bbaYcwfaQcwf8Pbb83bbaYczfhYka8Mczfg8Ma8L9pgomeaLczfhLa8KaY9RcK9pmbkkaoTmlaYh5aYTmlka8Jcefg8Jal9hmbkarc;abfaxascufal2falz:wjjjb8Aasamfhma5hoa5mbkcbhwxdkdna8Kao9RakalfgwcKcaaDEgLawaL0EgX9pmbcbhwxdkdnawaL9pmbaocbaXaw9Rgwz:xjjjbawfhokaoarc;adfalz:wjjjbalfhodnaDTmbaoaraez:wjjjbaefhokaoab9Rhwxekcbhwkarc;qwf8Kjjjjbawk5babaeadaialcdcbyd;C:kjjbz:bjjjbk9reduaecd4gdaefgicaaica0Eabcj;abae9Uc;WFbGcjdaeca0Egifcufai9Uae2aiadfaicl4cifcd4f2fcefkmbcbabBd;C:kjjbk:Ese5u8Jjjjjbc;ae9Rgl8Kjjjjbcbhvdnaici9UgocHfae0mbabcbyd;m:kjjbgrc;GeV86bbalc;abfcFecjez:xjjjb8AalcUfgw9cu83ibalc8WfgD9cu83ibalcyfgq9cu83ibalcafgk9cu83ibalcKfgx9cu83ibalczfgm9cu83ibal9cu83iwal9cu83ibabaefc9WfhPabcefgsaofhednaiTmbcmcsarcb9kgzEhHcbhOcbhAcbhCcbhXcbhQindnaeaP9nmbcbhvxikaQcufhvadaCcdtfgLydbhKaLcwfydbhYaLclfydbh8AcbhEdndndninalc;abfavcsGcitfgoydlh3dndndnaoydbgoaK9hmba3a8ASmekdnaoa8A9hmba3aY9hmbaEcefhExekaoaY9hmea3aK9hmeaEcdfhEkaEc870mdaXcufhvaLaEciGcx2goc;i1jjbfydbcdtfydbh3aLaoc;e1jjbfydbcdtfydbh8AaLaoc;a1jjbfydbcdtfydbhKcbhodnindnalavcsGcdtfydba39hmbaohYxdkcuhYavcufhvaocefgocz9hmbkkaOa3aOSgvaYce9iaYaH9oVgoGfhOdndndncbcsavEaYaoEgvcs9hmbarce9imba3a3aAa3cefaASgvEgAcefSmecmcsavEhvkasavaEcdtc;WeGV86bbavcs9hmea3aA9Rgvcetavc8F917hvinaeavcFb0crtavcFbGV86bbaecefheavcje6hoavcr4hvaoTmbka3hAxvkcPhvasaEcdtcPV86bba3hAkavTmiavaH9omicdhocehEaQhYxlkavcufhvaEclfgEc;ab9hmbkkdnaLceaYaOSceta8AaOSEcx2gvc;a1jjbfydbcdtfydbgKTaLavc;e1jjbfydbcdtfydbg8AceSGaLavc;i1jjbfydbcdtfydbg3cdSGaOcb9hGazGg5ce9hmbaw9cu83ibaD9cu83ibaq9cu83ibak9cu83ibax9cu83ibam9cu83ibal9cu83iwal9cu83ibcbhOkcbhEaXcufgvhodnindnalaocsGcdtfydba8A9hmbaEhYxdkcuhYaocufhoaEcefgEcz9hmbkkcbhodnindnalavcsGcdtfydba39hmbaohExdkcuhEavcufhvaocefgocz9hmbkkaOaKaOSg8EfhLdndnaYcm0mbaYcefhYxekcbcsa8AaLSgvEhYaLavfhLkdndnaEcm0mbaEcefhExekcbcsa3aLSgvEhEaLavfhLkc9:cua8EEh8FcbhvaEaYcltVgacFeGhodndndninavc:W1jjbfRbbaoSmeavcefgvcz9hmbxdkka5aKaO9havcm0VVmbasavc;WeV86bbxekasa8F86bbaeaa86bbaecefhekdna8EmbaKaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombkaKhAkdnaYcs9hmba8AaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombka8AhAkdnaEcs9hmba3aA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombka3hAkalaXcdtfaKBdbaXcefcsGhvdndnaYPzbeeeeeeeeeeeeeebekalavcdtfa8ABdbaXcdfcsGhvkdndnaEPzbeeeeeeeeeeeeeebekalavcdtfa3BdbavcefcsGhvkcihoalc;abfaQcitfgEaKBdlaEa8ABdbaQcefcsGhYcdhEavhXaLhOxekcdhoalaXcdtfa3BdbcehEaXcefcsGhXaQhYkalc;abfaYcitfgva8ABdlava3Bdbalc;abfaQaEfcsGcitfgva3BdlavaKBdbascefhsaQaofcsGhQaCcifgCai6mbkkdnaeaP9nmbcbhvxekcbhvinaeavfavc:W1jjbfRbb86bbavcefgvcz9hmbkaeab9Ravfhvkalc;aef8KjjjjbavkZeeucbhddninadcefgdc8F0meceadtae6mbkkadcrfcFeGcr9Uci2cdfabci9U2cHfkmbcbabBd;m:kjjbk:Adewu8Jjjjjbcz9Rhlcbhvdnaicvfae0mbcbhvabcbRb;m:kjjbc;qeV86bbal9cb83iwabcefhoabaefc98fhrdnaiTmbcbhwcbhDindnaoar6mbcbskadaDcdtfydbgqalcwfawaqav9Rgvavc8F91gv7av9Rc507gwcdtfgkydb9Rgvc8E91c9:Gavcdt7awVhvinaoavcFb0gecrtavcFbGV86bbavcr4hvaocefhoaembkakaqBdbaqhvaDcefgDai9hmbkkdnaoar9nmbcbskaocbBbbaoab9RclfhvkavkBeeucbhddninadcefgdc8F0meceadtae6mbkkadcwfcFeGcr9Uab2cvfk:bvli99dui99ludnaeTmbcuadcetcuftcu7:Zhvdndncuaicuftcu7:ZgoJbbbZMgr:lJbbb9p9DTmbar:Ohwxekcjjjj94hwkcbhicbhDinalclfIdbgrJbbbbJbbjZalIdbgq:lar:lMalcwfIdbgk:lMgr:varJbbbb9BEgrNhxaqarNhrdndnakJbbbb9GTmbaxhqxekJbbjZar:l:tgqaq:maxJbbbb9GEhqJbbjZax:l:tgxax:marJbbbb9GEhrkdndnalcxfIdbgxJbbj:;axJbbj:;9GEgkJbbjZakJbbjZ9FEavNJbbbZJbbb:;axJbbbb9GEMgx:lJbbb9p9DTmbax:Ohmxekcjjjj94hmkdndnaqJbbj:;aqJbbj:;9GEgxJbbjZaxJbbjZ9FEaoNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:OhPxekcjjjj94hPkdndnarJbbj:;arJbbj:;9GEgqJbbjZaqJbbjZ9FEaoNJbbbZJbbb:;arJbbbb9GEMgr:lJbbb9p9DTmbar:Ohsxekcjjjj94hskdndnadcl9hmbabaifgzas86bbazcifam86bbazcdfaw86bbazcefaP86bbxekabaDfgzas87ebazcofam87ebazclfaw87ebazcdfaP87ebkalczfhlaiclfhiaDcwfhDaecufgembkkk;hlld99eud99eudnaeTmbdndncuaicuftcu7:ZgvJbbbZMgo:lJbbb9p9DTmbao:Ohixekcjjjj94hikaic;8FiGhrinabcofcicdalclfIdb:lalIdb:l9EgialcwfIdb:lalaicdtfIdb:l9EEgialcxfIdb:lalaicdtfIdb:l9EEgiarV87ebdndnJbbj:;JbbjZalaicdtfIdbJbbbb9DEgoalaicd7cdtfIdbJ;Zl:1ZNNgwJbbj:;awJbbj:;9GEgDJbbjZaDJbbjZ9FEavNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohqxekcjjjj94hqkabcdfaq87ebdndnalaicefciGcdtfIdbJ;Zl:1ZNaoNgwJbbj:;awJbbj:;9GEgDJbbjZaDJbbjZ9FEavNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohqxekcjjjj94hqkabaq87ebdndnaoalaicufciGcdtfIdbJ;Zl:1ZNNgoJbbj:;aoJbbj:;9GEgwJbbjZawJbbjZ9FEavNJbbbZJbbb:;aoJbbbb9GEMgo:lJbbb9p9DTmbao:Ohixekcjjjj94hikabclfai87ebabcwfhbalczfhlaecufgembkkk;3viDue99eu8Jjjjjbcjd9Rgo8Kjjjjbadcd4hrdndndndnavcd9hmbadcl6meaohwarhDinawc:CuBdbawclfhwaDcufgDmbkaeTmiadcl6mdarcdthqalhkcbhxinaohwakhDarhminawawydbgPcbaDIdbgs:8cL4cFeGc:cufasJbbbb9BEgzaPaz9kEBdbaDclfhDawclfhwamcufgmmbkakaqfhkaxcefgxaeSmixbkkaeTmdxekaeTmekarcdthkavce9hhqadcl6hdcbhxindndndnaqmbadmdc:CuhDalhwarhminaDcbawIdbgs:8cL4cFeGc:cufasJbbbb9BEgPaDaP9kEhDawclfhwamcufgmmbxdkkc:CuhDdndnavPleddbdkadmdaohwalhmarhPinawcbamIdbgs:8cL4cFeGgzc;:bazc;:b0Ec:cufasJbbbb9BEBdbamclfhmawclfhwaPcufgPmbxdkkadmecbhwarhminaoawfcbalawfIdbgs:8cL4cFeGgPc8AaPc8A0Ec:cufasJbbbb9BEBdbawclfhwamcufgmmbkkadmbcbhwarhPinaDhmdnavceSmbaoawfydbhmkdndnalawfIdbgscjjj;8iamai9RcefgmcLt9R::NJbbbZJbbb:;asJbbbb9GEMgs:lJbbb9p9DTmbas:Ohzxekcjjjj94hzkabawfazcFFFrGamcKtVBdbawclfhwaPcufgPmbkkabakfhbalakfhlaxcefgxae9hmbkkaocjdf8Kjjjjbk:Ylvdud99due99iudnaeTmbceaicufgvthocuaitcu7:Zhrcuavtcu7:Zhwcbhvadcl9hhDcbhqindndnalcwfIdbgkJbbbbakJbbbb9GEgkJbbjZakJbbjZ9FEarNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikdndnalIdbgkJbbbbakJbbbb9GEgkJbbjZakJbbjZ9FEarNJbbbZMgk:lJbbb9p9DTmbak:Ohdxekcjjjj94hdkadai9Rcd9TgxaifhidndnalclfIdbgkJbbbbakJbbbb9GEgkJbbjZakJbbjZ9FEarNJbbbZMgk:lJbbb9p9DTmbak:Ohdxekcjjjj94hdkadai9Rcd9ThddndnalcxfIdbgkJbbbbakJbbbb9GEgkJbbjZakJbbjZ9FEawNJbbbZMgk:lJbbb9p9DTmbak:Ohmxekcjjjj94hmkadaifhiaoamVhmdndnaDmbabavfgPai86bbaPcifam86bbaPcdfad86bbaPcefax86bbxekabaqfgPai87ebaPcofam87ebaPclfad87ebaPcdfax87ebkalczfhlavclfhvaqcwfhqaecufgembkkk;YqdXui998Jjjjjbc:qd9Rgv8Kjjjjbavc:Sefcbc;Kbz:xjjjb8AcbhodnadTmbcbhoaiTmbdndnabaeSmbaehrxekavcuadcdtgwadcFFFFi0Ecbyd;q:kjjbHjjjjbbgrBd:SeavceBd:mdaraeawz:wjjjb8Akavc:GefcwfcbBdbav9cb83i:Geavc:Gefaradaiavc:Sefz:pjjjbavyd:GehDadci9Ugqcbyd;q:kjjbHjjjjbbheavc:Sefavyd:mdgkcdtfaeBdbavakcefgwBd:mdaecbaqz:xjjjbhxavc:SefawcdtfcuaicdtaicFFFFi0Ecbyd;q:kjjbHjjjjbbgmBdbavakcdfgPBd:mdalc;ebfhsaDheamhwinawalIdbasaeydbgzcwazcw6EcdtfIdbMUdbaeclfheawclfhwaicufgimbkavc:SefaPcdtfcuaqcdtadcFFFF970Ecbyd;q:kjjbHjjjjbbgPBdbdnadci6mbarheaPhwaqhiinawamaeydbcdtfIdbamaeclfydbcdtfIdbMamaecwfydbcdtfIdbMUdbaecxfheawclfhwaicufgimbkkakcifhoalc;ebfhHavc;qbfhOavheavyd:KehAavyd:OehCcbhzcbhwcbhXcehQinaehLcihkarawci2gKcdtfgeydbhsaeclfydbhdabaXcx2fgicwfaecwfydbgYBdbaiclfadBdbaiasBdbaxawfce86bbaOaYBdwaOadBdlaOasBdbaPawcdtfcbBdbdnazTmbcihkaLhiinaOakcdtfaiydbgeBdbakaeaY9haeas9haead9hGGfhkaiclfhiazcufgzmbkkaXcefhXcbhzinaCaAarazaKfcdtfydbcdtgifydbcdtfgYheaDaifgdydbgshidnasTmbdninaeydbawSmeaeclfheaicufgiTmdxbkkaeaYascdtfc98fydbBdbadadydbcufBdbkazcefgzci9hmbkdndnakTmbcuhwJbbbbh8Acbhdavyd:KehYavyd:OehKindndnaDaOadcdtfydbcdtgzfydbgembadcefhdxekadcs0hiamazfgsIdbhEasalcbadcefgdaiEcdtfIdbaHaecwaecw6EcdtfIdbMg3Udba3aE:th3aecdthiaKaYazfydbcdtfheinaPaeydbgzcdtfgsa3asIdbMgEUdbaEa8Aa8AaE9DgsEh8AazawasEhwaeclfheaic98fgimbkkadak9hmbkawcu9hmekaQaq9pmdindnaxaQfRbbmbaQhwxdkaqaQcefgQ9hmbxikkakczakcz6EhzaOheaLhOawcu9hmbkkaocdtavc:Seffc98fhedninaoTmeaeydbcbyd;u:kjjbH:bjjjbbaec98fheaocufhoxbkkavc:qdf8Kjjjjbk;IlevucuaicdtgvaicFFFFi0Egocbyd;q:kjjbHjjjjbbhralalyd9GgwcdtfarBdbalawcefBd9GabarBdbaocbyd;q:kjjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdlcuadcdtadcFFFFi0Ecbyd;q:kjjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdwabydbcbavz:xjjjb8Aadci9UhDdnadTmbabydbhoaehladhrinaoalydbcdtfgvavydbcefBdbalclfhlarcufgrmbkkdnaiTmbabydbhlabydlhrcbhvaihoinaravBdbarclfhralydbavfhvalclfhlaocufgombkkdnadci6mbabydlhrabydwhvcbhlinaecwfydbhoaeclfydbhdaraeydbcdtfgwawydbgwcefBdbavawcdtfalBdbaradcdtfgdadydbgdcefBdbavadcdtfalBdbaraocdtfgoaoydbgocefBdbavaocdtfalBdbaecxfheaDalcefgl9hmbkkdnaiTmbabydlheabydbhlinaeaeydbalydb9RBdbalclfhlaeclfheaicufgimbkkkQbabaeadaic;K1jjbz:ojjjbkQbabaeadaic;m:jjjbz:ojjjbk9DeeuabcFeaicdtz:xjjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk:Vvioud9:du8Jjjjjbc;Wa9Rgl8Kjjjjbcbhvalcxfcbc;Kbz:xjjjb8AalcuadcitgoadcFFFFe0Ecbyd;q:kjjbHjjjjbbgrBdxalceBd2araeadaicezNjjjbalcuaoadcjjjjoGEcbyd;q:kjjbHjjjjbbgwBdzadcdthednadTmbabhiinaiavBdbaiclfhiadavcefgv9hmbkkawaefhDalabBdwalawBdl9cbhqindnadTmbaq9cq9:hkarhvaDhiadheinaiav8Pibak1:NcFrG87ebavcwfhvaicdfhiaecufgembkkalclfaq:NceGcdtfydbhxalclfaq9ce98gq:NceGcdtfydbhmalc;Wbfcbcjaz:xjjjb8AaDhvadhidnadTmbinalc;Wbfav8VebcdtfgeaeydbcefBdbavcdfhvaicufgimbkkcbhvcbhiinalc;WbfavfgeydbhoaeaiBdbaoaifhiavclfgvcja9hmbkadhvdndnadTmbinalc;WbfaDamydbgicetf8VebcdtfgeaeydbgecefBdbaxaecdtfaiBdbamclfhmavcufgvmbkaq9cv9smdcbhvinabawydbcdtfavBdbawclfhwadavcefgv9hmbxdkkaq9cv9smekkclhvdninavc98Smealcxfavfydbcbyd;u:kjjbH:bjjjbbavc98fhvxbkkalc;Waf8Kjjjjbk:Jwliuo99iud9:cbhv8Jjjjjbca9Rgoczfcwfcbyd:8:kjjbBdbaocb8Pd:0:kjjb83izaocwfcbyd;i:kjjbBdbaocb8Pd;a:kjjb83ibaicd4hrdndnadmbJFFuFhwJFFuuhDJFFuuhqJFFuFhkJFFuuhxJFFuFhmxekarcdthPaehsincbhiinaoczfaifgzasaifIdbgwazIdbgDaDaw9EEUdbaoaifgzawazIdbgDaDaw9DEUdbaiclfgicx9hmbkasaPfhsavcefgvad9hmbkaoIdKhDaoIdwhwaoIdChqaoIdlhkaoIdzhxaoIdbhmkdnadTmbJbbbbJbFu9hJbbbbamax:tgmamJbbbb9DEgmakaq:tgkakam9DEgkawaD:tgwawak9DEgw:vawJbbbb9BEhwdnalmbarcdthoindndnaeclfIdbaq:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikai:S9cC:ghHdndnaeIdbax:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikaHai:S:ehHdndnaecwfIdbaD:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabaHai:T9cy:g:e83ibaeaofheabcwfhbadcufgdmbxdkkarcdthoindndnaeIdbax:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikai:SgH9ca:gaH9cz:g9cjjj;4s:d:eaH9cFe:d:e9cF:bj;4:pj;ar:d9c:bd9:9c:p;G:d;4j:E;ar:d9cH9:9c;d;H:W:y:m:g;d;Hb:d9cv9:9c;j:KM;j:KM;j:Kd:dhOdndnaeclfIdbaq:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikai:SgH9ca:gaH9cz:g9cjjj;4s:d:eaH9cFe:d:e9cF:bj;4:pj;ar:d9c:bd9:9c:p;G:d;4j:E;ar:d9cH9:9c;d;H:W:y:m:g;d;Hb:d9cq9:9cM;j:KM;j:KM;jl:daO:ehOdndnaecwfIdbaD:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabaOai:SgH9ca:gaH9cz:g9cjjj;4s:d:eaH9cFe:d:e9cF:bj;4:pj;ar:d9c:bd9:9c:p;G:d;4j:E;ar:d9cH9:9c;d;H:W:y:m:g;d;Hb:d9cC9:9c:KM;j:KM;j:KMD:d:e83ibaeaofheabcwfhbadcufgdmbkkk9teiucbcbyd;y:kjjbgeabcifc98GfgbBd;y:kjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;teeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk:3eedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdxaialBdwaialBdlaialBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd;y:kjjbgeabcrfc94GfgbBd;y:kjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd;y:kjjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd;y:kjjbfgdBd;y:kjjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akkk;Qddbcjwk;mdbbbbdbbblbbbwbbbbbbbebbbdbbblbbbwbbbbbbbbbbbbbbbb4:h9w9N94:P:gW:j9O:ye9Pbbbbbbebbbdbbbebbbdbbbbbbbdbbbbbbbebbbbbbb:l29hZ;69:9kZ;N;76Z;rg97Z;z;o9xZ8J;B85Z;:;u9yZ;b;k9HZ:2;Z9DZ9e:l9mZ59A8KZ:r;T3Z:A:zYZ79OHZ;j4::8::Y:D9V8:bbbb9s:49:Z8R:hBZ9M9M;M8:L;z;o8:;8:PG89q;x:J878R:hQ8::M:B;e87bbbbbbjZbbjZbbjZ:E;V;N8::Y:DsZ9i;H;68:xd;R8:;h0838:;W:NoZbbbb:WV9O8:uf888:9i;H;68:9c9G;L89;n;m9m89;D8Ko8:bbbbf:8tZ9m836ZS:2AZL;zPZZ818EZ9e:lxZ;U98F8:819E;68:FFuuFFuuFFuuFFuFFFuFFFuFbc;mqkzebbbebbbdbbb9G:vbb"),{}).then(function(i){(B=i.instance).exports.__wasm_call_ctors(),B.exports.meshopt_encodeVertexVersion(0),B.exports.meshopt_encodeIndexVersion(1)})})();var OC=function(){var B=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),A=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var g,I=WebAssembly.validate(B)?C("b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuixkbbebeeddddilve9Weeeviebeoweuec:q:6dkr;Neqo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949WbwY9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVJ9V29VVbDl79IV9Rbqq;Ctklbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk:183lYud97dur978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnalTmbcuhoaiRbbgrc;WeGc:Ge9hmbarcsGgwce0mbc9:hoalcufadcd4cbawEgDadfgrcKcaawEgqaraq0Egk6mbaicefhxavaialfgmar9Rgoad;8qbbcj;abad9Uc;WFbGcjdadca0EhPdndndnadTmbaoadfhscbhzinaeaz9nmdamax9RaD6miabazad2fhHaxaDfhOaPaeaz9RazaPfae6EgAcsfgocl4cifcd4hCavcj;cbfaoc9WGgXcetfhQavcj;cbfaXci2fhLavcj;cbfaXfhKcbhYaoc;ab6h8AincbhodnawTmbaxaYcd4fRbbhokaocFeGhEcbh3avcj;cbfh5indndndndnaEa3cet4ciGgoc9:fPdebdkamaO9RaX6mwavcj;cbfa3aX2faOaX;8qbbaOaAfhOxdkavcj;cbfa3aX2fcbaX;8kbxekamaO9RaC6moaoclVcbawEhraOaCfhocbhidna8Ambamao9Rc;Gb6mbcbhlina5alfhidndndndndndnaOalco4fRbbgqciGarfPDbedibledibkaipxbbbbbbbbbbbbbbbbpklbxlkaiaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaoclffahc:q:yjjbfRbbfhoxikaiaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaocwffahc:q:yjjbfRbbfhoxdkaiaopbbbpklbaoczfhoxekaiaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaaaocdffahc:q:yjjbfRbbfhokdndndndndndnaqcd4ciGarfPDbedibledibkaiczfpxbbbbbbbbbbbbbbbbpklbxlkaiczfaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaoclffahc:q:yjjbfRbbfhoxikaiczfaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaocwffahc:q:yjjbfRbbfhoxdkaiczfaopbbbpklbaoczfhoxekaiczfaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaaaocdffahc:q:yjjbfRbbfhokdndndndndndnaqcl4ciGarfPDbedibledibkaicafpxbbbbbbbbbbbbbbbbpklbxlkaicafaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaoclffahc:q:yjjbfRbbfhoxikaicafaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaocwffahc:q:yjjbfRbbfhoxdkaicafaopbbbpklbaoczfhoxekaicafaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaaaocdffahc:q:yjjbfRbbfhokdndndndndndnaqco4arfPDbedibledibkaic8Wfpxbbbbbbbbbbbbbbbbpklbxlkaic8Wfaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngicitc:q1jjbfpbibaic:q:yjjbfRbbgipsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Ngqcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaiaoclffaqc:q:yjjbfRbbfhoxikaic8Wfaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngicitc:q1jjbfpbibaic:q:yjjbfRbbgipsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Ngqcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaiaocwffaqc:q:yjjbfRbbfhoxdkaic8Wfaopbbbpklbaoczfhoxekaic8WfaopbbdaoRbbgicitc:q1jjbfpbibaic:q:yjjbfRbbgipsaoRbegqcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaiaocdffaqc:q:yjjbfRbbfhokalc;abfhialcjefaX0meaihlamao9Rc;Fb0mbkkdnaiaX9pmbaici4hlinamao9RcK6mwa5aifhqdndndndndndnaOaico4fRbbalcoG4ciGarfPDbedibledibkaqpxbbbbbbbbbbbbbbbbpkbbxlkaqaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spkbbaaaoclffahc:q:yjjbfRbbfhoxikaqaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spkbbaaaocwffahc:q:yjjbfRbbfhoxdkaqaopbbbpkbbaoczfhoxekaqaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpkbbaaaocdffahc:q:yjjbfRbbfhokalcdfhlaiczfgiaX6mbkkaohOaoTmoka5aXfh5a3cefg3cl9hmbkdndndndnawTmbasaYcd4fRbbglciGPlbedwbkaXTmdavcjdfaYfhlavaYfpbdbhgcbhoinalavcj;cbfaofpblbg8JaKaofpblbg8KpmbzeHdOiAlCvXoQrLg8LaQaofpblbg8MaLaofpblbg8NpmbzeHdOiAlCvXoQrLgypmbezHdiOAlvCXorQLg8Ecep9Ta8Epxeeeeeeeeeeeeeeeeg8Fp9op9Hp9rg8Eagp9Uggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp9Uggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp9Uggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9Abbbaladfglaga8LaypmwDKYqk8AExm35Ps8E8Fg8Ecep9Ta8Ea8Fp9op9Hp9rg8Ep9Uggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp9Uggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp9Uggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9Abbbaladfglaga8Ja8KpmwKDYq8AkEx3m5P8Es8Fg8Ja8Ma8NpmwKDYq8AkEx3m5P8Es8Fg8KpmbezHdiOAlvCXorQLg8Ecep9Ta8Ea8Fp9op9Hp9rg8Ep9Uggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp9Uggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp9Uggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9Abbbaladfglaga8Ja8KpmwDKYqk8AExm35Ps8E8Fg8Ecep9Ta8Ea8Fp9op9Hp9rg8Ep9Ug8Fp9Abbbaladfgla8Fa8Ea8Epmlvorlvorlvorlvorp9Ug8Fp9Abbbaladfgla8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9Ug8Fp9Abbbaladfgla8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9AbbbaladfhlaoczfgoaX6mbxikkaXTmeavcjdfaYfhlavaYfpbdbhgcbhoinalavcj;cbfaofpblbg8JaKaofpblbg8KpmbzeHdOiAlCvXoQrLg8LaQaofpblbg8MaLaofpblbg8NpmbzeHdOiAlCvXoQrLgypmbezHdiOAlvCXorQLg8Ecep:nea8Epxebebebebebebebebg8Fp9op:bep9rg8Eagp:oeggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp:oeggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp:oeggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9Abbbaladfglaga8LaypmwDKYqk8AExm35Ps8E8Fg8Ecep:nea8Ea8Fp9op:bep9rg8Ep:oeggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp:oeggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp:oeggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9Abbbaladfglaga8Ja8KpmwKDYq8AkEx3m5P8Es8Fg8Ja8Ma8NpmwKDYq8AkEx3m5P8Es8Fg8KpmbezHdiOAlvCXorQLg8Ecep:nea8Ea8Fp9op:bep9rg8Ep:oeggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp:oeggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp:oeggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9Abbbaladfglaga8Ja8KpmwDKYqk8AExm35Ps8E8Fg8Ecep:nea8Ea8Fp9op:bep9rg8Ep:oeg8Fp9Abbbaladfgla8Fa8Ea8Epmlvorlvorlvorlvorp:oeg8Fp9Abbbaladfgla8Fa8Ea8EpmwDqkwDqkwDqkwDqkp:oeg8Fp9Abbbaladfgla8Fa8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9AbbbaladfhlaoczfgoaX6mbxdkkaXTmbcbhocbalcl4gl9Rc8FGhiavcjdfaYfhravaYfpbdbh8Finaravcj;cbfaofpblbggaKaofpblbg8JpmbzeHdOiAlCvXoQrLg8KaQaofpblbg8LaLaofpblbg8MpmbzeHdOiAlCvXoQrLg8NpmbezHdiOAlvCXorQLg8Eaip:Rea8Ealp:Sep9qg8Ea8Fp9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9Abbbaradfgra8Fa8Ka8NpmwDKYqk8AExm35Ps8E8Fg8Eaip:Rea8Ealp:Sep9qg8Ep9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9Abbbaradfgra8Faga8JpmwKDYq8AkEx3m5P8Es8Fgga8La8MpmwKDYq8AkEx3m5P8Es8Fg8JpmbezHdiOAlvCXorQLg8Eaip:Rea8Ealp:Sep9qg8Ep9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9Abbbaradfgra8Faga8JpmwDKYqk8AExm35Ps8E8Fg8Eaip:Rea8Ealp:Sep9qg8Ep9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9AbbbaradfhraoczfgoaX6mbkkaYclfgYad6mbkaHavcjdfaAad2;8qbbavavcjdfaAcufad2fad;8qbbaAazfhzc9:hoaOhxaOmbxlkkaeTmbaDalfhrcbhocuhlinaralaD9RglfaD6mdaPaeao9RaoaPfae6Eaofgoae6mbkaial9Rhxkcbc99amax9RakSEhoxekc9:hokavcj;kbf8Kjjjjbaokwbz:bjjjbk:TseHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhldnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhoindnalaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfaoaDcu7gPcl4fcsGcitfgsydlhzasydbhHdndnaDcsGgsak9pmbavaiaPfcsGcdtfydbaxasEhDaxasTgOfhxxekdndnascsSmbcehOasc987asamffcefhDxekalcefhDal8SbbgscFeGhPdndnascu9mmbaDhlxekalcvfhlaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhlkcehOaPce4cbaPceG9R7amfhDkaDhmkavc;abfaocitfgsaDBdbasazBdlavaicdtfaDBdbavc;abfaocefcsGcitfgsaHBdbasaDBdlaocdfhoaOaifhidnadcd9hmbabarcetfgsaH87ebasclfaD87ebascdfaz87ebxdkabarcdtfgsaHBdbascwfaDBdbasclfazBdbxekdnaDcpe0mbaxcefgOavaiaqaDcsGfRbbgscl49RcsGcdtfydbascz6gPEhDavaias9RcsGcdtfydbaOaPfgzascsGgOEhsaOThOdndnadcd9hmbabarcetfgHax87ebaHclfas87ebaHcdfaD87ebxekabarcdtfgHaxBdbaHcwfasBdbaHclfaDBdbkavaicdtfaxBdbavc;abfaocitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfaocefcsGcitfgHasBdbaHaDBdlavaiaPfgicsGcdtfasBdbavc;abfaocdfcsGcitfgDaxBdbaDasBdlaocifhoaiaOfhiazaOfhxxekaxcbalRbbgHEgAaDc;:eSgDfhzaHcsGhCaHcl4hXdndnaHcs0mbazcefhOxekazhOavaiaX9RcsGcdtfydbhzkdndnaCmbaOcefhxxekaOhxavaiaH9RcsGcdtfydbhOkdndnaDTmbalcefhDxekalcdfhDal8SbegPcFeGhsdnaPcu9kmbalcofhAascFbGhscrhldninaD8SbbgPcFbGaltasVhsaPcu9kmeaDcefhDalcrfglc8J9hmbkaAhDxekaDcefhDkasce4cbasceG9R7amfgmhAkdndnaXcsSmbaDhsxekaDcefhsaD8SbbglcFeGhPdnalcu9kmbaDcvfhzaPcFbGhPcrhldninas8SbbgDcFbGaltaPVhPaDcu9kmeascefhsalcrfglc8J9hmbkazhsxekascefhskaPce4cbaPceG9R7amfgmhzkdndnaCcsSmbashlxekascefhlas8SbbgDcFeGhPdnaDcu9kmbascvfhOaPcFbGhPcrhDdninal8SbbgscFbGaDtaPVhPascu9kmealcefhlaDcrfgDc8J9hmbkaOhlxekalcefhlkaPce4cbaPceG9R7amfgmhOkdndnadcd9hmbabarcetfgDaA87ebaDclfaO87ebaDcdfaz87ebxekabarcdtfgDaABdbaDcwfaOBdbaDclfazBdbkavc;abfaocitfgDazBdbaDaABdlavaicdtfaABdbavc;abfaocefcsGcitfgDaOBdbaDazBdlavaicefgicsGcdtfazBdbavc;abfaocdfcsGcitfgDaABdbaDaOBdlavaiaHcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhiaocifhokawcefhwaocsGhoaicsGhiarcifgrae6mbkkcbc99alaqSEhokavc;aef8Kjjjjbaok:clevu8Jjjjjbcz9Rhvdnaecvfal9nmbc9:skdnaiRbbc;:eGc;qeSmbcuskav9cb83iwaicefhoaialfc98fhrdnaeTmbdnadcdSmbcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcdtfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgiBdbalaiBdbawcefgwae9hmbxdkkcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcetfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgi87ebalaiBdbawcefgwae9hmbkkcbc99aoarSEk:2Pliur97eue978Jjjjjbc8W9Rhiaec98Ghldndnadcl9hmbdnalTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalaeSmeaipxbbbbbbbbbbbbbbbbgqpklbaiabalcdtfgdaeciGglcdtgv;8qbbdnalTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDaqp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkadaiav;8qbbskaipxFubbFubbFubbFubbgxpklbdnalTmbcbhvabhdinadczfgmampbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraipblbaDaopmlvorxmPsCXQL358E8Fp9op;6eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgPp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;MeawaqawaPp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oaoarpmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgval6mbkkalaeSmbaiczfpxbbbbbbbbbbbbbbbbgopklbaiaopklbaiabalcitfgdaeciGglcitgv;8qbbaiaxpkladnalTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraipblaaDaopmlvorxmPsCXQL358E8Fp9op;6eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgPp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;MeawaqawaPp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oaoarpmbezHdiOAlvCXorQLp9qpklbkadaiav;8qbbkk;Iwllue97euo978Jjjjjbca9Rhidnaec98GglTmbcbhvabhoinaocKfpxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81ZaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkpxibbbibbbibbbibbbp9qp;6ep;NegxaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meaxarczp:Sep;6ep;Megmamp;Meaxaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgxp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgPp9oamaxp;Mearp;Keczp:Rep9qgmaDaxp;Mearp;KeaPp9oaqaxp;Mearp;Keczp:Rep9qgrpmwDKYqk8AExm35Ps8E8FgDp5eakclp:RegxpEi:T:j83ibawaDp5baxpEd:T:j83ibaocwfamarpmbezHdiOAlvCXorQLgrp5eaxpEe:T:j83ibaoarp5baxpEb:T:j83ibaocafhoavclfgval6mbkkdnalaeSmbaiczfpxbbbbbbbbbbbbbbbbgxpklbaiaxpklbaiabalcitfgoaeciGgvcitgw;8qbbdnavTmbaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81ZaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkpxibbbibbbibbbibbbp9qp;6ep;NegxaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meaxarczp:Sep;6ep;Megmamp;Meaxaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgxp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgPp9oamaxp;Mearp;Keczp:Rep9qgmaDaxp;Mearp;KeaPp9oaqaxp;Mearp;Keczp:Rep9qgrpmwDKYqk8AExm35Ps8E8FgDp5eakclp:RegxpEi:T:j83iKaiaDp5baxpEd:T:j83izaiamarpmbezHdiOAlvCXorQLgrp5eaxpEe:T:j83iwaiarp5baxpEb:T:j83ibkaoaiaw;8qbbkk;uddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbheabhdinadadpbbbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepkbbadczfhdaeclfgeav6mbkkdnavalSmbaic8WfpxbbbbbbbbbbbbbbbbgopklbaicafaopklbaiczfaopklbaiaopklbaiabavcdtfgdalciGgecdtgv;8qbbdnaeTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepklbkadaiav;8qbbkk:CPvdue97euw97eu8Jjjjjbc8W9Rhiaec98Ghldndnadcl9hmbaipxbbbbbbbbbbbbbbbbgvpklbdnalTmbcbhoabhdinadpbbbhradpxbbuJbbuJbbuJbbuJaipblbarcKp:Tep9qgwcep:Seawp9qgDcdp:SeaDp9qgDclp:SeaDp9qgqp;6ep;NegDarcwp:RecKp:SegkarpxFbbbFbbbFbbbFbbbgxp9ogmp:Uep;6ep;Mepxbbn0bbn0bbn0bbn0gPp;Kecwp:RepxbFbbbFbbbFbbbFbbp9oaDamakp:Xearczp:RecKp:Segrp:Uep;6ep;MeaPp;Keaxp9op9qaDamakarp:Uep:Xep;6ep;MeaPp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qaDaqawcep:Rep9oawpxebbbebbbebbbebbbp9op9qp;6ep;MeaPp;KecKp:Rep9qpkbbadczfhdaoclfgoal6mbkkalaeSmeaiavpklaaicafabalcdtfgdaeciGglcdtgo;8qbbaiavpklbdnalTmbaipblahraipxbbuJbbuJbbuJbbuJaipblbarcKp:Tep9qgwcep:Seawp9qgDcdp:SeaDp9qgDclp:SeaDp9qgqp;6ep;NegDarcwp:RecKp:SegkarpxFbbbFbbbFbbbFbbbgxp9ogmp:Uep;6ep;Mepxbbn0bbn0bbn0bbn0gPp;Kecwp:RepxbFbbbFbbbFbbbFbbp9oaDamakp:Xearczp:RecKp:Segrp:Uep;6ep;MeaPp;Keaxp9op9qaDamakarp:Uep:Xep;6ep;MeaPp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qaDaqawcep:Rep9oawpxebbbebbbebbbebbbp9op9qp;6ep;MeaPp;KecKp:Rep9qpklakadaicafao;8qbbskaipxbbbbbbbbbbbbbbbbgvpklbdnalTmbcbhoabhdinadczfgspxbFu9hbFu9hbFu9hbFu9hadpbbbgDaspbbbgPpmlvorxmPsCXQL358E8Fgmczp:Teaipblbp9qgrcep:Searp9qgwcdp:Seawp9qgwclp:Seawp9qgwcwp:Seawp9qgqp;6ep;NegwaDaPpmbediwDqkzHOAKY8AEgDpxFFbbFFbbFFbbFFbbgPp9ogkaDczp:Segxp:Ueamczp:Reczp:Segmp:Xep;6ep;Mepxbbn0bbn0bbn0bbn0gDp;KeaPp9oawakaxamp:Uep:Xep;6ep;MeaDp;Keczp:Rep9qgxawaqarcep:Rep9oarpxebbbebbbebbbebbbp9op9qp;6ep;MeaDp;Keczp:Reawamakp:Uep;6ep;MeaDp;KeaPp9op9qgrpmwDKYqk8AExm35Ps8E8FpkbbadaxarpmbezHdiOAlvCXorQLpkbbadcafhdaoclfgoal6mbkkalaeSmbaiczfpxbbbbbbbbbbbbbbbbgrpklbaiarpklbaiabalcitfgdaeciGglcitgo;8qbbaiavpkladnalTmbaipxbFu9hbFu9hbFu9hbFu9haipblbgDaipblzgPpmlvorxmPsCXQL358E8Fgmczp:Teaipblap9qgrcep:Searp9qgwcdp:Seawp9qgwclp:Seawp9qgwcwp:Seawp9qgqp;6ep;NegwaDaPpmbediwDqkzHOAKY8AEgDpxFFbbFFbbFFbbFFbbgPp9ogkaDczp:Segxp:Ueamczp:Reczp:Segmp:Xep;6ep;Mepxbbn0bbn0bbn0bbn0gDp;KeaPp9oawakaxamp:Uep:Xep;6ep;MeaDp;Keczp:Rep9qgxawaqarcep:Rep9oarpxebbbebbbebbbebbbp9op9qp;6ep;MeaDp;Keczp:Reawamakp:Uep;6ep;MeaDp;KeaPp9op9qgrpmwDKYqk8AExm35Ps8E8FpklzaiaxarpmbezHdiOAlvCXorQLpklbkadaiao;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz:Dbb"):C("b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuixkbeeeddddillviebeoweuec:W:Odkr;Neqo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949WboY9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVJ9V29VVbrl79IV9Rbwq;BZkdbk;jYi5ud9:du8Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnalTmbcuhoaiRbbgrc;WeGc:Ge9hmbarcsGgwce0mbc9:hoalcufadcd4cbawEgDadfgrcKcaawEgqaraq0Egk6mbaicefhxcj;abad9Uc;WFbGcjdadca0EhmaialfgPar9Rgoadfhsavaoadz:jjjjbgzceVhHcbhOdndninaeaO9nmeaPax9RaD6mdamaeaO9RaOamfgoae6EgAcsfglc9WGhCabaOad2fhXaAcethQaxaDfhiaOaeaoaeao6E9RhLalcl4cifcd4hKazcj;cbfaAfhYcbh8AazcjdfhEaHh3incbhodnawTmbaxa8Acd4fRbbhokaocFeGh5cbh8Eazcj;cbfhqinaih8Fdndndndna5a8Ecet4ciGgoc9:fPdebdkaPa8F9RaA6mrazcj;cbfa8EaA2fa8FaAz:jjjjb8Aa8FaAfhixdkazcj;cbfa8EaA2fcbaAz:kjjjb8Aa8FhixekaPa8F9RaK6mva8FaKfhidnaCTmbaPai9RcK6mbaocdtc:q1jjbfcj1jjbawEhaczhrcbhlinargoc9Wfghaqfhrdndndndndndnaaa8Fahco4fRbbalcoG4ciGcdtfydbPDbedvivvvlvkar9cb83bbarcwf9cb83bbxlkarcbaiRbdai8Xbb9c:c:qj:bw9:9c:q;c1:I1e:d9c:b:c:e1z9:gg9cjjjjjz:dg8J9qE86bbaqaofgrcGfag9c8F1:NghcKtc8F91aicdfa8J9c8N1:Nfg8KRbbG86bbarcVfcba8KahcjeGcr4fghRbbag9cjjjjjl:dg8J9qE86bbarc7fcbaha8J9c8L1:NfghRbbag9cjjjjjd:dg8J9qE86bbarctfcbaha8J9c8K1:NfghRbbag9cjjjjje:dg8J9qE86bbarc91fcbaha8J9c8J1:NfghRbbag9cjjjj;ab:dg8J9qE86bbarc4fcbaha8J9cg1:NfghRbbag9cjjjja:dg8J9qE86bbarc93fcbaha8J9ch1:NfghRbbag9cjjjjz:dgg9qE86bbarc94fcbahag9ca1:NfghRbbai8Xbe9c:c:qj:bw9:9c:q;c1:I1e:d9c:b:c:e1z9:gg9cjjjjjz:dg8J9qE86bbarc95fag9c8F1:NgicKtc8F91aha8J9c8N1:NfghRbbG86bbarc96fcbahaicjeGcr4fgiRbbag9cjjjjjl:dg8J9qE86bbarc97fcbaia8J9c8L1:NfgiRbbag9cjjjjjd:dg8J9qE86bbarc98fcbaia8J9c8K1:NfgiRbbag9cjjjjje:dg8J9qE86bbarc99fcbaia8J9c8J1:NfgiRbbag9cjjjj;ab:dg8J9qE86bbarc9:fcbaia8J9cg1:NfgiRbbag9cjjjja:dg8J9qE86bbarcufcbaia8J9ch1:NfgiRbbag9cjjjjz:dgg9qE86bbaiag9ca1:NfhixikaraiRblaiRbbghco4g8Ka8KciSg8KE86bbaqaofgrcGfaiclfa8Kfg8KRbbahcl4ciGg8La8LciSg8LE86bbarcVfa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc7fa8Ka8Lfg8KRbbahciGghahciSghE86bbarctfa8Kahfg8KRbbaiRbeghco4g8La8LciSg8LE86bbarc91fa8Ka8Lfg8KRbbahcl4ciGg8La8LciSg8LE86bbarc4fa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc93fa8Ka8Lfg8KRbbahciGghahciSghE86bbarc94fa8Kahfg8KRbbaiRbdghco4g8La8LciSg8LE86bbarc95fa8Ka8Lfg8KRbbahcl4ciGg8La8LciSg8LE86bbarc96fa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc97fa8Ka8Lfg8KRbbahciGghahciSghE86bbarc98fa8KahfghRbbaiRbigico4g8Ka8KciSg8KE86bbarc99faha8KfghRbbaicl4ciGg8Ka8KciSg8KE86bbarc9:faha8KfghRbbaicd4ciGg8Ka8KciSg8KE86bbarcufaha8KfgrRbbaiciGgiaiciSgiE86bbaraifhixdkaraiRbwaiRbbghcl4g8Ka8KcsSg8KE86bbaqaofgrcGfaicwfa8Kfg8KRbbahcsGghahcsSghE86bbarcVfa8KahfghRbbaiRbeg8Kcl4g8La8LcsSg8LE86bbarc7faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarctfaha8KfghRbbaiRbdg8Kcl4g8La8LcsSg8LE86bbarc91faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc4faha8KfghRbbaiRbig8Kcl4g8La8LcsSg8LE86bbarc93faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc94faha8KfghRbbaiRblg8Kcl4g8La8LcsSg8LE86bbarc95faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc96faha8KfghRbbaiRbvg8Kcl4g8La8LcsSg8LE86bbarc97faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc98faha8KfghRbbaiRbog8Kcl4g8La8LcsSg8LE86bbarc99faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc9:faha8KfghRbbaiRbrgicl4g8Ka8KcsSg8KE86bbarcufaha8KfgrRbbaicsGgiaicsSgiE86bbaraifhixekarai8Pbb83bbarcwfaicwf8Pbb83bbaiczfhikdnaoaC9pmbalcdfhlaoczfhraPai9RcL0mekkaoaC6moaimexokaCmva8FTmvkaqaAfhqa8Ecefg8Ecl9hmbkdndndndnawTmbasa8Acd4fRbbgociGPlbedrbkaATmdaza8Afh8Fazcj;cbfhhcbh8EaEhaina8FRbbhraahocbhlinaoahalfRbbgqce4cbaqceG9R7arfgr86bbaoadfhoaAalcefgl9hmbkaacefhaa8Fcefh8FahaAfhha8Ecefg8Ecl9hmbxikkaATmeaza8Afhaazcj;cbfhhcbhoceh8EaYh8FinaEaofhlaa8Vbbhrcbhoinala8FaofRbbcwtahaofRbbgqVc;:FiGce4cbaqceG9R7arfgr87bbaladfhlaLaocefgofmbka8FaQfh8FcdhoaacdfhaahaQfhha8EceGhlcbh8EalmbxdkkaATmbcbaocl49Rh8Eaza8AfRbbhqcwhoa3hlinalRbbaotaqVhqalcefhlaocwfgoca9hmbkcbhhaEh8FaYhainazcj;cbfahfRbbhrcwhoaahlinalRbbaotarVhralaAfhlaocwfgoca9hmbkara8E93aq7hqcbhoa8Fhlinalaqao486bbalcefhlaocwfgoca9hmbka8Fadfh8FaacefhaahcefghaA9hmbkkaEclfhEa3clfh3a8Aclfg8Aad6mbkaXazcjdfaAad2z:jjjjb8AazazcjdfaAcufad2fadz:jjjjb8AaAaOfhOaihxaimbkc9:hoxdkcbc99aPax9RakSEhoxekc9:hokavcj;kbf8Kjjjjbaok:XseHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:kjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhldnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhoindnalaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfaoaDcu7gPcl4fcsGcitfgsydlhzasydbhHdndnaDcsGgsak9pmbavaiaPfcsGcdtfydbaxasEhDaxasTgOfhxxekdndnascsSmbcehOasc987asamffcefhDxekalcefhDal8SbbgscFeGhPdndnascu9mmbaDhlxekalcvfhlaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhlkcehOaPce4cbaPceG9R7amfhDkaDhmkavc;abfaocitfgsaDBdbasazBdlavaicdtfaDBdbavc;abfaocefcsGcitfgsaHBdbasaDBdlaocdfhoaOaifhidnadcd9hmbabarcetfgsaH87ebasclfaD87ebascdfaz87ebxdkabarcdtfgsaHBdbascwfaDBdbasclfazBdbxekdnaDcpe0mbaxcefgOavaiaqaDcsGfRbbgscl49RcsGcdtfydbascz6gPEhDavaias9RcsGcdtfydbaOaPfgzascsGgOEhsaOThOdndnadcd9hmbabarcetfgHax87ebaHclfas87ebaHcdfaD87ebxekabarcdtfgHaxBdbaHcwfasBdbaHclfaDBdbkavaicdtfaxBdbavc;abfaocitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfaocefcsGcitfgHasBdbaHaDBdlavaiaPfgicsGcdtfasBdbavc;abfaocdfcsGcitfgDaxBdbaDasBdlaocifhoaiaOfhiazaOfhxxekaxcbalRbbgHEgAaDc;:eSgDfhzaHcsGhCaHcl4hXdndnaHcs0mbazcefhOxekazhOavaiaX9RcsGcdtfydbhzkdndnaCmbaOcefhxxekaOhxavaiaH9RcsGcdtfydbhOkdndnaDTmbalcefhDxekalcdfhDal8SbegPcFeGhsdnaPcu9kmbalcofhAascFbGhscrhldninaD8SbbgPcFbGaltasVhsaPcu9kmeaDcefhDalcrfglc8J9hmbkaAhDxekaDcefhDkasce4cbasceG9R7amfgmhAkdndnaXcsSmbaDhsxekaDcefhsaD8SbbglcFeGhPdnalcu9kmbaDcvfhzaPcFbGhPcrhldninas8SbbgDcFbGaltaPVhPaDcu9kmeascefhsalcrfglc8J9hmbkazhsxekascefhskaPce4cbaPceG9R7amfgmhzkdndnaCcsSmbashlxekascefhlas8SbbgDcFeGhPdnaDcu9kmbascvfhOaPcFbGhPcrhDdninal8SbbgscFbGaDtaPVhPascu9kmealcefhlaDcrfgDc8J9hmbkaOhlxekalcefhlkaPce4cbaPceG9R7amfgmhOkdndnadcd9hmbabarcetfgDaA87ebaDclfaO87ebaDcdfaz87ebxekabarcdtfgDaABdbaDcwfaOBdbaDclfazBdbkavc;abfaocitfgDazBdbaDaABdlavaicdtfaABdbavc;abfaocefcsGcitfgDaOBdbaDazBdlavaicefgicsGcdtfazBdbavc;abfaocdfcsGcitfgDaABdbaDaOBdlavaiaHcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhiaocifhokawcefhwaocsGhoaicsGhiarcifgrae6mbkkcbc99alaqSEhokavc;aef8Kjjjjbaok:clevu8Jjjjjbcz9Rhvdnaecvfal9nmbc9:skdnaiRbbc;:eGc;qeSmbcuskav9cb83iwaicefhoaialfc98fhrdnaeTmbdnadcdSmbcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcdtfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgiBdbalaiBdbawcefgwae9hmbxdkkcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcetfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgi87ebalaiBdbawcefgwae9hmbkkcbc99aoarSEk:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;oiliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabaiavcefciGfcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:OhDxekcjjjj94hDkabaiavciGfgkcd7cetfaD87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:OhDxekcjjjj94hDkabaiavcufciGfcetfaD87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohvxekcjjjj94hvkabakcetfav87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2gdTmbinababydbgecwtcw91:Yaece91cjjj98Gcjjj;8if::NUdbabclfhbadcufgdmbkkk:Tvirud99eudndnadcl9hmbaeTmeindndnabRbbgiabcefgl8Sbbgvabcdfgo8Sbbgrf9R:YJbbuJabcifgwRbbgdce4adVgDcd4aDVgDcl4aDVgD:Z:vgqNJbbbZMgk:lJbbb9p9DTmbak:Ohxxekcjjjj94hxkaoax86bbdndnaraif:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohoxekcjjjj94hokalao86bbdndnavaifar9R:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabai86bbdndnaDadcetGadceGV:ZaqNJbbbZMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkawad86bbabclfhbaecufgembxdkkaeTmbindndnab8Vebgiabcdfgl8Uebgvabclfgo8Uebgrf9R:YJbFu9habcofgw8Vebgdce4adVgDcd4aDVgDcl4aDVgDcw4aDVgD:Z:vgqNJbbbZMgk:lJbbb9p9DTmbak:Ohxxekcjjjj94hxkaoax87ebdndnaraif:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohoxekcjjjj94hokalao87ebdndnavaifar9R:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabai87ebdndnaDadcetGadceGV:ZaqNJbbbZMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkawad87ebabcwfhbaecufgembkkk9teiucbcbyd:K1jjbgeabcifc98GfgbBd:K1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;teeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk:3eedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdxaialBdwaialBdlaialBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkk81dbcjwk8Kbbbbdbbblbbbwbbbbbbbebbbdbbblbbbwbbbbc:Kwkl8WNbb"),Q=WebAssembly.instantiate(I,{}).then(function(n){(g=n.instance).exports.__wasm_call_ctors()});function C(n){for(var r=new Uint8Array(n.length),c=0;c<n.length;++c){var D=n.charCodeAt(c);r[c]=D>96?D-97:D>64?D-39:D+4}var b=0;for(c=0;c<n.length;++c)r[b++]=r[c]<60?A[r[c]]:64*(r[c]-60)+r[++c];return r.buffer.slice(0,b)}function E(n,r,c,D,b,h,w){var f=n.exports.sbrk,p=D+3&-4,R=f(p*b),m=f(h.length),G=new Uint8Array(n.exports.memory.buffer);G.set(h,m);var k=r(R,D,b,m,h.length);if(k==0&&w&&w(R,p,b),c.set(G.subarray(R,R+D*b)),f(R-f(0)),k!=0)throw new Error("Malformed buffer data: "+k)}var a={NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp",COLOR:"meshopt_decodeFilterColor"},i={ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"},t=[],e=0;function o(n){var r={object:new Worker(n),pending:0,requests:{}};return r.object.onmessage=function(c){var D=c.data;r.pending-=D.count,r.requests[D.id][D.action](D.value),delete r.requests[D.id]},r}function s(n){var r=n.data;if(!r.id)return self.close();self.ready.then(function(c){try{var D=new Uint8Array(r.count*r.size);E(c,c.exports[r.mode],D,r.count,r.size,r.source,c.exports[r.filter]),self.postMessage({id:r.id,count:r.count,action:"resolve",value:D},[D.buffer])}catch(b){self.postMessage({id:r.id,count:r.count,action:"reject",value:b})}})}return{ready:Q,supported:!0,useWorkers:function(n){(function(r){for(var c="self.ready = WebAssembly.instantiate(new Uint8Array(["+new Uint8Array(I)+"]), {}).then(function(result) { result.instance.exports.__wasm_call_ctors(); return result.instance; });self.onmessage = "+s.name+";"+E.toString()+s.toString(),D=new Blob([c],{type:"text/javascript"}),b=URL.createObjectURL(D),h=t.length;h<r;++h)t[h]=o(b);for(h=r;h<t.length;++h)t[h].object.postMessage({});t.length=r,URL.revokeObjectURL(b)})(n)},decodeVertexBuffer:function(n,r,c,D,b){E(g,g.exports.meshopt_decodeVertexBuffer,n,r,c,D,g.exports[a[b]])},decodeIndexBuffer:function(n,r,c,D){E(g,g.exports.meshopt_decodeIndexBuffer,n,r,c,D)},decodeIndexSequence:function(n,r,c,D){E(g,g.exports.meshopt_decodeIndexSequence,n,r,c,D)},decodeGltfBuffer:function(n,r,c,D,b,h){E(g,g.exports[i[b]],n,r,c,D,g.exports[a[h]])},decodeGltfBufferAsync:function(n,r,c,D,b){return t.length>0?function(h,w,f,p,R){for(var m=t[0],G=1;G<t.length;++G)t[G].pending<m.pending&&(m=t[G]);return new Promise(function(k,U){var S=new Uint8Array(f),q=++e;m.pending+=h,m.requests[q]={resolve:k,reject:U},m.object.postMessage({id:q,count:h,size:w,source:S,mode:p,filter:R},[S.buffer])})}(n,r,c,i[D],a[b]):Q.then(function(){var h=new Uint8Array(n*r);return E(g,g.exports[i[D]],h,n,r,c,g.exports[a[b]]),h})}}}();(function(){var B,A=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var g=WebAssembly.instantiate(function(a){for(var i=new Uint8Array(a.length),t=0;t<a.length;++t){var e=a.charCodeAt(t);i[t]=e>96?e-97:e>64?e-39:e+4}var o=0;for(t=0;t<a.length;++t)i[o++]=i[t]<60?A[i[t]]:64*(i[t]-60)+i[++t];return i.buffer.slice(0,o)}("b9H79Tebbbe:Gez9Geueu9Geub9Gbb9Gsuuuuuuuuuuuu99uueu9Gvuuuuub9Gruuuuuuub9Gouuuuuue999Gvuuuuueu9Gquuuuuuu99uueu9GPuuuuuuuuuuu99uueu9Gquuuuuuuu99ueu9Gruuuuuu99eu9Gwuuuuuu99ueu9Giuuue999Gluuuueu9GiuuueuiXCdilvorlwiDqkxmPbssbelve9Weiiviebeoweuec:G:Pdkr;7eko9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bbz9TW79O9V9Wt9F79P9T9W29P9M95br8E9TW79O9V9Wt9F79P9T9W29P9M959x9Pt9OcttV9P9I91tW7bw8A9TW79O9V9Wt9F79P9T9W29P9M959x9Pt9O9v9W9K9HtWbDQ9TW79O9V9Wt9F79P9T9W29P9M959t29V9W9W95bqX9TW79O9V9Wt9F79P9T9W29P9M959qV919UWbkQ9TW79O9V9Wt9F79P9T9W29P9M959q9V9P9Ut7bxX9TW79O9V9Wt9F79P9T9W29P9M959t9J9H2Wbma9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9WbPl79IV9RbsDwebcekdOAq:d;OeCdbk:J1eo3ue99euE99Cue9:8Jjjjjbcj;sb9Rgs8Kjjjjbcbhzasc:Cefcbc;Kbz:rjjjb8AdnabaeSmbabaeadcdtz:qjjjb8AkdnamcdGTmbalcrfci4gHcbyd1:jjjbHjjjjbbheasc:Cefasyd;8egOcdtfaeBdbasaOcefBd;8eaecbaHz:rjjjbhAcbhlcbhednadTmbcbhlabheadhHinaAaeydbgOci4fgCaCRbbgCceaOcrGgOtV86bbaCcu7aO4ceGalfhlaeclfheaHcufgHmbkcualcdtalcFFFFi0Ehekaecbyd1:jjjbHjjjjbbhzasc:Cefasyd;8egecdtfazBdbasaecefBd;8ealcd4alfhOcehHinaHgecethHaeaO6mbkcbhXcuaecdtgOaecFFFFi0Ecbyd1:jjjbHjjjjbbhHasc:Cefasyd;8egCcdtfaHBdbasaCcefBd;8eaHcFeaOz:rjjjbhQdnadTmbaecufhLcbhKindndnaQabaXcdtfgYydbgCc:v;t;h;Ev2aLGgOcdtfgAydbgHcuSmbceheinazaHcdtfydbaCSmdaOaefhHaecefheaQaHaLGgOcdtfgAydbgHcu9hmbkkazaKcdtfaCBdbaAaKBdbaKhHaKcefhKkaYaHBdbaXcefgXad9hmbkkaQcbyd:m:jjjbH:bjjjbbasasyd;8ecufBd;8ekcbh8AcualcefgecdtaecFFFFi0Ecbyd1:jjjbHjjjjbbhKasc:Cefasyd;8egecdtfaKBdbasaKBdNeasaecefBd;8ecuadcitadcFFFFe0Ecbyd1:jjjbHjjjjbbhEasc:Cefasyd;8egecdtfaEBdbasaEBd:yeasaecefBd;8eascNefabadalcbz:cjjjbcualcdtgealcFFFFi0Eg3cbyd1:jjjbHjjjjbbhCasc:Cefasyd;8egHcdtfaCBdbasaHcefBd;8ea3cbyd1:jjjbHjjjjbbhYasc:Cefasyd;8egHcdtfaYBdbasaHcefBd;8eaCaYaialavazasc:Cefz:djjjbalcbyd1:jjjbHjjjjbbh5asc:Cefasyd;8egHcdtfa5BdbasaHcefBd;8ea3cbyd1:jjjbHjjjjbbhHasc:Cefasyd;8egOcdtfaHBdbasaOcefBd;8ea3cbyd1:jjjbHjjjjbbhOasc:Cefasyd;8egAcdtfaOBdbasaAcefBd;8eaHcFeaez:rjjjbh8EaOcFeaez:rjjjbh8FdnalTmbaEcwfhaindnaKa8AgOcefg8AcdtfydbgAaKaOcdtgefydbgHSmbaAaH9RhhaEaHcitfhga8Faefh8Ja8Eaefh8KcbhQindndnagaQcitfydbgLaO9hmba8KaOBdba8JaOBdbxekdnaKaLcdtg8LfgeclfydbgHaeydbgeSmbaEaecitgAfydbaOSmeaHae9Rh8Maecu7aHfhXaaaAfhHcbheinaXaeSmeaecefheaHydbhAaHcwfhHaAaO9hmbkaea8M6meka8Fa8LfgeaOaLaeydbcuSEBdba8KaLaOa8KydbcuSEBdbkaQcefgQah9hmbkka8Aal9hmbkaChHaYhOa8FhAa8EhQcbheindndnaeaHydbgL9hmbdnaeaOydbgL9hmbaQydbhLdnaAydbgXcu9hmbaLcu9hmba5aefcb86bbxikdnaXcuSmbaLcuSmbaeaXSmbaCaXcdtfydbaCaLcdtfydb9hmba5aefcd86bbxika5aefh8KdnaeaXSmbaeaLSmba8Kce86bbxika8Kcl86bbxdkdnaeaYaLcdtgXfydb9hmbdnaAydbg8KcuSmbaea8KSmbaQydbghcuSmbaeahSmba8FaXfydbggcuSmbagaLSmba8EaXfydbgXcuSmbaXaLSmbdnaCa8KcdtfydbgLaCaXcdtfydb9hmbaLaCahcdtfydbgXSmbaXaCagcdtfydb9hmba5aefcd86bbxlka5aefcl86bbxika5aefcl86bbxdka5aefcl86bbxeka5aefa5aLfRbb86bbkaHclfhHaOclfhOaAclfhAaQclfhQalaecefge9hmbkdnamcaGTmbaEcwfh8Jcbh8Nindndna5a8NfgyRbbg8Pc9:fPibebekdndndnaCa8Ncdtfydbgea8N9hmbdnaqmbcbhgxdkdnazTmbcbhga8NheinagaqazaecdtgefydbfRbbcdGce4VhgaYaefydbgea8N9hmbxikkcbhga8NheinagaqaefRbbcdGce4VhgaYaecdtfydbgea8N9hmbxdkka5aefRbbhexeka8NheindnaKaecdtgafgeclfydbgHaeydbgeSmbaHae9Rh8AaEaecitfh8MaCaafh8Lcbh8Kina8Ma8KcitfydbgXhednindnaKaecdtgLfgeclfydbgHaeydbgeSmbdnaCaEaecitgOfydbcdtfydba8LydbgQ9hmbcehexikaHae9Rhhaecu7aHfhAa8JaOfhHcbheinaAaeSmeaecefheaHydbhOaHcwfhHaCaOcdtfydbaQ9hmbkaeah6hexdkaYaLfydbgeaX9hmbkcbhekagaece7Vhga8Kcefg8Ka8A9hmbkkaYaafydbgea8N9hmbka8PciagceGEhekayae86bbka8Ncefg8Nal9hmbkkdnaqTmbdndnazTmbazheaChHalhOindnaqaeydbfRbbceGTmba5aHydbfcl86bbkaeclfheaHclfhHaOcufgOmbxdkkaChealhHindnaqRbbceGTmba5aeydbfcl86bbkaqcefhqaeclfheaHcufgHmbkkaChealhOa5hHindna5aeydbfRbbcl9hmbaHcl86bbkaeclfheaHcefhHaOcufgOmbkkamceGTmba5healhHindnaeRbbce9hmbaecl86bbkaecefheaHcufgHmbkkcbhIcualcx2alc;v:Q;v:Qe0Ecbyd1:jjjbHjjjjbbhaasc:Cefasyd;8egecdtfaaBdbasaecefBd;8easc:qefcbBdbas9cb83i1eaaaialavazasc1efz:ejjjbh8RdndnaDmbcbh8Scbh8Lxekcbh8LawhecbhHindnaeIdbJbbbb9ETmbasa8LcdtfaHBdba8Lcefh8LkaeclfheaDaHcefgH9hmbkcua8Lal2gecdtaecFFFFi0Ecbyd1:jjjbHjjjjbbh8Sasc:Cefasyd;8egecdtfa8SBdbasaecefBd;8ealTmbdna8Lmbcbh8Lxekarcd4hXdnazTmba8Lcdth8KcbhLa8ShKinaoazaLcdtfydbaX2cdtfhQasheaKhHa8LhOinaHaQaeydbcdtgAfIdbawaAfIdbNUdbaeclfheaHclfhHaOcufgOmbkaKa8KfhKaLcefgLal9hmbxdkka8Lcdth8KcbhLa8ShKinaoaLaX2cdtfhQasheaKhHa8LhOinaHaQaeydbcdtgAfIdbawaAfIdbNUdbaeclfheaHclfhHaOcufgOmbkaKa8KfhKaLcefgLal9hmbkkcualc8S2gHalc;D;O;f8U0EgAcbyd1:jjjbHjjjjbbheasc:Cefasyd;8egOcdtfaeBdbasaOcefBd;8eaecbaHz:rjjjbhycbhqcbh8Ndna8LTmbcbhIaAcbyd1:jjjbHjjjjbbh8Nasc:Cefasyd;8egecdtfa8NBdbasaecefBd;8ea8NcbaHz:rjjjb8Acua8Lal2gecltgHaecFFFFb0Ecbyd1:jjjbHjjjjbbhqasc:Cefasyd;8egecdtfaqBdbasaecefBd;8eaqcbaHz:rjjjb8AamcjjjjdGTmbcualcltgealcFFFFb0Ecbyd1:jjjbHjjjjbbhIasc:Cefasyd;8egHcdtfaIBdbasaHcefBd;8eaIcbaez:rjjjb8AkdnadTmbcbhQabhHinaaaHclfydbgLcx2fgeIdbaaaHydbgKcx2fgOIdbgR:tg8UaaaHcwfydbgXcx2fgAIdlaOIdlg8V:tg8WNaAIdbaR:tg8XaeIdla8V:tg8YN:tg8Zh80aeIdwaOIdwg81:tgBa8XNaAIdwa81:tg83a8UN:tgUh8Xa8Ya83Na8WaBN:tg8Yh8Udna8Za8ZNa8Ya8YNaUaUNMM:rgBJbbbb9EgOTmba8ZaB:vh80aUaB:vh8Xa8YaB:vh8UkayaCaKcdtfydbgAc8S2fgea8UaB:rg8Wa8UNNg85aeIdbMUdbaea8Xa8Wa8XNg86Ng87aeIdlMUdlaea80a8Wa80Ng83Ng88aeIdwMUdwaea86a8UNg86aeIdxMUdxaea83a8UNg89aeIdzMUdzaea83a8XNg8:aeIdCMUdCaea8Ua8Wa80a81Na8UaRNa8Va8XNMM:mgZNg83Ng8UaeIdKMUdKaea8Xa83Ng8XaeId3MUd3aea80a83Ng80aeIdaMUdaaea83aZNg83aeId8KMUd8Kaea8WaeIdyMUdyayaCaLcdtfydbgLc8S2fgea85aeIdbMUdbaea87aeIdlMUdlaea88aeIdwMUdwaea86aeIdxMUdxaea89aeIdzMUdzaea8:aeIdCMUdCaea8UaeIdKMUdKaea8XaeId3MUd3aea80aeIdaMUdaaea83aeId8KMUd8Kaea8WaeIdyMUdyayaCaXcdtfydbgKc8S2fgea85aeIdbMUdbaea87aeIdlMUdlaea88aeIdwMUdwaea86aeIdxMUdxaea89aeIdzMUdzaea8:aeIdCMUdCaea8UaeIdKMUdKaea8XaeId3MUd3aea80aeIdaMUdaaea83aeId8KMUd8Kaea8WaeIdyMUdydnaITmbdnaOTmba8ZaB:vh8ZaUaB:vhUa8YaB:vh8YkaIaAcltfgeaBJbbbZNg8UaUNg8WaeIdlMUdlaea8Ua8ZNg8XaeIdwMUdwaea8Ua8YNg80aeIdbMUdbaea8UaR:ma8YNaUa8VN:ta81a8ZN:tNg8UaeIdxMUdxaIaLcltfgea8WaeIdlMUdlaea8XaeIdwMUdwaea80aeIdbMUdbaea8UaeIdxMUdxaIaKcltfgea8WaeIdlMUdlaea8XaeIdwMUdwaea80aeIdbMUdbaea8UaeIdxMUdxkaHcxfhHaQcifgQad6mbkkdnalTmbJ;n;m;m89J:v:;;w8ZamczGEh8YcbhOaChAaahHayheindnaOaAydb9hmbaecxfgQaQIdbJbbbbMUdbaeczfgQaQIdbJbbbbMUdbaecCfgQaQIdbJbbbbMUdbaea8YaecyfgQIdbg8ZNg8UaeIdbMUdbaeclfgLa8UaLIdbMUdbaecwfgLa8UaLIdbMUdbaecKfgLaLIdbaHIdbg8Xa8UN:tUdbaHcwfIdbh8Waec3fgLaLIdba8UaHclfIdbg80N:tUdbaecafgLaLIdba8Ua8WN:tUdbaec8KfgLIdbhUaQa8Za8UMUdbaLaUa8Ua8Wa8WNa8Xa8XNa80a80NMMNMUdbkaAclfhAaHcxfhHaec8SfhealaOcefgO9hmbkkdnadTmbcbhXabhKinabaXcdtfhLcbhHina5aLaHc:G1jjbfydbcdtfydbgOfRbbhedndna5aKaHfydbgAfRbbgQc99fcFeGcpe0mbaec99fcFeGc;:e6mekdnaQcufcFeGce0mba8EaAcdtfydbaO9hmekdnaecufcFeGce0mba8FaOcdtfydbaA9hmekJbbacJbbacJbbbZaecFeGceSEaQcFeGceSEh88aaaOcx2fgeIdwaaaAcx2fgQIdwgB:tg80:mh86aeIdlaQIdlg83:tg8Z:mh89aeIdbaQIdbgR:tgU:mh8:dnaaaLaHc:K1jjbfydbcdtfydbcx2fgeIdwaB:tg8Va80a80NaUaUNa8Za8ZNMMg8YNa8Va80NaeIdbaR:tg81aUNa8ZaeIdla83:tg85NMMg8Wa80N:tg8Xa8XNa81a8YNa8WaUN:tg8Ua8UNa85a8YNa8Wa8ZN:tg8Wa8WNMM:rg87Jbbbb9ETmba8Xa87:vh8Xa8Wa87:vh8Wa8Ua87:vh8Uka88a8Y:rNg8Ya8XaBNa8UaRNa83a8WNMM:mgZNg87aZNhZa8Xa87Nhna8Wa87Nhca8Ua87Nh9ca8Ya8XNg87a8WNhJa87a8UNh9ea8Ya8WNgTa8UNhSa8Xa87Nh87a8WaTNhTa8Ua8Ya8UNNh9hdnaUa85Na81a89NMg8Xa8XNa8Za8VNa85a86NMg8Ua8UNa80a81Na8Va8:NMg8Wa8WNMM:rg80Jbbbb9ETmba8Xa80:vh8Xa8Wa80:vh8Wa8Ua80:vh8UkayaCaAcdtfydbc8S2fgeaeIdba9ha8Ua88a80:rNg80a8UNNMgUMUdbaeaTa8Wa80a8WNg8VNMg81aeIdlMUdlaea87a8Xa80a8XNg8ZNMg85aeIdwMUdwaeaSa8Va8UNMg8VaeIdxMUdxaea9ea8Za8UNMg87aeIdzMUdzaeaJa8Za8WNMg8ZaeIdCMUdCaea9ca8Ua80a8XaBNa8UaRNa83a8WNMMgB:mNg80NMg8UaeIdKMUdKaeaca8Wa80NMg8WaeId3MUd3aeana8Xa80NMg8XaeIdaMUdaaeaZaBa80N:tg80aeId8KMUd8Kaea8YJbbbbMg8YaeIdyMUdyayaCaOcdtfydbc8S2fgeaUaeIdbMUdbaea81aeIdlMUdlaea85aeIdwMUdwaea8VaeIdxMUdxaea87aeIdzMUdzaea8ZaeIdCMUdCaea8UaeIdKMUdKaea8WaeId3MUd3aea8XaeIdaMUdaaea80aeId8KMUd8Kaea8YaeIdyMUdykaHclfgHcx9hmbkaKcxfhKaXcifgXad6mbka8LTmbcbhKinJbbbbh8YaaabaKcdtfgeclfydbgXcx2fgHIdwaaaeydbg8Kcx2fgOIdwg81:tg8Wa8WNaHIdbaOIdbg85:tg8Xa8XNaHIdlaOIdlg87:tg80a80NMMgRaaaecwfydbghcx2fgeIdwa81:tg8ZNa8Wa8Wa8ZNa8XaeIdba85:tgUNa80aeIdla87:tgBNMMg8UN:tJbbbbJbbjZaRa8Za8ZNaUaUNaBaBNMMg8VNa8Ua8UN:tg83:va83Jbbbb9BEg83Nh89a8Va8WNa8Za8UN:ta83Nh8:aRaBNa80a8UN:ta83NhZa8Va80NaBa8UN:ta83NhnaRaUNa8Xa8UN:ta83Nhca8Va8XNaUa8UN:ta83Nh9ca8XaBNaUa80N:tg8Ua8UNa80a8ZNaBa8WN:tg8Ua8UNa8WaUNa8Za8XN:tg8Ua8UNMM:rJbbbZNh8Ua8Sa8Ka8L2ggcdtfhHa8Saha8L2gEcdtfhOa8SaXa8L2g8JcdtfhAa81:mhJa87:mh9ea85:mhTcbhQa8LhLJbbbbhBJbbbbh83JbbbbhRJbbbbh8VJbbbbh81Jbbbbh85Jbbbbh87Jbbbbh88Jbbbbh86inascjdfaQfgecwfa8Ua8:aAIdbaHIdbg8Z:tg80Na89aOIdba8Z:tgUNMg8WNUdbaeclfa8Uana80NaZaUNMg8XNUdbaea8Ua9ca80NacaUNMg80NUdbaecxfa8UaJa8WNa9ea8XNa8ZaTa80NMMMg8ZNUdba8Ua8Wa8XNNa8VMh8Va8Ua8Wa80NNa81Mh81a8Ua8Xa80NNa85Mh85a8Ua8Za8ZNNa8YMh8Ya8Ua8Wa8ZNNaBMhBa8Ua8Xa8ZNNa83Mh83a8Ua80a8ZNNaRMhRa8Ua8Wa8WNNa87Mh87a8Ua8Xa8XNNa88Mh88a8Ua80a80NNa86Mh86aHclfhHaAclfhAaOclfhOaQczfhQaLcufgLmbka8Na8Kc8S2fgea86aeIdbMUdbaea88aeIdlMUdlaea87aeIdwMUdwaea85aeIdxMUdxaea81aeIdzMUdzaea8VaeIdCMUdCaeaRaeIdKMUdKaea83aeId3MUd3aeaBaeIdaMUdaaea8YaeId8KMUd8Kaea8UaeIdyMUdya8NaXc8S2fgea86aeIdbMUdbaea88aeIdlMUdlaea87aeIdwMUdwaea85aeIdxMUdxaea81aeIdzMUdzaea8VaeIdCMUdCaeaRaeIdKMUdKaea83aeId3MUd3aeaBaeIdaMUdaaea8YaeId8KMUd8Kaea8UaeIdyMUdya8Nahc8S2fgea86aeIdbMUdbaea88aeIdlMUdlaea87aeIdwMUdwaea85aeIdxMUdxaea81aeIdzMUdzaea8VaeIdCMUdCaeaRaeIdKMUdKaea83aeId3MUd3aeaBaeIdaMUdaaea8YaeId8KMUd8Kaea8UaeIdyMUdyaqagcltfhLcbhHa8LhAinaLaHfgeascjdfaHfgOIdbaeIdbMUdbaeclfgQaOclfIdbaQIdbMUdbaecwfgQaOcwfIdbaQIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaAcufgAmbkaqa8JcltfhLcbhHa8LhAinaLaHfgeascjdfaHfgOIdbaeIdbMUdbaeclfgQaOclfIdbaQIdbMUdbaecwfgQaOcwfIdbaQIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaAcufgAmbkaqaEcltfhLcbhHa8LhAinaLaHfgeascjdfaHfgOIdbaeIdbMUdbaeclfgQaOclfIdbaQIdbMUdbaecwfgQaOcwfIdbaQIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaAcufgAmbkaKcifgKad6mbkkcbhOdndnamcwGg9imbJbbbbh85cbh6cbh9kcbh0xekcbh6a3cbyd1:jjjbHjjjjbbh0asc:Cefasyd;8egecdtfa0BdbasaecefBd;8ecua0alabadaCz:fjjjbgAcltaAcjjjjiGEcbyd1:jjjbHjjjjbbh9kasc:Cefasyd;8egecdtfa9kBdbasaecefBd;8ea9kaAa0aaalz:gjjjbJFFuuh85aATmba9kheaAhHinaeIdbg8Ua85a85a8U9EEh85aeclfheaHcufgHmbkaAh6kasydNeh9mdnalTmba9mclfhea9mydbhAa5hHalhQcbhOincbaeydbgLaA9RaHRbbcpeGEaOfhOaHcefhHaeclfheaLhAaQcufgQmbkaOce4hOkcuadaO9Rcifg9ncx2a9nc;v:Q;v:Qe0Ecbyd1:jjjbHjjjjbbh8Pasc:Cefasyd;8egecdtfa8PBdbasaecefBd;8ecua9ncdta9ncFFFFi0Ecbyd1:jjjbHjjjjbbh9oasc:Cefasyd;8egecdtfa9oBdbasaecefBd;8ea3cbyd1:jjjbHjjjjbbhDasc:Cefasyd;8egecdtfaDBdbasaecefBd;8ealcbyd1:jjjbHjjjjbbh9pasc:Cefasyd;8egecdtfa9pBdbasaecefBd;8eaxaxNa8RJbbjZamclGEgnanN:vh88Jbbbbh86dnadak9nmbdna9nci6mbasyd:yeh9qa8Lclth9ra8Pcwfh9sJbbbbh87Jbbbbh86inascNefabadalaCz:cjjjbabh8Kcbh8Mcbh3inaba3cdtfhgcbheindnaCa8KaefydbgOcdtgXfydbgAaCagaec:W1jjbfydbcdtfydbgHcdtghfydbgQSmba5aHfRbbgKcv2a5aOfRbbgLfc;a1jjbfRbbg8JaLcv2aKfgEc;a1jjbfRbbg8AVcFeGTmbdnaQaA9nmbaEc;G1jjbfRbbcFeGmekdnaLcufcFeGce0mbaKTmba8EaXfydbaH9hmekdnaLTmbaKcufcFeGce0mba8FahfydbaO9hmeka8Pa8Mcx2fgAaHaOa8AcFeGgQEBdlaAaOaHaQEBdbaAaQa8JGcb9hBdwa8Mcefh8Mkaeclfgecx9hmbkdna3cifg3ad9pmba8Kcxfh8Ka8Mcifa9n9nmekka8MTmdcbhhinayaCa8Pahcx2fgKydbgQcdtgAfydbc8S2fgeIdwaaaKydlgLcx2fgHIdwg8XNaeIdzaHIdbg80NaeIdaMg8Ua8UMMa8XNaeIdlaHIdlg8ZNaeIdCa8XNaeId3Mg8Ua8UMMa8ZNaeIdba80NaeIdxa8ZNaeIdKMg8Ua8UMMa80NaeId8KMMM:lh8UJbbbbJbbjZaeIdyg8W:va8WJbbbb9BEh8WdndnaKydwg8KmbJFFuuh81xekJbbbbJbbjZayaCaLcdtfydbc8S2fgeIdygU:vaUJbbbb9BEaeIdwaaaQcx2fgHIdwgUNaeIdzaHIdbg8YNaeIdaMgBaBMMaUNaeIdlaHIdlgBNaeIdCaUNaeId3MgUaUMMaBNaeIdba8YNaeIdxaBNaeIdKMgUaUMMa8YNaeId8KMMM:lNh81ka8Wa8UNh8Vdna8LTmba8NaQc8S2fgHIdwa8XNaHIdza80NaHIdaMg8Ua8UMMa8XNaHIdla8ZNaHIdCa8XNaHId3Mg8Ua8UMMa8ZNaHIdba80NaHIdxa8ZNaHIdKMg8Ua8UMMa80NaHId8KMMMh8UaqaQa8L2ggcltfheaHIdyhUa8SaLa8L2gEcdtfgXhHa8LhOinaHIdbg8Wa8WaUNaecxfIdba8XaecwfIdbNa80aeIdbNa8ZaeclfIdbNMMMg8Wa8WM:tNa8UMh8UaHclfhHaeczfheaOcufgOmbkdndna8KmbJbbbbh8Wxeka8NaLc8S2fgOIdwaaaQcx2fgeIdwg8YNaOIdzaeIdbgBNaOIdaMg8Wa8WMMa8YNaOIdlaeIdlg83NaOIdCa8YNaOId3Mg8Wa8WMMa83NaOIdbaBNaOIdxa83NaOIdKMg8Wa8WMMaBNaOId8KMMMh8Wa8SagcdtfhHaqaEcltfheaOIdyhRa8LhOinaHIdbgUaUaRNaecxfIdba8YaecwfIdbNaBaeIdbNa83aeclfIdbNMMMgUaUM:tNa8WMh8WaHclfhHaeczfheaOcufgOmbka8W:lh8Wka8Va8U:lMh8Va81a8WMh81dndndna5aQfRbbc9:fPdbedkdna8Fa8Ea8EaAfydbaLSEaYaAfydbgXcdtfydbgAcu9hmbaYaLcdtfydbhAka8NaXc8S2fgOIdwaaaAcx2fgeIdwg8XNaOIdzaeIdbg80NaOIdaMg8Ua8UMMa8XNaOIdlaeIdlg8ZNaOIdCa8XNaOId3Mg8Ua8UMMa8ZNaOIdba80NaOIdxa8ZNaOIdKMg8Ua8UMMa80NaOId8KMMMh8Ua8SaAa8L2ggcdtfhHaqaXa8L2gEcltfheaOIdyhUa8LhOinaHIdbg8Wa8WaUNaecxfIdba8XaecwfIdbNa80aeIdbNa8ZaeclfIdbNMMMg8Wa8WM:tNa8UMh8UaHclfhHaeczfheaOcufgOmbkdndna8KmbJbbbbh8Wxeka8NaAc8S2fgOIdwaaaXcx2fgeIdwg80NaOIdzaeIdbg8ZNaOIdaMg8Wa8WMMa80NaOIdlaeIdlgUNaOIdCa80NaOId3Mg8Wa8WMMaUNaOIdba8ZNaOIdxaUNaOIdKMg8Wa8WMMa8ZNaOId8KMMMh8Wa8SaEcdtfhHaqagcltfheaOIdyh8Ya8LhOinaHIdbg8Xa8Xa8YNaecxfIdba80aecwfIdbNa8ZaeIdbNaUaeclfIdbNMMMg8Xa8XM:tNa8WMh8WaHclfhHaeczfheaOcufgOmbka8W:lh8Wka8Va8U:lMh8Va81a8WMh81xdkaYaAfydbgAaQSmbina8NaAc8S2fgHIdwa8XNaHIdza80NaHIdaMg8Ua8UMMa8XNaHIdla8ZNaHIdCa8XNaHId3Mg8Ua8UMMa8ZNaHIdba80NaHIdxa8ZNaHIdKMg8Ua8UMMa80NaHId8KMMMh8UaqaAa8L2cltfheaHIdyhUaXhHa8LhOinaHIdbg8Wa8WaUNaecxfIdba8XaecwfIdbNa80aeIdbNa8ZaeclfIdbNMMMg8Wa8WM:tNa8UMh8UaHclfhHaeczfheaOcufgOmbka8Va8U:lMh8VaYaAcdtfydbgAaQ9hmbkka5aLfRbbci9hmba8KTmbaYaLcdtfydbgAaLSmba8SagcdtfhXaaaQcx2fgeIdbh8XaeIdwh80aeIdlh8Zina8NaAc8S2fgHIdwa80NaHIdza8XNaHIdaMg8Ua8UMMa80NaHIdla8ZNaHIdCa80NaHId3Mg8Ua8UMMa8ZNaHIdba8XNaHIdxa8ZNaHIdKMg8Ua8UMMa8XNaHId8KMMMh8UaqaAa8L2cltfheaHIdyhUaXhHa8LhOinaHIdbg8Wa8WaUNaecxfIdba80aecwfIdbNa8XaeIdbNa8ZaeclfIdbNMMMg8Wa8WM:tNa8UMh8UaHclfhHaeczfheaOcufgOmbka81a8U:lMh81aYaAcdtfydbgAaL9hmbkkaKa81a8Va81a8V9DgeEUdwaKaQaLaea8Kcb9hGgeEBdlaKaLaQaeEBdbahcefgha8M9hmbkascjdfcbcj;qbz:rjjjb8Aa9shea8MhHinascjdfaeydbcA4cF8FGgOcFAaOcFA6EcdtfgOaOydbcefBdbaecxfheaHcufgHmbkcbhecbhHinascjdfaefgOydbhAaOaHBdbaAaHfhHaeclfgecj;qb9hmbkcbhea9shHinascjdfaHydbcA4cF8FGgOcFAaOcFA6EcdtfgOaOydbgOcefBdba9oaOcdtfaeBdbaHcxfhHa8Maecefge9hmbkadak9RgOci9Uh9tdnalTmbcbheaDhHinaHaeBdbaHclfhHalaecefge9hmbkkcbh9ua9pcbalz:rjjjbh3aOcO9Uh9va9tce4h9wcbh8Acbh8Jdnina8Pa9oa8Jcdtfydbcx2fgEIdwg8Ua889Emea8Aa9t9pmeJFFuuh8Wdna9wa8M9pmba8Pa9oa9wcdtfydbcx2fIdwJbb;aZNh8Wkdna8Ua8W9ETmba8Ua869ETmba8Aa9v0mdkdna3aCaEydlghcdtg9xfydbgAfg9yRbba3aCaEydbg8Kcdtg9zfydbgefg9ARbbVmba5a8KfRbbh9Bdna9maecdtfgHclfydbgOaHydbgHSmbaOaH9RhQaaaAcx2fhKaaaecx2fhXa9qaHcitfhecbhHcehgdnindnaDaeydbcdtfydbgOaASmbaDaeclfydbcdtfydbgLaASmbaOaLSmbaaaLcx2fgLIdbaaaOcx2fgOIdbg8X:tg8UaXIdlaOIdlg80:tg8YNaXIdba8X:tgBaLIdla80:tg8WN:tg8Za8UaKIdla80:tg83NaKIdba8X:tgRa8WN:tg80Na8WaXIdwaOIdwgU:tg8VNa8YaLIdwaU:tg8XN:tg8Ya8WaKIdwaU:tg81Na83a8XN:tg8WNa8XaBNa8Va8UN:tgUa8XaRNa81a8UN:tg8UNMMa8Za8ZNa8Ya8YNaUaUNMMa80a80Na8Wa8WNa8Ua8UNMMN:rJbbj8:N9FmdkaecwfheaHcefgHaQ6hgaQaH9hmbkkagceGTmba9wcefh9wxekdndndndna9Bc9:fPdebdka8KheinaDaecdtgefahBdbaYaefydbgea8K9hmbxikkdna8Fa8Ea8Ea9zfydbahSEaYa9zfydbg8Kcdtfydbgecu9hmbaYa9xfydbhekaDa9zfahBdbaehhkaDa8KcdtfahBdbka9Ace86bba9yce86bbaEIdwg8Ua86a86a8U9DEh86a9ucefh9ucecda9BceSEa8Afh8Aka8Jcefg8Ja8M9hmbkka9uTmddnalTmbcbhLcbhXindnaDaXcdtgefydbgOaXSmbaCaOcdtfydbh8KdnaXaCaefydb9hghmbaya8Kc8S2fgeayaXc8S2fgHIdbaeIdbMUdbaeaHIdlaeIdlMUdlaeaHIdwaeIdwMUdwaeaHIdxaeIdxMUdxaeaHIdzaeIdzMUdzaeaHIdCaeIdCMUdCaeaHIdKaeIdKMUdKaeaHId3aeId3MUd3aeaHIdaaeIdaMUdaaeaHId8KaeId8KMUd8KaeaHIdyaeIdyMUdyaITmbaIa8KcltfgeaIaXcltfgHIdbaeIdbMUdbaeaHIdlaeIdlMUdlaeaHIdwaeIdwMUdwaeaHIdxaeIdxMUdxka8LTmba8NaOc8S2fgea8NaXc8S2ggfgHIdbaeIdbMUdbaeaHIdlaeIdlMUdlaeaHIdwaeIdwMUdwaeaHIdxaeIdxMUdxaeaHIdzaeIdzMUdzaeaHIdCaeIdCMUdCaeaHIdKaeIdKMUdKaeaHId3aeId3MUd3aeaHIdaaeIdaMUdaaeaHId8KaeId8KMUd8KaeaHIdyaeIdyMUdya9raO2hKaqhHa8LhAinaHaKfgeaHaLfgOIdbaeIdbMUdbaeclfgQaOclfIdbaQIdbMUdbaecwfgQaOcwfIdbaQIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaAcufgAmbkahmbJbbbbJbbjZayagfgeIdyg8U:va8UJbbbb9BEaeIdwaaa8Kcx2fgHIdwg8UNaeIdzaHIdbg8WNaeIdaMg8Xa8XMMa8UNaeIdlaHIdlg8XNaeIdCa8UNaeId3Mg8Ua8UMMa8XNaeIdba8WNaeIdxa8XNaeIdKMg8Ua8UMMa8WNaeId8KMMM:lNg8Ua87a87a8U9DEh87kaLa9rfhLaXcefgXal9hmbkcbhHa8EheindnaeydbgOcuSmbdnaHaDaOcdtgAfydbgO9hmbcuhOa8EaAfydbgAcuSmbaDaAcdtfydbhOkaeaOBdbkaeclfhealaHcefgH9hmbkcbhHa8FheindnaeydbgOcuSmbdnaHaDaOcdtgAfydbgO9hmbcuhOa8FaAfydbgAcuSmbaDaAcdtfydbhOkaeaOBdbkaeclfhealaHcefgH9hmbkka87a86a8LEh87cbhHabhecbhOindnaCaDaeydbcdtfydbgLcdtfydbgAaCaDaeclfydbcdtfydbgKcdtfydbgQSmbaAaCaDaecwfydbcdtfydbg8KcdtfydbgXSmbaQaXSmbabaHcdtfgAaLBdbaAcwfa8KBdbaAclfaKBdbaHcifhHkaecxfheaOcifgOad6mbkdndna9imbaHhdxekdnaHak0mbaHhdxekdna85a879FmbaHhdxekJFFuuh85cbhdabhecbhOindna9ka0aeydbgAcdtfydbcdtfIdbg8Ua879ETmbaeclf8Pdbh9CabadcdtfgQaABdbaQclfa9C83dba8Ua85a85a8U9EEh85adcifhdkaecxfheaOcifgOaH6mbkkadak0mbxdkkascNefabadalaCz:cjjjbkdndnadak0mbadhOxekdna9imbadhOxekdna85a889FmbadhOxekcehLina85Jbb;aZNg8Ua88a8Ua889DEh8XJbbbbh8Udna6Tmba9khea6hHinaeIdbg8Wa8Ua8Wa8X9FEa8Ua8Wa8U9EEh8UaeclfheaHcufgHmbkkJFFuuh85cbhOabhecbhHindna9ka0aeydbgAcdtfydbcdtfIdbg8Wa8X9ETmbaeclf8Pdbh9CabaOcdtfgQaABdbaQclfa9C83dba8Wa85a85a8W9EEh85aOcifhOkaecxfheaHcifgHad6mbkdnaLaOad9hVceGmbadhOxdka8Ua86a86a8U9DEh86aOak9nmecbhLaOhda85a889FmbkkdnamcjjjjdGTmba9pcbalz:rjjjbhLdnaOTmbabheaOhHinaLaeydbgAfa5aAfRbbcl9h86bbaeclfheaHcufgHmbkkascNefabaOalaCz:cjjjbalTmbcbhQasyd:yehgindnaLaQfRbbTmbdna5aQfRbbgecl0mbceaetcQGmekdnaCaQcdtgKfydbgeaQSmbaaaQcx2fgHaaaecx2fge8Pdb83dbaHcwfaecwfydbBdbxekayaQc8S2fgeIdyg8Ua8UJL:3;rUNg8UMh88aeIdwa8UMhRaeIdla8UMh8VaeIdba8UMhUaeIdaa8UaaaQcx2fg8KIdwg89N:th81aeId3a8Ua8KIdlg8:N:th85aeIdKa8KIdbgZa8UN:th8YJbbbbhcaeIdCJbbbbMh87aeIdzJbbbbMhBaeIdxJbbbbMh83dndna8LTmbaQhAinJbbbba88a8NaAc8S2fgHIdyg8U:va8UJbbbb9BEh8UaqaAa8L2cltfheaHIdaa88Na81Mh81aHId3a88Na85Mh85aHIdKa88Na8YMh8YaHIdCa88Na87Mh87aHIdza88NaBMhBaHIdxa88Na83Mh83aHIdwa88NaRMhRaHIdla88Na8VMh8VaHIdba88NaUMhUa8LhHina81aecxfIdbg8ZaecwfIdbg8WNa8UN:th81a85a8ZaeclfIdbg8XNa8UN:th85a87a8Wa8XNa8UN:th87aUaeIdbg80a80Na8UN:thUa8Ya8Za80Na8UN:th8YaBa8Wa80Na8UN:thBa83a8Xa80Na8UN:th83aRa8Wa8WNa8UN:thRa8Va8Xa8XNa8UN:th8VaeczfheaHcufgHmbkaYaAcdtfydbgAaQ9hmbkaITmbaIaQcltfgeIdxhTaeIdwh9caeIdlhJaeIdbh8UxekJbbbbhTJbbbbh9cJbbbbhJJbbbbh8UkaBaU:vg8Xa8YNa81:ta87aBa83aU:vg8WN:tg81a8Va83a8WN:tg8Z:vg80a8Wa8YNa85:tg8VN:th85a9ca8Ua8XN:taJa8Ua8WN:tg83a80N:tg87aRaBa8XN:ta81a80N:tgB:vgR:mh81a83a8Z:vg9c:mhJdnJbbbba8Ua8UaU:vg9eN:ta83a9cN:ta87aRN:tg83:la88J:983:g81Ng8U9ETmba81a85NaJa8VNa9ea8YNaT:tMMa83:vhckaU:la8U9ETmba8Z:la8U9ETmbaB:la8U9ETmba9e:macNa8X:ma81acNa85aB:vMg85Na8W:maJacNa80:ma85Na8Va8Z:vMMg87Na8Y:maU:vMMMh88a9maKfgeclfydbgHaeydbge9RhXagaecitfhKJbbbbh8UdnaHaeSghmbJbbbbh8UaKheaXhAinaaaeclfydbcx2fgHIdwa89:tg8Wa8WNaHIdbaZ:tg8Wa8WNaHIdla8::tg8Wa8WNMMg8Waaaeydbcx2fgHIdwa89:tg8Xa8XNaHIdbaZ:tg8Xa8XNaHIdla8::tg8Xa8XNMMg8Xa8Ua8Ua8X9DEg8Ua8Ua8W9DEh8UaecwfheaAcufgAmbkka85a89:tg8Wa8WNa88aZ:tg8Wa8WNa87a8::tg8Wa8WNMMa8U:rg8Ua8UN9EmbdnahmbcbhAcehhdninaaaKclfydbcx2fgeIdbaaaKydbcx2fgHIdbg8X:tg8Ua8:aHIdlg80:tg8YNaZa8X:tgBaeIdla80:tg8WN:tg8Za8Ua87a80:tg83Na88a8X:tgRa8WN:tg80Na8Wa89aHIdwgU:tg8VNa8YaeIdwaU:tg8XN:tg8Ya8Wa85aU:tg81Na83a8XN:tg8WNa8XaBNa8Va8UN:tgUa8XaRNa81a8UN:tg8UNMMa8Za8ZNa8Ya8YNaUaUNMMa80a80Na8Wa8WNa8Ua8UNMMN:rJbbj8:N9FmeaKcwfhKaAcefgAaX6hhaXaA9hmbkkahceGmeka8Ka85Udwa8Ka87Udla8Ka88UdbkaQcefgQal9hmbkdndna8LTmba8LclthYa8Lcdth8KcbhKa8ShXindnaLaKfRbbTmba5aKfRbbclSmbJbbbbJbbjZa8NaKc8S2fIdyg8U:va8UJbbbb9BEh8UaaaCaKcdtfydbcx2fhHaqheaXhAa8LhQinaAa8UaecwfIdbaHIdwNaeIdbaHIdbNaeclfIdbaHIdlNMMaecxfIdbMNUdbaeczfheaAclfhAaQcufgQmbkkaqaYfhqaXa8KfhXaKcefgKal9hmbkarcd4hXavcd4hYasId:qeh8UasId:meh8WasId1eh8XazTmea8Lcdth8KcbhKindnaLaKfRbbTmbaiazaKcdtfydbgCaY2cdtfgeaaaKcx2fgHIdba8RNa8XMUdbaeaHIdla8RNa8WMUdlaeaHIdwa8RNa8UMUdwaoaCaX2cdtfhQashea8ShHa8LhCinaQaeydbcdtgAfaHIdbawaAfIdb:vUdbaeclfheaHclfhHaCcufgCmbkka8Sa8Kfh8SaKcefgKal9hmbxikkavcd4hCasId:qeh8UasId:meh8WasId1eh8XdnazTmbazheindna9pRbbTmbaiaeydbaC2cdtfgHaaIdba8RNa8XMUdbaHaaclfIdba8RNa8WMUdlaHaacwfIdba8RNa8UMUdwka9pcefh9paeclfheaacxfhaalcufglmbxikkaCcdtheindna9pRbbTmbaiaaIdba8RNa8XMUdbaiclfaaclfIdba8RNa8WMUdbaicwfaacwfIdba8RNa8UMUdbka9pcefh9paacxfhaaiaefhialcufglmbxdkka8Lcdth8KcbhKindnaLaKfRbbTmbaiaKaY2cdtfgeaaaKcx2fgHIdba8RNa8XMUdbaeaHIdla8RNa8WMUdlaeaHIdwa8RNa8UMUdwaoaKaX2cdtfhQashea8ShHa8LhCinaQaeydbcdtgAfaHIdbawaAfIdb:vUdbaeclfheaHclfhHaCcufgCmbkka8Sa8Kfh8SaKcefgKal9hmbkkdnamcjjjjlGTmbazmbaOTmbcbhLabheina5aeydbgAfRbbc3thKaecwfgXydbhHdndna8EaAcdtg8KfydbaeclfgYydbgCSmbcbhQa8FaCcdtfydbaA9hmekcjjjj94hQkaeaKaQVaAVBdba5aCfRbbc3thKdndna8EaCcdtfydbaHSmbcbhQa8FaHcdtfydbaC9hmekcjjjj94hQkaYaKaQVaCVBdba5aHfRbbc3thQdndna8EaHcdtfydbaASmbcbhCa8Fa8KfydbaH9hmekcjjjj94hCkaXaQaCVaHVBdbaecxfheaLcifgLaO6mbkkdnazTmbaOTmbaOheinabazabydbcdtfydbBdbabclfhbaecufgembkkdnaPTmbaPana86:rNUdbkasyd;8egecdtasc:Ceffc98fhHdninaeTmeaHydbcbyd:m:jjjbH:bjjjbbaHc98fhHaecufhexbkkascj;sbf8KjjjjbaOk;Yieouabydlhvabydbclfcbaicdtz:rjjjbhoadci9UhrdnadTmbdnalTmbaehwadhDinaoalawydbcdtfydbcdtfgqaqydbcefBdbawclfhwaDcufgDmbxdkkaehwadhDinaoawydbcdtfgqaqydbcefBdbawclfhwaDcufgDmbkkdnaiTmbcbhDaohwinawydbhqawaDBdbawclfhwaqaDfhDaicufgimbkkdnadci6mbinaecwfydbhwaeclfydbhDaeydbhidnalTmbalawcdtfydbhwalaDcdtfydbhDalaicdtfydbhikavaoaicdtfgqydbcitfaDBdbavaqydbcitfawBdlaqaqydbcefBdbavaoaDcdtfgqydbcitfawBdbavaqydbcitfaiBdlaqaqydbcefBdbavaoawcdtfgwydbcitfaiBdbavawydbcitfaDBdlawawydbcefBdbaecxfhearcufgrmbkkabydbcbBdbk:todDue99aicd4aifhrcehwinawgDcethwaDar6mbkcuaDcdtgraDcFFFFi0Ecbyd1:jjjbHjjjjbbhwaoaoyd9GgqcefBd9GaoaqcdtfawBdbawcFearz:rjjjbhkdnaiTmbalcd4hlaDcufhxcbhminamhDdnavTmbavamcdtfydbhDkcbadaDal2cdtfgDydlgwawcjjjj94SEgwcH4aw7c:F:b:DD2cbaDydbgwawcjjjj94SEgwcH4aw7c;D;O:B8J27cbaDydwgDaDcjjjj94SEgDcH4aD7c:3F;N8N27axGhwamcdthPdndndnavTmbakawcdtfgrydbgDcuSmeadavaPfydbal2cdtfgsIdbhzcehqinaqhrdnadavaDcdtfydbal2cdtfgqIdbaz9CmbaqIdlasIdl9CmbaqIdwasIdw9BmlkarcefhqakawarfaxGgwcdtfgrydbgDcu9hmbxdkkakawcdtfgrydbgDcuSmbadamal2cdtfgsIdbhzcehqinaqhrdnadaDal2cdtfgqIdbaz9CmbaqIdlasIdl9CmbaqIdwasIdw9BmikarcefhqakawarfaxGgwcdtfgrydbgDcu9hmbkkaramBdbamhDkabaPfaDBdbamcefgmai9hmbkkakcbyd:m:jjjbH:bjjjbbaoaoyd9GcufBd9GdnaeTmbaiTmbcbhDaehwinawaDBdbawclfhwaiaDcefgD9hmbkcbhDaehwindnaDabydbgrSmbawaearcdtfgrydbBdbaraDBdbkawclfhwabclfhbaiaDcefgD9hmbkkk:hrdvuv998Jjjjjbca9Rgoczfcwfcbyd11jjbBdbaocb8Pdj1jjb83izaocwfcbydN1jjbBdbaocb8Pd:m1jjb83ibdnadTmbaicd4hrdnabmbdnalTmbcbhwinaealawcdtfydbar2cdtfhDcbhiinaoczfaifgqaDaifIdbgkaqIdbgxaxak9EEUdbaoaifgqakaqIdbgxaxak9DEUdbaiclfgicx9hmbkawcefgwad9hmbxikkarcdthwcbhDincbhiinaoczfaifgqaeaifIdbgkaqIdbgxaxak9EEUdbaoaifgqakaqIdbgxaxak9DEUdbaiclfgicx9hmbkaeawfheaDcefgDad9hmbxdkkdnalTmbcbhwinabawcx2fgiaealawcdtfydbar2cdtfgDIdbUdbaiaDIdlUdlaiaDIdwUdwcbhiinaoczfaifgqaDaifIdbgkaqIdbgxaxak9EEUdbaoaifgqakaqIdbgxaxak9DEUdbaiclfgicx9hmbkawcefgwad9hmbxdkkarcdthlcbhwaehDinabawcx2fgiaeawar2cdtfgqIdbUdbaiaqIdlUdlaiaqIdwUdwcbhiinaoczfaifgqaDaifIdbgkaqIdbgxaxak9EEUdbaoaifgqakaqIdbgxaxak9DEUdbaiclfgicx9hmbkaDalfhDawcefgwad9hmbkkJbbbbaoIdbaoIdzgx:tgkakJbbbb9DEgkaoIdlaoIdCgm:tgPaPak9DEgkaoIdwaoIdKgP:tgsasak9DEhsdnabTmbadTmbJbbbbJbbjZas:vasJbbbb9BEhkinabakabIdbax:tNUdbabclfgoakaoIdbam:tNUdbabcwfgoakaoIdbaP:tNUdbabcxfhbadcufgdmbkkdnavTmbavaPUdwavamUdlavaxUdbkask:ZlewudnaeTmbcbhvabhoinaoavBdbaoclfhoaeavcefgv9hmbkkdnaiTmbcbhrinadarcdtfhwcbhDinalawaDcdtgvc:G1jjbfydbcdtfydbcdtfydbhodnabalawavfydbcdtfydbgqcdtfgkydbgvaqSmbinakabavgqcdtfgxydbgvBdbaxhkaqav9hmbkkdnabaocdtfgkydbgvaoSmbinakabavgocdtfgxydbgvBdbaxhkaoav9hmbkkdnaqaoSmbabaqaoaqao0Ecdtfaqaoaqao6EBdbkaDcefgDci9hmbkarcifgrai6mbkkdnaembcbskcbhxindnalaxcdtgvfydbax9hmbaxhodnabavfgDydbgvaxSmbaDhqinaqabavgocdtfgkydbgvBdbakhqaoav9hmbkkaDaoBdbkaxcefgxae9hmbkcbhvabhocbhkindndnavalydbgq9hmbdnavaoydbgq9hmbaoakBdbakcefhkxdkaoabaqcdtfydbBdbxekaoabaqcdtfydbBdbkaoclfhoalclfhlaeavcefgv9hmbkakk;Jiilud99duabcbaecltz:rjjjbhvdnalTmbadhoaihralhwinarcwfIdbhDarclfIdbhqavaoydbcltfgkarIdbakIdbMUdbakclfgxaqaxIdbMUdbakcwfgxaDaxIdbMUdbakcxfgkakIdbJbbjZMUdbaoclfhoarcxfhrawcufgwmbkkdnaeTmbavhraehkinarcxfgoIdbhDaocbBdbararIdbJbbbbJbbjZaD:vaDJbbbb9BEgDNUdbarclfgoaDaoIdbNUdbarcwfgoaDaoIdbNUdbarczfhrakcufgkmbkkdnalTmbinavadydbcltfgrcxfgkaicwfIdbarcwfIdb:tgDaDNaiIdbarIdb:tgDaDNaiclfIdbarclfIdb:tgDaDNMMgDakIdbgqaqaD9DEUdbadclfhdaicxfhialcufglmbkkdnaeTmbavcxfhrinabarIdbUdbarczfhrabclfhbaecufgembkkk8MbabaeadaialavcbcbcbcbcbaoarawaDz:bjjjbk8MbabaeadaialavaoarawaDaqakaxamaPz:bjjjbkRbababaeadaialavaoarawaDaqakaxcjjjjdVamz:bjjjbk:p8Koque99due99iuq998Jjjjjbc;Wb9Rgq8Kjjjjbcbhkaqcxfcbc;Kbz:rjjjb8Aaqcualcx2alc;v:Q;v:Qe0Ecbyd1:jjjbHjjjjbbgxBdxaqceBd2axaialavcbcbz:ejjjb8AaqcualcdtalcFFFFi0Egmcbyd1:jjjbHjjjjbbgiBdzaqcdBd2dndnJFF959eJbbjZawJbbjZawJbbjZ9DE:vawJ9VO:d869DEgw:lJbbb9p9DTmbaw:OhPxekcjjjj94hPkadci9Uhsarco9UhzdndnaombaPcd9imekdnalTmbaPcuf:YhwdnaoTmbcbhvaihHaxhOindndnaoavfRbbceGTmbavcjjjjlVhAxekdndnaOclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkaAcqthAdndnaOcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaAaXVhAdndnaOIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaAaXcCtVhAkaHaABdbaHclfhHaOcxfhOalavcefgv9hmbxdkkaxhvaihOalhHindndnavIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkaAcCthAdndnavclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaXcqtaAVhAdndnavcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaOaAaXVBdbavcxfhvaOclfhOaHcufgHmbkkadTmbcbhkaehvcbhOinakaiavclfydbcdtfydbgHaiavcwfydbcdtfydbgA9haiavydbcdtfydbgXaH9haXaA9hGGfhkavcxfhvaOcifgOad6mbkkarci9UhQdndnaz:Z:rJbbbZMgw:lJbbb9p9DTmbaw:Ohvxekcjjjj94hvkaQ:ZhLcbhKc:bwhHdndninashYaHhXaPhrakg8AaQ9pmeaXar9Rcd9imeavaXcufavaX9iEarcefavar9kEhzdnalTmbazcuf:YhwdnaoTmbcbhOaihPaxhvindndnaoaOfRbbceGTmbaOcjjjjlVhHxekdndnavclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhHxekcjjjj94hHkaHcqthHdndnavcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohsxekcjjjj94hskaHasVhHdndnavIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohsxekcjjjj94hskaHascCtVhHkaPaHBdbaPclfhPavcxfhvalaOcefgO9hmbxdkkaxhvaihOalhPindndnavIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhHxekcjjjj94hHkaHcCthHdndnavclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohsxekcjjjj94hskascqtaHVhHdndnavcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohsxekcjjjj94hskaOaHasVBdbavcxfhvaOclfhOaPcufgPmbkkcbhOdnadTmbaehvcbhPinaOaiavclfydbcdtfydbgHaiavcwfydbcdtfydbgs9haiavydbcdtfydbgAaH9haAas9hGGfhOavcxfhvaPcifgPad6mbkkaYhsaOhkaXhHazhPdnaOaQ9nmbaOhsa8AhkazhHarhPkdndnaKcl0mbdnaY:Zgwa8A:ZgC:taz:YgEar:Y:tg3aEaX:Y:tg5aO:Zg8EaL:tNNNawaL:ta5NaCa8E:tNaCaL:ta3Na8Eaw:tNM:vaEMJbbbZMgw:lJbbb9p9DTmbaw:Ohvxdkcjjjj94hvxekaPaHfcd9ThvkaKcefgKcs9hmbxdkka8AhkarhPkdndndnakmbJbbjZhwcbhicdhvaDmexdkalcd4alfhHcehOinaOgvcethOavaH6mbkcbhOaqcuavcdtgravcFFFFi0Ecbyd1:jjjbHjjjjbbgzBdCaqciBd2aqamcbyd1:jjjbHjjjjbbgXBdKaqclBd2dndndndnalTmbaPcuf:YhwaoTmecbhOaihHaxhPindndnaoaOfRbbceGTmbaOcjjjjlVhsxekdndnaPclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohsxekcjjjj94hskascqthsdndnaPcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkasaAVhsdndnaPIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkasaAcCtVhskaHasBdbaHclfhHaPcxfhPalaOcefgO9hmbxikkazcFearz:rjjjb8AcbhrcbhvxdkaxhOaihPalhHindndnaOIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohsxekcjjjj94hskascCthsdndnaOclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkaAcqtasVhsdndnaOcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkaPasaAVBdbaOcxfhOaPclfhPaHcufgHmbkkazcFearz:rjjjbhAavcufhocbhrcbhzindndndnaAaiazcdtgKfydbgHcm4aH7c:v;t;h;Ev2gvcs4av7aoGgPcdtfgsydbgOcuSmbcehvinaiaOcdtgOfydbaHSmdaPavfhOavcefhvaAaOaoGgPcdtfgsydbgOcu9hmbkkasazBdbarhvarcefhrxekaXaOfydbhvkaXaKfavBdbazcefgzal9hmbkcuarc8S2gOarc;D;O;f8U0EhvkcbhAaqavcbyd1:jjjbHjjjjbbgvBd3aqcvBd2avcbaOz:rjjjbhOdnadTmbaehiinJbbnnJbbjZaXaiydbgHcdtfydbgvaXaiclfydbgPcdtfydbgzSavaXaicwfydbgscdtfydbgKSGgoEh8FdnaxaPcx2fgPIdbaxaHcx2fgHIdbg8E:tgCaxascx2fgsIdlaHIdlg3:tgwNasIdba8E:tgEaPIdla3:tgaN:tgLaLNaaasIdwaHIdwg5:tghNawaPIdwa5:tgaN:tgwawNaaaENahaCN:tgCaCNMM:rgEJbbbb9ETmbaLaE:vhLaCaE:vhCawaE:vhwkaOavc8S2fgvavIdbawa8FaE:rNgEawNNgaMUdbavaCaEaCNghNggavIdlMUdlavaLaEaLNg8FNg8JavIdwMUdwavahawNghavIdxMUdxava8FawNg8KavIdzMUdzava8FaCNg8FavIdCMUdCavawaEaLa5Nawa8ENa3aCNMM:mg3Ng8ENgwavIdKMUdKavaCa8ENgCavId3MUd3avaLa8ENgLavIdaMUdaava8Ea3Ng8EavId8KMUd8KavaEavIdyMUdydnaombaOazc8S2fgvaaavIdbMUdbavagavIdlMUdlava8JavIdwMUdwavahavIdxMUdxava8KavIdzMUdzava8FavIdCMUdCavawavIdKMUdKavaCavId3MUd3avaLavIdaMUdaava8EavId8KMUd8KavaEavIdyMUdyaOaKc8S2fgvaaavIdbMUdbavagavIdlMUdlava8JavIdwMUdwavahavIdxMUdxava8KavIdzMUdzava8FavIdCMUdCavawavIdKMUdKavaCavId3MUd3avaLavIdaMUdaava8EavId8KMUd8KavaEavIdyMUdykaicxfhiaAcifgAad6mbkkcbhHaqcuarcdtgvarcFFFFi0Egicbyd1:jjjbHjjjjbbgPBdaaqcoBd2aqaicbyd1:jjjbHjjjjbbgiBd8KaqcrBd2aPcFeavz:rjjjbhzdnalTmbaXhPinJbbbbJbbjZaOaPydbgsc8S2fgvIdygw:vawJbbbb9BEavIdwaxcwfIdbgwNavIdzaxIdbgCNavIdaMgLaLMMawNavIdlaxclfIdbgLNavIdCawNavId3MgwawMMaLNavIdbaCNavIdxaLNavIdKMgwawMMaCNavId8KMMM:lNhwdndnazascdtgvfgsydbcuSmbaiavfIdbaw9ETmekasaHBdbaiavfawUdbkaPclfhPaxcxfhxalaHcefgH9hmbkkJbbbbhwdnarTmbinaiIdbgCawawaC9DEhwaiclfhiarcufgrmbkkakcd4akfhOcehiinaigvcethiavaO6mbkcbhiaqcuavcdtgOavcFFFFi0Ecbyd1:jjjbHjjjjbbgPBdyaPcFeaOz:rjjjbhsdnadTmbavcufhAcbhrcbhxindnaXaeaxcdtfgvydbcdtfydbgiaXavclfydbcdtfydbgOSmbaiaXavcwfydbcdtfydbgvSmbaOavSmbazavcdtfydbhHdndnazaOcdtfydbgvazaicdtfydbgi9pmbavaH9pmbaHhlaihoavhHxekdnaHai9pmbaHav9pmbaihlavhoxekavhlaHhoaihHkabarcx2fgvaHBdbavcwfaoBdbavclfalBdbdnasaoc:3F;N8N2alc:F:b:DD27aHc;D;O:B8J27aAGgOcdtfgvydbgicuSmbcehPinaPhvdnabaicx2fgiydbaH9hmbaiydlal9hmbaiydwaoSmikavcefhPasaOavfaAGgOcdtfgvydbgicu9hmbkkavarBdbarcefhrkaxcifgxad6mbkarci2hikdnaDmbcwhvxdkaw:rhwcwhvkaDawUdbkavcdthvdninavTmeavc98fgvaqcxffydbcbyd:m:jjjbH:bjjjbbxbkkaqc;Wbf8Kjjjjbaik:2ldwue9:8Jjjjjbc;Wb9Rgr8Kjjjjbcbhwarcxfcbc;Kbz:rjjjb8AdnabaeSmbabaeadcdtz:qjjjb8AkarcualcdtalcFFFFi0EgDcbyd1:jjjbHjjjjbbgqBdxarceBd2aqcbaialavcbarcxfz:djjjbcualcx2alc;v:Q;v:Qe0Ecbyd1:jjjbHjjjjbbhkarcxfaryd2gxcdtgmfakBdbaraxcefgPBd2akaialavcbcbz:ejjjb8AarcxfaPcdtfaDcbyd1:jjjbHjjjjbbgvBdbaraxcdfgiBd2arcxfaicdtfcuavalaeadaqz:fjjjbgecltaecjjjjiGEcbyd1:jjjbHjjjjbbgiBdbaiaeavakalz:gjjjbdnadTmbaoaoNhocbhwabhlcbhkindnaiavalydbgecdtfydbcdtfIdbao9ETmbalclf8PdbhsabawcdtfgqaeBdbaqclfas83dbawcifhwkalcxfhlakcifgkad6mbkkaxcifhlamarcxffcwfhkdninalTmeakydbcbyd:m:jjjbH:bjjjbbakc98fhkalcufhlxbkkarc;Wbf8Kjjjjbawk:FCoDud99rue99iul998Jjjjjbc;Wb9Rgw8KjjjjbdndnarmbcbhDxekawcxfcbc;Kbz:rjjjb8Aawcuadcx2adc;v:Q;v:Qe0Ecbyd1:jjjbHjjjjbbgqBdxawceBd2aqaeadaicbcbz:ejjjb8AawcuadcdtadcFFFFi0Egkcbyd1:jjjbHjjjjbbgxBdzawcdBd2adcd4adfhmceheinaegicetheaiam6mbkcbhPawcuaicdtgsaicFFFFi0Ecbyd1:jjjbHjjjjbbgzBdCawciBd2dndnar:ZgH:rJbbbZMgO:lJbbb9p9DTmbaO:Ohexekcjjjj94hekaicufhAc:bwhmcbhCadhXcbhQinaChLaeamgKcufaeaK9iEaPgDcefaeaD9kEhYdndnadTmbaYcuf:YhOaqhiaxheadhmindndnaiIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhCxekcjjjj94hCkaCcCthCdndnaiclfIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhExekcjjjj94hEkaEcqtaCVhCdndnaicwfIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhExekcjjjj94hEkaeaCaEVBdbaicxfhiaeclfheamcufgmmbkazcFeasz:rjjjbh3cbh5cbhPindna3axaPcdtfydbgCcm4aC7c:v;t;h;Ev2gics4ai7aAGgmcdtfgEydbgecuSmbaeaCSmbcehiina3amaifaAGgmcdtfgEydbgecuSmeaicefhiaeaC9hmbkkaEaCBdba5aecuSfh5aPcefgPad9hmbxdkkazcFeasz:rjjjb8Acbh5kaDaYa5ar0giEhPaLa5aiEhCdna5arSmbaYaKaiEgmaP9Rcd9imbdndnaQcl0mbdnaX:ZgOaL:Zg8A:taY:Yg8EaD:Y:tg8Fa8EaK:Y:tgaa5:ZghaH:tNNNaOaH:taaNa8Aah:tNa8AaH:ta8FNahaO:tNM:va8EMJbbbZMgO:lJbbb9p9DTmbaO:Ohexdkcjjjj94hexekaPamfcd9Theka5aXaiEhXaQcefgQcs9hmekkdndnaCmbcihicbhDxekcbhiawakcbyd1:jjjbHjjjjbbg5BdKawclBd2aPcuf:Yh8AdndnadTmbaqhiaxheadhmindndnaiIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhCxekcjjjj94hCkaCcCthCdndnaiclfIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhExekcjjjj94hEkaEcqtaCVhCdndnaicwfIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhExekcjjjj94hEkaeaCaEVBdbaicxfhiaeclfheamcufgmmbkazcFeasz:rjjjbh3cbhDcbhYindndndna3axaYcdtgKfydbgCcm4aC7c:v;t;h;Ev2gics4ai7aAGgmcdtfgEydbgecuSmbcehiinaxaecdtgefydbaCSmdamaifheaicefhia3aeaAGgmcdtfgEydbgecu9hmbkkaEaYBdbaDhiaDcefhDxeka5aefydbhika5aKfaiBdbaYcefgYad9hmbkcuaDc32giaDc;j:KM;jb0EhexekazcFeasz:rjjjb8AcbhDcbhekawaecbyd1:jjjbHjjjjbbgeBd3awcvBd2aecbaiz:rjjjbhEavcd4hKdnadTmbdnalTmbaKcdth3a5hCaqhealhmadhAinaEaCydbc32fgiaeIdbaiIdbMUdbaiaeclfIdbaiIdlMUdlaiaecwfIdbaiIdwMUdwaiamIdbaiIdxMUdxaiamclfIdbaiIdzMUdzaiamcwfIdbaiIdCMUdCaiaiIdKJbbjZMUdKaCclfhCaecxfheama3fhmaAcufgAmbxdkka5hmaqheadhCinaEamydbc32fgiaeIdbaiIdbMUdbaiaeclfIdbaiIdlMUdlaiaecwfIdbaiIdwMUdwaiaiIdxJbbbbMUdxaiaiIdzJbbbbMUdzaiaiIdCJbbbbMUdCaiaiIdKJbbjZMUdKamclfhmaecxfheaCcufgCmbkkdnaDTmbaEhiaDheinaiaiIdbJbbbbJbbjZaicKfIdbgO:vaOJbbbb9BEgONUdbaiclfgmaOamIdbNUdbaicwfgmaOamIdbNUdbaicxfgmaOamIdbNUdbaiczfgmaOamIdbNUdbaicCfgmaOamIdbNUdbaic3fhiaecufgembkkcbhCawcuaDcdtgYaDcFFFFi0Egicbyd1:jjjbHjjjjbbgeBdaawcoBd2awaicbyd1:jjjbHjjjjbbg3Bd8KaecFeaYz:rjjjbhxdnadTmbJbbjZJbbjZa8A:vaPceSEaoNgOaONh8AaKcdthPalheina8Aaec;81jjbalEgmIdwaEa5ydbgAc32fgiIdC:tgOaONamIdbaiIdx:tgOaONamIdlaiIdz:tgOaONMMNaqcwfIdbaiIdw:tgOaONaqIdbaiIdb:tgOaONaqclfIdbaiIdl:tgOaONMMMhOdndnaxaAcdtgifgmydbcuSmba3aifIdbaO9ETmekamaCBdba3aifaOUdbka5clfh5aqcxfhqaeaPfheadaCcefgC9hmbkkabaxaYz:qjjjb8AcrhikaicdthiinaiTmeaic98fgiawcxffydbcbyd:m:jjjbH:bjjjbbxbkkawc;Wbf8KjjjjbaDk:Ydidui99ducbhi8Jjjjjbca9Rglczfcwfcbyd11jjbBdbalcb8Pdj1jjb83izalcwfcbydN1jjbBdbalcb8Pd:m1jjb83ibdndnaembJbbjFhvJbbjFhoJbbjFhrxekadcd4cdthwincbhdinalczfadfgDabadfIdbgvaDIdbgoaoav9EEUdbaladfgDavaDIdbgoaoav9DEUdbadclfgdcx9hmbkabawfhbaicefgiae9hmbkalIdwalIdK:thralIdlalIdC:thoalIdbalIdz:thvkJbbbbavavJbbbb9DEgvaoaoav9DEgvararav9DEk9DeeuabcFeaicdtz:rjjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk9teiucbcbyd:q:jjjbgeabcifc98GfgbBd:q:jjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;teeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk:3eedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdxaialBdwaialBdlaialBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd:q:jjjbgeabcrfc94GfgbBd:q:jjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd:q:jjjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd:q:jjjbfgdBd:q:jjjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akkk:Iedbcjwk1eFFuuFFuuFFuuFFuFFFuFFFuFbbbbbbbbebbbdbbbbbbbebbbebbbdbbbbbbbbbbbeeeeebebbebbebebbbeebbbbbbbbbbbbeeeeeebebbeeebeebbbbebebbbbbbbbbbbbbbbbbbc1Dkxebbbdbbb:GNbb"),{}).then(function(a){(B=a.instance).exports.__wasm_call_ctors()});function I(a){if(!a)throw new Error("Assertion failed")}function Q(a){return new Uint8Array(a.buffer,a.byteOffset,a.byteLength)}function C(a,i,t,e,o,s,n,r){var c=B.exports.sbrk,D=c(4*r),b=c(t*e),h=c(t*s),w=new Uint8Array(B.exports.memory.buffer);w.set(Q(i),b),o&&w.set(Q(o),h);var f=a(D,b,t,e,h,s,n,r);new Uint8Array(B.exports.memory.buffer);var p=new Uint32Array(f);return Q(p).set(w.subarray(D,D+4*f)),c(D-c(0)),p}var E={LockBorder:1,Sparse:2,ErrorAbsolute:4,Prune:8,Regularize:16,Permissive:32,_InternalDebug:1<<30}})(),function(){var B,A=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var g=WebAssembly.instantiate(function(E){for(var a=new Uint8Array(E.length),i=0;i<E.length;++i){var t=E.charCodeAt(i);a[i]=t>96?t-97:t>64?t-39:t+4}var e=0;for(i=0;i<E.length;++i)a[e++]=a[i]<60?A[a[i]]:64*(a[i]-60)+a[++i];return a.buffer.slice(0,e)}("b9H79TebbbeVx9Geueu9Geub9Gbb9Giuuueu9Gmuuuuuuuuuuu9999eu9Gvuuuuueu9Gwuuuuuuuub9Gxuuuuuuuuuuuueu9Gkuuuuuuuuuu99eu9Gouuuuuub9Gruuuuuuub9GluuuubiAOdilvorwDqqDkbiibeilve9Weiiviebeoweuec;G:Odkr;qeDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9I919P29K9nW79O2Wt79c9V919U9KbeX9TW79O9V9Wt9F9I919P29K9nW79O2Wt7bo39TW79O9V9Wt9F9J9V9T9W91tWJ2917tWV9c9V919U9K7br39TW79O9V9Wt9F9J9V9T9W91tW9nW79O2Wt9c9V919U9K7bDE9TW79O9V9Wt9F9J9V9T9W91tW9t9W9OWVW9c9V919U9K7bqL9TW79O9V9Wt9F9V9Wt9P9T9P96W9nW79O2Wtbkl79IV9RbxDwebcekdszq:x9DOdbkIbabaec9:fgefcufae9Ugeabci9Uadfcufad9Ugbaeab0Ek:w8KDPue99eux99dui99euo99iu8Jjjjjbc:WD9Rgm8KjjjjbdndnalmbcbhPxekamc:Cwfcbc;Kbz:ojjjb8Adndnalcb9imbaoal9nmbamcuaocdtaocFFFFi0Egscbyd;u1jjbHjjjjbbgzBd:CwamceBd;8wamascbyd;u1jjbHjjjjbbgHBd:GwamcdBd;8wamcualcdtalcFFFFi0Ecbyd;u1jjbHjjjjbbgOBd:KwamciBd;8waihsalhAinazasydbcdtfcbBdbasclfhsaAcufgAmbkaihsalhAinazasydbcdtfgCaCydbcefBdbasclfhsaAcufgAmbkaihsalhCcbhXindnazasydbcdtgQfgAydbcb9imbaHaQfaXBdbaAaAydbgQcjjjj94VBdbaQaXfhXkasclfhsaCcufgCmbkalci9UhLdnalci6mbcbhsaihAinaAcwfydbhCaAclfydbhXaHaAydbcdtfgQaQydbgQcefBdbaOaQcdtfasBdbaHaXcdtfgXaXydbgXcefBdbaOaXcdtfasBdbaHaCcdtfgCaCydbgCcefBdbaOaCcdtfasBdbaAcxfhAaLascefgs9hmbkkaihsalhAindnazasydbcdtgCfgXydbgQcu9kmbaXaQcFFFFrGgQBdbaHaCfgCaCydbaQ9RBdbkasclfhsaAcufgAmbxdkkamcuaocdtgsaocFFFFi0EgAcbyd;u1jjbHjjjjbbgzBd:CwamceBd;8wamaAcbyd;u1jjbHjjjjbbgHBd:GwamcdBd;8wamcualcdtalcFFFFi0Ecbyd;u1jjbHjjjjbbgOBd:KwamciBd;8wazcbasz:ojjjbhXalci9UhLaihsalhAinaXasydbcdtfgCaCydbcefBdbasclfhsaAcufgAmbkdnaoTmbcbhsaHhAaXhCaohQinaAasBdbaAclfhAaCydbasfhsaCclfhCaQcufgQmbkkdnalci6mbcbhsaihAinaAcwfydbhCaAclfydbhQaHaAydbcdtfgKaKydbgKcefBdbaOaKcdtfasBdbaHaQcdtfgQaQydbgQcefBdbaOaQcdtfasBdbaHaCcdtfgCaCydbgCcefBdbaOaCcdtfasBdbaAcxfhAaLascefgs9hmbkkaoTmbcbhsaohAinaHasfgCaCydbaXasfydb9RBdbasclfhsaAcufgAmbkkamaLcbyd;u1jjbHjjjjbbgsBd:OwamclBd;8wascbaLz:ojjjbhYamcuaLcK2alcjjjjd0Ecbyd;u1jjbHjjjjbbg8ABd:SwamcvBd;8wJbbbbhEdnalci6g3mbarcd4hKaihAa8AhsaLhrJbbbbh5inavaAclfydbaK2cdtfgCIdlh8EavaAydbaK2cdtfgXIdlhEavaAcwfydbaK2cdtfgQIdlh8FaCIdwhaaXIdwhhaQIdwhgasaCIdbg8JaXIdbg8KMaQIdbg8LMJbbnn:vUdbasclfaXIdlaCIdlMaQIdlMJbbnn:vUdbaQIdwh8MaCIdwh8NaXIdwhyascxfa8EaE:tg8Eagah:tggNa8FaE:tg8Faaah:tgaN:tgEJbbbbJbbjZa8Ja8K:tg8Ja8FNa8La8K:tg8Ka8EN:tghahNaEaENaaa8KNaga8JN:tgEaENMM:rg8K:va8KJbbbb9BEg8ENUdbasczfaEa8ENUdbascCfaha8ENUdbascwfa8Maya8NMMJbbnn:vUdba5a8KMh5aAcxfhAascKfhsarcufgrmbka5aL:Z:vJbbbZNhEkamcuaLcdtalcFFFF970Ecbyd;u1jjbHjjjjbbgCBd:WwamcoBd;8waEaq:ZNhEdna3mbcbhsaChAinaAasBdbaAclfhAaLascefgs9hmbkkaE:rhhcuh8PamcuaLcltalcFFFFd0Ecbyd;u1jjbHjjjjbbgIBd:0wamcrBd;8wcbaIa8AaCaLz:djjjb8AJFFuuhyJFFuuh8RJFFuuh8Sdnalci6gXmbJFFuuh8Sa8AhsaLhAJFFuuh8RJFFuuhyinascwfIdbgEayayaE9EEhyasclfIdbgEa8Ra8RaE9EEh8RasIdbgEa8Sa8SaE9EEh8SascKfhsaAcufgAmbkkahJbbbZNhgamaocetgscuaocu9kEcbyd;u1jjbHjjjjbbgABd:4waAcFeasz:ojjjbhCdnaXmbcbhAJFFuuhEa8Ahscuh8PinascwfIdbay:tghahNasIdba8S:tghahNasclfIdba8R:tghahNMM:rghaEa8PcuSahaE9DVgXEhEaAa8PaXEh8PascKfhsaLaAcefgA9hmbkkamczfcbcjwz:ojjjb8Aamcwf9cb83ibam9cb83ibagaxNhRJbbjZak:th8Ncbh8UJbbbbh8VJbbbbh8WJbbbbh8XJbbbbh8YJbbbbh8ZJbbbbh80cbh81cbhPinJbbbbhEdna8UTmbJbbjZa8U:Z:vhEkJbbbbhhdna80a80Na8Ya8YNa8Za8ZNMMg8KJbbbb9BmbJbbjZa8K:r:vhhka8XaENh5a8WaENh8Fa8VaENhaa8PhQdndndndndna8UaPVTmbamydwgBTmea80ahNh8Ja8ZahNh8La8YahNh8Maeamydbcdtfh83cbh3JFFuuhEcvhXcuhQindnaza83a3cdtfydbcdtgsfydbgvTmbaOaHasfydbcdtfhAindndnaCaiaAydbgKcx2fgsclfydbgrcetf8Vebcs4aCasydbgLcetf8Vebcs4faCascwfydbglcetf8Vebcs4fgombcbhsxekcehsazaLcdtfydbgLceSmbcehsazarcdtfydbgrceSmbcehsazalcdtfydbglceSmbdnarcdSaLcdSfalcdSfcd6mbaocefhsxekaocdfhskdnasaX9kmba8AaKcK2fgLIdwa5:thhaLIdla8F:th8KaLIdbaa:th8EdndnakJbbbb9DTmba8E:lg8Ea8K:lg8Ka8Ea8K9EEg8Kah:lgha8Kah9EEag:vJbbjZMhhxekahahNa8Ea8ENa8Ka8KNMM:rag:va8NNJbbjZMJ9VO:d86JbbjZaLIdCa8JNaLIdxa8MNa8LaLIdzNMMakN:tghahJ9VO:d869DENhhkaKaQasaX6ahaE9DVgLEhQasaXaLEhXahaEaLEhEkaAclfhAavcufgvmbkka3cefg3aB9hmbkkaQcu9hmekama5Ud:ODama8FUd:KDamaaUd:GDamcuBd:qDamcFFF;7rBdjDaIcba8AaYamc:GDfakJbbbb9Damc:qDfamcjDfz:ejjjbamyd:qDhQdndnaxJbbbb9ETmba8UaD6mbaQcuSmeceh3amIdjDaR9EmixdkaQcu9hmekdna8UTmbdnamydlgza8Uci2fgsciGTmbadasfcba8Uazcu7fciGcefz:ojjjb8AkabaPcltfgzam8Pib83dbazcwfamcwf8Pib83dbaPcefhPkc3hzinazc98Smvamc:Cwfazfydbcbyd;y1jjbH:bjjjbbazc98fhzxbkkcbh3a8Uaq9pmbamydwaCaiaQcx2fgsydbcetf8Vebcs4aCascwfydbcetf8Vebcs4faCasclfydbcetf8Vebcs4ffaw9nmekcbhscbhAdna81TmbcbhAamczfhXinamczfaAcdtfaXydbgLBdbaXclfhXaAaYaLfRbbTfhAa81cufg81mbkkamydwhlamydbhXam9cu83i:GDam9cu83i:ODam9cu83i:qDam9cu83i:yDaAc;8eaAclfc:bd6Eh81inamcjDfasfcFFF;7rBdbasclfgscz9hmbka81cdthBdnalTmbaeaXcdtfhocbhrindnazaoarcdtfydbcdtgsfydbgvTmbaOaHasfydbcdtfhAcuhLcuhsinazaiaAydbgKcx2fgXclfydbcdtfydbazaXydbcdtfydbfazaXcwfydbcdtfydbfgXasaXas6gXEhsaKaLaXEhLaAclfhAavcufgvmbkaLcuSmba8AaLcK2fgAIdway:tgEaENaAIdba8S:tgEaENaAIdla8R:tgEaENMM:rhEcbhAindndnasamc:qDfaAfgvydbgX6mbasaX9hmeaEamcjDfaAfIdb9FTmekavasBdbamc:GDfaAfaLBdbamcjDfaAfaEUdbxdkaAclfgAcz9hmbkkarcefgral9hmbkkamczfaBfhLcbhscbhAindnamc:GDfasfydbgXcuSmbaLaAcdtfaXBdbaAcefhAkasclfgscz9hmbkaAa81fg81TmbJFFuuhhcuhKamczfhsa81hvcuhLina8AasydbgXcK2fgAIdway:tgEaENaAIdba8S:tgEaENaAIdla8R:tgEaENMM:rhEdndnazaiaXcx2fgAclfydbcdtfydbazaAydbcdtfydbfazaAcwfydbcdtfydbfgAaL6mbaAaL9hmeaEah9DTmekaEhhaAhLaXhKkasclfhsavcufgvmbkaKcuSmbaKhQkdnamaiaQcx2fgrydbarclfydbarcwfydbaCabaeadaPawaqa3z:fjjjbTmbaPcefhPJbbbbh8VJbbbbh8WJbbbbh8XJbbbbh8YJbbbbh8ZJbbbbh80kcbhXinaOaHaraXcdtfydbcdtgAfydbcdtfgKhsazaAfgvydbgLhAdnaLTmbdninasydbaQSmeasclfhsaAcufgATmdxbkkasaKaLcdtfc98fydbBdbavavydbcufBdbkaXcefgXci9hmbka8AaQcK2fgsIdbhEasIdlhhasIdwh8KasIdxh8EasIdzh5asIdCh8FaYaQfce86bba80a8FMh80a8Za5Mh8Za8Ya8EMh8Ya8Xa8KMh8Xa8WahMh8Wa8VaEMh8Vamydxh8Uxbkkamc:WDf8KjjjjbaPk;Vvivuv99lu8Jjjjjbca9Rgv8Kjjjjbdndnalcw0mbaiydbhoaeabcitfgralcdtcufBdlaraoBdbdnalcd6mbaiclfhoalcufhwarcxfhrinaoydbhDarcuBdbarc98faDBdbarcwfhraoclfhoawcufgwmbkkalabfhrxekcbhDavczfcwfcbBdbav9cb83izavcwfcbBdbav9cb83ibJbbjZhqJbbjZhkinadaiaDcdtfydbcK2fhwcbhrinavczfarfgoawarfIdbgxaoIdbgm:tgPakNamMgmUdbavarfgoaPaxam:tNaoIdbMUdbarclfgrcx9hmbkJbbjZaqJbbjZMgq:vhkaDcefgDal9hmbkcbhoadcbcecdavIdlgxavIdwgm9GEgravIdbgPam9GEaraPax9GEgscdtgrfhzavczfarfIdbhxaihralhwinaiaocdtfgDydbhHaDarydbgOBdbaraHBdbarclfhraoazaOcK2fIdbax9Dfhoawcufgwmbkaeabcitfhrdndnaocv6mbaoalc98f6mekaraiydbBdbaralcdtcufBdlaiclfhoalcufhwarcxfhrinaoydbhDarcuBdbarc98faDBdbarcwfhraoclfhoawcufgwmbkalabfhrxekaraxUdbararydlc98GasVBdlabcefaeadaiaoz:djjjbhwararydlciGawabcu7fcdtVBdlawaeadaiaocdtfalao9Rz:djjjbhrkavcaf8Kjjjjbark:;idiud99dndnabaecitfgwydlgDciGgqciSmbinabcbaDcd4gDalaqcdtfIdbawIdb:tgkJbbbb9FEgwaecefgefadaialavaoarz:ejjjbak:larIdb9FTmdabawaD7aefgecitfgwydlgDciGgqci9hmbkkabaecitfgeclfhbdnavmbcuhwindnaiaeydbgDfRbbmbadaDcK2fgqIdwalIdw:tgkakNaqIdbalIdb:tgkakNaqIdlalIdl:tgkakNMM:rgkarIdb9DTmbarakUdbaoaDBdbkaecwfheawcefgwabydbcd46mbxdkkcuhwindnaiaeydbgDfRbbmbadaDcK2fgqIdbalIdb:t:lgkaqIdlalIdl:t:lgxakax9EEgkaqIdwalIdw:t:lgxakax9EEgkarIdb9DTmbarakUdbaoaDBdbkaecwfheawcefgwabydbcd46mbkkk;llevudnabydwgxaladcetfgm8Vebcs4alaecetfgP8Vebgscs4falaicetfgz8Vebcs4ffaD0abydxaq9pVakVgDce9hmbavawcltfgxab8Pdb83dbaxcwfabcwfgx8Pdb83dbdnaxydbgqTmbaoabydbcdtfhxaqhsinalaxydbcetfcFFi87ebaxclfhxascufgsmbkkdnabydxglci2gsabydlgxfgkciGTmbarakfcbalaxcu7fciGcefz:ojjjb8Aabydxci2hsabydlhxabydwhqkab9cb83dwababydbaqfBdbabascifc98GaxfBdlaP8Vebhscbhxkdnascztcz91cu9kmbabaxcefBdwaPax87ebaoabydbcdtfaxcdtfaeBdbkdnam8Uebcu9kmbababydwgxcefBdwamax87ebaoabydbcdtfaxcdtfadBdbkdnaz8Uebcu9kmbababydwgxcefBdwazax87ebaoabydbcdtfaxcdtfaiBdbkarabydlfabydxci2faPRbb86bbarabydlfabydxci2fcefamRbb86bbarabydlfabydxci2fcdfazRbb86bbababydxcefBdxaDk8LbabaeadaialavaoarawaDaDaqJbbbbz:cjjjbk;Nkovud99euv99eul998Jjjjjbc:W;ae9Rgo8KjjjjbdndnadTmbavcd4hrcbhwcbhDindnaiaeclfydbar2cdtfgvIdbaiaeydbar2cdtfgqIdbgk:tgxaiaecwfydbar2cdtfgmIdlaqIdlgP:tgsNamIdbak:tgzavIdlaP:tgPN:tgkakNaPamIdwaqIdwgH:tgONasavIdwaH:tgHN:tgPaPNaHazNaOaxN:tgxaxNMM:rgsJbbbb9Bmbaoc:W:qefawcx2fgAakas:vUdwaAaxas:vUdlaAaPas:vUdbaoc8Wfawc8K2fgAaq8Pdb83dbaAav8Pdb83dxaAam8Pdb83dKaAcwfaqcwfydbBdbaAcCfavcwfydbBdbaAcafamcwfydbBdbawcefhwkaecxfheaDcifgDad6mbkab9cb83dbabcyf9cb83dbabcaf9cb83dbabcKf9cb83dbabczf9cb83dbabcwf9cb83dbawTmeaocbBd8Sao9cb83iKao9cb83izaoczfaoc8Wfawci2cxaoc8Sfcbcrz1jjjbaoIdKhCaoIdChXaoIdzhQao9cb83iwao9cb83ibaoaoc:W:qefawcxaoc8Sfcbciz1jjjbJbbjZhkaoIdwgPJbbbbJbbjZaPaPNaoIdbgPaPNaoIdlgsasNMM:rgx:vaxJbbbb9BEgzNhxasazNhsaPazNhzaoc:W:qefheawhvinaecwfIdbaxNaeIdbazNasaeclfIdbNMMgPakaPak9DEhkaecxfheavcufgvmbkabaCUdwabaXUdlabaQUdbabaoId3UdxdndnakJ;n;m;m899FmbJbbbbhPaoc:W:qefheaoc8WfhvinaCavcwfIdb:taecwfIdbgHNaQavIdb:taeIdbgONaXavclfIdb:taeclfIdbgLNMMaxaHNazaONasaLNMM:vgHaPaHaP9EEhPavc8KfhvaecxfheawcufgwmbkabaxUd8KabasUdaabazUd3abaCaxaPN:tUdKabaXasaPN:tUdCabaQazaPN:tUdzabJbbjZakakN:t:rgkUdydndnaxJbbj:;axJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;axJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohexekcjjjj94hekabae86b8UdndnasJbbj:;asJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;asJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohvxekcjjjj94hvkabav86bRdndnazJbbj:;azJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;azJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohqxekcjjjj94hqkabaq86b8SdndnaecKtcK91:YJbb;:9c:vax:t:lavcKtcK91:YJbb;:9c:vas:t:laqcKtcK91:YJbb;:9c:vaz:t:lakMMMJbb;:9cNJbbjZMgk:lJbbb9p9DTmbak:Ohexekcjjjj94hekaecFbaecFb9iEhexekabcjjj;8iBdycFbhekabae86b8Vxekab9cb83dbabcyf9cb83dbabcaf9cb83dbabcKf9cb83dbabczf9cb83dbabcwf9cb83dbkaoc:W;aef8Kjjjjbk;Iwwvul99iud99eue99eul998Jjjjjbcje9Rgr8Kjjjjbavcd4hwaicd4hDdndnaoTmbarc;abfcbaocdtgvz:ojjjb8Aarc;Gbfcbavz:ojjjb8AarhvarcafhiaohqinavcFFF97BdbaicFFF;7rBdbaiclfhiavclfhvaqcufgqmbkdnadTmbcbhkinaeakaD2cdtfgvIdwhxavIdlhmavIdbhPalakaw2cdtfIdbhsarc;abfhzarhiarc;GbfhHarcafhqcj1jjbhvaohOinasavcwfIdbaxNavIdbaPNavclfIdbamNMMgAMhCakhXdnaAas:tgAaqIdbgQ9DgLmbaHydbhXkaHaXBdbakhXdnaCaiIdbgK9EmbazydbhXaKhCkazaXBdbaiaCUdbaqaAaQaLEUdbavcxfhvaqclfhqaHclfhHaiclfhiazclfhzaOcufgOmbkakcefgkad9hmbkkadThkJbbbbhCcbhXarc;abfhvarc;Gbfhicbhqinalavydbgzaw2cdtfIdbalaiydbgHaw2cdtfIdbaeazaD2cdtfgzIdwaeaHaD2cdtfgHIdw:tgsasNazIdbaHIdb:tgsasNazIdlaHIdl:tgsasNMM:rMMgsaCasaC9EgzEhCaqaXazEhXaiclfhiavclfhvaoaqcefgq9hmbkaCJbbbZNhKxekadThkcbhXJbbbbhKkJbbbbhCdnaearc;abfaXcdtgifydbgqaD2cdtfgvIdwaearc;GbfaifydbgzaD2cdtfgiIdwgm:tgsasNavIdbaiIdbgY:tgAaANavIdlaiIdlgP:tgQaQNMM:rgxJbbbb9ETmbaxalaqaw2cdtfIdbMalazaw2cdtfIdb:taxaxM:vhCkasaCNamMhmaQaCNaPMhPaAaCNaYMhYdnakmbaDcdthvawcdthiindnalIdbg8AaecwfIdbam:tgCaCNaeIdbaY:tgsasNaeclfIdbaP:tgAaANMM:rgQMgEaK9ETmbJbbbbhxdnaQJbbbb9ETmbaEaK:taQaQM:vhxkaxaCNamMhmaxaANaPMhPaxasNaYMhYa8AaKaQMMJbbbZNhKkaeavfhealaifhladcufgdmbkkabaKUdxabamUdwabaPUdlabaYUdbarcjef8Kjjjjbkjeeiu8Jjjjjbcj8W9Rgr8Kjjjjbaici2hwdnaiTmbawceawce0EhDarhiinaiaeadRbbcdtfydbBdbadcefhdaiclfhiaDcufgDmbkkabarawaladaoz:hjjjbarcj8Wf8Kjjjjbk:Reeeu8Jjjjjbca9Rgo8Kjjjjbab9cb83dbabcyf9cb83dbabcaf9cb83dbabcKf9cb83dbabczf9cb83dbabcwf9cb83dbdnadTmbaocbBd3ao9cb83iwao9cb83ibaoaeadaialaoc3falEavcbalEcrz1jjjbabao8Pib83dbabao8Piw83dwkaocaf8Kjjjjbk:3lequ8JjjjjbcjP9Rgl8Kjjjjbcbhvalcjxfcbaiz:ojjjb8AdndnadTmbcjehoaehrincuhwarhDcuhqavhkdninawakaoalcjxfaDcefRbbfRbb9RcFeGci6aoalcjxfaDRbbfRbb9RcFeGci6faoalcjxfaDcdfRbbfRbb9RcFeGci6fgxaq9mgmEhwdnammbaxce0mdkaxaqaxaq9kEhqaDcifhDadakcefgk9hmbkkaeawci2fgDcdfRbbhqaDcefRbbhxaDRbbhkaeavci2fgDcifaDawav9Rci2z:rjjjb8Aakalcjxffaocefgo86bbaxalcjxffao86bbaDcdfaq86bbaDcefax86bbaDak86bbaqalcjxffao86bbarcifhravcefgvad9hmbkalcFeaicetz:ojjjbhoadci2gDceaDce0EhqcbhxindnaoaeRbbgkcetfgw8UebgDcu9kmbawax87ebaocjlfaxcdtfabakcdtfydbBdbaxhDaxcefhxkaeaD86bbaecefheaqcufgqmbkaxcdthDxekcbhDkabalcjlfaDz:njjjb8AalcjPf8Kjjjjbk9teiucbcbyd;C1jjbgeabcifc98GfgbBd;C1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;teeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk:3eedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdxaialBdwaialBdlaialBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd;C1jjbgeabcrfc94GfgbBd;C1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd;C1jjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd;C1jjbfgdBd;C1jjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akk:;Deludndndnadch9pmbabaeSmdaeabadfgi9Rcbadcet9R0mekabaead;8qbbxekaeab7ciGhldndndnabae9pmbdnalTmbadhvabhixikdnabciGmbadhvabhixdkadTmiabaeRbb86bbadcufhvdnabcefgiciGmbaecefhexdkavTmiabaeRbe86beadc9:fhvdnabcdfgiciGmbaecdfhexdkavTmiabaeRbd86bdadc99fhvdnabcifgiciGmbaecifhexdkavTmiabaeRbi86biabclfhiaeclfheadc98fhvxekdnalmbdnaiciGTmbadTmlabadcufgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc9:fgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc99fgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc98fgdfaeadfRbb86bbkadcl6mbdnadc98fgocd4cefciGgiTmbaec98fhlabc98fhvinavadfaladfydbBdbadc98fhdaicufgimbkkaocx6mbaec9Wfhvabc9WfhoinaoadfgicxfavadfglcxfydbBdbaicwfalcwfydbBdbaiclfalclfydbBdbaialydbBdbadc9Wfgdci0mbkkadTmdadhidnadciGglTmbaecufhvabcufhoadhiinaoaifavaifRbb86bbaicufhialcufglmbkkadcl6mdaec98fhlabc98fhvinavaifgecifalaifgdcifRbb86bbaecdfadcdfRbb86bbaecefadcefRbb86bbaeadRbb86bbaic98fgimbxikkavcl6mbdnavc98fglcd4cefcrGgdTmbavadcdt9RhvinaiaeydbBdbaeclfheaiclfhiadcufgdmbkkalc36mbinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaiaeydzBdzaiaeydCBdCaiaeydKBdKaiaeyd3Bd3aecafheaicafhiavc9Gfgvci0mbkkavTmbdndnavcrGgdmbavhlxekavc94GhlinaiaeRbb86bbaicefhiaecefheadcufgdmbkkavcw6mbinaiaeRbb86bbaiaeRbe86beaiaeRbd86bdaiaeRbi86biaiaeRbl86blaiaeRbv86bvaiaeRbo86boaiaeRbr86braicwfhiaecwfhealc94fglmbkkabkk9Tdbcjwk9ubbjZbbbbbbbbbbbbbbjZbbbbbbbbbbbbbbjZ86;nAZ86;nAZ86;nAZ86;nA:;86;nAZ86;nAZ86;nAZ86;nA:;86;nAZ86;nAZ86;nAZ86;nA:;bc;uwkxebbbdbbb9GNbb"),{}).then(function(E){(B=E.instance).exports.__wasm_call_ctors()});function I(E){if(!E)throw new Error("Assertion failed")}function Q(E){return new Uint8Array(E.buffer,E.byteOffset,E.byteLength)}function C(E){var a=new Float32Array(B.exports.memory.buffer,E,12);return{centerX:a[0],centerY:a[1],centerZ:a[2],radius:a[3],coneApexX:a[4],coneApexY:a[5],coneApexZ:a[6],coneAxisX:a[7],coneAxisY:a[8],coneAxisZ:a[9],coneCutoff:a[10]}}}();let Hg=0;class WC{constructor(A){if(this.downloadParallelism=A.downloadParallelism==null?8:A.downloadParallelism,this.timeout=A.timeout!=null?A.timeout:5e3,this.renderer=A.renderer,this.zUpToYUpMatrix=new W.Matrix4,this.zUpToYUpMatrix.set(1,0,0,0,0,0,-1,0,0,1,0,0,0,0,0,1),this.maxCachedItems=100,this.proxy=A.proxy,A&&(this.meshCallback=A.meshCallback,this.pointsCallback=A.pointsCallback,A.maxCachedItems!=null&&(this.maxCachedItems=A.maxCachedItems)),this.gltfLoader=new VQ,this.gltfLoader.register(g=>({name:"KHR_spz_gaussian_splats_compression"})),A&&A.dracoLoader)this.gltfLoader.setDRACOLoader(A.dracoLoader),this.hasDracoLoader=!0;else{const g=new AC;g.setDecoderPath("https://storage.googleapis.com/ogc-3d-tiles/draco/"),this.dracoLoader=g,this.gltfLoader.setDRACOLoader(g),this.gltfLoader.hasDracoLoader=!0}if(A&&A.ktx2Loader)this.gltfLoader.setKTX2Loader(A.ktx2Loader),this.hasKTX2Loader=!0;else if(A&&A.renderer){const g=new ng;g.setTranscoderPath("https://storage.googleapis.com/ogc-3d-tiles/basis/").detectSupport(A.renderer),this.ktx2loader=g,this.gltfLoader.setKTX2Loader(g),this.gltfLoader.hasKTX2Loader=!0}this.gltfLoader.setMeshoptDecoder(OC),this.hasMeshOptDecoder=!0,this.b3dmDecoder=new OQ(this.gltfLoader),this.GLTFTileDecoder=new Ya(this.gltfLoader,this.renderer),this.cache=new jQ,this.register={},this.ready=[],this.downloads=[],this.nextReady=[],this.nextDownloads=[]}update(){const A=this;Hg<A.downloadParallelism&&A._download(),A._loadBatch()}_scheduleDownload(A){this.downloads.unshift(A)}_download(){do{if(this.nextDownloads.length==0&&(this._getNextDownloads(),this.nextDownloads.length==0))return;for(;this.nextDownloads.length>0;){const A=this.nextDownloads.shift();A&&A.shouldDoDownload()&&A.doDownload()}}while(Hg<this.downloadParallelism)}_meshReceived(A,g,I,Q,C,E,a){this.ready.unshift([A,g,I,Q,C,E,a])}_loadBatch(){for(this.nextReady.length==0&&this._getNextReady();this.nextReady.length>0;){const A=this.nextReady.shift();if(!A)return;const g=A[0],I=A[1],Q=A[2],C=g.get(Q);C&&I[Q]&&Object.keys(I[Q]).forEach(E=>{const a=I[Q][E];a&&(g.put(Q,a(C)),I[Q][E]=null)}),this.nextReady.length==0&&this._getNextReady()}}_getNextDownloads(){let A=Number.POSITIVE_INFINITY,g=-1;for(let a=this.downloads.length-1;a>=0;a--)this.downloads[a].shouldDoDownload()?this.downloads[a].distanceFunction||this.nextDownloads.push(this.downloads.splice(a,1)[0]):this.downloads.splice(a,1);if(this.nextDownloads.length>0)return;let I,Q=0,C=Number.MAX_SAFE_INTEGER,E=-1;for(let a=this.downloads.length-1;a>=0;a--){const i=this.downloads[a].distanceFunction();i<=A&&(A=i,g=a),Q=Math.max(this.downloads[a].level),this.downloads[a].loadingStrategy!="IMMEDIATE"&&this.downloads[a].level<C&&(C=this.downloads[a].level,E=a)}if(Q>C+4?I=this.downloads.splice(E,1).pop():g>=0&&(I=this.downloads.splice(g,1).pop()),I){this.nextDownloads.push(I);const a=I.getSiblings();for(let i=this.downloads.length-1;i>=0;i--)a.map(t=>t.uuid).includes(this.downloads[i].uuid)&&this.nextDownloads.push(this.downloads.splice(i,1).pop())}}_getNextReady(){let A=Number.POSITIVE_INFINITY,g=-1;for(let I=this.ready.length-1;I>=0;I--)this.ready[I][3]||this.nextReady.push(this.ready.splice(I,1)[0]);if(!(this.nextReady.length>0)){for(let I=this.ready.length-1;I>=0;I--){const Q=this.ready[I][3]()*this.ready[I][5];Q<=A&&(A=Q,g=I)}if(g>=0){const I=this.ready.splice(g,1).pop();this.nextReady.push(I);const Q=I[4]();for(let C=this.ready.length-1;C>=0;C--)Q.map(E=>E.uuid).includes(this.ready[C][6])&&this.nextReady.push(this.ready.splice(C,1).pop())}}}get(A,g,I,Q,C,E,a,i,t,e,o,s){const n=this,r=PC(I),c=new AbortController;if(A.signal.addEventListener("abort",()=>{n.register[r]&&Object.keys(n.register[r]).length!=0||c.abort("user abort")}),!(I.includes(".b3dm")||I.includes(".json")||I.includes(".gltf")||I.includes(".glb")))return void console.error("the 3DTiles cache can only be used to load B3DM, gltf and json data");if(n.register[r]||(n.register[r]={}),n.register[r][g]&&console.error(" a tile should only be loaded once"),n.register[r][g]=Q,n.cache.get(r))this._meshReceived(n.cache,n.register,r,C,E,a,g);else{let D;I.includes(".b3dm")?D=()=>{var b;b=n.proxy?()=>fetch(n.proxy,{method:"POST",body:I,signal:c.signal}):()=>fetch(I,{signal:c.signal}),Hg++,b().then(h=>{if(!h.ok)throw console.error("could not load tile with path : "+I),new Error(`couldn't load "${I}". Request failed with status ${h.status} : ${h.statusText}`);return h.arrayBuffer()}).then(h=>this.b3dmDecoder.parseB3DM(h,w=>{n.meshCallback(w,o)},t,e)).then(h=>{n.cache.put(r,h),this._meshReceived(n.cache,n.register,r,C,E,a,g),n._checkSize()}).catch(h=>{}).finally(()=>{Hg--})}:I.includes(".glb")||I.includes(".gltf")?D=()=>{var b;b=n.proxy?()=>fetch(n.proxy,{method:"POST",body:I,signal:c.signal}):()=>fetch(I,{signal:c.signal}),Hg++,b().then(h=>{if(!h.ok)throw console.error("could not load tile with path : "+I),new Error(`couldn't load "${I}". Request failed with status ${h.status} : ${h.statusText}`);return h.arrayBuffer()}).then(h=>this.GLTFTileDecoder.parseSplats(h,t,e,s)).then(h=>{h.isSplatsData||(t&&h.applyMatrix4(this.zUpToYUpMatrix),h.traverse(w=>{w.isMesh&&(e&&w.applyMatrix4(this.zUpToYUpMatrix),n.meshCallback&&n.meshCallback(w,o)),w.isPoints&&n.pointsCallback&&n.pointsCallback(w,o)})),n.cache.put(r,h),n._meshReceived(n.cache,n.register,r,C,E,a,g),n._checkSize()}).catch(h=>{}).finally(()=>{Hg--})}:I.includes(".json")&&(D=()=>{var b;b=n.proxy?()=>fetch(n.proxy,{method:"POST",body:I,signal:c.signal}):()=>fetch(I,{signal:c.signal}),Hg++,b().then(h=>{if(!h.ok)throw console.error("could not load tile with path : "+I),new Error(`couldn't load "${I}". Request failed with status ${h.status} : ${h.statusText}`);return h.json()}).then(h=>XB(h,I)).then(h=>{n.cache.put(r,h),n._meshReceived(n.cache,n.register,r),n._checkSize()}).catch(h=>{console.error(h)}).finally(()=>{Hg--})}),this._scheduleDownload({shouldDoDownload:()=>!A.signal.aborted&&!!n.register[r]&&Object.keys(n.register[r]).length>0&&!n.cache.get(r),doDownload:D,distanceFunction:C,getSiblings:E,level:a,loadingStrategy:i,uuid:g})}}clear(){const A=this.maxCachedItems;this.maxCachedItems=0,this._checkSize(),this.maxCachedItems=A}invalidate(A,g){const I=PC(A),Q=this;Q.register[I]&&setTimeout(()=>{Q.register&&Q.register[I]&&(delete Q.register[I][g],Q._checkSize())},Q.timeout)}dispose(){let A=this.cache.head();for(this._disposeEntryContent(A);(A=A.next()).key!=null;)this._disposeEntryContent(A);this.cache.reset(),this.cache=void 0,this.register=void 0,this.dracoLoader&&this.dracoLoader.dispose(),this.ktx2loader&&this.ktx2loader.dispose()}_checkSize(){const A=this;let g=0;for(;A.cache.size()>A.maxCachedItems&&g<A.cache.size();){g++;const I=A.cache.head(),Q=A.register[I.key];Q&&(Object.keys(Q).length>0?(A.cache.remove(I.key),A.cache.put(I.key,I.value)):(A.cache.remove(I.key),delete A.register[I.key],A._disposeEntryContent(I)))}}_disposeEntryContent(A){A.value&&(A.value.isSplatsBatch?A.value.remove():A.value.traverse&&A.value.traverse(g=>{if(g.material)if(g.material.length)for(let I=0;I<g.material.length;++I)g.material[I].dispose();else g.material.dispose();g.geometry&&g.geometry.dispose()}))}}function PC(B){for(var A=B.split("/"),g=[],I=0,Q=0;Q<A.length;Q++){var C=A[Q];C!=="."&&C!==""&&C!==".."?g[I++]=C:C===".."&&I>0&&I--}if(I===0)return"/";var E="";for(Q=0;Q<I;Q++)E+="/"+g[Q];return E}const ZA=[];for(let B=0;B<256;++B)ZA.push((B+256).toString(16).slice(1));let ZB;const Fe=new Uint8Array(16),VC={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function ye(B,A,g){const I=(B=B||{}).random??B.rng?.()??function(){if(!ZB){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");ZB=crypto.getRandomValues.bind(crypto)}return ZB(Fe)}();if(I.length<16)throw new Error("Random bytes length must be >= 16");return I[6]=15&I[6]|64,I[8]=63&I[8]|128,function(Q,C=0){return(ZA[Q[C+0]]+ZA[Q[C+1]]+ZA[Q[C+2]]+ZA[Q[C+3]]+"-"+ZA[Q[C+4]]+ZA[Q[C+5]]+"-"+ZA[Q[C+6]]+ZA[Q[C+7]]+"-"+ZA[Q[C+8]]+ZA[Q[C+9]]+"-"+ZA[Q[C+10]]+ZA[Q[C+11]]+ZA[Q[C+12]]+ZA[Q[C+13]]+ZA[Q[C+14]]+ZA[Q[C+15]]).toLowerCase()}(I)}function zC(B,A,g){return VC.randomUUID&&!B?VC.randomUUID():ye(B)}var XC,ZC,II=function(){if(ZC)return XC;function B(I){if(typeof I!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(I))}function A(I,Q){for(var C,E="",a=0,i=-1,t=0,e=0;e<=I.length;++e){if(e<I.length)C=I.charCodeAt(e);else{if(C===47)break;C=47}if(C===47){if(!(i===e-1||t===1))if(i!==e-1&&t===2){if(E.length<2||a!==2||E.charCodeAt(E.length-1)!==46||E.charCodeAt(E.length-2)!==46){if(E.length>2){var o=E.lastIndexOf("/");if(o!==E.length-1){o===-1?(E="",a=0):a=(E=E.slice(0,o)).length-1-E.lastIndexOf("/"),i=e,t=0;continue}}else if(E.length===2||E.length===1){E="",a=0,i=e,t=0;continue}}Q&&(E.length>0?E+="/..":E="..",a=2)}else E.length>0?E+="/"+I.slice(i+1,e):E=I.slice(i+1,e),a=e-i-1;i=e,t=0}else C===46&&t!==-1?++t:t=-1}return E}ZC=1;var g={resolve:function(){for(var I,Q="",C=!1,E=arguments.length-1;E>=-1&&!C;E--){var a;E>=0?a=arguments[E]:(I===void 0&&(I=process.cwd()),a=I),B(a),a.length!==0&&(Q=a+"/"+Q,C=a.charCodeAt(0)===47)}return Q=A(Q,!C),C?Q.length>0?"/"+Q:"/":Q.length>0?Q:"."},normalize:function(I){if(B(I),I.length===0)return".";var Q=I.charCodeAt(0)===47,C=I.charCodeAt(I.length-1)===47;return(I=A(I,!Q)).length!==0||Q||(I="."),I.length>0&&C&&(I+="/"),Q?"/"+I:I},isAbsolute:function(I){return B(I),I.length>0&&I.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var I,Q=0;Q<arguments.length;++Q){var C=arguments[Q];B(C),C.length>0&&(I===void 0?I=C:I+="/"+C)}return I===void 0?".":g.normalize(I)},relative:function(I,Q){if(B(I),B(Q),I===Q||(I=g.resolve(I))===(Q=g.resolve(Q)))return"";for(var C=1;C<I.length&&I.charCodeAt(C)===47;++C);for(var E=I.length,a=E-C,i=1;i<Q.length&&Q.charCodeAt(i)===47;++i);for(var t=Q.length-i,e=a<t?a:t,o=-1,s=0;s<=e;++s){if(s===e){if(t>e){if(Q.charCodeAt(i+s)===47)return Q.slice(i+s+1);if(s===0)return Q.slice(i+s)}else a>e&&(I.charCodeAt(C+s)===47?o=s:s===0&&(o=0));break}var n=I.charCodeAt(C+s);if(n!==Q.charCodeAt(i+s))break;n===47&&(o=s)}var r="";for(s=C+o+1;s<=E;++s)s!==E&&I.charCodeAt(s)!==47||(r.length===0?r+="..":r+="/..");return r.length>0?r+Q.slice(i+o):(i+=o,Q.charCodeAt(i)===47&&++i,Q.slice(i))},_makeLong:function(I){return I},dirname:function(I){if(B(I),I.length===0)return".";for(var Q=I.charCodeAt(0),C=Q===47,E=-1,a=!0,i=I.length-1;i>=1;--i)if((Q=I.charCodeAt(i))===47){if(!a){E=i;break}}else a=!1;return E===-1?C?"/":".":C&&E===1?"//":I.slice(0,E)},basename:function(I,Q){if(Q!==void 0&&typeof Q!="string")throw new TypeError('"ext" argument must be a string');B(I);var C,E=0,a=-1,i=!0;if(Q!==void 0&&Q.length>0&&Q.length<=I.length){if(Q.length===I.length&&Q===I)return"";var t=Q.length-1,e=-1;for(C=I.length-1;C>=0;--C){var o=I.charCodeAt(C);if(o===47){if(!i){E=C+1;break}}else e===-1&&(i=!1,e=C+1),t>=0&&(o===Q.charCodeAt(t)?--t==-1&&(a=C):(t=-1,a=e))}return E===a?a=e:a===-1&&(a=I.length),I.slice(E,a)}for(C=I.length-1;C>=0;--C)if(I.charCodeAt(C)===47){if(!i){E=C+1;break}}else a===-1&&(i=!1,a=C+1);return a===-1?"":I.slice(E,a)},extname:function(I){B(I);for(var Q=-1,C=0,E=-1,a=!0,i=0,t=I.length-1;t>=0;--t){var e=I.charCodeAt(t);if(e!==47)E===-1&&(a=!1,E=t+1),e===46?Q===-1?Q=t:i!==1&&(i=1):Q!==-1&&(i=-1);else if(!a){C=t+1;break}}return Q===-1||E===-1||i===0||i===1&&Q===E-1&&Q===C+1?"":I.slice(Q,E)},format:function(I){if(I===null||typeof I!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof I);return function(Q,C){var E=C.dir||C.root,a=C.base||(C.name||"")+(C.ext||"");return E?E===C.root?E+a:E+Q+a:a}("/",I)},parse:function(I){B(I);var Q={root:"",dir:"",base:"",ext:"",name:""};if(I.length===0)return Q;var C,E=I.charCodeAt(0),a=E===47;a?(Q.root="/",C=1):C=0;for(var i=-1,t=0,e=-1,o=!0,s=I.length-1,n=0;s>=C;--s)if((E=I.charCodeAt(s))!==47)e===-1&&(o=!1,e=s+1),E===46?i===-1?i=s:n!==1&&(n=1):i!==-1&&(n=-1);else if(!o){t=s+1;break}return i===-1||e===-1||n===0||n===1&&i===e-1&&i===t+1?e!==-1&&(Q.base=Q.name=t===0&&a?I.slice(1,e):I.slice(t,e)):(t===0&&a?(Q.name=I.slice(1,i),Q.base=I.slice(1,e)):(Q.name=I.slice(t,i),Q.base=I.slice(t,e)),Q.ext=I.slice(i,e)),t>0?Q.dir=I.slice(0,t-1):a&&(Q.dir="/"),Q},sep:"/",delimiter:":",win32:null,posix:null};return g.posix=g,XC=g}();function zI(){return zI=Object.assign?Object.assign.bind():function(B){for(var A=1;A<arguments.length;A++){var g=arguments[A];for(var I in g)({}).hasOwnProperty.call(g,I)&&(B[I]=g[I])}return B},zI.apply(null,arguments)}var _C={relTol:1e-12,absTol:1e-15,matrix:"Matrix",number:"number",numberFallback:"number",precision:64,predictable:!1,randomSeed:null};function Me(B,A){if(XI(B,A))return B[A];throw typeof B[A]=="function"&&function(g,I){return g==null||typeof g[I]!="function"||_I(g,I)&&Object.getPrototypeOf&&I in Object.getPrototypeOf(g)?!1:_I(Re,I)?!0:!(I in Object.prototype||I in Function.prototype)}(B,A)?new Error('Cannot access method "'+A+'" as a property'):new Error('No access to property "'+A+'"')}function XI(B,A){return!(!function(g){return typeof g=="object"&&g&&g.constructor===Object}(B)&&!Array.isArray(B))&&(!!_I(Ge,A)||!(A in Object.prototype)&&!(A in Function.prototype))}var Ge={length:!0,name:!0},Re={toString:!0,valueOf:!0,toLocaleString:!0};class pe{constructor(A){this.wrappedObject=A,this[Symbol.iterator]=this.entries}keys(){return Object.keys(this.wrappedObject).filter(A=>this.has(A)).values()}get(A){return Me(this.wrappedObject,A)}set(A,g){return function(I,Q,C){if(XI(I,Q))return I[Q]=C,C;throw new Error('No access to property "'+Q+'"')}(this.wrappedObject,A,g),this}has(A){return XI(this.wrappedObject,A)&&A in this.wrappedObject}entries(){return function(A,g){return{next:()=>{var I=A.next();return I.done?I:{value:g(I.value),done:!1}}}}(this.keys(),A=>[A,this.get(A)])}forEach(A){for(var g of this.keys())A(this.get(g),g,this)}delete(A){XI(this.wrappedObject,A)&&delete this.wrappedObject[A]}clear(){for(var A of this.keys())this.delete(A)}get size(){return Object.keys(this.wrappedObject).length}}function mA(B){return typeof B=="number"}function vA(B){return!(!B||typeof B!="object"||typeof B.constructor!="function")&&(B.isBigNumber===!0&&typeof B.constructor.prototype=="object"&&B.constructor.prototype.isBigNumber===!0||typeof B.constructor.isDecimal=="function"&&B.constructor.isDecimal(B)===!0)}function Ne(B){return typeof B=="bigint"}function $C(B){return B&&typeof B=="object"&&Object.getPrototypeOf(B).isComplex===!0||!1}function AE(B){return B&&typeof B=="object"&&Object.getPrototypeOf(B).isFraction===!0||!1}function gE(B){return B&&B.constructor.prototype.isUnit===!0||!1}function Gg(B){return typeof B=="string"}var PA=Array.isArray;function KA(B){return B&&B.constructor.prototype.isMatrix===!0||!1}function ZI(B){return Array.isArray(B)||KA(B)}function ke(B){return B&&B.isDenseMatrix&&B.constructor.prototype.isMatrix===!0||!1}function me(B){return B&&B.isSparseMatrix&&B.constructor.prototype.isMatrix===!0||!1}function Se(B){return B&&B.constructor.prototype.isRange===!0||!1}function _B(B){return B&&B.constructor.prototype.isIndex===!0||!1}function Ue(B){return typeof B=="boolean"}function Le(B){return B&&B.constructor.prototype.isResultSet===!0||!1}function Je(B){return B&&B.constructor.prototype.isHelp===!0||!1}function Ye(B){return typeof B=="function"}function xe(B){return B instanceof Date}function He(B){return B instanceof RegExp}function $B(B){return!(!B||typeof B!="object"||B.constructor!==Object||$C(B)||AE(B))}function Ke(B){return!!B&&(B instanceof Map||B instanceof pe||typeof B.set=="function"&&typeof B.get=="function"&&typeof B.keys=="function"&&typeof B.has=="function")}function je(B){return B===null}function qe(B){return B===void 0}function ve(B){return B&&B.isAccessorNode===!0&&B.constructor.prototype.isNode===!0||!1}function Te(B){return B&&B.isArrayNode===!0&&B.constructor.prototype.isNode===!0||!1}function Oe(B){return B&&B.isAssignmentNode===!0&&B.constructor.prototype.isNode===!0||!1}function We(B){return B&&B.isBlockNode===!0&&B.constructor.prototype.isNode===!0||!1}function Pe(B){return B&&B.isConditionalNode===!0&&B.constructor.prototype.isNode===!0||!1}function Ve(B){return B&&B.isConstantNode===!0&&B.constructor.prototype.isNode===!0||!1}function ze(B){return B&&B.isFunctionAssignmentNode===!0&&B.constructor.prototype.isNode===!0||!1}function Xe(B){return B&&B.isFunctionNode===!0&&B.constructor.prototype.isNode===!0||!1}function Ze(B){return B&&B.isIndexNode===!0&&B.constructor.prototype.isNode===!0||!1}function _e(B){return B&&B.isNode===!0&&B.constructor.prototype.isNode===!0||!1}function $e(B){return B&&B.isObjectNode===!0&&B.constructor.prototype.isNode===!0||!1}function Ai(B){return B&&B.isOperatorNode===!0&&B.constructor.prototype.isNode===!0||!1}function gi(B){return B&&B.isParenthesisNode===!0&&B.constructor.prototype.isNode===!0||!1}function Ii(B){return B&&B.isRangeNode===!0&&B.constructor.prototype.isNode===!0||!1}function Bi(B){return B&&B.isRelationalNode===!0&&B.constructor.prototype.isNode===!0||!1}function Qi(B){return B&&B.isSymbolNode===!0&&B.constructor.prototype.isNode===!0||!1}function Ci(B){return B&&B.constructor.prototype.isChain===!0||!1}function Kg(B){var A=typeof B;return A==="object"?B===null?"null":vA(B)?"BigNumber":B.constructor&&B.constructor.name?B.constructor.name:"Object":A}function jA(B){var A=typeof B;if(A==="number"||A==="bigint"||A==="string"||A==="boolean"||B==null)return B;if(typeof B.clone=="function")return B.clone();if(Array.isArray(B))return B.map(function(g){return jA(g)});if(B instanceof Date)return new Date(B.valueOf());if(vA(B))return B;if($B(B))return function(g,I){var Q={};for(var C in g)_I(g,C)&&(Q[C]=I(g[C]));return Q}(B,jA);if(A==="function")return B;throw new TypeError("Cannot clone: unknown type of value (value: ".concat(B,")"))}function hI(B,A){var g,I,Q;if(Array.isArray(B)){if(!Array.isArray(A)||B.length!==A.length)return!1;for(I=0,Q=B.length;I<Q;I++)if(!hI(B[I],A[I]))return!1;return!0}if(typeof B=="function")return B===A;if(B instanceof Object){if(Array.isArray(A)||!(A instanceof Object))return!1;for(g in B)if(!(g in A)||!hI(B[g],A[g]))return!1;for(g in A)if(!(g in B))return!1;return!0}return B===A}function _I(B,A){return B&&Object.hasOwnProperty.call(B,A)}var BI=function(B){if(B)throw new Error(`The global config is readonly.
|
|
949
|
+
`,_Q=typeof self<"u"&&self.Blob&&new Blob(["URL.revokeObjectURL(import.meta.url);",ZQ],{type:"text/javascript;charset=utf-8"});function Pe(B){let A;try{if(A=_Q&&(self.URL||self.webkitURL).createObjectURL(_Q),!A)throw"";const g=new Worker(A,{type:"module",name:B?.name});return g.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(A)}),g}catch{return new Worker("data:text/javascript;charset=utf-8,"+encodeURIComponent(ZQ),{type:"module",name:B?.name})}}class Ve{constructor(A,g){this.gltfLoader=A,this.renderer=g,this.gltfLoader?.register&&this.gltfLoader.register(()=>({name:"KHR_spz_gaussian_splats_compression"}));try{this.worker=new Pe,this.workerJobId=0,this.workerCallbacks=new Map,this.worker.onmessage=I=>{const{id:Q,pos:C,col:a,c0:e,c1:i,error:t}=I.data||{},E=this.workerCallbacks.get(Q);E&&(this.workerCallbacks.delete(Q),t?E.reject(new Error(t)):E.resolve({pos:C,col:a,c0:e,c1:i}))},this.worker.onerror=I=>{for(const[,Q]of this.workerCallbacks)Q.reject(I instanceof Error?I:new Error(String(I)));this.workerCallbacks.clear()}}catch{this.worker=void 0}}parseSplats(A,g,I,Q){return new Promise(async(C,a)=>{await this.#E(),this.gltfLoader.parse(A,"",async e=>{try{const i=await this.#B(e,Q);C(i)}catch(i){a(i)}},e=>a(e))})}async#B(A,g){if(g)return this.#A(A);const I=A.parser,Q=I.json,C=this.#Q(Q);return C?.type==="SPZ"?this.#C(I,C,A):C?.type==="KHR"?this.#a(I,Q,C,A):C?.type==="ULTRA"?this.#A(A):(A.scene||(A.scene=new x.Object3D),A.scene.asset=A.asset,A.scene)}#Q(A){if(!A?.meshes)return null;for(let g=0;g<A.meshes.length;g++){const I=A.meshes[g];for(let Q=0;Q<(I.primitives?.length||0);Q++){const C=I.primitives[Q],a=C?.extensions;if(a?.KHR_spz_gaussian_splats_compression&&Number.isInteger(a.KHR_spz_gaussian_splats_compression.bufferView))return{mesh:g,prim:Q,type:"SPZ",bv:a.KHR_spz_gaussian_splats_compression.bufferView};if(a?.KHR_gaussian_splatting)return{mesh:g,prim:Q,type:"KHR"};if(a?.ULTRA_splats)return{mesh:g,prim:Q,type:"ULTRA"}}}return null}async#C(A,g,I){let Q=await A.getDependency("bufferView",g.bv);if(Q?.buffer?.byteLength&&(Q=Q.buffer.slice(Q.byteOffset,Q.byteLength+Q.byteOffset)),this.worker){const h=this.workerJobId++,u=new Promise((X,CA)=>{this.workerCallbacks.set(h,{resolve:X,reject:CA})});try{this.worker.postMessage({id:h,op:"decodeSPZ",spz:Q},[Q])}catch(X){throw this.workerCallbacks.delete(h),X}const{pos:f,col:R,c0:G,c1:k}=await u,F=new Float32Array(f),m=new Float32Array(R),N=new Float32Array(G),S=new Float32Array(k),j=new x.BufferAttribute(F,3),z=new x.BufferAttribute(m,4),$=new x.BufferAttribute(N,3),_=new x.BufferAttribute(S,3);return I.scene.traverse(X=>X.dispose&&X.dispose()),{isSplatsData:!0,positions:j,colors:z,cov0:$,cov1:_}}const C=await Oe(Q,{coordinateSystem:"LUF"}),a=C.numPoints??C.positions.length/3,e=new Float32Array(C.positions),i=C.colors??C.color,t=C.alphas??C.opacity??C.opacities,E=new Float32Array(4*a);for(let h=0;h<a;h++){const u=i[3*h+0],f=i[3*h+1],R=i[3*h+2],G=t?this.#e(t[h]):1,[k,F,m]=this.#I(u,f,R);E.set([k,F,m,G],4*h)}const o=C.rotations??C.quaternions,r=C.scales??C.scale,n=this.#g(o,r),s=new x.BufferAttribute(e,3),c=new x.BufferAttribute(E,4),d=new x.BufferAttribute(n.c0,3),D=new x.BufferAttribute(n.c1,3);return I.scene.traverse(h=>h.dispose&&h.dispose()),{isSplatsData:!0,positions:s,colors:c,cov0:d,cov1:D}}async#a(A,g,I,Q){const C=g.meshes[I.mesh].primitives[I.prim],a=async N=>{const S=C.attributes?.[N];return Number.isInteger(S)?A.getDependency("accessor",S):null};let e=await a("POSITION");if(!e)return this.#A(Q);let i=await a("COLOR_0"),t=await a("ROTATION")||await a("_ROTATION"),E=await a("SCALE")||await a("_SCALE");const o=e?.buffer?e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength):null,r=i?.buffer?i.buffer.slice(i.byteOffset,i.byteOffset+i.byteLength):null,n=t?.buffer?t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength):null,s=E?.buffer?E.buffer.slice(E.byteOffset,E.byteOffset+E.byteLength):null;if(this.worker){const N=this.workerJobId++,S=new Promise((EA,cA)=>{this.workerCallbacks.set(N,{resolve:EA,reject:cA})});try{const EA=[],cA={pos:o,col:r,rot:n,scl:s};o&&EA.push(o),r&&EA.push(r),n&&EA.push(n),s&&EA.push(s),this.worker.postMessage({id:N,op:"handleKHR",payload:cA},EA)}catch(EA){throw this.workerCallbacks.delete(N),EA}const{pos:j,col:z,c0:$,c1:_}=await S,X=new Float32Array(j),CA=new Float32Array(z),sA=new Float32Array($),oA=new Float32Array(_),fA=new x.BufferAttribute(X,3),bA=new x.BufferAttribute(CA,4),iA=new x.BufferAttribute(sA,3),yA=new x.BufferAttribute(oA,3);return Q.scene.traverse(EA=>EA.dispose&&EA.dispose()),{isSplatsData:!0,positions:fA,colors:bA,cov0:iA,cov1:yA}}let c=e;c?.buffer&&(c=new Float32Array(c.buffer,c.byteOffset,3*c.count));let d=i;d?.buffer&&(d=new Float32Array(d.buffer,d.byteOffset,(d.itemSize||4)*d.count));let D=t,h=E;D?.buffer&&(D=new Float32Array(D.buffer,D.byteOffset,4*D.count)),h?.buffer&&(h=new Float32Array(h.buffer,h.byteOffset,3*h.count));const u=c.length/3,f=new Float32Array(4*u);if(d){const N=d.length===4*u?4:3;for(let S=0;S<u;S++){const j=d[S*N+0],z=d[S*N+1],$=d[S*N+2],[_,X,CA]=this.#I(j,z,$);f.set([_,X,CA,N===4?d[S*N+3]:1],4*S)}}else for(let N=0;N<u;N++)f.set([1,1,1,1],4*N);const R=this.#g(D,h),G=new x.BufferAttribute(c,3),k=new x.BufferAttribute(f,4),F=new x.BufferAttribute(R.c0,3),m=new x.BufferAttribute(R.c1,3);return Q.scene.traverse(N=>N.dispose&&N.dispose()),{isSplatsData:!0,positions:G,colors:k,cov0:F,cov1:m}}async#A(A){const g=A.scene.children[0].geometry,I=g.attributes.position,Q=g.attributes.color,C=g.attributes.cov_0||g.attributes.COV_0,a=g.attributes.cov_1||g.attributes.COV_1;return A.scene.traverse(e=>e.dispose&&e.dispose()),{isSplatsData:!0,positions:I,colors:Q,cov0:C,cov1:a}}#g(A,g){const I=(A?.length||0)/4,Q=new Float32Array(3*I),C=new Float32Array(3*I),a=new Float32Array(9);for(let e=0;e<I;e++){const i=A?A[4*e+0]:0,t=A?A[4*e+1]:0,E=A?A[4*e+2]:0,o=A?A[4*e+3]:1,r=i*i,n=t*t,s=E*E,c=i*t,d=i*E,D=t*E,h=o*i,u=o*t,f=o*E;a[0]=1-2*(n+s),a[1]=2*(c-f),a[2]=2*(d+u),a[3]=2*(c+f),a[4]=1-2*(r+s),a[5]=2*(D-h),a[6]=2*(d-u),a[7]=2*(D+h),a[8]=1-2*(r+n);const R=Math.max(1e-12,g?g[3*e+0]:0),G=Math.max(1e-12,g?g[3*e+1]:0),k=Math.max(1e-12,g?g[3*e+2]:0),F=R*R,m=G*G,N=k*k,S=a[0]*a[0]*F+a[1]*a[1]*m+a[2]*a[2]*N,j=a[3]*a[0]*F+a[4]*a[1]*m+a[5]*a[2]*N,z=a[6]*a[0]*F+a[7]*a[1]*m+a[8]*a[2]*N,$=a[3]*a[3]*F+a[4]*a[4]*m+a[5]*a[5]*N,_=a[6]*a[3]*F+a[7]*a[4]*m+a[8]*a[5]*N,X=a[6]*a[6]*F+a[7]*a[7]*m+a[8]*a[8]*N,CA=3*e;Q[CA+0]=S,Q[CA+1]=j,Q[CA+2]=z,C[CA+0]=$,C[CA+1]=_,C[CA+2]=X}return{c0:Q,c1:C}}#e(A){return Number.isFinite(A)?A>=0&&A<=1?A:A>=0&&A<=255&&Math.abs(A-Math.round(A))<.001?A/255:A>=0&&A<=65535&&Math.abs(A-Math.round(A))<.001?A/65535:Math.min(1,Math.max(0,A)):1}#I(A,g,I){const Q=o=>o>=0&&o<=255&&Math.abs(o-Math.round(o))<.001,C=o=>o>=0&&o<=65535&&Math.abs(o-Math.round(o))<.001,a=o=>o<=.04045?o/12.92:Math.pow((o+.055)/1.055,2.4),e=o=>Math.min(1,Math.max(0,o));let i=A,t=g,E=I;if(!(A>=0&&A<=1&&g>=0&&g<=1&&I>=0&&I<=1))if(Q(A)&&Q(g)&&Q(I))i=A/255,t=g/255,E=I/255;else if(C(A)&&C(g)&&C(I))i=A/65535,t=g/65535,E=I/65535;else{const o=r=>.5+.28209479177387814*r;i=o(A),t=o(g),E=o(I)}return i=e(i),t=e(t),E=e(E),[a(i),a(t),a(E)]}#E(){return new Promise(A=>{const g=setInterval(()=>{const I=this.gltfLoader;I.hasDracoLoader&&!I.dracoLoader||I.hasKTX2Loader&&!I.ktx2Loader||(clearInterval(g),A())},10)})}}class $Q extends l.Loader{constructor(A){super(A),this.dracoLoader=null,this.ktx2Loader=null,this.meshoptDecoder=null,this.pluginCallbacks=[],this.register(function(g){return new $e(g)}),this.register(function(g){return new AE(g)}),this.register(function(g){return new iE(g)}),this.register(function(g){return new tE(g)}),this.register(function(g){return new oE(g)}),this.register(function(g){return new IE(g)}),this.register(function(g){return new BE(g)}),this.register(function(g){return new QE(g)}),this.register(function(g){return new CE(g)}),this.register(function(g){return new _e(g)}),this.register(function(g){return new aE(g)}),this.register(function(g){return new gE(g)}),this.register(function(g){return new EE(g)}),this.register(function(g){return new eE(g)}),this.register(function(g){return new Xe(g)}),this.register(function(g){return new nE(g)}),this.register(function(g){return new rE(g)})}load(A,g,I,Q){const C=this;let a;if(this.resourcePath!=="")a=this.resourcePath;else if(this.path!==""){const t=l.LoaderUtils.extractUrlBase(A);a=l.LoaderUtils.resolveURL(t,this.path)}else a=l.LoaderUtils.extractUrlBase(A);this.manager.itemStart(A);const e=function(t){Q?Q(t):console.error(t),C.manager.itemError(A),C.manager.itemEnd(A)},i=new l.FileLoader(this.manager);i.setPath(this.path),i.setResponseType("arraybuffer"),i.setRequestHeader(this.requestHeader),i.setWithCredentials(this.withCredentials),i.load(A,function(t){try{C.parse(t,a,function(E){g(E),C.manager.itemEnd(A)},e)}catch(E){e(E)}},I,e)}setDRACOLoader(A){return this.dracoLoader=A,this}setKTX2Loader(A){return this.ktx2Loader=A,this}setMeshoptDecoder(A){return this.meshoptDecoder=A,this}register(A){return this.pluginCallbacks.indexOf(A)===-1&&this.pluginCallbacks.push(A),this}unregister(A){return this.pluginCallbacks.indexOf(A)!==-1&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(A),1),this}parse(A,g,I,Q){let C;const a={},e={},i=new TextDecoder;if(typeof A=="string")C=JSON.parse(A);else if(A instanceof ArrayBuffer)if(i.decode(new Uint8Array(A,0,4))===AC){try{a[lA.KHR_BINARY_GLTF]=new hE(A)}catch(E){return void(Q&&Q(E))}C=JSON.parse(a[lA.KHR_BINARY_GLTF].content)}else C=JSON.parse(i.decode(A));else C=A;if(C.asset===void 0||C.asset.version[0]<2)return void(Q&&Q(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported.")));const t=new RE(C,{path:g||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});t.fileLoader.setRequestHeader(this.requestHeader);for(let E=0;E<this.pluginCallbacks.length;E++){const o=this.pluginCallbacks[E](t);o.name||console.error("THREE.GLTFLoader: Invalid plugin found: missing name"),e[o.name]=o,a[o.name]=!0}if(C.extensionsUsed)for(let E=0;E<C.extensionsUsed.length;++E){const o=C.extensionsUsed[E],r=C.extensionsRequired||[];switch(o){case lA.KHR_MATERIALS_UNLIT:a[o]=new Ze;break;case lA.KHR_DRACO_MESH_COMPRESSION:a[o]=new dE(C,this.dracoLoader);break;case lA.KHR_TEXTURE_TRANSFORM:a[o]=new DE;break;case lA.KHR_MESH_QUANTIZATION:a[o]=new lE;break;default:r.indexOf(o)>=0&&e[o]===void 0&&console.warn('THREE.GLTFLoader: Unknown extension "'+o+'".')}}t.setExtensions(a),t.setPlugins(e),t.parse(I,Q)}parseAsync(A,g){const I=this;return new Promise(function(Q,C){I.parse(A,g,Q,C)})}}function ze(){let B={};return{get:function(A){return B[A]},add:function(A,g){B[A]=g},remove:function(A){delete B[A]},removeAll:function(){B={}}}}const lA={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_DISPERSION:"KHR_materials_dispersion",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_MATERIALS_BUMP:"EXT_materials_bump",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"};class Xe{constructor(A){this.parser=A,this.name=lA.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const A=this.parser,g=this.parser.json.nodes||[];for(let I=0,Q=g.length;I<Q;I++){const C=g[I];C.extensions&&C.extensions[this.name]&&C.extensions[this.name].light!==void 0&&A._addNodeRef(this.cache,C.extensions[this.name].light)}}_loadLight(A){const g=this.parser,I="light:"+A;let Q=g.cache.get(I);if(Q)return Q;const C=g.json,a=((C.extensions&&C.extensions[this.name]||{}).lights||[])[A];let e;const i=new l.Color(16777215);a.color!==void 0&&i.setRGB(a.color[0],a.color[1],a.color[2],l.LinearSRGBColorSpace);const t=a.range!==void 0?a.range:0;switch(a.type){case"directional":e=new l.DirectionalLight(i),e.target.position.set(0,0,-1),e.add(e.target);break;case"point":e=new l.PointLight(i),e.distance=t;break;case"spot":e=new l.SpotLight(i),e.distance=t,a.spot=a.spot||{},a.spot.innerConeAngle=a.spot.innerConeAngle!==void 0?a.spot.innerConeAngle:0,a.spot.outerConeAngle=a.spot.outerConeAngle!==void 0?a.spot.outerConeAngle:Math.PI/4,e.angle=a.spot.outerConeAngle,e.penumbra=1-a.spot.innerConeAngle/a.spot.outerConeAngle,e.target.position.set(0,0,-1),e.add(e.target);break;default:throw new Error("THREE.GLTFLoader: Unexpected light type: "+a.type)}return e.position.set(0,0,0),Mg(e,a),a.intensity!==void 0&&(e.intensity=a.intensity),e.name=g.createUniqueName(a.name||"light_"+A),Q=Promise.resolve(e),g.cache.add(I,Q),Q}getDependency(A,g){if(A==="light")return this._loadLight(g)}createNodeAttachment(A){const g=this,I=this.parser,Q=I.json.nodes[A],C=(Q.extensions&&Q.extensions[this.name]||{}).light;return C===void 0?null:this._loadLight(C).then(function(a){return I._getNodeRef(g.cache,C,a)})}}class Ze{constructor(){this.name=lA.KHR_MATERIALS_UNLIT}getMaterialType(){return l.MeshBasicMaterial}extendParams(A,g,I){const Q=[];A.color=new l.Color(1,1,1),A.opacity=1;const C=g.pbrMetallicRoughness;if(C){if(Array.isArray(C.baseColorFactor)){const a=C.baseColorFactor;A.color.setRGB(a[0],a[1],a[2],l.LinearSRGBColorSpace),A.opacity=a[3]}C.baseColorTexture!==void 0&&Q.push(I.assignTexture(A,"map",C.baseColorTexture,l.SRGBColorSpace))}return Promise.all(Q)}}class _e{constructor(A){this.parser=A,this.name=lA.KHR_MATERIALS_EMISSIVE_STRENGTH}extendMaterialParams(A,g){const I=this.parser.json.materials[A];if(!I.extensions||!I.extensions[this.name])return Promise.resolve();const Q=I.extensions[this.name].emissiveStrength;return Q!==void 0&&(g.emissiveIntensity=Q),Promise.resolve()}}class $e{constructor(A){this.parser=A,this.name=lA.KHR_MATERIALS_CLEARCOAT}getMaterialType(A){const g=this.parser.json.materials[A];return g.extensions&&g.extensions[this.name]?l.MeshPhysicalMaterial:null}extendMaterialParams(A,g){const I=this.parser,Q=I.json.materials[A];if(!Q.extensions||!Q.extensions[this.name])return Promise.resolve();const C=[],a=Q.extensions[this.name];if(a.clearcoatFactor!==void 0&&(g.clearcoat=a.clearcoatFactor),a.clearcoatTexture!==void 0&&C.push(I.assignTexture(g,"clearcoatMap",a.clearcoatTexture)),a.clearcoatRoughnessFactor!==void 0&&(g.clearcoatRoughness=a.clearcoatRoughnessFactor),a.clearcoatRoughnessTexture!==void 0&&C.push(I.assignTexture(g,"clearcoatRoughnessMap",a.clearcoatRoughnessTexture)),a.clearcoatNormalTexture!==void 0&&(C.push(I.assignTexture(g,"clearcoatNormalMap",a.clearcoatNormalTexture)),a.clearcoatNormalTexture.scale!==void 0)){const e=a.clearcoatNormalTexture.scale;g.clearcoatNormalScale=new l.Vector2(e,e)}return Promise.all(C)}}class AE{constructor(A){this.parser=A,this.name=lA.KHR_MATERIALS_DISPERSION}getMaterialType(A){const g=this.parser.json.materials[A];return g.extensions&&g.extensions[this.name]?l.MeshPhysicalMaterial:null}extendMaterialParams(A,g){const I=this.parser.json.materials[A];if(!I.extensions||!I.extensions[this.name])return Promise.resolve();const Q=I.extensions[this.name];return g.dispersion=Q.dispersion!==void 0?Q.dispersion:0,Promise.resolve()}}class gE{constructor(A){this.parser=A,this.name=lA.KHR_MATERIALS_IRIDESCENCE}getMaterialType(A){const g=this.parser.json.materials[A];return g.extensions&&g.extensions[this.name]?l.MeshPhysicalMaterial:null}extendMaterialParams(A,g){const I=this.parser,Q=I.json.materials[A];if(!Q.extensions||!Q.extensions[this.name])return Promise.resolve();const C=[],a=Q.extensions[this.name];return a.iridescenceFactor!==void 0&&(g.iridescence=a.iridescenceFactor),a.iridescenceTexture!==void 0&&C.push(I.assignTexture(g,"iridescenceMap",a.iridescenceTexture)),a.iridescenceIor!==void 0&&(g.iridescenceIOR=a.iridescenceIor),g.iridescenceThicknessRange===void 0&&(g.iridescenceThicknessRange=[100,400]),a.iridescenceThicknessMinimum!==void 0&&(g.iridescenceThicknessRange[0]=a.iridescenceThicknessMinimum),a.iridescenceThicknessMaximum!==void 0&&(g.iridescenceThicknessRange[1]=a.iridescenceThicknessMaximum),a.iridescenceThicknessTexture!==void 0&&C.push(I.assignTexture(g,"iridescenceThicknessMap",a.iridescenceThicknessTexture)),Promise.all(C)}}class IE{constructor(A){this.parser=A,this.name=lA.KHR_MATERIALS_SHEEN}getMaterialType(A){const g=this.parser.json.materials[A];return g.extensions&&g.extensions[this.name]?l.MeshPhysicalMaterial:null}extendMaterialParams(A,g){const I=this.parser,Q=I.json.materials[A];if(!Q.extensions||!Q.extensions[this.name])return Promise.resolve();const C=[];g.sheenColor=new l.Color(0,0,0),g.sheenRoughness=0,g.sheen=1;const a=Q.extensions[this.name];if(a.sheenColorFactor!==void 0){const e=a.sheenColorFactor;g.sheenColor.setRGB(e[0],e[1],e[2],l.LinearSRGBColorSpace)}return a.sheenRoughnessFactor!==void 0&&(g.sheenRoughness=a.sheenRoughnessFactor),a.sheenColorTexture!==void 0&&C.push(I.assignTexture(g,"sheenColorMap",a.sheenColorTexture,l.SRGBColorSpace)),a.sheenRoughnessTexture!==void 0&&C.push(I.assignTexture(g,"sheenRoughnessMap",a.sheenRoughnessTexture)),Promise.all(C)}}class BE{constructor(A){this.parser=A,this.name=lA.KHR_MATERIALS_TRANSMISSION}getMaterialType(A){const g=this.parser.json.materials[A];return g.extensions&&g.extensions[this.name]?l.MeshPhysicalMaterial:null}extendMaterialParams(A,g){const I=this.parser,Q=I.json.materials[A];if(!Q.extensions||!Q.extensions[this.name])return Promise.resolve();const C=[],a=Q.extensions[this.name];return a.transmissionFactor!==void 0&&(g.transmission=a.transmissionFactor),a.transmissionTexture!==void 0&&C.push(I.assignTexture(g,"transmissionMap",a.transmissionTexture)),Promise.all(C)}}class QE{constructor(A){this.parser=A,this.name=lA.KHR_MATERIALS_VOLUME}getMaterialType(A){const g=this.parser.json.materials[A];return g.extensions&&g.extensions[this.name]?l.MeshPhysicalMaterial:null}extendMaterialParams(A,g){const I=this.parser,Q=I.json.materials[A];if(!Q.extensions||!Q.extensions[this.name])return Promise.resolve();const C=[],a=Q.extensions[this.name];g.thickness=a.thicknessFactor!==void 0?a.thicknessFactor:0,a.thicknessTexture!==void 0&&C.push(I.assignTexture(g,"thicknessMap",a.thicknessTexture)),g.attenuationDistance=a.attenuationDistance||1/0;const e=a.attenuationColor||[1,1,1];return g.attenuationColor=new l.Color().setRGB(e[0],e[1],e[2],l.LinearSRGBColorSpace),Promise.all(C)}}class CE{constructor(A){this.parser=A,this.name=lA.KHR_MATERIALS_IOR}getMaterialType(A){const g=this.parser.json.materials[A];return g.extensions&&g.extensions[this.name]?l.MeshPhysicalMaterial:null}extendMaterialParams(A,g){const I=this.parser.json.materials[A];if(!I.extensions||!I.extensions[this.name])return Promise.resolve();const Q=I.extensions[this.name];return g.ior=Q.ior!==void 0?Q.ior:1.5,Promise.resolve()}}class aE{constructor(A){this.parser=A,this.name=lA.KHR_MATERIALS_SPECULAR}getMaterialType(A){const g=this.parser.json.materials[A];return g.extensions&&g.extensions[this.name]?l.MeshPhysicalMaterial:null}extendMaterialParams(A,g){const I=this.parser,Q=I.json.materials[A];if(!Q.extensions||!Q.extensions[this.name])return Promise.resolve();const C=[],a=Q.extensions[this.name];g.specularIntensity=a.specularFactor!==void 0?a.specularFactor:1,a.specularTexture!==void 0&&C.push(I.assignTexture(g,"specularIntensityMap",a.specularTexture));const e=a.specularColorFactor||[1,1,1];return g.specularColor=new l.Color().setRGB(e[0],e[1],e[2],l.LinearSRGBColorSpace),a.specularColorTexture!==void 0&&C.push(I.assignTexture(g,"specularColorMap",a.specularColorTexture,l.SRGBColorSpace)),Promise.all(C)}}class eE{constructor(A){this.parser=A,this.name=lA.EXT_MATERIALS_BUMP}getMaterialType(A){const g=this.parser.json.materials[A];return g.extensions&&g.extensions[this.name]?l.MeshPhysicalMaterial:null}extendMaterialParams(A,g){const I=this.parser,Q=I.json.materials[A];if(!Q.extensions||!Q.extensions[this.name])return Promise.resolve();const C=[],a=Q.extensions[this.name];return g.bumpScale=a.bumpFactor!==void 0?a.bumpFactor:1,a.bumpTexture!==void 0&&C.push(I.assignTexture(g,"bumpMap",a.bumpTexture)),Promise.all(C)}}class EE{constructor(A){this.parser=A,this.name=lA.KHR_MATERIALS_ANISOTROPY}getMaterialType(A){const g=this.parser.json.materials[A];return g.extensions&&g.extensions[this.name]?l.MeshPhysicalMaterial:null}extendMaterialParams(A,g){const I=this.parser,Q=I.json.materials[A];if(!Q.extensions||!Q.extensions[this.name])return Promise.resolve();const C=[],a=Q.extensions[this.name];return a.anisotropyStrength!==void 0&&(g.anisotropy=a.anisotropyStrength),a.anisotropyRotation!==void 0&&(g.anisotropyRotation=a.anisotropyRotation),a.anisotropyTexture!==void 0&&C.push(I.assignTexture(g,"anisotropyMap",a.anisotropyTexture)),Promise.all(C)}}class iE{constructor(A){this.parser=A,this.name=lA.KHR_TEXTURE_BASISU}loadTexture(A){const g=this.parser,I=g.json,Q=I.textures[A];if(!Q.extensions||!Q.extensions[this.name])return null;const C=Q.extensions[this.name],a=g.options.ktx2Loader;if(!a){if(I.extensionsRequired&&I.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return g.loadTextureImage(A,C.source,a)}}class tE{constructor(A){this.parser=A,this.name=lA.EXT_TEXTURE_WEBP}loadTexture(A){const g=this.name,I=this.parser,Q=I.json,C=Q.textures[A];if(!C.extensions||!C.extensions[g])return null;const a=C.extensions[g],e=Q.images[a.source];let i=I.textureLoader;if(e.uri){const t=I.options.manager.getHandler(e.uri);t!==null&&(i=t)}return I.loadTextureImage(A,a.source,i)}}class oE{constructor(A){this.parser=A,this.name=lA.EXT_TEXTURE_AVIF}loadTexture(A){const g=this.name,I=this.parser,Q=I.json,C=Q.textures[A];if(!C.extensions||!C.extensions[g])return null;const a=C.extensions[g],e=Q.images[a.source];let i=I.textureLoader;if(e.uri){const t=I.options.manager.getHandler(e.uri);t!==null&&(i=t)}return I.loadTextureImage(A,a.source,i)}}class nE{constructor(A){this.name=lA.EXT_MESHOPT_COMPRESSION,this.parser=A}loadBufferView(A){const g=this.parser.json,I=g.bufferViews[A];if(I.extensions&&I.extensions[this.name]){const Q=I.extensions[this.name],C=this.parser.getDependency("buffer",Q.buffer),a=this.parser.options.meshoptDecoder;if(!a||!a.supported){if(g.extensionsRequired&&g.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return C.then(function(e){const i=Q.byteOffset||0,t=Q.byteLength||0,E=Q.count,o=Q.byteStride,r=new Uint8Array(e,i,t);return a.decodeGltfBufferAsync?a.decodeGltfBufferAsync(E,o,r,Q.mode,Q.filter).then(function(n){return n.buffer}):a.ready.then(function(){const n=new ArrayBuffer(E*o);return a.decodeGltfBuffer(new Uint8Array(n),E,o,r,Q.mode,Q.filter),n})})}return null}}class rE{constructor(A){this.name=lA.EXT_MESH_GPU_INSTANCING,this.parser=A}createNodeMesh(A){const g=this.parser.json,I=g.nodes[A];if(!I.extensions||!I.extensions[this.name]||I.mesh===void 0)return null;const Q=g.meshes[I.mesh];for(const i of Q.primitives)if(i.mode!==lg.TRIANGLES&&i.mode!==lg.TRIANGLE_STRIP&&i.mode!==lg.TRIANGLE_FAN&&i.mode!==void 0)return null;const C=I.extensions[this.name].attributes,a=[],e={};for(const i in C)a.push(this.parser.getDependency("accessor",C[i]).then(t=>(e[i]=t,e[i])));return a.length<1?null:(a.push(this.parser.createNodeMesh(A)),Promise.all(a).then(i=>{const t=i.pop(),E=t.isGroup?t.children:[t],o=i[0].count,r=[];for(const n of E){const s=new l.Matrix4,c=new l.Vector3,d=new l.Quaternion,D=new l.Vector3(1,1,1),h=new l.InstancedMesh(n.geometry,n.material,o);for(let u=0;u<o;u++)e.TRANSLATION&&c.fromBufferAttribute(e.TRANSLATION,u),e.ROTATION&&d.fromBufferAttribute(e.ROTATION,u),e.SCALE&&D.fromBufferAttribute(e.SCALE,u),h.setMatrixAt(u,s.compose(c,d,D));for(const u in e)if(u==="_COLOR_0"){const f=e[u];h.instanceColor=new l.InstancedBufferAttribute(f.array,f.itemSize,f.normalized)}else u!=="TRANSLATION"&&u!=="ROTATION"&&u!=="SCALE"&&n.geometry.setAttribute(u,e[u]);l.Object3D.prototype.copy.call(h,n),this.parser.assignFinalMaterial(h),r.push(h)}return t.isGroup?(t.clear(),t.add(...r),t):r[0]}))}}const AC="glTF",sE=1313821514,cE=5130562;class hE{constructor(A){this.name=lA.KHR_BINARY_GLTF,this.content=null,this.body=null;const g=new DataView(A,0,12),I=new TextDecoder;if(this.header={magic:I.decode(new Uint8Array(A.slice(0,4))),version:g.getUint32(4,!0),length:g.getUint32(8,!0)},this.header.magic!==AC)throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw new Error("THREE.GLTFLoader: Legacy binary file detected.");const Q=this.header.length-12,C=new DataView(A,12);let a=0;for(;a<Q;){const e=C.getUint32(a,!0);a+=4;const i=C.getUint32(a,!0);if(a+=4,i===sE){const t=new Uint8Array(A,12+a,e);this.content=I.decode(t)}else if(i===cE){const t=12+a;this.body=A.slice(t,t+e)}a+=e}if(this.content===null)throw new Error("THREE.GLTFLoader: JSON content not found.")}}class dE{constructor(A,g){if(!g)throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.");this.name=lA.KHR_DRACO_MESH_COMPRESSION,this.json=A,this.dracoLoader=g,this.dracoLoader.preload()}decodePrimitive(A,g){const I=this.json,Q=this.dracoLoader,C=A.extensions[this.name].bufferView,a=A.extensions[this.name].attributes,e={},i={},t={};for(const E in a){const o=HB[E]||E.toLowerCase();e[o]=a[E]}for(const E in A.attributes){const o=HB[E]||E.toLowerCase();if(a[E]!==void 0){const r=I.accessors[A.attributes[E]],n=cI[r.componentType];t[o]=n.name,i[o]=r.normalized===!0}}return g.getDependency("bufferView",C).then(function(E){return new Promise(function(o,r){Q.decodeDracoFile(E,function(n){for(const s in n.attributes){const c=n.attributes[s],d=i[s];d!==void 0&&(c.normalized=d)}o(n)},e,t,l.LinearSRGBColorSpace,r)})})}}class DE{constructor(){this.name=lA.KHR_TEXTURE_TRANSFORM}extendTexture(A,g){return(g.texCoord!==void 0&&g.texCoord!==A.channel||g.offset!==void 0||g.rotation!==void 0||g.scale!==void 0)&&(A=A.clone(),g.texCoord!==void 0&&(A.channel=g.texCoord),g.offset!==void 0&&A.offset.fromArray(g.offset),g.rotation!==void 0&&(A.rotation=g.rotation),g.scale!==void 0&&A.repeat.fromArray(g.scale),A.needsUpdate=!0),A}}class lE{constructor(){this.name=lA.KHR_MESH_QUANTIZATION}}class gC extends l.Interpolant{constructor(A,g,I,Q){super(A,g,I,Q)}copySampleValue_(A){const g=this.resultBuffer,I=this.sampleValues,Q=this.valueSize,C=A*Q*3+Q;for(let a=0;a!==Q;a++)g[a]=I[C+a];return g}interpolate_(A,g,I,Q){const C=this.resultBuffer,a=this.sampleValues,e=this.valueSize,i=2*e,t=3*e,E=Q-g,o=(I-g)/E,r=o*o,n=r*o,s=A*t,c=s-t,d=-2*n+3*r,D=n-r,h=1-d,u=D-r+o;for(let f=0;f!==e;f++){const R=a[c+f+e],G=a[c+f+i]*E,k=a[s+f+e],F=a[s+f]*E;C[f]=h*R+u*G+d*k+D*F}return C}}const uE=new l.Quaternion;class bE extends gC{interpolate_(A,g,I,Q){const C=super.interpolate_(A,g,I,Q);return uE.fromArray(C).normalize().toArray(C),C}}const lg={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},cI={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},IC={9728:l.NearestFilter,9729:l.LinearFilter,9984:l.NearestMipmapNearestFilter,9985:l.LinearMipmapNearestFilter,9986:l.NearestMipmapLinearFilter,9987:l.LinearMipmapLinearFilter},BC={33071:l.ClampToEdgeWrapping,33648:l.MirroredRepeatWrapping,10497:l.RepeatWrapping},YB={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},HB={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv1",TEXCOORD_2:"uv2",TEXCOORD_3:"uv3",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},Hg={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},wE={CUBICSPLINE:void 0,LINEAR:l.InterpolateLinear,STEP:l.InterpolateDiscrete},fE="OPAQUE",yE="MASK",FE="BLEND";function II(B,A,g){for(const I in g.extensions)B[I]===void 0&&(A.userData.gltfExtensions=A.userData.gltfExtensions||{},A.userData.gltfExtensions[I]=g.extensions[I])}function Mg(B,A){A.extras!==void 0&&(typeof A.extras=="object"?Object.assign(B.userData,A.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+A.extras))}function pE(B,A){if(B.updateMorphTargets(),A.weights!==void 0)for(let g=0,I=A.weights.length;g<I;g++)B.morphTargetInfluences[g]=A.weights[g];if(A.extras&&Array.isArray(A.extras.targetNames)){const g=A.extras.targetNames;if(B.morphTargetInfluences.length===g.length){B.morphTargetDictionary={};for(let I=0,Q=g.length;I<Q;I++)B.morphTargetDictionary[g[I]]=I}else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.")}}function ME(B){let A;const g=B.extensions&&B.extensions[lA.KHR_DRACO_MESH_COMPRESSION];if(A=g?"draco:"+g.bufferView+":"+g.indices+":"+KB(g.attributes):B.indices+":"+KB(B.attributes)+":"+B.mode,B.targets!==void 0)for(let I=0,Q=B.targets.length;I<Q;I++)A+=":"+KB(B.targets[I]);return A}function KB(B){let A="";const g=Object.keys(B).sort();for(let I=0,Q=g.length;I<Q;I++)A+=g[I]+":"+B[g[I]]+";";return A}function jB(B){switch(B){case Int8Array:return 1/127;case Uint8Array:return 1/255;case Int16Array:return 1/32767;case Uint16Array:return 1/65535;default:throw new Error("THREE.GLTFLoader: Unsupported normalized accessor component type.")}}const GE=new l.Matrix4;class RE{constructor(A={},g={}){this.json=A,this.extensions={},this.plugins={},this.options=g,this.cache=new ze,this.associations=new Map,this.primitiveCache={},this.nodeCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let I=!1,Q=-1,C=!1,a=-1;if(typeof navigator<"u"){const e=navigator.userAgent;I=/^((?!chrome|android).)*safari/i.test(e)===!0;const i=e.match(/Version\/(\d+)/);Q=I&&i?parseInt(i[1],10):-1,C=e.indexOf("Firefox")>-1,a=C?e.match(/Firefox\/([0-9]+)\./)[1]:-1}typeof createImageBitmap>"u"||I&&Q<17||C&&a<98?this.textureLoader=new l.TextureLoader(this.options.manager):this.textureLoader=new l.ImageBitmapLoader(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new l.FileLoader(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),this.options.crossOrigin==="use-credentials"&&this.fileLoader.setWithCredentials(!0)}setExtensions(A){this.extensions=A}setPlugins(A){this.plugins=A}parse(A,g){const I=this,Q=this.json,C=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(a){return a._markDefs&&a._markDefs()}),Promise.all(this._invokeAll(function(a){return a.beforeRoot&&a.beforeRoot()})).then(function(){return Promise.all([I.getDependencies("scene"),I.getDependencies("animation"),I.getDependencies("camera")])}).then(function(a){const e={scene:a[0][Q.scene||0],scenes:a[0],animations:a[1],cameras:a[2],asset:Q.asset,parser:I,userData:{}};return II(C,e,Q),Mg(e,Q),Promise.all(I._invokeAll(function(i){return i.afterRoot&&i.afterRoot(e)})).then(function(){for(const i of e.scenes)i.updateMatrixWorld();A(e)})}).catch(g)}_markDefs(){const A=this.json.nodes||[],g=this.json.skins||[],I=this.json.meshes||[];for(let Q=0,C=g.length;Q<C;Q++){const a=g[Q].joints;for(let e=0,i=a.length;e<i;e++)A[a[e]].isBone=!0}for(let Q=0,C=A.length;Q<C;Q++){const a=A[Q];a.mesh!==void 0&&(this._addNodeRef(this.meshCache,a.mesh),a.skin!==void 0&&(I[a.mesh].isSkinnedMesh=!0)),a.camera!==void 0&&this._addNodeRef(this.cameraCache,a.camera)}}_addNodeRef(A,g){g!==void 0&&(A.refs[g]===void 0&&(A.refs[g]=A.uses[g]=0),A.refs[g]++)}_getNodeRef(A,g,I){if(A.refs[g]<=1)return I;const Q=I.clone(),C=(a,e)=>{const i=this.associations.get(a);i!=null&&this.associations.set(e,i);for(const[t,E]of a.children.entries())C(E,e.children[t])};return C(I,Q),Q.name+="_instance_"+A.uses[g]++,Q}_invokeOne(A){const g=Object.values(this.plugins);g.push(this);for(let I=0;I<g.length;I++){const Q=A(g[I]);if(Q)return Q}return null}_invokeAll(A){const g=Object.values(this.plugins);g.unshift(this);const I=[];for(let Q=0;Q<g.length;Q++){const C=A(g[Q]);C&&I.push(C)}return I}getDependency(A,g){const I=A+":"+g;let Q=this.cache.get(I);if(!Q){switch(A){case"scene":Q=this.loadScene(g);break;case"node":Q=this._invokeOne(function(C){return C.loadNode&&C.loadNode(g)});break;case"mesh":Q=this._invokeOne(function(C){return C.loadMesh&&C.loadMesh(g)});break;case"accessor":Q=this.loadAccessor(g);break;case"bufferView":Q=this._invokeOne(function(C){return C.loadBufferView&&C.loadBufferView(g)});break;case"buffer":Q=this.loadBuffer(g);break;case"material":Q=this._invokeOne(function(C){return C.loadMaterial&&C.loadMaterial(g)});break;case"texture":Q=this._invokeOne(function(C){return C.loadTexture&&C.loadTexture(g)});break;case"skin":Q=this.loadSkin(g);break;case"animation":Q=this._invokeOne(function(C){return C.loadAnimation&&C.loadAnimation(g)});break;case"camera":Q=this.loadCamera(g);break;default:if(Q=this._invokeOne(function(C){return C!=this&&C.getDependency&&C.getDependency(A,g)}),!Q)throw new Error("Unknown type: "+A)}this.cache.add(I,Q)}return Q}getDependencies(A){let g=this.cache.get(A);if(!g){const I=this,Q=this.json[A+(A==="mesh"?"es":"s")]||[];g=Promise.all(Q.map(function(C,a){return I.getDependency(A,a)})),this.cache.add(A,g)}return g}loadBuffer(A){const g=this.json.buffers[A],I=this.fileLoader;if(g.type&&g.type!=="arraybuffer")throw new Error("THREE.GLTFLoader: "+g.type+" buffer type is not supported.");if(g.uri===void 0&&A===0)return Promise.resolve(this.extensions[lA.KHR_BINARY_GLTF].body);const Q=this.options;return new Promise(function(C,a){I.load(l.LoaderUtils.resolveURL(g.uri,Q.path),C,void 0,function(){a(new Error('THREE.GLTFLoader: Failed to load buffer "'+g.uri+'".'))})})}loadBufferView(A){const g=this.json.bufferViews[A];return this.getDependency("buffer",g.buffer).then(function(I){const Q=g.byteLength||0,C=g.byteOffset||0;return I.slice(C,C+Q)})}loadAccessor(A){const g=this,I=this.json,Q=this.json.accessors[A];if(Q.bufferView===void 0&&Q.sparse===void 0){const a=YB[Q.type],e=cI[Q.componentType],i=Q.normalized===!0,t=new e(Q.count*a);return Promise.resolve(new l.BufferAttribute(t,a,i))}const C=[];return Q.bufferView!==void 0?C.push(this.getDependency("bufferView",Q.bufferView)):C.push(null),Q.sparse!==void 0&&(C.push(this.getDependency("bufferView",Q.sparse.indices.bufferView)),C.push(this.getDependency("bufferView",Q.sparse.values.bufferView))),Promise.all(C).then(function(a){const e=a[0],i=YB[Q.type],t=cI[Q.componentType],E=t.BYTES_PER_ELEMENT,o=E*i,r=Q.byteOffset||0,n=Q.bufferView!==void 0?I.bufferViews[Q.bufferView].byteStride:void 0,s=Q.normalized===!0;let c,d;if(n&&n!==o){const D=Math.floor(r/n),h="InterleavedBuffer:"+Q.bufferView+":"+Q.componentType+":"+D+":"+Q.count;let u=g.cache.get(h);u||(c=new t(e,D*n,Q.count*n/E),u=new l.InterleavedBuffer(c,n/E),g.cache.add(h,u)),d=new l.InterleavedBufferAttribute(u,i,r%n/E,s)}else c=e===null?new t(Q.count*i):new t(e,r,Q.count*i),d=new l.BufferAttribute(c,i,s);if(Q.sparse!==void 0){const D=YB.SCALAR,h=cI[Q.sparse.indices.componentType],u=Q.sparse.indices.byteOffset||0,f=Q.sparse.values.byteOffset||0,R=new h(a[1],u,Q.sparse.count*D),G=new t(a[2],f,Q.sparse.count*i);e!==null&&(d=new l.BufferAttribute(d.array.slice(),d.itemSize,d.normalized)),d.normalized=!1;for(let k=0,F=R.length;k<F;k++){const m=R[k];if(d.setX(m,G[k*i]),i>=2&&d.setY(m,G[k*i+1]),i>=3&&d.setZ(m,G[k*i+2]),i>=4&&d.setW(m,G[k*i+3]),i>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}d.normalized=s}return d})}loadTexture(A){const g=this.json,I=this.options,Q=g.textures[A].source,C=g.images[Q];let a=this.textureLoader;if(C.uri){const e=I.manager.getHandler(C.uri);e!==null&&(a=e)}return this.loadTextureImage(A,Q,a)}loadTextureImage(A,g,I){const Q=this,C=this.json,a=C.textures[A],e=C.images[g],i=(e.uri||e.bufferView)+":"+a.sampler;if(this.textureCache[i])return this.textureCache[i];const t=this.loadImageSource(g,I).then(function(E){E.flipY=!1,E.name=a.name||e.name||"",E.name===""&&typeof e.uri=="string"&&e.uri.startsWith("data:image/")===!1&&(E.name=e.uri);const o=(C.samplers||{})[a.sampler]||{};return E.magFilter=IC[o.magFilter]||l.LinearFilter,E.minFilter=IC[o.minFilter]||l.LinearMipmapLinearFilter,E.wrapS=BC[o.wrapS]||l.RepeatWrapping,E.wrapT=BC[o.wrapT]||l.RepeatWrapping,E.generateMipmaps=!E.isCompressedTexture&&E.minFilter!==l.NearestFilter&&E.minFilter!==l.LinearFilter,Q.associations.set(E,{textures:A}),E}).catch(function(){return null});return this.textureCache[i]=t,t}loadImageSource(A,g){const I=this,Q=this.json,C=this.options;if(this.sourceCache[A]!==void 0)return this.sourceCache[A].then(o=>o.clone());const a=Q.images[A],e=self.URL||self.webkitURL;let i=a.uri||"",t=!1;if(a.bufferView!==void 0)i=I.getDependency("bufferView",a.bufferView).then(function(o){t=!0;const r=new Blob([o],{type:a.mimeType});return i=e.createObjectURL(r),i});else if(a.uri===void 0)throw new Error("THREE.GLTFLoader: Image "+A+" is missing URI and bufferView");const E=Promise.resolve(i).then(function(o){return new Promise(function(r,n){let s=r;g.isImageBitmapLoader===!0&&(s=function(c){const d=new l.Texture(c);d.needsUpdate=!0,r(d)}),g.load(l.LoaderUtils.resolveURL(o,C.path),s,void 0,n)})}).then(function(o){var r;return t===!0&&e.revokeObjectURL(i),Mg(o,a),o.userData.mimeType=a.mimeType||((r=a.uri).search(/\.jpe?g($|\?)/i)>0||r.search(/^data\:image\/jpeg/)===0?"image/jpeg":r.search(/\.webp($|\?)/i)>0||r.search(/^data\:image\/webp/)===0?"image/webp":r.search(/\.ktx2($|\?)/i)>0||r.search(/^data\:image\/ktx2/)===0?"image/ktx2":"image/png"),o}).catch(function(o){throw console.error("THREE.GLTFLoader: Couldn't load texture",i),o});return this.sourceCache[A]=E,E}assignTexture(A,g,I,Q){const C=this;return this.getDependency("texture",I.index).then(function(a){if(!a)return null;if(I.texCoord!==void 0&&I.texCoord>0&&((a=a.clone()).channel=I.texCoord),C.extensions[lA.KHR_TEXTURE_TRANSFORM]){const e=I.extensions!==void 0?I.extensions[lA.KHR_TEXTURE_TRANSFORM]:void 0;if(e){const i=C.associations.get(a);a=C.extensions[lA.KHR_TEXTURE_TRANSFORM].extendTexture(a,e),C.associations.set(a,i)}}return Q!==void 0&&(a.colorSpace=Q),A[g]=a,a})}assignFinalMaterial(A){const g=A.geometry;let I=A.material;const Q=g.attributes.tangent===void 0,C=g.attributes.color!==void 0,a=g.attributes.normal===void 0;if(A.isPoints){const e="PointsMaterial:"+I.uuid;let i=this.cache.get(e);i||(i=new l.PointsMaterial,l.Material.prototype.copy.call(i,I),i.color.copy(I.color),i.map=I.map,i.sizeAttenuation=!1,this.cache.add(e,i)),I=i}else if(A.isLine){const e="LineBasicMaterial:"+I.uuid;let i=this.cache.get(e);i||(i=new l.LineBasicMaterial,l.Material.prototype.copy.call(i,I),i.color.copy(I.color),i.map=I.map,this.cache.add(e,i)),I=i}if(Q||C||a){let e="ClonedMaterial:"+I.uuid+":";Q&&(e+="derivative-tangents:"),C&&(e+="vertex-colors:"),a&&(e+="flat-shading:");let i=this.cache.get(e);i||(i=I.clone(),C&&(i.vertexColors=!0),a&&(i.flatShading=!0),Q&&(i.normalScale&&(i.normalScale.y*=-1),i.clearcoatNormalScale&&(i.clearcoatNormalScale.y*=-1)),this.cache.add(e,i),this.associations.set(i,this.associations.get(I))),I=i}A.material=I}getMaterialType(){return l.MeshStandardMaterial}loadMaterial(A){const g=this,I=this.json,Q=this.extensions,C=I.materials[A];let a;const e={},i=[];if((C.extensions||{})[lA.KHR_MATERIALS_UNLIT]){const E=Q[lA.KHR_MATERIALS_UNLIT];a=E.getMaterialType(),i.push(E.extendParams(e,C,g))}else{const E=C.pbrMetallicRoughness||{};if(e.color=new l.Color(1,1,1),e.opacity=1,Array.isArray(E.baseColorFactor)){const o=E.baseColorFactor;e.color.setRGB(o[0],o[1],o[2],l.LinearSRGBColorSpace),e.opacity=o[3]}E.baseColorTexture!==void 0&&i.push(g.assignTexture(e,"map",E.baseColorTexture,l.SRGBColorSpace)),e.metalness=E.metallicFactor!==void 0?E.metallicFactor:1,e.roughness=E.roughnessFactor!==void 0?E.roughnessFactor:1,E.metallicRoughnessTexture!==void 0&&(i.push(g.assignTexture(e,"metalnessMap",E.metallicRoughnessTexture)),i.push(g.assignTexture(e,"roughnessMap",E.metallicRoughnessTexture))),a=this._invokeOne(function(o){return o.getMaterialType&&o.getMaterialType(A)}),i.push(Promise.all(this._invokeAll(function(o){return o.extendMaterialParams&&o.extendMaterialParams(A,e)})))}C.doubleSided===!0&&(e.side=l.DoubleSide);const t=C.alphaMode||fE;if(t===FE?(e.transparent=!0,e.depthWrite=!1):(e.transparent=!1,t===yE&&(e.alphaTest=C.alphaCutoff!==void 0?C.alphaCutoff:.5)),C.normalTexture!==void 0&&a!==l.MeshBasicMaterial&&(i.push(g.assignTexture(e,"normalMap",C.normalTexture)),e.normalScale=new l.Vector2(1,1),C.normalTexture.scale!==void 0)){const E=C.normalTexture.scale;e.normalScale.set(E,E)}if(C.occlusionTexture!==void 0&&a!==l.MeshBasicMaterial&&(i.push(g.assignTexture(e,"aoMap",C.occlusionTexture)),C.occlusionTexture.strength!==void 0&&(e.aoMapIntensity=C.occlusionTexture.strength)),C.emissiveFactor!==void 0&&a!==l.MeshBasicMaterial){const E=C.emissiveFactor;e.emissive=new l.Color().setRGB(E[0],E[1],E[2],l.LinearSRGBColorSpace)}return C.emissiveTexture!==void 0&&a!==l.MeshBasicMaterial&&i.push(g.assignTexture(e,"emissiveMap",C.emissiveTexture,l.SRGBColorSpace)),Promise.all(i).then(function(){const E=new a(e);return C.name&&(E.name=C.name),Mg(E,C),g.associations.set(E,{materials:A}),C.extensions&&II(Q,E,C),E})}createUniqueName(A){const g=l.PropertyBinding.sanitizeNodeName(A||"");return g in this.nodeNamesUsed?g+"_"+ ++this.nodeNamesUsed[g]:(this.nodeNamesUsed[g]=0,g)}loadGeometries(A){const g=this,I=this.extensions,Q=this.primitiveCache;function C(e){return I[lA.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(e,g).then(function(i){return QC(i,e,g)})}const a=[];for(let e=0,i=A.length;e<i;e++){const t=A[e],E=ME(t),o=Q[E];if(o)a.push(o.promise);else{let r;r=t.extensions&&t.extensions[lA.KHR_DRACO_MESH_COMPRESSION]?C(t):QC(new l.BufferGeometry,t,g),Q[E]={primitive:t,promise:r},a.push(r)}}return Promise.all(a)}loadMesh(A){const g=this,I=this.json,Q=this.extensions,C=I.meshes[A],a=C.primitives,e=[];for(let t=0,E=a.length;t<E;t++){const o=a[t].material===void 0?((i=this.cache).DefaultMaterial===void 0&&(i.DefaultMaterial=new l.MeshStandardMaterial({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:l.FrontSide})),i.DefaultMaterial):this.getDependency("material",a[t].material);e.push(o)}var i;return e.push(g.loadGeometries(a)),Promise.all(e).then(function(t){const E=t.slice(0,t.length-1),o=t[t.length-1],r=[];for(let s=0,c=o.length;s<c;s++){const d=o[s],D=a[s];let h;const u=E[s];if(D.mode===lg.TRIANGLES||D.mode===lg.TRIANGLE_STRIP||D.mode===lg.TRIANGLE_FAN||D.mode===void 0)h=C.isSkinnedMesh===!0?new l.SkinnedMesh(d,u):new l.Mesh(d,u),h.isSkinnedMesh===!0&&h.normalizeSkinWeights(),D.mode===lg.TRIANGLE_STRIP?h.geometry=zQ(h.geometry,l.TriangleStripDrawMode):D.mode===lg.TRIANGLE_FAN&&(h.geometry=zQ(h.geometry,l.TriangleFanDrawMode));else if(D.mode===lg.LINES)h=new l.LineSegments(d,u);else if(D.mode===lg.LINE_STRIP)h=new l.Line(d,u);else if(D.mode===lg.LINE_LOOP)h=new l.LineLoop(d,u);else{if(D.mode!==lg.POINTS)throw new Error("THREE.GLTFLoader: Primitive mode unsupported: "+D.mode);h=new l.Points(d,u)}Object.keys(h.geometry.morphAttributes).length>0&&pE(h,C),h.name=g.createUniqueName(C.name||"mesh_"+A),Mg(h,C),D.extensions&&II(Q,h,D),g.assignFinalMaterial(h),r.push(h)}for(let s=0,c=r.length;s<c;s++)g.associations.set(r[s],{meshes:A,primitives:s});if(r.length===1)return C.extensions&&II(Q,r[0],C),r[0];const n=new l.Group;C.extensions&&II(Q,n,C),g.associations.set(n,{meshes:A});for(let s=0,c=r.length;s<c;s++)n.add(r[s]);return n})}loadCamera(A){let g;const I=this.json.cameras[A],Q=I[I.type];if(Q)return I.type==="perspective"?g=new l.PerspectiveCamera(l.MathUtils.radToDeg(Q.yfov),Q.aspectRatio||1,Q.znear||1,Q.zfar||2e6):I.type==="orthographic"&&(g=new l.OrthographicCamera(-Q.xmag,Q.xmag,Q.ymag,-Q.ymag,Q.znear,Q.zfar)),I.name&&(g.name=this.createUniqueName(I.name)),Mg(g,I),Promise.resolve(g);console.warn("THREE.GLTFLoader: Missing camera parameters.")}loadSkin(A){const g=this.json.skins[A],I=[];for(let Q=0,C=g.joints.length;Q<C;Q++)I.push(this._loadNodeShallow(g.joints[Q]));return g.inverseBindMatrices!==void 0?I.push(this.getDependency("accessor",g.inverseBindMatrices)):I.push(null),Promise.all(I).then(function(Q){const C=Q.pop(),a=Q,e=[],i=[];for(let t=0,E=a.length;t<E;t++){const o=a[t];if(o){e.push(o);const r=new l.Matrix4;C!==null&&r.fromArray(C.array,16*t),i.push(r)}else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.',g.joints[t])}return new l.Skeleton(e,i)})}loadAnimation(A){const g=this.json,I=this,Q=g.animations[A],C=Q.name?Q.name:"animation_"+A,a=[],e=[],i=[],t=[],E=[];for(let o=0,r=Q.channels.length;o<r;o++){const n=Q.channels[o],s=Q.samplers[n.sampler],c=n.target,d=c.node,D=Q.parameters!==void 0?Q.parameters[s.input]:s.input,h=Q.parameters!==void 0?Q.parameters[s.output]:s.output;c.node!==void 0&&(a.push(this.getDependency("node",d)),e.push(this.getDependency("accessor",D)),i.push(this.getDependency("accessor",h)),t.push(s),E.push(c))}return Promise.all([Promise.all(a),Promise.all(e),Promise.all(i),Promise.all(t),Promise.all(E)]).then(function(o){const r=o[0],n=o[1],s=o[2],c=o[3],d=o[4],D=[];for(let u=0,f=r.length;u<f;u++){const R=r[u],G=n[u],k=s[u],F=c[u],m=d[u];if(R===void 0)continue;R.updateMatrix&&R.updateMatrix();const N=I._createAnimationTracks(R,G,k,F,m);if(N)for(let S=0;S<N.length;S++)D.push(N[S])}const h=new l.AnimationClip(C,void 0,D);return Mg(h,Q),h})}createNodeMesh(A){const g=this.json,I=this,Q=g.nodes[A];return Q.mesh===void 0?null:I.getDependency("mesh",Q.mesh).then(function(C){const a=I._getNodeRef(I.meshCache,Q.mesh,C);return Q.weights!==void 0&&a.traverse(function(e){if(e.isMesh)for(let i=0,t=Q.weights.length;i<t;i++)e.morphTargetInfluences[i]=Q.weights[i]}),a})}loadNode(A){const g=this,I=this.json.nodes[A],Q=g._loadNodeShallow(A),C=[],a=I.children||[];for(let i=0,t=a.length;i<t;i++)C.push(g.getDependency("node",a[i]));const e=I.skin===void 0?Promise.resolve(null):g.getDependency("skin",I.skin);return Promise.all([Q,Promise.all(C),e]).then(function(i){const t=i[0],E=i[1],o=i[2];o!==null&&t.traverse(function(r){r.isSkinnedMesh&&r.bind(o,GE)});for(let r=0,n=E.length;r<n;r++)t.add(E[r]);return t})}_loadNodeShallow(A){const g=this.json,I=this.extensions,Q=this;if(this.nodeCache[A]!==void 0)return this.nodeCache[A];const C=g.nodes[A],a=C.name?Q.createUniqueName(C.name):"",e=[],i=Q._invokeOne(function(t){return t.createNodeMesh&&t.createNodeMesh(A)});return i&&e.push(i),C.camera!==void 0&&e.push(Q.getDependency("camera",C.camera).then(function(t){return Q._getNodeRef(Q.cameraCache,C.camera,t)})),Q._invokeAll(function(t){return t.createNodeAttachment&&t.createNodeAttachment(A)}).forEach(function(t){e.push(t)}),this.nodeCache[A]=Promise.all(e).then(function(t){let E;if(E=C.isBone===!0?new l.Bone:t.length>1?new l.Group:t.length===1?t[0]:new l.Object3D,E!==t[0])for(let o=0,r=t.length;o<r;o++)E.add(t[o]);if(C.name&&(E.userData.name=C.name,E.name=a),Mg(E,C),C.extensions&&II(I,E,C),C.matrix!==void 0){const o=new l.Matrix4;o.fromArray(C.matrix),E.applyMatrix4(o)}else C.translation!==void 0&&E.position.fromArray(C.translation),C.rotation!==void 0&&E.quaternion.fromArray(C.rotation),C.scale!==void 0&&E.scale.fromArray(C.scale);if(Q.associations.has(E)){if(C.mesh!==void 0&&Q.meshCache.refs[C.mesh]>1){const o=Q.associations.get(E);Q.associations.set(E,{...o})}}else Q.associations.set(E,{});return Q.associations.get(E).nodes=A,E}),this.nodeCache[A]}loadScene(A){const g=this.extensions,I=this.json.scenes[A],Q=this,C=new l.Group;I.name&&(C.name=Q.createUniqueName(I.name)),Mg(C,I),I.extensions&&II(g,C,I);const a=I.nodes||[],e=[];for(let i=0,t=a.length;i<t;i++)e.push(Q.getDependency("node",a[i]));return Promise.all(e).then(function(i){for(let t=0,E=i.length;t<E;t++)C.add(i[t]);return Q.associations=(t=>{const E=new Map;for(const[o,r]of Q.associations)(o instanceof l.Material||o instanceof l.Texture)&&E.set(o,r);return t.traverse(o=>{const r=Q.associations.get(o);r!=null&&E.set(o,r)}),E})(C),C})}_createAnimationTracks(A,g,I,Q,C){const a=[],e=A.name?A.name:A.uuid,i=[];let t;switch(Hg[C.path]===Hg.weights?A.traverse(function(r){r.morphTargetInfluences&&i.push(r.name?r.name:r.uuid)}):i.push(e),Hg[C.path]){case Hg.weights:t=l.NumberKeyframeTrack;break;case Hg.rotation:t=l.QuaternionKeyframeTrack;break;case Hg.translation:case Hg.scale:t=l.VectorKeyframeTrack;break;default:I.itemSize===1?t=l.NumberKeyframeTrack:t=l.VectorKeyframeTrack}const E=Q.interpolation!==void 0?wE[Q.interpolation]:l.InterpolateLinear,o=this._getArrayFromAccessor(I);for(let r=0,n=i.length;r<n;r++){const s=new t(i[r]+"."+Hg[C.path],g.array,o,E);Q.interpolation==="CUBICSPLINE"&&this._createCubicSplineTrackInterpolant(s),a.push(s)}return a}_getArrayFromAccessor(A){let g=A.array;if(A.normalized){const I=jB(g.constructor),Q=new Float32Array(g.length);for(let C=0,a=g.length;C<a;C++)Q[C]=g[C]*I;g=Q}return g}_createCubicSplineTrackInterpolant(A){A.createInterpolant=function(g){return new(this instanceof l.QuaternionKeyframeTrack?bE:gC)(this.times,this.values,this.getValueSize()/3,g)},A.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0}}function QC(B,A,g){const I=A.attributes,Q=[];function C(a,e){return g.getDependency("accessor",a).then(function(i){B.setAttribute(e,i)})}for(const a in I){const e=HB[a]||a.toLowerCase();e in B.attributes||Q.push(C(I[a],e))}if(A.indices!==void 0&&!B.index){const a=g.getDependency("accessor",A.indices).then(function(e){B.setIndex(e)});Q.push(a)}return l.ColorManagement.workingColorSpace!==l.LinearSRGBColorSpace&&"COLOR_0"in I&&console.warn(`THREE.GLTFLoader: Converting vertex colors from "srgb-linear" to "${l.ColorManagement.workingColorSpace}" not supported.`),Mg(B,A),function(a,e,i){const t=e.attributes,E=new l.Box3;if(t.POSITION===void 0)return;{const n=i.json.accessors[t.POSITION],s=n.min,c=n.max;if(s===void 0||c===void 0)return void console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");if(E.set(new l.Vector3(s[0],s[1],s[2]),new l.Vector3(c[0],c[1],c[2])),n.normalized){const d=jB(cI[n.componentType]);E.min.multiplyScalar(d),E.max.multiplyScalar(d)}}const o=e.targets;if(o!==void 0){const n=new l.Vector3,s=new l.Vector3;for(let c=0,d=o.length;c<d;c++){const D=o[c];if(D.POSITION!==void 0){const h=i.json.accessors[D.POSITION],u=h.min,f=h.max;if(u!==void 0&&f!==void 0){if(s.setX(Math.max(Math.abs(u[0]),Math.abs(f[0]))),s.setY(Math.max(Math.abs(u[1]),Math.abs(f[1]))),s.setZ(Math.max(Math.abs(u[2]),Math.abs(f[2]))),h.normalized){const R=jB(cI[h.componentType]);s.multiplyScalar(R)}n.max(s)}else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}}E.expandByVector(n)}a.boundingBox=E;const r=new l.Sphere;E.getCenter(r.center),r.radius=E.min.distanceTo(E.max)/2,a.boundingSphere=r}(B,A,g),Promise.all(Q).then(function(){return A.targets!==void 0?function(a,e,i){let t=!1,E=!1,o=!1;for(let c=0,d=e.length;c<d;c++){const D=e[c];if(D.POSITION!==void 0&&(t=!0),D.NORMAL!==void 0&&(E=!0),D.COLOR_0!==void 0&&(o=!0),t&&E&&o)break}if(!t&&!E&&!o)return Promise.resolve(a);const r=[],n=[],s=[];for(let c=0,d=e.length;c<d;c++){const D=e[c];if(t){const h=D.POSITION!==void 0?i.getDependency("accessor",D.POSITION):a.attributes.position;r.push(h)}if(E){const h=D.NORMAL!==void 0?i.getDependency("accessor",D.NORMAL):a.attributes.normal;n.push(h)}if(o){const h=D.COLOR_0!==void 0?i.getDependency("accessor",D.COLOR_0):a.attributes.color;s.push(h)}}return Promise.all([Promise.all(r),Promise.all(n),Promise.all(s)]).then(function(c){const d=c[0],D=c[1],h=c[2];return t&&(a.morphAttributes.position=d),E&&(a.morphAttributes.normal=D),o&&(a.morphAttributes.color=h),a.morphTargetsRelative=!0,a})}(B,A.targets,g):B})}const vB=new WeakMap;class CC extends l.Loader{constructor(A){super(A),this.decoderPath="",this.decoderConfig={},this.decoderBinary=null,this.decoderPending=null,this.workerLimit=4,this.workerPool=[],this.workerNextTaskID=1,this.workerSourceURL="",this.defaultAttributeIDs={position:"POSITION",normal:"NORMAL",color:"COLOR",uv:"TEX_COORD"},this.defaultAttributeTypes={position:"Float32Array",normal:"Float32Array",color:"Float32Array",uv:"Float32Array"}}setDecoderPath(A){return this.decoderPath=A,this}setDecoderConfig(A){return this.decoderConfig=A,this}setWorkerLimit(A){return this.workerLimit=A,this}load(A,g,I,Q){const C=new l.FileLoader(this.manager);C.setPath(this.path),C.setResponseType("arraybuffer"),C.setRequestHeader(this.requestHeader),C.setWithCredentials(this.withCredentials),C.load(A,a=>{this.parse(a,g,Q)},I,Q)}parse(A,g,I=()=>{}){this.decodeDracoFile(A,g,null,null,l.SRGBColorSpace,I).catch(I)}decodeDracoFile(A,g,I,Q,C=l.LinearSRGBColorSpace,a=()=>{}){const e={attributeIDs:I||this.defaultAttributeIDs,attributeTypes:Q||this.defaultAttributeTypes,useUniqueIDs:!!I,vertexColorSpace:C};return this.decodeGeometry(A,e).then(g).catch(a)}decodeGeometry(A,g){const I=JSON.stringify(g);if(vB.has(A)){const i=vB.get(A);if(i.key===I)return i.promise;if(A.byteLength===0)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let Q;const C=this.workerNextTaskID++,a=A.byteLength,e=this._getWorker(C,a).then(i=>(Q=i,new Promise((t,E)=>{Q._callbacks[C]={resolve:t,reject:E},Q.postMessage({type:"decode",id:C,taskConfig:g,buffer:A},[A])}))).then(i=>this._createGeometry(i.geometry));return e.catch(()=>!0).then(()=>{Q&&C&&this._releaseTask(Q,C)}),vB.set(A,{key:I,promise:e}),e}_createGeometry(A){const g=new l.BufferGeometry;A.index&&g.setIndex(new l.BufferAttribute(A.index.array,1));for(let I=0;I<A.attributes.length;I++){const Q=A.attributes[I],C=Q.name,a=Q.array,e=Q.itemSize,i=new l.BufferAttribute(a,e);C==="color"&&(this._assignVertexColorSpace(i,Q.vertexColorSpace),i.normalized=!(a instanceof Float32Array)),g.setAttribute(C,i)}return g}_assignVertexColorSpace(A,g){if(g!==l.SRGBColorSpace)return;const I=new l.Color;for(let Q=0,C=A.count;Q<C;Q++)I.fromBufferAttribute(A,Q),l.ColorManagement.colorSpaceToWorking(I,l.SRGBColorSpace),A.setXYZ(Q,I.r,I.g,I.b)}_loadLibrary(A,g){const I=new l.FileLoader(this.manager);return I.setPath(this.decoderPath),I.setResponseType(g),I.setWithCredentials(this.withCredentials),new Promise((Q,C)=>{I.load(A,Q,void 0,C)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;const A=typeof WebAssembly!="object"||this.decoderConfig.type==="js",g=[];return A?g.push(this._loadLibrary("draco_decoder.js","text")):(g.push(this._loadLibrary("draco_wasm_wrapper.js","text")),g.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(g).then(I=>{const Q=I[0];A||(this.decoderConfig.wasmBinary=I[1]);const C=kE.toString(),a=["/* draco decoder */",Q,"","/* worker */",C.substring(C.indexOf("{")+1,C.lastIndexOf("}"))].join(`
|
|
950
|
+
`);this.workerSourceURL=URL.createObjectURL(new Blob([a]))}),this.decoderPending}_getWorker(A,g){return this._initDecoder().then(()=>{if(this.workerPool.length<this.workerLimit){const Q=new Worker(this.workerSourceURL);Q._callbacks={},Q._taskCosts={},Q._taskLoad=0,Q.postMessage({type:"init",decoderConfig:this.decoderConfig}),Q.onmessage=function(C){const a=C.data;switch(a.type){case"decode":Q._callbacks[a.id].resolve(a);break;case"error":Q._callbacks[a.id].reject(a);break;default:console.error('THREE.DRACOLoader: Unexpected message, "'+a.type+'"')}},this.workerPool.push(Q)}else this.workerPool.sort(function(Q,C){return Q._taskLoad>C._taskLoad?-1:1});const I=this.workerPool[this.workerPool.length-1];return I._taskCosts[A]=g,I._taskLoad+=g,I})}_releaseTask(A,g){A._taskLoad-=A._taskCosts[g],delete A._callbacks[g],delete A._taskCosts[g]}debug(){console.log("Task load: ",this.workerPool.map(A=>A._taskLoad))}dispose(){for(let A=0;A<this.workerPool.length;++A)this.workerPool[A].terminate();return this.workerPool.length=0,this.workerSourceURL!==""&&URL.revokeObjectURL(this.workerSourceURL),this}}function kE(){let B,A;function g(I,Q,C,a,e,i){const t=i.num_components(),E=C.num_points()*t,o=E*e.BYTES_PER_ELEMENT,r=function(c,d){switch(d){case Float32Array:return c.DT_FLOAT32;case Int8Array:return c.DT_INT8;case Int16Array:return c.DT_INT16;case Int32Array:return c.DT_INT32;case Uint8Array:return c.DT_UINT8;case Uint16Array:return c.DT_UINT16;case Uint32Array:return c.DT_UINT32}}(I,e),n=I._malloc(o);Q.GetAttributeDataArrayForAllPoints(C,i,r,o,n);const s=new e(I.HEAPF32.buffer,n,E).slice();return I._free(n),{name:a,array:s,itemSize:t}}onmessage=function(I){const Q=I.data;switch(Q.type){case"init":B=Q.decoderConfig,A=new Promise(function(e){B.onModuleLoaded=function(i){e({draco:i})},DracoDecoderModule(B)});break;case"decode":const C=Q.buffer,a=Q.taskConfig;A.then(e=>{const i=e.draco,t=new i.Decoder;try{const E=function(r,n,s,c){const d=c.attributeIDs,D=c.attributeTypes;let h,u;const f=n.GetEncodedGeometryType(s);if(f===r.TRIANGULAR_MESH)h=new r.Mesh,u=n.DecodeArrayToMesh(s,s.byteLength,h);else{if(f!==r.POINT_CLOUD)throw new Error("THREE.DRACOLoader: Unexpected geometry type.");h=new r.PointCloud,u=n.DecodeArrayToPointCloud(s,s.byteLength,h)}if(!u.ok()||h.ptr===0)throw new Error("THREE.DRACOLoader: Decoding failed: "+u.error_msg());const R={index:null,attributes:[]};for(const G in d){const k=self[D[G]];let F,m;if(c.useUniqueIDs)m=d[G],F=n.GetAttributeByUniqueId(h,m);else{if(m=n.GetAttributeId(h,r[d[G]]),m===-1)continue;F=n.GetAttribute(h,m)}const N=g(r,n,h,G,k,F);G==="color"&&(N.vertexColorSpace=c.vertexColorSpace),R.attributes.push(N)}return f===r.TRIANGULAR_MESH&&(R.index=function(G,k,F){const m=F.num_faces(),N=3*m,S=4*N,j=G._malloc(S);k.GetTrianglesUInt32Array(F,S,j);const z=new Uint32Array(G.HEAPF32.buffer,j,N).slice();return G._free(j),{array:z,itemSize:1}}(r,n,h)),r.destroy(h),R}(i,t,new Int8Array(C),a),o=E.attributes.map(r=>r.array.buffer);E.index&&o.push(E.index.array.buffer),self.postMessage({type:"decode",id:Q.id,geometry:E},o)}catch(E){console.error(E),self.postMessage({type:"error",id:Q.id,error:E.message})}finally{i.destroy(t)}})}}}class mE{constructor(A=4){this.pool=A,this.queue=[],this.workers=[],this.workersResolve=[],this.workerStatus=0,this.workerCreator=null}_initWorker(A){if(!this.workers[A]){const g=this.workerCreator();g.addEventListener("message",this._onMessage.bind(this,A)),this.workers[A]=g}}_getIdleWorker(){for(let A=0;A<this.pool;A++)if(!(this.workerStatus&1<<A))return A;return-1}_onMessage(A,g){const I=this.workersResolve[A];if(I&&I(g),this.queue.length){const{resolve:Q,msg:C,transfer:a}=this.queue.shift();this.workersResolve[A]=Q,this.workers[A].postMessage(C,a)}else this.workerStatus^=1<<A}setWorkerCreator(A){this.workerCreator=A}setWorkerLimit(A){this.pool=A}postMessage(A,g){return new Promise(I=>{const Q=this._getIdleWorker();Q!==-1?(this._initWorker(Q),this.workerStatus|=1<<Q,this.workersResolve[Q]=I,this.workers[Q].postMessage(A,g)):this.queue.push({resolve:I,msg:A,transfer:g})})}dispose(){this.workers.forEach(A=>A.terminate()),this.workersResolve.length=0,this.workers.length=0,this.queue.length=0,this.workerStatus=0}}const aC=9,eC=15,EC=16,iC=22,tC=37,oC=43,nC=76,rC=83,sC=97,cC=100,hC=103,dC=109,DC=122,lC=123,uC=131,bC=132,wC=133,fC=134,yC=137,FC=138,pC=139,MC=140,GC=141,RC=142,kC=145,mC=146,NC=148,UC=152,SC=157,LC=158,JC=165,xC=166,YC=1000054e3,HC=1000054001,KC=1000054004,jC=1000054005,qB=1000066e3,vC=1000066004;class UI{constructor(A,g,I,Q){this._dataView=void 0,this._littleEndian=void 0,this._offset=void 0,this._dataView=new DataView(A.buffer,A.byteOffset+g,I),this._littleEndian=Q,this._offset=0}_nextUint8(){const A=this._dataView.getUint8(this._offset);return this._offset+=1,A}_nextUint16(){const A=this._dataView.getUint16(this._offset,this._littleEndian);return this._offset+=2,A}_nextUint32(){const A=this._dataView.getUint32(this._offset,this._littleEndian);return this._offset+=4,A}_nextUint64(){const A=this._dataView.getUint32(this._offset,this._littleEndian)+4294967296*this._dataView.getUint32(this._offset+4,this._littleEndian);return this._offset+=8,A}_nextInt32(){const A=this._dataView.getInt32(this._offset,this._littleEndian);return this._offset+=4,A}_nextUint8Array(A){const g=new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+this._offset,A);return this._offset+=A,g}_skip(A){return this._offset+=A,this}_scan(A,g=0){const I=this._offset;let Q=0;for(;this._dataView.getUint8(this._offset)!==g&&Q<A;)Q++,this._offset++;return Q<A&&this._offset++,new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+I,Q)}}const Ig=[171,75,84,88,32,50,48,187,13,10,26,10];function qC(B){return new TextDecoder().decode(B)}let TB,Ug,OB;const WB={env:{emscripten_notify_memory_growth:function(B){OB=new Uint8Array(Ug.exports.memory.buffer)}}};class NE{init(){return TB||(TB=typeof fetch<"u"?fetch("data:application/wasm;base64,"+TC).then(A=>A.arrayBuffer()).then(A=>WebAssembly.instantiate(A,WB)).then(this._init):WebAssembly.instantiate(Buffer.from(TC,"base64"),WB).then(this._init),TB)}_init(A){Ug=A.instance,WB.env.emscripten_notify_memory_growth(0)}decode(A,g=0){if(!Ug)throw new Error("ZSTDDecoder: Await .init() before decoding.");const I=A.byteLength,Q=Ug.exports.malloc(I);OB.set(A,Q),g=g||Number(Ug.exports.ZSTD_findDecompressedSize(Q,I));const C=Ug.exports.malloc(g),a=Ug.exports.ZSTD_decompress(C,g,Q,I),e=OB.slice(C,C+a);return Ug.exports.free(Q),Ug.exports.free(C),e}}const TC="AGFzbQEAAAABpQEVYAF/AX9gAn9/AGADf39/AX9gBX9/f39/AX9gAX8AYAJ/fwF/YAR/f39/AX9gA39/fwBgBn9/f39/fwF/YAd/f39/f39/AX9gAn9/AX5gAn5+AX5gAABgBX9/f39/AGAGf39/f39/AGAIf39/f39/f38AYAl/f39/f39/f38AYAABf2AIf39/f39/f38Bf2ANf39/f39/f39/f39/fwF/YAF/AX4CJwEDZW52H2Vtc2NyaXB0ZW5fbm90aWZ5X21lbW9yeV9ncm93dGgABANpaAEFAAAFAgEFCwACAQABAgIFBQcAAwABDgsBAQcAEhMHAAUBDAQEAAANBwQCAgYCBAgDAwMDBgEACQkHBgICAAYGAgQUBwYGAwIGAAMCAQgBBwUGCgoEEQAEBAEIAwgDBQgDEA8IAAcABAUBcAECAgUEAQCAAgYJAX8BQaCgwAILB2AHBm1lbW9yeQIABm1hbGxvYwAoBGZyZWUAJgxaU1REX2lzRXJyb3IAaBlaU1REX2ZpbmREZWNvbXByZXNzZWRTaXplAFQPWlNURF9kZWNvbXByZXNzAEoGX3N0YXJ0ACQJBwEAQQELASQKussBaA8AIAAgACgCBCABajYCBAsZACAAKAIAIAAoAgRBH3F0QQAgAWtBH3F2CwgAIABBiH9LC34BBH9BAyEBIAAoAgQiA0EgTQRAIAAoAggiASAAKAIQTwRAIAAQDQ8LIAAoAgwiAiABRgRAQQFBAiADQSBJGw8LIAAgASABIAJrIANBA3YiBCABIARrIAJJIgEbIgJrIgQ2AgggACADIAJBA3RrNgIEIAAgBCgAADYCAAsgAQsUAQF/IAAgARACIQIgACABEAEgAgv3AQECfyACRQRAIABCADcCACAAQQA2AhAgAEIANwIIQbh/DwsgACABNgIMIAAgAUEEajYCECACQQRPBEAgACABIAJqIgFBfGoiAzYCCCAAIAMoAAA2AgAgAUF/ai0AACIBBEAgAEEIIAEQFGs2AgQgAg8LIABBADYCBEF/DwsgACABNgIIIAAgAS0AACIDNgIAIAJBfmoiBEEBTQRAIARBAWtFBEAgACABLQACQRB0IANyIgM2AgALIAAgAS0AAUEIdCADajYCAAsgASACakF/ai0AACIBRQRAIABBADYCBEFsDwsgAEEoIAEQFCACQQN0ams2AgQgAgsWACAAIAEpAAA3AAAgACABKQAINwAICy8BAX8gAUECdEGgHWooAgAgACgCAEEgIAEgACgCBGprQR9xdnEhAiAAIAEQASACCyEAIAFCz9bTvtLHq9lCfiAAfEIfiUKHla+vmLbem55/fgsdAQF/IAAoAgggACgCDEYEfyAAKAIEQSBGBUEACwuCBAEDfyACQYDAAE8EQCAAIAEgAhBnIAAPCyAAIAJqIQMCQCAAIAFzQQNxRQRAAkAgAkEBSARAIAAhAgwBCyAAQQNxRQRAIAAhAgwBCyAAIQIDQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADTw0BIAJBA3ENAAsLAkAgA0F8cSIEQcAASQ0AIAIgBEFAaiIFSw0AA0AgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASgCHDYCHCACIAEoAiA2AiAgAiABKAIkNgIkIAIgASgCKDYCKCACIAEoAiw2AiwgAiABKAIwNgIwIAIgASgCNDYCNCACIAEoAjg2AjggAiABKAI8NgI8IAFBQGshASACQUBrIgIgBU0NAAsLIAIgBE8NAQNAIAIgASgCADYCACABQQRqIQEgAkEEaiICIARJDQALDAELIANBBEkEQCAAIQIMAQsgA0F8aiIEIABJBEAgACECDAELIAAhAgNAIAIgAS0AADoAACACIAEtAAE6AAEgAiABLQACOgACIAIgAS0AAzoAAyABQQRqIQEgAkEEaiICIARNDQALCyACIANJBEADQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADRw0ACwsgAAsMACAAIAEpAAA3AAALQQECfyAAKAIIIgEgACgCEEkEQEEDDwsgACAAKAIEIgJBB3E2AgQgACABIAJBA3ZrIgE2AgggACABKAAANgIAQQALDAAgACABKAIANgAAC/cCAQJ/AkAgACABRg0AAkAgASACaiAASwRAIAAgAmoiBCABSw0BCyAAIAEgAhALDwsgACABc0EDcSEDAkACQCAAIAFJBEAgAwRAIAAhAwwDCyAAQQNxRQRAIAAhAwwCCyAAIQMDQCACRQ0EIAMgAS0AADoAACABQQFqIQEgAkF/aiECIANBAWoiA0EDcQ0ACwwBCwJAIAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigCACACaiAAQQZ2IgFBAnRBsB5qKAIAaiAAQSBxIgBFaiABRSAAQQV2cWoFQbh/CwsdACAAKAKQ4gEQWiAAQQA2AqDiASAAQgA3A5DiAQu1AwEFfyMAQZACayIKJABBuH8hBgJAIAVFDQAgBCwAACIIQf8BcSEHAkAgCEF/TARAIAdBgn9qQQF2IgggBU8NAkFsIQYgB0GBf2oiBUGAAk8NAiAEQQFqIQdBACEGA0AgBiAFTwRAIAUhBiAIIQcMAwUgACAGaiAHIAZBAXZqIgQtAABBBHY6AAAgACAGQQFyaiAELQAAQQ9xOgAAIAZBAmohBgwBCwAACwALIAcgBU8NASAAIARBAWogByAKEFMiBhADDQELIAYhBEEAIQYgAUEAQTQQECEJQQAhBQNAIAQgBkcEQCAAIAZqIggtAAAiAUELSwRAQWwhBgwDBSAJIAFBAnRqIgEgASgCAEEBajYCACAGQQFqIQZBASAILQAAdEEBdSAFaiEFDAILAAsLQWwhBiAFRQ0AIAUQFEEBaiIBQQxLDQAgAyABNgIAQQFBASABdCAFayIDEBQiAXQgA0cNACAAIARqIAFBAWoiADoAACAJIABBAnRqIgAgACgCAEEBajYCACAJKAIEIgBBAkkgAEEBcXINACACIARBAWo2AgAgB0EBaiEGCyAKQZACaiQAIAYLxhEBDH8jAEHwAGsiBSQAQWwhCwJAIANBCkkNACACLwAAIQogAi8AAiEJIAIvAAQhByAFQQhqIAQQDgJAIAMgByAJIApqakEGaiIMSQ0AIAUtAAohCCAFQdgAaiACQQZqIgIgChAGIgsQAw0BIAVBQGsgAiAKaiICIAkQBiILEAMNASAFQShqIAIgCWoiAiAHEAYiCxADDQEgBUEQaiACIAdqIAMgDGsQBiILEAMNASAAIAFqIg9BfWohECAEQQRqIQZBASELIAAgAUEDakECdiIDaiIMIANqIgIgA2oiDiEDIAIhBCAMIQcDQCALIAMgEElxBEAgACAGIAVB2ABqIAgQAkECdGoiCS8BADsAACAFQdgAaiAJLQACEAEgCS0AAyELIAcgBiAFQUBrIAgQAkECdGoiCS8BADsAACAFQUBrIAktAAIQASAJLQADIQogBCAGIAVBKGogCBACQQJ0aiIJLwEAOwAAIAVBKGogCS0AAhABIAktAAMhCSADIAYgBUEQaiAIEAJBAnRqIg0vAQA7AAAgBUEQaiANLQACEAEgDS0AAyENIAAgC2oiCyAGIAVB2ABqIAgQAkECdGoiAC8BADsAACAFQdgAaiAALQACEAEgAC0AAyEAIAcgCmoiCiAGIAVBQGsgCBACQQJ0aiIHLwEAOwAAIAVBQGsgBy0AAhABIActAAMhByAEIAlqIgkgBiAFQShqIAgQAkECdGoiBC8BADsAACAFQShqIAQtAAIQASAELQADIQQgAyANaiIDIAYgBUEQaiAIEAJBAnRqIg0vAQA7AAAgBUEQaiANLQACEAEgACALaiEAIAcgCmohByAEIAlqIQQgAyANLQADaiEDIAVB2ABqEA0gBUFAaxANciAFQShqEA1yIAVBEGoQDXJFIQsMAQsLIAQgDksgByACS3INAEFsIQsgACAMSw0BIAxBfWohCQNAQQAgACAJSSAFQdgAahAEGwRAIAAgBiAFQdgAaiAIEAJBAnRqIgovAQA7AAAgBUHYAGogCi0AAhABIAAgCi0AA2oiACAGIAVB2ABqIAgQAkECdGoiCi8BADsAACAFQdgAaiAKLQACEAEgACAKLQADaiEADAEFIAxBfmohCgNAIAVB2ABqEAQgACAKS3JFBEAgACAGIAVB2ABqIAgQAkECdGoiCS8BADsAACAFQdgAaiAJLQACEAEgACAJLQADaiEADAELCwNAIAAgCk0EQCAAIAYgBUHYAGogCBACQQJ0aiIJLwEAOwAAIAVB2ABqIAktAAIQASAAIAktAANqIQAMAQsLAkAgACAMTw0AIAAgBiAFQdgAaiAIEAIiAEECdGoiDC0AADoAACAMLQADQQFGBEAgBUHYAGogDC0AAhABDAELIAUoAlxBH0sNACAFQdgAaiAGIABBAnRqLQACEAEgBSgCXEEhSQ0AIAVBIDYCXAsgAkF9aiEMA0BBACAHIAxJIAVBQGsQBBsEQCAHIAYgBUFAayAIEAJBAnRqIgAvAQA7AAAgBUFAayAALQACEAEgByAALQADaiIAIAYgBUFAayAIEAJBAnRqIgcvAQA7AAAgBUFAayAHLQACEAEgACAHLQADaiEHDAEFIAJBfmohDANAIAVBQGsQBCAHIAxLckUEQCAHIAYgBUFAayAIEAJBAnRqIgAvAQA7AAAgBUFAayAALQACEAEgByAALQADaiEHDAELCwNAIAcgDE0EQCAHIAYgBUFAayAIEAJBAnRqIgAvAQA7AAAgBUFAayAALQACEAEgByAALQADaiEHDAELCwJAIAcgAk8NACAHIAYgBUFAayAIEAIiAEECdGoiAi0AADoAACACLQADQQFGBEAgBUFAayACLQACEAEMAQsgBSgCREEfSw0AIAVBQGsgBiAAQQJ0ai0AAhABIAUoAkRBIUkNACAFQSA2AkQLIA5BfWohAgNAQQAgBCACSSAFQShqEAQbBEAgBCAGIAVBKGogCBACQQJ0aiIALwEAOwAAIAVBKGogAC0AAhABIAQgAC0AA2oiACAGIAVBKGogCBACQQJ0aiIELwEAOwAAIAVBKGogBC0AAhABIAAgBC0AA2ohBAwBBSAOQX5qIQIDQCAFQShqEAQgBCACS3JFBEAgBCAGIAVBKGogCBACQQJ0aiIALwEAOwAAIAVBKGogAC0AAhABIAQgAC0AA2ohBAwBCwsDQCAEIAJNBEAgBCAGIAVBKGogCBACQQJ0aiIALwEAOwAAIAVBKGogAC0AAhABIAQgAC0AA2ohBAwBCwsCQCAEIA5PDQAgBCAGIAVBKGogCBACIgBBAnRqIgItAAA6AAAgAi0AA0EBRgRAIAVBKGogAi0AAhABDAELIAUoAixBH0sNACAFQShqIAYgAEECdGotAAIQASAFKAIsQSFJDQAgBUEgNgIsCwNAQQAgAyAQSSAFQRBqEAQbBEAgAyAGIAVBEGogCBACQQJ0aiIALwEAOwAAIAVBEGogAC0AAhABIAMgAC0AA2oiACAGIAVBEGogCBACQQJ0aiICLwEAOwAAIAVBEGogAi0AAhABIAAgAi0AA2ohAwwBBSAPQX5qIQIDQCAFQRBqEAQgAyACS3JFBEAgAyAGIAVBEGogCBACQQJ0aiIALwEAOwAAIAVBEGogAC0AAhABIAMgAC0AA2ohAwwBCwsDQCADIAJNBEAgAyAGIAVBEGogCBACQQJ0aiIALwEAOwAAIAVBEGogAC0AAhABIAMgAC0AA2ohAwwBCwsCQCADIA9PDQAgAyAGIAVBEGogCBACIgBBAnRqIgItAAA6AAAgAi0AA0EBRgRAIAVBEGogAi0AAhABDAELIAUoAhRBH0sNACAFQRBqIAYgAEECdGotAAIQASAFKAIUQSFJDQAgBUEgNgIUCyABQWwgBUHYAGoQCiAFQUBrEApxIAVBKGoQCnEgBUEQahAKcRshCwwJCwAACwALAAALAAsAAAsACwAACwALQWwhCwsgBUHwAGokACALC7UEAQ5/IwBBEGsiBiQAIAZBBGogABAOQVQhBQJAIARB3AtJDQAgBi0ABCEHIANB8ARqQQBB7AAQECEIIAdBDEsNACADQdwJaiIJIAggBkEIaiAGQQxqIAEgAhAxIhAQA0UEQCAGKAIMIgQgB0sNASADQdwFaiEPIANBpAVqIREgAEEEaiESIANBqAVqIQEgBCEFA0AgBSICQX9qIQUgCCACQQJ0aigCAEUNAAsgAkEBaiEOQQEhBQNAIAUgDk9FBEAgCCAFQQJ0IgtqKAIAIQwgASALaiAKNgIAIAVBAWohBSAKIAxqIQoMAQsLIAEgCjYCAEEAIQUgBigCCCELA0AgBSALRkUEQCABIAUgCWotAAAiDEECdGoiDSANKAIAIg1BAWo2AgAgDyANQQF0aiINIAw6AAEgDSAFOgAAIAVBAWohBQwBCwtBACEBIANBADYCqAUgBEF/cyAHaiEJQQEhBQNAIAUgDk9FBEAgCCAFQQJ0IgtqKAIAIQwgAyALaiABNgIAIAwgBSAJanQgAWohASAFQQFqIQUMAQsLIAcgBEEBaiIBIAJrIgRrQQFqIQgDQEEBIQUgBCAIT0UEQANAIAUgDk9FBEAgBUECdCIJIAMgBEE0bGpqIAMgCWooAgAgBHY2AgAgBUEBaiEFDAELCyAEQQFqIQQMAQsLIBIgByAPIAogESADIAIgARBkIAZBAToABSAGIAc6AAYgACAGKAIENgIACyAQIQULIAZBEGokACAFC8ENAQt/IwBB8ABrIgUkAEFsIQkCQCADQQpJDQAgAi8AACEKIAIvAAIhDCACLwAEIQYgBUEIaiAEEA4CQCADIAYgCiAMampBBmoiDUkNACAFLQAKIQcgBUHYAGogAkEGaiICIAoQBiIJEAMNASAFQUBrIAIgCmoiAiAMEAYiCRADDQEgBUEoaiACIAxqIgIgBhAGIgkQAw0BIAVBEGogAiAGaiADIA1rEAYiCRADDQEgACABaiIOQX1qIQ8gBEEEaiEGQQEhCSAAIAFBA2pBAnYiAmoiCiACaiIMIAJqIg0hAyAMIQQgCiECA0AgCSADIA9JcQRAIAYgBUHYAGogBxACQQF0aiIILQAAIQsgBUHYAGogCC0AARABIAAgCzoAACAGIAVBQGsgBxACQQF0aiIILQAAIQsgBUFAayAILQABEAEgAiALOgAAIAYgBUEoaiAHEAJBAXRqIggtAAAhCyAFQShqIAgtAAEQASAEIAs6AAAgBiAFQRBqIAcQAkEBdGoiCC0AACELIAVBEGogCC0AARABIAMgCzoAACAGIAVB2ABqIAcQAkEBdGoiCC0AACELIAVB2ABqIAgtAAEQASAAIAs6AAEgBiAFQUBrIAcQAkEBdGoiCC0AACELIAVBQGsgCC0AARABIAIgCzoAASAGIAVBKGogBxACQQF0aiIILQAAIQsgBUEoaiAILQABEAEgBCALOgABIAYgBUEQaiAHEAJBAXRqIggtAAAhCyAFQRBqIAgtAAEQASADIAs6AAEgA0ECaiEDIARBAmohBCACQQJqIQIgAEECaiEAIAkgBUHYAGoQDUVxIAVBQGsQDUVxIAVBKGoQDUVxIAVBEGoQDUVxIQkMAQsLIAQgDUsgAiAMS3INAEFsIQkgACAKSw0BIApBfWohCQNAIAVB2ABqEAQgACAJT3JFBEAgBiAFQdgAaiAHEAJBAXRqIggtAAAhCyAFQdgAaiAILQABEAEgACALOgAAIAYgBUHYAGogBxACQQF0aiIILQAAIQsgBUHYAGogCC0AARABIAAgCzoAASAAQQJqIQAMAQsLA0AgBUHYAGoQBCAAIApPckUEQCAGIAVB2ABqIAcQAkEBdGoiCS0AACEIIAVB2ABqIAktAAEQASAAIAg6AAAgAEEBaiEADAELCwNAIAAgCkkEQCAGIAVB2ABqIAcQAkEBdGoiCS0AACEIIAVB2ABqIAktAAEQASAAIAg6AAAgAEEBaiEADAELCyAMQX1qIQADQCAFQUBrEAQgAiAAT3JFBEAgBiAFQUBrIAcQAkEBdGoiCi0AACEJIAVBQGsgCi0AARABIAIgCToAACAGIAVBQGsgBxACQQF0aiIKLQAAIQkgBUFAayAKLQABEAEgAiAJOgABIAJBAmohAgwBCwsDQCAFQUBrEAQgAiAMT3JFBEAgBiAFQUBrIAcQAkEBdGoiAC0AACEKIAVBQGsgAC0AARABIAIgCjoAACACQQFqIQIMAQsLA0AgAiAMSQRAIAYgBUFAayAHEAJBAXRqIgAtAAAhCiAFQUBrIAAtAAEQASACIAo6AAAgAkEBaiECDAELCyANQX1qIQADQCAFQShqEAQgBCAAT3JFBEAgBiAFQShqIAcQAkEBdGoiAi0AACEKIAVBKGogAi0AARABIAQgCjoAACAGIAVBKGogBxACQQF0aiICLQAAIQogBUEoaiACLQABEAEgBCAKOgABIARBAmohBAwBCwsDQCAFQShqEAQgBCANT3JFBEAgBiAFQShqIAcQAkEBdGoiAC0AACECIAVBKGogAC0AARABIAQgAjoAACAEQQFqIQQMAQsLA0AgBCANSQRAIAYgBUEoaiAHEAJBAXRqIgAtAAAhAiAFQShqIAAtAAEQASAEIAI6AAAgBEEBaiEEDAELCwNAIAVBEGoQBCADIA9PckUEQCAGIAVBEGogBxACQQF0aiIALQAAIQIgBUEQaiAALQABEAEgAyACOgAAIAYgBUEQaiAHEAJBAXRqIgAtAAAhAiAFQRBqIAAtAAEQASADIAI6AAEgA0ECaiEDDAELCwNAIAVBEGoQBCADIA5PckUEQCAGIAVBEGogBxACQQF0aiIALQAAIQIgBUEQaiAALQABEAEgAyACOgAAIANBAWohAwwBCwsDQCADIA5JBEAgBiAFQRBqIAcQAkEBdGoiAC0AACECIAVBEGogAC0AARABIAMgAjoAACADQQFqIQMMAQsLIAFBbCAFQdgAahAKIAVBQGsQCnEgBUEoahAKcSAFQRBqEApxGyEJDAELQWwhCQsgBUHwAGokACAJC8oCAQR/IwBBIGsiBSQAIAUgBBAOIAUtAAIhByAFQQhqIAIgAxAGIgIQA0UEQCAEQQRqIQIgACABaiIDQX1qIQQDQCAFQQhqEAQgACAET3JFBEAgAiAFQQhqIAcQAkEBdGoiBi0AACEIIAVBCGogBi0AARABIAAgCDoAACACIAVBCGogBxACQQF0aiIGLQAAIQggBUEIaiAGLQABEAEgACAIOgABIABBAmohAAwBCwsDQCAFQQhqEAQgACADT3JFBEAgAiAFQQhqIAcQAkEBdGoiBC0AACEGIAVBCGogBC0AARABIAAgBjoAACAAQQFqIQAMAQsLA0AgACADT0UEQCACIAVBCGogBxACQQF0aiIELQAAIQYgBUEIaiAELQABEAEgACAGOgAAIABBAWohAAwBCwsgAUFsIAVBCGoQChshAgsgBUEgaiQAIAILtgMBCX8jAEEQayIGJAAgBkEANgIMIAZBADYCCEFUIQQCQAJAIANBQGsiDCADIAZBCGogBkEMaiABIAIQMSICEAMNACAGQQRqIAAQDiAGKAIMIgcgBi0ABEEBaksNASAAQQRqIQogBkEAOgAFIAYgBzoABiAAIAYoAgQ2AgAgB0EBaiEJQQEhBANAIAQgCUkEQCADIARBAnRqIgEoAgAhACABIAU2AgAgACAEQX9qdCAFaiEFIARBAWohBAwBCwsgB0EBaiEHQQAhBSAGKAIIIQkDQCAFIAlGDQEgAyAFIAxqLQAAIgRBAnRqIgBBASAEdEEBdSILIAAoAgAiAWoiADYCACAHIARrIQhBACEEAkAgC0EDTQRAA0AgBCALRg0CIAogASAEakEBdGoiACAIOgABIAAgBToAACAEQQFqIQQMAAALAAsDQCABIABPDQEgCiABQQF0aiIEIAg6AAEgBCAFOgAAIAQgCDoAAyAEIAU6AAIgBCAIOgAFIAQgBToABCAEIAg6AAcgBCAFOgAGIAFBBGohAQwAAAsACyAFQQFqIQUMAAALAAsgAiEECyAGQRBqJAAgBAutAQECfwJAQYQgKAIAIABHIAAoAgBBAXYiAyABa0F4aiICQXhxQQhHcgR/IAIFIAMQJ0UNASACQQhqC0EQSQ0AIAAgACgCACICQQFxIAAgAWpBD2pBeHEiASAAa0EBdHI2AgAgASAANgIEIAEgASgCAEEBcSAAIAJBAXZqIAFrIgJBAXRyNgIAQYQgIAEgAkH/////B3FqQQRqQYQgKAIAIABGGyABNgIAIAEQJQsLygIBBX8CQAJAAkAgAEEIIABBCEsbZ0EfcyAAaUEBR2oiAUEESSAAIAF2cg0AIAFBAnRB/B5qKAIAIgJFDQADQCACQXhqIgMoAgBBAXZBeGoiBSAATwRAIAIgBUEIIAVBCEsbZ0Efc0ECdEGAH2oiASgCAEYEQCABIAIoAgQ2AgALDAMLIARBHksNASAEQQFqIQQgAigCBCICDQALC0EAIQMgAUEgTw0BA0AgAUECdEGAH2ooAgAiAkUEQCABQR5LIQIgAUEBaiEBIAJFDQEMAwsLIAIgAkF4aiIDKAIAQQF2QXhqIgFBCCABQQhLG2dBH3NBAnRBgB9qIgEoAgBGBEAgASACKAIENgIACwsgAigCACIBBEAgASACKAIENgIECyACKAIEIgEEQCABIAIoAgA2AgALIAMgAygCAEEBcjYCACADIAAQNwsgAwvhCwINfwV+IwBB8ABrIgckACAHIAAoAvDhASIINgJcIAEgAmohDSAIIAAoAoDiAWohDwJAAkAgBUUEQCABIQQMAQsgACgCxOABIRAgACgCwOABIREgACgCvOABIQ4gAEEBNgKM4QFBACEIA0AgCEEDRwRAIAcgCEECdCICaiAAIAJqQazQAWooAgA2AkQgCEEBaiEIDAELC0FsIQwgB0EYaiADIAQQBhADDQEgB0EsaiAHQRhqIAAoAgAQEyAHQTRqIAdBGGogACgCCBATIAdBPGogB0EYaiAAKAIEEBMgDUFgaiESIAEhBEEAIQwDQCAHKAIwIAcoAixBA3RqKQIAIhRCEIinQf8BcSEIIAcoAkAgBygCPEEDdGopAgAiFUIQiKdB/wFxIQsgBygCOCAHKAI0QQN0aikCACIWQiCIpyEJIBVCIIghFyAUQiCIpyECAkAgFkIQiKdB/wFxIgNBAk8EQAJAIAZFIANBGUlyRQRAIAkgB0EYaiADQSAgBygCHGsiCiAKIANLGyIKEAUgAyAKayIDdGohCSAHQRhqEAQaIANFDQEgB0EYaiADEAUgCWohCQwBCyAHQRhqIAMQBSAJaiEJIAdBGGoQBBoLIAcpAkQhGCAHIAk2AkQgByAYNwNIDAELAkAgA0UEQCACBEAgBygCRCEJDAMLIAcoAkghCQwBCwJAAkAgB0EYakEBEAUgCSACRWpqIgNBA0YEQCAHKAJEQX9qIgMgA0VqIQkMAQsgA0ECdCAHaigCRCIJIAlFaiEJIANBAUYNAQsgByAHKAJINgJMCwsgByAHKAJENgJIIAcgCTYCRAsgF6chAyALBEAgB0EYaiALEAUgA2ohAwsgCCALakEUTwRAIAdBGGoQBBoLIAgEQCAHQRhqIAgQBSACaiECCyAHQRhqEAQaIAcgB0EYaiAUQhiIp0H/AXEQCCAUp0H//wNxajYCLCAHIAdBGGogFUIYiKdB/wFxEAggFadB//8DcWo2AjwgB0EYahAEGiAHIAdBGGogFkIYiKdB/wFxEAggFqdB//8DcWo2AjQgByACNgJgIAcoAlwhCiAHIAk2AmggByADNgJkAkACQAJAIAQgAiADaiILaiASSw0AIAIgCmoiEyAPSw0AIA0gBGsgC0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY0AAQMyIFEAMiBg0AIANBHzYCfCADIANB/ABqIANB+ABqIAQgBCAFaiAGGyIEIAEgAmoiAiAEaxAVIgUQAw0AIAMoAnwiBkEfSw0AIAMoAngiB0EJTw0AIABBiCBqIAMgBkGAC0GADCAHEBggA0E0NgJ8IAMgA0H8AGogA0H4AGogBCAFaiIEIAIgBGsQFSIFEAMNACADKAJ8IgZBNEsNACADKAJ4IgdBCk8NACAAQZAwaiADIAZBgA1B4A4gBxAYIANBIzYCfCADIANB/ABqIANB+ABqIAQgBWoiBCACIARrEBUiBRADDQAgAygCfCIGQSNLDQAgAygCeCIHQQpPDQAgACADIAZBwBBB0BEgBxAYIAQgBWoiBEEMaiIFIAJLDQAgAiAFayEFQQAhAgNAIAJBA0cEQCAEKAAAIgZBf2ogBU8NAiAAIAJBAnRqQZzQAWogBjYCACACQQFqIQIgBEEEaiEEDAELCyAEIAFrIQgLIANBgAFqJAAgCAtGAQN/IABBCGohAyAAKAIEIQJBACEAA0AgACACdkUEQCABIAMgAEEDdGotAAJBFktqIQEgAEEBaiEADAELCyABQQggAmt0C4YDAQV/Qbh/IQcCQCADRQ0AIAItAAAiBEUEQCABQQA2AgBBAUG4fyADQQFGGw8LAn8gAkEBaiIFIARBGHRBGHUiBkF/Sg0AGiAGQX9GBEAgA0EDSA0CIAUvAABBgP4BaiEEIAJBA2oMAQsgA0ECSA0BIAItAAEgBEEIdHJBgIB+aiEEIAJBAmoLIQUgASAENgIAIAVBAWoiASACIANqIgNLDQBBbCEHIABBEGogACAFLQAAIgVBBnZBI0EJIAEgAyABa0HAEEHQEUHwEiAAKAKM4QEgACgCnOIBIAQQHyIGEAMiCA0AIABBmCBqIABBCGogBUEEdkEDcUEfQQggASABIAZqIAgbIgEgAyABa0GAC0GADEGAFyAAKAKM4QEgACgCnOIBIAQQHyIGEAMiCA0AIABBoDBqIABBBGogBUECdkEDcUE0QQkgASABIAZqIAgbIgEgAyABa0GADUHgDkGQGSAAKAKM4QEgACgCnOIBIAQQHyIAEAMNACAAIAFqIAJrIQcLIAcLrQMBCn8jAEGABGsiCCQAAn9BUiACQf8BSw0AGkFUIANBDEsNABogAkEBaiELIABBBGohCUGAgAQgA0F/anRBEHUhCkEAIQJBASEEQQEgA3QiB0F/aiIMIQUDQCACIAtGRQRAAkAgASACQQF0Ig1qLwEAIgZB//8DRgRAIAkgBUECdGogAjoAAiAFQX9qIQVBASEGDAELIARBACAKIAZBEHRBEHVKGyEECyAIIA1qIAY7AQAgAkEBaiECDAELCyAAIAQ7AQIgACADOwEAIAdBA3YgB0EBdmpBA2ohBkEAIQRBACECA0AgBCALRkUEQCABIARBAXRqLgEAIQpBACEAA0AgACAKTkUEQCAJIAJBAnRqIAQ6AAIDQCACIAZqIAxxIgIgBUsNAAsgAEEBaiEADAELCyAEQQFqIQQMAQsLQX8gAg0AGkEAIQIDfyACIAdGBH9BAAUgCCAJIAJBAnRqIgAtAAJBAXRqIgEgAS8BACIBQQFqOwEAIAAgAyABEBRrIgU6AAMgACABIAVB/wFxdCAHazsBACACQQFqIQIMAQsLCyEFIAhBgARqJAAgBQvjBgEIf0FsIQcCQCACQQNJDQACQAJAAkACQCABLQAAIgNBA3EiCUEBaw4DAwEAAgsgACgCiOEBDQBBYg8LIAJBBUkNAkEDIQYgASgAACEFAn8CQAJAIANBAnZBA3EiCEF+aiIEQQFNBEAgBEEBaw0BDAILIAVBDnZB/wdxIQQgBUEEdkH/B3EhAyAIRQwCCyAFQRJ2IQRBBCEGIAVBBHZB//8AcSEDQQAMAQsgBUEEdkH//w9xIgNBgIAISw0DIAEtAARBCnQgBUEWdnIhBEEFIQZBAAshBSAEIAZqIgogAksNAgJAIANBgQZJDQAgACgCnOIBRQ0AQQAhAgNAIAJBg4ABSw0BIAJBQGshAgwAAAsACwJ/IAlBA0YEQCABIAZqIQEgAEHw4gFqIQIgACgCDCEGIAUEQCACIAMgASAEIAYQXwwCCyACIAMgASAEIAYQXQwBCyAAQbjQAWohAiABIAZqIQEgAEHw4gFqIQYgAEGo0ABqIQggBQRAIAggBiADIAEgBCACEF4MAQsgCCAGIAMgASAEIAIQXAsQAw0CIAAgAzYCgOIBIABBATYCiOEBIAAgAEHw4gFqNgLw4QEgCUECRgRAIAAgAEGo0ABqNgIMCyAAIANqIgBBiOMBakIANwAAIABBgOMBakIANwAAIABB+OIBakIANwAAIABB8OIBakIANwAAIAoPCwJ/AkACQAJAIANBAnZBA3FBf2oiBEECSw0AIARBAWsOAgACAQtBASEEIANBA3YMAgtBAiEEIAEvAABBBHYMAQtBAyEEIAEQIUEEdgsiAyAEaiIFQSBqIAJLBEAgBSACSw0CIABB8OIBaiABIARqIAMQCyEBIAAgAzYCgOIBIAAgATYC8OEBIAEgA2oiAEIANwAYIABCADcAECAAQgA3AAggAEIANwAAIAUPCyAAIAM2AoDiASAAIAEgBGo2AvDhASAFDwsCfwJAAkACQCADQQJ2QQNxQX9qIgRBAksNACAEQQFrDgIAAgELQQEhByADQQN2DAILQQIhByABLwAAQQR2DAELIAJBBEkgARAhIgJBj4CAAUtyDQFBAyEHIAJBBHYLIQIgAEHw4gFqIAEgB2otAAAgAkEgahAQIQEgACACNgKA4gEgACABNgLw4QEgB0EBaiEHCyAHC0sAIABC+erQ0OfJoeThADcDICAAQgA3AxggAELP1tO+0ser2UI3AxAgAELW64Lu6v2J9eAANwMIIABCADcDACAAQShqQQBBKBAQGgviAgICfwV+IABBKGoiASAAKAJIaiECAn4gACkDACIDQiBaBEAgACkDECIEQgeJIAApAwgiBUIBiXwgACkDGCIGQgyJfCAAKQMgIgdCEol8IAUQGSAEEBkgBhAZIAcQGQwBCyAAKQMYQsXP2bLx5brqJ3wLIAN8IQMDQCABQQhqIgAgAk0EQEIAIAEpAAAQCSADhUIbiUKHla+vmLbem55/fkLj3MqV/M7y9YV/fCEDIAAhAQwBCwsCQCABQQRqIgAgAksEQCABIQAMAQsgASgAAK1Ch5Wvr5i23puef34gA4VCF4lCz9bTvtLHq9lCfkL5893xmfaZqxZ8IQMLA0AgACACSQRAIAAxAABCxc/ZsvHluuonfiADhUILiUKHla+vmLbem55/fiEDIABBAWohAAwBCwsgA0IhiCADhULP1tO+0ser2UJ+IgNCHYggA4VC+fPd8Zn2masWfiIDQiCIIAOFC+8CAgJ/BH4gACAAKQMAIAKtfDcDAAJAAkAgACgCSCIDIAJqIgRBH00EQCABRQ0BIAAgA2pBKGogASACECAgACgCSCACaiEEDAELIAEgAmohAgJ/IAMEQCAAQShqIgQgA2ogAUEgIANrECAgACAAKQMIIAQpAAAQCTcDCCAAIAApAxAgACkAMBAJNwMQIAAgACkDGCAAKQA4EAk3AxggACAAKQMgIABBQGspAAAQCTcDICAAKAJIIQMgAEEANgJIIAEgA2tBIGohAQsgAUEgaiACTQsEQCACQWBqIQMgACkDICEFIAApAxghBiAAKQMQIQcgACkDCCEIA0AgCCABKQAAEAkhCCAHIAEpAAgQCSEHIAYgASkAEBAJIQYgBSABKQAYEAkhBSABQSBqIgEgA00NAAsgACAFNwMgIAAgBjcDGCAAIAc3AxAgACAINwMICyABIAJPDQEgAEEoaiABIAIgAWsiBBAgCyAAIAQ2AkgLCy8BAX8gAEUEQEG2f0EAIAMbDwtBun8hBCADIAFNBH8gACACIAMQEBogAwVBun8LCy8BAX8gAEUEQEG2f0EAIAMbDwtBun8hBCADIAFNBH8gACACIAMQCxogAwVBun8LC6gCAQZ/IwBBEGsiByQAIABB2OABaikDAEKAgIAQViEIQbh/IQUCQCAEQf//B0sNACAAIAMgBBBCIgUQAyIGDQAgACgCnOIBIQkgACAHQQxqIAMgAyAFaiAGGyIKIARBACAFIAYbayIGEEAiAxADBEAgAyEFDAELIAcoAgwhBCABRQRAQbp/IQUgBEEASg0BCyAGIANrIQUgAyAKaiEDAkAgCQRAIABBADYCnOIBDAELAkACQAJAIARBBUgNACAAQdjgAWopAwBCgICACFgNAAwBCyAAQQA2ApziAQwBCyAAKAIIED8hBiAAQQA2ApziASAGQRRPDQELIAAgASACIAMgBSAEIAgQOSEFDAELIAAgASACIAMgBSAEIAgQOiEFCyAHQRBqJAAgBQtnACAAQdDgAWogASACIAAoAuzhARAuIgEQAwRAIAEPC0G4fyECAkAgAQ0AIABB7OABaigCACIBBEBBYCECIAAoApjiASABRw0BC0EAIQIgAEHw4AFqKAIARQ0AIABBkOEBahBDCyACCycBAX8QVyIERQRAQUAPCyAEIAAgASACIAMgBBBLEE8hACAEEFYgAAs/AQF/AkACQAJAIAAoAqDiAUEBaiIBQQJLDQAgAUEBaw4CAAECCyAAEDBBAA8LIABBADYCoOIBCyAAKAKU4gELvAMCB38BfiMAQRBrIgkkAEG4fyEGAkAgBCgCACIIQQVBCSAAKALs4QEiBRtJDQAgAygCACIHQQFBBSAFGyAFEC8iBRADBEAgBSEGDAELIAggBUEDakkNACAAIAcgBRBJIgYQAw0AIAEgAmohCiAAQZDhAWohCyAIIAVrIQIgBSAHaiEHIAEhBQNAIAcgAiAJECwiBhADDQEgAkF9aiICIAZJBEBBuH8hBgwCCyAJKAIAIghBAksEQEFsIQYMAgsgB0EDaiEHAn8CQAJAAkAgCEEBaw4CAgABCyAAIAUgCiAFayAHIAYQSAwCCyAFIAogBWsgByAGEEcMAQsgBSAKIAVrIActAAAgCSgCCBBGCyIIEAMEQCAIIQYMAgsgACgC8OABBEAgCyAFIAgQRQsgAiAGayECIAYgB2ohByAFIAhqIQUgCSgCBEUNAAsgACkD0OABIgxCf1IEQEFsIQYgDCAFIAFrrFINAQsgACgC8OABBEBBaiEGIAJBBEkNASALEEQhDCAHKAAAIAynRw0BIAdBBGohByACQXxqIQILIAMgBzYCACAEIAI2AgAgBSABayEGCyAJQRBqJAAgBgsuACAAECsCf0EAQQAQAw0AGiABRSACRXJFBEBBYiAAIAEgAhA9EAMNARoLQQALCzcAIAEEQCAAIAAoAsTgASABKAIEIAEoAghqRzYCnOIBCyAAECtBABADIAFFckUEQCAAIAEQWwsL0QIBB38jAEEQayIGJAAgBiAENgIIIAYgAzYCDCAFBEAgBSgCBCEKIAUoAgghCQsgASEIAkACQANAIAAoAuzhARAWIQsCQANAIAQgC0kNASADKAAAQXBxQdDUtMIBRgRAIAMgBBAiIgcQAw0EIAQgB2shBCADIAdqIQMMAQsLIAYgAzYCDCAGIAQ2AggCQCAFBEAgACAFEE5BACEHQQAQA0UNAQwFCyAAIAogCRBNIgcQAw0ECyAAIAgQUCAMQQFHQQAgACAIIAIgBkEMaiAGQQhqEEwiByIDa0EAIAMQAxtBCkdyRQRAQbh/IQcMBAsgBxADDQMgAiAHayECIAcgCGohCEEBIQwgBigCDCEDIAYoAgghBAwBCwsgBiADNgIMIAYgBDYCCEG4fyEHIAQNASAIIAFrIQcMAQsgBiADNgIMIAYgBDYCCAsgBkEQaiQAIAcLRgECfyABIAAoArjgASICRwRAIAAgAjYCxOABIAAgATYCuOABIAAoArzgASEDIAAgATYCvOABIAAgASADIAJrajYCwOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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";l.ColorManagement.spaces[l.SRGBColorSpace];const PB=new WeakMap;let VB,zB=0;class rg extends l.Loader{constructor(A){super(A),this.transcoderPath="",this.transcoderBinary=null,this.transcoderPending=null,this.workerPool=new mE,this.workerSourceURL="",this.workerConfig=null,typeof MSC_TRANSCODER<"u"&&console.warn('THREE.KTX2Loader: Please update to latest "basis_transcoder". "msc_basis_transcoder" is no longer supported in three.js r125+.')}setTranscoderPath(A){return this.transcoderPath=A,this}setWorkerLimit(A){return this.workerPool.setWorkerLimit(A),this}async detectSupportAsync(A){return this.workerConfig={astcSupported:await A.hasFeatureAsync("texture-compression-astc"),astcHDRSupported:!1,etc1Supported:await A.hasFeatureAsync("texture-compression-etc2"),etc2Supported:await A.hasFeatureAsync("texture-compression-etc2"),dxtSupported:await A.hasFeatureAsync("texture-compression-bc"),bptcSupported:await A.hasFeatureAsync("texture-compression-bc"),pvrtcSupported:await A.hasFeatureAsync("texture-compression-pvrtc")},this}detectSupport(A){return A.isWebGPURenderer===!0?this.workerConfig={astcSupported:A.hasFeature("texture-compression-astc"),astcHDRSupported:!1,etc1Supported:A.hasFeature("texture-compression-etc2"),etc2Supported:A.hasFeature("texture-compression-etc2"),dxtSupported:A.hasFeature("texture-compression-bc"),bptcSupported:A.hasFeature("texture-compression-bc"),pvrtcSupported:A.hasFeature("texture-compression-pvrtc")}:this.workerConfig={astcSupported:A.extensions.has("WEBGL_compressed_texture_astc"),astcHDRSupported:A.extensions.has("WEBGL_compressed_texture_astc")&&A.extensions.get("WEBGL_compressed_texture_astc").getSupportedProfiles().includes("hdr"),etc1Supported:A.extensions.has("WEBGL_compressed_texture_etc1"),etc2Supported:A.extensions.has("WEBGL_compressed_texture_etc"),dxtSupported:A.extensions.has("WEBGL_compressed_texture_s3tc"),bptcSupported:A.extensions.has("EXT_texture_compression_bptc"),pvrtcSupported:A.extensions.has("WEBGL_compressed_texture_pvrtc")||A.extensions.has("WEBKIT_WEBGL_compressed_texture_pvrtc")},this}init(){if(!this.transcoderPending){const A=new l.FileLoader(this.manager);A.setPath(this.transcoderPath),A.setWithCredentials(this.withCredentials);const g=A.loadAsync("basis_transcoder.js"),I=new l.FileLoader(this.manager);I.setPath(this.transcoderPath),I.setResponseType("arraybuffer"),I.setWithCredentials(this.withCredentials);const Q=I.loadAsync("basis_transcoder.wasm");this.transcoderPending=Promise.all([g,Q]).then(([C,a])=>{const e=rg.BasisWorker.toString(),i=["/* constants */","let _EngineFormat = "+JSON.stringify(rg.EngineFormat),"let _EngineType = "+JSON.stringify(rg.EngineType),"let _TranscoderFormat = "+JSON.stringify(rg.TranscoderFormat),"let _BasisFormat = "+JSON.stringify(rg.BasisFormat),"/* basis_transcoder.js */",C,"/* worker */",e.substring(e.indexOf("{")+1,e.lastIndexOf("}"))].join(`
|
|
951
|
+
`);this.workerSourceURL=URL.createObjectURL(new Blob([i])),this.transcoderBinary=a,this.workerPool.setWorkerCreator(()=>{const t=new Worker(this.workerSourceURL),E=this.transcoderBinary.slice(0);return t.postMessage({type:"init",config:this.workerConfig,transcoderBinary:E},[E]),t})}),zB>0&&console.warn("THREE.KTX2Loader: Multiple active KTX2 loaders may cause performance issues. Use a single KTX2Loader instance, or call .dispose() on old instances."),zB++}return this.transcoderPending}load(A,g,I,Q){if(this.workerConfig===null)throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");const C=new l.FileLoader(this.manager);C.setPath(this.path),C.setCrossOrigin(this.crossOrigin),C.setWithCredentials(this.withCredentials),C.setResponseType("arraybuffer"),C.load(A,a=>{this.parse(a,g,Q)},I,Q)}parse(A,g,I){if(this.workerConfig===null)throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");if(PB.has(A))return PB.get(A).promise.then(g).catch(I);this._createTexture(A).then(Q=>g?g(Q):null).catch(I)}_createTextureFrom(A,g){const{type:I,error:Q,data:{faces:C,width:a,height:e,format:i,type:t,dfdFlags:E}}=A;if(I==="error")return Promise.reject(Q);let o;if(g.faceCount===6)o=new l.CompressedCubeTexture(C,i,t);else{const r=C[0].mipmaps;o=g.layerCount>1?new l.CompressedArrayTexture(r,a,e,g.layerCount,i,t):new l.CompressedTexture(r,a,e,i,t)}return o.minFilter=C[0].mipmaps.length===1?l.LinearFilter:l.LinearMipmapLinearFilter,o.magFilter=l.LinearFilter,o.generateMipmaps=!1,o.needsUpdate=!0,o.colorSpace=OC(g),o.premultiplyAlpha=!!(1&E),o}async _createTexture(A,g={}){const I=function(e){const i=new Uint8Array(e.buffer,e.byteOffset,Ig.length);if(i[0]!==Ig[0]||i[1]!==Ig[1]||i[2]!==Ig[2]||i[3]!==Ig[3]||i[4]!==Ig[4]||i[5]!==Ig[5]||i[6]!==Ig[6]||i[7]!==Ig[7]||i[8]!==Ig[8]||i[9]!==Ig[9]||i[10]!==Ig[10]||i[11]!==Ig[11])throw new Error("Missing KTX 2.0 identifier.");const t={vkFormat:0,typeSize:1,pixelWidth:0,pixelHeight:0,pixelDepth:0,layerCount:0,faceCount:1,levelCount:0,supercompressionScheme:0,levels:[],dataFormatDescriptor:[{vendorId:0,descriptorType:0,versionNumber:2,colorModel:0,colorPrimaries:1,transferFunction:2,flags:0,texelBlockDimension:[0,0,0,0],bytesPlane:[0,0,0,0,0,0,0,0],samples:[]}],keyValue:{},globalData:null},E=17*Uint32Array.BYTES_PER_ELEMENT,o=new UI(e,Ig.length,E,!0);t.vkFormat=o._nextUint32(),t.typeSize=o._nextUint32(),t.pixelWidth=o._nextUint32(),t.pixelHeight=o._nextUint32(),t.pixelDepth=o._nextUint32(),t.layerCount=o._nextUint32(),t.faceCount=o._nextUint32(),t.levelCount=o._nextUint32(),t.supercompressionScheme=o._nextUint32();const r=o._nextUint32(),n=o._nextUint32(),s=o._nextUint32(),c=o._nextUint32(),d=o._nextUint64(),D=o._nextUint64(),h=3*Math.max(t.levelCount,1)*8,u=new UI(e,Ig.length+E,h,!0);for(let nA=0,hA=Math.max(t.levelCount,1);nA<hA;nA++)t.levels.push({levelData:new Uint8Array(e.buffer,e.byteOffset+u._nextUint64(),u._nextUint64()),uncompressedByteLength:u._nextUint64()});const f=new UI(e,r,n,!0);f._skip(4);const R=f._nextUint16(),G=f._nextUint16(),k=f._nextUint16(),F=f._nextUint16(),m={vendorId:R,descriptorType:G,versionNumber:k,colorModel:f._nextUint8(),colorPrimaries:f._nextUint8(),transferFunction:f._nextUint8(),flags:f._nextUint8(),texelBlockDimension:[f._nextUint8(),f._nextUint8(),f._nextUint8(),f._nextUint8()],bytesPlane:[f._nextUint8(),f._nextUint8(),f._nextUint8(),f._nextUint8(),f._nextUint8(),f._nextUint8(),f._nextUint8(),f._nextUint8()],samples:[]},N=(F/4-6)/4;for(let nA=0;nA<N;nA++){const hA={bitOffset:f._nextUint16(),bitLength:f._nextUint8(),channelType:f._nextUint8(),samplePosition:[f._nextUint8(),f._nextUint8(),f._nextUint8(),f._nextUint8()],sampleLower:Number.NEGATIVE_INFINITY,sampleUpper:Number.POSITIVE_INFINITY};64&hA.channelType?(hA.sampleLower=f._nextInt32(),hA.sampleUpper=f._nextInt32()):(hA.sampleLower=f._nextUint32(),hA.sampleUpper=f._nextUint32()),m.samples[nA]=hA}t.dataFormatDescriptor.length=0,t.dataFormatDescriptor.push(m);const S=new UI(e,s,c,!0);for(;S._offset<c;){const nA=S._nextUint32(),hA=S._scan(nA),JA=qC(hA);if(t.keyValue[JA]=S._nextUint8Array(nA-hA.byteLength-1),JA.match(/^ktx/i)){const vA=qC(t.keyValue[JA]);t.keyValue[JA]=vA.substring(0,vA.lastIndexOf("\0"))}S._skip(nA%4?4-nA%4:0)}if(D<=0)return t;const j=new UI(e,d,D,!0),z=j._nextUint16(),$=j._nextUint16(),_=j._nextUint32(),X=j._nextUint32(),CA=j._nextUint32(),sA=j._nextUint32(),oA=[];for(let nA=0,hA=Math.max(t.levelCount,1);nA<hA;nA++)oA.push({imageFlags:j._nextUint32(),rgbSliceByteOffset:j._nextUint32(),rgbSliceByteLength:j._nextUint32(),alphaSliceByteOffset:j._nextUint32(),alphaSliceByteLength:j._nextUint32()});const fA=d+j._offset,bA=fA+_,iA=bA+X,yA=iA+CA,EA=new Uint8Array(e.buffer,e.byteOffset+fA,_),cA=new Uint8Array(e.buffer,e.byteOffset+bA,X),pA=new Uint8Array(e.buffer,e.byteOffset+iA,CA),GA=new Uint8Array(e.buffer,e.byteOffset+yA,sA);return t.globalData={endpointCount:z,selectorCount:$,imageDescs:oA,endpointsData:EA,selectorsData:cA,tablesData:pA,extendedData:GA},t}(new Uint8Array(A)),Q=I.vkFormat===qB&&I.dataFormatDescriptor[0].colorModel===167;if(!(I.vkFormat===0||Q&&!this.workerConfig.astcHDRSupported))return async function(e){const{vkFormat:i}=e;if(XB[i]===void 0)throw new Error("THREE.KTX2Loader: Unsupported vkFormat: "+i);hI[i]===void 0&&console.warn('THREE.KTX2Loader: Missing ".type" for vkFormat: '+i);let t;e.supercompressionScheme===2&&(VB||(VB=new Promise(async n=>{const s=new NE;await s.init(),n(s)})),t=await VB);const E=[];for(let n=0;n<e.levels.length;n++){const s=Math.max(1,e.pixelWidth>>n),c=Math.max(1,e.pixelHeight>>n),d=e.pixelDepth?Math.max(1,e.pixelDepth>>n):0,D=e.levels[n];let h,u;if(e.supercompressionScheme===0)h=D.levelData;else{if(e.supercompressionScheme!==2)throw new Error("THREE.KTX2Loader: Unsupported supercompressionScheme.");h=t.decode(D.levelData,D.uncompressedByteLength)}u=hI[i]===l.FloatType?new Float32Array(h.buffer,h.byteOffset,h.byteLength/Float32Array.BYTES_PER_ELEMENT):hI[i]===l.HalfFloatType?new Uint16Array(h.buffer,h.byteOffset,h.byteLength/Uint16Array.BYTES_PER_ELEMENT):hI[i]===l.UnsignedInt5999Type||hI[i]===l.UnsignedInt101111Type?new Uint32Array(h.buffer,h.byteOffset,h.byteLength/Uint32Array.BYTES_PER_ELEMENT):h,E.push({data:u,width:s,height:c,depth:d})}const o=e.levelCount===0||E.length>1;let r;if(UE.has(XB[i]))r=e.pixelDepth===0?new l.DataTexture(E[0].data,e.pixelWidth,e.pixelHeight):new l.Data3DTexture(E[0].data,e.pixelWidth,e.pixelHeight,e.pixelDepth),r.minFilter=o?l.NearestMipmapNearestFilter:l.NearestFilter,r.magFilter=l.NearestFilter,r.generateMipmaps=e.levelCount===0;else{if(e.pixelDepth>0)throw new Error("THREE.KTX2Loader: Unsupported pixelDepth.");r=new l.CompressedTexture(E,e.pixelWidth,e.pixelHeight),r.minFilter=o?l.LinearMipmapLinearFilter:l.LinearFilter,r.magFilter=l.LinearFilter}return r.mipmaps=E,r.type=hI[i],r.format=XB[i],r.colorSpace=OC(e),r.needsUpdate=!0,Promise.resolve(r)}(I);const C=g,a=this.init().then(()=>this.workerPool.postMessage({type:"transcode",buffer:A,taskConfig:C},[A])).then(e=>this._createTextureFrom(e.data,I));return PB.set(A,{promise:a}),a}dispose(){this.workerPool.dispose(),this.workerSourceURL&&URL.revokeObjectURL(this.workerSourceURL),zB--}}rg.BasisFormat={ETC1S:0,UASTC:1,UASTC_HDR:2},rg.TranscoderFormat={ETC1:0,ETC2:1,BC1:2,BC3:3,BC4:4,BC5:5,BC7_M6_OPAQUE_ONLY:6,BC7_M5:7,PVRTC1_4_RGB:8,PVRTC1_4_RGBA:9,ASTC_4x4:10,ATC_RGB:11,ATC_RGBA_INTERPOLATED_ALPHA:12,RGBA32:13,RGB565:14,BGR565:15,RGBA4444:16,BC6H:22,RGB_HALF:24,RGBA_HALF:25},rg.EngineFormat={RGBAFormat:l.RGBAFormat,RGBA_ASTC_4x4_Format:l.RGBA_ASTC_4x4_Format,RGB_BPTC_UNSIGNED_Format:l.RGB_BPTC_UNSIGNED_Format,RGBA_BPTC_Format:l.RGBA_BPTC_Format,RGBA_ETC2_EAC_Format:l.RGBA_ETC2_EAC_Format,RGBA_PVRTC_4BPPV1_Format:l.RGBA_PVRTC_4BPPV1_Format,RGBA_S3TC_DXT5_Format:l.RGBA_S3TC_DXT5_Format,RGB_ETC1_Format:l.RGB_ETC1_Format,RGB_ETC2_Format:l.RGB_ETC2_Format,RGB_PVRTC_4BPPV1_Format:l.RGB_PVRTC_4BPPV1_Format,RGBA_S3TC_DXT1_Format:l.RGBA_S3TC_DXT1_Format},rg.EngineType={UnsignedByteType:l.UnsignedByteType,HalfFloatType:l.HalfFloatType,FloatType:l.FloatType},rg.BasisWorker=function(){let B,A,g;const I=_EngineFormat,Q=_EngineType,C=_TranscoderFormat,a=_BasisFormat;self.addEventListener("message",function(o){const r=o.data;switch(r.type){case"init":B=r.config,n=r.transcoderBinary,A=new Promise(s=>{g={wasmBinary:n,onRuntimeInitialized:s},BASIS(g)}).then(()=>{g.initializeBasis(),g.KTX2File===void 0&&console.warn("THREE.KTX2Loader: Please update Basis Universal transcoder.")});break;case"transcode":A.then(()=>{try{const{faces:s,buffers:c,width:d,height:D,hasAlpha:h,format:u,type:f,dfdFlags:R}=function(G){const k=new g.KTX2File(new Uint8Array(G));function F(){k.close(),k.delete()}if(!k.isValid())throw F(),new Error("THREE.KTX2Loader: Invalid or unsupported .ktx2 file");let m;if(k.isUASTC())m=a.UASTC;else if(k.isETC1S())m=a.ETC1S;else{if(!k.isHDR())throw new Error("THREE.KTX2Loader: Unknown Basis encoding");m=a.UASTC_HDR}const N=k.getWidth(),S=k.getHeight(),j=k.getLayers()||1,z=k.getLevels(),$=k.getFaces(),_=k.getHasAlpha(),X=k.getDFDFlags(),{transcoderFormat:CA,engineFormat:sA,engineType:oA}=function(iA,yA,EA,cA){const pA=i[iA];for(let GA=0;GA<pA.length;GA++){const nA=pA[GA];if(!(nA.if&&!B[nA.if])&&nA.basisFormat.includes(iA)&&!(cA&&nA.transcoderFormat.length<2)&&!(nA.needsPowerOfTwo&&(!t(yA)||!t(EA))))return{transcoderFormat:nA.transcoderFormat[cA?1:0],engineFormat:nA.engineFormat[cA?1:0],engineType:nA.engineType[0]}}throw new Error("THREE.KTX2Loader: Failed to identify transcoding target.")}(m,N,S,_);if(!N||!S||!z)throw F(),new Error("THREE.KTX2Loader: Invalid texture");if(!k.startTranscoding())throw F(),new Error("THREE.KTX2Loader: .startTranscoding failed");const fA=[],bA=[];for(let iA=0;iA<$;iA++){const yA=[];for(let EA=0;EA<z;EA++){const cA=[];let pA,GA;for(let hA=0;hA<j;hA++){const JA=k.getImageLevelInfo(EA,hA,iA);iA!==0||EA!==0||hA!==0||JA.origWidth%4==0&&JA.origHeight%4==0||console.warn("THREE.KTX2Loader: ETC1S and UASTC textures should use multiple-of-four dimensions."),z>1?(pA=JA.origWidth,GA=JA.origHeight):(pA=JA.width,GA=JA.height);let vA=new Uint8Array(k.getImageTranscodedSizeInBytes(EA,hA,0,CA));const sg=k.transcodeImage(vA,EA,hA,iA,CA,0,-1,-1);if(oA===Q.HalfFloatType&&(vA=new Uint16Array(vA.buffer,vA.byteOffset,vA.byteLength/Uint16Array.BYTES_PER_ELEMENT)),!sg)throw F(),new Error("THREE.KTX2Loader: .transcodeImage failed.");cA.push(vA)}const nA=E(cA);yA.push({data:nA,width:pA,height:GA}),bA.push(nA.buffer)}fA.push({mipmaps:yA,width:N,height:S,format:sA,type:oA})}return F(),{faces:fA,buffers:bA,width:N,height:S,hasAlpha:_,dfdFlags:X,format:sA,type:oA}}(r.buffer);self.postMessage({type:"transcode",id:r.id,data:{faces:s,width:d,height:D,hasAlpha:h,format:u,type:f,dfdFlags:R}},c)}catch(s){console.error(s),self.postMessage({type:"error",id:r.id,error:s.message})}})}var n});const e=[{if:"astcSupported",basisFormat:[a.UASTC],transcoderFormat:[C.ASTC_4x4,C.ASTC_4x4],engineFormat:[I.RGBA_ASTC_4x4_Format,I.RGBA_ASTC_4x4_Format],engineType:[Q.UnsignedByteType],priorityETC1S:1/0,priorityUASTC:1,needsPowerOfTwo:!1},{if:"bptcSupported",basisFormat:[a.ETC1S,a.UASTC],transcoderFormat:[C.BC7_M5,C.BC7_M5],engineFormat:[I.RGBA_BPTC_Format,I.RGBA_BPTC_Format],engineType:[Q.UnsignedByteType],priorityETC1S:3,priorityUASTC:2,needsPowerOfTwo:!1},{if:"dxtSupported",basisFormat:[a.ETC1S,a.UASTC],transcoderFormat:[C.BC1,C.BC3],engineFormat:[I.RGBA_S3TC_DXT1_Format,I.RGBA_S3TC_DXT5_Format],engineType:[Q.UnsignedByteType],priorityETC1S:4,priorityUASTC:5,needsPowerOfTwo:!1},{if:"etc2Supported",basisFormat:[a.ETC1S,a.UASTC],transcoderFormat:[C.ETC1,C.ETC2],engineFormat:[I.RGB_ETC2_Format,I.RGBA_ETC2_EAC_Format],engineType:[Q.UnsignedByteType],priorityETC1S:1,priorityUASTC:3,needsPowerOfTwo:!1},{if:"etc1Supported",basisFormat:[a.ETC1S,a.UASTC],transcoderFormat:[C.ETC1],engineFormat:[I.RGB_ETC1_Format],engineType:[Q.UnsignedByteType],priorityETC1S:2,priorityUASTC:4,needsPowerOfTwo:!1},{if:"pvrtcSupported",basisFormat:[a.ETC1S,a.UASTC],transcoderFormat:[C.PVRTC1_4_RGB,C.PVRTC1_4_RGBA],engineFormat:[I.RGB_PVRTC_4BPPV1_Format,I.RGBA_PVRTC_4BPPV1_Format],engineType:[Q.UnsignedByteType],priorityETC1S:5,priorityUASTC:6,needsPowerOfTwo:!0},{if:"bptcSupported",basisFormat:[a.UASTC_HDR],transcoderFormat:[C.BC6H],engineFormat:[I.RGB_BPTC_UNSIGNED_Format],engineType:[Q.HalfFloatType],priorityHDR:1,needsPowerOfTwo:!1},{basisFormat:[a.ETC1S,a.UASTC],transcoderFormat:[C.RGBA32,C.RGBA32],engineFormat:[I.RGBAFormat,I.RGBAFormat],engineType:[Q.UnsignedByteType,Q.UnsignedByteType],priorityETC1S:100,priorityUASTC:100,needsPowerOfTwo:!1},{basisFormat:[a.UASTC_HDR],transcoderFormat:[C.RGBA_HALF],engineFormat:[I.RGBAFormat],engineType:[Q.HalfFloatType],priorityHDR:100,needsPowerOfTwo:!1}],i={[a.ETC1S]:e.filter(o=>o.basisFormat.includes(a.ETC1S)).sort((o,r)=>o.priorityUASTC-r.priorityUASTC),[a.UASTC]:e.filter(o=>o.basisFormat.includes(a.UASTC)).sort((o,r)=>o.priorityUASTC-r.priorityUASTC),[a.UASTC_HDR]:e.filter(o=>o.basisFormat.includes(a.UASTC_HDR)).sort((o,r)=>o.priorityHDR-r.priorityHDR)};function t(o){return o<=2||!(o&o-1)&&o!==0}function E(o){if(o.length===1)return o[0];let r=0;for(let c=0;c<o.length;c++)r+=o[c].byteLength;const n=new Uint8Array(r);let s=0;for(let c=0;c<o.length;c++){const d=o[c];n.set(d,s),s+=d.byteLength}return n}};const UE=new Set([l.RGBAFormat,l.RGBFormat,l.RGFormat,l.RedFormat]),XB={[dC]:l.RGBAFormat,[hC]:l.RGFormat,[cC]:l.RedFormat,[sC]:l.RGBAFormat,[rC]:l.RGFormat,[nC]:l.RedFormat,[oC]:l.RGBAFormat,[tC]:l.RGBAFormat,[iC]:l.RGFormat,[EC]:l.RGFormat,[eC]:l.RedFormat,[aC]:l.RedFormat,[lC]:l.RGBFormat,[DC]:l.RGBFormat,[UC]:l.RGBA_ETC2_EAC_Format,[NC]:l.RGB_ETC2_Format,[qB]:l.RGBA_ASTC_4x4_Format,[LC]:l.RGBA_ASTC_4x4_Format,[SC]:l.RGBA_ASTC_4x4_Format,[vC]:l.RGBA_ASTC_6x6_Format,[xC]:l.RGBA_ASTC_6x6_Format,[JC]:l.RGBA_ASTC_6x6_Format,[fC]:l.RGBA_S3TC_DXT1_Format,[wC]:l.RGBA_S3TC_DXT1_Format,[bC]:l.RGB_S3TC_DXT1_Format,[uC]:l.RGB_S3TC_DXT1_Format,[FC]:l.RGBA_S3TC_DXT3_Format,[yC]:l.RGBA_S3TC_DXT3_Format,[MC]:l.SIGNED_RED_RGTC1_Format,[pC]:l.RED_RGTC1_Format,[RC]:l.SIGNED_RED_GREEN_RGTC2_Format,[GC]:l.RED_GREEN_RGTC2_Format,[mC]:l.RGBA_BPTC_Format,[kC]:l.RGBA_BPTC_Format,[jC]:l.RGBA_PVRTC_4BPPV1_Format,[HC]:l.RGBA_PVRTC_4BPPV1_Format,[KC]:l.RGBA_PVRTC_2BPPV1_Format,[YC]:l.RGBA_PVRTC_2BPPV1_Format},hI={[dC]:l.FloatType,[hC]:l.FloatType,[cC]:l.FloatType,[sC]:l.HalfFloatType,[rC]:l.HalfFloatType,[nC]:l.HalfFloatType,[oC]:l.UnsignedByteType,[tC]:l.UnsignedByteType,[iC]:l.UnsignedByteType,[EC]:l.UnsignedByteType,[eC]:l.UnsignedByteType,[aC]:l.UnsignedByteType,[lC]:l.UnsignedInt5999Type,[DC]:l.UnsignedInt101111Type,[UC]:l.UnsignedByteType,[NC]:l.UnsignedByteType,[qB]:l.HalfFloatType,[LC]:l.UnsignedByteType,[SC]:l.UnsignedByteType,[vC]:l.HalfFloatType,[xC]:l.UnsignedByteType,[JC]:l.UnsignedByteType,[fC]:l.UnsignedByteType,[wC]:l.UnsignedByteType,[bC]:l.UnsignedByteType,[uC]:l.UnsignedByteType,[FC]:l.UnsignedByteType,[yC]:l.UnsignedByteType,[MC]:l.UnsignedByteType,[pC]:l.UnsignedByteType,[RC]:l.UnsignedByteType,[GC]:l.UnsignedByteType,[mC]:l.UnsignedByteType,[kC]:l.UnsignedByteType,[jC]:l.UnsignedByteType,[HC]:l.UnsignedByteType,[KC]:l.UnsignedByteType,[YC]:l.UnsignedByteType};function OC(B){const A=B.dataFormatDescriptor[0];return A.colorPrimaries===1?A.transferFunction===2?l.SRGBColorSpace:l.LinearSRGBColorSpace:A.colorPrimaries===10?A.transferFunction===2?"display-p3":"display-p3-linear":(A.colorPrimaries===0||console.warn(`THREE.KTX2Loader: Unsupported color primaries, "${A.colorPrimaries}"`),l.NoColorSpace)}async function WC(B){const A=B.split("?")[0].split(".").pop(),g=await fetch(B);if(!g.ok)throw new Error(`Failed to fetch ${B}: ${g.statusText}`);if(A==="json"){const I=await g.json();return handleJSONSubtree(I,PC(B))}if(A==="subtree")return async function(I,Q){const C=new DataView(I),a=C.getBigUint64(8,!0),e=C.getBigUint64(16,!0),i=24,t=i+Number(a),E=t+(8-t%8)%8,o=E+Number(e),r=I.slice(i,t),n=new TextDecoder().decode(r).trim(),s=JSON.parse(n);if(!s.buffers)throw new Error("subtree has no buffers");const c=s.buffers.map(async D=>{if(D.uri){const h=new URL(D.uri,Q).href,u=await fetch(h);if(!u.ok)throw new Error(`Failed to fetch binary file ${h}: ${u.statusText}`);return new Uint8Array(await u.arrayBuffer())}return new Uint8Array(I.slice(E,o))}),d=await Promise.all(c);return function(D,h){function u(F,m){if(!F)throw new Error("incomplete json subtree");if(F.constant){if(F.constant==0)return!1;if(F.constant==1)return!0}if(F.bitstream==null)throw new Error('json subtree "tileAvailability" does not specify a bitstream');if(!D.bufferViews||!D.bufferViews[F.bitstream])throw new Error('json subtree "bufferViews" does not specify a bitstream');const N=D.bufferViews[F.bitstream];return f(h[N.buffer],N.byteOffset,m)}function f(F,m,N){const S=N%8;return F[m+Math.floor(N/8)]>>S&!0}function R(F){let m=0;return m=F.z==null?ZB(F.x,F.y,F.level):$B(F.x,F.y,F.z,F.level),u(D.tileAvailability,m)}function G(F){let m=0;m=F.z==null?ZB(F.x,F.y,F.level):$B(F.x,F.y,F.z,F.level);const N=[];return D.contentAvailability.forEach(S=>{N.push(u(S,m))}),N}function k(F){let m=0;return m=F.z==null?ZB(F.x,F.y):$B(F.x,F.y,F.z),u(D.childSubtreeAvailability,m)}return{isTileAvailable:R,isContentAvailable:G,isChildSubtreeAvailable:k}}(s,d)}(await g.arrayBuffer(),PC(B));throw new Error(`Unsupported file extension: ${A}`)}function PC(B){const A=B.split("?")[0];return A.substring(0,A.lastIndexOf("/")+1)}function VC(B){return B=1431655765&((B=858993459&((B=252645135&((B=16711935&((B&=65535)^B<<8))^B<<4))^B<<2))^B<<1)}function ZB(B,A,g){let I=0;return g&&(I=(Math.pow(4,g)-1)/3),I+(VC(B)|VC(A)<<1)}function _B(B){return B=153391689&((B=51130563&((B=50393103&((B=4278190335&((B&=1023)^B<<16))^B<<8))^B<<4))^B<<2)}function $B(B,A,g,I){let Q=0;return I&&(Q=(Math.pow(8,I)-1)/7),Q+(_B(B)|_B(A)<<1|_B(g)<<2)}const SI=new Map;async function AQ(B,A){if(!B.root||!B.root.implicitTiling)return B;if(!B.root.content&&!B.root.contents)throw new Error("implicit tiling requires a Template URI");let g=!0;B.root.implicitTiling.subdivisionScheme&&(g=B.root.implicitTiling.subdivisionScheme.toUpperCase()==="QUADTREE");let I="";B.root.implicitTiling.subtrees&&(B.root.implicitTiling.subtrees.uri?I=B.root.implicitTiling.subtrees.uri:B.root.implicitTiling.subtrees.url&&(I=B.root.implicitTiling.subtrees.url));let Q=[];B.root.content?B.root.content.uri?Q.push(B.root.content.uri):B.root.content.url&&Q.push(B.root.content.url):B.root.contents&&B.root.contents.forEach(n=>{n.uri?Q.push(n.uri):n.url&&Q.push(n.url)});const C=function(n){const s=n.split("?")[0];return s.substring(0,s.lastIndexOf("/")+1)}(A);let a;g&&(a=I.replace("{level}",0).replace("{x}",0).replace("{y}",0)),g||(a=I.replace("{level}",0).replace("{x}",0).replace("{y}",0).replace("{z}",0));const e={level:0,x:0,y:0},i={level:0,x:0,y:0};g||(e.z=0,i.z=0),SI.set(a,await WC(C+a));const t=SI.get(a),E=[];t.isContentAvailable(i)&&Q.forEach(n=>{let s;g&&(s=n.replace("{level}",e.level).replace("{x}",e.x).replace("{y}",e.y)),g||(s=n.replace("{level}",e.level).replace("{x}",e.x).replace("{y}",e.y).replace("{z}",e.z)),E.push({uri:s})});const o={geometricError:B.root.geometricError,boundingVolume:B.root.boundingVolume,refine:B.root.refine,globalAddress:e,localAddress:i,subtree:t,contents:E,getChildren:async()=>r(o)};return{root:o};async function r(n){const s=[];if(n.localAddress.level==B.root.implicitTiling.availableLevels-1)return s;if((n.localAddress.level+1)%B.root.implicitTiling.subtreeLevels==0){const c=ZI(n.localAddress),d=ZI(n.globalAddress),D=zC(g,B.root.boundingVolume,d);for(let h=0;h<c.length;h++){const u=c[h],f=d[h];n.subtree.isChildSubtreeAvailable(u)&&(g&&I.replace("{level}",f.level).replace("{x}",f.x).replace("{y}",f.y),g||I.replace("{level}",f.level).replace("{x}",f.x).replace("{y}",f.y).replace("{z}",f.z)),SI.has(a)||SI.set(a,await WC(C+a));const R=SI.get(a),G={level:0,x:0,y:0};g||(G.z=0);const k=[];R.isContentAvailable(G)&&Q.forEach(m=>{let N;g&&(N=m.replace("{level}",f.level).replace("{x}",f.x).replace("{y}",f.y)),g||(N=m.replace("{level}",f.level).replace("{x}",f.x).replace("{y}",f.y).replace("{z}",f.z)),k.push({uri:N})});const F={geometricError:n.geometricError/2,boundingVolume:D[h],refine:B.root.refine,globalAddress:f,localAddress:G,subtree:R,contents:k,getChildren:async()=>r(F)};s.push(F)}}else{const c=ZI(n.localAddress),d=ZI(n.globalAddress),D=zC(g,B.root.boundingVolume,d);for(let h=0;h<c.length;h++){const u=c[h],f=d[h];if(!n.subtree.isTileAvailable(u))continue;const R=[],G=n.subtree.isContentAvailable(u);for(let F=0;F<Q.length;F++){if(!G[F])continue;const m=Q[F];let N;g&&(N=m.replace("{level}",f.level).replace("{x}",f.x).replace("{y}",f.y)),g||(N=m.replace("{level}",f.level).replace("{x}",f.x).replace("{y}",f.y).replace("{z}",f.z)),R.push({uri:N})}const k={geometricError:n.geometricError/2,boundingVolume:D[h],refine:B.root.refine,globalAddress:f,localAddress:u,subtree:n.subtree,contents:R,getChildren:async()=>r(k)};s.push(k)}}return s.length>0?s:void 0}}function ZI(B){const{level:A,x:g,y:I,z:Q}=B,C=A+1;let a=[];return a=Q===void 0?[{level:C,x:2*g,y:2*I},{level:C,x:2*g+1,y:2*I},{level:C,x:2*g,y:2*I+1},{level:C,x:2*g+1,y:2*I+1}]:[{level:C,x:2*g,y:2*I,z:2*Q},{level:C,x:2*g+1,y:2*I,z:2*Q},{level:C,x:2*g,y:2*I+1,z:2*Q},{level:C,x:2*g+1,y:2*I+1,z:2*Q},{level:C,x:2*g,y:2*I,z:2*Q+1},{level:C,x:2*g+1,y:2*I,z:2*Q+1},{level:C,x:2*g,y:2*I+1,z:2*Q+1},{level:C,x:2*g+1,y:2*I+1,z:2*Q+1}],a}function zC(B,A,g){const I=[];for(let Q=0;Q<g.length;Q++)I.push(SE(B,A,g[Q]));return I}function SE(B,A,g){if(A.region)return function(I,Q,C){const[a,e,i,t,E,o]=Q,r=(i-a)/2**C.level,n=(t-e)/2**C.level,s=I?0:(o-E)/2**C.level,c=a+r*C.x,d=e+n*C.y,D=c+r,h=d+n,u=I?E:E+s*C.z,f=I?o:u+s;return{region:[c,d,D,h,u,f]}}(B,A.region,g);if(A.box)return function(I,Q,C){const a=Q.slice(0,3),e=[Q.slice(3,6),Q.slice(6,9),Q.slice(9,12)],i=1/Math.pow(2,C.level),t=[i,i,I?1:i],E=e.map((n,s)=>n.map(c=>c*t[s])),o=[a[0]-e[0][0]-e[1][0]-e[2][0],a[1]-e[0][1]-e[1][1]-e[2][1],a[2]-e[0][2]-e[1][2]-e[2][2]];return{box:[o[0]+(2*C.x+1)*(E[0][0]+E[1][0]+E[2][0]),o[1]+(2*C.y+1)*(E[0][1]+E[1][1]+E[2][1]),I?a[2]:o[2]+(2*C.z+1)*(E[0][2]+E[1][2]+E[2][2])].concat(...E)}}(B,A.box,g);throw new Error("Unsupported bounding volume type")}(function(){var B,A=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};function g(i){if(!i)throw new Error("Assertion failed")}function I(i){return new Uint8Array(i.buffer,i.byteOffset,i.byteLength)}function Q(i,t,E,o,r,n,s){var c=B.exports.sbrk,d=c(t),D=c(o*r),h=new Uint8Array(B.exports.memory.buffer);h.set(I(E),D);var u=i(d,t,D,o,r,n,s),f=new Uint8Array(u);return f.set(h.subarray(d,d+u)),c(d-c(0)),f}function C(i){for(var t=0,E=0;E<i.length;++E)var o=i[E];return t}function a(i,t){if(g(t==2||t==4),t==4)return new Uint32Array(i.buffer,i.byteOffset,i.byteLength/4);var E=new Uint16Array(i.buffer,i.byteOffset,i.byteLength/2);return new Uint32Array(E)}function e(i,t,E,o,r,n,s){var c=B.exports.sbrk,d=c(E*o),D=c(E*n),h=new Uint8Array(B.exports.memory.buffer);h.set(I(t),D),i(d,E,o,r,D,s);var u=new Uint8Array(E*o);return u.set(h.subarray(d,d+E*o)),c(d-c(0)),u}WebAssembly.instantiate(function(i){for(var t=new Uint8Array(i.length),E=0;E<i.length;++E){var o=i.charCodeAt(E);t[E]=o>96?o-97:o>64?o-39:o+4}var r=0;for(E=0;E<i.length;++E)t[r++]=t[E]<60?A[t[E]]:64*(t[E]-60)+t[++E];return t.buffer.slice(0,r)}("b9H79Tebbbe9ok9Geueu9Geub9Gbb9Gruuuuuuueu9Gvuuuuueu9Gduueu9Gluuuueu9Gvuuuuub9Gouuuuuub9Gluuuub9GiuuueuiE8AdilveoveovrrwrrrDDoDrbqqbelve9Weiiviebeoweuec;G:Qdkr:PlCo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8F9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWV9mW4W2be8A9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWVbd8F9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWV9c9V919U9KbiE9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949wWV79P9V9UblY9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWVbv8E9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWV9c9V919U9Kbo8A9TW79O9V9Wt9FW9U9J9V9KW69U9KW949wWV79P9V9UbrE9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JWbwa9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JW9c9V919U9KbDL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9p9JtbqK9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9r919HtbkL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWVT949WbxY9TW79O9V9Wt9FW9U9J9V9KWS9P2tWVJ9V29VVbmE9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OWbza9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OW9ttV9P9WbHa9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9WbOK9TW79O9V9Wt9F79W9Ht9P9H29t9VVt9sW9T9H9WbAl79IV9RbXDwebcekdKYq;i28Adbk:Bhdhud9:8Jjjjjbc;qw9Rgr8KjjjjbcbhwdnaeTmbabcbyd;C:kjjbaoaocb9iEgDc:GeV86bbarc;adfcbcjdz:xjjjb8AdnaiTmbarc;adfadalz:wjjjb8Akarc;abfalfcbcbcjdal9RalcFe0Ez:xjjjb8Aarc;abfarc;adfalz:wjjjb8AarcUf9cb83ibarc8Wf9cb83ibarcyf9cb83ibarcaf9cb83ibarcKf9cb83ibarczf9cb83ibar9cb83iwar9cb83ibcj;abal9Uc;WFbGcjdalca0Ehqdnaicd6mbavcd9imbaDTmbadcefhkaqci2gxal2hmarc;alfclfhParc;qlfceVhsarc;qofclVhzarc;qofcKfhHarc;qofczfhOcbhAincdhCcbhodnavci6mbaH9cb83ibaO9cb83ibar9cb83i;yoar9cb83i;qoadaAfgoybbhXcbhQincbhwcbhLdninaoalfhKaoybbgYaX7aLVhLawcP0meaKhoaYhXawcefgwaQfai6mbkkcbhXarc;qofhwincwh8AcwhEdnaLaX93gocFeGg3cs0mbclhEa3ci0mba3cb9hcethEkdnaocw4cFeGg3cs0mbclh8Aa3ci0mba3cb9hceth8Aka8AaEfh3awydbh5cwh8AcwhEdnaocz4cFeGg8Ecs0mbclhEa8Eci0mba8Ecb9hcethEka3a5fh3dnaocFFFFb0mbclh8AaocFFF8F0mbaocFFFr0ceth8Akawa3aEfa8AfBdbawclfhwaXcefgXcw9hmbkaKhoaYhXaQczfgQai6mbkcbhocehwazhLinawaoaLydbarc;qofaocdtfydb6EhoaLclfhLawcefgwcw9hmbkcihCkcbh3arc;qlfcbcjdz:xjjjb8Aarc;alfcwfcbBdbar9cb83i;alaoclth8Fadhaaqhhakh5inarc;qlfadcba3cufgoaoa30Eal2falz:wjjjb8Aaiahaiah6Ehgdnaqaia39Ra3aqfai6EgYcsfc9WGgoaY9nmbarc;qofaYfcbaoaY9Rz:xjjjb8Akada3al2fh8Jcbh8Kina8Ka8FVcl4hQarc;alfa8Kcdtfh8LaAh8Mcbh8Nina8NaAfhwdndndndndndna8KPldebidkasa8Mc98GgLfhoa5aLfh8Aarc;qlfawc98GgLfRbbhXcwhwinaoRbbawtaXVhXaocefhoawcwfgwca9hmbkaYTmla8Ncith8Ea8JaLfhEcbhKinaERbbhLcwhoa8AhwinawRbbaotaLVhLawcefhwaocwfgoca9hmbkarc;qofaKfaLaX7aQ93a8E486bba8Aalfh8AaEalfhEaLhXaKcefgKaY9hmbxlkkaYTmia8Mc9:Ghoa8NcitcwGhEarc;qlfawceVfRbbcwtarc;qlfawc9:GfRbbVhLarc;qofhwaghXinawa5aofRbbcwtaaaofRbbVg8AaL9RgLcetaLcztcz91cs47cFFiGaE486bbaoalfhoawcefhwa8AhLa3aXcufgX9hmbxikkaYTmda8Jawfhoarc;qlfawfRbbhLarc;qofhwaghXinawaoRbbg8AaL9RgLcetaLcKtcK91cr4786bbawcefhwaoalfhoa8AhLa3aXcufgX9hmbxdkkaYTmeka8LydbhEcbhKarc;qofhoincdhLcbhwinaLaoawfRbbcb9hfhLawcefgwcz9hmbkclhXcbhwinaXaoawfRbbcd0fhXawcefgwcz9hmbkcwh8Acbhwina8AaoawfRbbcP0fh8Aawcefgwcz9hmbkaLaXaLaX6Egwa8Aawa8A6Egwczawcz6EaEfhEaoczfhoaKczfgKaY6mbka8LaEBdbka8Mcefh8Ma8Ncefg8Ncl9hmbka8Kcefg8KaC9hmbkaaamfhaahaxfhha5amfh5a3axfg3ai6mbkcbhocehwaPhLinawaoaLydbarc;alfaocdtfydb6EhoaLclfhLawcefgXhwaCaX9hmbkaraAcd4fa8FcdVaoaocdSE86bbaAclfgAal6mbkkabaefh8Kabcefhoalcd4gecbaDEhkadcefhOarc;abfceVhHcbhmdndninaiam9nmearc;qofcbcjdz:xjjjb8Aa8Kao9Rak6mdadamal2gwfhxcbh8JaOawfhzaocbakz:xjjjbghakfh5aqaiam9Ramaqfai6Egscsfgocl4cifcd4hCaoc9WGg8LThPindndndndndndndndndndnaDTmbara8Jcd4fRbbgLciGPlbedlbkasTmdaxa8Jfhoarc;abfa8JfRbbhLarc;qofhwashXinawaoRbbg8AaL9RgLcetaLcKtcK91cr4786bbawcefhwaoalfhoa8AhLaXcufgXmbxikkasTmia8JcitcwGhEarc;abfa8JceVfRbbcwtarc;abfa8Jc9:GgofRbbVhLaxaofhoarc;qofhwashXinawao8Vbbg8AaL9RgLcetaLcztcz91cs47cFFiGaE486bbawcefhwaoalfhoa8AhLaXcufgXmbxdkkaHa8Jc98GgEfhoazaEfh8Aarc;abfaEfRbbhXcwhwinaoRbbawtaXVhXaocefhoawcwfgwca9hmbkasTmbaLcl4hYa8JcitcKGh3axaEfhEcbhKinaERbbhLcwhoa8AhwinawRbbaotaLVhLawcefhwaocwfgoca9hmbkarc;qofaKfaLaX7aY93a3486bba8Aalfh8AaEalfhEaLhXaKcefgKas9hmbkkaDmbcbhoxlka8LTmbcbhodninarc;qofaofgwcwf8Pibaw8Pib:e9qTmeaoczfgoa8L9pmdxbkkdnavmbcehoxikcbhEaChKaChYinarc;qofaEfgocwf8Pibhyao8Pibh8PcdhLcbhwinaLaoawfRbbcb9hfhLawcefgwcz9hmbkclhXcbhwinaXaoawfRbbcd0fhXawcefgwcz9hmbkcwh8Acbhwina8AaoawfRbbcP0fh8Aawcefgwcz9hmbkaLaXaLaX6Egoa8Aaoa8A6Egoczaocz6EaYfhYaocucbaya8P:e9cb9sEgwaoaw6EaKfhKaEczfgEa8L9pmdxbkkaha8Jcd4fgoaoRbbcda8JcetcoGtV86bbxikdnaKas6mbaYas6mbaha8Jcd4fgoaoRbbcia8JcetcoGtV86bba8Ka59Ras6mra5arc;qofasz:wjjjbasfh5xikaKaY9phokaha8Jcd4fgwawRbbaoa8JcetcoGtV86bbka8Ka59RaC6mla5cbaCz:xjjjbgAaCfhYdndna8LmbaPhoxekdna8KaY9RcK9pmbaPhoxekaocdtc:q1jjbfcj1jjbaDEg5ydxggcetc;:FFFeGh8Fcuh3cuagtcu7cFeGhacbh8Marc;qofhLinarc;qofa8MfhQczhEdndndnagPDbeeeeeeedekcucbaQcwf8PibaQ8Pib:e9cb9sEhExekcbhoa8FhEinaEaaaLaofRbb9nfhEaocefgocz9hmbkkcih8Ecbh8Ainczhwdndndna5a8AcdtfydbgKPDbeeeeeeedekcucbaQcwf8PibaQ8Pib:e9cb9sEhwxekaKcetc;:FFFeGhwcuaKtcu7cFeGhXcbhoinawaXaLaofRbb9nfhwaocefgocz9hmbkkdndnawaE6mbaKa39hmeawaE9hmea5a8EcdtfydbcwSmeka8Ah8EawhEka8Acefg8Aci9hmbkaAa8Mco4fgoaoRbba8Ea8Mci4coGtV86bbdndndna5a8Ecdtfydbg3PDdbbbbbbbebkdncwa39Tg8ETmbcua3tcu7hwdndna3ceSmbcbh8NaLhQinaQhoa8Eh8AcbhXinaoRbbgEawcFeGgKaEaK6EaXa3tVhXaocefhoa8Acufg8AmbkaYaX86bbaQa8EfhQaYcefhYa8Na8Efg8Ncz6mbxdkkcbh8NaLhQinaQhoa8Eh8AcbhXinaoRbbgEawcFeGgKaEaK6EaXcetVhXaocefhoa8Acufg8AmbkaYaX:T9cFe:d9c:c:qj:bw9:9c:q;c1:I1e:d9c:b:c:e1z9:9ca188bbaQa8EfhQaYcefhYa8Na8Efg8Ncz6mbkkcbhoinaYaLaofRbbgX86bbaYaXawcFeG9pfhYaocefgocz9hmbxikkdna3ceSmbinaYcb86bbaYcefhYxbkkinaYcb86bbaYcefhYxbkkaYaQ8Pbb83bbaYcwfaQcwf8Pbb83bbaYczfhYka8Mczfg8Ma8L9pgomeaLczfhLa8KaY9RcK9pmbkkaoTmlaYh5aYTmlka8Jcefg8Jal9hmbkarc;abfaxascufal2falz:wjjjb8Aasamfhma5hoa5mbkcbhwxdkdna8Kao9RakalfgwcKcaaDEgLawaL0EgX9pmbcbhwxdkdnawaL9pmbaocbaXaw9Rgwz:xjjjbawfhokaoarc;adfalz:wjjjbalfhodnaDTmbaoaraez:wjjjbaefhokaoab9Rhwxekcbhwkarc;qwf8Kjjjjbawk5babaeadaialcdcbyd;C:kjjbz:bjjjbk9reduaecd4gdaefgicaaica0Eabcj;abae9Uc;WFbGcjdaeca0Egifcufai9Uae2aiadfaicl4cifcd4f2fcefkmbcbabBd;C:kjjbk:Ese5u8Jjjjjbc;ae9Rgl8Kjjjjbcbhvdnaici9UgocHfae0mbabcbyd;m:kjjbgrc;GeV86bbalc;abfcFecjez:xjjjb8AalcUfgw9cu83ibalc8WfgD9cu83ibalcyfgq9cu83ibalcafgk9cu83ibalcKfgx9cu83ibalczfgm9cu83ibal9cu83iwal9cu83ibabaefc9WfhPabcefgsaofhednaiTmbcmcsarcb9kgzEhHcbhOcbhAcbhCcbhXcbhQindnaeaP9nmbcbhvxikaQcufhvadaCcdtfgLydbhKaLcwfydbhYaLclfydbh8AcbhEdndndninalc;abfavcsGcitfgoydlh3dndndnaoydbgoaK9hmba3a8ASmekdnaoa8A9hmba3aY9hmbaEcefhExekaoaY9hmea3aK9hmeaEcdfhEkaEc870mdaXcufhvaLaEciGcx2goc;i1jjbfydbcdtfydbh3aLaoc;e1jjbfydbcdtfydbh8AaLaoc;a1jjbfydbcdtfydbhKcbhodnindnalavcsGcdtfydba39hmbaohYxdkcuhYavcufhvaocefgocz9hmbkkaOa3aOSgvaYce9iaYaH9oVgoGfhOdndndncbcsavEaYaoEgvcs9hmbarce9imba3a3aAa3cefaASgvEgAcefSmecmcsavEhvkasavaEcdtc;WeGV86bbavcs9hmea3aA9Rgvcetavc8F917hvinaeavcFb0crtavcFbGV86bbaecefheavcje6hoavcr4hvaoTmbka3hAxvkcPhvasaEcdtcPV86bba3hAkavTmiavaH9omicdhocehEaQhYxlkavcufhvaEclfgEc;ab9hmbkkdnaLceaYaOSceta8AaOSEcx2gvc;a1jjbfydbcdtfydbgKTaLavc;e1jjbfydbcdtfydbg8AceSGaLavc;i1jjbfydbcdtfydbg3cdSGaOcb9hGazGg5ce9hmbaw9cu83ibaD9cu83ibaq9cu83ibak9cu83ibax9cu83ibam9cu83ibal9cu83iwal9cu83ibcbhOkcbhEaXcufgvhodnindnalaocsGcdtfydba8A9hmbaEhYxdkcuhYaocufhoaEcefgEcz9hmbkkcbhodnindnalavcsGcdtfydba39hmbaohExdkcuhEavcufhvaocefgocz9hmbkkaOaKaOSg8EfhLdndnaYcm0mbaYcefhYxekcbcsa8AaLSgvEhYaLavfhLkdndnaEcm0mbaEcefhExekcbcsa3aLSgvEhEaLavfhLkc9:cua8EEh8FcbhvaEaYcltVgacFeGhodndndninavc:W1jjbfRbbaoSmeavcefgvcz9hmbxdkka5aKaO9havcm0VVmbasavc;WeV86bbxekasa8F86bbaeaa86bbaecefhekdna8EmbaKaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombkaKhAkdnaYcs9hmba8AaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombka8AhAkdnaEcs9hmba3aA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombka3hAkalaXcdtfaKBdbaXcefcsGhvdndnaYPzbeeeeeeeeeeeeeebekalavcdtfa8ABdbaXcdfcsGhvkdndnaEPzbeeeeeeeeeeeeeebekalavcdtfa3BdbavcefcsGhvkcihoalc;abfaQcitfgEaKBdlaEa8ABdbaQcefcsGhYcdhEavhXaLhOxekcdhoalaXcdtfa3BdbcehEaXcefcsGhXaQhYkalc;abfaYcitfgva8ABdlava3Bdbalc;abfaQaEfcsGcitfgva3BdlavaKBdbascefhsaQaofcsGhQaCcifgCai6mbkkdnaeaP9nmbcbhvxekcbhvinaeavfavc:W1jjbfRbb86bbavcefgvcz9hmbkaeab9Ravfhvkalc;aef8KjjjjbavkZeeucbhddninadcefgdc8F0meceadtae6mbkkadcrfcFeGcr9Uci2cdfabci9U2cHfkmbcbabBd;m:kjjbk:Adewu8Jjjjjbcz9Rhlcbhvdnaicvfae0mbcbhvabcbRb;m:kjjbc;qeV86bbal9cb83iwabcefhoabaefc98fhrdnaiTmbcbhwcbhDindnaoar6mbcbskadaDcdtfydbgqalcwfawaqav9Rgvavc8F91gv7av9Rc507gwcdtfgkydb9Rgvc8E91c9:Gavcdt7awVhvinaoavcFb0gecrtavcFbGV86bbavcr4hvaocefhoaembkakaqBdbaqhvaDcefgDai9hmbkkdnaoar9nmbcbskaocbBbbaoab9RclfhvkavkBeeucbhddninadcefgdc8F0meceadtae6mbkkadcwfcFeGcr9Uab2cvfk:bvli99dui99ludnaeTmbcuadcetcuftcu7:Zhvdndncuaicuftcu7:ZgoJbbbZMgr:lJbbb9p9DTmbar:Ohwxekcjjjj94hwkcbhicbhDinalclfIdbgrJbbbbJbbjZalIdbgq:lar:lMalcwfIdbgk:lMgr:varJbbbb9BEgrNhxaqarNhrdndnakJbbbb9GTmbaxhqxekJbbjZar:l:tgqaq:maxJbbbb9GEhqJbbjZax:l:tgxax:marJbbbb9GEhrkdndnalcxfIdbgxJbbj:;axJbbj:;9GEgkJbbjZakJbbjZ9FEavNJbbbZJbbb:;axJbbbb9GEMgx:lJbbb9p9DTmbax:Ohmxekcjjjj94hmkdndnaqJbbj:;aqJbbj:;9GEgxJbbjZaxJbbjZ9FEaoNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:OhPxekcjjjj94hPkdndnarJbbj:;arJbbj:;9GEgqJbbjZaqJbbjZ9FEaoNJbbbZJbbb:;arJbbbb9GEMgr:lJbbb9p9DTmbar:Ohsxekcjjjj94hskdndnadcl9hmbabaifgzas86bbazcifam86bbazcdfaw86bbazcefaP86bbxekabaDfgzas87ebazcofam87ebazclfaw87ebazcdfaP87ebkalczfhlaiclfhiaDcwfhDaecufgembkkk;hlld99eud99eudnaeTmbdndncuaicuftcu7:ZgvJbbbZMgo:lJbbb9p9DTmbao:Ohixekcjjjj94hikaic;8FiGhrinabcofcicdalclfIdb:lalIdb:l9EgialcwfIdb:lalaicdtfIdb:l9EEgialcxfIdb:lalaicdtfIdb:l9EEgiarV87ebdndnJbbj:;JbbjZalaicdtfIdbJbbbb9DEgoalaicd7cdtfIdbJ;Zl:1ZNNgwJbbj:;awJbbj:;9GEgDJbbjZaDJbbjZ9FEavNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohqxekcjjjj94hqkabcdfaq87ebdndnalaicefciGcdtfIdbJ;Zl:1ZNaoNgwJbbj:;awJbbj:;9GEgDJbbjZaDJbbjZ9FEavNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohqxekcjjjj94hqkabaq87ebdndnaoalaicufciGcdtfIdbJ;Zl:1ZNNgoJbbj:;aoJbbj:;9GEgwJbbjZawJbbjZ9FEavNJbbbZJbbb:;aoJbbbb9GEMgo:lJbbb9p9DTmbao:Ohixekcjjjj94hikabclfai87ebabcwfhbalczfhlaecufgembkkk;3viDue99eu8Jjjjjbcjd9Rgo8Kjjjjbadcd4hrdndndndnavcd9hmbadcl6meaohwarhDinawc:CuBdbawclfhwaDcufgDmbkaeTmiadcl6mdarcdthqalhkcbhxinaohwakhDarhminawawydbgPcbaDIdbgs:8cL4cFeGc:cufasJbbbb9BEgzaPaz9kEBdbaDclfhDawclfhwamcufgmmbkakaqfhkaxcefgxaeSmixbkkaeTmdxekaeTmekarcdthkavce9hhqadcl6hdcbhxindndndnaqmbadmdc:CuhDalhwarhminaDcbawIdbgs:8cL4cFeGc:cufasJbbbb9BEgPaDaP9kEhDawclfhwamcufgmmbxdkkc:CuhDdndnavPleddbdkadmdaohwalhmarhPinawcbamIdbgs:8cL4cFeGgzc;:bazc;:b0Ec:cufasJbbbb9BEBdbamclfhmawclfhwaPcufgPmbxdkkadmecbhwarhminaoawfcbalawfIdbgs:8cL4cFeGgPc8AaPc8A0Ec:cufasJbbbb9BEBdbawclfhwamcufgmmbkkadmbcbhwarhPinaDhmdnavceSmbaoawfydbhmkdndnalawfIdbgscjjj;8iamai9RcefgmcLt9R::NJbbbZJbbb:;asJbbbb9GEMgs:lJbbb9p9DTmbas:Ohzxekcjjjj94hzkabawfazcFFFrGamcKtVBdbawclfhwaPcufgPmbkkabakfhbalakfhlaxcefgxae9hmbkkaocjdf8Kjjjjbk:Ylvdud99due99iudnaeTmbceaicufgvthocuaitcu7:Zhrcuavtcu7:Zhwcbhvadcl9hhDcbhqindndnalcwfIdbgkJbbbbakJbbbb9GEgkJbbjZakJbbjZ9FEarNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikdndnalIdbgkJbbbbakJbbbb9GEgkJbbjZakJbbjZ9FEarNJbbbZMgk:lJbbb9p9DTmbak:Ohdxekcjjjj94hdkadai9Rcd9TgxaifhidndnalclfIdbgkJbbbbakJbbbb9GEgkJbbjZakJbbjZ9FEarNJbbbZMgk:lJbbb9p9DTmbak:Ohdxekcjjjj94hdkadai9Rcd9ThddndnalcxfIdbgkJbbbbakJbbbb9GEgkJbbjZakJbbjZ9FEawNJbbbZMgk:lJbbb9p9DTmbak:Ohmxekcjjjj94hmkadaifhiaoamVhmdndnaDmbabavfgPai86bbaPcifam86bbaPcdfad86bbaPcefax86bbxekabaqfgPai87ebaPcofam87ebaPclfad87ebaPcdfax87ebkalczfhlavclfhvaqcwfhqaecufgembkkk;YqdXui998Jjjjjbc:qd9Rgv8Kjjjjbavc:Sefcbc;Kbz:xjjjb8AcbhodnadTmbcbhoaiTmbdndnabaeSmbaehrxekavcuadcdtgwadcFFFFi0Ecbyd;q:kjjbHjjjjbbgrBd:SeavceBd:mdaraeawz:wjjjb8Akavc:GefcwfcbBdbav9cb83i:Geavc:Gefaradaiavc:Sefz:pjjjbavyd:GehDadci9Ugqcbyd;q:kjjbHjjjjbbheavc:Sefavyd:mdgkcdtfaeBdbavakcefgwBd:mdaecbaqz:xjjjbhxavc:SefawcdtfcuaicdtaicFFFFi0Ecbyd;q:kjjbHjjjjbbgmBdbavakcdfgPBd:mdalc;ebfhsaDheamhwinawalIdbasaeydbgzcwazcw6EcdtfIdbMUdbaeclfheawclfhwaicufgimbkavc:SefaPcdtfcuaqcdtadcFFFF970Ecbyd;q:kjjbHjjjjbbgPBdbdnadci6mbarheaPhwaqhiinawamaeydbcdtfIdbamaeclfydbcdtfIdbMamaecwfydbcdtfIdbMUdbaecxfheawclfhwaicufgimbkkakcifhoalc;ebfhHavc;qbfhOavheavyd:KehAavyd:OehCcbhzcbhwcbhXcehQinaehLcihkarawci2gKcdtfgeydbhsaeclfydbhdabaXcx2fgicwfaecwfydbgYBdbaiclfadBdbaiasBdbaxawfce86bbaOaYBdwaOadBdlaOasBdbaPawcdtfcbBdbdnazTmbcihkaLhiinaOakcdtfaiydbgeBdbakaeaY9haeas9haead9hGGfhkaiclfhiazcufgzmbkkaXcefhXcbhzinaCaAarazaKfcdtfydbcdtgifydbcdtfgYheaDaifgdydbgshidnasTmbdninaeydbawSmeaeclfheaicufgiTmdxbkkaeaYascdtfc98fydbBdbadadydbcufBdbkazcefgzci9hmbkdndnakTmbcuhwJbbbbh8Acbhdavyd:KehYavyd:OehKindndnaDaOadcdtfydbcdtgzfydbgembadcefhdxekadcs0hiamazfgsIdbhEasalcbadcefgdaiEcdtfIdbaHaecwaecw6EcdtfIdbMg3Udba3aE:th3aecdthiaKaYazfydbcdtfheinaPaeydbgzcdtfgsa3asIdbMgEUdbaEa8Aa8AaE9DgsEh8AazawasEhwaeclfheaic98fgimbkkadak9hmbkawcu9hmekaQaq9pmdindnaxaQfRbbmbaQhwxdkaqaQcefgQ9hmbxikkakczakcz6EhzaOheaLhOawcu9hmbkkaocdtavc:Seffc98fhedninaoTmeaeydbcbyd;u:kjjbH:bjjjbbaec98fheaocufhoxbkkavc:qdf8Kjjjjbk;IlevucuaicdtgvaicFFFFi0Egocbyd;q:kjjbHjjjjbbhralalyd9GgwcdtfarBdbalawcefBd9GabarBdbaocbyd;q:kjjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdlcuadcdtadcFFFFi0Ecbyd;q:kjjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdwabydbcbavz:xjjjb8Aadci9UhDdnadTmbabydbhoaehladhrinaoalydbcdtfgvavydbcefBdbalclfhlarcufgrmbkkdnaiTmbabydbhlabydlhrcbhvaihoinaravBdbarclfhralydbavfhvalclfhlaocufgombkkdnadci6mbabydlhrabydwhvcbhlinaecwfydbhoaeclfydbhdaraeydbcdtfgwawydbgwcefBdbavawcdtfalBdbaradcdtfgdadydbgdcefBdbavadcdtfalBdbaraocdtfgoaoydbgocefBdbavaocdtfalBdbaecxfheaDalcefgl9hmbkkdnaiTmbabydlheabydbhlinaeaeydbalydb9RBdbalclfhlaeclfheaicufgimbkkkQbabaeadaic;K1jjbz:ojjjbkQbabaeadaic;m:jjjbz:ojjjbk9DeeuabcFeaicdtz:xjjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk:Vvioud9:du8Jjjjjbc;Wa9Rgl8Kjjjjbcbhvalcxfcbc;Kbz:xjjjb8AalcuadcitgoadcFFFFe0Ecbyd;q:kjjbHjjjjbbgrBdxalceBd2araeadaicezNjjjbalcuaoadcjjjjoGEcbyd;q:kjjbHjjjjbbgwBdzadcdthednadTmbabhiinaiavBdbaiclfhiadavcefgv9hmbkkawaefhDalabBdwalawBdl9cbhqindnadTmbaq9cq9:hkarhvaDhiadheinaiav8Pibak1:NcFrG87ebavcwfhvaicdfhiaecufgembkkalclfaq:NceGcdtfydbhxalclfaq9ce98gq:NceGcdtfydbhmalc;Wbfcbcjaz:xjjjb8AaDhvadhidnadTmbinalc;Wbfav8VebcdtfgeaeydbcefBdbavcdfhvaicufgimbkkcbhvcbhiinalc;WbfavfgeydbhoaeaiBdbaoaifhiavclfgvcja9hmbkadhvdndnadTmbinalc;WbfaDamydbgicetf8VebcdtfgeaeydbgecefBdbaxaecdtfaiBdbamclfhmavcufgvmbkaq9cv9smdcbhvinabawydbcdtfavBdbawclfhwadavcefgv9hmbxdkkaq9cv9smekkclhvdninavc98Smealcxfavfydbcbyd;u:kjjbH:bjjjbbavc98fhvxbkkalc;Waf8Kjjjjbk:Jwliuo99iud9:cbhv8Jjjjjbca9Rgoczfcwfcbyd:8:kjjbBdbaocb8Pd:0:kjjb83izaocwfcbyd;i:kjjbBdbaocb8Pd;a:kjjb83ibaicd4hrdndnadmbJFFuFhwJFFuuhDJFFuuhqJFFuFhkJFFuuhxJFFuFhmxekarcdthPaehsincbhiinaoczfaifgzasaifIdbgwazIdbgDaDaw9EEUdbaoaifgzawazIdbgDaDaw9DEUdbaiclfgicx9hmbkasaPfhsavcefgvad9hmbkaoIdKhDaoIdwhwaoIdChqaoIdlhkaoIdzhxaoIdbhmkdnadTmbJbbbbJbFu9hJbbbbamax:tgmamJbbbb9DEgmakaq:tgkakam9DEgkawaD:tgwawak9DEgw:vawJbbbb9BEhwdnalmbarcdthoindndnaeclfIdbaq:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikai:S9cC:ghHdndnaeIdbax:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikaHai:S:ehHdndnaecwfIdbaD:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabaHai:T9cy:g:e83ibaeaofheabcwfhbadcufgdmbxdkkarcdthoindndnaeIdbax:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikai:SgH9ca:gaH9cz:g9cjjj;4s:d:eaH9cFe:d:e9cF:bj;4:pj;ar:d9c:bd9:9c:p;G:d;4j:E;ar:d9cH9:9c;d;H:W:y:m:g;d;Hb:d9cv9:9c;j:KM;j:KM;j:Kd:dhOdndnaeclfIdbaq:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikai:SgH9ca:gaH9cz:g9cjjj;4s:d:eaH9cFe:d:e9cF:bj;4:pj;ar:d9c:bd9:9c:p;G:d;4j:E;ar:d9cH9:9c;d;H:W:y:m:g;d;Hb:d9cq9:9cM;j:KM;j:KM;jl:daO:ehOdndnaecwfIdbaD:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabaOai:SgH9ca:gaH9cz:g9cjjj;4s:d:eaH9cFe:d:e9cF:bj;4:pj;ar:d9c:bd9:9c:p;G:d;4j:E;ar:d9cH9:9c;d;H:W:y:m:g;d;Hb:d9cC9:9c:KM;j:KM;j:KMD:d:e83ibaeaofheabcwfhbadcufgdmbkkk9teiucbcbyd;y:kjjbgeabcifc98GfgbBd;y:kjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;teeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk:3eedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdxaialBdwaialBdlaialBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd;y:kjjbgeabcrfc94GfgbBd;y:kjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd;y:kjjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd;y:kjjbfgdBd;y:kjjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akkk;Qddbcjwk;mdbbbbdbbblbbbwbbbbbbbebbbdbbblbbbwbbbbbbbbbbbbbbbb4:h9w9N94:P:gW:j9O:ye9Pbbbbbbebbbdbbbebbbdbbbbbbbdbbbbbbbebbbbbbb:l29hZ;69:9kZ;N;76Z;rg97Z;z;o9xZ8J;B85Z;:;u9yZ;b;k9HZ:2;Z9DZ9e:l9mZ59A8KZ:r;T3Z:A:zYZ79OHZ;j4::8::Y:D9V8:bbbb9s:49:Z8R:hBZ9M9M;M8:L;z;o8:;8:PG89q;x:J878R:hQ8::M:B;e87bbbbbbjZbbjZbbjZ:E;V;N8::Y:DsZ9i;H;68:xd;R8:;h0838:;W:NoZbbbb:WV9O8:uf888:9i;H;68:9c9G;L89;n;m9m89;D8Ko8:bbbbf:8tZ9m836ZS:2AZL;zPZZ818EZ9e:lxZ;U98F8:819E;68:FFuuFFuuFFuuFFuFFFuFFFuFbc;mqkzebbbebbbdbbb9G:vbb"),{}).then(function(i){(B=i.instance).exports.__wasm_call_ctors(),B.exports.meshopt_encodeVertexVersion(0),B.exports.meshopt_encodeIndexVersion(1)})})();var XC=function(){var B=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),A=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var g,I=WebAssembly.validate(B)?C("b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuixkbbebeeddddilve9Weeeviebeoweuec:q:6dkr;Neqo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949WbwY9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVJ9V29VVbDl79IV9Rbqq;Ctklbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk:183lYud97dur978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnalTmbcuhoaiRbbgrc;WeGc:Ge9hmbarcsGgwce0mbc9:hoalcufadcd4cbawEgDadfgrcKcaawEgqaraq0Egk6mbaicefhxavaialfgmar9Rgoad;8qbbcj;abad9Uc;WFbGcjdadca0EhPdndndnadTmbaoadfhscbhzinaeaz9nmdamax9RaD6miabazad2fhHaxaDfhOaPaeaz9RazaPfae6EgAcsfgocl4cifcd4hCavcj;cbfaoc9WGgXcetfhQavcj;cbfaXci2fhLavcj;cbfaXfhKcbhYaoc;ab6h8AincbhodnawTmbaxaYcd4fRbbhokaocFeGhEcbh3avcj;cbfh5indndndndnaEa3cet4ciGgoc9:fPdebdkamaO9RaX6mwavcj;cbfa3aX2faOaX;8qbbaOaAfhOxdkavcj;cbfa3aX2fcbaX;8kbxekamaO9RaC6moaoclVcbawEhraOaCfhocbhidna8Ambamao9Rc;Gb6mbcbhlina5alfhidndndndndndnaOalco4fRbbgqciGarfPDbedibledibkaipxbbbbbbbbbbbbbbbbpklbxlkaiaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaoclffahc:q:yjjbfRbbfhoxikaiaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaocwffahc:q:yjjbfRbbfhoxdkaiaopbbbpklbaoczfhoxekaiaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaaaocdffahc:q:yjjbfRbbfhokdndndndndndnaqcd4ciGarfPDbedibledibkaiczfpxbbbbbbbbbbbbbbbbpklbxlkaiczfaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaoclffahc:q:yjjbfRbbfhoxikaiczfaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaocwffahc:q:yjjbfRbbfhoxdkaiczfaopbbbpklbaoczfhoxekaiczfaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaaaocdffahc:q:yjjbfRbbfhokdndndndndndnaqcl4ciGarfPDbedibledibkaicafpxbbbbbbbbbbbbbbbbpklbxlkaicafaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaoclffahc:q:yjjbfRbbfhoxikaicafaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaaaocwffahc:q:yjjbfRbbfhoxdkaicafaopbbbpklbaoczfhoxekaicafaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaaaocdffahc:q:yjjbfRbbfhokdndndndndndnaqco4arfPDbedibledibkaic8Wfpxbbbbbbbbbbbbbbbbpklbxlkaic8Wfaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngicitc:q1jjbfpbibaic:q:yjjbfRbbgipsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Ngqcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaiaoclffaqc:q:yjjbfRbbfhoxikaic8Wfaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngicitc:q1jjbfpbibaic:q:yjjbfRbbgipsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Ngqcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spklbaiaocwffaqc:q:yjjbfRbbfhoxdkaic8Wfaopbbbpklbaoczfhoxekaic8WfaopbbdaoRbbgicitc:q1jjbfpbibaic:q:yjjbfRbbgipsaoRbegqcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpklbaiaocdffaqc:q:yjjbfRbbfhokalc;abfhialcjefaX0meaihlamao9Rc;Fb0mbkkdnaiaX9pmbaici4hlinamao9RcK6mwa5aifhqdndndndndndnaOaico4fRbbalcoG4ciGarfPDbedibledibkaqpxbbbbbbbbbbbbbbbbpkbbxlkaqaopbblaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLg8Ecdp:mea8EpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9og8Fpxiiiiiiiiiiiiiiiip8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spkbbaaaoclffahc:q:yjjbfRbbfhoxikaqaopbbwaopbbbg8Eclp:mea8EpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9og8Fpxssssssssssssssssp8Jg8Ep5b9cjF;8;4;W;G;ab9:9cU1:Ngacitc:q1jjbfpbibaac:q:yjjbfRbbgapsa8Ep5e9cjF;8;4;W;G;ab9:9cU1:Nghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPa8Fa8Ep9spkbbaaaocwffahc:q:yjjbfRbbfhoxdkaqaopbbbpkbbaoczfhoxekaqaopbbdaoRbbgacitc:q1jjbfpbibaac:q:yjjbfRbbgapsaoRbeghcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPpkbbaaaocdffahc:q:yjjbfRbbfhokalcdfhlaiczfgiaX6mbkkaohOaoTmoka5aXfh5a3cefg3cl9hmbkdndndndnawTmbasaYcd4fRbbglciGPlbedwbkaXTmdavcjdfaYfhlavaYfpbdbhgcbhoinalavcj;cbfaofpblbg8JaKaofpblbg8KpmbzeHdOiAlCvXoQrLg8LaQaofpblbg8MaLaofpblbg8NpmbzeHdOiAlCvXoQrLgypmbezHdiOAlvCXorQLg8Ecep9Ta8Epxeeeeeeeeeeeeeeeeg8Fp9op9Hp9rg8Eagp9Uggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp9Uggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp9Uggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9Abbbaladfglaga8LaypmwDKYqk8AExm35Ps8E8Fg8Ecep9Ta8Ea8Fp9op9Hp9rg8Ep9Uggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp9Uggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp9Uggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9Abbbaladfglaga8Ja8KpmwKDYq8AkEx3m5P8Es8Fg8Ja8Ma8NpmwKDYq8AkEx3m5P8Es8Fg8KpmbezHdiOAlvCXorQLg8Ecep9Ta8Ea8Fp9op9Hp9rg8Ep9Uggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp9Uggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp9Uggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9Abbbaladfglaga8Ja8KpmwDKYqk8AExm35Ps8E8Fg8Ecep9Ta8Ea8Fp9op9Hp9rg8Ep9Ug8Fp9Abbbaladfgla8Fa8Ea8Epmlvorlvorlvorlvorp9Ug8Fp9Abbbaladfgla8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9Ug8Fp9Abbbaladfgla8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9Uggp9AbbbaladfhlaoczfgoaX6mbxikkaXTmeavcjdfaYfhlavaYfpbdbhgcbhoinalavcj;cbfaofpblbg8JaKaofpblbg8KpmbzeHdOiAlCvXoQrLg8LaQaofpblbg8MaLaofpblbg8NpmbzeHdOiAlCvXoQrLgypmbezHdiOAlvCXorQLg8Ecep:nea8Epxebebebebebebebebg8Fp9op:bep9rg8Eagp:oeggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp:oeggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp:oeggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9Abbbaladfglaga8LaypmwDKYqk8AExm35Ps8E8Fg8Ecep:nea8Ea8Fp9op:bep9rg8Ep:oeggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp:oeggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp:oeggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9Abbbaladfglaga8Ja8KpmwKDYq8AkEx3m5P8Es8Fg8Ja8Ma8NpmwKDYq8AkEx3m5P8Es8Fg8KpmbezHdiOAlvCXorQLg8Ecep:nea8Ea8Fp9op:bep9rg8Ep:oeggp9Abbbaladfglaga8Ea8Epmlvorlvorlvorlvorp:oeggp9Abbbaladfglaga8Ea8EpmwDqkwDqkwDqkwDqkp:oeggp9Abbbaladfglaga8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9Abbbaladfglaga8Ja8KpmwDKYqk8AExm35Ps8E8Fg8Ecep:nea8Ea8Fp9op:bep9rg8Ep:oeg8Fp9Abbbaladfgla8Fa8Ea8Epmlvorlvorlvorlvorp:oeg8Fp9Abbbaladfgla8Fa8Ea8EpmwDqkwDqkwDqkwDqkp:oeg8Fp9Abbbaladfgla8Fa8Ea8EpmxmPsxmPsxmPsxmPsp:oeggp9AbbbaladfhlaoczfgoaX6mbxdkkaXTmbcbhocbalcl4gl9Rc8FGhiavcjdfaYfhravaYfpbdbh8Finaravcj;cbfaofpblbggaKaofpblbg8JpmbzeHdOiAlCvXoQrLg8KaQaofpblbg8LaLaofpblbg8MpmbzeHdOiAlCvXoQrLg8NpmbezHdiOAlvCXorQLg8Eaip:Rea8Ealp:Sep9qg8Ea8Fp9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9Abbbaradfgra8Fa8Ka8NpmwDKYqk8AExm35Ps8E8Fg8Eaip:Rea8Ealp:Sep9qg8Ep9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9Abbbaradfgra8Faga8JpmwKDYq8AkEx3m5P8Es8Fgga8La8MpmwKDYq8AkEx3m5P8Es8Fg8JpmbezHdiOAlvCXorQLg8Eaip:Rea8Ealp:Sep9qg8Ep9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9Abbbaradfgra8Faga8JpmwDKYqk8AExm35Ps8E8Fg8Eaip:Rea8Ealp:Sep9qg8Ep9rg8Fp9Abbbaradfgra8Fa8Ea8Epmlvorlvorlvorlvorp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmwDqkwDqkwDqkwDqkp9rg8Fp9Abbbaradfgra8Fa8Ea8EpmxmPsxmPsxmPsxmPsp9rg8Fp9AbbbaradfhraoczfgoaX6mbkkaYclfgYad6mbkaHavcjdfaAad2;8qbbavavcjdfaAcufad2fad;8qbbaAazfhzc9:hoaOhxaOmbxlkkaeTmbaDalfhrcbhocuhlinaralaD9RglfaD6mdaPaeao9RaoaPfae6Eaofgoae6mbkaial9Rhxkcbc99amax9RakSEhoxekc9:hokavcj;kbf8Kjjjjbaokwbz:bjjjbk:TseHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhldnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhoindnalaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfaoaDcu7gPcl4fcsGcitfgsydlhzasydbhHdndnaDcsGgsak9pmbavaiaPfcsGcdtfydbaxasEhDaxasTgOfhxxekdndnascsSmbcehOasc987asamffcefhDxekalcefhDal8SbbgscFeGhPdndnascu9mmbaDhlxekalcvfhlaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhlkcehOaPce4cbaPceG9R7amfhDkaDhmkavc;abfaocitfgsaDBdbasazBdlavaicdtfaDBdbavc;abfaocefcsGcitfgsaHBdbasaDBdlaocdfhoaOaifhidnadcd9hmbabarcetfgsaH87ebasclfaD87ebascdfaz87ebxdkabarcdtfgsaHBdbascwfaDBdbasclfazBdbxekdnaDcpe0mbaxcefgOavaiaqaDcsGfRbbgscl49RcsGcdtfydbascz6gPEhDavaias9RcsGcdtfydbaOaPfgzascsGgOEhsaOThOdndnadcd9hmbabarcetfgHax87ebaHclfas87ebaHcdfaD87ebxekabarcdtfgHaxBdbaHcwfasBdbaHclfaDBdbkavaicdtfaxBdbavc;abfaocitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfaocefcsGcitfgHasBdbaHaDBdlavaiaPfgicsGcdtfasBdbavc;abfaocdfcsGcitfgDaxBdbaDasBdlaocifhoaiaOfhiazaOfhxxekaxcbalRbbgHEgAaDc;:eSgDfhzaHcsGhCaHcl4hXdndnaHcs0mbazcefhOxekazhOavaiaX9RcsGcdtfydbhzkdndnaCmbaOcefhxxekaOhxavaiaH9RcsGcdtfydbhOkdndnaDTmbalcefhDxekalcdfhDal8SbegPcFeGhsdnaPcu9kmbalcofhAascFbGhscrhldninaD8SbbgPcFbGaltasVhsaPcu9kmeaDcefhDalcrfglc8J9hmbkaAhDxekaDcefhDkasce4cbasceG9R7amfgmhAkdndnaXcsSmbaDhsxekaDcefhsaD8SbbglcFeGhPdnalcu9kmbaDcvfhzaPcFbGhPcrhldninas8SbbgDcFbGaltaPVhPaDcu9kmeascefhsalcrfglc8J9hmbkazhsxekascefhskaPce4cbaPceG9R7amfgmhzkdndnaCcsSmbashlxekascefhlas8SbbgDcFeGhPdnaDcu9kmbascvfhOaPcFbGhPcrhDdninal8SbbgscFbGaDtaPVhPascu9kmealcefhlaDcrfgDc8J9hmbkaOhlxekalcefhlkaPce4cbaPceG9R7amfgmhOkdndnadcd9hmbabarcetfgDaA87ebaDclfaO87ebaDcdfaz87ebxekabarcdtfgDaABdbaDcwfaOBdbaDclfazBdbkavc;abfaocitfgDazBdbaDaABdlavaicdtfaABdbavc;abfaocefcsGcitfgDaOBdbaDazBdlavaicefgicsGcdtfazBdbavc;abfaocdfcsGcitfgDaABdbaDaOBdlavaiaHcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhiaocifhokawcefhwaocsGhoaicsGhiarcifgrae6mbkkcbc99alaqSEhokavc;aef8Kjjjjbaok:clevu8Jjjjjbcz9Rhvdnaecvfal9nmbc9:skdnaiRbbc;:eGc;qeSmbcuskav9cb83iwaicefhoaialfc98fhrdnaeTmbdnadcdSmbcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcdtfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgiBdbalaiBdbawcefgwae9hmbxdkkcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcetfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgi87ebalaiBdbawcefgwae9hmbkkcbc99aoarSEk:2Pliur97eue978Jjjjjbc8W9Rhiaec98Ghldndnadcl9hmbdnalTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalaeSmeaipxbbbbbbbbbbbbbbbbgqpklbaiabalcdtfgdaeciGglcdtgv;8qbbdnalTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDaqp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkadaiav;8qbbskaipxFubbFubbFubbFubbgxpklbdnalTmbcbhvabhdinadczfgmampbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraipblbaDaopmlvorxmPsCXQL358E8Fp9op;6eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgPp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;MeawaqawaPp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oaoarpmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgval6mbkkalaeSmbaiczfpxbbbbbbbbbbbbbbbbgopklbaiaopklbaiabalcitfgdaeciGglcitgv;8qbbaiaxpkladnalTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraipblaaDaopmlvorxmPsCXQL358E8Fp9op;6eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgPp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;MeawaqawaPp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oaoarpmbezHdiOAlvCXorQLp9qpklbkadaiav;8qbbkk;Iwllue97euo978Jjjjjbca9Rhidnaec98GglTmbcbhvabhoinaocKfpxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81ZaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkpxibbbibbbibbbibbbp9qp;6ep;NegxaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meaxarczp:Sep;6ep;Megmamp;Meaxaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgxp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgPp9oamaxp;Mearp;Keczp:Rep9qgmaDaxp;Mearp;KeaPp9oaqaxp;Mearp;Keczp:Rep9qgrpmwDKYqk8AExm35Ps8E8FgDp5eakclp:RegxpEi:T:j83ibawaDp5baxpEd:T:j83ibaocwfamarpmbezHdiOAlvCXorQLgrp5eaxpEe:T:j83ibaoarp5baxpEb:T:j83ibaocafhoavclfgval6mbkkdnalaeSmbaiczfpxbbbbbbbbbbbbbbbbgxpklbaiaxpklbaiabalcitfgoaeciGgvcitgw;8qbbdnavTmbaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81ZaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkpxibbbibbbibbbibbbp9qp;6ep;NegxaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meaxarczp:Sep;6ep;Megmamp;Meaxaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgxp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgPp9oamaxp;Mearp;Keczp:Rep9qgmaDaxp;Mearp;KeaPp9oaqaxp;Mearp;Keczp:Rep9qgrpmwDKYqk8AExm35Ps8E8FgDp5eakclp:RegxpEi:T:j83iKaiaDp5baxpEd:T:j83izaiamarpmbezHdiOAlvCXorQLgrp5eaxpEe:T:j83iwaiarp5baxpEb:T:j83ibkaoaiaw;8qbbkk;uddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbheabhdinadadpbbbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepkbbadczfhdaeclfgeav6mbkkdnavalSmbaic8WfpxbbbbbbbbbbbbbbbbgopklbaicafaopklbaiczfaopklbaiaopklbaiabavcdtfgdalciGgecdtgv;8qbbdnaeTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepklbkadaiav;8qbbkk:CPvdue97euw97eu8Jjjjjbc8W9Rhiaec98Ghldndnadcl9hmbaipxbbbbbbbbbbbbbbbbgvpklbdnalTmbcbhoabhdinadpbbbhradpxbbuJbbuJbbuJbbuJaipblbarcKp:Tep9qgwcep:Seawp9qgDcdp:SeaDp9qgDclp:SeaDp9qgqp;6ep;NegDarcwp:RecKp:SegkarpxFbbbFbbbFbbbFbbbgxp9ogmp:Uep;6ep;Mepxbbn0bbn0bbn0bbn0gPp;Kecwp:RepxbFbbbFbbbFbbbFbbp9oaDamakp:Xearczp:RecKp:Segrp:Uep;6ep;MeaPp;Keaxp9op9qaDamakarp:Uep:Xep;6ep;MeaPp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qaDaqawcep:Rep9oawpxebbbebbbebbbebbbp9op9qp;6ep;MeaPp;KecKp:Rep9qpkbbadczfhdaoclfgoal6mbkkalaeSmeaiavpklaaicafabalcdtfgdaeciGglcdtgo;8qbbaiavpklbdnalTmbaipblahraipxbbuJbbuJbbuJbbuJaipblbarcKp:Tep9qgwcep:Seawp9qgDcdp:SeaDp9qgDclp:SeaDp9qgqp;6ep;NegDarcwp:RecKp:SegkarpxFbbbFbbbFbbbFbbbgxp9ogmp:Uep;6ep;Mepxbbn0bbn0bbn0bbn0gPp;Kecwp:RepxbFbbbFbbbFbbbFbbp9oaDamakp:Xearczp:RecKp:Segrp:Uep;6ep;MeaPp;Keaxp9op9qaDamakarp:Uep:Xep;6ep;MeaPp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qaDaqawcep:Rep9oawpxebbbebbbebbbebbbp9op9qp;6ep;MeaPp;KecKp:Rep9qpklakadaicafao;8qbbskaipxbbbbbbbbbbbbbbbbgvpklbdnalTmbcbhoabhdinadczfgspxbFu9hbFu9hbFu9hbFu9hadpbbbgDaspbbbgPpmlvorxmPsCXQL358E8Fgmczp:Teaipblbp9qgrcep:Searp9qgwcdp:Seawp9qgwclp:Seawp9qgwcwp:Seawp9qgqp;6ep;NegwaDaPpmbediwDqkzHOAKY8AEgDpxFFbbFFbbFFbbFFbbgPp9ogkaDczp:Segxp:Ueamczp:Reczp:Segmp:Xep;6ep;Mepxbbn0bbn0bbn0bbn0gDp;KeaPp9oawakaxamp:Uep:Xep;6ep;MeaDp;Keczp:Rep9qgxawaqarcep:Rep9oarpxebbbebbbebbbebbbp9op9qp;6ep;MeaDp;Keczp:Reawamakp:Uep;6ep;MeaDp;KeaPp9op9qgrpmwDKYqk8AExm35Ps8E8FpkbbadaxarpmbezHdiOAlvCXorQLpkbbadcafhdaoclfgoal6mbkkalaeSmbaiczfpxbbbbbbbbbbbbbbbbgrpklbaiarpklbaiabalcitfgdaeciGglcitgo;8qbbaiavpkladnalTmbaipxbFu9hbFu9hbFu9hbFu9haipblbgDaipblzgPpmlvorxmPsCXQL358E8Fgmczp:Teaipblap9qgrcep:Searp9qgwcdp:Seawp9qgwclp:Seawp9qgwcwp:Seawp9qgqp;6ep;NegwaDaPpmbediwDqkzHOAKY8AEgDpxFFbbFFbbFFbbFFbbgPp9ogkaDczp:Segxp:Ueamczp:Reczp:Segmp:Xep;6ep;Mepxbbn0bbn0bbn0bbn0gDp;KeaPp9oawakaxamp:Uep:Xep;6ep;MeaDp;Keczp:Rep9qgxawaqarcep:Rep9oarpxebbbebbbebbbebbbp9op9qp;6ep;MeaDp;Keczp:Reawamakp:Uep;6ep;MeaDp;KeaPp9op9qgrpmwDKYqk8AExm35Ps8E8FpklzaiaxarpmbezHdiOAlvCXorQLpklbkadaiao;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz:Dbb"):C("b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuixkbeeeddddillviebeoweuec:W:Odkr;Neqo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949WboY9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVJ9V29VVbrl79IV9Rbwq;BZkdbk;jYi5ud9:du8Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnalTmbcuhoaiRbbgrc;WeGc:Ge9hmbarcsGgwce0mbc9:hoalcufadcd4cbawEgDadfgrcKcaawEgqaraq0Egk6mbaicefhxcj;abad9Uc;WFbGcjdadca0EhmaialfgPar9Rgoadfhsavaoadz:jjjjbgzceVhHcbhOdndninaeaO9nmeaPax9RaD6mdamaeaO9RaOamfgoae6EgAcsfglc9WGhCabaOad2fhXaAcethQaxaDfhiaOaeaoaeao6E9RhLalcl4cifcd4hKazcj;cbfaAfhYcbh8AazcjdfhEaHh3incbhodnawTmbaxa8Acd4fRbbhokaocFeGh5cbh8Eazcj;cbfhqinaih8Fdndndndna5a8Ecet4ciGgoc9:fPdebdkaPa8F9RaA6mrazcj;cbfa8EaA2fa8FaAz:jjjjb8Aa8FaAfhixdkazcj;cbfa8EaA2fcbaAz:kjjjb8Aa8FhixekaPa8F9RaK6mva8FaKfhidnaCTmbaPai9RcK6mbaocdtc:q1jjbfcj1jjbawEhaczhrcbhlinargoc9Wfghaqfhrdndndndndndnaaa8Fahco4fRbbalcoG4ciGcdtfydbPDbedvivvvlvkar9cb83bbarcwf9cb83bbxlkarcbaiRbdai8Xbb9c:c:qj:bw9:9c:q;c1:I1e:d9c:b:c:e1z9:gg9cjjjjjz:dg8J9qE86bbaqaofgrcGfag9c8F1:NghcKtc8F91aicdfa8J9c8N1:Nfg8KRbbG86bbarcVfcba8KahcjeGcr4fghRbbag9cjjjjjl:dg8J9qE86bbarc7fcbaha8J9c8L1:NfghRbbag9cjjjjjd:dg8J9qE86bbarctfcbaha8J9c8K1:NfghRbbag9cjjjjje:dg8J9qE86bbarc91fcbaha8J9c8J1:NfghRbbag9cjjjj;ab:dg8J9qE86bbarc4fcbaha8J9cg1:NfghRbbag9cjjjja:dg8J9qE86bbarc93fcbaha8J9ch1:NfghRbbag9cjjjjz:dgg9qE86bbarc94fcbahag9ca1:NfghRbbai8Xbe9c:c:qj:bw9:9c:q;c1:I1e:d9c:b:c:e1z9:gg9cjjjjjz:dg8J9qE86bbarc95fag9c8F1:NgicKtc8F91aha8J9c8N1:NfghRbbG86bbarc96fcbahaicjeGcr4fgiRbbag9cjjjjjl:dg8J9qE86bbarc97fcbaia8J9c8L1:NfgiRbbag9cjjjjjd:dg8J9qE86bbarc98fcbaia8J9c8K1:NfgiRbbag9cjjjjje:dg8J9qE86bbarc99fcbaia8J9c8J1:NfgiRbbag9cjjjj;ab:dg8J9qE86bbarc9:fcbaia8J9cg1:NfgiRbbag9cjjjja:dg8J9qE86bbarcufcbaia8J9ch1:NfgiRbbag9cjjjjz:dgg9qE86bbaiag9ca1:NfhixikaraiRblaiRbbghco4g8Ka8KciSg8KE86bbaqaofgrcGfaiclfa8Kfg8KRbbahcl4ciGg8La8LciSg8LE86bbarcVfa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc7fa8Ka8Lfg8KRbbahciGghahciSghE86bbarctfa8Kahfg8KRbbaiRbeghco4g8La8LciSg8LE86bbarc91fa8Ka8Lfg8KRbbahcl4ciGg8La8LciSg8LE86bbarc4fa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc93fa8Ka8Lfg8KRbbahciGghahciSghE86bbarc94fa8Kahfg8KRbbaiRbdghco4g8La8LciSg8LE86bbarc95fa8Ka8Lfg8KRbbahcl4ciGg8La8LciSg8LE86bbarc96fa8Ka8Lfg8KRbbahcd4ciGg8La8LciSg8LE86bbarc97fa8Ka8Lfg8KRbbahciGghahciSghE86bbarc98fa8KahfghRbbaiRbigico4g8Ka8KciSg8KE86bbarc99faha8KfghRbbaicl4ciGg8Ka8KciSg8KE86bbarc9:faha8KfghRbbaicd4ciGg8Ka8KciSg8KE86bbarcufaha8KfgrRbbaiciGgiaiciSgiE86bbaraifhixdkaraiRbwaiRbbghcl4g8Ka8KcsSg8KE86bbaqaofgrcGfaicwfa8Kfg8KRbbahcsGghahcsSghE86bbarcVfa8KahfghRbbaiRbeg8Kcl4g8La8LcsSg8LE86bbarc7faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarctfaha8KfghRbbaiRbdg8Kcl4g8La8LcsSg8LE86bbarc91faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc4faha8KfghRbbaiRbig8Kcl4g8La8LcsSg8LE86bbarc93faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc94faha8KfghRbbaiRblg8Kcl4g8La8LcsSg8LE86bbarc95faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc96faha8KfghRbbaiRbvg8Kcl4g8La8LcsSg8LE86bbarc97faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc98faha8KfghRbbaiRbog8Kcl4g8La8LcsSg8LE86bbarc99faha8LfghRbba8KcsGg8Ka8KcsSg8KE86bbarc9:faha8KfghRbbaiRbrgicl4g8Ka8KcsSg8KE86bbarcufaha8KfgrRbbaicsGgiaicsSgiE86bbaraifhixekarai8Pbb83bbarcwfaicwf8Pbb83bbaiczfhikdnaoaC9pmbalcdfhlaoczfhraPai9RcL0mekkaoaC6moaimexokaCmva8FTmvkaqaAfhqa8Ecefg8Ecl9hmbkdndndndnawTmbasa8Acd4fRbbgociGPlbedrbkaATmdaza8Afh8Fazcj;cbfhhcbh8EaEhaina8FRbbhraahocbhlinaoahalfRbbgqce4cbaqceG9R7arfgr86bbaoadfhoaAalcefgl9hmbkaacefhaa8Fcefh8FahaAfhha8Ecefg8Ecl9hmbxikkaATmeaza8Afhaazcj;cbfhhcbhoceh8EaYh8FinaEaofhlaa8Vbbhrcbhoinala8FaofRbbcwtahaofRbbgqVc;:FiGce4cbaqceG9R7arfgr87bbaladfhlaLaocefgofmbka8FaQfh8FcdhoaacdfhaahaQfhha8EceGhlcbh8EalmbxdkkaATmbcbaocl49Rh8Eaza8AfRbbhqcwhoa3hlinalRbbaotaqVhqalcefhlaocwfgoca9hmbkcbhhaEh8FaYhainazcj;cbfahfRbbhrcwhoaahlinalRbbaotarVhralaAfhlaocwfgoca9hmbkara8E93aq7hqcbhoa8Fhlinalaqao486bbalcefhlaocwfgoca9hmbka8Fadfh8FaacefhaahcefghaA9hmbkkaEclfhEa3clfh3a8Aclfg8Aad6mbkaXazcjdfaAad2z:jjjjb8AazazcjdfaAcufad2fadz:jjjjb8AaAaOfhOaihxaimbkc9:hoxdkcbc99aPax9RakSEhoxekc9:hokavcj;kbf8Kjjjjbaok:XseHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:kjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhldnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhoindnalaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfaoaDcu7gPcl4fcsGcitfgsydlhzasydbhHdndnaDcsGgsak9pmbavaiaPfcsGcdtfydbaxasEhDaxasTgOfhxxekdndnascsSmbcehOasc987asamffcefhDxekalcefhDal8SbbgscFeGhPdndnascu9mmbaDhlxekalcvfhlaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhlkcehOaPce4cbaPceG9R7amfhDkaDhmkavc;abfaocitfgsaDBdbasazBdlavaicdtfaDBdbavc;abfaocefcsGcitfgsaHBdbasaDBdlaocdfhoaOaifhidnadcd9hmbabarcetfgsaH87ebasclfaD87ebascdfaz87ebxdkabarcdtfgsaHBdbascwfaDBdbasclfazBdbxekdnaDcpe0mbaxcefgOavaiaqaDcsGfRbbgscl49RcsGcdtfydbascz6gPEhDavaias9RcsGcdtfydbaOaPfgzascsGgOEhsaOThOdndnadcd9hmbabarcetfgHax87ebaHclfas87ebaHcdfaD87ebxekabarcdtfgHaxBdbaHcwfasBdbaHclfaDBdbkavaicdtfaxBdbavc;abfaocitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfaocefcsGcitfgHasBdbaHaDBdlavaiaPfgicsGcdtfasBdbavc;abfaocdfcsGcitfgDaxBdbaDasBdlaocifhoaiaOfhiazaOfhxxekaxcbalRbbgHEgAaDc;:eSgDfhzaHcsGhCaHcl4hXdndnaHcs0mbazcefhOxekazhOavaiaX9RcsGcdtfydbhzkdndnaCmbaOcefhxxekaOhxavaiaH9RcsGcdtfydbhOkdndnaDTmbalcefhDxekalcdfhDal8SbegPcFeGhsdnaPcu9kmbalcofhAascFbGhscrhldninaD8SbbgPcFbGaltasVhsaPcu9kmeaDcefhDalcrfglc8J9hmbkaAhDxekaDcefhDkasce4cbasceG9R7amfgmhAkdndnaXcsSmbaDhsxekaDcefhsaD8SbbglcFeGhPdnalcu9kmbaDcvfhzaPcFbGhPcrhldninas8SbbgDcFbGaltaPVhPaDcu9kmeascefhsalcrfglc8J9hmbkazhsxekascefhskaPce4cbaPceG9R7amfgmhzkdndnaCcsSmbashlxekascefhlas8SbbgDcFeGhPdnaDcu9kmbascvfhOaPcFbGhPcrhDdninal8SbbgscFbGaDtaPVhPascu9kmealcefhlaDcrfgDc8J9hmbkaOhlxekalcefhlkaPce4cbaPceG9R7amfgmhOkdndnadcd9hmbabarcetfgDaA87ebaDclfaO87ebaDcdfaz87ebxekabarcdtfgDaABdbaDcwfaOBdbaDclfazBdbkavc;abfaocitfgDazBdbaDaABdlavaicdtfaABdbavc;abfaocefcsGcitfgDaOBdbaDazBdlavaicefgicsGcdtfazBdbavc;abfaocdfcsGcitfgDaABdbaDaOBdlavaiaHcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhiaocifhokawcefhwaocsGhoaicsGhiarcifgrae6mbkkcbc99alaqSEhokavc;aef8Kjjjjbaok:clevu8Jjjjjbcz9Rhvdnaecvfal9nmbc9:skdnaiRbbc;:eGc;qeSmbcuskav9cb83iwaicefhoaialfc98fhrdnaeTmbdnadcdSmbcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcdtfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgiBdbalaiBdbawcefgwae9hmbxdkkcbhwindnaoar6mbc9:skaocefhlao8SbbgicFeGhddndnaicu9mmbalhoxekaocvfhoadcFbGhdcrhidninal8SbbgDcFbGaitadVhdaDcu9kmealcefhlaicrfgic8J9hmbxdkkalcefhokabawcetfadc8Etc8F91adcd47avcwfadceGcdtVglydbfgi87ebalaiBdbawcefgwae9hmbkkcbc99aoarSEk:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;oiliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabaiavcefciGfcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:OhDxekcjjjj94hDkabaiavciGfgkcd7cetfaD87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:OhDxekcjjjj94hDkabaiavcufciGfcetfaD87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohvxekcjjjj94hvkabakcetfav87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2gdTmbinababydbgecwtcw91:Yaece91cjjj98Gcjjj;8if::NUdbabclfhbadcufgdmbkkk:Tvirud99eudndnadcl9hmbaeTmeindndnabRbbgiabcefgl8Sbbgvabcdfgo8Sbbgrf9R:YJbbuJabcifgwRbbgdce4adVgDcd4aDVgDcl4aDVgD:Z:vgqNJbbbZMgk:lJbbb9p9DTmbak:Ohxxekcjjjj94hxkaoax86bbdndnaraif:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohoxekcjjjj94hokalao86bbdndnavaifar9R:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabai86bbdndnaDadcetGadceGV:ZaqNJbbbZMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkawad86bbabclfhbaecufgembxdkkaeTmbindndnab8Vebgiabcdfgl8Uebgvabclfgo8Uebgrf9R:YJbFu9habcofgw8Vebgdce4adVgDcd4aDVgDcl4aDVgDcw4aDVgD:Z:vgqNJbbbZMgk:lJbbb9p9DTmbak:Ohxxekcjjjj94hxkaoax87ebdndnaraif:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohoxekcjjjj94hokalao87ebdndnavaifar9R:YaqNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabai87ebdndnaDadcetGadceGV:ZaqNJbbbZMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkawad87ebabcwfhbaecufgembkkk9teiucbcbyd:K1jjbgeabcifc98GfgbBd:K1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;teeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk:3eedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdxaialBdwaialBdlaialBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkk81dbcjwk8Kbbbbdbbblbbbwbbbbbbbebbbdbbblbbbwbbbbc:Kwkl8WNbb"),Q=WebAssembly.instantiate(I,{}).then(function(n){(g=n.instance).exports.__wasm_call_ctors()});function C(n){for(var s=new Uint8Array(n.length),c=0;c<n.length;++c){var d=n.charCodeAt(c);s[c]=d>96?d-97:d>64?d-39:d+4}var D=0;for(c=0;c<n.length;++c)s[D++]=s[c]<60?A[s[c]]:64*(s[c]-60)+s[++c];return s.buffer.slice(0,D)}function a(n,s,c,d,D,h,u){var f=n.exports.sbrk,R=d+3&-4,G=f(R*D),k=f(h.length),F=new Uint8Array(n.exports.memory.buffer);F.set(h,k);var m=s(G,d,D,k,h.length);if(m==0&&u&&u(G,R,D),c.set(F.subarray(G,G+d*D)),f(G-f(0)),m!=0)throw new Error("Malformed buffer data: "+m)}var e={NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp",COLOR:"meshopt_decodeFilterColor"},i={ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"},t=[],E=0;function o(n){var s={object:new Worker(n),pending:0,requests:{}};return s.object.onmessage=function(c){var d=c.data;s.pending-=d.count,s.requests[d.id][d.action](d.value),delete s.requests[d.id]},s}function r(n){var s=n.data;if(!s.id)return self.close();self.ready.then(function(c){try{var d=new Uint8Array(s.count*s.size);a(c,c.exports[s.mode],d,s.count,s.size,s.source,c.exports[s.filter]),self.postMessage({id:s.id,count:s.count,action:"resolve",value:d},[d.buffer])}catch(D){self.postMessage({id:s.id,count:s.count,action:"reject",value:D})}})}return{ready:Q,supported:!0,useWorkers:function(n){(function(s){for(var c="self.ready = WebAssembly.instantiate(new Uint8Array(["+new Uint8Array(I)+"]), {}).then(function(result) { result.instance.exports.__wasm_call_ctors(); return result.instance; });self.onmessage = "+r.name+";"+a.toString()+r.toString(),d=new Blob([c],{type:"text/javascript"}),D=URL.createObjectURL(d),h=t.length;h<s;++h)t[h]=o(D);for(h=s;h<t.length;++h)t[h].object.postMessage({});t.length=s,URL.revokeObjectURL(D)})(n)},decodeVertexBuffer:function(n,s,c,d,D){a(g,g.exports.meshopt_decodeVertexBuffer,n,s,c,d,g.exports[e[D]])},decodeIndexBuffer:function(n,s,c,d){a(g,g.exports.meshopt_decodeIndexBuffer,n,s,c,d)},decodeIndexSequence:function(n,s,c,d){a(g,g.exports.meshopt_decodeIndexSequence,n,s,c,d)},decodeGltfBuffer:function(n,s,c,d,D,h){a(g,g.exports[i[D]],n,s,c,d,g.exports[e[h]])},decodeGltfBufferAsync:function(n,s,c,d,D){return t.length>0?function(h,u,f,R,G){for(var k=t[0],F=1;F<t.length;++F)t[F].pending<k.pending&&(k=t[F]);return new Promise(function(m,N){var S=new Uint8Array(f),j=++E;k.pending+=h,k.requests[j]={resolve:m,reject:N},k.object.postMessage({id:j,count:h,size:u,source:S,mode:R,filter:G},[S.buffer])})}(n,s,c,i[d],e[D]):Q.then(function(){var h=new Uint8Array(n*s);return a(g,g.exports[i[d]],h,n,s,c,g.exports[e[D]]),h})}}}();(function(){var B,A=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var g=WebAssembly.instantiate(function(e){for(var i=new Uint8Array(e.length),t=0;t<e.length;++t){var E=e.charCodeAt(t);i[t]=E>96?E-97:E>64?E-39:E+4}var o=0;for(t=0;t<e.length;++t)i[o++]=i[t]<60?A[i[t]]:64*(i[t]-60)+i[++t];return i.buffer.slice(0,o)}("b9H79Tebbbe:Gez9Geueu9Geub9Gbb9Gsuuuuuuuuuuuu99uueu9Gvuuuuub9Gruuuuuuub9Gouuuuuue999Gvuuuuueu9Gquuuuuuu99uueu9GPuuuuuuuuuuu99uueu9Gquuuuuuuu99ueu9Gruuuuuu99eu9Gwuuuuuu99ueu9Giuuue999Gluuuueu9GiuuueuiXCdilvorlwiDqkxmPbssbelve9Weiiviebeoweuec:G:Pdkr;7eko9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bbz9TW79O9V9Wt9F79P9T9W29P9M95br8E9TW79O9V9Wt9F79P9T9W29P9M959x9Pt9OcttV9P9I91tW7bw8A9TW79O9V9Wt9F79P9T9W29P9M959x9Pt9O9v9W9K9HtWbDQ9TW79O9V9Wt9F79P9T9W29P9M959t29V9W9W95bqX9TW79O9V9Wt9F79P9T9W29P9M959qV919UWbkQ9TW79O9V9Wt9F79P9T9W29P9M959q9V9P9Ut7bxX9TW79O9V9Wt9F79P9T9W29P9M959t9J9H2Wbma9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9WbPl79IV9RbsDwebcekdOAq:d;OeCdbk:J1eo3ue99euE99Cue9:8Jjjjjbcj;sb9Rgs8Kjjjjbcbhzasc:Cefcbc;Kbz:rjjjb8AdnabaeSmbabaeadcdtz:qjjjb8AkdnamcdGTmbalcrfci4gHcbyd1:jjjbHjjjjbbheasc:Cefasyd;8egOcdtfaeBdbasaOcefBd;8eaecbaHz:rjjjbhAcbhlcbhednadTmbcbhlabheadhHinaAaeydbgOci4fgCaCRbbgCceaOcrGgOtV86bbaCcu7aO4ceGalfhlaeclfheaHcufgHmbkcualcdtalcFFFFi0Ehekaecbyd1:jjjbHjjjjbbhzasc:Cefasyd;8egecdtfazBdbasaecefBd;8ealcd4alfhOcehHinaHgecethHaeaO6mbkcbhXcuaecdtgOaecFFFFi0Ecbyd1:jjjbHjjjjbbhHasc:Cefasyd;8egCcdtfaHBdbasaCcefBd;8eaHcFeaOz:rjjjbhQdnadTmbaecufhLcbhKindndnaQabaXcdtfgYydbgCc:v;t;h;Ev2aLGgOcdtfgAydbgHcuSmbceheinazaHcdtfydbaCSmdaOaefhHaecefheaQaHaLGgOcdtfgAydbgHcu9hmbkkazaKcdtfaCBdbaAaKBdbaKhHaKcefhKkaYaHBdbaXcefgXad9hmbkkaQcbyd:m:jjjbH:bjjjbbasasyd;8ecufBd;8ekcbh8AcualcefgecdtaecFFFFi0Ecbyd1:jjjbHjjjjbbhKasc:Cefasyd;8egecdtfaKBdbasaKBdNeasaecefBd;8ecuadcitadcFFFFe0Ecbyd1:jjjbHjjjjbbhEasc:Cefasyd;8egecdtfaEBdbasaEBd:yeasaecefBd;8eascNefabadalcbz:cjjjbcualcdtgealcFFFFi0Eg3cbyd1:jjjbHjjjjbbhCasc:Cefasyd;8egHcdtfaCBdbasaHcefBd;8ea3cbyd1:jjjbHjjjjbbhYasc:Cefasyd;8egHcdtfaYBdbasaHcefBd;8eaCaYaialavazasc:Cefz:djjjbalcbyd1:jjjbHjjjjbbh5asc:Cefasyd;8egHcdtfa5BdbasaHcefBd;8ea3cbyd1:jjjbHjjjjbbhHasc:Cefasyd;8egOcdtfaHBdbasaOcefBd;8ea3cbyd1:jjjbHjjjjbbhOasc:Cefasyd;8egAcdtfaOBdbasaAcefBd;8eaHcFeaez:rjjjbh8EaOcFeaez:rjjjbh8FdnalTmbaEcwfhaindnaKa8AgOcefg8AcdtfydbgAaKaOcdtgefydbgHSmbaAaH9RhhaEaHcitfhga8Faefh8Ja8Eaefh8KcbhQindndnagaQcitfydbgLaO9hmba8KaOBdba8JaOBdbxekdnaKaLcdtg8LfgeclfydbgHaeydbgeSmbaEaecitgAfydbaOSmeaHae9Rh8Maecu7aHfhXaaaAfhHcbheinaXaeSmeaecefheaHydbhAaHcwfhHaAaO9hmbkaea8M6meka8Fa8LfgeaOaLaeydbcuSEBdba8KaLaOa8KydbcuSEBdbkaQcefgQah9hmbkka8Aal9hmbkaChHaYhOa8FhAa8EhQcbheindndnaeaHydbgL9hmbdnaeaOydbgL9hmbaQydbhLdnaAydbgXcu9hmbaLcu9hmba5aefcb86bbxikdnaXcuSmbaLcuSmbaeaXSmbaCaXcdtfydbaCaLcdtfydb9hmba5aefcd86bbxika5aefh8KdnaeaXSmbaeaLSmba8Kce86bbxika8Kcl86bbxdkdnaeaYaLcdtgXfydb9hmbdnaAydbg8KcuSmbaea8KSmbaQydbghcuSmbaeahSmba8FaXfydbggcuSmbagaLSmba8EaXfydbgXcuSmbaXaLSmbdnaCa8KcdtfydbgLaCaXcdtfydb9hmbaLaCahcdtfydbgXSmbaXaCagcdtfydb9hmba5aefcd86bbxlka5aefcl86bbxika5aefcl86bbxdka5aefcl86bbxeka5aefa5aLfRbb86bbkaHclfhHaOclfhOaAclfhAaQclfhQalaecefge9hmbkdnamcaGTmbaEcwfh8Jcbh8Nindndna5a8NfgyRbbg8Pc9:fPibebekdndndnaCa8Ncdtfydbgea8N9hmbdnaqmbcbhgxdkdnazTmbcbhga8NheinagaqazaecdtgefydbfRbbcdGce4VhgaYaefydbgea8N9hmbxikkcbhga8NheinagaqaefRbbcdGce4VhgaYaecdtfydbgea8N9hmbxdkka5aefRbbhexeka8NheindnaKaecdtgafgeclfydbgHaeydbgeSmbaHae9Rh8AaEaecitfh8MaCaafh8Lcbh8Kina8Ma8KcitfydbgXhednindnaKaecdtgLfgeclfydbgHaeydbgeSmbdnaCaEaecitgOfydbcdtfydba8LydbgQ9hmbcehexikaHae9Rhhaecu7aHfhAa8JaOfhHcbheinaAaeSmeaecefheaHydbhOaHcwfhHaCaOcdtfydbaQ9hmbkaeah6hexdkaYaLfydbgeaX9hmbkcbhekagaece7Vhga8Kcefg8Ka8A9hmbkkaYaafydbgea8N9hmbka8PciagceGEhekayae86bbka8Ncefg8Nal9hmbkkdnaqTmbdndnazTmbazheaChHalhOindnaqaeydbfRbbceGTmba5aHydbfcl86bbkaeclfheaHclfhHaOcufgOmbxdkkaChealhHindnaqRbbceGTmba5aeydbfcl86bbkaqcefhqaeclfheaHcufgHmbkkaChealhOa5hHindna5aeydbfRbbcl9hmbaHcl86bbkaeclfheaHcefhHaOcufgOmbkkamceGTmba5healhHindnaeRbbce9hmbaecl86bbkaecefheaHcufgHmbkkcbhIcualcx2alc;v:Q;v:Qe0Ecbyd1:jjjbHjjjjbbhaasc:Cefasyd;8egecdtfaaBdbasaecefBd;8easc:qefcbBdbas9cb83i1eaaaialavazasc1efz:ejjjbh8RdndnaDmbcbh8Scbh8Lxekcbh8LawhecbhHindnaeIdbJbbbb9ETmbasa8LcdtfaHBdba8Lcefh8LkaeclfheaDaHcefgH9hmbkcua8Lal2gecdtaecFFFFi0Ecbyd1:jjjbHjjjjbbh8Sasc:Cefasyd;8egecdtfa8SBdbasaecefBd;8ealTmbdna8Lmbcbh8Lxekarcd4hXdnazTmba8Lcdth8KcbhLa8ShKinaoazaLcdtfydbaX2cdtfhQasheaKhHa8LhOinaHaQaeydbcdtgAfIdbawaAfIdbNUdbaeclfheaHclfhHaOcufgOmbkaKa8KfhKaLcefgLal9hmbxdkka8Lcdth8KcbhLa8ShKinaoaLaX2cdtfhQasheaKhHa8LhOinaHaQaeydbcdtgAfIdbawaAfIdbNUdbaeclfheaHclfhHaOcufgOmbkaKa8KfhKaLcefgLal9hmbkkcualc8S2gHalc;D;O;f8U0EgAcbyd1:jjjbHjjjjbbheasc:Cefasyd;8egOcdtfaeBdbasaOcefBd;8eaecbaHz:rjjjbhycbhqcbh8Ndna8LTmbcbhIaAcbyd1:jjjbHjjjjbbh8Nasc:Cefasyd;8egecdtfa8NBdbasaecefBd;8ea8NcbaHz:rjjjb8Acua8Lal2gecltgHaecFFFFb0Ecbyd1:jjjbHjjjjbbhqasc:Cefasyd;8egecdtfaqBdbasaecefBd;8eaqcbaHz:rjjjb8AamcjjjjdGTmbcualcltgealcFFFFb0Ecbyd1:jjjbHjjjjbbhIasc:Cefasyd;8egHcdtfaIBdbasaHcefBd;8eaIcbaez:rjjjb8AkdnadTmbcbhQabhHinaaaHclfydbgLcx2fgeIdbaaaHydbgKcx2fgOIdbgR:tg8UaaaHcwfydbgXcx2fgAIdlaOIdlg8V:tg8WNaAIdbaR:tg8XaeIdla8V:tg8YN:tg8Zh80aeIdwaOIdwg81:tgBa8XNaAIdwa81:tg83a8UN:tgUh8Xa8Ya83Na8WaBN:tg8Yh8Udna8Za8ZNa8Ya8YNaUaUNMM:rgBJbbbb9EgOTmba8ZaB:vh80aUaB:vh8Xa8YaB:vh8UkayaCaKcdtfydbgAc8S2fgea8UaB:rg8Wa8UNNg85aeIdbMUdbaea8Xa8Wa8XNg86Ng87aeIdlMUdlaea80a8Wa80Ng83Ng88aeIdwMUdwaea86a8UNg86aeIdxMUdxaea83a8UNg89aeIdzMUdzaea83a8XNg8:aeIdCMUdCaea8Ua8Wa80a81Na8UaRNa8Va8XNMM:mgZNg83Ng8UaeIdKMUdKaea8Xa83Ng8XaeId3MUd3aea80a83Ng80aeIdaMUdaaea83aZNg83aeId8KMUd8Kaea8WaeIdyMUdyayaCaLcdtfydbgLc8S2fgea85aeIdbMUdbaea87aeIdlMUdlaea88aeIdwMUdwaea86aeIdxMUdxaea89aeIdzMUdzaea8:aeIdCMUdCaea8UaeIdKMUdKaea8XaeId3MUd3aea80aeIdaMUdaaea83aeId8KMUd8Kaea8WaeIdyMUdyayaCaXcdtfydbgKc8S2fgea85aeIdbMUdbaea87aeIdlMUdlaea88aeIdwMUdwaea86aeIdxMUdxaea89aeIdzMUdzaea8:aeIdCMUdCaea8UaeIdKMUdKaea8XaeId3MUd3aea80aeIdaMUdaaea83aeId8KMUd8Kaea8WaeIdyMUdydnaITmbdnaOTmba8ZaB:vh8ZaUaB:vhUa8YaB:vh8YkaIaAcltfgeaBJbbbZNg8UaUNg8WaeIdlMUdlaea8Ua8ZNg8XaeIdwMUdwaea8Ua8YNg80aeIdbMUdbaea8UaR:ma8YNaUa8VN:ta81a8ZN:tNg8UaeIdxMUdxaIaLcltfgea8WaeIdlMUdlaea8XaeIdwMUdwaea80aeIdbMUdbaea8UaeIdxMUdxaIaKcltfgea8WaeIdlMUdlaea8XaeIdwMUdwaea80aeIdbMUdbaea8UaeIdxMUdxkaHcxfhHaQcifgQad6mbkkdnalTmbJ;n;m;m89J:v:;;w8ZamczGEh8YcbhOaChAaahHayheindnaOaAydb9hmbaecxfgQaQIdbJbbbbMUdbaeczfgQaQIdbJbbbbMUdbaecCfgQaQIdbJbbbbMUdbaea8YaecyfgQIdbg8ZNg8UaeIdbMUdbaeclfgLa8UaLIdbMUdbaecwfgLa8UaLIdbMUdbaecKfgLaLIdbaHIdbg8Xa8UN:tUdbaHcwfIdbh8Waec3fgLaLIdba8UaHclfIdbg80N:tUdbaecafgLaLIdba8Ua8WN:tUdbaec8KfgLIdbhUaQa8Za8UMUdbaLaUa8Ua8Wa8WNa8Xa8XNa80a80NMMNMUdbkaAclfhAaHcxfhHaec8SfhealaOcefgO9hmbkkdnadTmbcbhXabhKinabaXcdtfhLcbhHina5aLaHc:G1jjbfydbcdtfydbgOfRbbhedndna5aKaHfydbgAfRbbgQc99fcFeGcpe0mbaec99fcFeGc;:e6mekdnaQcufcFeGce0mba8EaAcdtfydbaO9hmekdnaecufcFeGce0mba8FaOcdtfydbaA9hmekJbbacJbbacJbbbZaecFeGceSEaQcFeGceSEh88aaaOcx2fgeIdwaaaAcx2fgQIdwgB:tg80:mh86aeIdlaQIdlg83:tg8Z:mh89aeIdbaQIdbgR:tgU:mh8:dnaaaLaHc:K1jjbfydbcdtfydbcx2fgeIdwaB:tg8Va80a80NaUaUNa8Za8ZNMMg8YNa8Va80NaeIdbaR:tg81aUNa8ZaeIdla83:tg85NMMg8Wa80N:tg8Xa8XNa81a8YNa8WaUN:tg8Ua8UNa85a8YNa8Wa8ZN:tg8Wa8WNMM:rg87Jbbbb9ETmba8Xa87:vh8Xa8Wa87:vh8Wa8Ua87:vh8Uka88a8Y:rNg8Ya8XaBNa8UaRNa83a8WNMM:mgZNg87aZNhZa8Xa87Nhna8Wa87Nhca8Ua87Nh9ca8Ya8XNg87a8WNhJa87a8UNh9ea8Ya8WNgTa8UNhSa8Xa87Nh87a8WaTNhTa8Ua8Ya8UNNh9hdnaUa85Na81a89NMg8Xa8XNa8Za8VNa85a86NMg8Ua8UNa80a81Na8Va8:NMg8Wa8WNMM:rg80Jbbbb9ETmba8Xa80:vh8Xa8Wa80:vh8Wa8Ua80:vh8UkayaCaAcdtfydbc8S2fgeaeIdba9ha8Ua88a80:rNg80a8UNNMgUMUdbaeaTa8Wa80a8WNg8VNMg81aeIdlMUdlaea87a8Xa80a8XNg8ZNMg85aeIdwMUdwaeaSa8Va8UNMg8VaeIdxMUdxaea9ea8Za8UNMg87aeIdzMUdzaeaJa8Za8WNMg8ZaeIdCMUdCaea9ca8Ua80a8XaBNa8UaRNa83a8WNMMgB:mNg80NMg8UaeIdKMUdKaeaca8Wa80NMg8WaeId3MUd3aeana8Xa80NMg8XaeIdaMUdaaeaZaBa80N:tg80aeId8KMUd8Kaea8YJbbbbMg8YaeIdyMUdyayaCaOcdtfydbc8S2fgeaUaeIdbMUdbaea81aeIdlMUdlaea85aeIdwMUdwaea8VaeIdxMUdxaea87aeIdzMUdzaea8ZaeIdCMUdCaea8UaeIdKMUdKaea8WaeId3MUd3aea8XaeIdaMUdaaea80aeId8KMUd8Kaea8YaeIdyMUdykaHclfgHcx9hmbkaKcxfhKaXcifgXad6mbka8LTmbcbhKinJbbbbh8YaaabaKcdtfgeclfydbgXcx2fgHIdwaaaeydbg8Kcx2fgOIdwg81:tg8Wa8WNaHIdbaOIdbg85:tg8Xa8XNaHIdlaOIdlg87:tg80a80NMMgRaaaecwfydbghcx2fgeIdwa81:tg8ZNa8Wa8Wa8ZNa8XaeIdba85:tgUNa80aeIdla87:tgBNMMg8UN:tJbbbbJbbjZaRa8Za8ZNaUaUNaBaBNMMg8VNa8Ua8UN:tg83:va83Jbbbb9BEg83Nh89a8Va8WNa8Za8UN:ta83Nh8:aRaBNa80a8UN:ta83NhZa8Va80NaBa8UN:ta83NhnaRaUNa8Xa8UN:ta83Nhca8Va8XNaUa8UN:ta83Nh9ca8XaBNaUa80N:tg8Ua8UNa80a8ZNaBa8WN:tg8Ua8UNa8WaUNa8Za8XN:tg8Ua8UNMM:rJbbbZNh8Ua8Sa8Ka8L2ggcdtfhHa8Saha8L2gEcdtfhOa8SaXa8L2g8JcdtfhAa81:mhJa87:mh9ea85:mhTcbhQa8LhLJbbbbhBJbbbbh83JbbbbhRJbbbbh8VJbbbbh81Jbbbbh85Jbbbbh87Jbbbbh88Jbbbbh86inascjdfaQfgecwfa8Ua8:aAIdbaHIdbg8Z:tg80Na89aOIdba8Z:tgUNMg8WNUdbaeclfa8Uana80NaZaUNMg8XNUdbaea8Ua9ca80NacaUNMg80NUdbaecxfa8UaJa8WNa9ea8XNa8ZaTa80NMMMg8ZNUdba8Ua8Wa8XNNa8VMh8Va8Ua8Wa80NNa81Mh81a8Ua8Xa80NNa85Mh85a8Ua8Za8ZNNa8YMh8Ya8Ua8Wa8ZNNaBMhBa8Ua8Xa8ZNNa83Mh83a8Ua80a8ZNNaRMhRa8Ua8Wa8WNNa87Mh87a8Ua8Xa8XNNa88Mh88a8Ua80a80NNa86Mh86aHclfhHaAclfhAaOclfhOaQczfhQaLcufgLmbka8Na8Kc8S2fgea86aeIdbMUdbaea88aeIdlMUdlaea87aeIdwMUdwaea85aeIdxMUdxaea81aeIdzMUdzaea8VaeIdCMUdCaeaRaeIdKMUdKaea83aeId3MUd3aeaBaeIdaMUdaaea8YaeId8KMUd8Kaea8UaeIdyMUdya8NaXc8S2fgea86aeIdbMUdbaea88aeIdlMUdlaea87aeIdwMUdwaea85aeIdxMUdxaea81aeIdzMUdzaea8VaeIdCMUdCaeaRaeIdKMUdKaea83aeId3MUd3aeaBaeIdaMUdaaea8YaeId8KMUd8Kaea8UaeIdyMUdya8Nahc8S2fgea86aeIdbMUdbaea88aeIdlMUdlaea87aeIdwMUdwaea85aeIdxMUdxaea81aeIdzMUdzaea8VaeIdCMUdCaeaRaeIdKMUdKaea83aeId3MUd3aeaBaeIdaMUdaaea8YaeId8KMUd8Kaea8UaeIdyMUdyaqagcltfhLcbhHa8LhAinaLaHfgeascjdfaHfgOIdbaeIdbMUdbaeclfgQaOclfIdbaQIdbMUdbaecwfgQaOcwfIdbaQIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaAcufgAmbkaqa8JcltfhLcbhHa8LhAinaLaHfgeascjdfaHfgOIdbaeIdbMUdbaeclfgQaOclfIdbaQIdbMUdbaecwfgQaOcwfIdbaQIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaAcufgAmbkaqaEcltfhLcbhHa8LhAinaLaHfgeascjdfaHfgOIdbaeIdbMUdbaeclfgQaOclfIdbaQIdbMUdbaecwfgQaOcwfIdbaQIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaAcufgAmbkaKcifgKad6mbkkcbhOdndnamcwGg9imbJbbbbh85cbh6cbh9kcbh0xekcbh6a3cbyd1:jjjbHjjjjbbh0asc:Cefasyd;8egecdtfa0BdbasaecefBd;8ecua0alabadaCz:fjjjbgAcltaAcjjjjiGEcbyd1:jjjbHjjjjbbh9kasc:Cefasyd;8egecdtfa9kBdbasaecefBd;8ea9kaAa0aaalz:gjjjbJFFuuh85aATmba9kheaAhHinaeIdbg8Ua85a85a8U9EEh85aeclfheaHcufgHmbkaAh6kasydNeh9mdnalTmba9mclfhea9mydbhAa5hHalhQcbhOincbaeydbgLaA9RaHRbbcpeGEaOfhOaHcefhHaeclfheaLhAaQcufgQmbkaOce4hOkcuadaO9Rcifg9ncx2a9nc;v:Q;v:Qe0Ecbyd1:jjjbHjjjjbbh8Pasc:Cefasyd;8egecdtfa8PBdbasaecefBd;8ecua9ncdta9ncFFFFi0Ecbyd1:jjjbHjjjjbbh9oasc:Cefasyd;8egecdtfa9oBdbasaecefBd;8ea3cbyd1:jjjbHjjjjbbhDasc:Cefasyd;8egecdtfaDBdbasaecefBd;8ealcbyd1:jjjbHjjjjbbh9pasc:Cefasyd;8egecdtfa9pBdbasaecefBd;8eaxaxNa8RJbbjZamclGEgnanN:vh88Jbbbbh86dnadak9nmbdna9nci6mbasyd:yeh9qa8Lclth9ra8Pcwfh9sJbbbbh87Jbbbbh86inascNefabadalaCz:cjjjbabh8Kcbh8Mcbh3inaba3cdtfhgcbheindnaCa8KaefydbgOcdtgXfydbgAaCagaec:W1jjbfydbcdtfydbgHcdtghfydbgQSmba5aHfRbbgKcv2a5aOfRbbgLfc;a1jjbfRbbg8JaLcv2aKfgEc;a1jjbfRbbg8AVcFeGTmbdnaQaA9nmbaEc;G1jjbfRbbcFeGmekdnaLcufcFeGce0mbaKTmba8EaXfydbaH9hmekdnaLTmbaKcufcFeGce0mba8FahfydbaO9hmeka8Pa8Mcx2fgAaHaOa8AcFeGgQEBdlaAaOaHaQEBdbaAaQa8JGcb9hBdwa8Mcefh8Mkaeclfgecx9hmbkdna3cifg3ad9pmba8Kcxfh8Ka8Mcifa9n9nmekka8MTmdcbhhinayaCa8Pahcx2fgKydbgQcdtgAfydbc8S2fgeIdwaaaKydlgLcx2fgHIdwg8XNaeIdzaHIdbg80NaeIdaMg8Ua8UMMa8XNaeIdlaHIdlg8ZNaeIdCa8XNaeId3Mg8Ua8UMMa8ZNaeIdba80NaeIdxa8ZNaeIdKMg8Ua8UMMa80NaeId8KMMM:lh8UJbbbbJbbjZaeIdyg8W:va8WJbbbb9BEh8WdndnaKydwg8KmbJFFuuh81xekJbbbbJbbjZayaCaLcdtfydbc8S2fgeIdygU:vaUJbbbb9BEaeIdwaaaQcx2fgHIdwgUNaeIdzaHIdbg8YNaeIdaMgBaBMMaUNaeIdlaHIdlgBNaeIdCaUNaeId3MgUaUMMaBNaeIdba8YNaeIdxaBNaeIdKMgUaUMMa8YNaeId8KMMM:lNh81ka8Wa8UNh8Vdna8LTmba8NaQc8S2fgHIdwa8XNaHIdza80NaHIdaMg8Ua8UMMa8XNaHIdla8ZNaHIdCa8XNaHId3Mg8Ua8UMMa8ZNaHIdba80NaHIdxa8ZNaHIdKMg8Ua8UMMa80NaHId8KMMMh8UaqaQa8L2ggcltfheaHIdyhUa8SaLa8L2gEcdtfgXhHa8LhOinaHIdbg8Wa8WaUNaecxfIdba8XaecwfIdbNa80aeIdbNa8ZaeclfIdbNMMMg8Wa8WM:tNa8UMh8UaHclfhHaeczfheaOcufgOmbkdndna8KmbJbbbbh8Wxeka8NaLc8S2fgOIdwaaaQcx2fgeIdwg8YNaOIdzaeIdbgBNaOIdaMg8Wa8WMMa8YNaOIdlaeIdlg83NaOIdCa8YNaOId3Mg8Wa8WMMa83NaOIdbaBNaOIdxa83NaOIdKMg8Wa8WMMaBNaOId8KMMMh8Wa8SagcdtfhHaqaEcltfheaOIdyhRa8LhOinaHIdbgUaUaRNaecxfIdba8YaecwfIdbNaBaeIdbNa83aeclfIdbNMMMgUaUM:tNa8WMh8WaHclfhHaeczfheaOcufgOmbka8W:lh8Wka8Va8U:lMh8Va81a8WMh81dndndna5aQfRbbc9:fPdbedkdna8Fa8Ea8EaAfydbaLSEaYaAfydbgXcdtfydbgAcu9hmbaYaLcdtfydbhAka8NaXc8S2fgOIdwaaaAcx2fgeIdwg8XNaOIdzaeIdbg80NaOIdaMg8Ua8UMMa8XNaOIdlaeIdlg8ZNaOIdCa8XNaOId3Mg8Ua8UMMa8ZNaOIdba80NaOIdxa8ZNaOIdKMg8Ua8UMMa80NaOId8KMMMh8Ua8SaAa8L2ggcdtfhHaqaXa8L2gEcltfheaOIdyhUa8LhOinaHIdbg8Wa8WaUNaecxfIdba8XaecwfIdbNa80aeIdbNa8ZaeclfIdbNMMMg8Wa8WM:tNa8UMh8UaHclfhHaeczfheaOcufgOmbkdndna8KmbJbbbbh8Wxeka8NaAc8S2fgOIdwaaaXcx2fgeIdwg80NaOIdzaeIdbg8ZNaOIdaMg8Wa8WMMa80NaOIdlaeIdlgUNaOIdCa80NaOId3Mg8Wa8WMMaUNaOIdba8ZNaOIdxaUNaOIdKMg8Wa8WMMa8ZNaOId8KMMMh8Wa8SaEcdtfhHaqagcltfheaOIdyh8Ya8LhOinaHIdbg8Xa8Xa8YNaecxfIdba80aecwfIdbNa8ZaeIdbNaUaeclfIdbNMMMg8Xa8XM:tNa8WMh8WaHclfhHaeczfheaOcufgOmbka8W:lh8Wka8Va8U:lMh8Va81a8WMh81xdkaYaAfydbgAaQSmbina8NaAc8S2fgHIdwa8XNaHIdza80NaHIdaMg8Ua8UMMa8XNaHIdla8ZNaHIdCa8XNaHId3Mg8Ua8UMMa8ZNaHIdba80NaHIdxa8ZNaHIdKMg8Ua8UMMa80NaHId8KMMMh8UaqaAa8L2cltfheaHIdyhUaXhHa8LhOinaHIdbg8Wa8WaUNaecxfIdba8XaecwfIdbNa80aeIdbNa8ZaeclfIdbNMMMg8Wa8WM:tNa8UMh8UaHclfhHaeczfheaOcufgOmbka8Va8U:lMh8VaYaAcdtfydbgAaQ9hmbkka5aLfRbbci9hmba8KTmbaYaLcdtfydbgAaLSmba8SagcdtfhXaaaQcx2fgeIdbh8XaeIdwh80aeIdlh8Zina8NaAc8S2fgHIdwa80NaHIdza8XNaHIdaMg8Ua8UMMa80NaHIdla8ZNaHIdCa80NaHId3Mg8Ua8UMMa8ZNaHIdba8XNaHIdxa8ZNaHIdKMg8Ua8UMMa8XNaHId8KMMMh8UaqaAa8L2cltfheaHIdyhUaXhHa8LhOinaHIdbg8Wa8WaUNaecxfIdba80aecwfIdbNa8XaeIdbNa8ZaeclfIdbNMMMg8Wa8WM:tNa8UMh8UaHclfhHaeczfheaOcufgOmbka81a8U:lMh81aYaAcdtfydbgAaL9hmbkkaKa81a8Va81a8V9DgeEUdwaKaQaLaea8Kcb9hGgeEBdlaKaLaQaeEBdbahcefgha8M9hmbkascjdfcbcj;qbz:rjjjb8Aa9shea8MhHinascjdfaeydbcA4cF8FGgOcFAaOcFA6EcdtfgOaOydbcefBdbaecxfheaHcufgHmbkcbhecbhHinascjdfaefgOydbhAaOaHBdbaAaHfhHaeclfgecj;qb9hmbkcbhea9shHinascjdfaHydbcA4cF8FGgOcFAaOcFA6EcdtfgOaOydbgOcefBdba9oaOcdtfaeBdbaHcxfhHa8Maecefge9hmbkadak9RgOci9Uh9tdnalTmbcbheaDhHinaHaeBdbaHclfhHalaecefge9hmbkkcbh9ua9pcbalz:rjjjbh3aOcO9Uh9va9tce4h9wcbh8Acbh8Jdnina8Pa9oa8Jcdtfydbcx2fgEIdwg8Ua889Emea8Aa9t9pmeJFFuuh8Wdna9wa8M9pmba8Pa9oa9wcdtfydbcx2fIdwJbb;aZNh8Wkdna8Ua8W9ETmba8Ua869ETmba8Aa9v0mdkdna3aCaEydlghcdtg9xfydbgAfg9yRbba3aCaEydbg8Kcdtg9zfydbgefg9ARbbVmba5a8KfRbbh9Bdna9maecdtfgHclfydbgOaHydbgHSmbaOaH9RhQaaaAcx2fhKaaaecx2fhXa9qaHcitfhecbhHcehgdnindnaDaeydbcdtfydbgOaASmbaDaeclfydbcdtfydbgLaASmbaOaLSmbaaaLcx2fgLIdbaaaOcx2fgOIdbg8X:tg8UaXIdlaOIdlg80:tg8YNaXIdba8X:tgBaLIdla80:tg8WN:tg8Za8UaKIdla80:tg83NaKIdba8X:tgRa8WN:tg80Na8WaXIdwaOIdwgU:tg8VNa8YaLIdwaU:tg8XN:tg8Ya8WaKIdwaU:tg81Na83a8XN:tg8WNa8XaBNa8Va8UN:tgUa8XaRNa81a8UN:tg8UNMMa8Za8ZNa8Ya8YNaUaUNMMa80a80Na8Wa8WNa8Ua8UNMMN:rJbbj8:N9FmdkaecwfheaHcefgHaQ6hgaQaH9hmbkkagceGTmba9wcefh9wxekdndndndna9Bc9:fPdebdka8KheinaDaecdtgefahBdbaYaefydbgea8K9hmbxikkdna8Fa8Ea8Ea9zfydbahSEaYa9zfydbg8Kcdtfydbgecu9hmbaYa9xfydbhekaDa9zfahBdbaehhkaDa8KcdtfahBdbka9Ace86bba9yce86bbaEIdwg8Ua86a86a8U9DEh86a9ucefh9ucecda9BceSEa8Afh8Aka8Jcefg8Ja8M9hmbkka9uTmddnalTmbcbhLcbhXindnaDaXcdtgefydbgOaXSmbaCaOcdtfydbh8KdnaXaCaefydb9hghmbaya8Kc8S2fgeayaXc8S2fgHIdbaeIdbMUdbaeaHIdlaeIdlMUdlaeaHIdwaeIdwMUdwaeaHIdxaeIdxMUdxaeaHIdzaeIdzMUdzaeaHIdCaeIdCMUdCaeaHIdKaeIdKMUdKaeaHId3aeId3MUd3aeaHIdaaeIdaMUdaaeaHId8KaeId8KMUd8KaeaHIdyaeIdyMUdyaITmbaIa8KcltfgeaIaXcltfgHIdbaeIdbMUdbaeaHIdlaeIdlMUdlaeaHIdwaeIdwMUdwaeaHIdxaeIdxMUdxka8LTmba8NaOc8S2fgea8NaXc8S2ggfgHIdbaeIdbMUdbaeaHIdlaeIdlMUdlaeaHIdwaeIdwMUdwaeaHIdxaeIdxMUdxaeaHIdzaeIdzMUdzaeaHIdCaeIdCMUdCaeaHIdKaeIdKMUdKaeaHId3aeId3MUd3aeaHIdaaeIdaMUdaaeaHId8KaeId8KMUd8KaeaHIdyaeIdyMUdya9raO2hKaqhHa8LhAinaHaKfgeaHaLfgOIdbaeIdbMUdbaeclfgQaOclfIdbaQIdbMUdbaecwfgQaOcwfIdbaQIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaAcufgAmbkahmbJbbbbJbbjZayagfgeIdyg8U:va8UJbbbb9BEaeIdwaaa8Kcx2fgHIdwg8UNaeIdzaHIdbg8WNaeIdaMg8Xa8XMMa8UNaeIdlaHIdlg8XNaeIdCa8UNaeId3Mg8Ua8UMMa8XNaeIdba8WNaeIdxa8XNaeIdKMg8Ua8UMMa8WNaeId8KMMM:lNg8Ua87a87a8U9DEh87kaLa9rfhLaXcefgXal9hmbkcbhHa8EheindnaeydbgOcuSmbdnaHaDaOcdtgAfydbgO9hmbcuhOa8EaAfydbgAcuSmbaDaAcdtfydbhOkaeaOBdbkaeclfhealaHcefgH9hmbkcbhHa8FheindnaeydbgOcuSmbdnaHaDaOcdtgAfydbgO9hmbcuhOa8FaAfydbgAcuSmbaDaAcdtfydbhOkaeaOBdbkaeclfhealaHcefgH9hmbkka87a86a8LEh87cbhHabhecbhOindnaCaDaeydbcdtfydbgLcdtfydbgAaCaDaeclfydbcdtfydbgKcdtfydbgQSmbaAaCaDaecwfydbcdtfydbg8KcdtfydbgXSmbaQaXSmbabaHcdtfgAaLBdbaAcwfa8KBdbaAclfaKBdbaHcifhHkaecxfheaOcifgOad6mbkdndna9imbaHhdxekdnaHak0mbaHhdxekdna85a879FmbaHhdxekJFFuuh85cbhdabhecbhOindna9ka0aeydbgAcdtfydbcdtfIdbg8Ua879ETmbaeclf8Pdbh9CabadcdtfgQaABdbaQclfa9C83dba8Ua85a85a8U9EEh85adcifhdkaecxfheaOcifgOaH6mbkkadak0mbxdkkascNefabadalaCz:cjjjbkdndnadak0mbadhOxekdna9imbadhOxekdna85a889FmbadhOxekcehLina85Jbb;aZNg8Ua88a8Ua889DEh8XJbbbbh8Udna6Tmba9khea6hHinaeIdbg8Wa8Ua8Wa8X9FEa8Ua8Wa8U9EEh8UaeclfheaHcufgHmbkkJFFuuh85cbhOabhecbhHindna9ka0aeydbgAcdtfydbcdtfIdbg8Wa8X9ETmbaeclf8Pdbh9CabaOcdtfgQaABdbaQclfa9C83dba8Wa85a85a8W9EEh85aOcifhOkaecxfheaHcifgHad6mbkdnaLaOad9hVceGmbadhOxdka8Ua86a86a8U9DEh86aOak9nmecbhLaOhda85a889FmbkkdnamcjjjjdGTmba9pcbalz:rjjjbhLdnaOTmbabheaOhHinaLaeydbgAfa5aAfRbbcl9h86bbaeclfheaHcufgHmbkkascNefabaOalaCz:cjjjbalTmbcbhQasyd:yehgindnaLaQfRbbTmbdna5aQfRbbgecl0mbceaetcQGmekdnaCaQcdtgKfydbgeaQSmbaaaQcx2fgHaaaecx2fge8Pdb83dbaHcwfaecwfydbBdbxekayaQc8S2fgeIdyg8Ua8UJL:3;rUNg8UMh88aeIdwa8UMhRaeIdla8UMh8VaeIdba8UMhUaeIdaa8UaaaQcx2fg8KIdwg89N:th81aeId3a8Ua8KIdlg8:N:th85aeIdKa8KIdbgZa8UN:th8YJbbbbhcaeIdCJbbbbMh87aeIdzJbbbbMhBaeIdxJbbbbMh83dndna8LTmbaQhAinJbbbba88a8NaAc8S2fgHIdyg8U:va8UJbbbb9BEh8UaqaAa8L2cltfheaHIdaa88Na81Mh81aHId3a88Na85Mh85aHIdKa88Na8YMh8YaHIdCa88Na87Mh87aHIdza88NaBMhBaHIdxa88Na83Mh83aHIdwa88NaRMhRaHIdla88Na8VMh8VaHIdba88NaUMhUa8LhHina81aecxfIdbg8ZaecwfIdbg8WNa8UN:th81a85a8ZaeclfIdbg8XNa8UN:th85a87a8Wa8XNa8UN:th87aUaeIdbg80a80Na8UN:thUa8Ya8Za80Na8UN:th8YaBa8Wa80Na8UN:thBa83a8Xa80Na8UN:th83aRa8Wa8WNa8UN:thRa8Va8Xa8XNa8UN:th8VaeczfheaHcufgHmbkaYaAcdtfydbgAaQ9hmbkaITmbaIaQcltfgeIdxhTaeIdwh9caeIdlhJaeIdbh8UxekJbbbbhTJbbbbh9cJbbbbhJJbbbbh8UkaBaU:vg8Xa8YNa81:ta87aBa83aU:vg8WN:tg81a8Va83a8WN:tg8Z:vg80a8Wa8YNa85:tg8VN:th85a9ca8Ua8XN:taJa8Ua8WN:tg83a80N:tg87aRaBa8XN:ta81a80N:tgB:vgR:mh81a83a8Z:vg9c:mhJdnJbbbba8Ua8UaU:vg9eN:ta83a9cN:ta87aRN:tg83:la88J:983:g81Ng8U9ETmba81a85NaJa8VNa9ea8YNaT:tMMa83:vhckaU:la8U9ETmba8Z:la8U9ETmbaB:la8U9ETmba9e:macNa8X:ma81acNa85aB:vMg85Na8W:maJacNa80:ma85Na8Va8Z:vMMg87Na8Y:maU:vMMMh88a9maKfgeclfydbgHaeydbge9RhXagaecitfhKJbbbbh8UdnaHaeSghmbJbbbbh8UaKheaXhAinaaaeclfydbcx2fgHIdwa89:tg8Wa8WNaHIdbaZ:tg8Wa8WNaHIdla8::tg8Wa8WNMMg8Waaaeydbcx2fgHIdwa89:tg8Xa8XNaHIdbaZ:tg8Xa8XNaHIdla8::tg8Xa8XNMMg8Xa8Ua8Ua8X9DEg8Ua8Ua8W9DEh8UaecwfheaAcufgAmbkka85a89:tg8Wa8WNa88aZ:tg8Wa8WNa87a8::tg8Wa8WNMMa8U:rg8Ua8UN9EmbdnahmbcbhAcehhdninaaaKclfydbcx2fgeIdbaaaKydbcx2fgHIdbg8X:tg8Ua8:aHIdlg80:tg8YNaZa8X:tgBaeIdla80:tg8WN:tg8Za8Ua87a80:tg83Na88a8X:tgRa8WN:tg80Na8Wa89aHIdwgU:tg8VNa8YaeIdwaU:tg8XN:tg8Ya8Wa85aU:tg81Na83a8XN:tg8WNa8XaBNa8Va8UN:tgUa8XaRNa81a8UN:tg8UNMMa8Za8ZNa8Ya8YNaUaUNMMa80a80Na8Wa8WNa8Ua8UNMMN:rJbbj8:N9FmeaKcwfhKaAcefgAaX6hhaXaA9hmbkkahceGmeka8Ka85Udwa8Ka87Udla8Ka88UdbkaQcefgQal9hmbkdndna8LTmba8LclthYa8Lcdth8KcbhKa8ShXindnaLaKfRbbTmba5aKfRbbclSmbJbbbbJbbjZa8NaKc8S2fIdyg8U:va8UJbbbb9BEh8UaaaCaKcdtfydbcx2fhHaqheaXhAa8LhQinaAa8UaecwfIdbaHIdwNaeIdbaHIdbNaeclfIdbaHIdlNMMaecxfIdbMNUdbaeczfheaAclfhAaQcufgQmbkkaqaYfhqaXa8KfhXaKcefgKal9hmbkarcd4hXavcd4hYasId:qeh8UasId:meh8WasId1eh8XazTmea8Lcdth8KcbhKindnaLaKfRbbTmbaiazaKcdtfydbgCaY2cdtfgeaaaKcx2fgHIdba8RNa8XMUdbaeaHIdla8RNa8WMUdlaeaHIdwa8RNa8UMUdwaoaCaX2cdtfhQashea8ShHa8LhCinaQaeydbcdtgAfaHIdbawaAfIdb:vUdbaeclfheaHclfhHaCcufgCmbkka8Sa8Kfh8SaKcefgKal9hmbxikkavcd4hCasId:qeh8UasId:meh8WasId1eh8XdnazTmbazheindna9pRbbTmbaiaeydbaC2cdtfgHaaIdba8RNa8XMUdbaHaaclfIdba8RNa8WMUdlaHaacwfIdba8RNa8UMUdwka9pcefh9paeclfheaacxfhaalcufglmbxikkaCcdtheindna9pRbbTmbaiaaIdba8RNa8XMUdbaiclfaaclfIdba8RNa8WMUdbaicwfaacwfIdba8RNa8UMUdbka9pcefh9paacxfhaaiaefhialcufglmbxdkka8Lcdth8KcbhKindnaLaKfRbbTmbaiaKaY2cdtfgeaaaKcx2fgHIdba8RNa8XMUdbaeaHIdla8RNa8WMUdlaeaHIdwa8RNa8UMUdwaoaKaX2cdtfhQashea8ShHa8LhCinaQaeydbcdtgAfaHIdbawaAfIdb:vUdbaeclfheaHclfhHaCcufgCmbkka8Sa8Kfh8SaKcefgKal9hmbkkdnamcjjjjlGTmbazmbaOTmbcbhLabheina5aeydbgAfRbbc3thKaecwfgXydbhHdndna8EaAcdtg8KfydbaeclfgYydbgCSmbcbhQa8FaCcdtfydbaA9hmekcjjjj94hQkaeaKaQVaAVBdba5aCfRbbc3thKdndna8EaCcdtfydbaHSmbcbhQa8FaHcdtfydbaC9hmekcjjjj94hQkaYaKaQVaCVBdba5aHfRbbc3thQdndna8EaHcdtfydbaASmbcbhCa8Fa8KfydbaH9hmekcjjjj94hCkaXaQaCVaHVBdbaecxfheaLcifgLaO6mbkkdnazTmbaOTmbaOheinabazabydbcdtfydbBdbabclfhbaecufgembkkdnaPTmbaPana86:rNUdbkasyd;8egecdtasc:Ceffc98fhHdninaeTmeaHydbcbyd:m:jjjbH:bjjjbbaHc98fhHaecufhexbkkascj;sbf8KjjjjbaOk;Yieouabydlhvabydbclfcbaicdtz:rjjjbhoadci9UhrdnadTmbdnalTmbaehwadhDinaoalawydbcdtfydbcdtfgqaqydbcefBdbawclfhwaDcufgDmbxdkkaehwadhDinaoawydbcdtfgqaqydbcefBdbawclfhwaDcufgDmbkkdnaiTmbcbhDaohwinawydbhqawaDBdbawclfhwaqaDfhDaicufgimbkkdnadci6mbinaecwfydbhwaeclfydbhDaeydbhidnalTmbalawcdtfydbhwalaDcdtfydbhDalaicdtfydbhikavaoaicdtfgqydbcitfaDBdbavaqydbcitfawBdlaqaqydbcefBdbavaoaDcdtfgqydbcitfawBdbavaqydbcitfaiBdlaqaqydbcefBdbavaoawcdtfgwydbcitfaiBdbavawydbcitfaDBdlawawydbcefBdbaecxfhearcufgrmbkkabydbcbBdbk:todDue99aicd4aifhrcehwinawgDcethwaDar6mbkcuaDcdtgraDcFFFFi0Ecbyd1:jjjbHjjjjbbhwaoaoyd9GgqcefBd9GaoaqcdtfawBdbawcFearz:rjjjbhkdnaiTmbalcd4hlaDcufhxcbhminamhDdnavTmbavamcdtfydbhDkcbadaDal2cdtfgDydlgwawcjjjj94SEgwcH4aw7c:F:b:DD2cbaDydbgwawcjjjj94SEgwcH4aw7c;D;O:B8J27cbaDydwgDaDcjjjj94SEgDcH4aD7c:3F;N8N27axGhwamcdthPdndndnavTmbakawcdtfgrydbgDcuSmeadavaPfydbal2cdtfgsIdbhzcehqinaqhrdnadavaDcdtfydbal2cdtfgqIdbaz9CmbaqIdlasIdl9CmbaqIdwasIdw9BmlkarcefhqakawarfaxGgwcdtfgrydbgDcu9hmbxdkkakawcdtfgrydbgDcuSmbadamal2cdtfgsIdbhzcehqinaqhrdnadaDal2cdtfgqIdbaz9CmbaqIdlasIdl9CmbaqIdwasIdw9BmikarcefhqakawarfaxGgwcdtfgrydbgDcu9hmbkkaramBdbamhDkabaPfaDBdbamcefgmai9hmbkkakcbyd:m:jjjbH:bjjjbbaoaoyd9GcufBd9GdnaeTmbaiTmbcbhDaehwinawaDBdbawclfhwaiaDcefgD9hmbkcbhDaehwindnaDabydbgrSmbawaearcdtfgrydbBdbaraDBdbkawclfhwabclfhbaiaDcefgD9hmbkkk:hrdvuv998Jjjjjbca9Rgoczfcwfcbyd11jjbBdbaocb8Pdj1jjb83izaocwfcbydN1jjbBdbaocb8Pd:m1jjb83ibdnadTmbaicd4hrdnabmbdnalTmbcbhwinaealawcdtfydbar2cdtfhDcbhiinaoczfaifgqaDaifIdbgkaqIdbgxaxak9EEUdbaoaifgqakaqIdbgxaxak9DEUdbaiclfgicx9hmbkawcefgwad9hmbxikkarcdthwcbhDincbhiinaoczfaifgqaeaifIdbgkaqIdbgxaxak9EEUdbaoaifgqakaqIdbgxaxak9DEUdbaiclfgicx9hmbkaeawfheaDcefgDad9hmbxdkkdnalTmbcbhwinabawcx2fgiaealawcdtfydbar2cdtfgDIdbUdbaiaDIdlUdlaiaDIdwUdwcbhiinaoczfaifgqaDaifIdbgkaqIdbgxaxak9EEUdbaoaifgqakaqIdbgxaxak9DEUdbaiclfgicx9hmbkawcefgwad9hmbxdkkarcdthlcbhwaehDinabawcx2fgiaeawar2cdtfgqIdbUdbaiaqIdlUdlaiaqIdwUdwcbhiinaoczfaifgqaDaifIdbgkaqIdbgxaxak9EEUdbaoaifgqakaqIdbgxaxak9DEUdbaiclfgicx9hmbkaDalfhDawcefgwad9hmbkkJbbbbaoIdbaoIdzgx:tgkakJbbbb9DEgkaoIdlaoIdCgm:tgPaPak9DEgkaoIdwaoIdKgP:tgsasak9DEhsdnabTmbadTmbJbbbbJbbjZas:vasJbbbb9BEhkinabakabIdbax:tNUdbabclfgoakaoIdbam:tNUdbabcwfgoakaoIdbaP:tNUdbabcxfhbadcufgdmbkkdnavTmbavaPUdwavamUdlavaxUdbkask:ZlewudnaeTmbcbhvabhoinaoavBdbaoclfhoaeavcefgv9hmbkkdnaiTmbcbhrinadarcdtfhwcbhDinalawaDcdtgvc:G1jjbfydbcdtfydbcdtfydbhodnabalawavfydbcdtfydbgqcdtfgkydbgvaqSmbinakabavgqcdtfgxydbgvBdbaxhkaqav9hmbkkdnabaocdtfgkydbgvaoSmbinakabavgocdtfgxydbgvBdbaxhkaoav9hmbkkdnaqaoSmbabaqaoaqao0Ecdtfaqaoaqao6EBdbkaDcefgDci9hmbkarcifgrai6mbkkdnaembcbskcbhxindnalaxcdtgvfydbax9hmbaxhodnabavfgDydbgvaxSmbaDhqinaqabavgocdtfgkydbgvBdbakhqaoav9hmbkkaDaoBdbkaxcefgxae9hmbkcbhvabhocbhkindndnavalydbgq9hmbdnavaoydbgq9hmbaoakBdbakcefhkxdkaoabaqcdtfydbBdbxekaoabaqcdtfydbBdbkaoclfhoalclfhlaeavcefgv9hmbkakk;Jiilud99duabcbaecltz:rjjjbhvdnalTmbadhoaihralhwinarcwfIdbhDarclfIdbhqavaoydbcltfgkarIdbakIdbMUdbakclfgxaqaxIdbMUdbakcwfgxaDaxIdbMUdbakcxfgkakIdbJbbjZMUdbaoclfhoarcxfhrawcufgwmbkkdnaeTmbavhraehkinarcxfgoIdbhDaocbBdbararIdbJbbbbJbbjZaD:vaDJbbbb9BEgDNUdbarclfgoaDaoIdbNUdbarcwfgoaDaoIdbNUdbarczfhrakcufgkmbkkdnalTmbinavadydbcltfgrcxfgkaicwfIdbarcwfIdb:tgDaDNaiIdbarIdb:tgDaDNaiclfIdbarclfIdb:tgDaDNMMgDakIdbgqaqaD9DEUdbadclfhdaicxfhialcufglmbkkdnaeTmbavcxfhrinabarIdbUdbarczfhrabclfhbaecufgembkkk8MbabaeadaialavcbcbcbcbcbaoarawaDz:bjjjbk8MbabaeadaialavaoarawaDaqakaxamaPz:bjjjbkRbababaeadaialavaoarawaDaqakaxcjjjjdVamz:bjjjbk:p8Koque99due99iuq998Jjjjjbc;Wb9Rgq8Kjjjjbcbhkaqcxfcbc;Kbz:rjjjb8Aaqcualcx2alc;v:Q;v:Qe0Ecbyd1:jjjbHjjjjbbgxBdxaqceBd2axaialavcbcbz:ejjjb8AaqcualcdtalcFFFFi0Egmcbyd1:jjjbHjjjjbbgiBdzaqcdBd2dndnJFF959eJbbjZawJbbjZawJbbjZ9DE:vawJ9VO:d869DEgw:lJbbb9p9DTmbaw:OhPxekcjjjj94hPkadci9Uhsarco9UhzdndnaombaPcd9imekdnalTmbaPcuf:YhwdnaoTmbcbhvaihHaxhOindndnaoavfRbbceGTmbavcjjjjlVhAxekdndnaOclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkaAcqthAdndnaOcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaAaXVhAdndnaOIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaAaXcCtVhAkaHaABdbaHclfhHaOcxfhOalavcefgv9hmbxdkkaxhvaihOalhHindndnavIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkaAcCthAdndnavclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaXcqtaAVhAdndnavcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhXxekcjjjj94hXkaOaAaXVBdbavcxfhvaOclfhOaHcufgHmbkkadTmbcbhkaehvcbhOinakaiavclfydbcdtfydbgHaiavcwfydbcdtfydbgA9haiavydbcdtfydbgXaH9haXaA9hGGfhkavcxfhvaOcifgOad6mbkkarci9UhQdndnaz:Z:rJbbbZMgw:lJbbb9p9DTmbaw:Ohvxekcjjjj94hvkaQ:ZhLcbhKc:bwhHdndninashYaHhXaPhrakg8AaQ9pmeaXar9Rcd9imeavaXcufavaX9iEarcefavar9kEhzdnalTmbazcuf:YhwdnaoTmbcbhOaihPaxhvindndnaoaOfRbbceGTmbaOcjjjjlVhHxekdndnavclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhHxekcjjjj94hHkaHcqthHdndnavcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohsxekcjjjj94hskaHasVhHdndnavIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohsxekcjjjj94hskaHascCtVhHkaPaHBdbaPclfhPavcxfhvalaOcefgO9hmbxdkkaxhvaihOalhPindndnavIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhHxekcjjjj94hHkaHcCthHdndnavclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohsxekcjjjj94hskascqtaHVhHdndnavcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohsxekcjjjj94hskaOaHasVBdbavcxfhvaOclfhOaPcufgPmbkkcbhOdnadTmbaehvcbhPinaOaiavclfydbcdtfydbgHaiavcwfydbcdtfydbgs9haiavydbcdtfydbgAaH9haAas9hGGfhOavcxfhvaPcifgPad6mbkkaYhsaOhkaXhHazhPdnaOaQ9nmbaOhsa8AhkazhHarhPkdndnaKcl0mbdnaY:Zgwa8A:ZgC:taz:YgEar:Y:tg3aEaX:Y:tg5aO:Zg8EaL:tNNNawaL:ta5NaCa8E:tNaCaL:ta3Na8Eaw:tNM:vaEMJbbbZMgw:lJbbb9p9DTmbaw:Ohvxdkcjjjj94hvxekaPaHfcd9ThvkaKcefgKcs9hmbxdkka8AhkarhPkdndndnakmbJbbjZhwcbhicdhvaDmexdkalcd4alfhHcehOinaOgvcethOavaH6mbkcbhOaqcuavcdtgravcFFFFi0Ecbyd1:jjjbHjjjjbbgzBdCaqciBd2aqamcbyd1:jjjbHjjjjbbgXBdKaqclBd2dndndndnalTmbaPcuf:YhwaoTmecbhOaihHaxhPindndnaoaOfRbbceGTmbaOcjjjjlVhsxekdndnaPclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohsxekcjjjj94hskascqthsdndnaPcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkasaAVhsdndnaPIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkasaAcCtVhskaHasBdbaHclfhHaPcxfhPalaOcefgO9hmbxikkazcFearz:rjjjb8AcbhrcbhvxdkaxhOaihPalhHindndnaOIdbawNJbbbZMgC:lJbbb9p9DTmbaC:Ohsxekcjjjj94hskascCthsdndnaOclfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkaAcqtasVhsdndnaOcwfIdbawNJbbbZMgC:lJbbb9p9DTmbaC:OhAxekcjjjj94hAkaPasaAVBdbaOcxfhOaPclfhPaHcufgHmbkkazcFearz:rjjjbhAavcufhocbhrcbhzindndndnaAaiazcdtgKfydbgHcm4aH7c:v;t;h;Ev2gvcs4av7aoGgPcdtfgsydbgOcuSmbcehvinaiaOcdtgOfydbaHSmdaPavfhOavcefhvaAaOaoGgPcdtfgsydbgOcu9hmbkkasazBdbarhvarcefhrxekaXaOfydbhvkaXaKfavBdbazcefgzal9hmbkcuarc8S2gOarc;D;O;f8U0EhvkcbhAaqavcbyd1:jjjbHjjjjbbgvBd3aqcvBd2avcbaOz:rjjjbhOdnadTmbaehiinJbbnnJbbjZaXaiydbgHcdtfydbgvaXaiclfydbgPcdtfydbgzSavaXaicwfydbgscdtfydbgKSGgoEh8FdnaxaPcx2fgPIdbaxaHcx2fgHIdbg8E:tgCaxascx2fgsIdlaHIdlg3:tgwNasIdba8E:tgEaPIdla3:tgaN:tgLaLNaaasIdwaHIdwg5:tghNawaPIdwa5:tgaN:tgwawNaaaENahaCN:tgCaCNMM:rgEJbbbb9ETmbaLaE:vhLaCaE:vhCawaE:vhwkaOavc8S2fgvavIdbawa8FaE:rNgEawNNgaMUdbavaCaEaCNghNggavIdlMUdlavaLaEaLNg8FNg8JavIdwMUdwavahawNghavIdxMUdxava8FawNg8KavIdzMUdzava8FaCNg8FavIdCMUdCavawaEaLa5Nawa8ENa3aCNMM:mg3Ng8ENgwavIdKMUdKavaCa8ENgCavId3MUd3avaLa8ENgLavIdaMUdaava8Ea3Ng8EavId8KMUd8KavaEavIdyMUdydnaombaOazc8S2fgvaaavIdbMUdbavagavIdlMUdlava8JavIdwMUdwavahavIdxMUdxava8KavIdzMUdzava8FavIdCMUdCavawavIdKMUdKavaCavId3MUd3avaLavIdaMUdaava8EavId8KMUd8KavaEavIdyMUdyaOaKc8S2fgvaaavIdbMUdbavagavIdlMUdlava8JavIdwMUdwavahavIdxMUdxava8KavIdzMUdzava8FavIdCMUdCavawavIdKMUdKavaCavId3MUd3avaLavIdaMUdaava8EavId8KMUd8KavaEavIdyMUdykaicxfhiaAcifgAad6mbkkcbhHaqcuarcdtgvarcFFFFi0Egicbyd1:jjjbHjjjjbbgPBdaaqcoBd2aqaicbyd1:jjjbHjjjjbbgiBd8KaqcrBd2aPcFeavz:rjjjbhzdnalTmbaXhPinJbbbbJbbjZaOaPydbgsc8S2fgvIdygw:vawJbbbb9BEavIdwaxcwfIdbgwNavIdzaxIdbgCNavIdaMgLaLMMawNavIdlaxclfIdbgLNavIdCawNavId3MgwawMMaLNavIdbaCNavIdxaLNavIdKMgwawMMaCNavId8KMMM:lNhwdndnazascdtgvfgsydbcuSmbaiavfIdbaw9ETmekasaHBdbaiavfawUdbkaPclfhPaxcxfhxalaHcefgH9hmbkkJbbbbhwdnarTmbinaiIdbgCawawaC9DEhwaiclfhiarcufgrmbkkakcd4akfhOcehiinaigvcethiavaO6mbkcbhiaqcuavcdtgOavcFFFFi0Ecbyd1:jjjbHjjjjbbgPBdyaPcFeaOz:rjjjbhsdnadTmbavcufhAcbhrcbhxindnaXaeaxcdtfgvydbcdtfydbgiaXavclfydbcdtfydbgOSmbaiaXavcwfydbcdtfydbgvSmbaOavSmbazavcdtfydbhHdndnazaOcdtfydbgvazaicdtfydbgi9pmbavaH9pmbaHhlaihoavhHxekdnaHai9pmbaHav9pmbaihlavhoxekavhlaHhoaihHkabarcx2fgvaHBdbavcwfaoBdbavclfalBdbdnasaoc:3F;N8N2alc:F:b:DD27aHc;D;O:B8J27aAGgOcdtfgvydbgicuSmbcehPinaPhvdnabaicx2fgiydbaH9hmbaiydlal9hmbaiydwaoSmikavcefhPasaOavfaAGgOcdtfgvydbgicu9hmbkkavarBdbarcefhrkaxcifgxad6mbkarci2hikdnaDmbcwhvxdkaw:rhwcwhvkaDawUdbkavcdthvdninavTmeavc98fgvaqcxffydbcbyd:m:jjjbH:bjjjbbxbkkaqc;Wbf8Kjjjjbaik:2ldwue9:8Jjjjjbc;Wb9Rgr8Kjjjjbcbhwarcxfcbc;Kbz:rjjjb8AdnabaeSmbabaeadcdtz:qjjjb8AkarcualcdtalcFFFFi0EgDcbyd1:jjjbHjjjjbbgqBdxarceBd2aqcbaialavcbarcxfz:djjjbcualcx2alc;v:Q;v:Qe0Ecbyd1:jjjbHjjjjbbhkarcxfaryd2gxcdtgmfakBdbaraxcefgPBd2akaialavcbcbz:ejjjb8AarcxfaPcdtfaDcbyd1:jjjbHjjjjbbgvBdbaraxcdfgiBd2arcxfaicdtfcuavalaeadaqz:fjjjbgecltaecjjjjiGEcbyd1:jjjbHjjjjbbgiBdbaiaeavakalz:gjjjbdnadTmbaoaoNhocbhwabhlcbhkindnaiavalydbgecdtfydbcdtfIdbao9ETmbalclf8PdbhsabawcdtfgqaeBdbaqclfas83dbawcifhwkalcxfhlakcifgkad6mbkkaxcifhlamarcxffcwfhkdninalTmeakydbcbyd:m:jjjbH:bjjjbbakc98fhkalcufhlxbkkarc;Wbf8Kjjjjbawk:FCoDud99rue99iul998Jjjjjbc;Wb9Rgw8KjjjjbdndnarmbcbhDxekawcxfcbc;Kbz:rjjjb8Aawcuadcx2adc;v:Q;v:Qe0Ecbyd1:jjjbHjjjjbbgqBdxawceBd2aqaeadaicbcbz:ejjjb8AawcuadcdtadcFFFFi0Egkcbyd1:jjjbHjjjjbbgxBdzawcdBd2adcd4adfhmceheinaegicetheaiam6mbkcbhPawcuaicdtgsaicFFFFi0Ecbyd1:jjjbHjjjjbbgzBdCawciBd2dndnar:ZgH:rJbbbZMgO:lJbbb9p9DTmbaO:Ohexekcjjjj94hekaicufhAc:bwhmcbhCadhXcbhQinaChLaeamgKcufaeaK9iEaPgDcefaeaD9kEhYdndnadTmbaYcuf:YhOaqhiaxheadhmindndnaiIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhCxekcjjjj94hCkaCcCthCdndnaiclfIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhExekcjjjj94hEkaEcqtaCVhCdndnaicwfIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhExekcjjjj94hEkaeaCaEVBdbaicxfhiaeclfheamcufgmmbkazcFeasz:rjjjbh3cbh5cbhPindna3axaPcdtfydbgCcm4aC7c:v;t;h;Ev2gics4ai7aAGgmcdtfgEydbgecuSmbaeaCSmbcehiina3amaifaAGgmcdtfgEydbgecuSmeaicefhiaeaC9hmbkkaEaCBdba5aecuSfh5aPcefgPad9hmbxdkkazcFeasz:rjjjb8Acbh5kaDaYa5ar0giEhPaLa5aiEhCdna5arSmbaYaKaiEgmaP9Rcd9imbdndnaQcl0mbdnaX:ZgOaL:Zg8A:taY:Yg8EaD:Y:tg8Fa8EaK:Y:tgaa5:ZghaH:tNNNaOaH:taaNa8Aah:tNa8AaH:ta8FNahaO:tNM:va8EMJbbbZMgO:lJbbb9p9DTmbaO:Ohexdkcjjjj94hexekaPamfcd9Theka5aXaiEhXaQcefgQcs9hmekkdndnaCmbcihicbhDxekcbhiawakcbyd1:jjjbHjjjjbbg5BdKawclBd2aPcuf:Yh8AdndnadTmbaqhiaxheadhmindndnaiIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhCxekcjjjj94hCkaCcCthCdndnaiclfIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhExekcjjjj94hEkaEcqtaCVhCdndnaicwfIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhExekcjjjj94hEkaeaCaEVBdbaicxfhiaeclfheamcufgmmbkazcFeasz:rjjjbh3cbhDcbhYindndndna3axaYcdtgKfydbgCcm4aC7c:v;t;h;Ev2gics4ai7aAGgmcdtfgEydbgecuSmbcehiinaxaecdtgefydbaCSmdamaifheaicefhia3aeaAGgmcdtfgEydbgecu9hmbkkaEaYBdbaDhiaDcefhDxeka5aefydbhika5aKfaiBdbaYcefgYad9hmbkcuaDc32giaDc;j:KM;jb0EhexekazcFeasz:rjjjb8AcbhDcbhekawaecbyd1:jjjbHjjjjbbgeBd3awcvBd2aecbaiz:rjjjbhEavcd4hKdnadTmbdnalTmbaKcdth3a5hCaqhealhmadhAinaEaCydbc32fgiaeIdbaiIdbMUdbaiaeclfIdbaiIdlMUdlaiaecwfIdbaiIdwMUdwaiamIdbaiIdxMUdxaiamclfIdbaiIdzMUdzaiamcwfIdbaiIdCMUdCaiaiIdKJbbjZMUdKaCclfhCaecxfheama3fhmaAcufgAmbxdkka5hmaqheadhCinaEamydbc32fgiaeIdbaiIdbMUdbaiaeclfIdbaiIdlMUdlaiaecwfIdbaiIdwMUdwaiaiIdxJbbbbMUdxaiaiIdzJbbbbMUdzaiaiIdCJbbbbMUdCaiaiIdKJbbjZMUdKamclfhmaecxfheaCcufgCmbkkdnaDTmbaEhiaDheinaiaiIdbJbbbbJbbjZaicKfIdbgO:vaOJbbbb9BEgONUdbaiclfgmaOamIdbNUdbaicwfgmaOamIdbNUdbaicxfgmaOamIdbNUdbaiczfgmaOamIdbNUdbaicCfgmaOamIdbNUdbaic3fhiaecufgembkkcbhCawcuaDcdtgYaDcFFFFi0Egicbyd1:jjjbHjjjjbbgeBdaawcoBd2awaicbyd1:jjjbHjjjjbbg3Bd8KaecFeaYz:rjjjbhxdnadTmbJbbjZJbbjZa8A:vaPceSEaoNgOaONh8AaKcdthPalheina8Aaec;81jjbalEgmIdwaEa5ydbgAc32fgiIdC:tgOaONamIdbaiIdx:tgOaONamIdlaiIdz:tgOaONMMNaqcwfIdbaiIdw:tgOaONaqIdbaiIdb:tgOaONaqclfIdbaiIdl:tgOaONMMMhOdndnaxaAcdtgifgmydbcuSmba3aifIdbaO9ETmekamaCBdba3aifaOUdbka5clfh5aqcxfhqaeaPfheadaCcefgC9hmbkkabaxaYz:qjjjb8AcrhikaicdthiinaiTmeaic98fgiawcxffydbcbyd:m:jjjbH:bjjjbbxbkkawc;Wbf8KjjjjbaDk:Ydidui99ducbhi8Jjjjjbca9Rglczfcwfcbyd11jjbBdbalcb8Pdj1jjb83izalcwfcbydN1jjbBdbalcb8Pd:m1jjb83ibdndnaembJbbjFhvJbbjFhoJbbjFhrxekadcd4cdthwincbhdinalczfadfgDabadfIdbgvaDIdbgoaoav9EEUdbaladfgDavaDIdbgoaoav9DEUdbadclfgdcx9hmbkabawfhbaicefgiae9hmbkalIdwalIdK:thralIdlalIdC:thoalIdbalIdz:thvkJbbbbavavJbbbb9DEgvaoaoav9DEgvararav9DEk9DeeuabcFeaicdtz:rjjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk9teiucbcbyd:q:jjjbgeabcifc98GfgbBd:q:jjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;teeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk:3eedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdxaialBdwaialBdlaialBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd:q:jjjbgeabcrfc94GfgbBd:q:jjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd:q:jjjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd:q:jjjbfgdBd:q:jjjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akkk:Iedbcjwk1eFFuuFFuuFFuuFFuFFFuFFFuFbbbbbbbbebbbdbbbbbbbebbbebbbdbbbbbbbbbbbeeeeebebbebbebebbbeebbbbbbbbbbbbeeeeeebebbeeebeebbbbebebbbbbbbbbbbbbbbbbbc1Dkxebbbdbbb:GNbb"),{}).then(function(e){(B=e.instance).exports.__wasm_call_ctors()});function I(e){if(!e)throw new Error("Assertion failed")}function Q(e){return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}function C(e,i,t,E,o,r,n,s){var c=B.exports.sbrk,d=c(4*s),D=c(t*E),h=c(t*r),u=new Uint8Array(B.exports.memory.buffer);u.set(Q(i),D),o&&u.set(Q(o),h);var f=e(d,D,t,E,h,r,n,s);new Uint8Array(B.exports.memory.buffer);var R=new Uint32Array(f);return Q(R).set(u.subarray(d,d+4*f)),c(d-c(0)),R}var a={LockBorder:1,Sparse:2,ErrorAbsolute:4,Prune:8,Regularize:16,Permissive:32,_InternalDebug:1<<30}})(),function(){var B,A=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var g=WebAssembly.instantiate(function(a){for(var e=new Uint8Array(a.length),i=0;i<a.length;++i){var t=a.charCodeAt(i);e[i]=t>96?t-97:t>64?t-39:t+4}var E=0;for(i=0;i<a.length;++i)e[E++]=e[i]<60?A[e[i]]:64*(e[i]-60)+e[++i];return e.buffer.slice(0,E)}("b9H79TebbbeVx9Geueu9Geub9Gbb9Giuuueu9Gmuuuuuuuuuuu9999eu9Gvuuuuueu9Gwuuuuuuuub9Gxuuuuuuuuuuuueu9Gkuuuuuuuuuu99eu9Gouuuuuub9Gruuuuuuub9GluuuubiAOdilvorwDqqDkbiibeilve9Weiiviebeoweuec;G:Odkr;qeDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9I919P29K9nW79O2Wt79c9V919U9KbeX9TW79O9V9Wt9F9I919P29K9nW79O2Wt7bo39TW79O9V9Wt9F9J9V9T9W91tWJ2917tWV9c9V919U9K7br39TW79O9V9Wt9F9J9V9T9W91tW9nW79O2Wt9c9V919U9K7bDE9TW79O9V9Wt9F9J9V9T9W91tW9t9W9OWVW9c9V919U9K7bqL9TW79O9V9Wt9F9V9Wt9P9T9P96W9nW79O2Wtbkl79IV9RbxDwebcekdszq:x9DOdbkIbabaec9:fgefcufae9Ugeabci9Uadfcufad9Ugbaeab0Ek:w8KDPue99eux99dui99euo99iu8Jjjjjbc:WD9Rgm8KjjjjbdndnalmbcbhPxekamc:Cwfcbc;Kbz:ojjjb8Adndnalcb9imbaoal9nmbamcuaocdtaocFFFFi0Egscbyd;u1jjbHjjjjbbgzBd:CwamceBd;8wamascbyd;u1jjbHjjjjbbgHBd:GwamcdBd;8wamcualcdtalcFFFFi0Ecbyd;u1jjbHjjjjbbgOBd:KwamciBd;8waihsalhAinazasydbcdtfcbBdbasclfhsaAcufgAmbkaihsalhAinazasydbcdtfgCaCydbcefBdbasclfhsaAcufgAmbkaihsalhCcbhXindnazasydbcdtgQfgAydbcb9imbaHaQfaXBdbaAaAydbgQcjjjj94VBdbaQaXfhXkasclfhsaCcufgCmbkalci9UhLdnalci6mbcbhsaihAinaAcwfydbhCaAclfydbhXaHaAydbcdtfgQaQydbgQcefBdbaOaQcdtfasBdbaHaXcdtfgXaXydbgXcefBdbaOaXcdtfasBdbaHaCcdtfgCaCydbgCcefBdbaOaCcdtfasBdbaAcxfhAaLascefgs9hmbkkaihsalhAindnazasydbcdtgCfgXydbgQcu9kmbaXaQcFFFFrGgQBdbaHaCfgCaCydbaQ9RBdbkasclfhsaAcufgAmbxdkkamcuaocdtgsaocFFFFi0EgAcbyd;u1jjbHjjjjbbgzBd:CwamceBd;8wamaAcbyd;u1jjbHjjjjbbgHBd:GwamcdBd;8wamcualcdtalcFFFFi0Ecbyd;u1jjbHjjjjbbgOBd:KwamciBd;8wazcbasz:ojjjbhXalci9UhLaihsalhAinaXasydbcdtfgCaCydbcefBdbasclfhsaAcufgAmbkdnaoTmbcbhsaHhAaXhCaohQinaAasBdbaAclfhAaCydbasfhsaCclfhCaQcufgQmbkkdnalci6mbcbhsaihAinaAcwfydbhCaAclfydbhQaHaAydbcdtfgKaKydbgKcefBdbaOaKcdtfasBdbaHaQcdtfgQaQydbgQcefBdbaOaQcdtfasBdbaHaCcdtfgCaCydbgCcefBdbaOaCcdtfasBdbaAcxfhAaLascefgs9hmbkkaoTmbcbhsaohAinaHasfgCaCydbaXasfydb9RBdbasclfhsaAcufgAmbkkamaLcbyd;u1jjbHjjjjbbgsBd:OwamclBd;8wascbaLz:ojjjbhYamcuaLcK2alcjjjjd0Ecbyd;u1jjbHjjjjbbg8ABd:SwamcvBd;8wJbbbbhEdnalci6g3mbarcd4hKaihAa8AhsaLhrJbbbbh5inavaAclfydbaK2cdtfgCIdlh8EavaAydbaK2cdtfgXIdlhEavaAcwfydbaK2cdtfgQIdlh8FaCIdwhaaXIdwhhaQIdwhgasaCIdbg8JaXIdbg8KMaQIdbg8LMJbbnn:vUdbasclfaXIdlaCIdlMaQIdlMJbbnn:vUdbaQIdwh8MaCIdwh8NaXIdwhyascxfa8EaE:tg8Eagah:tggNa8FaE:tg8Faaah:tgaN:tgEJbbbbJbbjZa8Ja8K:tg8Ja8FNa8La8K:tg8Ka8EN:tghahNaEaENaaa8KNaga8JN:tgEaENMM:rg8K:va8KJbbbb9BEg8ENUdbasczfaEa8ENUdbascCfaha8ENUdbascwfa8Maya8NMMJbbnn:vUdba5a8KMh5aAcxfhAascKfhsarcufgrmbka5aL:Z:vJbbbZNhEkamcuaLcdtalcFFFF970Ecbyd;u1jjbHjjjjbbgCBd:WwamcoBd;8waEaq:ZNhEdna3mbcbhsaChAinaAasBdbaAclfhAaLascefgs9hmbkkaE:rhhcuh8PamcuaLcltalcFFFFd0Ecbyd;u1jjbHjjjjbbgIBd:0wamcrBd;8wcbaIa8AaCaLz:djjjb8AJFFuuhyJFFuuh8RJFFuuh8Sdnalci6gXmbJFFuuh8Sa8AhsaLhAJFFuuh8RJFFuuhyinascwfIdbgEayayaE9EEhyasclfIdbgEa8Ra8RaE9EEh8RasIdbgEa8Sa8SaE9EEh8SascKfhsaAcufgAmbkkahJbbbZNhgamaocetgscuaocu9kEcbyd;u1jjbHjjjjbbgABd:4waAcFeasz:ojjjbhCdnaXmbcbhAJFFuuhEa8Ahscuh8PinascwfIdbay:tghahNasIdba8S:tghahNasclfIdba8R:tghahNMM:rghaEa8PcuSahaE9DVgXEhEaAa8PaXEh8PascKfhsaLaAcefgA9hmbkkamczfcbcjwz:ojjjb8Aamcwf9cb83ibam9cb83ibagaxNhRJbbjZak:th8Ncbh8UJbbbbh8VJbbbbh8WJbbbbh8XJbbbbh8YJbbbbh8ZJbbbbh80cbh81cbhPinJbbbbhEdna8UTmbJbbjZa8U:Z:vhEkJbbbbhhdna80a80Na8Ya8YNa8Za8ZNMMg8KJbbbb9BmbJbbjZa8K:r:vhhka8XaENh5a8WaENh8Fa8VaENhaa8PhQdndndndndna8UaPVTmbamydwgBTmea80ahNh8Ja8ZahNh8La8YahNh8Maeamydbcdtfh83cbh3JFFuuhEcvhXcuhQindnaza83a3cdtfydbcdtgsfydbgvTmbaOaHasfydbcdtfhAindndnaCaiaAydbgKcx2fgsclfydbgrcetf8Vebcs4aCasydbgLcetf8Vebcs4faCascwfydbglcetf8Vebcs4fgombcbhsxekcehsazaLcdtfydbgLceSmbcehsazarcdtfydbgrceSmbcehsazalcdtfydbglceSmbdnarcdSaLcdSfalcdSfcd6mbaocefhsxekaocdfhskdnasaX9kmba8AaKcK2fgLIdwa5:thhaLIdla8F:th8KaLIdbaa:th8EdndnakJbbbb9DTmba8E:lg8Ea8K:lg8Ka8Ea8K9EEg8Kah:lgha8Kah9EEag:vJbbjZMhhxekahahNa8Ea8ENa8Ka8KNMM:rag:va8NNJbbjZMJ9VO:d86JbbjZaLIdCa8JNaLIdxa8MNa8LaLIdzNMMakN:tghahJ9VO:d869DENhhkaKaQasaX6ahaE9DVgLEhQasaXaLEhXahaEaLEhEkaAclfhAavcufgvmbkka3cefg3aB9hmbkkaQcu9hmekama5Ud:ODama8FUd:KDamaaUd:GDamcuBd:qDamcFFF;7rBdjDaIcba8AaYamc:GDfakJbbbb9Damc:qDfamcjDfz:ejjjbamyd:qDhQdndnaxJbbbb9ETmba8UaD6mbaQcuSmeceh3amIdjDaR9EmixdkaQcu9hmekdna8UTmbdnamydlgza8Uci2fgsciGTmbadasfcba8Uazcu7fciGcefz:ojjjb8AkabaPcltfgzam8Pib83dbazcwfamcwf8Pib83dbaPcefhPkc3hzinazc98Smvamc:Cwfazfydbcbyd;y1jjbH:bjjjbbazc98fhzxbkkcbh3a8Uaq9pmbamydwaCaiaQcx2fgsydbcetf8Vebcs4aCascwfydbcetf8Vebcs4faCasclfydbcetf8Vebcs4ffaw9nmekcbhscbhAdna81TmbcbhAamczfhXinamczfaAcdtfaXydbgLBdbaXclfhXaAaYaLfRbbTfhAa81cufg81mbkkamydwhlamydbhXam9cu83i:GDam9cu83i:ODam9cu83i:qDam9cu83i:yDaAc;8eaAclfc:bd6Eh81inamcjDfasfcFFF;7rBdbasclfgscz9hmbka81cdthBdnalTmbaeaXcdtfhocbhrindnazaoarcdtfydbcdtgsfydbgvTmbaOaHasfydbcdtfhAcuhLcuhsinazaiaAydbgKcx2fgXclfydbcdtfydbazaXydbcdtfydbfazaXcwfydbcdtfydbfgXasaXas6gXEhsaKaLaXEhLaAclfhAavcufgvmbkaLcuSmba8AaLcK2fgAIdway:tgEaENaAIdba8S:tgEaENaAIdla8R:tgEaENMM:rhEcbhAindndnasamc:qDfaAfgvydbgX6mbasaX9hmeaEamcjDfaAfIdb9FTmekavasBdbamc:GDfaAfaLBdbamcjDfaAfaEUdbxdkaAclfgAcz9hmbkkarcefgral9hmbkkamczfaBfhLcbhscbhAindnamc:GDfasfydbgXcuSmbaLaAcdtfaXBdbaAcefhAkasclfgscz9hmbkaAa81fg81TmbJFFuuhhcuhKamczfhsa81hvcuhLina8AasydbgXcK2fgAIdway:tgEaENaAIdba8S:tgEaENaAIdla8R:tgEaENMM:rhEdndnazaiaXcx2fgAclfydbcdtfydbazaAydbcdtfydbfazaAcwfydbcdtfydbfgAaL6mbaAaL9hmeaEah9DTmekaEhhaAhLaXhKkasclfhsavcufgvmbkaKcuSmbaKhQkdnamaiaQcx2fgrydbarclfydbarcwfydbaCabaeadaPawaqa3z:fjjjbTmbaPcefhPJbbbbh8VJbbbbh8WJbbbbh8XJbbbbh8YJbbbbh8ZJbbbbh80kcbhXinaOaHaraXcdtfydbcdtgAfydbcdtfgKhsazaAfgvydbgLhAdnaLTmbdninasydbaQSmeasclfhsaAcufgATmdxbkkasaKaLcdtfc98fydbBdbavavydbcufBdbkaXcefgXci9hmbka8AaQcK2fgsIdbhEasIdlhhasIdwh8KasIdxh8EasIdzh5asIdCh8FaYaQfce86bba80a8FMh80a8Za5Mh8Za8Ya8EMh8Ya8Xa8KMh8Xa8WahMh8Wa8VaEMh8Vamydxh8Uxbkkamc:WDf8KjjjjbaPk;Vvivuv99lu8Jjjjjbca9Rgv8Kjjjjbdndnalcw0mbaiydbhoaeabcitfgralcdtcufBdlaraoBdbdnalcd6mbaiclfhoalcufhwarcxfhrinaoydbhDarcuBdbarc98faDBdbarcwfhraoclfhoawcufgwmbkkalabfhrxekcbhDavczfcwfcbBdbav9cb83izavcwfcbBdbav9cb83ibJbbjZhqJbbjZhkinadaiaDcdtfydbcK2fhwcbhrinavczfarfgoawarfIdbgxaoIdbgm:tgPakNamMgmUdbavarfgoaPaxam:tNaoIdbMUdbarclfgrcx9hmbkJbbjZaqJbbjZMgq:vhkaDcefgDal9hmbkcbhoadcbcecdavIdlgxavIdwgm9GEgravIdbgPam9GEaraPax9GEgscdtgrfhzavczfarfIdbhxaihralhwinaiaocdtfgDydbhHaDarydbgOBdbaraHBdbarclfhraoazaOcK2fIdbax9Dfhoawcufgwmbkaeabcitfhrdndnaocv6mbaoalc98f6mekaraiydbBdbaralcdtcufBdlaiclfhoalcufhwarcxfhrinaoydbhDarcuBdbarc98faDBdbarcwfhraoclfhoawcufgwmbkalabfhrxekaraxUdbararydlc98GasVBdlabcefaeadaiaoz:djjjbhwararydlciGawabcu7fcdtVBdlawaeadaiaocdtfalao9Rz:djjjbhrkavcaf8Kjjjjbark:;idiud99dndnabaecitfgwydlgDciGgqciSmbinabcbaDcd4gDalaqcdtfIdbawIdb:tgkJbbbb9FEgwaecefgefadaialavaoarz:ejjjbak:larIdb9FTmdabawaD7aefgecitfgwydlgDciGgqci9hmbkkabaecitfgeclfhbdnavmbcuhwindnaiaeydbgDfRbbmbadaDcK2fgqIdwalIdw:tgkakNaqIdbalIdb:tgkakNaqIdlalIdl:tgkakNMM:rgkarIdb9DTmbarakUdbaoaDBdbkaecwfheawcefgwabydbcd46mbxdkkcuhwindnaiaeydbgDfRbbmbadaDcK2fgqIdbalIdb:t:lgkaqIdlalIdl:t:lgxakax9EEgkaqIdwalIdw:t:lgxakax9EEgkarIdb9DTmbarakUdbaoaDBdbkaecwfheawcefgwabydbcd46mbkkk;llevudnabydwgxaladcetfgm8Vebcs4alaecetfgP8Vebgscs4falaicetfgz8Vebcs4ffaD0abydxaq9pVakVgDce9hmbavawcltfgxab8Pdb83dbaxcwfabcwfgx8Pdb83dbdnaxydbgqTmbaoabydbcdtfhxaqhsinalaxydbcetfcFFi87ebaxclfhxascufgsmbkkdnabydxglci2gsabydlgxfgkciGTmbarakfcbalaxcu7fciGcefz:ojjjb8Aabydxci2hsabydlhxabydwhqkab9cb83dwababydbaqfBdbabascifc98GaxfBdlaP8Vebhscbhxkdnascztcz91cu9kmbabaxcefBdwaPax87ebaoabydbcdtfaxcdtfaeBdbkdnam8Uebcu9kmbababydwgxcefBdwamax87ebaoabydbcdtfaxcdtfadBdbkdnaz8Uebcu9kmbababydwgxcefBdwazax87ebaoabydbcdtfaxcdtfaiBdbkarabydlfabydxci2faPRbb86bbarabydlfabydxci2fcefamRbb86bbarabydlfabydxci2fcdfazRbb86bbababydxcefBdxaDk8LbabaeadaialavaoarawaDaDaqJbbbbz:cjjjbk;Nkovud99euv99eul998Jjjjjbc:W;ae9Rgo8KjjjjbdndnadTmbavcd4hrcbhwcbhDindnaiaeclfydbar2cdtfgvIdbaiaeydbar2cdtfgqIdbgk:tgxaiaecwfydbar2cdtfgmIdlaqIdlgP:tgsNamIdbak:tgzavIdlaP:tgPN:tgkakNaPamIdwaqIdwgH:tgONasavIdwaH:tgHN:tgPaPNaHazNaOaxN:tgxaxNMM:rgsJbbbb9Bmbaoc:W:qefawcx2fgAakas:vUdwaAaxas:vUdlaAaPas:vUdbaoc8Wfawc8K2fgAaq8Pdb83dbaAav8Pdb83dxaAam8Pdb83dKaAcwfaqcwfydbBdbaAcCfavcwfydbBdbaAcafamcwfydbBdbawcefhwkaecxfheaDcifgDad6mbkab9cb83dbabcyf9cb83dbabcaf9cb83dbabcKf9cb83dbabczf9cb83dbabcwf9cb83dbawTmeaocbBd8Sao9cb83iKao9cb83izaoczfaoc8Wfawci2cxaoc8Sfcbcrz1jjjbaoIdKhCaoIdChXaoIdzhQao9cb83iwao9cb83ibaoaoc:W:qefawcxaoc8Sfcbciz1jjjbJbbjZhkaoIdwgPJbbbbJbbjZaPaPNaoIdbgPaPNaoIdlgsasNMM:rgx:vaxJbbbb9BEgzNhxasazNhsaPazNhzaoc:W:qefheawhvinaecwfIdbaxNaeIdbazNasaeclfIdbNMMgPakaPak9DEhkaecxfheavcufgvmbkabaCUdwabaXUdlabaQUdbabaoId3UdxdndnakJ;n;m;m899FmbJbbbbhPaoc:W:qefheaoc8WfhvinaCavcwfIdb:taecwfIdbgHNaQavIdb:taeIdbgONaXavclfIdb:taeclfIdbgLNMMaxaHNazaONasaLNMM:vgHaPaHaP9EEhPavc8KfhvaecxfheawcufgwmbkabaxUd8KabasUdaabazUd3abaCaxaPN:tUdKabaXasaPN:tUdCabaQazaPN:tUdzabJbbjZakakN:t:rgkUdydndnaxJbbj:;axJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;axJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohexekcjjjj94hekabae86b8UdndnasJbbj:;asJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;asJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohvxekcjjjj94hvkabav86bRdndnazJbbj:;azJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;azJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohqxekcjjjj94hqkabaq86b8SdndnaecKtcK91:YJbb;:9c:vax:t:lavcKtcK91:YJbb;:9c:vas:t:laqcKtcK91:YJbb;:9c:vaz:t:lakMMMJbb;:9cNJbbjZMgk:lJbbb9p9DTmbak:Ohexekcjjjj94hekaecFbaecFb9iEhexekabcjjj;8iBdycFbhekabae86b8Vxekab9cb83dbabcyf9cb83dbabcaf9cb83dbabcKf9cb83dbabczf9cb83dbabcwf9cb83dbkaoc:W;aef8Kjjjjbk;Iwwvul99iud99eue99eul998Jjjjjbcje9Rgr8Kjjjjbavcd4hwaicd4hDdndnaoTmbarc;abfcbaocdtgvz:ojjjb8Aarc;Gbfcbavz:ojjjb8AarhvarcafhiaohqinavcFFF97BdbaicFFF;7rBdbaiclfhiavclfhvaqcufgqmbkdnadTmbcbhkinaeakaD2cdtfgvIdwhxavIdlhmavIdbhPalakaw2cdtfIdbhsarc;abfhzarhiarc;GbfhHarcafhqcj1jjbhvaohOinasavcwfIdbaxNavIdbaPNavclfIdbamNMMgAMhCakhXdnaAas:tgAaqIdbgQ9DgLmbaHydbhXkaHaXBdbakhXdnaCaiIdbgK9EmbazydbhXaKhCkazaXBdbaiaCUdbaqaAaQaLEUdbavcxfhvaqclfhqaHclfhHaiclfhiazclfhzaOcufgOmbkakcefgkad9hmbkkadThkJbbbbhCcbhXarc;abfhvarc;Gbfhicbhqinalavydbgzaw2cdtfIdbalaiydbgHaw2cdtfIdbaeazaD2cdtfgzIdwaeaHaD2cdtfgHIdw:tgsasNazIdbaHIdb:tgsasNazIdlaHIdl:tgsasNMM:rMMgsaCasaC9EgzEhCaqaXazEhXaiclfhiavclfhvaoaqcefgq9hmbkaCJbbbZNhKxekadThkcbhXJbbbbhKkJbbbbhCdnaearc;abfaXcdtgifydbgqaD2cdtfgvIdwaearc;GbfaifydbgzaD2cdtfgiIdwgm:tgsasNavIdbaiIdbgY:tgAaANavIdlaiIdlgP:tgQaQNMM:rgxJbbbb9ETmbaxalaqaw2cdtfIdbMalazaw2cdtfIdb:taxaxM:vhCkasaCNamMhmaQaCNaPMhPaAaCNaYMhYdnakmbaDcdthvawcdthiindnalIdbg8AaecwfIdbam:tgCaCNaeIdbaY:tgsasNaeclfIdbaP:tgAaANMM:rgQMgEaK9ETmbJbbbbhxdnaQJbbbb9ETmbaEaK:taQaQM:vhxkaxaCNamMhmaxaANaPMhPaxasNaYMhYa8AaKaQMMJbbbZNhKkaeavfhealaifhladcufgdmbkkabaKUdxabamUdwabaPUdlabaYUdbarcjef8Kjjjjbkjeeiu8Jjjjjbcj8W9Rgr8Kjjjjbaici2hwdnaiTmbawceawce0EhDarhiinaiaeadRbbcdtfydbBdbadcefhdaiclfhiaDcufgDmbkkabarawaladaoz:hjjjbarcj8Wf8Kjjjjbk:Reeeu8Jjjjjbca9Rgo8Kjjjjbab9cb83dbabcyf9cb83dbabcaf9cb83dbabcKf9cb83dbabczf9cb83dbabcwf9cb83dbdnadTmbaocbBd3ao9cb83iwao9cb83ibaoaeadaialaoc3falEavcbalEcrz1jjjbabao8Pib83dbabao8Piw83dwkaocaf8Kjjjjbk:3lequ8JjjjjbcjP9Rgl8Kjjjjbcbhvalcjxfcbaiz:ojjjb8AdndnadTmbcjehoaehrincuhwarhDcuhqavhkdninawakaoalcjxfaDcefRbbfRbb9RcFeGci6aoalcjxfaDRbbfRbb9RcFeGci6faoalcjxfaDcdfRbbfRbb9RcFeGci6fgxaq9mgmEhwdnammbaxce0mdkaxaqaxaq9kEhqaDcifhDadakcefgk9hmbkkaeawci2fgDcdfRbbhqaDcefRbbhxaDRbbhkaeavci2fgDcifaDawav9Rci2z:rjjjb8Aakalcjxffaocefgo86bbaxalcjxffao86bbaDcdfaq86bbaDcefax86bbaDak86bbaqalcjxffao86bbarcifhravcefgvad9hmbkalcFeaicetz:ojjjbhoadci2gDceaDce0EhqcbhxindnaoaeRbbgkcetfgw8UebgDcu9kmbawax87ebaocjlfaxcdtfabakcdtfydbBdbaxhDaxcefhxkaeaD86bbaecefheaqcufgqmbkaxcdthDxekcbhDkabalcjlfaDz:njjjb8AalcjPf8Kjjjjbk9teiucbcbyd;C1jjbgeabcifc98GfgbBd;C1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;teeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk:3eedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdxaialBdwaialBdlaialBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd;C1jjbgeabcrfc94GfgbBd;C1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd;C1jjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd;C1jjbfgdBd;C1jjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akk:;Deludndndnadch9pmbabaeSmdaeabadfgi9Rcbadcet9R0mekabaead;8qbbxekaeab7ciGhldndndnabae9pmbdnalTmbadhvabhixikdnabciGmbadhvabhixdkadTmiabaeRbb86bbadcufhvdnabcefgiciGmbaecefhexdkavTmiabaeRbe86beadc9:fhvdnabcdfgiciGmbaecdfhexdkavTmiabaeRbd86bdadc99fhvdnabcifgiciGmbaecifhexdkavTmiabaeRbi86biabclfhiaeclfheadc98fhvxekdnalmbdnaiciGTmbadTmlabadcufgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc9:fgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc99fgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc98fgdfaeadfRbb86bbkadcl6mbdnadc98fgocd4cefciGgiTmbaec98fhlabc98fhvinavadfaladfydbBdbadc98fhdaicufgimbkkaocx6mbaec9Wfhvabc9WfhoinaoadfgicxfavadfglcxfydbBdbaicwfalcwfydbBdbaiclfalclfydbBdbaialydbBdbadc9Wfgdci0mbkkadTmdadhidnadciGglTmbaecufhvabcufhoadhiinaoaifavaifRbb86bbaicufhialcufglmbkkadcl6mdaec98fhlabc98fhvinavaifgecifalaifgdcifRbb86bbaecdfadcdfRbb86bbaecefadcefRbb86bbaeadRbb86bbaic98fgimbxikkavcl6mbdnavc98fglcd4cefcrGgdTmbavadcdt9RhvinaiaeydbBdbaeclfheaiclfhiadcufgdmbkkalc36mbinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaiaeydzBdzaiaeydCBdCaiaeydKBdKaiaeyd3Bd3aecafheaicafhiavc9Gfgvci0mbkkavTmbdndnavcrGgdmbavhlxekavc94GhlinaiaeRbb86bbaicefhiaecefheadcufgdmbkkavcw6mbinaiaeRbb86bbaiaeRbe86beaiaeRbd86bdaiaeRbi86biaiaeRbl86blaiaeRbv86bvaiaeRbo86boaiaeRbr86braicwfhiaecwfhealc94fglmbkkabkk9Tdbcjwk9ubbjZbbbbbbbbbbbbbbjZbbbbbbbbbbbbbbjZ86;nAZ86;nAZ86;nAZ86;nA:;86;nAZ86;nAZ86;nAZ86;nA:;86;nAZ86;nAZ86;nAZ86;nA:;bc;uwkxebbbdbbb9GNbb"),{}).then(function(a){(B=a.instance).exports.__wasm_call_ctors()});function I(a){if(!a)throw new Error("Assertion failed")}function Q(a){return new Uint8Array(a.buffer,a.byteOffset,a.byteLength)}function C(a){var e=new Float32Array(B.exports.memory.buffer,a,12);return{centerX:e[0],centerY:e[1],centerZ:e[2],radius:e[3],coneApexX:e[4],coneApexY:e[5],coneApexZ:e[6],coneAxisX:e[7],coneAxisY:e[8],coneAxisZ:e[9],coneCutoff:e[10]}}}();let Kg=0;class ZC{constructor(A){if(this.downloadParallelism=A.downloadParallelism==null?8:A.downloadParallelism,this.timeout=A.timeout!=null?A.timeout:5e3,this.renderer=A.renderer,this.zUpToYUpMatrix=new x.Matrix4,this.zUpToYUpMatrix.set(1,0,0,0,0,0,-1,0,0,1,0,0,0,0,0,1),this.maxCachedItems=100,this.proxy=A.proxy,A&&(this.meshCallback=A.meshCallback,this.pointsCallback=A.pointsCallback,A.maxCachedItems!=null&&(this.maxCachedItems=A.maxCachedItems)),this.gltfLoader=new $Q,this.gltfLoader.register(g=>({name:"KHR_spz_gaussian_splats_compression"})),A&&A.dracoLoader)this.gltfLoader.setDRACOLoader(A.dracoLoader),this.hasDracoLoader=!0;else{const g=new CC;g.setDecoderPath("https://storage.googleapis.com/ogc-3d-tiles/draco/"),this.dracoLoader=g,this.gltfLoader.setDRACOLoader(g),this.gltfLoader.hasDracoLoader=!0}if(A&&A.ktx2Loader)this.gltfLoader.setKTX2Loader(A.ktx2Loader),this.hasKTX2Loader=!0;else if(A&&A.renderer){const g=new rg;g.setTranscoderPath("https://storage.googleapis.com/ogc-3d-tiles/basis/").detectSupport(A.renderer),this.ktx2loader=g,this.gltfLoader.setKTX2Loader(g),this.gltfLoader.hasKTX2Loader=!0}this.gltfLoader.setMeshoptDecoder(XC),this.hasMeshOptDecoder=!0,this.b3dmDecoder=new XQ(this.gltfLoader),this.GLTFTileDecoder=new Ve(this.gltfLoader,this.renderer),this.cache=new WQ,this.register={},this.ready=[],this.downloads=[],this.nextReady=[],this.nextDownloads=[]}update(){const A=this;Kg<A.downloadParallelism&&A._download(),A._loadBatch()}_scheduleDownload(A){this.downloads.unshift(A)}_download(){do{if(this.nextDownloads.length==0&&(this._getNextDownloads(),this.nextDownloads.length==0))return;for(;this.nextDownloads.length>0;){const A=this.nextDownloads.shift();A&&A.shouldDoDownload()&&A.doDownload()}}while(Kg<this.downloadParallelism)}_meshReceived(A,g,I,Q,C,a,e){this.ready.unshift([A,g,I,Q,C,a,e])}_loadBatch(){for(this.nextReady.length==0&&this._getNextReady();this.nextReady.length>0;){const A=this.nextReady.shift();if(!A)return;const g=A[0],I=A[1],Q=A[2],C=g.get(Q);C&&I[Q]&&Object.keys(I[Q]).forEach(a=>{const e=I[Q][a];e&&(g.put(Q,e(C)),I[Q][a]=null)})}}_getNextDownloads(){let A=Number.POSITIVE_INFINITY,g=-1;for(let e=this.downloads.length-1;e>=0;e--)this.downloads[e].shouldDoDownload()?this.downloads[e].distanceFunction||this.nextDownloads.push(this.downloads.splice(e,1)[0]):this.downloads.splice(e,1);if(this.nextDownloads.length>0)return;let I,Q=0,C=Number.MAX_SAFE_INTEGER,a=-1;for(let e=this.downloads.length-1;e>=0;e--){const i=this.downloads[e].distanceFunction();i<=A&&(A=i,g=e),Q=Math.max(this.downloads[e].level),this.downloads[e].loadingStrategy!="IMMEDIATE"&&this.downloads[e].level<C&&(C=this.downloads[e].level,a=e)}if(Q>C+4?I=this.downloads.splice(a,1).pop():g>=0&&(I=this.downloads.splice(g,1).pop()),I){this.nextDownloads.push(I);const e=I.getSiblings();for(let i=this.downloads.length-1;i>=0;i--)e.map(t=>t.uuid).includes(this.downloads[i].uuid)&&this.nextDownloads.push(this.downloads.splice(i,1).pop())}}_getNextReady(){let A=Number.POSITIVE_INFINITY,g=-1;for(let I=this.ready.length-1;I>=0;I--)this.ready[I][3]||this.nextReady.push(this.ready.splice(I,1)[0]);if(!(this.nextReady.length>0)){for(let I=this.ready.length-1;I>=0;I--){const Q=this.ready[I][3]()*this.ready[I][5];Q<=A&&(A=Q,g=I)}if(g>=0){const I=this.ready.splice(g,1).pop();this.nextReady.push(I);const Q=I[4]();for(let C=this.ready.length-1;C>=0;C--)Q.map(a=>a.uuid).includes(this.ready[C][6])&&this.nextReady.push(this.ready.splice(C,1).pop())}}}get(A,g,I,Q,C,a,e,i,t,E,o,r){const n=this,s=_C(I),c=new AbortController;if(A.signal.addEventListener("abort",()=>{n.register[s]&&Object.keys(n.register[s]).length!=0||c.abort("user abort")}),!(I.includes(".b3dm")||I.includes(".json")||I.includes(".gltf")||I.includes(".glb")))return void console.error("the 3DTiles cache can only be used to load B3DM, gltf and json data");if(n.register[s]||(n.register[s]={}),n.register[s][g]&&console.error(" a tile should only be loaded once"),n.register[s][g]=Q,n.cache.get(s))this._meshReceived(n.cache,n.register,s,C,a,e,g);else{let d;I.includes(".b3dm")?d=()=>{var D;D=n.proxy?()=>fetch(n.proxy,{method:"POST",body:I,signal:c.signal}):()=>fetch(I,{signal:c.signal}),Kg++,D().then(h=>{if(!h.ok)throw console.error("could not load tile with path : "+I),new Error(`couldn't load "${I}". Request failed with status ${h.status} : ${h.statusText}`);return h.arrayBuffer()}).then(h=>this.b3dmDecoder.parseB3DM(h,u=>{n.meshCallback(u,o)},t,E)).then(h=>{n.cache.put(s,h),this._meshReceived(n.cache,n.register,s,C,a,e,g),n._checkSize()}).catch(h=>{}).finally(()=>{Kg--})}:I.includes(".glb")||I.includes(".gltf")?d=()=>{var D;D=n.proxy?()=>fetch(n.proxy,{method:"POST",body:I,signal:c.signal}):()=>fetch(I,{signal:c.signal}),Kg++,D().then(h=>{if(!h.ok)throw console.error("could not load tile with path : "+I),new Error(`couldn't load "${I}". Request failed with status ${h.status} : ${h.statusText}`);return h.arrayBuffer()}).then(h=>this.GLTFTileDecoder.parseSplats(h,t,E,r)).then(h=>{h.isSplatsData||(t&&h.applyMatrix4(this.zUpToYUpMatrix),h.traverse(u=>{u.isMesh&&(E&&u.applyMatrix4(this.zUpToYUpMatrix),n.meshCallback&&n.meshCallback(u,o)),u.isPoints&&n.pointsCallback&&n.pointsCallback(u,o)})),n.cache.put(s,h),n._meshReceived(n.cache,n.register,s,C,a,e,g),n._checkSize()}).catch(h=>{}).finally(()=>{Kg--})}:I.includes(".json")&&(d=()=>{var D;D=n.proxy?()=>fetch(n.proxy,{method:"POST",body:I,signal:c.signal}):()=>fetch(I,{signal:c.signal}),Kg++,D().then(h=>{if(!h.ok)throw console.error("could not load tile with path : "+I),new Error(`couldn't load "${I}". Request failed with status ${h.status} : ${h.statusText}`);return h.json()}).then(h=>AQ(h,I)).then(h=>{n.cache.put(s,h),n._meshReceived(n.cache,n.register,s),n._checkSize()}).catch(h=>{console.error(h)}).finally(()=>{Kg--})}),this._scheduleDownload({shouldDoDownload:()=>!A.signal.aborted&&!!n.register[s]&&Object.keys(n.register[s]).length>0&&!n.cache.get(s),doDownload:d,distanceFunction:C,getSiblings:a,level:e,loadingStrategy:i,uuid:g})}}clear(){const A=this.maxCachedItems;this.maxCachedItems=0,this._checkSize(),this.maxCachedItems=A}invalidate(A,g){const I=_C(A),Q=this;Q.register[I]&&setTimeout(()=>{Q.register&&Q.register[I]&&(delete Q.register[I][g],Q._checkSize())},Q.timeout)}dispose(){let A=this.cache.head();for(this._disposeEntryContent(A);(A=A.next()).key!=null;)this._disposeEntryContent(A);this.cache.reset(),this.cache=void 0,this.register=void 0,this.dracoLoader&&this.dracoLoader.dispose(),this.ktx2loader&&this.ktx2loader.dispose()}_checkSize(){const A=this;let g=0;for(;A.cache.size()>A.maxCachedItems&&g<A.cache.size();){g++;const I=A.cache.head(),Q=A.register[I.key];Q&&(Object.keys(Q).length>0?(A.cache.remove(I.key),A.cache.put(I.key,I.value)):(A.cache.remove(I.key),delete A.register[I.key],A._disposeEntryContent(I)))}}_disposeEntryContent(A){A.value&&(A.value.isSplatsBatch?A.value.remove():A.value.traverse&&A.value.traverse(g=>{if(g.material)if(g.material.length)for(let I=0;I<g.material.length;++I)g.material[I].dispose();else g.material.dispose();g.geometry&&g.geometry.dispose()}))}}function _C(B){for(var A=B.split("/"),g=[],I=0,Q=0;Q<A.length;Q++){var C=A[Q];C!=="."&&C!==""&&C!==".."?g[I++]=C:C===".."&&I>0&&I--}if(I===0)return"/";var a="";for(Q=0;Q<I;Q++)a+="/"+g[Q];return a}const _A=[];for(let B=0;B<256;++B)_A.push((B+256).toString(16).slice(1));let gQ;const LE=new Uint8Array(16),$C={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function JE(B,A,g){const I=(B=B||{}).random??B.rng?.()??function(){if(!gQ){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");gQ=crypto.getRandomValues.bind(crypto)}return gQ(LE)}();if(I.length<16)throw new Error("Random bytes length must be >= 16");return I[6]=15&I[6]|64,I[8]=63&I[8]|128,function(Q,C=0){return(_A[Q[C+0]]+_A[Q[C+1]]+_A[Q[C+2]]+_A[Q[C+3]]+"-"+_A[Q[C+4]]+_A[Q[C+5]]+"-"+_A[Q[C+6]]+_A[Q[C+7]]+"-"+_A[Q[C+8]]+_A[Q[C+9]]+"-"+_A[Q[C+10]]+_A[Q[C+11]]+_A[Q[C+12]]+_A[Q[C+13]]+_A[Q[C+14]]+_A[Q[C+15]]).toLowerCase()}(I)}function Aa(B,A,g){return $C.randomUUID&&!B?$C.randomUUID():JE(B)}var ga,Ia,BI=function(){if(Ia)return ga;function B(I){if(typeof I!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(I))}function A(I,Q){for(var C,a="",e=0,i=-1,t=0,E=0;E<=I.length;++E){if(E<I.length)C=I.charCodeAt(E);else{if(C===47)break;C=47}if(C===47){if(!(i===E-1||t===1))if(i!==E-1&&t===2){if(a.length<2||e!==2||a.charCodeAt(a.length-1)!==46||a.charCodeAt(a.length-2)!==46){if(a.length>2){var o=a.lastIndexOf("/");if(o!==a.length-1){o===-1?(a="",e=0):e=(a=a.slice(0,o)).length-1-a.lastIndexOf("/"),i=E,t=0;continue}}else if(a.length===2||a.length===1){a="",e=0,i=E,t=0;continue}}Q&&(a.length>0?a+="/..":a="..",e=2)}else a.length>0?a+="/"+I.slice(i+1,E):a=I.slice(i+1,E),e=E-i-1;i=E,t=0}else C===46&&t!==-1?++t:t=-1}return a}Ia=1;var g={resolve:function(){for(var I,Q="",C=!1,a=arguments.length-1;a>=-1&&!C;a--){var e;a>=0?e=arguments[a]:(I===void 0&&(I=process.cwd()),e=I),B(e),e.length!==0&&(Q=e+"/"+Q,C=e.charCodeAt(0)===47)}return Q=A(Q,!C),C?Q.length>0?"/"+Q:"/":Q.length>0?Q:"."},normalize:function(I){if(B(I),I.length===0)return".";var Q=I.charCodeAt(0)===47,C=I.charCodeAt(I.length-1)===47;return(I=A(I,!Q)).length!==0||Q||(I="."),I.length>0&&C&&(I+="/"),Q?"/"+I:I},isAbsolute:function(I){return B(I),I.length>0&&I.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var I,Q=0;Q<arguments.length;++Q){var C=arguments[Q];B(C),C.length>0&&(I===void 0?I=C:I+="/"+C)}return I===void 0?".":g.normalize(I)},relative:function(I,Q){if(B(I),B(Q),I===Q||(I=g.resolve(I))===(Q=g.resolve(Q)))return"";for(var C=1;C<I.length&&I.charCodeAt(C)===47;++C);for(var a=I.length,e=a-C,i=1;i<Q.length&&Q.charCodeAt(i)===47;++i);for(var t=Q.length-i,E=e<t?e:t,o=-1,r=0;r<=E;++r){if(r===E){if(t>E){if(Q.charCodeAt(i+r)===47)return Q.slice(i+r+1);if(r===0)return Q.slice(i+r)}else e>E&&(I.charCodeAt(C+r)===47?o=r:r===0&&(o=0));break}var n=I.charCodeAt(C+r);if(n!==Q.charCodeAt(i+r))break;n===47&&(o=r)}var s="";for(r=C+o+1;r<=a;++r)r!==a&&I.charCodeAt(r)!==47||(s.length===0?s+="..":s+="/..");return s.length>0?s+Q.slice(i+o):(i+=o,Q.charCodeAt(i)===47&&++i,Q.slice(i))},_makeLong:function(I){return I},dirname:function(I){if(B(I),I.length===0)return".";for(var Q=I.charCodeAt(0),C=Q===47,a=-1,e=!0,i=I.length-1;i>=1;--i)if((Q=I.charCodeAt(i))===47){if(!e){a=i;break}}else e=!1;return a===-1?C?"/":".":C&&a===1?"//":I.slice(0,a)},basename:function(I,Q){if(Q!==void 0&&typeof Q!="string")throw new TypeError('"ext" argument must be a string');B(I);var C,a=0,e=-1,i=!0;if(Q!==void 0&&Q.length>0&&Q.length<=I.length){if(Q.length===I.length&&Q===I)return"";var t=Q.length-1,E=-1;for(C=I.length-1;C>=0;--C){var o=I.charCodeAt(C);if(o===47){if(!i){a=C+1;break}}else E===-1&&(i=!1,E=C+1),t>=0&&(o===Q.charCodeAt(t)?--t==-1&&(e=C):(t=-1,e=E))}return a===e?e=E:e===-1&&(e=I.length),I.slice(a,e)}for(C=I.length-1;C>=0;--C)if(I.charCodeAt(C)===47){if(!i){a=C+1;break}}else e===-1&&(i=!1,e=C+1);return e===-1?"":I.slice(a,e)},extname:function(I){B(I);for(var Q=-1,C=0,a=-1,e=!0,i=0,t=I.length-1;t>=0;--t){var E=I.charCodeAt(t);if(E!==47)a===-1&&(e=!1,a=t+1),E===46?Q===-1?Q=t:i!==1&&(i=1):Q!==-1&&(i=-1);else if(!e){C=t+1;break}}return Q===-1||a===-1||i===0||i===1&&Q===a-1&&Q===C+1?"":I.slice(Q,a)},format:function(I){if(I===null||typeof I!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof I);return function(Q,C){var a=C.dir||C.root,e=C.base||(C.name||"")+(C.ext||"");return a?a===C.root?a+e:a+Q+e:e}("/",I)},parse:function(I){B(I);var Q={root:"",dir:"",base:"",ext:"",name:""};if(I.length===0)return Q;var C,a=I.charCodeAt(0),e=a===47;e?(Q.root="/",C=1):C=0;for(var i=-1,t=0,E=-1,o=!0,r=I.length-1,n=0;r>=C;--r)if((a=I.charCodeAt(r))!==47)E===-1&&(o=!1,E=r+1),a===46?i===-1?i=r:n!==1&&(n=1):i!==-1&&(n=-1);else if(!o){t=r+1;break}return i===-1||E===-1||n===0||n===1&&i===E-1&&i===t+1?E!==-1&&(Q.base=Q.name=t===0&&e?I.slice(1,E):I.slice(t,E)):(t===0&&e?(Q.name=I.slice(1,i),Q.base=I.slice(1,E)):(Q.name=I.slice(t,i),Q.base=I.slice(t,E)),Q.ext=I.slice(i,E)),t>0?Q.dir=I.slice(0,t-1):e&&(Q.dir="/"),Q},sep:"/",delimiter:":",win32:null,posix:null};return g.posix=g,ga=g}();function _I(){return _I=Object.assign?Object.assign.bind():function(B){for(var A=1;A<arguments.length;A++){var g=arguments[A];for(var I in g)({}).hasOwnProperty.call(g,I)&&(B[I]=g[I])}return B},_I.apply(null,arguments)}var Ba={relTol:1e-12,absTol:1e-15,matrix:"Matrix",number:"number",numberFallback:"number",precision:64,predictable:!1,randomSeed:null};function xE(B,A){if($I(B,A))return B[A];throw typeof B[A]=="function"&&function(g,I){return g==null||typeof g[I]!="function"||gB(g,I)&&Object.getPrototypeOf&&I in Object.getPrototypeOf(g)?!1:gB(HE,I)?!0:!(I in Object.prototype||I in Function.prototype)}(B,A)?new Error('Cannot access method "'+A+'" as a property'):new Error('No access to property "'+A+'"')}function $I(B,A){return!(!function(g){return typeof g=="object"&&g&&g.constructor===Object}(B)&&!Array.isArray(B))&&(!!gB(YE,A)||!(A in Object.prototype)&&!(A in Function.prototype))}var YE={length:!0,name:!0},HE={toString:!0,valueOf:!0,toLocaleString:!0};class KE{constructor(A){this.wrappedObject=A,this[Symbol.iterator]=this.entries}keys(){return Object.keys(this.wrappedObject).filter(A=>this.has(A)).values()}get(A){return xE(this.wrappedObject,A)}set(A,g){return function(I,Q,C){if($I(I,Q))return I[Q]=C,C;throw new Error('No access to property "'+Q+'"')}(this.wrappedObject,A,g),this}has(A){return $I(this.wrappedObject,A)&&A in this.wrappedObject}entries(){return function(A,g){return{next:()=>{var I=A.next();return I.done?I:{value:g(I.value),done:!1}}}}(this.keys(),A=>[A,this.get(A)])}forEach(A){for(var g of this.keys())A(this.get(g),g,this)}delete(A){$I(this.wrappedObject,A)&&delete this.wrappedObject[A]}clear(){for(var A of this.keys())this.delete(A)}get size(){return Object.keys(this.wrappedObject).length}}function NA(B){return typeof B=="number"}function qA(B){return!(!B||typeof B!="object"||typeof B.constructor!="function")&&(B.isBigNumber===!0&&typeof B.constructor.prototype=="object"&&B.constructor.prototype.isBigNumber===!0||typeof B.constructor.isDecimal=="function"&&B.constructor.isDecimal(B)===!0)}function jE(B){return typeof B=="bigint"}function Qa(B){return B&&typeof B=="object"&&Object.getPrototypeOf(B).isComplex===!0||!1}function Ca(B){return B&&typeof B=="object"&&Object.getPrototypeOf(B).isFraction===!0||!1}function aa(B){return B&&B.constructor.prototype.isUnit===!0||!1}function Gg(B){return typeof B=="string"}var PA=Array.isArray;function KA(B){return B&&B.constructor.prototype.isMatrix===!0||!1}function AB(B){return Array.isArray(B)||KA(B)}function vE(B){return B&&B.isDenseMatrix&&B.constructor.prototype.isMatrix===!0||!1}function qE(B){return B&&B.isSparseMatrix&&B.constructor.prototype.isMatrix===!0||!1}function TE(B){return B&&B.constructor.prototype.isRange===!0||!1}function IQ(B){return B&&B.constructor.prototype.isIndex===!0||!1}function OE(B){return typeof B=="boolean"}function WE(B){return B&&B.constructor.prototype.isResultSet===!0||!1}function PE(B){return B&&B.constructor.prototype.isHelp===!0||!1}function VE(B){return typeof B=="function"}function zE(B){return B instanceof Date}function XE(B){return B instanceof RegExp}function BQ(B){return!(!B||typeof B!="object"||B.constructor!==Object||Qa(B)||Ca(B))}function ZE(B){return!!B&&(B instanceof Map||B instanceof KE||typeof B.set=="function"&&typeof B.get=="function"&&typeof B.keys=="function"&&typeof B.has=="function")}function _E(B){return B===null}function $E(B){return B===void 0}function Ai(B){return B&&B.isAccessorNode===!0&&B.constructor.prototype.isNode===!0||!1}function gi(B){return B&&B.isArrayNode===!0&&B.constructor.prototype.isNode===!0||!1}function Ii(B){return B&&B.isAssignmentNode===!0&&B.constructor.prototype.isNode===!0||!1}function Bi(B){return B&&B.isBlockNode===!0&&B.constructor.prototype.isNode===!0||!1}function Qi(B){return B&&B.isConditionalNode===!0&&B.constructor.prototype.isNode===!0||!1}function Ci(B){return B&&B.isConstantNode===!0&&B.constructor.prototype.isNode===!0||!1}function ai(B){return B&&B.isFunctionAssignmentNode===!0&&B.constructor.prototype.isNode===!0||!1}function ei(B){return B&&B.isFunctionNode===!0&&B.constructor.prototype.isNode===!0||!1}function Ei(B){return B&&B.isIndexNode===!0&&B.constructor.prototype.isNode===!0||!1}function ii(B){return B&&B.isNode===!0&&B.constructor.prototype.isNode===!0||!1}function ti(B){return B&&B.isObjectNode===!0&&B.constructor.prototype.isNode===!0||!1}function oi(B){return B&&B.isOperatorNode===!0&&B.constructor.prototype.isNode===!0||!1}function ni(B){return B&&B.isParenthesisNode===!0&&B.constructor.prototype.isNode===!0||!1}function ri(B){return B&&B.isRangeNode===!0&&B.constructor.prototype.isNode===!0||!1}function si(B){return B&&B.isRelationalNode===!0&&B.constructor.prototype.isNode===!0||!1}function ci(B){return B&&B.isSymbolNode===!0&&B.constructor.prototype.isNode===!0||!1}function hi(B){return B&&B.constructor.prototype.isChain===!0||!1}function jg(B){var A=typeof B;return A==="object"?B===null?"null":qA(B)?"BigNumber":B.constructor&&B.constructor.name?B.constructor.name:"Object":A}function jA(B){var A=typeof B;if(A==="number"||A==="bigint"||A==="string"||A==="boolean"||B==null)return B;if(typeof B.clone=="function")return B.clone();if(Array.isArray(B))return B.map(function(g){return jA(g)});if(B instanceof Date)return new Date(B.valueOf());if(qA(B))return B;if(BQ(B))return function(g,I){var Q={};for(var C in g)gB(g,C)&&(Q[C]=I(g[C]));return Q}(B,jA);if(A==="function")return B;throw new TypeError("Cannot clone: unknown type of value (value: ".concat(B,")"))}function dI(B,A){var g,I,Q;if(Array.isArray(B)){if(!Array.isArray(A)||B.length!==A.length)return!1;for(I=0,Q=B.length;I<Q;I++)if(!dI(B[I],A[I]))return!1;return!0}if(typeof B=="function")return B===A;if(B instanceof Object){if(Array.isArray(A)||!(A instanceof Object))return!1;for(g in B)if(!(g in A)||!dI(B[g],A[g]))return!1;for(g in A)if(!(g in B))return!1;return!0}return B===A}function gB(B,A){return B&&Object.hasOwnProperty.call(B,A)}var QI=function(B){if(B)throw new Error(`The global config is readonly.
|
|
952
952
|
Please create a mathjs instance if you want to change the default configuration.
|
|
953
953
|
Example:
|
|
954
954
|
|
|
955
955
|
import { create, all } from 'mathjs';
|
|
956
956
|
const mathjs = create(all);
|
|
957
957
|
mathjs.config({ number: 'BigNumber' });
|
|
958
|
-
`);return Object.freeze(_C)};function IE(){return!0}function bg(){return!1}function DI(){}zI(BI,_C,{MATRIX_OPTIONS:["Matrix","Array"],NUMBER_OPTIONS:["number","BigNumber","Fraction"]});const BE="Argument is not a typed-function.",$I=function B(){function A(M){return typeof M=="object"&&M!==null&&M.constructor===Object}const g=[{name:"number",test:function(M){return typeof M=="number"}},{name:"string",test:function(M){return typeof M=="string"}},{name:"boolean",test:function(M){return typeof M=="boolean"}},{name:"Function",test:function(M){return typeof M=="function"}},{name:"Array",test:Array.isArray},{name:"Date",test:function(M){return M instanceof Date}},{name:"RegExp",test:function(M){return M instanceof RegExp}},{name:"Object",test:A},{name:"null",test:function(M){return M===null}},{name:"undefined",test:function(M){return M===void 0}}],I={name:"any",test:IE,isAny:!0};let Q,C,E=0,a={createCount:0};function i(M){const N=Q.get(M);if(N)return N;let J='Unknown type "'+M+'"';const x=M.toLowerCase();let K;for(K of C)if(K.toLowerCase()===x){J+='. Did you mean "'+K+'" ?';break}throw new TypeError(J)}function t(M){let N=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"any";const J=N?i(N).index:C.length,x=[];for(let O=0;O<M.length;++O){if(!M[O]||typeof M[O].name!="string"||typeof M[O].test!="function")throw new TypeError("Object with properties {name: string, test: function} expected");const Z=M[O].name;if(Q.has(Z))throw new TypeError('Duplicate type name "'+Z+'"');x.push(Z),Q.set(Z,{name:Z,test:M[O].test,isAny:M[O].isAny,index:J+O,conversionsTo:[]})}const K=C.slice(J);C=C.slice(0,J).concat(x).concat(K);for(let O=J+x.length;O<C.length;++O)Q.get(C[O]).index=O}function e(){Q=new Map,C=[],E=0,t([I],!1)}function o(M){const N=C.filter(J=>{const x=Q.get(J);return!x.isAny&&x.test(M)});return N.length?N:["any"]}function s(M){return M&&typeof M=="function"&&"_typedFunctionData"in M}function n(M,N,J){if(!s(M))throw new TypeError(BE);const x=J&&J.exact,K=h(Array.isArray(N)?N.join(","):N),O=r(K);if(!x||O in M.signatures){const V=M._typedFunctionData.signatureMap.get(O);if(V)return V}const Z=K.length;let v,AA;if(x){let V;for(V in v=[],M.signatures)v.push(M._typedFunctionData.signatureMap.get(V))}else v=M._typedFunctionData.signatures;for(let V=0;V<Z;++V){const MA=K[V],bA=[];let YA;for(YA of v){const zA=R(YA.params,V);if(zA&&(!MA.restParam||zA.restParam)){if(!zA.hasAny){const ig=b(zA);if(MA.types.some(rg=>!ig.has(rg.name)))continue}bA.push(YA)}}if(v=bA,v.length===0)break}for(AA of v)if(AA.params.length<=Z)return AA;throw new TypeError("Signature not found (signature: "+(M.name||"unnamed")+"("+r(K,", ")+"))")}function r(M){let N=arguments.length>1&&arguments[1]!==void 0?arguments[1]:",";return M.map(J=>J.name).join(N)}function c(M){const N=M.indexOf("...")===0,J=(N?M.length>3?M.slice(3):"any":M).split("|").map(O=>i(O.trim()));let x=!1,K=N?"...":"";return{types:J.map(function(O){return x=O.isAny||x,K+=O.name+"|",{name:O.name,typeIndex:O.index,test:O.test,isAny:O.isAny,conversion:null,conversionIndex:-1}}),name:K.slice(0,-1),hasAny:x,hasConversion:!1,restParam:N}}function D(M){const N=M.types.map(Z=>Z.name),J=function(Z){if(Z.length===0)return[];const v=Z.map(i);Z.length>1&&v.sort((MA,bA)=>MA.index-bA.index);let AA=v[0].conversionsTo;if(Z.length===1)return AA;AA=AA.concat([]);const V=new Set(Z);for(let MA=1;MA<v.length;++MA){let bA;for(bA of v[MA].conversionsTo)V.has(bA.from)||(AA.push(bA),V.add(bA.from))}return AA}(N);let x=M.hasAny,K=M.name;const O=J.map(function(Z){const v=i(Z.from);return x=v.isAny||x,K+="|"+Z.from,{name:Z.from,typeIndex:v.index,test:v.test,isAny:v.isAny,conversion:Z,conversionIndex:Z.index}});return{types:M.types.concat(O),name:K,hasAny:x,hasConversion:O.length>0,restParam:M.restParam}}function b(M){return M.typeSet||(M.typeSet=new Set,M.types.forEach(N=>M.typeSet.add(N.name))),M.typeSet}function h(M){const N=[];if(typeof M!="string")throw new TypeError("Signatures must be strings");const J=M.trim();if(J==="")return N;const x=J.split(",");for(let K=0;K<x.length;++K){const O=c(x[K].trim());if(O.restParam&&K!==x.length-1)throw new SyntaxError('Unexpected rest parameter "'+x[K]+'": only allowed for the last parameter');if(O.types.length===0)return null;N.push(O)}return N}function w(M){const N=eA(M);return!!N&&N.restParam}function f(M){if(M&&M.types.length!==0){if(M.types.length===1)return i(M.types[0].name).test;if(M.types.length===2){const N=i(M.types[0].name).test,J=i(M.types[1].name).test;return function(x){return N(x)||J(x)}}{const N=M.types.map(function(J){return i(J.name).test});return function(J){for(let x=0;x<N.length;x++)if(N[x](J))return!0;return!1}}}return IE}function p(M){let N,J,x;if(w(M)){N=GA(M).map(f);const K=N.length,O=f(eA(M)),Z=function(v){for(let AA=K;AA<v.length;AA++)if(!O(v[AA]))return!1;return!0};return function(v){for(let AA=0;AA<N.length;AA++)if(!N[AA](v[AA]))return!1;return Z(v)&&v.length>=K+1}}return M.length===0?function(K){return K.length===0}:M.length===1?(J=f(M[0]),function(K){return J(K[0])&&K.length===1}):M.length===2?(J=f(M[0]),x=f(M[1]),function(K){return J(K[0])&&x(K[1])&&K.length===2}):(N=M.map(f),function(K){for(let O=0;O<N.length;O++)if(!N[O](K[O]))return!1;return K.length===N.length})}function R(M,N){return N<M.length?M[N]:w(M)?eA(M):null}function m(M,N){const J=R(M,N);return J?b(J):new Set}function G(M){return M.conversion===null||M.conversion===void 0}function k(M,N){const J=new Set;return M.forEach(x=>{const K=m(x.params,N);let O;for(O of K)J.add(O)}),J.has("any")?["any"]:Array.from(J)}function U(M,N,J){let x,K;const O=M||"unnamed";let Z,v=J;for(Z=0;Z<N.length;Z++){const bA=[];if(v.forEach(YA=>{const zA=f(R(YA.params,Z));(Z<YA.params.length||w(YA.params))&&zA(N[Z])&&bA.push(YA)}),bA.length===0){if(K=k(v,Z),K.length>0){const YA=o(N[Z]);return x=new TypeError("Unexpected type of argument in function "+O+" (expected: "+K.join(" or ")+", actual: "+YA.join(" | ")+", index: "+Z+")"),x.data={category:"wrongType",fn:O,index:Z,actual:YA,expected:K},x}}else v=bA}const AA=v.map(function(bA){return w(bA.params)?1/0:bA.params.length});if(N.length<Math.min.apply(null,AA))return K=k(v,Z),x=new TypeError("Too few arguments in function "+O+" (expected: "+K.join(" or ")+", index: "+N.length+")"),x.data={category:"tooFewArgs",fn:O,index:N.length,expected:K},x;const V=Math.max.apply(null,AA);if(N.length>V)return x=new TypeError("Too many arguments in function "+O+" (expected: "+V+", actual: "+N.length+")"),x.data={category:"tooManyArgs",fn:O,index:N.length,expectedLength:V},x;const MA=[];for(let bA=0;bA<N.length;++bA)MA.push(o(N[bA]).join("|"));return x=new TypeError('Arguments of type "'+MA.join(", ")+'" do not match any of the defined signatures of function '+O+"."),x.data={category:"mismatch",actual:MA},x}function S(M){let N=C.length+1;for(let J=0;J<M.types.length;J++)G(M.types[J])&&(N=Math.min(N,M.types[J].typeIndex));return N}function q(M){let N=E+1;for(let J=0;J<M.types.length;J++)G(M.types[J])||(N=Math.min(N,M.types[J].conversionIndex));return N}function z(M,N){if(M.hasAny){if(!N.hasAny)return 1}else if(N.hasAny)return-1;if(M.restParam){if(!N.restParam)return 1}else if(N.restParam)return-1;if(M.hasConversion){if(!N.hasConversion)return 1}else if(N.hasConversion)return-1;const J=S(M)-S(N);if(J<0)return-1;if(J>0)return 1;const x=q(M)-q(N);return x<0?-1:x>0?1:0}function gA(M,N){const J=M.params,x=N.params,K=eA(J),O=eA(x),Z=w(J),v=w(x);if(Z&&K.hasAny){if(!v||!O.hasAny)return 1}else if(v&&O.hasAny)return-1;let AA,V=0,MA=0;for(AA of J)AA.hasAny&&++V,AA.hasConversion&&++MA;let bA=0,YA=0;for(AA of x)AA.hasAny&&++bA,AA.hasConversion&&++YA;if(V!==bA)return V-bA;if(Z&&K.hasConversion){if(!v||!O.hasConversion)return 1}else if(v&&O.hasConversion)return-1;if(MA!==YA)return MA-YA;if(Z){if(!v)return 1}else if(v)return-1;const zA=(J.length-x.length)*(Z?-1:1);if(zA!==0)return zA;const ig=[];let rg,yg=0;for(let Vg=0;Vg<J.length;++Vg){const iI=z(J[Vg],x[Vg]);ig.push(iI),yg+=iI}if(yg!==0)return yg;for(rg of ig)if(rg!==0)return rg;return 0}function $(M,N){let J=N;if(M.some(K=>K.hasConversion)){const K=w(M),O=M.map(X);J=function(){const Z=[],v=K?arguments.length-1:arguments.length;for(let AA=0;AA<v;AA++)Z[AA]=O[AA](arguments[AA]);return K&&(Z[v]=arguments[v].map(O[v])),N.apply(this,Z)}}let x=J;if(w(M)){const K=M.length-1;x=function(){return J.apply(this,rA(arguments,0,K).concat([rA(arguments,K)]))}}return x}function X(M){let N,J,x,K;const O=[],Z=[];switch(M.types.forEach(function(v){v.conversion&&(O.push(i(v.conversion.from).test),Z.push(v.conversion.convert))}),Z.length){case 0:return function(v){return v};case 1:return N=O[0],x=Z[0],function(v){return N(v)?x(v):v};case 2:return N=O[0],J=O[1],x=Z[0],K=Z[1],function(v){return N(v)?x(v):J(v)?K(v):v};default:return function(v){for(let AA=0;AA<Z.length;AA++)if(O[AA](v))return Z[AA](v);return v}}}function aA(M){return function N(J,x,K){if(x<J.length){const v=J[x];let AA=[];if(v.restParam){const V=v.types.filter(G);V.length<v.types.length&&AA.push({types:V,name:"..."+V.map(MA=>MA.name).join("|"),hasAny:V.some(MA=>MA.isAny),hasConversion:!1,restParam:!0}),AA.push(v)}else AA=v.types.map(function(V){return{types:[V],name:V.name,hasAny:V.isAny,hasConversion:V.conversion,restParam:!1}});return O=AA,Z=function(V){return N(J,x+1,K.concat([V]))},Array.prototype.concat.apply([],O.map(Z))}return[K];var O,Z}(M,0,[])}function wA(M,N){const J=Math.max(M.length,N.length);for(let v=0;v<J;v++){const AA=m(M,v),V=m(N,v);let MA,bA=!1;for(MA of V)if(AA.has(MA)){bA=!0;break}if(!bA)return!1}const x=M.length,K=N.length,O=w(M),Z=w(N);return O?Z?x===K:K>=x:Z?x>=K:x===K}function sA(M,N,J){const x=[];let K;for(K of M){let O=J[K];if(typeof O!="number")throw new TypeError('No definition for referenced signature "'+K+'"');if(O=N[O],typeof O!="function")return!1;x.push(O)}return x}function fA(M,N,J){const x=function(Z){return Z.map(v=>cA(v)?RA(v.referToSelf.callback):oA(v)?yA(v.referTo.references,v.referTo.callback):v)}(M),K=new Array(x.length).fill(!1);let O=!0;for(;O;){O=!1;let Z=!0;for(let v=0;v<x.length;++v){if(K[v])continue;const AA=x[v];if(cA(AA))x[v]=AA.referToSelf.callback(J),x[v].referToSelf=AA.referToSelf,K[v]=!0,Z=!1;else if(oA(AA)){const V=sA(AA.referTo.references,x,N);V?(x[v]=AA.referTo.callback.apply(this,V),x[v].referTo=AA.referTo,K[v]=!0,Z=!1):O=!0}}if(Z&&O)throw new SyntaxError("Circular reference detected in resolving typed.referTo")}return x}function lA(M,N){if(a.createCount++,Object.keys(N).length===0)throw new SyntaxError("No signatures provided");a.warnAgainstDeprecatedThis&&function(DA){const hg=/\bthis(\(|\.signatures\b)/;Object.keys(DA).forEach(WI=>{const Zg=DA[WI];if(hg.test(Zg.toString()))throw new SyntaxError("Using `this` to self-reference a function is deprecated since typed-function@3. Use typed.referTo and typed.referToSelf instead.")})}(N);const J=[],x=[],K={},O=[];let Z;for(Z in N){if(!Object.prototype.hasOwnProperty.call(N,Z))continue;const DA=h(Z);if(!DA)continue;J.forEach(function(oI){if(wA(oI,DA))throw new TypeError('Conflicting signatures "'+r(oI)+'" and "'+r(DA)+'".')}),J.push(DA);const hg=x.length;x.push(N[Z]);const WI=DA.map(D);let Zg;for(Zg of aA(WI)){const oI=r(Zg);O.push({params:Zg,name:oI,fn:hg}),Zg.every(UQ=>!UQ.hasConversion)&&(K[oI]=hg)}}O.sort(gA);const v=fA(x,K,tI);let AA;for(AA in K)Object.prototype.hasOwnProperty.call(K,AA)&&(K[AA]=v[K[AA]]);const V=[],MA=new Map;for(AA of O)MA.has(AA.name)||(AA.fn=v[AA.fn],V.push(AA),MA.set(AA.name,AA));const bA=V[0]&&V[0].params.length<=2&&!w(V[0].params),YA=V[1]&&V[1].params.length<=2&&!w(V[1].params),zA=V[2]&&V[2].params.length<=2&&!w(V[2].params),ig=V[3]&&V[3].params.length<=2&&!w(V[3].params),rg=V[4]&&V[4].params.length<=2&&!w(V[4].params),yg=V[5]&&V[5].params.length<=2&&!w(V[5].params),Vg=bA&&YA&&zA&&ig&&rg&&yg;for(let DA=0;DA<V.length;++DA)V[DA].test=p(V[DA].params);const iI=bA?f(V[0].params[0]):bg,pQ=YA?f(V[1].params[0]):bg,RI=zA?f(V[2].params[0]):bg,pI=ig?f(V[3].params[0]):bg,fB=rg?f(V[4].params[0]):bg,FB=yg?f(V[5].params[0]):bg,cg=bA?f(V[0].params[1]):bg,NQ=YA?f(V[1].params[1]):bg,yB=zA?f(V[2].params[1]):bg,NI=ig?f(V[3].params[1]):bg,HI=rg?f(V[4].params[1]):bg,MB=yg?f(V[5].params[1]):bg;for(let DA=0;DA<V.length;++DA)V[DA].implementation=$(V[DA].params,V[DA].fn);const KI=bA?V[0].implementation:DI,jI=YA?V[1].implementation:DI,GB=zA?V[2].implementation:DI,RB=ig?V[3].implementation:DI,zg=rg?V[4].implementation:DI,qI=yg?V[5].implementation:DI,vI=bA?V[0].params.length:-1,TI=YA?V[1].params.length:-1,pB=zA?V[2].params.length:-1,kQ=ig?V[3].params.length:-1,NB=rg?V[4].params.length:-1,mQ=yg?V[5].params.length:-1,SQ=Vg?6:0,Xg=V.length,kB=V.map(DA=>DA.test),mB=V.map(DA=>DA.implementation),OI=function(){for(let DA=SQ;DA<Xg;DA++)if(kB[DA](arguments))return mB[DA].apply(this,arguments);return a.onMismatch(M,arguments,V)};function tI(DA,hg){return arguments.length===vI&&iI(DA)&&cg(hg)?KI.apply(this,arguments):arguments.length===TI&&pQ(DA)&&NQ(hg)?jI.apply(this,arguments):arguments.length===pB&&RI(DA)&&yB(hg)?GB.apply(this,arguments):arguments.length===kQ&&pI(DA)&&NI(hg)?RB.apply(this,arguments):arguments.length===NB&&fB(DA)&&HI(hg)?zg.apply(this,arguments):arguments.length===mQ&&FB(DA)&&MB(hg)?qI.apply(this,arguments):OI.apply(this,arguments)}try{Object.defineProperty(tI,"name",{value:M})}catch{}return tI.signatures=K,tI._typedFunctionData={signatures:V,signatureMap:MA},tI}function iA(M,N,J){throw U(M,N,J)}function GA(M){return rA(M,0,M.length-1)}function eA(M){return M[M.length-1]}function rA(M,N,J){return Array.prototype.slice.call(M,N,J)}function yA(M,N){return{referTo:{references:M,callback:N}}}function RA(M){if(typeof M!="function")throw new TypeError("Callback function expected as first argument");return{referToSelf:{callback:M}}}function oA(M){return M&&typeof M.referTo=="object"&&Array.isArray(M.referTo.references)&&typeof M.referTo.callback=="function"}function cA(M){return M&&typeof M.referToSelf=="object"&&typeof M.referToSelf.callback=="function"}function JA(M,N){if(!M)return N;if(N&&N!==M){const J=new Error("Function names do not match (expected: "+M+", actual: "+N+")");throw J.data={actual:N,expected:M},J}return M}function qA(M){let N;for(const J in M)Object.prototype.hasOwnProperty.call(M,J)&&(s(M[J])||typeof M[J].signature=="string")&&(N=JA(N,M[J].name));return N}function sg(M,N){let J;for(J in N)if(Object.prototype.hasOwnProperty.call(N,J)){if(J in M&&N[J]!==M[J]){const x=new Error('Signature "'+J+'" is defined twice');throw x.data={signature:J,sourceFunction:N[J],destFunction:M[J]},x}M[J]=N[J]}}e(),t(g);const OA=a;function hA(M){if(!M||typeof M.from!="string"||typeof M.to!="string"||typeof M.convert!="function")throw new TypeError("Object with properties {from: string, to: string, convert: function} expected");if(M.to===M.from)throw new SyntaxError('Illegal to define conversion from "'+M.from+'" to itself.')}return a=function(M){const N=typeof M=="string";let J=N?M:"";const x={};for(let K=N?1:0;K<arguments.length;++K){const O=arguments[K];let Z,v={};if(typeof O=="function"?(Z=O.name,typeof O.signature=="string"?v[O.signature]=O:s(O)&&(v=O.signatures)):A(O)&&(v=O,N||(Z=qA(O))),Object.keys(v).length===0){const AA=new TypeError("Argument to 'typed' at index "+K+" is not a (typed) function, nor an object with signatures as keys and functions as values.");throw AA.data={index:K,argument:O},AA}N||(J=JA(J,Z)),sg(x,v)}return lA(J||"",x)},a.create=B,a.createCount=OA.createCount,a.onMismatch=iA,a.throwMismatchError=iA,a.createError=U,a.clear=e,a.clearConversions=function(){let M;for(M of C)Q.get(M).conversionsTo=[];E=0},a.addTypes=t,a._findType=i,a.referTo=function(){const M=GA(arguments).map(J=>r(h(J))),N=eA(arguments);if(typeof N!="function")throw new TypeError("Callback function expected as last argument");return yA(M,N)},a.referToSelf=RA,a.convert=function(M,N){const J=i(N);if(J.test(M))return M;const x=J.conversionsTo;if(x.length===0)throw new Error("There are no conversions to "+N+" defined.");for(let K=0;K<x.length;K++)if(i(x[K].from).test(M))return x[K].convert(M);throw new Error("Cannot convert "+M+" to "+N)},a.findSignature=n,a.find=function(M,N,J){return n(M,N,J).implementation},a.isTypedFunction=s,a.warnAgainstDeprecatedThis=!0,a.addType=function(M,N){let J="any";N!==!1&&Q.has("Object")&&(J="Object"),a.addTypes([M],J)},a.addConversion=function(M){let N=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{override:!1};hA(M);const J=i(M.to),x=J.conversionsTo.find(K=>K.from===M.from);if(x){if(!N||!N.override)throw new Error('There is already a conversion from "'+M.from+'" to "'+J.name+'"');a.removeConversion({from:x.from,to:M.to,convert:x.convert})}J.conversionsTo.push({from:M.from,convert:M.convert,index:E++})},a.addConversions=function(M,N){M.forEach(J=>a.addConversion(J,N))},a.removeConversion=function(M){hA(M);const N=i(M.to),J=function(K,O){for(let Z=0;Z<K.length;Z++)if(O(K[Z]))return K[Z]}(N.conversionsTo,K=>K.from===M.from);if(!J)throw new Error("Attempt to remove nonexistent conversion from "+M.from+" to "+M.to);if(J.convert!==M.convert)throw new Error("Conversion to remove does not match existing conversion");const x=N.conversionsTo.indexOf(J);N.conversionsTo.splice(x,1)},a.resolve=function(M,N){if(!s(M))throw new TypeError(BE);const J=M._typedFunctionData.signatures;for(let x=0;x<J.length;++x)if(J[x].test(N))return J[x];return null},a}();function uA(B,A,g,I){function Q(C){var E=function(a,i){for(var t={},e=0;e<i.length;e++){var o=i[e],s=a[o];s!==void 0&&(t[o]=s)}return t}(C,A.map(Ei));return function(a,i,t){var e=i.filter(s=>!function(n){return n&&n[0]==="?"}(s)).every(s=>t[s]!==void 0);if(!e){var o=i.filter(s=>t[s]===void 0);throw new Error('Cannot create function "'.concat(a,'", ')+"some dependencies are missing: ".concat(o.map(s=>'"'.concat(s,'"')).join(", "),"."))}}(B,A,C),g(E)}return Q.isFactory=!0,Q.fn=B,Q.dependencies=A.slice().sort(),I&&(Q.meta=I),Q}function Ei(B){return B&&B[0]==="?"?B.slice(1):B}function LA(B){return typeof B=="boolean"||!!isFinite(B)&&B===Math.round(B)}function AQ(B,A,g){var I={2:"0b",8:"0o",16:"0x"}[A],Q="";if(g){if(g<1)throw new Error("size must be in greater than 0");if(!LA(g))throw new Error("size must be an integer");if(B>2**(g-1)-1||B<-(2**(g-1)))throw new Error("Value must be in range [-2^".concat(g-1,", 2^").concat(g-1,"-1]"));if(!LA(B))throw new Error("Value must be an integer");B<0&&(B+=2**g),Q="i".concat(g)}var C="";return B<0&&(B=-B,C="-"),"".concat(C).concat(I).concat(B.toString(A)).concat(Q)}function gQ(B,A){if(typeof A=="function")return A(B);if(B===1/0)return"Infinity";if(B===-1/0)return"-Infinity";if(isNaN(B))return"NaN";var{notation:g,precision:I,wordSize:Q}=QE(A);switch(g){case"fixed":return function(C,E){if(isNaN(C)||!isFinite(C))return String(C);var a=AB(C),i=typeof E=="number"?gB(a,a.exponent+1+E):a,t=i.coefficients,e=i.exponent+1,o=e+(E||0);return t.length<o&&(t=t.concat(dI(o-t.length))),e<0&&(t=dI(1-e).concat(t),e=1),e<t.length&&t.splice(e,0,e===0?"0.":"."),i.sign+t.join("")}(B,I);case"exponential":return CE(B,I);case"engineering":return function(C,E){if(isNaN(C)||!isFinite(C))return String(C);var a=AB(C),i=gB(a,E),t=i.exponent,e=i.coefficients,o=t%3==0?t:t<0?t-3-t%3:t-t%3;if(mA(E))for(;E>e.length||t-o+1>e.length;)e.push(0);else for(var s=Math.abs(t-o)-(e.length-1),n=0;n<s;n++)e.push(0);for(var r=Math.abs(t-o),c=1;r>0;)c++,r--;var D=e.slice(c).join(""),b=mA(E)&&D.length||D.match(/[1-9]/)?"."+D:"",h=e.slice(0,c).join("")+b+"e"+(t>=0?"+":"")+o.toString();return i.sign+h}(B,I);case"bin":return AQ(B,2,Q);case"oct":return AQ(B,8,Q);case"hex":return AQ(B,16,Q);case"auto":return function(C,E,a){if(isNaN(C)||!isFinite(C))return String(C);var i=aE(a?.lowerExp,-3),t=aE(a?.upperExp,5),e=AB(C),o=E?gB(e,E):e;if(o.exponent<i||o.exponent>=t)return CE(C,E);var s=o.coefficients,n=o.exponent;s.length<E&&(s=s.concat(dI(E-s.length))),s=s.concat(dI(n-s.length+1+(s.length<E?E-s.length:0)));var r=n>0?n:0;return r<(s=dI(-n).concat(s)).length-1&&s.splice(r+1,0,"."),o.sign+s.join("")}(B,I,A).replace(/((\.\d*?)(0+))($|e)/,function(){var C=arguments[2],E=arguments[4];return C!=="."?C+E:E});default:throw new Error('Unknown notation "'+g+'". Choose "auto", "exponential", "fixed", "bin", "oct", or "hex.')}}function QE(B){var A,g,I="auto";if(B!==void 0)if(mA(B))A=B;else if(vA(B))A=B.toNumber();else{if(!$B(B))throw new Error("Unsupported type of options, number, BigNumber, or object expected");B.precision!==void 0&&(A=EE(B.precision,()=>{throw new Error('Option "precision" must be a number or BigNumber')})),B.wordSize!==void 0&&(g=EE(B.wordSize,()=>{throw new Error('Option "wordSize" must be a number or BigNumber')})),B.notation&&(I=B.notation)}return{notation:I,precision:A,wordSize:g}}function AB(B){var A=String(B).toLowerCase().match(/^(-?)(\d+\.?\d*)(e([+-]?\d+))?$/);if(!A)throw new SyntaxError("Invalid number "+B);var g=A[1],I=A[2],Q=parseFloat(A[4]||"0"),C=I.indexOf(".");Q+=C!==-1?C-1:I.length-1;var E=I.replace(".","").replace(/^0*/,function(a){return Q-=a.length,""}).replace(/0*$/,"").split("").map(function(a){return parseInt(a)});return E.length===0&&(E.push(0),Q++),{sign:g,coefficients:E,exponent:Q}}function CE(B,A){if(isNaN(B)||!isFinite(B))return String(B);var g=AB(B),I=A?gB(g,A):g,Q=I.coefficients,C=I.exponent;Q.length<A&&(Q=Q.concat(dI(A-Q.length)));var E=Q.shift();return I.sign+E+(Q.length>0?"."+Q.join(""):"")+"e"+(C>=0?"+":"")+C}function gB(B,A){for(var g={sign:B.sign,coefficients:B.coefficients,exponent:B.exponent},I=g.coefficients;A<=0;)I.unshift(0),g.exponent++,A++;if(I.length>A&&I.splice(A,I.length-A)[0]>=5){var Q=A-1;for(I[Q]++;I[Q]===10;)I.pop(),Q===0&&(I.unshift(0),g.exponent++,Q++),I[--Q]++}return g}function dI(B){for(var A=[],g=0;g<B;g++)A.push(0);return A}function IB(B,A){var g=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1e-8,I=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;if(g<=0)throw new Error("Relative tolerance must be greater than 0");if(I<0)throw new Error("Absolute tolerance must be at least 0");return!isNaN(B)&&!isNaN(A)&&(isFinite(B)&&isFinite(A)?B===A||Math.abs(B-A)<=Math.max(g*Math.max(Math.abs(B),Math.abs(A)),I):B===A)}function EE(B,A){return mA(B)?B:vA(B)?B.toNumber():void A()}function aE(B,A){return mA(B)?B:vA(B)?B.toNumber():A}var eE=function(){return eE=$I.create,$I},ai=uA("typed",["?BigNumber","?Complex","?DenseMatrix","?Fraction"],function(B){var{BigNumber:A,Complex:g,DenseMatrix:I,Fraction:Q}=B,C=eE();return C.clear(),C.addTypes([{name:"number",test:mA},{name:"Complex",test:$C},{name:"BigNumber",test:vA},{name:"bigint",test:Ne},{name:"Fraction",test:AE},{name:"Unit",test:gE},{name:"identifier",test:E=>Gg&&/^(?:[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-\u1C8A\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-\uA7CD\uA7D0\uA7D1\uA7D3\uA7D5-\uA7DC\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\uDDC0-\uDDF3\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\uDD4A-\uDD65\uDD6F-\uDD85\uDE80-\uDEA9\uDEB0\uDEB1\uDEC2-\uDEC4\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\uDF80-\uDF89\uDF8B\uDF8E\uDF90-\uDFB5\uDFB7\uDFD1\uDFD3]|\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\uDFC0-\uDFE0]|\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\uD80E\uD80F\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46\uDC60-\uDFFF]|\uD810[\uDC00-\uDFFA]|\uD811[\uDC00-\uDE46]|\uD818[\uDD00-\uDD1D]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDD40-\uDD6C\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDCFF-\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\uDDD0-\uDDED\uDDF0\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-\u1C8A\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-\uA7CD\uA7D0\uA7D1\uA7D3\uA7D5-\uA7DC\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\uDDC0-\uDDF3\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\uDD4A-\uDD65\uDD6F-\uDD85\uDE80-\uDEA9\uDEB0\uDEB1\uDEC2-\uDEC4\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\uDF80-\uDF89\uDF8B\uDF8E\uDF90-\uDFB5\uDFB7\uDFD1\uDFD3]|\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\uDFC0-\uDFE0]|\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\uD80E\uD80F\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46\uDC60-\uDFFF]|\uD810[\uDC00-\uDFFA]|\uD811[\uDC00-\uDE46]|\uD818[\uDD00-\uDD1D]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDD40-\uDD6C\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDCFF-\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\uDDD0-\uDDED\uDDF0\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(E)},{name:"string",test:Gg},{name:"Chain",test:Ci},{name:"Array",test:PA},{name:"Matrix",test:KA},{name:"DenseMatrix",test:ke},{name:"SparseMatrix",test:me},{name:"Range",test:Se},{name:"Index",test:_B},{name:"boolean",test:Ue},{name:"ResultSet",test:Le},{name:"Help",test:Je},{name:"function",test:Ye},{name:"Date",test:xe},{name:"RegExp",test:He},{name:"null",test:je},{name:"undefined",test:qe},{name:"AccessorNode",test:ve},{name:"ArrayNode",test:Te},{name:"AssignmentNode",test:Oe},{name:"BlockNode",test:We},{name:"ConditionalNode",test:Pe},{name:"ConstantNode",test:Ve},{name:"FunctionNode",test:Xe},{name:"FunctionAssignmentNode",test:ze},{name:"IndexNode",test:Ze},{name:"Node",test:_e},{name:"ObjectNode",test:$e},{name:"OperatorNode",test:Ai},{name:"ParenthesisNode",test:gi},{name:"RangeNode",test:Ii},{name:"RelationalNode",test:Bi},{name:"SymbolNode",test:Qi},{name:"Map",test:Ke},{name:"Object",test:$B}]),C.addConversions([{from:"number",to:"BigNumber",convert:function(E){if(A||BB(E),E.toExponential().replace(/e.*$/,"").replace(/^0\.?0*|\./,"").length>15)throw new TypeError("Cannot implicitly convert a number with >15 significant digits to BigNumber (value: "+E+"). Use function bignumber(x) to convert to BigNumber.");return new A(E)}},{from:"number",to:"Complex",convert:function(E){return g||QB(E),new g(E,0)}},{from:"BigNumber",to:"Complex",convert:function(E){return g||QB(E),new g(E.toNumber(),0)}},{from:"bigint",to:"number",convert:function(E){if(E>Number.MAX_SAFE_INTEGER)throw new TypeError("Cannot implicitly convert bigint to number: value exceeds the max safe integer value (value: "+E+")");return Number(E)}},{from:"bigint",to:"BigNumber",convert:function(E){return A||BB(E),new A(E.toString())}},{from:"bigint",to:"Fraction",convert:function(E){return Q||CB(E),new Q(E)}},{from:"Fraction",to:"BigNumber",convert:function(E){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(E){return g||QB(E),new g(E.valueOf(),0)}},{from:"number",to:"Fraction",convert:function(E){Q||CB(E);var a=new Q(E);if(a.valueOf()!==E)throw new TypeError("Cannot implicitly convert a number to a Fraction when there will be a loss of precision (value: "+E+"). Use function fraction(x) to convert to Fraction.");return a}},{from:"string",to:"number",convert:function(E){var a=Number(E);if(isNaN(a))throw new Error('Cannot convert "'+E+'" to a number');return a}},{from:"string",to:"BigNumber",convert:function(E){A||BB(E);try{return new A(E)}catch{throw new Error('Cannot convert "'+E+'" to BigNumber')}}},{from:"string",to:"bigint",convert:function(E){try{return BigInt(E)}catch{throw new Error('Cannot convert "'+E+'" to BigInt')}}},{from:"string",to:"Fraction",convert:function(E){Q||CB(E);try{return new Q(E)}catch{throw new Error('Cannot convert "'+E+'" to Fraction')}}},{from:"string",to:"Complex",convert:function(E){g||QB(E);try{return new g(E)}catch{throw new Error('Cannot convert "'+E+'" to Complex')}}},{from:"boolean",to:"number",convert:function(E){return+E}},{from:"boolean",to:"BigNumber",convert:function(E){return A||BB(E),new A(+E)}},{from:"boolean",to:"bigint",convert:function(E){return BigInt(+E)}},{from:"boolean",to:"Fraction",convert:function(E){return Q||CB(E),new Q(+E)}},{from:"boolean",to:"string",convert:function(E){return String(E)}},{from:"Array",to:"Matrix",convert:function(E){return I||function(){throw new Error("Cannot convert array into a Matrix: no class 'DenseMatrix' provided")}(),new I(E)}},{from:"Matrix",to:"Array",convert:function(E){return E.valueOf()}}]),C.onMismatch=(E,a,i)=>{var t=C.createError(E,a,i);if(["wrongType","mismatch"].includes(t.data.category)&&a.length===1&&ZI(a[0])&&i.some(o=>!o.params.includes(","))){var e=new TypeError("Function '".concat(E,"' doesn't apply to matrices. To call it ")+"elementwise on a matrix 'M', try 'map(M, ".concat(E,")'."));throw e.data=t.data,e}throw t},C.onMismatch=(E,a,i)=>{var t=C.createError(E,a,i);if(["wrongType","mismatch"].includes(t.data.category)&&a.length===1&&ZI(a[0])&&i.some(o=>!o.params.includes(","))){var e=new TypeError("Function '".concat(E,"' doesn't apply to matrices. To call it ")+"elementwise on a matrix 'M', try 'map(M, ".concat(E,")'."));throw e.data=t.data,e}throw t},C});function BB(B){throw new Error("Cannot convert value ".concat(B," into a BigNumber: no class 'BigNumber' provided"))}function QB(B){throw new Error("Cannot convert value ".concat(B," into a Complex number: no class 'Complex' provided"))}function CB(B){throw new Error("Cannot convert value ".concat(B," into a Fraction, no class 'Fraction' provided."))}/*!
|
|
958
|
+
`);return Object.freeze(Ba)};function ea(){return!0}function ug(){return!1}function DI(){}_I(QI,Ba,{MATRIX_OPTIONS:["Matrix","Array"],NUMBER_OPTIONS:["number","BigNumber","Fraction"]});const Ea="Argument is not a typed-function.",IB=function B(){function A(M){return typeof M=="object"&&M!==null&&M.constructor===Object}const g=[{name:"number",test:function(M){return typeof M=="number"}},{name:"string",test:function(M){return typeof M=="string"}},{name:"boolean",test:function(M){return typeof M=="boolean"}},{name:"Function",test:function(M){return typeof M=="function"}},{name:"Array",test:Array.isArray},{name:"Date",test:function(M){return M instanceof Date}},{name:"RegExp",test:function(M){return M instanceof RegExp}},{name:"Object",test:A},{name:"null",test:function(M){return M===null}},{name:"undefined",test:function(M){return M===void 0}}],I={name:"any",test:ea,isAny:!0};let Q,C,a=0,e={createCount:0};function i(M){const U=Q.get(M);if(U)return U;let J='Unknown type "'+M+'"';const H=M.toLowerCase();let v;for(v of C)if(v.toLowerCase()===H){J+='. Did you mean "'+v+'" ?';break}throw new TypeError(J)}function t(M){let U=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"any";const J=U?i(U).index:C.length,H=[];for(let W=0;W<M.length;++W){if(!M[W]||typeof M[W].name!="string"||typeof M[W].test!="function")throw new TypeError("Object with properties {name: string, test: function} expected");const Z=M[W].name;if(Q.has(Z))throw new TypeError('Duplicate type name "'+Z+'"');H.push(Z),Q.set(Z,{name:Z,test:M[W].test,isAny:M[W].isAny,index:J+W,conversionsTo:[]})}const v=C.slice(J);C=C.slice(0,J).concat(H).concat(v);for(let W=J+H.length;W<C.length;++W)Q.get(C[W]).index=W}function E(){Q=new Map,C=[],a=0,t([I],!1)}function o(M){const U=C.filter(J=>{const H=Q.get(J);return!H.isAny&&H.test(M)});return U.length?U:["any"]}function r(M){return M&&typeof M=="function"&&"_typedFunctionData"in M}function n(M,U,J){if(!r(M))throw new TypeError(Ea);const H=J&&J.exact,v=h(Array.isArray(U)?U.join(","):U),W=s(v);if(!H||W in M.signatures){const V=M._typedFunctionData.signatureMap.get(W);if(V)return V}const Z=v.length;let T,gA;if(H){let V;for(V in T=[],M.signatures)T.push(M._typedFunctionData.signatureMap.get(V))}else T=M._typedFunctionData.signatures;for(let V=0;V<Z;++V){const MA=v[V],uA=[];let xA;for(xA of T){const zA=G(xA.params,V);if(zA&&(!MA.restParam||zA.restParam)){if(!zA.hasAny){const og=D(zA);if(MA.types.some(cg=>!og.has(cg.name)))continue}uA.push(xA)}}if(T=uA,T.length===0)break}for(gA of T)if(gA.params.length<=Z)return gA;throw new TypeError("Signature not found (signature: "+(M.name||"unnamed")+"("+s(v,", ")+"))")}function s(M){let U=arguments.length>1&&arguments[1]!==void 0?arguments[1]:",";return M.map(J=>J.name).join(U)}function c(M){const U=M.indexOf("...")===0,J=(U?M.length>3?M.slice(3):"any":M).split("|").map(W=>i(W.trim()));let H=!1,v=U?"...":"";return{types:J.map(function(W){return H=W.isAny||H,v+=W.name+"|",{name:W.name,typeIndex:W.index,test:W.test,isAny:W.isAny,conversion:null,conversionIndex:-1}}),name:v.slice(0,-1),hasAny:H,hasConversion:!1,restParam:U}}function d(M){const U=M.types.map(Z=>Z.name),J=function(Z){if(Z.length===0)return[];const T=Z.map(i);Z.length>1&&T.sort((MA,uA)=>MA.index-uA.index);let gA=T[0].conversionsTo;if(Z.length===1)return gA;gA=gA.concat([]);const V=new Set(Z);for(let MA=1;MA<T.length;++MA){let uA;for(uA of T[MA].conversionsTo)V.has(uA.from)||(gA.push(uA),V.add(uA.from))}return gA}(U);let H=M.hasAny,v=M.name;const W=J.map(function(Z){const T=i(Z.from);return H=T.isAny||H,v+="|"+Z.from,{name:Z.from,typeIndex:T.index,test:T.test,isAny:T.isAny,conversion:Z,conversionIndex:Z.index}});return{types:M.types.concat(W),name:v,hasAny:H,hasConversion:W.length>0,restParam:M.restParam}}function D(M){return M.typeSet||(M.typeSet=new Set,M.types.forEach(U=>M.typeSet.add(U.name))),M.typeSet}function h(M){const U=[];if(typeof M!="string")throw new TypeError("Signatures must be strings");const J=M.trim();if(J==="")return U;const H=J.split(",");for(let v=0;v<H.length;++v){const W=c(H[v].trim());if(W.restParam&&v!==H.length-1)throw new SyntaxError('Unexpected rest parameter "'+H[v]+'": only allowed for the last parameter');if(W.types.length===0)return null;U.push(W)}return U}function u(M){const U=EA(M);return!!U&&U.restParam}function f(M){if(M&&M.types.length!==0){if(M.types.length===1)return i(M.types[0].name).test;if(M.types.length===2){const U=i(M.types[0].name).test,J=i(M.types[1].name).test;return function(H){return U(H)||J(H)}}{const U=M.types.map(function(J){return i(J.name).test});return function(J){for(let H=0;H<U.length;H++)if(U[H](J))return!0;return!1}}}return ea}function R(M){let U,J,H;if(u(M)){U=yA(M).map(f);const v=U.length,W=f(EA(M)),Z=function(T){for(let gA=v;gA<T.length;gA++)if(!W(T[gA]))return!1;return!0};return function(T){for(let gA=0;gA<U.length;gA++)if(!U[gA](T[gA]))return!1;return Z(T)&&T.length>=v+1}}return M.length===0?function(v){return v.length===0}:M.length===1?(J=f(M[0]),function(v){return J(v[0])&&v.length===1}):M.length===2?(J=f(M[0]),H=f(M[1]),function(v){return J(v[0])&&H(v[1])&&v.length===2}):(U=M.map(f),function(v){for(let W=0;W<U.length;W++)if(!U[W](v[W]))return!1;return v.length===U.length})}function G(M,U){return U<M.length?M[U]:u(M)?EA(M):null}function k(M,U){const J=G(M,U);return J?D(J):new Set}function F(M){return M.conversion===null||M.conversion===void 0}function m(M,U){const J=new Set;return M.forEach(H=>{const v=k(H.params,U);let W;for(W of v)J.add(W)}),J.has("any")?["any"]:Array.from(J)}function N(M,U,J){let H,v;const W=M||"unnamed";let Z,T=J;for(Z=0;Z<U.length;Z++){const uA=[];if(T.forEach(xA=>{const zA=f(G(xA.params,Z));(Z<xA.params.length||u(xA.params))&&zA(U[Z])&&uA.push(xA)}),uA.length===0){if(v=m(T,Z),v.length>0){const xA=o(U[Z]);return H=new TypeError("Unexpected type of argument in function "+W+" (expected: "+v.join(" or ")+", actual: "+xA.join(" | ")+", index: "+Z+")"),H.data={category:"wrongType",fn:W,index:Z,actual:xA,expected:v},H}}else T=uA}const gA=T.map(function(uA){return u(uA.params)?1/0:uA.params.length});if(U.length<Math.min.apply(null,gA))return v=m(T,Z),H=new TypeError("Too few arguments in function "+W+" (expected: "+v.join(" or ")+", index: "+U.length+")"),H.data={category:"tooFewArgs",fn:W,index:U.length,expected:v},H;const V=Math.max.apply(null,gA);if(U.length>V)return H=new TypeError("Too many arguments in function "+W+" (expected: "+V+", actual: "+U.length+")"),H.data={category:"tooManyArgs",fn:W,index:U.length,expectedLength:V},H;const MA=[];for(let uA=0;uA<U.length;++uA)MA.push(o(U[uA]).join("|"));return H=new TypeError('Arguments of type "'+MA.join(", ")+'" do not match any of the defined signatures of function '+W+"."),H.data={category:"mismatch",actual:MA},H}function S(M){let U=C.length+1;for(let J=0;J<M.types.length;J++)F(M.types[J])&&(U=Math.min(U,M.types[J].typeIndex));return U}function j(M){let U=a+1;for(let J=0;J<M.types.length;J++)F(M.types[J])||(U=Math.min(U,M.types[J].conversionIndex));return U}function z(M,U){if(M.hasAny){if(!U.hasAny)return 1}else if(U.hasAny)return-1;if(M.restParam){if(!U.restParam)return 1}else if(U.restParam)return-1;if(M.hasConversion){if(!U.hasConversion)return 1}else if(U.hasConversion)return-1;const J=S(M)-S(U);if(J<0)return-1;if(J>0)return 1;const H=j(M)-j(U);return H<0?-1:H>0?1:0}function $(M,U){const J=M.params,H=U.params,v=EA(J),W=EA(H),Z=u(J),T=u(H);if(Z&&v.hasAny){if(!T||!W.hasAny)return 1}else if(T&&W.hasAny)return-1;let gA,V=0,MA=0;for(gA of J)gA.hasAny&&++V,gA.hasConversion&&++MA;let uA=0,xA=0;for(gA of H)gA.hasAny&&++uA,gA.hasConversion&&++xA;if(V!==uA)return V-uA;if(Z&&v.hasConversion){if(!T||!W.hasConversion)return 1}else if(T&&W.hasConversion)return-1;if(MA!==xA)return MA-xA;if(Z){if(!T)return 1}else if(T)return-1;const zA=(J.length-H.length)*(Z?-1:1);if(zA!==0)return zA;const og=[];let cg,pg=0;for(let zg=0;zg<J.length;++zg){const tI=z(J[zg],H[zg]);og.push(tI),pg+=tI}if(pg!==0)return pg;for(cg of og)if(cg!==0)return cg;return 0}function _(M,U){let J=U;if(M.some(v=>v.hasConversion)){const v=u(M),W=M.map(X);J=function(){const Z=[],T=v?arguments.length-1:arguments.length;for(let gA=0;gA<T;gA++)Z[gA]=W[gA](arguments[gA]);return v&&(Z[T]=arguments[T].map(W[T])),U.apply(this,Z)}}let H=J;if(u(M)){const v=M.length-1;H=function(){return J.apply(this,cA(arguments,0,v).concat([cA(arguments,v)]))}}return H}function X(M){let U,J,H,v;const W=[],Z=[];switch(M.types.forEach(function(T){T.conversion&&(W.push(i(T.conversion.from).test),Z.push(T.conversion.convert))}),Z.length){case 0:return function(T){return T};case 1:return U=W[0],H=Z[0],function(T){return U(T)?H(T):T};case 2:return U=W[0],J=W[1],H=Z[0],v=Z[1],function(T){return U(T)?H(T):J(T)?v(T):T};default:return function(T){for(let gA=0;gA<Z.length;gA++)if(W[gA](T))return Z[gA](T);return T}}}function CA(M){return function U(J,H,v){if(H<J.length){const T=J[H];let gA=[];if(T.restParam){const V=T.types.filter(F);V.length<T.types.length&&gA.push({types:V,name:"..."+V.map(MA=>MA.name).join("|"),hasAny:V.some(MA=>MA.isAny),hasConversion:!1,restParam:!0}),gA.push(T)}else gA=T.types.map(function(V){return{types:[V],name:V.name,hasAny:V.isAny,hasConversion:V.conversion,restParam:!1}});return W=gA,Z=function(V){return U(J,H+1,v.concat([V]))},Array.prototype.concat.apply([],W.map(Z))}return[v];var W,Z}(M,0,[])}function sA(M,U){const J=Math.max(M.length,U.length);for(let T=0;T<J;T++){const gA=k(M,T),V=k(U,T);let MA,uA=!1;for(MA of V)if(gA.has(MA)){uA=!0;break}if(!uA)return!1}const H=M.length,v=U.length,W=u(M),Z=u(U);return W?Z?H===v:v>=H:Z?H>=v:H===v}function oA(M,U,J){const H=[];let v;for(v of M){let W=J[v];if(typeof W!="number")throw new TypeError('No definition for referenced signature "'+v+'"');if(W=U[W],typeof W!="function")return!1;H.push(W)}return H}function fA(M,U,J){const H=function(Z){return Z.map(T=>hA(T)?GA(T.referToSelf.callback):nA(T)?pA(T.referTo.references,T.referTo.callback):T)}(M),v=new Array(H.length).fill(!1);let W=!0;for(;W;){W=!1;let Z=!0;for(let T=0;T<H.length;++T){if(v[T])continue;const gA=H[T];if(hA(gA))H[T]=gA.referToSelf.callback(J),H[T].referToSelf=gA.referToSelf,v[T]=!0,Z=!1;else if(nA(gA)){const V=oA(gA.referTo.references,H,U);V?(H[T]=gA.referTo.callback.apply(this,V),H[T].referTo=gA.referTo,v[T]=!0,Z=!1):W=!0}}if(Z&&W)throw new SyntaxError("Circular reference detected in resolving typed.referTo")}return H}function bA(M,U){if(e.createCount++,Object.keys(U).length===0)throw new SyntaxError("No signatures provided");e.warnAgainstDeprecatedThis&&function(DA){const dg=/\bthis(\(|\.signatures\b)/;Object.keys(DA).forEach(zI=>{const _g=DA[zI];if(dg.test(_g.toString()))throw new SyntaxError("Using `this` to self-reference a function is deprecated since typed-function@3. Use typed.referTo and typed.referToSelf instead.")})}(U);const J=[],H=[],v={},W=[];let Z;for(Z in U){if(!Object.prototype.hasOwnProperty.call(U,Z))continue;const DA=h(Z);if(!DA)continue;J.forEach(function(nI){if(sA(nI,DA))throw new TypeError('Conflicting signatures "'+s(nI)+'" and "'+s(DA)+'".')}),J.push(DA);const dg=H.length;H.push(U[Z]);const zI=DA.map(d);let _g;for(_g of CA(zI)){const nI=s(_g);W.push({params:_g,name:nI,fn:dg}),_g.every(HQ=>!HQ.hasConversion)&&(v[nI]=dg)}}W.sort($);const T=fA(H,v,oI);let gA;for(gA in v)Object.prototype.hasOwnProperty.call(v,gA)&&(v[gA]=T[v[gA]]);const V=[],MA=new Map;for(gA of W)MA.has(gA.name)||(gA.fn=T[gA.fn],V.push(gA),MA.set(gA.name,gA));const uA=V[0]&&V[0].params.length<=2&&!u(V[0].params),xA=V[1]&&V[1].params.length<=2&&!u(V[1].params),zA=V[2]&&V[2].params.length<=2&&!u(V[2].params),og=V[3]&&V[3].params.length<=2&&!u(V[3].params),cg=V[4]&&V[4].params.length<=2&&!u(V[4].params),pg=V[5]&&V[5].params.length<=2&&!u(V[5].params),zg=uA&&xA&&zA&&og&&cg&&pg;for(let DA=0;DA<V.length;++DA)V[DA].test=R(V[DA].params);const tI=uA?f(V[0].params[0]):ug,SQ=xA?f(V[1].params[0]):ug,RI=zA?f(V[2].params[0]):ug,kI=og?f(V[3].params[0]):ug,MB=cg?f(V[4].params[0]):ug,GB=pg?f(V[5].params[0]):ug,hg=uA?f(V[0].params[1]):ug,LQ=xA?f(V[1].params[1]):ug,RB=zA?f(V[2].params[1]):ug,mI=og?f(V[3].params[1]):ug,vI=cg?f(V[4].params[1]):ug,kB=pg?f(V[5].params[1]):ug;for(let DA=0;DA<V.length;++DA)V[DA].implementation=_(V[DA].params,V[DA].fn);const qI=uA?V[0].implementation:DI,TI=xA?V[1].implementation:DI,mB=zA?V[2].implementation:DI,NB=og?V[3].implementation:DI,Xg=cg?V[4].implementation:DI,OI=pg?V[5].implementation:DI,WI=uA?V[0].params.length:-1,PI=xA?V[1].params.length:-1,UB=zA?V[2].params.length:-1,JQ=og?V[3].params.length:-1,SB=cg?V[4].params.length:-1,xQ=pg?V[5].params.length:-1,YQ=zg?6:0,Zg=V.length,LB=V.map(DA=>DA.test),JB=V.map(DA=>DA.implementation),VI=function(){for(let DA=YQ;DA<Zg;DA++)if(LB[DA](arguments))return JB[DA].apply(this,arguments);return e.onMismatch(M,arguments,V)};function oI(DA,dg){return arguments.length===WI&&tI(DA)&&hg(dg)?qI.apply(this,arguments):arguments.length===PI&&SQ(DA)&&LQ(dg)?TI.apply(this,arguments):arguments.length===UB&&RI(DA)&&RB(dg)?mB.apply(this,arguments):arguments.length===JQ&&kI(DA)&&mI(dg)?NB.apply(this,arguments):arguments.length===SB&&MB(DA)&&vI(dg)?Xg.apply(this,arguments):arguments.length===xQ&&GB(DA)&&kB(dg)?OI.apply(this,arguments):VI.apply(this,arguments)}try{Object.defineProperty(oI,"name",{value:M})}catch{}return oI.signatures=v,oI._typedFunctionData={signatures:V,signatureMap:MA},oI}function iA(M,U,J){throw N(M,U,J)}function yA(M){return cA(M,0,M.length-1)}function EA(M){return M[M.length-1]}function cA(M,U,J){return Array.prototype.slice.call(M,U,J)}function pA(M,U){return{referTo:{references:M,callback:U}}}function GA(M){if(typeof M!="function")throw new TypeError("Callback function expected as first argument");return{referToSelf:{callback:M}}}function nA(M){return M&&typeof M.referTo=="object"&&Array.isArray(M.referTo.references)&&typeof M.referTo.callback=="function"}function hA(M){return M&&typeof M.referToSelf=="object"&&typeof M.referToSelf.callback=="function"}function JA(M,U){if(!M)return U;if(U&&U!==M){const J=new Error("Function names do not match (expected: "+M+", actual: "+U+")");throw J.data={actual:U,expected:M},J}return M}function vA(M){let U;for(const J in M)Object.prototype.hasOwnProperty.call(M,J)&&(r(M[J])||typeof M[J].signature=="string")&&(U=JA(U,M[J].name));return U}function sg(M,U){let J;for(J in U)if(Object.prototype.hasOwnProperty.call(U,J)){if(J in M&&U[J]!==M[J]){const H=new Error('Signature "'+J+'" is defined twice');throw H.data={signature:J,sourceFunction:U[J],destFunction:M[J]},H}M[J]=U[J]}}E(),t(g);const OA=e;function dA(M){if(!M||typeof M.from!="string"||typeof M.to!="string"||typeof M.convert!="function")throw new TypeError("Object with properties {from: string, to: string, convert: function} expected");if(M.to===M.from)throw new SyntaxError('Illegal to define conversion from "'+M.from+'" to itself.')}return e=function(M){const U=typeof M=="string";let J=U?M:"";const H={};for(let v=U?1:0;v<arguments.length;++v){const W=arguments[v];let Z,T={};if(typeof W=="function"?(Z=W.name,typeof W.signature=="string"?T[W.signature]=W:r(W)&&(T=W.signatures)):A(W)&&(T=W,U||(Z=vA(W))),Object.keys(T).length===0){const gA=new TypeError("Argument to 'typed' at index "+v+" is not a (typed) function, nor an object with signatures as keys and functions as values.");throw gA.data={index:v,argument:W},gA}U||(J=JA(J,Z)),sg(H,T)}return bA(J||"",H)},e.create=B,e.createCount=OA.createCount,e.onMismatch=iA,e.throwMismatchError=iA,e.createError=N,e.clear=E,e.clearConversions=function(){let M;for(M of C)Q.get(M).conversionsTo=[];a=0},e.addTypes=t,e._findType=i,e.referTo=function(){const M=yA(arguments).map(J=>s(h(J))),U=EA(arguments);if(typeof U!="function")throw new TypeError("Callback function expected as last argument");return pA(M,U)},e.referToSelf=GA,e.convert=function(M,U){const J=i(U);if(J.test(M))return M;const H=J.conversionsTo;if(H.length===0)throw new Error("There are no conversions to "+U+" defined.");for(let v=0;v<H.length;v++)if(i(H[v].from).test(M))return H[v].convert(M);throw new Error("Cannot convert "+M+" to "+U)},e.findSignature=n,e.find=function(M,U,J){return n(M,U,J).implementation},e.isTypedFunction=r,e.warnAgainstDeprecatedThis=!0,e.addType=function(M,U){let J="any";U!==!1&&Q.has("Object")&&(J="Object"),e.addTypes([M],J)},e.addConversion=function(M){let U=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{override:!1};dA(M);const J=i(M.to),H=J.conversionsTo.find(v=>v.from===M.from);if(H){if(!U||!U.override)throw new Error('There is already a conversion from "'+M.from+'" to "'+J.name+'"');e.removeConversion({from:H.from,to:M.to,convert:H.convert})}J.conversionsTo.push({from:M.from,convert:M.convert,index:a++})},e.addConversions=function(M,U){M.forEach(J=>e.addConversion(J,U))},e.removeConversion=function(M){dA(M);const U=i(M.to),J=function(v,W){for(let Z=0;Z<v.length;Z++)if(W(v[Z]))return v[Z]}(U.conversionsTo,v=>v.from===M.from);if(!J)throw new Error("Attempt to remove nonexistent conversion from "+M.from+" to "+M.to);if(J.convert!==M.convert)throw new Error("Conversion to remove does not match existing conversion");const H=U.conversionsTo.indexOf(J);U.conversionsTo.splice(H,1)},e.resolve=function(M,U){if(!r(M))throw new TypeError(Ea);const J=M._typedFunctionData.signatures;for(let H=0;H<J.length;++H)if(J[H].test(U))return J[H];return null},e}();function wA(B,A,g,I){function Q(C){var a=function(e,i){for(var t={},E=0;E<i.length;E++){var o=i[E],r=e[o];r!==void 0&&(t[o]=r)}return t}(C,A.map(di));return function(e,i,t){var E=i.filter(r=>!function(n){return n&&n[0]==="?"}(r)).every(r=>t[r]!==void 0);if(!E){var o=i.filter(r=>t[r]===void 0);throw new Error('Cannot create function "'.concat(e,'", ')+"some dependencies are missing: ".concat(o.map(r=>'"'.concat(r,'"')).join(", "),"."))}}(B,A,C),g(a)}return Q.isFactory=!0,Q.fn=B,Q.dependencies=A.slice().sort(),I&&(Q.meta=I),Q}function di(B){return B&&B[0]==="?"?B.slice(1):B}function LA(B){return typeof B=="boolean"||!!isFinite(B)&&B===Math.round(B)}function QQ(B,A,g){var I={2:"0b",8:"0o",16:"0x"}[A],Q="";if(g){if(g<1)throw new Error("size must be in greater than 0");if(!LA(g))throw new Error("size must be an integer");if(B>2**(g-1)-1||B<-(2**(g-1)))throw new Error("Value must be in range [-2^".concat(g-1,", 2^").concat(g-1,"-1]"));if(!LA(B))throw new Error("Value must be an integer");B<0&&(B+=2**g),Q="i".concat(g)}var C="";return B<0&&(B=-B,C="-"),"".concat(C).concat(I).concat(B.toString(A)).concat(Q)}function CQ(B,A){if(typeof A=="function")return A(B);if(B===1/0)return"Infinity";if(B===-1/0)return"-Infinity";if(isNaN(B))return"NaN";var{notation:g,precision:I,wordSize:Q}=ia(A);switch(g){case"fixed":return function(C,a){if(isNaN(C)||!isFinite(C))return String(C);var e=BB(C),i=typeof a=="number"?QB(e,e.exponent+1+a):e,t=i.coefficients,E=i.exponent+1,o=E+(a||0);return t.length<o&&(t=t.concat(lI(o-t.length))),E<0&&(t=lI(1-E).concat(t),E=1),E<t.length&&t.splice(E,0,E===0?"0.":"."),i.sign+t.join("")}(B,I);case"exponential":return ta(B,I);case"engineering":return function(C,a){if(isNaN(C)||!isFinite(C))return String(C);var e=BB(C),i=QB(e,a),t=i.exponent,E=i.coefficients,o=t%3==0?t:t<0?t-3-t%3:t-t%3;if(NA(a))for(;a>E.length||t-o+1>E.length;)E.push(0);else for(var r=Math.abs(t-o)-(E.length-1),n=0;n<r;n++)E.push(0);for(var s=Math.abs(t-o),c=1;s>0;)c++,s--;var d=E.slice(c).join(""),D=NA(a)&&d.length||d.match(/[1-9]/)?"."+d:"",h=E.slice(0,c).join("")+D+"e"+(t>=0?"+":"")+o.toString();return i.sign+h}(B,I);case"bin":return QQ(B,2,Q);case"oct":return QQ(B,8,Q);case"hex":return QQ(B,16,Q);case"auto":return function(C,a,e){if(isNaN(C)||!isFinite(C))return String(C);var i=na(e?.lowerExp,-3),t=na(e?.upperExp,5),E=BB(C),o=a?QB(E,a):E;if(o.exponent<i||o.exponent>=t)return ta(C,a);var r=o.coefficients,n=o.exponent;r.length<a&&(r=r.concat(lI(a-r.length))),r=r.concat(lI(n-r.length+1+(r.length<a?a-r.length:0)));var s=n>0?n:0;return s<(r=lI(-n).concat(r)).length-1&&r.splice(s+1,0,"."),o.sign+r.join("")}(B,I,A).replace(/((\.\d*?)(0+))($|e)/,function(){var C=arguments[2],a=arguments[4];return C!=="."?C+a:a});default:throw new Error('Unknown notation "'+g+'". Choose "auto", "exponential", "fixed", "bin", "oct", or "hex.')}}function ia(B){var A,g,I="auto";if(B!==void 0)if(NA(B))A=B;else if(qA(B))A=B.toNumber();else{if(!BQ(B))throw new Error("Unsupported type of options, number, BigNumber, or object expected");B.precision!==void 0&&(A=oa(B.precision,()=>{throw new Error('Option "precision" must be a number or BigNumber')})),B.wordSize!==void 0&&(g=oa(B.wordSize,()=>{throw new Error('Option "wordSize" must be a number or BigNumber')})),B.notation&&(I=B.notation)}return{notation:I,precision:A,wordSize:g}}function BB(B){var A=String(B).toLowerCase().match(/^(-?)(\d+\.?\d*)(e([+-]?\d+))?$/);if(!A)throw new SyntaxError("Invalid number "+B);var g=A[1],I=A[2],Q=parseFloat(A[4]||"0"),C=I.indexOf(".");Q+=C!==-1?C-1:I.length-1;var a=I.replace(".","").replace(/^0*/,function(e){return Q-=e.length,""}).replace(/0*$/,"").split("").map(function(e){return parseInt(e)});return a.length===0&&(a.push(0),Q++),{sign:g,coefficients:a,exponent:Q}}function ta(B,A){if(isNaN(B)||!isFinite(B))return String(B);var g=BB(B),I=A?QB(g,A):g,Q=I.coefficients,C=I.exponent;Q.length<A&&(Q=Q.concat(lI(A-Q.length)));var a=Q.shift();return I.sign+a+(Q.length>0?"."+Q.join(""):"")+"e"+(C>=0?"+":"")+C}function QB(B,A){for(var g={sign:B.sign,coefficients:B.coefficients,exponent:B.exponent},I=g.coefficients;A<=0;)I.unshift(0),g.exponent++,A++;if(I.length>A&&I.splice(A,I.length-A)[0]>=5){var Q=A-1;for(I[Q]++;I[Q]===10;)I.pop(),Q===0&&(I.unshift(0),g.exponent++,Q++),I[--Q]++}return g}function lI(B){for(var A=[],g=0;g<B;g++)A.push(0);return A}function CB(B,A){var g=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1e-8,I=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;if(g<=0)throw new Error("Relative tolerance must be greater than 0");if(I<0)throw new Error("Absolute tolerance must be at least 0");return!isNaN(B)&&!isNaN(A)&&(isFinite(B)&&isFinite(A)?B===A||Math.abs(B-A)<=Math.max(g*Math.max(Math.abs(B),Math.abs(A)),I):B===A)}function oa(B,A){return NA(B)?B:qA(B)?B.toNumber():void A()}function na(B,A){return NA(B)?B:qA(B)?B.toNumber():A}var ra=function(){return ra=IB.create,IB},Di=wA("typed",["?BigNumber","?Complex","?DenseMatrix","?Fraction"],function(B){var{BigNumber:A,Complex:g,DenseMatrix:I,Fraction:Q}=B,C=ra();return C.clear(),C.addTypes([{name:"number",test:NA},{name:"Complex",test:Qa},{name:"BigNumber",test:qA},{name:"bigint",test:jE},{name:"Fraction",test:Ca},{name:"Unit",test:aa},{name:"identifier",test:a=>Gg&&/^(?:[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-\u1C8A\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-\uA7CD\uA7D0\uA7D1\uA7D3\uA7D5-\uA7DC\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\uDDC0-\uDDF3\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\uDD4A-\uDD65\uDD6F-\uDD85\uDE80-\uDEA9\uDEB0\uDEB1\uDEC2-\uDEC4\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\uDF80-\uDF89\uDF8B\uDF8E\uDF90-\uDFB5\uDFB7\uDFD1\uDFD3]|\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\uDFC0-\uDFE0]|\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\uD80E\uD80F\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46\uDC60-\uDFFF]|\uD810[\uDC00-\uDFFA]|\uD811[\uDC00-\uDE46]|\uD818[\uDD00-\uDD1D]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDD40-\uDD6C\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDCFF-\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\uDDD0-\uDDED\uDDF0\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-\u1C8A\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-\uA7CD\uA7D0\uA7D1\uA7D3\uA7D5-\uA7DC\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\uDDC0-\uDDF3\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\uDD4A-\uDD65\uDD6F-\uDD85\uDE80-\uDEA9\uDEB0\uDEB1\uDEC2-\uDEC4\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\uDF80-\uDF89\uDF8B\uDF8E\uDF90-\uDFB5\uDFB7\uDFD1\uDFD3]|\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\uDFC0-\uDFE0]|\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\uD80E\uD80F\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46\uDC60-\uDFFF]|\uD810[\uDC00-\uDFFA]|\uD811[\uDC00-\uDE46]|\uD818[\uDD00-\uDD1D]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDD40-\uDD6C\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDCFF-\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\uDDD0-\uDDED\uDDF0\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(a)},{name:"string",test:Gg},{name:"Chain",test:hi},{name:"Array",test:PA},{name:"Matrix",test:KA},{name:"DenseMatrix",test:vE},{name:"SparseMatrix",test:qE},{name:"Range",test:TE},{name:"Index",test:IQ},{name:"boolean",test:OE},{name:"ResultSet",test:WE},{name:"Help",test:PE},{name:"function",test:VE},{name:"Date",test:zE},{name:"RegExp",test:XE},{name:"null",test:_E},{name:"undefined",test:$E},{name:"AccessorNode",test:Ai},{name:"ArrayNode",test:gi},{name:"AssignmentNode",test:Ii},{name:"BlockNode",test:Bi},{name:"ConditionalNode",test:Qi},{name:"ConstantNode",test:Ci},{name:"FunctionNode",test:ei},{name:"FunctionAssignmentNode",test:ai},{name:"IndexNode",test:Ei},{name:"Node",test:ii},{name:"ObjectNode",test:ti},{name:"OperatorNode",test:oi},{name:"ParenthesisNode",test:ni},{name:"RangeNode",test:ri},{name:"RelationalNode",test:si},{name:"SymbolNode",test:ci},{name:"Map",test:ZE},{name:"Object",test:BQ}]),C.addConversions([{from:"number",to:"BigNumber",convert:function(a){if(A||aB(a),a.toExponential().replace(/e.*$/,"").replace(/^0\.?0*|\./,"").length>15)throw new TypeError("Cannot implicitly convert a number with >15 significant digits to BigNumber (value: "+a+"). Use function bignumber(x) to convert to BigNumber.");return new A(a)}},{from:"number",to:"Complex",convert:function(a){return g||eB(a),new g(a,0)}},{from:"BigNumber",to:"Complex",convert:function(a){return g||eB(a),new g(a.toNumber(),0)}},{from:"bigint",to:"number",convert:function(a){if(a>Number.MAX_SAFE_INTEGER)throw new TypeError("Cannot implicitly convert bigint to number: value exceeds the max safe integer value (value: "+a+")");return Number(a)}},{from:"bigint",to:"BigNumber",convert:function(a){return A||aB(a),new A(a.toString())}},{from:"bigint",to:"Fraction",convert:function(a){return Q||EB(a),new Q(a)}},{from:"Fraction",to:"BigNumber",convert:function(a){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(a){return g||eB(a),new g(a.valueOf(),0)}},{from:"number",to:"Fraction",convert:function(a){Q||EB(a);var e=new Q(a);if(e.valueOf()!==a)throw new TypeError("Cannot implicitly convert a number to a Fraction when there will be a loss of precision (value: "+a+"). Use function fraction(x) to convert to Fraction.");return e}},{from:"string",to:"number",convert:function(a){var e=Number(a);if(isNaN(e))throw new Error('Cannot convert "'+a+'" to a number');return e}},{from:"string",to:"BigNumber",convert:function(a){A||aB(a);try{return new A(a)}catch{throw new Error('Cannot convert "'+a+'" to BigNumber')}}},{from:"string",to:"bigint",convert:function(a){try{return BigInt(a)}catch{throw new Error('Cannot convert "'+a+'" to BigInt')}}},{from:"string",to:"Fraction",convert:function(a){Q||EB(a);try{return new Q(a)}catch{throw new Error('Cannot convert "'+a+'" to Fraction')}}},{from:"string",to:"Complex",convert:function(a){g||eB(a);try{return new g(a)}catch{throw new Error('Cannot convert "'+a+'" to Complex')}}},{from:"boolean",to:"number",convert:function(a){return+a}},{from:"boolean",to:"BigNumber",convert:function(a){return A||aB(a),new A(+a)}},{from:"boolean",to:"bigint",convert:function(a){return BigInt(+a)}},{from:"boolean",to:"Fraction",convert:function(a){return Q||EB(a),new Q(+a)}},{from:"boolean",to:"string",convert:function(a){return String(a)}},{from:"Array",to:"Matrix",convert:function(a){return I||function(){throw new Error("Cannot convert array into a Matrix: no class 'DenseMatrix' provided")}(),new I(a)}},{from:"Matrix",to:"Array",convert:function(a){return a.valueOf()}}]),C.onMismatch=(a,e,i)=>{var t=C.createError(a,e,i);if(["wrongType","mismatch"].includes(t.data.category)&&e.length===1&&AB(e[0])&&i.some(o=>!o.params.includes(","))){var E=new TypeError("Function '".concat(a,"' doesn't apply to matrices. To call it ")+"elementwise on a matrix 'M', try 'map(M, ".concat(a,")'."));throw E.data=t.data,E}throw t},C.onMismatch=(a,e,i)=>{var t=C.createError(a,e,i);if(["wrongType","mismatch"].includes(t.data.category)&&e.length===1&&AB(e[0])&&i.some(o=>!o.params.includes(","))){var E=new TypeError("Function '".concat(a,"' doesn't apply to matrices. To call it ")+"elementwise on a matrix 'M', try 'map(M, ".concat(a,")'."));throw E.data=t.data,E}throw t},C});function aB(B){throw new Error("Cannot convert value ".concat(B," into a BigNumber: no class 'BigNumber' provided"))}function eB(B){throw new Error("Cannot convert value ".concat(B," into a Complex number: no class 'Complex' provided"))}function EB(B){throw new Error("Cannot convert value ".concat(B," into a Fraction, no class 'Fraction' provided."))}/*!
|
|
959
959
|
* decimal.js v10.5.0
|
|
960
960
|
* An arbitrary-precision Decimal type for JavaScript.
|
|
961
961
|
* https://github.com/MikeMcl/decimal.js
|
|
962
962
|
* Copyright (c) 2025 Michael Mclaughlin <M8ch88l@gmail.com>
|
|
963
963
|
* MIT Licence
|
|
964
|
-
*/var iE,Sg,bI=9e15,jg=1e9,IQ="0123456789abcdef",EB="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",aB="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",BQ={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-bI,maxE:bI,crypto:!1},tA=!0,eB="[DecimalError] ",qg=eB+"Invalid argument: ",tE=eB+"Precision limit exceeded",oE=eB+"crypto unavailable",nE="[object Decimal]",$A=Math.floor,VA=Math.pow,ei=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,ii=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,ti=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,sE=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,lg=1e7,oi=EB.length-1,QQ=aB.length-1,j={toStringTag:nE};function _A(B){var A,g,I,Q=B.length-1,C="",E=B[0];if(Q>0){for(C+=E,A=1;A<Q;A++)(g=7-(I=B[A]+"").length)&&(C+=vg(g)),C+=I;(g=7-(I=(E=B[A])+"").length)&&(C+=vg(g))}else if(E===0)return"0";for(;E%10==0;)E/=10;return C+E}function Eg(B,A,g){if(B!==~~B||B<A||B>g)throw Error(qg+B)}function UI(B,A,g,I){var Q,C,E,a;for(C=B[0];C>=10;C/=10)--A;return--A<0?(A+=7,Q=0):(Q=Math.ceil((A+1)/7),A%=7),C=VA(10,7-A),a=B[Q]%C|0,I==null?A<3?(A==0?a=a/100|0:A==1&&(a=a/10|0),E=g<4&&a==99999||g>3&&a==49999||a==5e4||a==0):E=(g<4&&a+1==C||g>3&&a+1==C/2)&&(B[Q+1]/C/100|0)==VA(10,A-2)-1||(a==C/2||a==0)&&!(B[Q+1]/C/100|0):A<4?(A==0?a=a/1e3|0:A==1?a=a/100|0:A==2&&(a=a/10|0),E=(I||g<4)&&a==9999||!I&&g>3&&a==4999):E=((I||g<4)&&a+1==C||!I&&g>3&&a+1==C/2)&&(B[Q+1]/C/1e3|0)==VA(10,A-3)-1,E}function iB(B,A,g){for(var I,Q,C=[0],E=0,a=B.length;E<a;){for(Q=C.length;Q--;)C[Q]*=A;for(C[0]+=IQ.indexOf(B.charAt(E++)),I=0;I<C.length;I++)C[I]>g-1&&(C[I+1]===void 0&&(C[I+1]=0),C[I+1]+=C[I]/g|0,C[I]%=g)}return C.reverse()}j.absoluteValue=j.abs=function(){var B=new this.constructor(this);return B.s<0&&(B.s=1),CA(B)},j.ceil=function(){return CA(new this.constructor(this),this.e+1,2)},j.clampedTo=j.clamp=function(B,A){var g=this,I=g.constructor;if(B=new I(B),A=new I(A),!B.s||!A.s)return new I(NaN);if(B.gt(A))throw Error(qg+A);return g.cmp(B)<0?B:g.cmp(A)>0?A:new I(g)},j.comparedTo=j.cmp=function(B){var A,g,I,Q,C=this,E=C.d,a=(B=new C.constructor(B)).d,i=C.s,t=B.s;if(!E||!a)return i&&t?i!==t?i:E===a?0:!E^i<0?1:-1:NaN;if(!E[0]||!a[0])return E[0]?i:a[0]?-t:0;if(i!==t)return i;if(C.e!==B.e)return C.e>B.e^i<0?1:-1;for(A=0,g=(I=E.length)<(Q=a.length)?I:Q;A<g;++A)if(E[A]!==a[A])return E[A]>a[A]^i<0?1:-1;return I===Q?0:I>Q^i<0?1:-1},j.cosine=j.cos=function(){var B,A,g=this,I=g.constructor;return g.d?g.d[0]?(B=I.precision,A=I.rounding,I.precision=B+Math.max(g.e,g.sd())+7,I.rounding=1,g=function(Q,C){var E,a,i;if(C.isZero())return C;a=C.d.length,a<32?i=(1/sB(4,E=Math.ceil(a/3))).toString():(E=16,i="2.3283064365386962890625e-10"),Q.precision+=E,C=wI(Q,1,C.times(i),new Q(1));for(var t=E;t--;){var e=C.times(C);C=e.times(e).minus(e).times(8).plus(1)}return Q.precision-=E,C}(I,bE(I,g)),I.precision=B,I.rounding=A,CA(Sg==2||Sg==3?g.neg():g,B,A,!0)):new I(1):new I(NaN)},j.cubeRoot=j.cbrt=function(){var B,A,g,I,Q,C,E,a,i,t,e=this,o=e.constructor;if(!e.isFinite()||e.isZero())return new o(e);for(tA=!1,(C=e.s*VA(e.s*e,1/3))&&Math.abs(C)!=1/0?I=new o(C.toString()):(g=_A(e.d),(C=((B=e.e)-g.length+1)%3)&&(g+=C==1||C==-2?"0":"00"),C=VA(g,1/3),B=$A((B+1)/3)-(B%3==(B<0?-1:2)),(I=new o(g=C==1/0?"5e"+B:(g=C.toExponential()).slice(0,g.indexOf("e")+1)+B)).s=e.s),E=(B=o.precision)+3;;)if(t=(i=(a=I).times(a).times(a)).plus(e),I=NA(t.plus(e).times(a),t.plus(i),E+2,1),_A(a.d).slice(0,E)===(g=_A(I.d)).slice(0,E)){if((g=g.slice(E-3,E+1))!="9999"&&(Q||g!="4999")){+g&&(+g.slice(1)||g.charAt(0)!="5")||(CA(I,B+1,1),A=!I.times(I).times(I).eq(e));break}if(!Q&&(CA(a,B+1,0),a.times(a).times(a).eq(e))){I=a;break}E+=4,Q=1}return tA=!0,CA(I,B,o.rounding,A)},j.decimalPlaces=j.dp=function(){var B,A=this.d,g=NaN;if(A){if(g=7*((B=A.length-1)-$A(this.e/7)),B=A[B])for(;B%10==0;B/=10)g--;g<0&&(g=0)}return g},j.dividedBy=j.div=function(B){return NA(this,new this.constructor(B))},j.dividedToIntegerBy=j.divToInt=function(B){var A=this.constructor;return CA(NA(this,new A(B),0,1,1),A.precision,A.rounding)},j.equals=j.eq=function(B){return this.cmp(B)===0},j.floor=function(){return CA(new this.constructor(this),this.e+1,3)},j.greaterThan=j.gt=function(B){return this.cmp(B)>0},j.greaterThanOrEqualTo=j.gte=function(B){var A=this.cmp(B);return A==1||A===0},j.hyperbolicCosine=j.cosh=function(){var B,A,g,I,Q,C=this,E=C.constructor,a=new E(1);if(!C.isFinite())return new E(C.s?1/0:NaN);if(C.isZero())return a;g=E.precision,I=E.rounding,E.precision=g+Math.max(C.e,C.sd())+4,E.rounding=1,(Q=C.d.length)<32?A=(1/sB(4,B=Math.ceil(Q/3))).toString():(B=16,A="2.3283064365386962890625e-10"),C=wI(E,1,C.times(A),new E(1),!0);for(var i,t=B,e=new E(8);t--;)i=C.times(C),C=a.minus(i.times(e.minus(i.times(e))));return CA(C,E.precision=g,E.rounding=I,!0)},j.hyperbolicSine=j.sinh=function(){var B,A,g,I,Q=this,C=Q.constructor;if(!Q.isFinite()||Q.isZero())return new C(Q);if(A=C.precision,g=C.rounding,C.precision=A+Math.max(Q.e,Q.sd())+4,C.rounding=1,(I=Q.d.length)<3)Q=wI(C,2,Q,Q,!0);else{B=(B=1.4*Math.sqrt(I))>16?16:0|B,Q=wI(C,2,Q=Q.times(1/sB(5,B)),Q,!0);for(var E,a=new C(5),i=new C(16),t=new C(20);B--;)E=Q.times(Q),Q=Q.times(a.plus(E.times(i.times(E).plus(t))))}return C.precision=A,C.rounding=g,CA(Q,A,g,!0)},j.hyperbolicTangent=j.tanh=function(){var B,A,g=this,I=g.constructor;return g.isFinite()?g.isZero()?new I(g):(B=I.precision,A=I.rounding,I.precision=B+7,I.rounding=1,NA(g.sinh(),g.cosh(),I.precision=B,I.rounding=A)):new I(g.s)},j.inverseCosine=j.acos=function(){var B=this,A=B.constructor,g=B.abs().cmp(1),I=A.precision,Q=A.rounding;return g!==-1?g===0?B.isNeg()?pg(A,I,Q):new A(0):new A(NaN):B.isZero()?pg(A,I+4,Q).times(.5):(A.precision=I+6,A.rounding=1,B=new A(1).minus(B).div(B.plus(1)).sqrt().atan(),A.precision=I,A.rounding=Q,B.times(2))},j.inverseHyperbolicCosine=j.acosh=function(){var B,A,g=this,I=g.constructor;return g.lte(1)?new I(g.eq(1)?0:NaN):g.isFinite()?(B=I.precision,A=I.rounding,I.precision=B+Math.max(Math.abs(g.e),g.sd())+4,I.rounding=1,tA=!1,g=g.times(g).minus(1).sqrt().plus(g),tA=!0,I.precision=B,I.rounding=A,g.ln()):new I(g)},j.inverseHyperbolicSine=j.asinh=function(){var B,A,g=this,I=g.constructor;return!g.isFinite()||g.isZero()?new I(g):(B=I.precision,A=I.rounding,I.precision=B+2*Math.max(Math.abs(g.e),g.sd())+6,I.rounding=1,tA=!1,g=g.times(g).plus(1).sqrt().plus(g),tA=!0,I.precision=B,I.rounding=A,g.ln())},j.inverseHyperbolicTangent=j.atanh=function(){var B,A,g,I,Q=this,C=Q.constructor;return Q.isFinite()?Q.e>=0?new C(Q.abs().eq(1)?Q.s/0:Q.isZero()?Q:NaN):(B=C.precision,A=C.rounding,I=Q.sd(),Math.max(I,B)<2*-Q.e-1?CA(new C(Q),B,A,!0):(C.precision=g=I-Q.e,Q=NA(Q.plus(1),new C(1).minus(Q),g+B,1),C.precision=B+4,C.rounding=1,Q=Q.ln(),C.precision=B,C.rounding=A,Q.times(.5))):new C(NaN)},j.inverseSine=j.asin=function(){var B,A,g,I,Q=this,C=Q.constructor;return Q.isZero()?new C(Q):(A=Q.abs().cmp(1),g=C.precision,I=C.rounding,A!==-1?A===0?((B=pg(C,g+4,I).times(.5)).s=Q.s,B):new C(NaN):(C.precision=g+6,C.rounding=1,Q=Q.div(new C(1).minus(Q.times(Q)).sqrt().plus(1)).atan(),C.precision=g,C.rounding=I,Q.times(2)))},j.inverseTangent=j.atan=function(){var B,A,g,I,Q,C,E,a,i,t=this,e=t.constructor,o=e.precision,s=e.rounding;if(t.isFinite()){if(t.isZero())return new e(t);if(t.abs().eq(1)&&o+4<=QQ)return(E=pg(e,o+4,s).times(.25)).s=t.s,E}else{if(!t.s)return new e(NaN);if(o+4<=QQ)return(E=pg(e,o+4,s).times(.5)).s=t.s,E}for(e.precision=a=o+10,e.rounding=1,B=g=Math.min(28,a/7+2|0);B;--B)t=t.div(t.times(t).plus(1).sqrt().plus(1));for(tA=!1,A=Math.ceil(a/7),I=1,i=t.times(t),E=new e(t),Q=t;B!==-1;)if(Q=Q.times(i),C=E.minus(Q.div(I+=2)),Q=Q.times(i),(E=C.plus(Q.div(I+=2))).d[A]!==void 0)for(B=A;E.d[B]===C.d[B]&&B--;);return g&&(E=E.times(2<<g-1)),tA=!0,CA(E,e.precision=o,e.rounding=s,!0)},j.isFinite=function(){return!!this.d},j.isInteger=j.isInt=function(){return!!this.d&&$A(this.e/7)>this.d.length-2},j.isNaN=function(){return!this.s},j.isNegative=j.isNeg=function(){return this.s<0},j.isPositive=j.isPos=function(){return this.s>0},j.isZero=function(){return!!this.d&&this.d[0]===0},j.lessThan=j.lt=function(B){return this.cmp(B)<0},j.lessThanOrEqualTo=j.lte=function(B){return this.cmp(B)<1},j.logarithm=j.log=function(B){var A,g,I,Q,C,E,a,i,t=this,e=t.constructor,o=e.precision,s=e.rounding;if(B==null)B=new e(10),A=!0;else{if(g=(B=new e(B)).d,B.s<0||!g||!g[0]||B.eq(1))return new e(NaN);A=B.eq(10)}if(g=t.d,t.s<0||!g||!g[0]||t.eq(1))return new e(g&&!g[0]?-1/0:t.s!=1?NaN:g?0:1/0);if(A)if(g.length>1)C=!0;else{for(Q=g[0];Q%10==0;)Q/=10;C=Q!==1}if(tA=!1,E=Tg(t,a=o+5),I=A?oB(e,a+10):Tg(B,a),UI((i=NA(E,I,a,1)).d,Q=o,s))do if(E=Tg(t,a+=10),I=A?oB(e,a+10):Tg(B,a),i=NA(E,I,a,1),!C){+_A(i.d).slice(Q+1,Q+15)+1==1e14&&(i=CA(i,o+1,0));break}while(UI(i.d,Q+=10,s));return tA=!0,CA(i,o,s)},j.minus=j.sub=function(B){var A,g,I,Q,C,E,a,i,t,e,o,s,n=this,r=n.constructor;if(B=new r(B),!n.d||!B.d)return n.s&&B.s?n.d?B.s=-B.s:B=new r(B.d||n.s!==B.s?n:NaN):B=new r(NaN),B;if(n.s!=B.s)return B.s=-B.s,n.plus(B);if(t=n.d,s=B.d,a=r.precision,i=r.rounding,!t[0]||!s[0]){if(s[0])B.s=-B.s;else{if(!t[0])return new r(i===3?-0:0);B=new r(n)}return tA?CA(B,a,i):B}if(g=$A(B.e/7),e=$A(n.e/7),t=t.slice(),C=e-g){for((o=C<0)?(A=t,C=-C,E=s.length):(A=s,g=e,E=t.length),C>(I=Math.max(Math.ceil(a/7),E)+2)&&(C=I,A.length=1),A.reverse(),I=C;I--;)A.push(0);A.reverse()}else{for((o=(I=t.length)<(E=s.length))&&(E=I),I=0;I<E;I++)if(t[I]!=s[I]){o=t[I]<s[I];break}C=0}for(o&&(A=t,t=s,s=A,B.s=-B.s),E=t.length,I=s.length-E;I>0;--I)t[E++]=0;for(I=s.length;I>C;){if(t[--I]<s[I]){for(Q=I;Q&&t[--Q]===0;)t[Q]=lg-1;--t[Q],t[I]+=lg}t[I]-=s[I]}for(;t[--E]===0;)t.pop();for(;t[0]===0;t.shift())--g;return t[0]?(B.d=t,B.e=tB(t,g),tA?CA(B,a,i):B):new r(i===3?-0:0)},j.modulo=j.mod=function(B){var A,g=this,I=g.constructor;return B=new I(B),!g.d||!B.s||B.d&&!B.d[0]?new I(NaN):!B.d||g.d&&!g.d[0]?CA(new I(g),I.precision,I.rounding):(tA=!1,I.modulo==9?(A=NA(g,B.abs(),0,3,1)).s*=B.s:A=NA(g,B,0,I.modulo,1),A=A.times(B),tA=!0,g.minus(A))},j.naturalExponential=j.exp=function(){return CQ(this)},j.naturalLogarithm=j.ln=function(){return Tg(this)},j.negated=j.neg=function(){var B=new this.constructor(this);return B.s=-B.s,CA(B)},j.plus=j.add=function(B){var A,g,I,Q,C,E,a,i,t,e,o=this,s=o.constructor;if(B=new s(B),!o.d||!B.d)return o.s&&B.s?o.d||(B=new s(B.d||o.s===B.s?o:NaN)):B=new s(NaN),B;if(o.s!=B.s)return B.s=-B.s,o.minus(B);if(t=o.d,e=B.d,a=s.precision,i=s.rounding,!t[0]||!e[0])return e[0]||(B=new s(o)),tA?CA(B,a,i):B;if(C=$A(o.e/7),I=$A(B.e/7),t=t.slice(),Q=C-I){for(Q<0?(g=t,Q=-Q,E=e.length):(g=e,I=C,E=t.length),Q>(E=(C=Math.ceil(a/7))>E?C+1:E+1)&&(Q=E,g.length=1),g.reverse();Q--;)g.push(0);g.reverse()}for((E=t.length)-(Q=e.length)<0&&(Q=E,g=e,e=t,t=g),A=0;Q;)A=(t[--Q]=t[Q]+e[Q]+A)/lg|0,t[Q]%=lg;for(A&&(t.unshift(A),++I),E=t.length;t[--E]==0;)t.pop();return B.d=t,B.e=tB(t,I),tA?CA(B,a,i):B},j.precision=j.sd=function(B){var A,g=this;if(B!==void 0&&B!==!!B&&B!==1&&B!==0)throw Error(qg+B);return g.d?(A=rE(g.d),B&&g.e+1>A&&(A=g.e+1)):A=NaN,A},j.round=function(){var B=this,A=B.constructor;return CA(new A(B),B.e+1,A.rounding)},j.sine=j.sin=function(){var B,A,g=this,I=g.constructor;return g.isFinite()?g.isZero()?new I(g):(B=I.precision,A=I.rounding,I.precision=B+Math.max(g.e,g.sd())+7,I.rounding=1,g=function(Q,C){var E,a=C.d.length;if(a<3)return C.isZero()?C:wI(Q,2,C,C);E=(E=1.4*Math.sqrt(a))>16?16:0|E,C=C.times(1/sB(5,E)),C=wI(Q,2,C,C);for(var i,t=new Q(5),e=new Q(16),o=new Q(20);E--;)i=C.times(C),C=C.times(t.plus(i.times(e.times(i).minus(o))));return C}(I,bE(I,g)),I.precision=B,I.rounding=A,CA(Sg>2?g.neg():g,B,A,!0)):new I(NaN)},j.squareRoot=j.sqrt=function(){var B,A,g,I,Q,C,E=this,a=E.d,i=E.e,t=E.s,e=E.constructor;if(t!==1||!a||!a[0])return new e(!t||t<0&&(!a||a[0])?NaN:a?E:1/0);for(tA=!1,(t=Math.sqrt(+E))==0||t==1/0?(((A=_A(a)).length+i)%2==0&&(A+="0"),t=Math.sqrt(A),i=$A((i+1)/2)-(i<0||i%2),I=new e(A=t==1/0?"5e"+i:(A=t.toExponential()).slice(0,A.indexOf("e")+1)+i)):I=new e(t.toString()),g=(i=e.precision)+3;;)if(I=(C=I).plus(NA(E,C,g+2,1)).times(.5),_A(C.d).slice(0,g)===(A=_A(I.d)).slice(0,g)){if((A=A.slice(g-3,g+1))!="9999"&&(Q||A!="4999")){+A&&(+A.slice(1)||A.charAt(0)!="5")||(CA(I,i+1,1),B=!I.times(I).eq(E));break}if(!Q&&(CA(C,i+1,0),C.times(C).eq(E))){I=C;break}g+=4,Q=1}return tA=!0,CA(I,i,e.rounding,B)},j.tangent=j.tan=function(){var B,A,g=this,I=g.constructor;return g.isFinite()?g.isZero()?new I(g):(B=I.precision,A=I.rounding,I.precision=B+10,I.rounding=1,(g=g.sin()).s=1,g=NA(g,new I(1).minus(g.times(g)).sqrt(),B+10,0),I.precision=B,I.rounding=A,CA(Sg==2||Sg==4?g.neg():g,B,A,!0)):new I(NaN)},j.times=j.mul=function(B){var A,g,I,Q,C,E,a,i,t,e=this,o=e.constructor,s=e.d,n=(B=new o(B)).d;if(B.s*=e.s,!(s&&s[0]&&n&&n[0]))return new o(!B.s||s&&!s[0]&&!n||n&&!n[0]&&!s?NaN:s&&n?0*B.s:B.s/0);for(g=$A(e.e/7)+$A(B.e/7),(i=s.length)<(t=n.length)&&(C=s,s=n,n=C,E=i,i=t,t=E),C=[],I=E=i+t;I--;)C.push(0);for(I=t;--I>=0;){for(A=0,Q=i+I;Q>I;)a=C[Q]+n[I]*s[Q-I-1]+A,C[Q--]=a%lg|0,A=a/lg|0;C[Q]=(C[Q]+A)%lg|0}for(;!C[--E];)C.pop();return A?++g:C.shift(),B.d=C,B.e=tB(C,g),tA?CA(B,o.precision,o.rounding):B},j.toBinary=function(B,A){return EQ(this,2,B,A)},j.toDecimalPlaces=j.toDP=function(B,A){var g=this,I=g.constructor;return g=new I(g),B===void 0?g:(Eg(B,0,jg),A===void 0?A=I.rounding:Eg(A,0,8),CA(g,B+g.e+1,A))},j.toExponential=function(B,A){var g,I=this,Q=I.constructor;return B===void 0?g=Rg(I,!0):(Eg(B,0,jg),A===void 0?A=Q.rounding:Eg(A,0,8),g=Rg(I=CA(new Q(I),B+1,A),!0,B+1)),I.isNeg()&&!I.isZero()?"-"+g:g},j.toFixed=function(B,A){var g,I,Q=this,C=Q.constructor;return B===void 0?g=Rg(Q):(Eg(B,0,jg),A===void 0?A=C.rounding:Eg(A,0,8),g=Rg(I=CA(new C(Q),B+Q.e+1,A),!1,B+I.e+1)),Q.isNeg()&&!Q.isZero()?"-"+g:g},j.toFraction=function(B){var A,g,I,Q,C,E,a,i,t,e,o,s,n=this,r=n.d,c=n.constructor;if(!r)return new c(n);if(t=g=new c(1),I=i=new c(0),E=(C=(A=new c(I)).e=rE(r)-n.e-1)%7,A.d[0]=VA(10,E<0?7+E:E),B==null)B=C>0?A:t;else{if(!(a=new c(B)).isInt()||a.lt(t))throw Error(qg+a);B=a.gt(A)?C>0?A:t:a}for(tA=!1,a=new c(_A(r)),e=c.precision,c.precision=C=7*r.length*2;o=NA(a,A,0,1,1),(Q=g.plus(o.times(I))).cmp(B)!=1;)g=I,I=Q,Q=t,t=i.plus(o.times(Q)),i=Q,Q=A,A=a.minus(o.times(Q)),a=Q;return Q=NA(B.minus(g),I,0,1,1),i=i.plus(Q.times(t)),g=g.plus(Q.times(I)),i.s=t.s=n.s,s=NA(t,I,C,1).minus(n).abs().cmp(NA(i,g,C,1).minus(n).abs())<1?[t,I]:[i,g],c.precision=e,tA=!0,s},j.toHexadecimal=j.toHex=function(B,A){return EQ(this,16,B,A)},j.toNearest=function(B,A){var g=this,I=g.constructor;if(g=new I(g),B==null){if(!g.d)return g;B=new I(1),A=I.rounding}else{if(B=new I(B),A===void 0?A=I.rounding:Eg(A,0,8),!g.d)return B.s?g:B;if(!B.d)return B.s&&(B.s=g.s),B}return B.d[0]?(tA=!1,g=NA(g,B,0,A,1).times(B),tA=!0,CA(g)):(B.s=g.s,g=B),g},j.toNumber=function(){return+this},j.toOctal=function(B,A){return EQ(this,8,B,A)},j.toPower=j.pow=function(B){var A,g,I,Q,C,E,a=this,i=a.constructor,t=+(B=new i(B));if(!(a.d&&B.d&&a.d[0]&&B.d[0]))return new i(VA(+a,t));if((a=new i(a)).eq(1))return a;if(I=i.precision,C=i.rounding,B.eq(1))return CA(a,I,C);if((A=$A(B.e/7))>=B.d.length-1&&(g=t<0?-t:t)<=9007199254740991)return Q=cE(i,a,g,I),B.s<0?new i(1).div(Q):CA(Q,I,C);if((E=a.s)<0){if(A<B.d.length-1)return new i(NaN);if(1&B.d[A]||(E=1),a.e==0&&a.d[0]==1&&a.d.length==1)return a.s=E,a}return(A=(g=VA(+a,t))!=0&&isFinite(g)?new i(g+"").e:$A(t*(Math.log("0."+_A(a.d))/Math.LN10+a.e+1)))>i.maxE+1||A<i.minE-1?new i(A>0?E/0:0):(tA=!1,i.rounding=a.s=1,g=Math.min(12,(A+"").length),(Q=CQ(B.times(Tg(a,I+g)),I)).d&&UI((Q=CA(Q,I+5,1)).d,I,C)&&(A=I+10,+_A((Q=CA(CQ(B.times(Tg(a,A+g)),A),A+5,1)).d).slice(I+1,I+15)+1==1e14&&(Q=CA(Q,I+1,0))),Q.s=E,tA=!0,i.rounding=C,CA(Q,I,C))},j.toPrecision=function(B,A){var g,I=this,Q=I.constructor;return B===void 0?g=Rg(I,I.e<=Q.toExpNeg||I.e>=Q.toExpPos):(Eg(B,1,jg),A===void 0?A=Q.rounding:Eg(A,0,8),g=Rg(I=CA(new Q(I),B,A),B<=I.e||I.e<=Q.toExpNeg,B)),I.isNeg()&&!I.isZero()?"-"+g:g},j.toSignificantDigits=j.toSD=function(B,A){var g=this.constructor;return B===void 0?(B=g.precision,A=g.rounding):(Eg(B,1,jg),A===void 0?A=g.rounding:Eg(A,0,8)),CA(new g(this),B,A)},j.toString=function(){var B=this,A=B.constructor,g=Rg(B,B.e<=A.toExpNeg||B.e>=A.toExpPos);return B.isNeg()&&!B.isZero()?"-"+g:g},j.truncated=j.trunc=function(){return CA(new this.constructor(this),this.e+1,1)},j.valueOf=j.toJSON=function(){var B=this,A=B.constructor,g=Rg(B,B.e<=A.toExpNeg||B.e>=A.toExpPos);return B.isNeg()?"-"+g:g};var NA=function(){function B(I,Q,C){var E,a=0,i=I.length;for(I=I.slice();i--;)E=I[i]*Q+a,I[i]=E%C|0,a=E/C|0;return a&&I.unshift(a),I}function A(I,Q,C,E){var a,i;if(C!=E)i=C>E?1:-1;else for(a=i=0;a<C;a++)if(I[a]!=Q[a]){i=I[a]>Q[a]?1:-1;break}return i}function g(I,Q,C,E){for(var a=0;C--;)I[C]-=a,a=I[C]<Q[C]?1:0,I[C]=a*E+I[C]-Q[C];for(;!I[0]&&I.length>1;)I.shift()}return function(I,Q,C,E,a,i){var t,e,o,s,n,r,c,D,b,h,w,f,p,R,m,G,k,U,S,q,z=I.constructor,gA=I.s==Q.s?1:-1,$=I.d,X=Q.d;if(!($&&$[0]&&X&&X[0]))return new z(I.s&&Q.s&&($?!X||$[0]!=X[0]:X)?$&&$[0]==0||!X?0*gA:gA/0:NaN);for(i?(n=1,e=I.e-Q.e):(i=lg,n=7,e=$A(I.e/n)-$A(Q.e/n)),S=X.length,k=$.length,h=(b=new z(gA)).d=[],o=0;X[o]==($[o]||0);o++);if(X[o]>($[o]||0)&&e--,C==null?(R=C=z.precision,E=z.rounding):R=a?C+(I.e-Q.e)+1:C,R<0)h.push(1),r=!0;else{if(R=R/n+2|0,o=0,S==1){for(s=0,X=X[0],R++;(o<k||s)&&R--;o++)m=s*i+($[o]||0),h[o]=m/X|0,s=m%X|0;r=s||o<k}else{for((s=i/(X[0]+1)|0)>1&&(X=B(X,s,i),$=B($,s,i),S=X.length,k=$.length),G=S,f=(w=$.slice(0,S)).length;f<S;)w[f++]=0;(q=X.slice()).unshift(0),U=X[0],X[1]>=i/2&&++U;do s=0,(t=A(X,w,S,f))<0?(p=w[0],S!=f&&(p=p*i+(w[1]||0)),(s=p/U|0)>1?(s>=i&&(s=i-1),(t=A(c=B(X,s,i),w,D=c.length,f=w.length))==1&&(s--,g(c,S<D?q:X,D,i))):(s==0&&(t=s=1),c=X.slice()),(D=c.length)<f&&c.unshift(0),g(w,c,f,i),t==-1&&(t=A(X,w,S,f=w.length))<1&&(s++,g(w,S<f?q:X,f,i)),f=w.length):t===0&&(s++,w=[0]),h[o++]=s,t&&w[0]?w[f++]=$[G]||0:(w=[$[G]],f=1);while((G++<k||w[0]!==void 0)&&R--);r=w[0]!==void 0}h[0]||h.shift()}if(n==1)b.e=e,iE=r;else{for(o=1,s=h[0];s>=10;s/=10)o++;b.e=o+e*n-1,CA(b,a?C+b.e+1:C,E,r)}return b}}();function CA(B,A,g,I){var Q,C,E,a,i,t,e,o,s,n=B.constructor;A:if(A!=null){if(!(o=B.d))return B;for(Q=1,a=o[0];a>=10;a/=10)Q++;if((C=A-Q)<0)C+=7,E=A,i=(e=o[s=0])/VA(10,Q-E-1)%10|0;else if((s=Math.ceil((C+1)/7))>=(a=o.length)){if(!I)break A;for(;a++<=s;)o.push(0);e=i=0,Q=1,E=(C%=7)-7+1}else{for(e=a=o[s],Q=1;a>=10;a/=10)Q++;i=(E=(C%=7)-7+Q)<0?0:e/VA(10,Q-E-1)%10|0}if(I=I||A<0||o[s+1]!==void 0||(E<0?e:e%VA(10,Q-E-1)),t=g<4?(i||I)&&(g==0||g==(B.s<0?3:2)):i>5||i==5&&(g==4||I||g==6&&(C>0?E>0?e/VA(10,Q-E):0:o[s-1])%10&1||g==(B.s<0?8:7)),A<1||!o[0])return o.length=0,t?(A-=B.e+1,o[0]=VA(10,(7-A%7)%7),B.e=-A||0):o[0]=B.e=0,B;if(C==0?(o.length=s,a=1,s--):(o.length=s+1,a=VA(10,7-C),o[s]=E>0?(e/VA(10,Q-E)%VA(10,E)|0)*a:0),t)for(;;){if(s==0){for(C=1,E=o[0];E>=10;E/=10)C++;for(E=o[0]+=a,a=1;E>=10;E/=10)a++;C!=a&&(B.e++,o[0]==lg&&(o[0]=1));break}if(o[s]+=a,o[s]!=lg)break;o[s--]=0,a=1}for(C=o.length;o[--C]===0;)o.pop()}return tA&&(B.e>n.maxE?(B.d=null,B.e=NaN):B.e<n.minE&&(B.e=0,B.d=[0])),B}function Rg(B,A,g){if(!B.isFinite())return dE(B);var I,Q=B.e,C=_A(B.d),E=C.length;return A?(g&&(I=g-E)>0?C=C.charAt(0)+"."+C.slice(1)+vg(I):E>1&&(C=C.charAt(0)+"."+C.slice(1)),C=C+(B.e<0?"e":"e+")+B.e):Q<0?(C="0."+vg(-Q-1)+C,g&&(I=g-E)>0&&(C+=vg(I))):Q>=E?(C+=vg(Q+1-E),g&&(I=g-Q-1)>0&&(C=C+"."+vg(I))):((I=Q+1)<E&&(C=C.slice(0,I)+"."+C.slice(I)),g&&(I=g-E)>0&&(Q+1===E&&(C+="."),C+=vg(I))),C}function tB(B,A){var g=B[0];for(A*=7;g>=10;g/=10)A++;return A}function oB(B,A,g){if(A>oi)throw tA=!0,g&&(B.precision=g),Error(tE);return CA(new B(EB),A,1,!0)}function pg(B,A,g){if(A>QQ)throw Error(tE);return CA(new B(aB),A,g,!0)}function rE(B){var A=B.length-1,g=7*A+1;if(A=B[A]){for(;A%10==0;A/=10)g--;for(A=B[0];A>=10;A/=10)g++}return g}function vg(B){for(var A="";B--;)A+="0";return A}function cE(B,A,g,I){var Q,C=new B(1),E=Math.ceil(I/7+4);for(tA=!1;;){if(g%2&&wE((C=C.times(A)).d,E)&&(Q=!0),(g=$A(g/2))===0){g=C.d.length-1,Q&&C.d[g]===0&&++C.d[g];break}wE((A=A.times(A)).d,E)}return tA=!0,C}function hE(B){return 1&B.d[B.d.length-1]}function DE(B,A,g){for(var I,Q,C=new B(A[0]),E=0;++E<A.length;){if(!(Q=new B(A[E])).s){C=Q;break}((I=C.cmp(Q))===g||I===0&&C.s===g)&&(C=Q)}return C}function CQ(B,A){var g,I,Q,C,E,a,i,t=0,e=0,o=0,s=B.constructor,n=s.rounding,r=s.precision;if(!B.d||!B.d[0]||B.e>17)return new s(B.d?B.d[0]?B.s<0?0:1/0:1:B.s?B.s<0?0:B:NaN);for(A==null?(tA=!1,i=r):i=A,a=new s(.03125);B.e>-2;)B=B.times(a),o+=5;for(i+=I=Math.log(VA(2,o))/Math.LN10*2+5|0,g=C=E=new s(1),s.precision=i;;){if(C=CA(C.times(B),i,1),g=g.times(++e),_A((a=E.plus(NA(C,g,i,1))).d).slice(0,i)===_A(E.d).slice(0,i)){for(Q=o;Q--;)E=CA(E.times(E),i,1);if(A!=null)return s.precision=r,E;if(!(t<3&&UI(E.d,i-I,n,t)))return CA(E,s.precision=r,n,tA=!0);s.precision=i+=10,g=C=a=new s(1),e=0,t++}E=a}}function Tg(B,A){var g,I,Q,C,E,a,i,t,e,o,s,n=1,r=B,c=r.d,D=r.constructor,b=D.rounding,h=D.precision;if(r.s<0||!c||!c[0]||!r.e&&c[0]==1&&c.length==1)return new D(c&&!c[0]?-1/0:r.s!=1?NaN:c?0:r);if(A==null?(tA=!1,e=h):e=A,D.precision=e+=10,I=(g=_A(c)).charAt(0),!(Math.abs(C=r.e)<15e14))return t=oB(D,e+2,h).times(C+""),r=Tg(new D(I+"."+g.slice(1)),e-10).plus(t),D.precision=h,A==null?CA(r,h,b,tA=!0):r;for(;I<7&&I!=1||I==1&&g.charAt(1)>3;)I=(g=_A((r=r.times(B)).d)).charAt(0),n++;for(C=r.e,I>1?(r=new D("0."+g),C++):r=new D(I+"."+g.slice(1)),o=r,i=E=r=NA(r.minus(1),r.plus(1),e,1),s=CA(r.times(r),e,1),Q=3;;){if(E=CA(E.times(s),e,1),_A((t=i.plus(NA(E,new D(Q),e,1))).d).slice(0,e)===_A(i.d).slice(0,e)){if(i=i.times(2),C!==0&&(i=i.plus(oB(D,e+2,h).times(C+""))),i=NA(i,new D(n),e,1),A!=null)return D.precision=h,i;if(!UI(i.d,e-10,b,a))return CA(i,D.precision=h,b,tA=!0);D.precision=e+=10,t=E=r=NA(o.minus(1),o.plus(1),e,1),s=CA(r.times(r),e,1),Q=a=1}i=t,Q+=2}}function dE(B){return String(B.s*B.s/0)}function nB(B,A){var g,I,Q;for((g=A.indexOf("."))>-1&&(A=A.replace(".","")),(I=A.search(/e/i))>0?(g<0&&(g=I),g+=+A.slice(I+1),A=A.substring(0,I)):g<0&&(g=A.length),I=0;A.charCodeAt(I)===48;I++);for(Q=A.length;A.charCodeAt(Q-1)===48;--Q);if(A=A.slice(I,Q)){if(Q-=I,B.e=g=g-I-1,B.d=[],I=(g+1)%7,g<0&&(I+=7),I<Q){for(I&&B.d.push(+A.slice(0,I)),Q-=7;I<Q;)B.d.push(+A.slice(I,I+=7));I=7-(A=A.slice(I)).length}else I-=Q;for(;I--;)A+="0";B.d.push(+A),tA&&(B.e>B.constructor.maxE?(B.d=null,B.e=NaN):B.e<B.constructor.minE&&(B.e=0,B.d=[0]))}else B.e=0,B.d=[0];return B}function ni(B,A){var g,I,Q,C,E,a,i,t,e;if(A.indexOf("_")>-1){if(A=A.replace(/(\d)_(?=\d)/g,"$1"),sE.test(A))return nB(B,A)}else if(A==="Infinity"||A==="NaN")return+A||(B.s=NaN),B.e=NaN,B.d=null,B;if(ii.test(A))g=16,A=A.toLowerCase();else if(ei.test(A))g=2;else{if(!ti.test(A))throw Error(qg+A);g=8}for((C=A.search(/p/i))>0?(i=+A.slice(C+1),A=A.substring(2,C)):A=A.slice(2),E=(C=A.indexOf("."))>=0,I=B.constructor,E&&(C=(a=(A=A.replace(".","")).length)-C,Q=cE(I,new I(g),C,2*C)),C=e=(t=iB(A,g,lg)).length-1;t[C]===0;--C)t.pop();return C<0?new I(0*B.s):(B.e=tB(t,e),B.d=t,tA=!1,E&&(B=NA(B,Q,4*a)),i&&(B=B.times(Math.abs(i)<54?VA(2,i):uI.pow(2,i))),tA=!0,B)}function wI(B,A,g,I,Q){var C,E,a,i,t=B.precision,e=Math.ceil(t/7);for(tA=!1,i=g.times(g),a=new B(I);;){if(E=NA(a.times(i),new B(A++*A++),t,1),a=Q?I.plus(E):I.minus(E),I=NA(E.times(i),new B(A++*A++),t,1),(E=a.plus(I)).d[e]!==void 0){for(C=e;E.d[C]===a.d[C]&&C--;);if(C==-1)break}C=a,a=I,I=E,E=C}return tA=!0,E.d.length=e+1,E}function sB(B,A){for(var g=B;--A;)g*=B;return g}function bE(B,A){var g,I=A.s<0,Q=pg(B,B.precision,1),C=Q.times(.5);if((A=A.abs()).lte(C))return Sg=I?4:1,A;if((g=A.divToInt(Q)).isZero())Sg=I?3:2;else{if((A=A.minus(g.times(Q))).lte(C))return Sg=hE(g)?I?2:3:I?4:1,A;Sg=hE(g)?I?1:4:I?3:2}return A.minus(Q).abs()}function EQ(B,A,g,I){var Q,C,E,a,i,t,e,o,s,n=B.constructor,r=g!==void 0;if(r?(Eg(g,1,jg),I===void 0?I=n.rounding:Eg(I,0,8)):(g=n.precision,I=n.rounding),B.isFinite()){for(r?(Q=2,A==16?g=4*g-3:A==8&&(g=3*g-2)):Q=A,(E=(e=Rg(B)).indexOf("."))>=0&&(e=e.replace(".",""),(s=new n(1)).e=e.length-E,s.d=iB(Rg(s),10,Q),s.e=s.d.length),C=i=(o=iB(e,10,Q)).length;o[--i]==0;)o.pop();if(o[0]){if(E<0?C--:((B=new n(B)).d=o,B.e=C,o=(B=NA(B,s,g,I,0,Q)).d,C=B.e,t=iE),E=o[g],a=Q/2,t=t||o[g+1]!==void 0,t=I<4?(E!==void 0||t)&&(I===0||I===(B.s<0?3:2)):E>a||E===a&&(I===4||t||I===6&&1&o[g-1]||I===(B.s<0?8:7)),o.length=g,t)for(;++o[--g]>Q-1;)o[g]=0,g||(++C,o.unshift(1));for(i=o.length;!o[i-1];--i);for(E=0,e="";E<i;E++)e+=IQ.charAt(o[E]);if(r){if(i>1)if(A==16||A==8){for(E=A==16?4:3,--i;i%E;i++)e+="0";for(i=(o=iB(e,Q,A)).length;!o[i-1];--i);for(E=1,e="1.";E<i;E++)e+=IQ.charAt(o[E])}else e=e.charAt(0)+"."+e.slice(1);e=e+(C<0?"p":"p+")+C}else if(C<0){for(;++C;)e="0"+e;e="0."+e}else if(++C>i)for(C-=i;C--;)e+="0";else C<i&&(e=e.slice(0,C)+"."+e.slice(C))}else e=r?"0p+0":"0";e=(A==16?"0x":A==2?"0b":A==8?"0o":"")+e}else e=dE(B);return B.s<0?"-"+e:e}function wE(B,A){if(B.length>A)return B.length=A,!0}function si(B){return new this(B).abs()}function ri(B){return new this(B).acos()}function ci(B){return new this(B).acosh()}function hi(B,A){return new this(B).plus(A)}function Di(B){return new this(B).asin()}function di(B){return new this(B).asinh()}function bi(B){return new this(B).atan()}function wi(B){return new this(B).atanh()}function ui(B,A){B=new this(B),A=new this(A);var g,I=this.precision,Q=this.rounding,C=I+4;return B.s&&A.s?B.d||A.d?!A.d||B.isZero()?(g=A.s<0?pg(this,I,Q):new this(0)).s=B.s:!B.d||A.isZero()?(g=pg(this,C,1).times(.5)).s=B.s:A.s<0?(this.precision=C,this.rounding=1,g=this.atan(NA(B,A,C,1)),A=pg(this,C,1),this.precision=I,this.rounding=Q,g=B.s<0?g.minus(A):g.plus(A)):g=this.atan(NA(B,A,C,1)):(g=pg(this,C,1).times(A.s>0?.25:.75)).s=B.s:g=new this(NaN),g}function li(B){return new this(B).cbrt()}function fi(B){return CA(B=new this(B),B.e+1,2)}function Fi(B,A,g){return new this(B).clamp(A,g)}function yi(B){if(!B||typeof B!="object")throw Error(eB+"Object expected");var A,g,I,Q=B.defaults===!0,C=["precision",1,jg,"rounding",0,8,"toExpNeg",-bI,0,"toExpPos",0,bI,"maxE",0,bI,"minE",-bI,0,"modulo",0,9];for(A=0;A<C.length;A+=3)if(g=C[A],Q&&(this[g]=BQ[g]),(I=B[g])!==void 0){if(!($A(I)===I&&I>=C[A+1]&&I<=C[A+2]))throw Error(qg+g+": "+I);this[g]=I}if(g="crypto",Q&&(this[g]=BQ[g]),(I=B[g])!==void 0){if(I!==!0&&I!==!1&&I!==0&&I!==1)throw Error(qg+g+": "+I);if(I){if(typeof crypto>"u"||!crypto||!crypto.getRandomValues&&!crypto.randomBytes)throw Error(oE);this[g]=!0}else this[g]=!1}return this}function Mi(B){return new this(B).cos()}function Gi(B){return new this(B).cosh()}function Ri(B,A){return new this(B).div(A)}function pi(B){return new this(B).exp()}function Ni(B){return CA(B=new this(B),B.e+1,3)}function ki(){var B,A,g=new this(0);for(tA=!1,B=0;B<arguments.length;)if((A=new this(arguments[B++])).d)g.d&&(g=g.plus(A.times(A)));else{if(A.s)return tA=!0,new this(1/0);g=A}return tA=!0,g.sqrt()}function uE(B){return B instanceof uI||B&&B.toStringTag===nE||!1}function mi(B){return new this(B).ln()}function Si(B,A){return new this(B).log(A)}function Ui(B){return new this(B).log(2)}function Li(B){return new this(B).log(10)}function Ji(){return DE(this,arguments,-1)}function Yi(){return DE(this,arguments,1)}function xi(B,A){return new this(B).mod(A)}function Hi(B,A){return new this(B).mul(A)}function Ki(B,A){return new this(B).pow(A)}function ji(B){var A,g,I,Q,C=0,E=new this(1),a=[];if(B===void 0?B=this.precision:Eg(B,1,jg),I=Math.ceil(B/7),this.crypto)if(crypto.getRandomValues)for(A=crypto.getRandomValues(new Uint32Array(I));C<I;)(Q=A[C])>=429e7?A[C]=crypto.getRandomValues(new Uint32Array(1))[0]:a[C++]=Q%1e7;else{if(!crypto.randomBytes)throw Error(oE);for(A=crypto.randomBytes(I*=4);C<I;)(Q=A[C]+(A[C+1]<<8)+(A[C+2]<<16)+((127&A[C+3])<<24))>=214e7?crypto.randomBytes(4).copy(A,C):(a.push(Q%1e7),C+=4);C=I/4}else for(;C<I;)a[C++]=1e7*Math.random()|0;for(B%=7,(I=a[--C])&&B&&(Q=VA(10,7-B),a[C]=(I/Q|0)*Q);a[C]===0;C--)a.pop();if(C<0)g=0,a=[0];else{for(g=-1;a[0]===0;g-=7)a.shift();for(I=1,Q=a[0];Q>=10;Q/=10)I++;I<7&&(g-=7-I)}return E.e=g,E.d=a,E}function qi(B){return CA(B=new this(B),B.e+1,this.rounding)}function vi(B){return(B=new this(B)).d?B.d[0]?B.s:0*B.s:B.s||NaN}function Ti(B){return new this(B).sin()}function Oi(B){return new this(B).sinh()}function Wi(B){return new this(B).sqrt()}function Pi(B,A){return new this(B).sub(A)}function Vi(){var B=0,A=arguments,g=new this(A[B]);for(tA=!1;g.s&&++B<A.length;)g=g.plus(A[B]);return tA=!0,CA(g,this.precision,this.rounding)}function zi(B){return new this(B).tan()}function Xi(B){return new this(B).tanh()}function Zi(B){return CA(B=new this(B),B.e+1,1)}j[Symbol.for("nodejs.util.inspect.custom")]=j.toString,j[Symbol.toStringTag]="Decimal";var uI=j.constructor=function B(A){var g,I,Q;function C(E){var a,i,t,e=this;if(!(e instanceof C))return new C(E);if(e.constructor=C,uE(E))return e.s=E.s,void(tA?!E.d||E.e>C.maxE?(e.e=NaN,e.d=null):E.e<C.minE?(e.e=0,e.d=[0]):(e.e=E.e,e.d=E.d.slice()):(e.e=E.e,e.d=E.d?E.d.slice():E.d));if((t=typeof E)=="number"){if(E===0)return e.s=1/E<0?-1:1,e.e=0,void(e.d=[0]);if(E<0?(E=-E,e.s=-1):e.s=1,E===~~E&&E<1e7){for(a=0,i=E;i>=10;i/=10)a++;return void(tA?a>C.maxE?(e.e=NaN,e.d=null):a<C.minE?(e.e=0,e.d=[0]):(e.e=a,e.d=[E]):(e.e=a,e.d=[E]))}return 0*E!=0?(E||(e.s=NaN),e.e=NaN,void(e.d=null)):nB(e,E.toString())}if(t==="string")return(i=E.charCodeAt(0))===45?(E=E.slice(1),e.s=-1):(i===43&&(E=E.slice(1)),e.s=1),sE.test(E)?nB(e,E):ni(e,E);if(t==="bigint")return E<0?(E=-E,e.s=-1):e.s=1,nB(e,E.toString());throw Error(qg+E)}if(C.prototype=j,C.ROUND_UP=0,C.ROUND_DOWN=1,C.ROUND_CEIL=2,C.ROUND_FLOOR=3,C.ROUND_HALF_UP=4,C.ROUND_HALF_DOWN=5,C.ROUND_HALF_EVEN=6,C.ROUND_HALF_CEIL=7,C.ROUND_HALF_FLOOR=8,C.EUCLID=9,C.config=C.set=yi,C.clone=B,C.isDecimal=uE,C.abs=si,C.acos=ri,C.acosh=ci,C.add=hi,C.asin=Di,C.asinh=di,C.atan=bi,C.atanh=wi,C.atan2=ui,C.cbrt=li,C.ceil=fi,C.clamp=Fi,C.cos=Mi,C.cosh=Gi,C.div=Ri,C.exp=pi,C.floor=Ni,C.hypot=ki,C.ln=mi,C.log=Si,C.log10=Li,C.log2=Ui,C.max=Ji,C.min=Yi,C.mod=xi,C.mul=Hi,C.pow=Ki,C.random=ji,C.round=qi,C.sign=vi,C.sin=Ti,C.sinh=Oi,C.sqrt=Wi,C.sub=Pi,C.sum=Vi,C.tan=zi,C.tanh=Xi,C.trunc=Zi,A===void 0&&(A={}),A&&A.defaults!==!0)for(Q=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],g=0;g<Q.length;)A.hasOwnProperty(I=Q[g++])||(A[I]=this[I]);return C.config(A),C}(BQ);EB=new uI(EB),aB=new uI(aB);var _i=uA("BigNumber",["?on","config"],B=>{var{on:A,config:g}=B,I=uI.clone({precision:g.precision,modulo:uI.EUCLID});return I.prototype=Object.create(I.prototype),I.prototype.type="BigNumber",I.prototype.isBigNumber=!0,I.prototype.toJSON=function(){return{mathjs:"BigNumber",value:this.toString()}},I.fromJSON=function(Q){return new I(Q.value)},A&&A("config",function(Q,C){Q.precision!==C.precision&&I.config({precision:Q.precision})}),I},{isClass:!0});const Ag=Math.cosh||function(B){return Math.abs(B)<1e-9?1-B:.5*(Math.exp(B)+Math.exp(-B))},wg=Math.sinh||function(B){return Math.abs(B)<1e-9?B:.5*(Math.exp(B)-Math.exp(-B))},aQ=function(B,A){return(B=Math.abs(B))<(A=Math.abs(A))&&([B,A]=[A,B]),B<1e8?Math.sqrt(B*B+A*A):(A/=B,B*Math.sqrt(1+A*A))},lI=function(){throw SyntaxError("Invalid Param")};function eQ(B,A){const g=Math.abs(B),I=Math.abs(A);return B===0?Math.log(I):A===0?Math.log(g):g<3e3&&I<3e3?.5*Math.log(B*B+A*A):(B*=.5,A*=.5,.5*Math.log(B*B+A*A)+Math.LN2)}const $i={re:0,im:0},QI=function(B,A){const g=$i;if(B==null)g.re=g.im=0;else if(A!==void 0)g.re=B,g.im=A;else switch(typeof B){case"object":if("im"in B&&"re"in B)g.re=B.re,g.im=B.im;else if("abs"in B&&"arg"in B){if(!isFinite(B.abs)&&isFinite(B.arg))return Y.INFINITY;g.re=B.abs*Math.cos(B.arg),g.im=B.abs*Math.sin(B.arg)}else if("r"in B&&"phi"in B){if(!isFinite(B.r)&&isFinite(B.phi))return Y.INFINITY;g.re=B.r*Math.cos(B.phi),g.im=B.r*Math.sin(B.phi)}else B.length===2?(g.re=B[0],g.im=B[1]):lI();break;case"string":g.im=g.re=0;const I=B.replace(/_/g,"").match(/\d+\.?\d*e[+-]?\d+|\d+\.?\d*|\.\d+|./g);let Q=1,C=0;I===null&&lI();for(let E=0;E<I.length;E++){const a=I[E];a===" "||a===" "||a===`
|
|
965
|
-
`||(a==="+"?Q++:a==="-"?C++:a==="i"||a==="I"?(Q+C===0&&lI(),I[E+1]===" "||isNaN(I[E+1])?g.im+=parseFloat((C%2?"-":"")+"1"):(g.im+=parseFloat((C%2?"-":"")+I[E+1]),E++),Q=C=0):((Q+C===0||isNaN(a))&&lI(),I[E+1]==="i"||I[E+1]==="I"?(g.im+=parseFloat((C%2?"-":"")+a),E++):g.re+=parseFloat((C%2?"-":"")+a),Q=C=0))}Q+C>0&&lI();break;case"number":g.im=0,g.re=B;break;default:lI()}return isNaN(g.re)||isNaN(g.im),g};function Y(B,A){if(!(this instanceof Y))return new Y(B,A);const g=QI(B,A);this.re=g.re,this.im=g.im}Y.prototype={re:0,im:0,sign:function(){const B=aQ(this.re,this.im);return new Y(this.re/B,this.im/B)},add:function(B,A){const g=QI(B,A),I=this.isInfinite(),Q=!(isFinite(g.re)&&isFinite(g.im));return I||Q?I&&Q?Y.NAN:Y.INFINITY:new Y(this.re+g.re,this.im+g.im)},sub:function(B,A){const g=QI(B,A),I=this.isInfinite(),Q=!(isFinite(g.re)&&isFinite(g.im));return I||Q?I&&Q?Y.NAN:Y.INFINITY:new Y(this.re-g.re,this.im-g.im)},mul:function(B,A){const g=QI(B,A),I=this.isInfinite(),Q=!(isFinite(g.re)&&isFinite(g.im)),C=this.re===0&&this.im===0,E=g.re===0&&g.im===0;return I&&E||Q&&C?Y.NAN:I||Q?Y.INFINITY:g.im===0&&this.im===0?new Y(this.re*g.re,0):new Y(this.re*g.re-this.im*g.im,this.re*g.im+this.im*g.re)},div:function(B,A){const g=QI(B,A),I=this.isInfinite(),Q=!(isFinite(g.re)&&isFinite(g.im)),C=this.re===0&&this.im===0,E=g.re===0&&g.im===0;if(C&&E||I&&Q)return Y.NAN;if(E||I)return Y.INFINITY;if(C||Q)return Y.ZERO;if(g.im===0)return new Y(this.re/g.re,this.im/g.re);if(Math.abs(g.re)<Math.abs(g.im)){const a=g.re/g.im,i=g.re*a+g.im;return new Y((this.re*a+this.im)/i,(this.im*a-this.re)/i)}{const a=g.im/g.re,i=g.im*a+g.re;return new Y((this.re+this.im*a)/i,(this.im-this.re*a)/i)}},pow:function(B,A){const g=QI(B,A),I=this.re===0&&this.im===0;if(g.re===0&&g.im===0)return Y.ONE;if(g.im===0){if(this.im===0&&this.re>0)return new Y(Math.pow(this.re,g.re),0);if(this.re===0)switch((g.re%4+4)%4){case 0:return new Y(Math.pow(this.im,g.re),0);case 1:return new Y(0,Math.pow(this.im,g.re));case 2:return new Y(-Math.pow(this.im,g.re),0);case 3:return new Y(0,-Math.pow(this.im,g.re))}}if(I&&g.re>0)return Y.ZERO;const Q=Math.atan2(this.im,this.re),C=eQ(this.re,this.im);let E=Math.exp(g.re*C-g.im*Q),a=g.im*C+g.re*Q;return new Y(E*Math.cos(a),E*Math.sin(a))},sqrt:function(){const B=this.re,A=this.im;if(A===0)return B>=0?new Y(Math.sqrt(B),0):new Y(0,Math.sqrt(-B));const g=aQ(B,A);let I=Math.sqrt(.5*(g+Math.abs(B))),Q=Math.abs(A)/(2*I);return B>=0?new Y(I,A<0?-Q:Q):new Y(Q,A<0?-I:I)},exp:function(){const B=Math.exp(this.re);return this.im===0?new Y(B,0):new Y(B*Math.cos(this.im),B*Math.sin(this.im))},expm1:function(){const B=this.re,A=this.im;return new Y(Math.expm1(B)*Math.cos(A)+function(g){const I=Math.PI/4;if(-I>g||g>I)return Math.cos(g)-1;const Q=g*g;return Q*(Q*(Q*(Q*(Q*(Q*(Q*(Q/20922789888e3-1/87178291200)+1/479001600)-1/3628800)+1/40320)-1/720)+1/24)-.5)}(A),Math.exp(B)*Math.sin(A))},log:function(){const B=this.re,A=this.im;return A===0&&B>0?new Y(Math.log(B),0):new Y(eQ(B,A),Math.atan2(A,B))},abs:function(){return aQ(this.re,this.im)},arg:function(){return Math.atan2(this.im,this.re)},sin:function(){const B=this.re,A=this.im;return new Y(Math.sin(B)*Ag(A),Math.cos(B)*wg(A))},cos:function(){const B=this.re,A=this.im;return new Y(Math.cos(B)*Ag(A),-Math.sin(B)*wg(A))},tan:function(){const B=2*this.re,A=2*this.im,g=Math.cos(B)+Ag(A);return new Y(Math.sin(B)/g,wg(A)/g)},cot:function(){const B=2*this.re,A=2*this.im,g=Math.cos(B)-Ag(A);return new Y(-Math.sin(B)/g,wg(A)/g)},sec:function(){const B=this.re,A=this.im,g=.5*Ag(2*A)+.5*Math.cos(2*B);return new Y(Math.cos(B)*Ag(A)/g,Math.sin(B)*wg(A)/g)},csc:function(){const B=this.re,A=this.im,g=.5*Ag(2*A)-.5*Math.cos(2*B);return new Y(Math.sin(B)*Ag(A)/g,-Math.cos(B)*wg(A)/g)},asin:function(){const B=this.re,A=this.im,g=new Y(A*A-B*B+1,-2*B*A).sqrt(),I=new Y(g.re-A,g.im+B).log();return new Y(I.im,-I.re)},acos:function(){const B=this.re,A=this.im,g=new Y(A*A-B*B+1,-2*B*A).sqrt(),I=new Y(g.re-A,g.im+B).log();return new Y(Math.PI/2-I.im,I.re)},atan:function(){const B=this.re,A=this.im;if(B===0){if(A===1)return new Y(0,1/0);if(A===-1)return new Y(0,-1/0)}const g=B*B+(1-A)*(1-A),I=new Y((1-A*A-B*B)/g,-2*B/g).log();return new Y(-.5*I.im,.5*I.re)},acot:function(){const B=this.re,A=this.im;if(A===0)return new Y(Math.atan2(1,B),0);const g=B*B+A*A;return g!==0?new Y(B/g,-A/g).atan():new Y(B!==0?B/0:0,A!==0?-A/0:0).atan()},asec:function(){const B=this.re,A=this.im;if(B===0&&A===0)return new Y(0,1/0);const g=B*B+A*A;return g!==0?new Y(B/g,-A/g).acos():new Y(B!==0?B/0:0,A!==0?-A/0:0).acos()},acsc:function(){const B=this.re,A=this.im;if(B===0&&A===0)return new Y(Math.PI/2,1/0);const g=B*B+A*A;return g!==0?new Y(B/g,-A/g).asin():new Y(B!==0?B/0:0,A!==0?-A/0:0).asin()},sinh:function(){const B=this.re,A=this.im;return new Y(wg(B)*Math.cos(A),Ag(B)*Math.sin(A))},cosh:function(){const B=this.re,A=this.im;return new Y(Ag(B)*Math.cos(A),wg(B)*Math.sin(A))},tanh:function(){const B=2*this.re,A=2*this.im,g=Ag(B)+Math.cos(A);return new Y(wg(B)/g,Math.sin(A)/g)},coth:function(){const B=2*this.re,A=2*this.im,g=Ag(B)-Math.cos(A);return new Y(wg(B)/g,-Math.sin(A)/g)},csch:function(){const B=this.re,A=this.im,g=Math.cos(2*A)-Ag(2*B);return new Y(-2*wg(B)*Math.cos(A)/g,2*Ag(B)*Math.sin(A)/g)},sech:function(){const B=this.re,A=this.im,g=Math.cos(2*A)+Ag(2*B);return new Y(2*Ag(B)*Math.cos(A)/g,-2*wg(B)*Math.sin(A)/g)},asinh:function(){let B=this.im;this.im=-this.re,this.re=B;const A=this.asin();return this.re=-this.im,this.im=B,B=A.re,A.re=-A.im,A.im=B,A},acosh:function(){const B=this.acos();if(B.im<=0){const A=B.re;B.re=-B.im,B.im=A}else{const A=B.im;B.im=-B.re,B.re=A}return B},atanh:function(){const B=this.re,A=this.im,g=B>1&&A===0,I=1-B,Q=1+B,C=I*I+A*A,E=C!==0?new Y((Q*I-A*A)/C,(A*I+Q*A)/C):new Y(B!==-1?B/0:0,A!==0?A/0:0),a=E.re;return E.re=eQ(E.re,E.im)/2,E.im=Math.atan2(E.im,a)/2,g&&(E.im=-E.im),E},acoth:function(){const B=this.re,A=this.im;if(B===0&&A===0)return new Y(0,Math.PI/2);const g=B*B+A*A;return g!==0?new Y(B/g,-A/g).atanh():new Y(B!==0?B/0:0,A!==0?-A/0:0).atanh()},acsch:function(){const B=this.re,A=this.im;if(A===0)return new Y(B!==0?Math.log(B+Math.sqrt(B*B+1)):1/0,0);const g=B*B+A*A;return g!==0?new Y(B/g,-A/g).asinh():new Y(B!==0?B/0:0,A!==0?-A/0:0).asinh()},asech:function(){const B=this.re,A=this.im;if(this.isZero())return Y.INFINITY;const g=B*B+A*A;return g!==0?new Y(B/g,-A/g).acosh():new Y(B!==0?B/0:0,A!==0?-A/0:0).acosh()},inverse:function(){if(this.isZero())return Y.INFINITY;if(this.isInfinite())return Y.ZERO;const B=this.re,A=this.im,g=B*B+A*A;return new Y(B/g,-A/g)},conjugate:function(){return new Y(this.re,-this.im)},neg:function(){return new Y(-this.re,-this.im)},ceil:function(B){return B=Math.pow(10,B||0),new Y(Math.ceil(this.re*B)/B,Math.ceil(this.im*B)/B)},floor:function(B){return B=Math.pow(10,B||0),new Y(Math.floor(this.re*B)/B,Math.floor(this.im*B)/B)},round:function(B){return B=Math.pow(10,B||0),new Y(Math.round(this.re*B)/B,Math.round(this.im*B)/B)},equals:function(B,A){const g=QI(B,A);return Math.abs(g.re-this.re)<=Y.EPSILON&&Math.abs(g.im-this.im)<=Y.EPSILON},clone:function(){return new Y(this.re,this.im)},toString:function(){let B=this.re,A=this.im,g="";return this.isNaN()?"NaN":this.isInfinite()?"Infinity":(Math.abs(B)<Y.EPSILON&&(B=0),Math.abs(A)<Y.EPSILON&&(A=0),A===0?g+B:(B!==0?(g+=B,g+=" ",A<0?(A=-A,g+="-"):g+="+",g+=" "):A<0&&(A=-A,g+="-"),A!==1&&(g+=A),g+"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.isFinite()}},Y.ZERO=new Y(0,0),Y.ONE=new Y(1,0),Y.I=new Y(0,1),Y.PI=new Y(Math.PI,0),Y.E=new Y(Math.E,0),Y.INFINITY=new Y(1/0,1/0),Y.NAN=new Y(NaN,NaN),Y.EPSILON=1e-15;var At=uA("Complex",[],()=>(Object.defineProperty(Y,"name",{value:"Complex"}),Y.prototype.constructor=Y,Y.prototype.type="Complex",Y.prototype.isComplex=!0,Y.prototype.toJSON=function(){return{mathjs:"Complex",re:this.re,im:this.im}},Y.prototype.toPolar=function(){return{r:this.abs(),phi:this.arg()}},Y.prototype.format=function(B){var A=this.im,g=this.re,I=gQ(this.re,B),Q=gQ(this.im,B),C=mA(B)?B:B?B.precision:null;if(C!==null){var E=Math.pow(10,-C);Math.abs(g/A)<E&&(g=0),Math.abs(A/g)<E&&(A=0)}return A===0?I:g===0?A===1?"i":A===-1?"-i":Q+"i":A<0?A===-1?I+" - i":I+" - "+Q.substring(1)+"i":A===1?I+" + i":I+" + "+Q+"i"},Y.fromPolar=function(B){switch(arguments.length){case 1:var A=arguments[0];if(typeof A=="object")return Y(A);throw new TypeError("Input has to be an object with r and phi keys.");case 2:var g=arguments[0],I=arguments[1];if(mA(g)){if(gE(I)&&I.hasBase("ANGLE")&&(I=I.toNumber("rad")),mA(I))return new Y({r:g,phi:I});throw new TypeError("Phi is not a number nor an angle unit.")}throw new TypeError("Radius r is not a number.");default:throw new SyntaxError("Wrong number of arguments in function fromPolar")}},Y.prototype.valueOf=Y.prototype.toString,Y.fromJSON=function(B){return new Y(B)},Y.compare=function(B,A){return B.re>A.re?1:B.re<A.re?-1:B.im>A.im?1:B.im<A.im?-1:0},Y),{isClass:!0});typeof BigInt>"u"&&(BigInt=function(B){if(isNaN(B))throw new Error("");return B});const EA=BigInt(0),nA=BigInt(1),LI=BigInt(2),iQ=BigInt(5),ag=BigInt(10),_={s:nA,n:EA,d:nA};function Ug(B,A){try{B=BigInt(B)}catch{throw Og()}return B*A}function fg(B){return typeof B=="bigint"?B:Math.floor(B)}function SA(B,A){if(A===EA)throw tQ();const g=Object.create(ug.prototype);g.s=B<EA?-nA:nA;const I=CI(B=B<EA?-B:B,A);return g.n=B/I,g.d=A/I,g}function fI(B){const A={};let g=B,I=LI,Q=iQ-nA;for(;Q<=g;){for(;g%I===EA;)g/=I,A[I]=(A[I]||EA)+nA;Q+=nA+LI*I++}return g!==B?g>1&&(A[g]=(A[g]||EA)+nA):A[B]=(A[B]||EA)+nA,A}const XA=function(B,A){let g=EA,I=nA,Q=nA;if(B!=null)if(A!==void 0){if(typeof B=="bigint")g=B;else{if(isNaN(B))throw Og();if(B%1!=0)throw lE();g=BigInt(B)}if(typeof A=="bigint")I=A;else{if(isNaN(A))throw Og();if(A%1!=0)throw lE();I=BigInt(A)}Q=g*I}else if(typeof B=="object"){if("d"in B&&"n"in B)g=BigInt(B.n),I=BigInt(B.d),"s"in B&&(g*=BigInt(B.s));else if(0 in B)g=BigInt(B[0]),1 in B&&(I=BigInt(B[1]));else{if(typeof B!="bigint")throw Og();g=B}Q=g*I}else if(typeof B=="number"){if(isNaN(B))throw Og();if(B<0&&(Q=-nA,B=-B),B%1==0)g=BigInt(B);else{let C=1,E=0,a=1,i=1,t=1,e=1e7;for(B>=1&&(C=10**Math.floor(1+Math.log10(B)),B/=C);a<=e&&t<=e;){let o=(E+i)/(a+t);if(B===o){a+t<=e?(g=E+i,I=a+t):t>a?(g=i,I=t):(g=E,I=a);break}B>o?(E+=i,a+=t):(i+=E,t+=a),a>e?(g=i,I=t):(g=E,I=a)}g=BigInt(g)*BigInt(C),I=BigInt(I)}}else if(typeof B=="string"){let C=0,E=EA,a=EA,i=EA,t=nA,e=nA,o=B.replace(/_/g,"").match(/\d+|./g);if(o===null||(o[C]==="-"?(Q=-nA,C++):o[C]==="+"&&C++,o.length===C+1?a=Ug(o[C++],Q):o[C+1]==="."||o[C]==="."?(o[C]!=="."&&(E=Ug(o[C++],Q)),C++,(C+1===o.length||o[C+1]==="("&&o[C+3]===")"||o[C+1]==="'"&&o[C+3]==="'")&&(a=Ug(o[C],Q),t=ag**BigInt(o[C].length),C++),(o[C]==="("&&o[C+2]===")"||o[C]==="'"&&o[C+2]==="'")&&(i=Ug(o[C+1],Q),e=ag**BigInt(o[C+1].length)-nA,C+=3)):o[C+1]==="/"||o[C+1]===":"?(a=Ug(o[C],Q),t=Ug(o[C+2],nA),C+=3):o[C+3]==="/"&&o[C+1]===" "&&(E=Ug(o[C],Q),a=Ug(o[C+2],Q),t=Ug(o[C+4],nA),C+=5),!(o.length<=C)))throw Og();I=t*e,Q=g=i+I*E+e*a}else{if(typeof B!="bigint")throw Og();g=B,Q=B,I=nA}if(I===EA)throw tQ();_.s=Q<EA?-nA:nA,_.n=g<EA?-g:g,_.d=I<EA?-I:I};function gt(B,A,g){let I=nA,Q=function(C,E,a){let i=nA;for(;E>EA;C=C*C%a,E>>=nA)E&nA&&(i=i*C%a);return i}(ag,g,A);for(let C=0;C<300;C++){if(I===Q)return BigInt(C);I=I*ag%A,Q=Q*ag%A}return 0}function CI(B,A){if(!B)return A;if(!A)return B;for(;;){if(!(B%=A))return A;if(!(A%=B))return B}}function ug(B,A){if(XA(B,A),!(this instanceof ug))return SA(_.s*_.n,_.d);B=CI(_.d,_.n),this.s=_.s,this.n=_.n/B,this.d=_.d/B}var tQ=function(){return new Error("Division by Zero")},Og=function(){return new Error("Invalid argument")},lE=function(){return new Error("Parameters must be integer")};ug.prototype={s:nA,n:EA,d:nA,abs:function(){return SA(this.n,this.d)},neg:function(){return SA(-this.s*this.n,this.d)},add:function(B,A){return XA(B,A),SA(this.s*this.n*_.d+_.s*this.d*_.n,this.d*_.d)},sub:function(B,A){return XA(B,A),SA(this.s*this.n*_.d-_.s*this.d*_.n,this.d*_.d)},mul:function(B,A){return XA(B,A),SA(this.s*_.s*this.n*_.n,this.d*_.d)},div:function(B,A){return XA(B,A),SA(this.s*_.s*this.n*_.d,this.d*_.n)},clone:function(){return SA(this.s*this.n,this.d)},mod:function(B,A){if(B===void 0)return SA(this.s*this.n%this.d,nA);if(XA(B,A),EA===_.n*this.d)throw tQ();return SA(this.s*(_.d*this.n)%(_.n*this.d),_.d*this.d)},gcd:function(B,A){return XA(B,A),SA(CI(_.n,this.n)*CI(_.d,this.d),_.d*this.d)},lcm:function(B,A){return XA(B,A),_.n===EA&&this.n===EA?SA(EA,nA):SA(_.n*this.n,CI(_.n,this.n)*CI(_.d,this.d))},inverse:function(){return SA(this.s*this.d,this.n)},pow:function(B,A){if(XA(B,A),_.d===nA)return _.s<EA?SA((this.s*this.d)**_.n,this.n**_.n):SA((this.s*this.n)**_.n,this.d**_.n);if(this.s<EA)return null;let g=fI(this.n),I=fI(this.d),Q=nA,C=nA;for(let E in g)if(E!=="1"){if(E==="0"){Q=EA;break}if(g[E]*=_.n,g[E]%_.d!==EA)return null;g[E]/=_.d,Q*=BigInt(E)**g[E]}for(let E in I)if(E!=="1"){if(I[E]*=_.n,I[E]%_.d!==EA)return null;I[E]/=_.d,C*=BigInt(E)**I[E]}return _.s<EA?SA(C,Q):SA(Q,C)},log:function(B,A){if(XA(B,A),this.s<=EA||_.s<=EA)return null;const g={},I=fI(_.n),Q=fI(_.d),C=fI(this.n),E=fI(this.d);for(const t in Q)I[t]=(I[t]||EA)-Q[t];for(const t in E)C[t]=(C[t]||EA)-E[t];for(const t in I)t!=="1"&&(g[t]=!0);for(const t in C)t!=="1"&&(g[t]=!0);let a=null,i=null;for(const t in g){const e=I[t]||EA,o=C[t]||EA;if(e===EA){if(o!==EA)return null;continue}let s=o,n=e;const r=CI(s,n);if(s/=r,n/=r,a===null&&i===null)a=s,i=n;else if(s*i!=a*n)return null}return a!==null&&i!==null?SA(a,i):null},equals:function(B,A){return XA(B,A),this.s*this.n*_.d==_.s*_.n*this.d},lt:function(B,A){return XA(B,A),this.s*this.n*_.d<_.s*_.n*this.d},lte:function(B,A){return XA(B,A),this.s*this.n*_.d<=_.s*_.n*this.d},gt:function(B,A){return XA(B,A),this.s*this.n*_.d>_.s*_.n*this.d},gte:function(B,A){return XA(B,A),this.s*this.n*_.d>=_.s*_.n*this.d},compare:function(B,A){XA(B,A);let g=this.s*this.n*_.d-_.s*_.n*this.d;return(EA<g)-(g<EA)},ceil:function(B){return B=ag**BigInt(B||0),SA(fg(this.s*B*this.n/this.d)+(B*this.n%this.d>EA&&this.s>=EA?nA:EA),B)},floor:function(B){return B=ag**BigInt(B||0),SA(fg(this.s*B*this.n/this.d)-(B*this.n%this.d>EA&&this.s<EA?nA:EA),B)},round:function(B){return B=ag**BigInt(B||0),SA(fg(this.s*B*this.n/this.d)+this.s*((this.s>=EA?nA:EA)+LI*(B*this.n%this.d)>this.d?nA:EA),B)},roundTo:function(B,A){XA(B,A);const g=this.n*_.d,I=this.d*_.n,Q=g%I;let C=fg(g/I);return Q+Q>=I&&C++,SA(this.s*C*_.n,_.d)},divisible:function(B,A){return XA(B,A),!(!(_.n*this.d)||this.n*_.d%(_.n*this.d))},valueOf:function(){return Number(this.s*this.n)/Number(this.d)},toString:function(B){let A=this.n,g=this.d;B=B||15;let I=function(E,a){for(;a%LI===EA;a/=LI);for(;a%iQ===EA;a/=iQ);if(a===nA)return EA;let i=ag%a,t=1;for(;i!==nA;t++)if(i=i*ag%a,t>2e3)return EA;return BigInt(t)}(0,g),Q=gt(0,g,I),C=this.s<EA?"-":"";if(C+=fg(A/g),A%=g,A*=ag,A&&(C+="."),I){for(let E=Q;E--;)C+=fg(A/g),A%=g,A*=ag;C+="(";for(let E=I;E--;)C+=fg(A/g),A%=g,A*=ag;C+=")"}else for(let E=B;A&&E--;)C+=fg(A/g),A%=g,A*=ag;return C},toFraction:function(B){let A=this.n,g=this.d,I=this.s<EA?"-":"";if(g===nA)I+=A;else{let Q=fg(A/g);B&&Q>EA&&(I+=Q,I+=" ",A%=g),I+=A,I+="/",I+=g}return I},toLatex:function(B){let A=this.n,g=this.d,I=this.s<EA?"-":"";if(g===nA)I+=A;else{let Q=fg(A/g);B&&Q>EA&&(I+=Q,A%=g),I+="\\frac{",I+=A,I+="}{",I+=g,I+="}"}return I},toContinued:function(){let B=this.n,A=this.d,g=[];do{g.push(fg(B/A));let I=B%A;B=A,A=I}while(B!==nA);return g},simplify:function(B){const A=BigInt(1/(B||.001)|0),g=this.abs(),I=g.toContinued();for(let Q=1;Q<I.length;Q++){let C=SA(I[Q-1],nA);for(let a=Q-2;a>=0;a--)C=C.inverse().add(I[a]);let E=C.sub(g);if(E.n*A<E.d)return C.mul(this.s)}return this}};var It=uA("Fraction",[],()=>(Object.defineProperty(ug,"name",{value:"Fraction"}),ug.prototype.constructor=ug,ug.prototype.type="Fraction",ug.prototype.isFraction=!0,ug.prototype.toJSON=function(){return{mathjs:"Fraction",n:String(this.s*this.n),d:String(this.d)}},ug.fromJSON=function(B){return new ug(B)},ug),{isClass:!0}),Bt=uA("Matrix",[],()=>{function B(){if(!(this instanceof B))throw new SyntaxError("Constructor must be called with the new operator")}return B.prototype.type="Matrix",B.prototype.isMatrix=!0,B.prototype.storage=function(){throw new Error("Cannot invoke storage on a Matrix interface")},B.prototype.datatype=function(){throw new Error("Cannot invoke datatype on a Matrix interface")},B.prototype.create=function(A,g){throw new Error("Cannot invoke create on a Matrix interface")},B.prototype.subset=function(A,g,I){throw new Error("Cannot invoke subset on a Matrix interface")},B.prototype.get=function(A){throw new Error("Cannot invoke get on a Matrix interface")},B.prototype.set=function(A,g,I){throw new Error("Cannot invoke set on a Matrix interface")},B.prototype.resize=function(A,g){throw new Error("Cannot invoke resize on a Matrix interface")},B.prototype.reshape=function(A,g){throw new Error("Cannot invoke reshape on a Matrix interface")},B.prototype.clone=function(){throw new Error("Cannot invoke clone on a Matrix interface")},B.prototype.size=function(){throw new Error("Cannot invoke size on a Matrix interface")},B.prototype.map=function(A,g){throw new Error("Cannot invoke map on a Matrix interface")},B.prototype.forEach=function(A){throw new Error("Cannot invoke forEach on a Matrix interface")},B.prototype[Symbol.iterator]=function(){throw new Error("Cannot iterate a Matrix interface")},B.prototype.toArray=function(){throw new Error("Cannot invoke toArray on a Matrix interface")},B.prototype.valueOf=function(){throw new Error("Cannot invoke valueOf on a Matrix interface")},B.prototype.format=function(A){throw new Error("Cannot invoke format on a Matrix interface")},B.prototype.toString=function(){throw new Error("Cannot invoke toString on a Matrix interface")},B},{isClass:!0});function oQ(B,A,g){var I=new B.constructor(2),Q="";if(g){if(g<1)throw new Error("size must be in greater than 0");if(!LA(g))throw new Error("size must be an integer");if(B.greaterThan(I.pow(g-1).sub(1))||B.lessThan(I.pow(g-1).mul(-1)))throw new Error("Value must be in range [-2^".concat(g-1,", 2^").concat(g-1,"-1]"));if(!B.isInteger())throw new Error("Value must be an integer");B.lessThan(0)&&(B=B.add(I.pow(g))),Q="i".concat(g)}switch(A){case 2:return"".concat(B.toBinary()).concat(Q);case 8:return"".concat(B.toOctal()).concat(Q);case 16:return"".concat(B.toHexadecimal()).concat(Q);default:throw new Error("Base ".concat(A," not supported "))}}function Qt(B,A){if(typeof A=="function")return A(B);if(!B.isFinite())return B.isNaN()?"NaN":B.gt(0)?"Infinity":"-Infinity";var{notation:g,precision:I,wordSize:Q}=QE(A);switch(g){case"fixed":return function(t,e){return t.toFixed(e)}(B,I);case"exponential":return fE(B,I);case"engineering":return function(t,e){var o=t.e,s=o%3==0?o:o<0?o-3-o%3:o-o%3,n=t.mul(Math.pow(10,-s)),r=n.toPrecision(e);return r.includes("e")&&(r=new t.constructor(r).toFixed()),r+"e"+(o>=0?"+":"")+s.toString()}(B,I);case"bin":return oQ(B,2,Q);case"oct":return oQ(B,8,Q);case"hex":return oQ(B,16,Q);case"auto":var C=FE(A?.lowerExp,-3),E=FE(A?.upperExp,5);if(B.isZero())return"0";var a=B.toSignificantDigits(I),i=a.e;return(i>=C&&i<E?a.toFixed():fE(B,I)).replace(/((\.\d*?)(0+))($|e)/,function(){var t=arguments[2],e=arguments[4];return t!=="."?t+e:e});default:throw new Error('Unknown notation "'+g+'". Choose "auto", "exponential", "fixed", "bin", "oct", or "hex.')}}function fE(B,A){return A!==void 0?B.toExponential(A-1):B.toExponential()}function FE(B,A){return mA(B)?B:vA(B)?B.toNumber():A}function TA(B,A){var g=function(I,Q){return typeof I=="number"?gQ(I,Q):vA(I)?Qt(I,Q):function(C){return C&&typeof C=="object"&&typeof C.s=="bigint"&&typeof C.n=="bigint"&&typeof C.d=="bigint"||!1}(I)?Q&&Q.fraction==="decimal"?I.toString():"".concat(I.s*I.n,"/").concat(I.d):Array.isArray(I)?GE(I,Q):Gg(I)?yE(I):typeof I=="function"?I.syntax?String(I.syntax):"function":I&&typeof I=="object"?typeof I.format=="function"?I.format(Q):I&&I.toString(Q)!=={}.toString()?I.toString(Q):"{"+Object.keys(I).map(C=>yE(C)+": "+TA(I[C],Q)).join(", ")+"}":String(I)}(B,A);return A&&typeof A=="object"&&"truncate"in A&&g.length>A.truncate?g.substring(0,A.truncate-3)+"...":g}function yE(B){for(var A=String(B),g="",I=0;I<A.length;){var Q=A.charAt(I);g+=Q in ME?ME[Q]:Q,I++}return'"'+g+'"'}var ME={'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t"};function GE(B,A){if(Array.isArray(B)){for(var g="[",I=B.length,Q=0;Q<I;Q++)Q!==0&&(g+=", "),g+=GE(B[Q],A);return g+="]"}return TA(B,A)}function UA(B,A,g){if(!(this instanceof UA))throw new SyntaxError("Constructor must be called with the new operator");this.actual=B,this.expected=A,this.relation=g,this.message="Dimension mismatch ("+(Array.isArray(B)?"["+B.join(", ")+"]":B)+" "+(this.relation||"!=")+" "+(Array.isArray(A)?"["+A.join(", ")+"]":A)+")",this.stack=new Error().stack}function FI(B,A,g){if(!(this instanceof FI))throw new SyntaxError("Constructor must be called with the new operator");this.index=B,arguments.length<3?(this.min=0,this.max=A):(this.min=A,this.max=g),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}function Bg(B){for(var A=[];Array.isArray(B);)A.push(B.length),B=B[0];return A}function RE(B,A,g){var I,Q=B.length;if(Q!==A[g])throw new UA(Q,A[g]);if(g<A.length-1){var C=g+1;for(I=0;I<Q;I++){var E=B[I];if(!Array.isArray(E))throw new UA(A.length-1,A.length,"<");RE(B[I],A,C)}}else for(I=0;I<Q;I++)if(Array.isArray(B[I]))throw new UA(A.length+1,A.length,">")}function pE(B,A){if(A.length===0){if(Array.isArray(B))throw new UA(B.length,0)}else RE(B,A,0)}function xA(B,A){if(B!==void 0){if(!mA(B)||!LA(B))throw new TypeError("Index must be an integer (value: "+B+")");if(B<0||typeof A=="number"&&B>=A)throw new FI(B,A)}}function nQ(B,A,g){if(!Array.isArray(A))throw new TypeError("Array expected");if(A.length===0)throw new Error("Resizing to scalar is not supported");return A.forEach(function(I){if(!mA(I)||!LA(I)||I<0)throw new TypeError("Invalid size, must contain positive integers (size: "+TA(A)+")")}),(mA(B)||vA(B))&&(B=[B]),sQ(B,A,0,g!==void 0?g:0),B}function sQ(B,A,g,I){var Q,C,E=B.length,a=A[g],i=Math.min(E,a);if(B.length=a,g<A.length-1){var t=g+1;for(Q=0;Q<i;Q++)C=B[Q],Array.isArray(C)||(C=[C],B[Q]=C),sQ(C,A,t,I);for(Q=i;Q<a;Q++)C=[],B[Q]=C,sQ(C,A,t,I)}else{for(Q=0;Q<i;Q++)for(;Array.isArray(B[Q]);)B[Q]=B[Q][0];for(Q=i;Q<a;Q++)B[Q]=I}}function NE(B,A){var g=function(C){var E=arguments.length>1&&arguments[1]!==void 0&&arguments[1];if(!Array.isArray(C))return C;if(typeof E!="boolean")throw new TypeError("Boolean expected for second argument of flatten");var a=[];return E?t(C):i(C),a;function i(e){for(var o=0;o<e.length;o++){var s=e[o];Array.isArray(s)?i(s):a.push(s)}}function t(e){if(Array.isArray(e[0]))for(var o=0;o<e.length;o++)t(e[o]);else for(var s=0;s<e.length;s++)a.push(e[s])}}(B,!0),I=g.length;if(!Array.isArray(B)||!Array.isArray(A))throw new TypeError("Array expected");if(A.length===0)throw new UA(0,I,"!=");var Q=kE(A=rQ(A,I));if(I!==Q)throw new UA(Q,I,"!=");try{return function(C,E){for(var a,i=C,t=E.length-1;t>0;t--){var e=E[t];a=[];for(var o=i.length/e,s=0;s<o;s++)a.push(i.slice(s*e,(s+1)*e));i=a}return i}(g,A)}catch(C){throw C instanceof UA?new UA(Q,I,"!="):C}}function rQ(B,A){var g=kE(B),I=B.slice(),Q=B.indexOf(-1);if(B.indexOf(-1,Q+1)>=0)throw new Error("More than one wildcard in sizes");if(Q>=0){if(A%g!=0)throw new Error("Could not replace wildcard, since "+A+" is no multiple of "+-g);I[Q]=-A/g}return I}function kE(B){return B.reduce((A,g)=>A*g,1)}function mE(B,A,g,I){var Q=I||Bg(B);if(g)for(var C=0;C<g;C++)B=[B],Q.unshift(1);for(B=SE(B,A,0);Q.length<A;)Q.push(1);return B}function SE(B,A,g){var I,Q;if(Array.isArray(B)){var C=g+1;for(I=0,Q=B.length;I<Q;I++)B[I]=SE(B[I],A,C)}else for(var E=g;E<A;E++)B=[B];return B}function cQ(B,A){for(var g,I=0,Q=0;Q<B.length;Q++){var C=B[Q],E=Array.isArray(C);if(Q===0&&E&&(I=C.length),E&&C.length!==I)return;var a=E?cQ(C,A):A(C);if(g===void 0)g=a;else if(g!==a)return"mixed"}return g}function UE(B,A,g,I){if(I<g){if(B.length!==A.length)throw new UA(B.length,A.length);for(var Q=[],C=0;C<B.length;C++)Q[C]=UE(B[C],A[C],g,I+1);return Q}return B.concat(A)}function Ct(){var B=Array.prototype.slice.call(arguments,0,-1),A=Array.prototype.slice.call(arguments,-1);if(B.length===1)return B[0];if(B.length>1)return B.slice(1).reduce(function(g,I){return UE(g,I,A,0)},B[0]);throw new Error("Wrong number of arguments in function concat")}function LE(B,A){for(var g=A.length,I=B.length,Q=0;Q<I;Q++){var C=g-I+Q;if(B[Q]<A[C]&&B[Q]>1||B[Q]>A[C])throw new Error("shape mismatch: mismatch is found in arg with shape (".concat(B,") not possible to broadcast dimension ").concat(I," with size ").concat(B[Q]," to size ").concat(A[C]))}}function JE(B,A){var g=Bg(B);if(hI(g,A))return B;LE(g,A);var I,Q,C,E=function(){for(var o=arguments.length,s=new Array(o),n=0;n<o;n++)s[n]=arguments[n];for(var r=s.map(m=>m.length),c=Math.max(...r),D=new Array(c).fill(null),b=0;b<s.length;b++)for(var h=s[b],w=r[b],f=0;f<w;f++){var p=c-w+f;h[f]>D[p]&&(D[p]=h[f])}for(var R=0;R<s.length;R++)LE(s[R],D);return D}(g,A),a=E.length,i=[...Array(a-g.length).fill(1),...g],t=function(o){return zI([],o)}(B);g.length<a&&(g=Bg(t=NE(t,i)));for(var e=0;e<a;e++)g[e]<E[e]&&(I=t,Q=E[e],C=e,g=Bg(t=Ct(...Array(Q).fill(I),C)));return t}function YE(B,A){if(!Array.isArray(B))throw new Error("Array expected");var g=Bg(B);if(A.length!==g.length)throw new UA(A.length,g.length);for(var I=0;I<A.length;I++)xA(A[I],g[I]);return A.reduce((Q,C)=>Q[C],B)}function xE(B,A){var g=arguments.length>2&&arguments[2]!==void 0&&arguments[2];if(B.length===0)return[];if(g)return function Q(C){if(Array.isArray(C)){for(var E=C.length,a=Array(E),i=0;i<E;i++)a[i]=Q(C[i]);return a}return A(C)}(B);var I=[];return function Q(C,E){if(Array.isArray(C)){for(var a=C.length,i=Array(a),t=0;t<a;t++)I[E]=t,i[t]=Q(C[t],E+1);return i}return A(C,I.slice(0,E),B)}(B,0)}function rB(B,A,g){var I=arguments.length>3&&arguments[3]!==void 0&&arguments[3];if($I.isTypedFunction(B)){var Q,C;if(I)Q=1;else{var E=(A.isMatrix?A.size():Bg(A)).map(()=>0),a=A.isMatrix?A.get(E):YE(A,E);Q=function(t,e,o,s){for(var n=[e,o,s],r=3;r>0;r--){var c=n.slice(0,r);if($I.resolve(t,c)!==null)return r}}(B,a,E,A)}if(A.isMatrix&&A.dataType!=="mixed"&&A.dataType!==void 0){var i=function(t,e){var o=[];if(Object.entries(t.signatures).forEach(s=>{var[n,r]=s;n.split(",").length===e&&o.push(r)}),o.length===1)return o[0]}(B,Q);C=i!==void 0?i:B}else C=B;return Q>=1&&Q<=3?{isUnary:Q===1,fn:function(){for(var t=arguments.length,e=new Array(t),o=0;o<t;o++)e[o]=arguments[o];return HE(C,e.slice(0,Q),g,B.name)}}:{isUnary:!1,fn:function(){for(var t=arguments.length,e=new Array(t),o=0;o<t;o++)e[o]=arguments[o];return HE(C,e,g,B.name)}}}return I===void 0?{isUnary:Et(B),fn:B}:{isUnary:I,fn:B}}function Et(B){if(B.length!==1)return!1;var A=B.toString();if(/arguments/.test(A))return!1;var g=A.match(/\(.*?\)/);return!/\.\.\./.test(g)}function HE(B,A,g,I){try{return B(...A)}catch(Q){(function(C,E,a,i){var t;if(C instanceof TypeError&&((t=C.data)===null||t===void 0?void 0:t.category)==="wrongType"){var e=[];throw e.push("value: ".concat(Kg(E[0]))),E.length>=2&&e.push("index: ".concat(Kg(E[1]))),E.length>=3&&e.push("array: ".concat(Kg(E[2]))),new TypeError("Function ".concat(a," cannot apply callback arguments ")+"".concat(i,"(").concat(e.join(", "),") at index ").concat(JSON.stringify(E[1])))}throw new TypeError("Function ".concat(a," cannot apply callback arguments ")+"to function ".concat(i,": ").concat(C.message))})(Q,A,g,I)}}UA.prototype=new RangeError,UA.prototype.constructor=RangeError,UA.prototype.name="DimensionError",UA.prototype.isDimensionError=!0,FI.prototype=new RangeError,FI.prototype.constructor=RangeError,FI.prototype.name="IndexError",FI.prototype.isIndexError=!0;var at=uA("DenseMatrix",["Matrix"],B=>{var{Matrix:A}=B;function g(E,a){if(!(this instanceof g))throw new SyntaxError("Constructor must be called with the new operator");if(a&&!Gg(a))throw new Error("Invalid datatype: "+a);if(KA(E))E.type==="DenseMatrix"?(this._data=jA(E._data),this._size=jA(E._size),this._datatype=a||E._datatype):(this._data=E.toArray(),this._size=E.size(),this._datatype=a||E._datatype);else if(E&&PA(E.data)&&PA(E.size))this._data=E.data,this._size=E.size,pE(this._data,this._size),this._datatype=a||E.datatype;else if(PA(E))this._data=C(E),this._size=Bg(this._data),pE(this._data,this._size),this._datatype=a;else{if(E)throw new TypeError("Unsupported type of data ("+Kg(E)+")");this._data=[],this._size=[0],this._datatype=a}}function I(E,a,i){if(a.length===0){for(var t=E._data;PA(t);)t=t[0];return t}return E._size=a.slice(0),E._data=nQ(E._data,E._size,i),E}function Q(E,a,i){for(var t=E._size.slice(0),e=!1;t.length<a.length;)t.push(0),e=!0;for(var o=0,s=a.length;o<s;o++)a[o]>t[o]&&(t[o]=a[o],e=!0);e&&I(E,t,i)}function C(E){return KA(E)?C(E.valueOf()):PA(E)?E.map(C):E}return g.prototype=new A,g.prototype.createDenseMatrix=function(E,a){return new g(E,a)},Object.defineProperty(g,"name",{value:"DenseMatrix"}),g.prototype.constructor=g,g.prototype.type="DenseMatrix",g.prototype.isDenseMatrix=!0,g.prototype.getDataType=function(){return cQ(this._data,Kg)},g.prototype.storage=function(){return"dense"},g.prototype.datatype=function(){return this._datatype},g.prototype.create=function(E,a){return new g(E,a)},g.prototype.subset=function(E,a,i){switch(arguments.length){case 1:return function(t,e){if(!_B(e))throw new TypeError("Invalid index");var o=e.isScalar();if(o)return t.get(e.min());var s=e.size();if(s.length!==t._size.length)throw new UA(s.length,t._size.length);for(var n=e.min(),r=e.max(),c=0,D=t._size.length;c<D;c++)xA(n[c],t._size[c]),xA(r[c],t._size[c]);var b=new g([]),h=function(w,f){var p=f.size().length-1,R=Array(p);return{data:m(w),size:R};function m(G){var k=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,U=f.dimension(k);return R[k]=U.size()[0],k<p?U.map(S=>(xA(S,G.length),m(G[S],k+1))).valueOf():U.map(S=>(xA(S,G.length),G[S])).valueOf()}}(t._data,e);return b._size=h.size,b._datatype=t._datatype,b._data=h.data,b}(this,E);case 2:case 3:return function(t,e,o,s){if(!e||e.isIndex!==!0)throw new TypeError("Invalid index");var n,r=e.size(),c=e.isScalar();if(KA(o)?(n=o.size(),o=o.valueOf()):n=Bg(o),c){if(n.length!==0)throw new TypeError("Scalar expected");t.set(e.min(),o,s)}else{if(!hI(n,r))try{n=Bg(o=n.length===0?JE([o],r):JE(o,r))}catch{}if(r.length<t._size.length)throw new UA(r.length,t._size.length,"<");if(n.length<r.length){for(var D=0,b=0;r[D]===1&&n[D]===1;)D++;for(;r[D]===1;)b++,D++;o=mE(o,r.length,b,n)}if(!hI(r,n))throw new UA(r,n,">");var h=e.max().map(function(w){return w+1});Q(t,h,s),function(w,f,p){var R=f.size().length-1;function m(G,k){var U=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,S=f.dimension(U);U<R?S.forEach((q,z)=>{xA(q,G.length),m(G[q],k[z[0]],U+1)}):S.forEach((q,z)=>{xA(q,G.length),G[q]=k[z[0]]})}m(w,p)}(t._data,e,o)}return t}(this,E,a,i);default:throw new SyntaxError("Wrong number of arguments")}},g.prototype.get=function(E){return YE(this._data,E)},g.prototype.set=function(E,a,i){if(!PA(E))throw new TypeError("Array expected");if(E.length<this._size.length)throw new UA(E.length,this._size.length,"<");var t,e,o,s=E.map(function(r){return r+1});Q(this,s,i);var n=this._data;for(t=0,e=E.length-1;t<e;t++)xA(o=E[t],n.length),n=n[o];return xA(o=E[E.length-1],n.length),n[o]=a,this},g.prototype.resize=function(E,a,i){if(!ZI(E))throw new TypeError("Array or Matrix expected");var t=E.valueOf().map(e=>Array.isArray(e)&&e.length===1?e[0]:e);return I(i?this.clone():this,t,a)},g.prototype.reshape=function(E,a){var i=a?this.clone():this;i._data=NE(i._data,E);var t=i._size.reduce((e,o)=>e*o);return i._size=rQ(E,t),i},g.prototype.clone=function(){return new g({data:jA(this._data),size:jA(this._size),datatype:this._datatype})},g.prototype.size=function(){return this._size.slice(0)},g.prototype.map=function(E){var a=arguments.length>2&&arguments[2]!==void 0&&arguments[2],i=this,t=i._size.length-1;if(t<0)return i.clone();var e=rB(E,i,"map",a),o=e.fn,s=i.create(void 0,i._datatype);if(s._size=i._size,a||e.isUnary)return s._data=function b(h){var w=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,f=Array(h.length);if(w<t)for(var p=0;p<h.length;p++)f[p]=b(h[p],w+1);else for(var R=0;R<h.length;R++)f[R]=o(h[R]);return f}(i._data),s;if(t===0){for(var n=i.valueOf(),r=Array(n.length),c=0;c<n.length;c++)r[c]=o(n[c],[c],i);return s._data=r,s}var D=[];return s._data=function b(h){var w=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,f=Array(h.length);if(w<t)for(var p=0;p<h.length;p++)D[w]=p,f[p]=b(h[p],w+1);else for(var R=0;R<h.length;R++)D[w]=R,f[R]=o(h[R],D.slice(),i);return f}(i._data),s},g.prototype.forEach=function(E){var a=arguments.length>2&&arguments[2]!==void 0&&arguments[2],i=this,t=i._size.length-1;if(!(t<0)){var e=rB(E,i,"map",a),o=e.fn;if(a||e.isUnary)(function r(c){var D=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(D<t)for(var b=0;b<c.length;b++)r(c[b],D+1);else for(var h=0;h<c.length;h++)o(c[h])})(i._data);else if(t!==0){var s=[];(function r(c){var D=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(D<t)for(var b=0;b<c.length;b++)s[D]=b,r(c[b],D+1);else for(var h=0;h<c.length;h++)s[D]=h,o(c[h],s.slice(),i)})(i._data)}else for(var n=0;n<i._data.length;n++)o(i._data[n],[n],i)}},g.prototype[Symbol.iterator]=function*(){var E=this._size.length-1;if(!(E<0))if(E!==0)for(var a=Array(E+1).fill(0),i=this._size.reduce((r,c)=>r*c,1),t=0;t<i;t++){for(var e=this._data,o=0;o<E;o++)e=e[a[o]];yield{value:e[a[E]],index:a.slice()};for(var s=E;s>=0&&(a[s]++,!(a[s]<this._size[s]));s--)a[s]=0}else for(var n=0;n<this._data.length;n++)yield{value:this._data[n],index:[n]}},g.prototype.rows=function(){var E=[];if(this.size().length!==2)throw new TypeError("Rows can only be returned for a 2D matrix.");var a=this._data;for(var i of a)E.push(new g([i],this._datatype));return E},g.prototype.columns=function(){var E=this,a=[],i=this.size();if(i.length!==2)throw new TypeError("Rows can only be returned for a 2D matrix.");for(var t=this._data,e=function(s){var n=t.map(r=>[r[s]]);a.push(new g(n,E._datatype))},o=0;o<i[1];o++)e(o);return a},g.prototype.toArray=function(){return jA(this._data)},g.prototype.valueOf=function(){return this._data},g.prototype.format=function(E){return TA(this._data,E)},g.prototype.toString=function(){return TA(this._data)},g.prototype.toJSON=function(){return{mathjs:"DenseMatrix",data:this._data,size:this._size,datatype:this._datatype}},g.prototype.diagonal=function(E){if(E){if(vA(E)&&(E=E.toNumber()),!mA(E)||!LA(E))throw new TypeError("The parameter k must be an integer number")}else E=0;for(var a=E>0?E:0,i=E<0?-E:0,t=this._size[0],e=this._size[1],o=Math.min(t-i,e-a),s=[],n=0;n<o;n++)s[n]=this._data[n+i][n+a];return new g({data:s,size:[o],datatype:this._datatype})},g.diagonal=function(E,a,i,t){if(!PA(E))throw new TypeError("Array expected, size parameter");if(E.length!==2)throw new Error("Only two dimensions matrix are supported");if(E=E.map(function(w){if(vA(w)&&(w=w.toNumber()),!mA(w)||!LA(w)||w<1)throw new Error("Size values must be positive integers");return w}),i){if(vA(i)&&(i=i.toNumber()),!mA(i)||!LA(i))throw new TypeError("The parameter k must be an integer number")}else i=0;var e,o=i>0?i:0,s=i<0?-i:0,n=E[0],r=E[1],c=Math.min(n-s,r-o);if(PA(a)){if(a.length!==c)throw new Error("Invalid value array length");e=function(w){return a[w]}}else if(KA(a)){var D=a.size();if(D.length!==1||D[0]!==c)throw new Error("Invalid matrix length");e=function(w){return a.get([w])}}else e=function(){return a};t||(t=vA(e(0))?e(0).mul(0):0);var b=[];if(E.length>0){b=nQ(b,E,t);for(var h=0;h<c;h++)b[h+s][h+o]=e(h)}return new g({data:b,size:[n,r]})},g.fromJSON=function(E){return new g(E)},g.prototype.swapRows=function(E,a){if(!(mA(E)&&LA(E)&&mA(a)&&LA(a)))throw new Error("Row index must be positive integers");if(this._size.length!==2)throw new Error("Only two dimensional matrix is supported");return xA(E,this._size[0]),xA(a,this._size[0]),g._swapRows(E,a,this._data),this},g._swapRows=function(E,a,i){var t=i[E];i[E]=i[a],i[a]=t},g},{isClass:!0});function EI(B,A,g){if(!g)return KA(B)?B.map(Q=>A(Q),!1,!0):xE(B,A,!0);var I=Q=>Q===0?Q:A(Q);return KA(B)?B.map(Q=>I(Q),!1,!0):xE(B,I,!0)}var KE="number",cB="number, number";function jE(B){return Math.abs(B)}function qE(B,A){return B+A}function vE(B,A){return B-A}function TE(B,A){return B*A}function OE(B){return-B}function WE(B,A){return B*B<1&&A===1/0||B*B>1&&A===-1/0?0:Math.pow(B,A)}function hQ(B,A){if(A<B)return 1;if(A===B)return A;var g=A+B>>1;return hQ(B,g)*hQ(g+1,A)}function hB(B){var A;if(LA(B))return B<=0?isFinite(B)?1/0:NaN:B>171?1/0:hQ(1,B-1);if(B<.5)return Math.PI/(Math.sin(Math.PI*B)*hB(1-B));if(B>=171.35)return 1/0;if(B>85){var g=B*B,I=g*B,Q=I*B,C=Q*B;return Math.sqrt(2*Math.PI/B)*Math.pow(B/Math.E,B)*(1+1/(12*B)+1/(288*g)-139/(51840*I)-571/(2488320*Q)+163879/(209018880*C)+5246819/(75246796800*C*B))}--B,A=yI[0];for(var E=1;E<yI.length;++E)A+=yI[E]/(B+E);var a=B+PE+.5;return Math.sqrt(2*Math.PI)*Math.pow(a,B+.5)*Math.exp(-a)*A}jE.signature=KE,qE.signature=cB,vE.signature=cB,TE.signature=cB,OE.signature=KE,WE.signature=cB,hB.signature="number";var PE=4.7421875,yI=[.9999999999999971,57.15623566586292,-59.59796035547549,14.136097974741746,-.4919138160976202,3399464998481189e-20,4652362892704858e-20,-9837447530487956e-20,.0001580887032249125,-.00021026444172410488,.00021743961811521265,-.0001643181065367639,8441822398385275e-20,-26190838401581408e-21,36899182659531625e-22],VE="isZero",et=uA(VE,["typed","equalScalar"],B=>{var{typed:A,equalScalar:g}=B;return A(VE,{"number | BigNumber | Complex | Fraction":I=>g(I,0),bigint:I=>I===0n,Unit:A.referToSelf(I=>Q=>A.find(I,Q.valueType())(Q.value)),"Array | Matrix":A.referToSelf(I=>Q=>EI(Q,I))})}),it=uA("compareUnits",["typed"],B=>{var{typed:A}=B;return{"Unit, Unit":A.referToSelf(g=>(I,Q)=>{if(!I.equalBase(Q))throw new Error("Cannot compare units with different base");return A.find(g,[I.valueType(),Q.valueType()])(I.value,Q.value)})}}),DB="equalScalar",tt=uA(DB,["typed","config"],B=>{var{typed:A,config:g}=B,I=it({typed:A});return A(DB,{"boolean, boolean":function(Q,C){return Q===C},"number, number":function(Q,C){return IB(Q,C,g.relTol,g.absTol)},"BigNumber, BigNumber":function(Q,C){return Q.eq(C)||function(E,a){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1e-9,t=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;if(i<=0)throw new Error("Relative tolerance must be greater than 0");if(t<0)throw new Error("Absolute tolerance must be at least 0");return!E.isNaN()&&!a.isNaN()&&(E.isFinite()&&a.isFinite()?!!E.eq(a)||E.minus(a).abs().lte(E.constructor.max(E.constructor.max(E.abs(),a.abs()).mul(i),t)):E.eq(a))}(Q,C,g.relTol,g.absTol)},"bigint, bigint":function(Q,C){return Q===C},"Fraction, Fraction":function(Q,C){return Q.equals(C)},"Complex, Complex":function(Q,C){return function(E,a,i,t){return IB(E.re,a.re,i,t)&&IB(E.im,a.im,i,t)}(Q,C,g.relTol,g.absTol)}},I)});uA(DB,["typed","config"],B=>{var{typed:A,config:g}=B;return A(DB,{"number, number":function(I,Q){return IB(I,Q,g.relTol,g.absTol)}})});var ot=uA("SparseMatrix",["typed","equalScalar","Matrix"],B=>{var{typed:A,equalScalar:g,Matrix:I}=B;function Q(e,o){if(!(this instanceof Q))throw new SyntaxError("Constructor must be called with the new operator");if(o&&!Gg(o))throw new Error("Invalid datatype: "+o);if(KA(e))(function(s,n,r){n.type==="SparseMatrix"?(s._values=n._values?jA(n._values):void 0,s._index=jA(n._index),s._ptr=jA(n._ptr),s._size=jA(n._size),s._datatype=r||n._datatype):C(s,n.valueOf(),r||n._datatype)})(this,e,o);else if(e&&PA(e.index)&&PA(e.ptr)&&PA(e.size))this._values=e.values,this._index=e.index,this._ptr=e.ptr,this._size=e.size,this._datatype=o||e.datatype;else if(PA(e))C(this,e,o);else{if(e)throw new TypeError("Unsupported type of data ("+Kg(e)+")");this._values=[],this._index=[],this._ptr=[0],this._size=[0,0],this._datatype=o}}function C(e,o,s){e._values=[],e._index=[],e._ptr=[],e._datatype=s;var n=o.length,r=0,c=g,D=0;if(Gg(s)&&(c=A.find(g,[s,s])||g,D=A.convert(0,s)),n>0){var b=0;do{e._ptr.push(e._index.length);for(var h=0;h<n;h++){var w=o[h];if(PA(w)){if(b===0&&r<w.length&&(r=w.length),b<w.length){var f=w[b];c(f,D)||(e._values.push(f),e._index.push(h))}}else b===0&&r<1&&(r=1),c(w,D)||(e._values.push(w),e._index.push(h))}b++}while(b<r)}e._ptr.push(e._index.length),e._size=[n,r]}function E(e,o,s,n){if(s-o==0)return s;for(var r=o;r<s;r++)if(n[r]===e)return r;return o}function a(e,o,s,n,r,c,D){r.splice(e,0,n),c.splice(e,0,o);for(var b=s+1;b<D.length;b++)D[b]++}function i(e,o,s,n){var r=n||0,c=g,D=0;Gg(e._datatype)&&(c=A.find(g,[e._datatype,e._datatype])||g,D=A.convert(0,e._datatype),r=A.convert(r,e._datatype));var b,h,w,f=!c(r,D),p=e._size[0],R=e._size[1];if(s>R){for(h=R;h<s;h++)if(e._ptr[h]=e._values.length,f)for(b=0;b<p;b++)e._values.push(r),e._index.push(b);e._ptr[s]=e._values.length}else s<R&&(e._ptr.splice(s+1,R-s),e._values.splice(e._ptr[s],e._values.length),e._index.splice(e._ptr[s],e._index.length));if(R=s,o>p){if(f){var m=0;for(h=0;h<R;h++){e._ptr[h]=e._ptr[h]+m,w=e._ptr[h+1]+m;var G=0;for(b=p;b<o;b++,G++)e._values.splice(w+G,0,r),e._index.splice(w+G,0,b),m++}e._ptr[R]=e._values.length}}else if(o<p){var k=0;for(h=0;h<R;h++){e._ptr[h]=e._ptr[h]-k;var U=e._ptr[h],S=e._ptr[h+1]-k;for(w=U;w<S;w++)(b=e._index[w])>o-1&&(e._values.splice(w,1),e._index.splice(w,1),k++)}e._ptr[h]=e._values.length}return e._size[0]=o,e._size[1]=s,e}function t(e,o,s,n,r){var c,D,b=n[0],h=n[1],w=[];for(c=0;c<b;c++)for(w[c]=[],D=0;D<h;D++)w[c][D]=0;for(D=0;D<h;D++)for(var f=s[D],p=s[D+1],R=f;R<p;R++)w[c=o[R]][D]=e?r?jA(e[R]):e[R]:1;return w}return Q.prototype=new I,Q.prototype.createSparseMatrix=function(e,o){return new Q(e,o)},Object.defineProperty(Q,"name",{value:"SparseMatrix"}),Q.prototype.constructor=Q,Q.prototype.type="SparseMatrix",Q.prototype.isSparseMatrix=!0,Q.prototype.getDataType=function(){return cQ(this._values,Kg)},Q.prototype.storage=function(){return"sparse"},Q.prototype.datatype=function(){return this._datatype},Q.prototype.create=function(e,o){return new Q(e,o)},Q.prototype.density=function(){var e=this._size[0],o=this._size[1];return e!==0&&o!==0?this._index.length/(e*o):0},Q.prototype.subset=function(e,o,s){if(!this._values)throw new Error("Cannot invoke subset on a Pattern only matrix");switch(arguments.length){case 1:return function(n,r){if(!_B(r))throw new TypeError("Invalid index");if(r.isScalar())return n.get(r.min());var c,D,b,h,w=r.size();if(w.length!==n._size.length)throw new UA(w.length,n._size.length);var f=r.min(),p=r.max();for(c=0,D=n._size.length;c<D;c++)xA(f[c],n._size[c]),xA(p[c],n._size[c]);var R=n._values,m=n._index,G=n._ptr,k=r.dimension(0),U=r.dimension(1),S=[],q=[];k.forEach(function(X,aA){q[X]=aA[0],S[X]=!0});var z=R?[]:void 0,gA=[],$=[];return U.forEach(function(X){for($.push(gA.length),b=G[X],h=G[X+1];b<h;b++)c=m[b],S[c]===!0&&(gA.push(q[c]),z&&z.push(R[b]))}),$.push(gA.length),new Q({values:z,index:gA,ptr:$,size:w,datatype:n._datatype})}(this,e);case 2:case 3:return function(n,r,c,D){if(!r||r.isIndex!==!0)throw new TypeError("Invalid index");var b,h=r.size(),w=r.isScalar();if(KA(c)?(b=c.size(),c=c.toArray()):b=Bg(c),w){if(b.length!==0)throw new TypeError("Scalar expected");n.set(r.min(),c,D)}else{if(h.length!==1&&h.length!==2)throw new UA(h.length,n._size.length,"<");if(b.length<h.length){for(var f=0,p=0;h[f]===1&&b[f]===1;)f++;for(;h[f]===1;)p++,f++;c=mE(c,h.length,p,b)}if(!hI(h,b))throw new UA(h,b,">");if(h.length===1)r.dimension(0).forEach(function(G,k){xA(G),n.set([G,0],c[k[0]],D)});else{var R=r.dimension(0),m=r.dimension(1);R.forEach(function(G,k){xA(G),m.forEach(function(U,S){xA(U),n.set([G,U],c[k[0]][S[0]],D)})})}}return n}(this,e,o,s);default:throw new SyntaxError("Wrong number of arguments")}},Q.prototype.get=function(e){if(!PA(e))throw new TypeError("Array expected");if(e.length!==this._size.length)throw new UA(e.length,this._size.length);if(!this._values)throw new Error("Cannot invoke get on a Pattern only matrix");var o=e[0],s=e[1];xA(o,this._size[0]),xA(s,this._size[1]);var n=E(o,this._ptr[s],this._ptr[s+1],this._index);return n<this._ptr[s+1]&&this._index[n]===o?this._values[n]:0},Q.prototype.set=function(e,o,s){if(!PA(e))throw new TypeError("Array expected");if(e.length!==this._size.length)throw new UA(e.length,this._size.length);if(!this._values)throw new Error("Cannot invoke set on a Pattern only matrix");var n=e[0],r=e[1],c=this._size[0],D=this._size[1],b=g,h=0;Gg(this._datatype)&&(b=A.find(g,[this._datatype,this._datatype])||g,h=A.convert(0,this._datatype)),(n>c-1||r>D-1)&&(i(this,Math.max(n+1,c),Math.max(r+1,D),s),c=this._size[0],D=this._size[1]),xA(n,c),xA(r,D);var w=E(n,this._ptr[r],this._ptr[r+1],this._index);return w<this._ptr[r+1]&&this._index[w]===n?b(o,h)?function(f,p,R,m,G){R.splice(f,1),m.splice(f,1);for(var k=p+1;k<G.length;k++)G[k]--}(w,r,this._values,this._index,this._ptr):this._values[w]=o:b(o,h)||a(w,n,r,o,this._values,this._index,this._ptr),this},Q.prototype.resize=function(e,o,s){if(!ZI(e))throw new TypeError("Array or Matrix expected");var n=e.valueOf().map(r=>Array.isArray(r)&&r.length===1?r[0]:r);if(n.length!==2)throw new Error("Only two dimensions matrix are supported");return n.forEach(function(r){if(!mA(r)||!LA(r)||r<0)throw new TypeError("Invalid size, must contain positive integers (size: "+TA(n)+")")}),i(s?this.clone():this,n[0],n[1],o)},Q.prototype.reshape=function(e,o){if(!PA(e))throw new TypeError("Array expected");if(e.length!==2)throw new Error("Sparse matrices can only be reshaped in two dimensions");e.forEach(function(q){if(!mA(q)||!LA(q)||q<=-2||q===0)throw new TypeError("Invalid size, must contain positive integers or -1 (size: "+TA(e)+")")});var s=this._size[0]*this._size[1];if(s!==(e=rQ(e,s))[0]*e[1])throw new Error("Reshaping sparse matrix will result in the wrong number of elements");var n=o?this.clone():this;if(this._size[0]===e[0]&&this._size[1]===e[1])return n;for(var r=[],c=0;c<n._ptr.length;c++)for(var D=0;D<n._ptr[c+1]-n._ptr[c];D++)r.push(c);for(var b=n._values.slice(),h=n._index.slice(),w=0;w<n._index.length;w++){var f=h[w],p=r[w],R=f*n._size[1]+p;r[w]=R%e[1],h[w]=Math.floor(R/e[1])}n._values.length=0,n._index.length=0,n._ptr.length=e[1]+1,n._size=e.slice();for(var m=0;m<n._ptr.length;m++)n._ptr[m]=0;for(var G=0;G<b.length;G++){var k=h[G],U=r[G],S=b[G];a(E(k,n._ptr[U],n._ptr[U+1],n._index),k,U,S,n._values,n._index,n._ptr)}return n},Q.prototype.clone=function(){return new Q({values:this._values?jA(this._values):void 0,index:jA(this._index),ptr:jA(this._ptr),size:jA(this._size),datatype:this._datatype})},Q.prototype.size=function(){return this._size.slice(0)},Q.prototype.map=function(e,o){if(!this._values)throw new Error("Cannot invoke map on a Pattern only matrix");var s=this,n=this._size[0],r=this._size[1],c=rB(e,s,"map");return function(D,b,h,w,f,p,R){var m=[],G=[],k=[],U=g,S=0;Gg(D._datatype)&&(U=A.find(g,[D._datatype,D._datatype])||g,S=A.convert(0,D._datatype));for(var q=function(lA,iA,GA){var eA=p(lA,iA,GA);U(eA,S)||(m.push(eA),G.push(iA))},z=w;z<=f;z++){k.push(m.length);var gA=D._ptr[z],$=D._ptr[z+1];if(R)for(var X=gA;X<$;X++){var aA=D._index[X];aA>=b&&aA<=h&&q(D._values[X],aA-b,z-w)}else{for(var wA={},sA=gA;sA<$;sA++)wA[D._index[sA]]=D._values[sA];for(var fA=b;fA<=h;fA++)q(fA in wA?wA[fA]:0,fA-b,z-w)}}return k.push(m.length),new Q({values:m,index:G,ptr:k,size:[h-b+1,f-w+1]})}(this,0,n-1,0,r-1,function(D,b,h){return c.fn(D,[b,h],s)},o)},Q.prototype.forEach=function(e,o){if(!this._values)throw new Error("Cannot invoke forEach on a Pattern only matrix");for(var s=this,n=this._size[0],r=this._size[1],c=rB(e,s,"forEach"),D=0;D<r;D++){var b=this._ptr[D],h=this._ptr[D+1];if(o)for(var w=b;w<h;w++){var f=this._index[w];c.fn(this._values[w],[f,D],s)}else{for(var p={},R=b;R<h;R++)p[this._index[R]]=this._values[R];for(var m=0;m<n;m++){var G=m in p?p[m]:0;c.fn(G,[m,D],s)}}}},Q.prototype[Symbol.iterator]=function*(){if(!this._values)throw new Error("Cannot iterate a Pattern only matrix");for(var e=this._size[1],o=0;o<e;o++)for(var s=this._ptr[o],n=this._ptr[o+1],r=s;r<n;r++){var c=this._index[r];yield{value:this._values[r],index:[c,o]}}},Q.prototype.toArray=function(){return t(this._values,this._index,this._ptr,this._size,!0)},Q.prototype.valueOf=function(){return t(this._values,this._index,this._ptr,this._size,!1)},Q.prototype.format=function(e){for(var o=this._size[0],s=this._size[1],n=this.density(),r="Sparse Matrix ["+TA(o,e)+" x "+TA(s,e)+"] density: "+TA(n,e)+`
|
|
966
|
-
`,c=0;c<
|
|
967
|
-
(`+TA(this._index[h],e)+", "+TA(c,e)+") ==> "+(this._values?TA(this._values[h],e):"X");return r},Q.prototype.toString=function(){return TA(this.toArray())},Q.prototype.toJSON=function(){return{mathjs:"SparseMatrix",values:this._values,index:this._index,ptr:this._ptr,size:this._size,datatype:this._datatype}},Q.prototype.diagonal=function(e){if(e){if(vA(e)&&(e=e.toNumber()),!mA(e)||!LA(e))throw new TypeError("The parameter k must be an integer number")}else e=0;var o=e>0?e:0,s=e<0?-e:0,n=this._size[0],r=this._size[1],c=Math.min(n-s,r-o),D=[],b=[],h=[];h[0]=0;for(var w=o;w<r&&D.length<c;w++)for(var f=this._ptr[w],p=this._ptr[w+1],R=f;R<p;R++){var m=this._index[R];if(m===w-o+s){D.push(this._values[R]),b[D.length-1]=m-s;break}}return h.push(D.length),new Q({values:D,index:b,ptr:h,size:[c,1]})},Q.fromJSON=function(e){return new Q(e)},Q.diagonal=function(e,o,s,n,r){if(!PA(e))throw new TypeError("Array expected, size parameter");if(e.length!==2)throw new Error("Only two dimensions matrix are supported");if(e=e.map(function(gA){if(vA(gA)&&(gA=gA.toNumber()),!mA(gA)||!LA(gA)||gA<1)throw new Error("Size values must be positive integers");return gA}),s){if(vA(s)&&(s=s.toNumber()),!mA(s)||!LA(s))throw new TypeError("The parameter k must be an integer number")}else s=0;var c=g,D=0;Gg(r)&&(c=A.find(g,[r,r])||g,D=A.convert(0,r));var b,h=s>0?s:0,w=s<0?-s:0,f=e[0],p=e[1],R=Math.min(f-w,p-h);if(PA(o)){if(o.length!==R)throw new Error("Invalid value array length");b=function(gA){return o[gA]}}else if(KA(o)){var m=o.size();if(m.length!==1||m[0]!==R)throw new Error("Invalid matrix length");b=function(gA){return o.get([gA])}}else b=function(){return o};for(var G=[],k=[],U=[],S=0;S<p;S++){U.push(G.length);var q=S-h;if(q>=0&&q<R){var z=b(q);c(z,D)||(k.push(q+w),G.push(z))}}return U.push(G.length),new Q({values:G,index:k,ptr:U,size:[f,p]})},Q.prototype.swapRows=function(e,o){if(!(mA(e)&&LA(e)&&mA(o)&&LA(o)))throw new Error("Row index must be positive integers");if(this._size.length!==2)throw new Error("Only two dimensional matrix is supported");return xA(e,this._size[0]),xA(o,this._size[0]),Q._swapRows(e,o,this._size[1],this._values,this._index,this._ptr),this},Q._forEachRow=function(e,o,s,n,r){for(var c=n[e],D=n[e+1],b=c;b<D;b++)r(s[b],o[b])},Q._swapRows=function(e,o,s,n,r,c){for(var D=0;D<s;D++){var b=c[D],h=c[D+1],w=E(e,b,h,r),f=E(o,b,h,r);if(w<h&&f<h&&r[w]===e&&r[f]===o){if(n){var p=n[w];n[w]=n[f],n[f]=p}}else if(w<h&&r[w]===e&&(f>=h||r[f]!==o)){var R=n?n[w]:void 0;r.splice(f,0,o),n&&n.splice(f,0,R),r.splice(f<=w?w+1:w,1),n&&n.splice(f<=w?w+1:w,1)}else if(f<h&&r[f]===o&&(w>=h||r[w]!==e)){var m=n?n[f]:void 0;r.splice(w,0,e),n&&n.splice(w,0,m),r.splice(w<=f?f+1:f,1),n&&n.splice(w<=f?f+1:f,1)}}},Q},{isClass:!0}),nt=uA("number",["typed"],B=>{var{typed:A}=B,g=A("number",{"":function(){return 0},number:function(I){return I},string:function(I){if(I==="NaN")return NaN;var Q,C,E=(C=(Q=I).match(/(0[box])([0-9a-fA-F]*)\.([0-9a-fA-F]*)/))?{input:Q,radix:{"0b":2,"0o":8,"0x":16}[C[1]],integerPart:C[2],fractionalPart:C[3]}:null;if(E)return function(e){for(var o=parseInt(e.integerPart,e.radix),s=0,n=0;n<e.fractionalPart.length;n++)s+=parseInt(e.fractionalPart[n],e.radix)/Math.pow(e.radix,n+1);var r=o+s;if(isNaN(r))throw new SyntaxError('String "'+e.input+'" is not a valid number');return r}(E);var a=0,i=I.match(/(0[box][0-9a-fA-F]*)i([0-9]*)/);i&&(a=Number(i[2]),I=i[1]);var t=Number(I);if(isNaN(t))throw new SyntaxError('String "'+I+'" is not a valid number');if(i){if(t>2**a-1)throw new SyntaxError('String "'.concat(I,'" is out of range'));t>=2**(a-1)&&(t-=2**a)}return t},BigNumber:function(I){return I.toNumber()},bigint:function(I){return Number(I)},Fraction:function(I){return I.valueOf()},Unit:A.referToSelf(I=>Q=>{var C=Q.clone();return C.value=I(Q.value),C}),null:function(I){return 0},"Unit, string | Unit":function(I,Q){return I.toNumber(Q)},"Array | Matrix":A.referToSelf(I=>Q=>EI(Q,I))});return g.fromJSON=function(I){return parseFloat(I.value)},g}),st=uA("bignumber",["typed","BigNumber"],B=>{var{typed:A,BigNumber:g}=B;return A("bignumber",{"":function(){return new g(0)},number:function(I){return new g(I+"")},string:function(I){var Q=I.match(/(0[box][0-9a-fA-F]*)i([0-9]*)/);if(Q){var C=Q[2],E=g(Q[1]),a=new g(2).pow(Number(C));if(E.gt(a.sub(1)))throw new SyntaxError('String "'.concat(I,'" is out of range'));var i=new g(2).pow(Number(C)-1);return E.gte(i)?E.sub(a):E}return new g(I)},BigNumber:function(I){return I},bigint:function(I){return new g(I.toString())},Unit:A.referToSelf(I=>Q=>{var C=Q.clone();return C.value=I(Q.value),C}),Fraction:function(I){return new g(String(I.n)).div(String(I.d)).times(String(I.s))},null:function(I){return new g(0)},"Array | Matrix":A.referToSelf(I=>Q=>EI(Q,I))})}),rt=uA("fraction",["typed","Fraction"],B=>{var{typed:A,Fraction:g}=B;return A("fraction",{number:function(I){if(!isFinite(I)||isNaN(I))throw new Error(I+" cannot be represented as a fraction");return new g(I)},string:function(I){return new g(I)},"number, number":function(I,Q){return new g(I,Q)},"bigint, bigint":function(I,Q){return new g(I,Q)},null:function(I){return new g(0)},BigNumber:function(I){return new g(I.toString())},bigint:function(I){return new g(I.toString())},Fraction:function(I){return I},Unit:A.referToSelf(I=>Q=>{var C=Q.clone();return C.value=I(Q.value),C}),Object:function(I){return new g(I)},"Array | Matrix":A.referToSelf(I=>Q=>EI(Q,I))})}),zE="matrix",ct=uA(zE,["typed","Matrix","DenseMatrix","SparseMatrix"],B=>{var{typed:A,Matrix:g,DenseMatrix:I,SparseMatrix:Q}=B;return A(zE,{"":function(){return C([])},string:function(E){return C([],E)},"string, string":function(E,a){return C([],E,a)},Array:function(E){return C(E)},Matrix:function(E){return C(E,E.storage())},"Array | Matrix, string":C,"Array | Matrix, string, string":C});function C(E,a,i){if(a==="dense"||a==="default"||a===void 0)return new I(E,i);if(a==="sparse")return new Q(E,i);throw new TypeError("Unknown matrix type "+JSON.stringify(a)+".")}}),XE="unaryMinus",ht=uA(XE,["typed"],B=>{var{typed:A}=B;return A(XE,{number:OE,"Complex | BigNumber | Fraction":g=>g.neg(),bigint:g=>-g,Unit:A.referToSelf(g=>I=>{var Q=I.clone();return Q.value=A.find(g,Q.valueType())(I.value),Q}),"Array | Matrix":A.referToSelf(g=>I=>EI(I,g,!0))})}),Dt=uA("abs",["typed"],B=>{var{typed:A}=B;return A("abs",{number:jE,"Complex | BigNumber | Fraction | Unit":g=>g.abs(),bigint:g=>g<0n?-g:g,"Array | Matrix":A.referToSelf(g=>I=>EI(I,g,!0))})}),ZE="addScalar",dt=uA(ZE,["typed"],B=>{var{typed:A}=B;return A(ZE,{"number, number":qE,"Complex, Complex":function(g,I){return g.add(I)},"BigNumber, BigNumber":function(g,I){return g.plus(I)},"bigint, bigint":function(g,I){return g+I},"Fraction, Fraction":function(g,I){return g.add(I)},"Unit, Unit":A.referToSelf(g=>(I,Q)=>{if(I.value===null||I.value===void 0)throw new Error("Parameter x contains a unit with undefined value");if(Q.value===null||Q.value===void 0)throw new Error("Parameter y contains a unit with undefined value");if(!I.equalBase(Q))throw new Error("Units do not match");var C=I.clone();return C.value=A.find(g,[C.valueType(),Q.valueType()])(C.value,Q.value),C.fixPrefix=!1,C})})}),_E="subtractScalar",bt=uA(_E,["typed"],B=>{var{typed:A}=B;return A(_E,{"number, number":vE,"Complex, Complex":function(g,I){return g.sub(I)},"BigNumber, BigNumber":function(g,I){return g.minus(I)},"bigint, bigint":function(g,I){return g-I},"Fraction, Fraction":function(g,I){return g.sub(I)},"Unit, Unit":A.referToSelf(g=>(I,Q)=>{if(I.value===null||I.value===void 0)throw new Error("Parameter x contains a unit with undefined value");if(Q.value===null||Q.value===void 0)throw new Error("Parameter y contains a unit with undefined value");if(!I.equalBase(Q))throw new Error("Units do not match");var C=I.clone();return C.value=A.find(g,[C.valueType(),Q.valueType()])(C.value,Q.value),C.fixPrefix=!1,C})})}),wt=uA("matAlgo11xS0s",["typed","equalScalar"],B=>{var{typed:A,equalScalar:g}=B;return function(I,Q,C,E){var a=I._values,i=I._index,t=I._ptr,e=I._size,o=I._datatype;if(!a)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var s,n=e[0],r=e[1],c=g,D=0,b=C;typeof o=="string"&&(s=o,c=A.find(g,[s,s]),D=A.convert(0,s),Q=A.convert(Q,s),b=A.find(C,[s,s]));for(var h=[],w=[],f=[],p=0;p<r;p++){f[p]=w.length;for(var R=t[p],m=t[p+1],G=R;G<m;G++){var k=i[G],U=E?b(Q,a[G]):b(a[G],Q);c(U,D)||(w.push(k),h.push(U))}}return f[r]=w.length,I.createSparseMatrix({values:h,index:w,ptr:f,size:[n,r],datatype:s})}}),ut=uA("matAlgo14xDs",["typed"],B=>{var{typed:A}=B;return function(I,Q,C,E){var a,i=I._data,t=I._size,e=I._datatype,o=C;typeof e=="string"&&(a=e,Q=A.convert(Q,a),o=A.find(C,[a,a]));var s=t.length>0?g(o,0,t,t[0],i,Q,E):[];return I.createDenseMatrix({data:s,size:jA(t),datatype:a})};function g(I,Q,C,E,a,i,t){var e=[];if(Q===C.length-1)for(var o=0;o<E;o++)e[o]=t?I(i,a[o]):I(a[o],i);else for(var s=0;s<E;s++)e[s]=g(I,Q+1,C,C[Q+1],a[s],i,t);return e}}),lt=uA("multiplyScalar",["typed"],B=>{var{typed:A}=B;return A("multiplyScalar",{"number, number":TE,"Complex, Complex":function(g,I){return g.mul(I)},"BigNumber, BigNumber":function(g,I){return g.times(I)},"bigint, bigint":function(g,I){return g*I},"Fraction, Fraction":function(g,I){return g.mul(I)},"number | Fraction | BigNumber | Complex, Unit":(g,I)=>I.multiply(g),"Unit, number | Fraction | BigNumber | Complex | Unit":(g,I)=>g.multiply(I)})}),$E="multiply",ft=uA($E,["typed","matrix","addScalar","multiplyScalar","equalScalar","dot"],B=>{var{typed:A,matrix:g,addScalar:I,multiplyScalar:Q,equalScalar:C,dot:E}=B,a=wt({typed:A,equalScalar:C}),i=ut({typed:A});function t(n,r){switch(n.length){case 1:switch(r.length){case 1:if(n[0]!==r[0])throw new RangeError("Dimension mismatch in multiplication. Vectors must have the same length");break;case 2:if(n[0]!==r[0])throw new RangeError("Dimension mismatch in multiplication. Vector length ("+n[0]+") must match Matrix rows ("+r[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+r.length+" dimensions)")}break;case 2:switch(r.length){case 1:if(n[1]!==r[0])throw new RangeError("Dimension mismatch in multiplication. Matrix columns ("+n[1]+") must match Vector length ("+r[0]+")");break;case 2:if(n[1]!==r[0])throw new RangeError("Dimension mismatch in multiplication. Matrix A columns ("+n[1]+") must match Matrix B rows ("+r[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+r.length+" dimensions)")}break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix A has "+n.length+" dimensions)")}}function e(n,r){if(r.storage()!=="dense")throw new Error("Support for SparseMatrix not implemented");return function(c,D){var b,h=c._data,w=c._size,f=c._datatype||c.getDataType(),p=D._data,R=D._size,m=D._datatype||D.getDataType(),G=w[0],k=R[1],U=I,S=Q;f&&m&&f===m&&typeof f=="string"&&f!=="mixed"&&(b=f,U=A.find(I,[b,b]),S=A.find(Q,[b,b]));for(var q=[],z=0;z<k;z++){for(var gA=S(h[0],p[0][z]),$=1;$<G;$++)gA=U(gA,S(h[$],p[$][z]));q[z]=gA}return c.createDenseMatrix({data:q,size:[k],datatype:f===c._datatype&&m===D._datatype?b:void 0})}(n,r)}var o=A("_multiplyMatrixVector",{"DenseMatrix, any":function(n,r){var c,D=n._data,b=n._size,h=n._datatype||n.getDataType(),w=r._data,f=r._datatype||r.getDataType(),p=b[0],R=b[1],m=I,G=Q;h&&f&&h===f&&typeof h=="string"&&h!=="mixed"&&(c=h,m=A.find(I,[c,c]),G=A.find(Q,[c,c]));for(var k=[],U=0;U<p;U++){for(var S=D[U],q=G(S[0],w[0]),z=1;z<R;z++)q=m(q,G(S[z],w[z]));k[U]=q}return n.createDenseMatrix({data:k,size:[p],datatype:h===n._datatype&&f===r._datatype?c:void 0})},"SparseMatrix, any":function(n,r){var c=n._values,D=n._index,b=n._ptr,h=n._datatype||n._data===void 0?n._datatype:n.getDataType();if(!c)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var w,f=r._data,p=r._datatype||r.getDataType(),R=n._size[0],m=r._size[0],G=[],k=[],U=[],S=I,q=Q,z=C,gA=0;h&&p&&h===p&&typeof h=="string"&&h!=="mixed"&&(w=h,S=A.find(I,[w,w]),q=A.find(Q,[w,w]),z=A.find(C,[w,w]),gA=A.convert(0,w));var $=[],X=[];U[0]=0;for(var aA=0;aA<m;aA++){var wA=f[aA];if(!z(wA,gA))for(var sA=b[aA],fA=b[aA+1],lA=sA;lA<fA;lA++){var iA=D[lA];X[iA]?$[iA]=S($[iA],q(wA,c[lA])):(X[iA]=!0,k.push(iA),$[iA]=q(wA,c[lA]))}}for(var GA=k.length,eA=0;eA<GA;eA++){var rA=k[eA];G[eA]=$[rA]}return U[1]=k.length,n.createSparseMatrix({values:G,index:k,ptr:U,size:[R,1],datatype:h===n._datatype&&p===r._datatype?w:void 0})}}),s=A("_multiplyMatrixMatrix",{"DenseMatrix, DenseMatrix":function(n,r){var c,D=n._data,b=n._size,h=n._datatype||n.getDataType(),w=r._data,f=r._size,p=r._datatype||r.getDataType(),R=b[0],m=b[1],G=f[1],k=I,U=Q;h&&p&&h===p&&typeof h=="string"&&h!=="mixed"&&h!=="mixed"&&(c=h,k=A.find(I,[c,c]),U=A.find(Q,[c,c]));for(var S=[],q=0;q<R;q++){var z=D[q];S[q]=[];for(var gA=0;gA<G;gA++){for(var $=U(z[0],w[0][gA]),X=1;X<m;X++)$=k($,U(z[X],w[X][gA]));S[q][gA]=$}}return n.createDenseMatrix({data:S,size:[R,G],datatype:h===n._datatype&&p===r._datatype?c:void 0})},"DenseMatrix, SparseMatrix":function(n,r){var c=n._data,D=n._size,b=n._datatype||n.getDataType(),h=r._values,w=r._index,f=r._ptr,p=r._size,R=r._datatype||r._data===void 0?r._datatype:r.getDataType();if(!h)throw new Error("Cannot multiply Dense Matrix times Pattern only Matrix");var m,G=D[0],k=p[1],U=I,S=Q,q=C,z=0;b&&R&&b===R&&typeof b=="string"&&b!=="mixed"&&(m=b,U=A.find(I,[m,m]),S=A.find(Q,[m,m]),q=A.find(C,[m,m]),z=A.convert(0,m));for(var gA=[],$=[],X=[],aA=r.createSparseMatrix({values:gA,index:$,ptr:X,size:[G,k],datatype:b===n._datatype&&R===r._datatype?m:void 0}),wA=0;wA<k;wA++){X[wA]=$.length;var sA=f[wA],fA=f[wA+1];if(fA>sA)for(var lA=0,iA=0;iA<G;iA++){for(var GA=iA+1,eA=void 0,rA=sA;rA<fA;rA++){var yA=w[rA];lA!==GA?(eA=S(c[iA][yA],h[rA]),lA=GA):eA=U(eA,S(c[iA][yA],h[rA]))}lA!==GA||q(eA,z)||($.push(iA),gA.push(eA))}}return X[k]=$.length,aA},"SparseMatrix, DenseMatrix":function(n,r){var c=n._values,D=n._index,b=n._ptr,h=n._datatype||n._data===void 0?n._datatype:n.getDataType();if(!c)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var w,f=r._data,p=r._datatype||r.getDataType(),R=n._size[0],m=r._size[0],G=r._size[1],k=I,U=Q,S=C,q=0;h&&p&&h===p&&typeof h=="string"&&h!=="mixed"&&(w=h,k=A.find(I,[w,w]),U=A.find(Q,[w,w]),S=A.find(C,[w,w]),q=A.convert(0,w));for(var z=[],gA=[],$=[],X=n.createSparseMatrix({values:z,index:gA,ptr:$,size:[R,G],datatype:h===n._datatype&&p===r._datatype?w:void 0}),aA=[],wA=[],sA=0;sA<G;sA++){$[sA]=gA.length;for(var fA=sA+1,lA=0;lA<m;lA++){var iA=f[lA][sA];if(!S(iA,q))for(var GA=b[lA],eA=b[lA+1],rA=GA;rA<eA;rA++){var yA=D[rA];wA[yA]!==fA?(wA[yA]=fA,gA.push(yA),aA[yA]=U(iA,c[rA])):aA[yA]=k(aA[yA],U(iA,c[rA]))}}for(var RA=$[sA],oA=gA.length,cA=RA;cA<oA;cA++){var JA=gA[cA];z[cA]=aA[JA]}}return $[G]=gA.length,X},"SparseMatrix, SparseMatrix":function(n,r){var c,D=n._values,b=n._index,h=n._ptr,w=n._datatype||n._data===void 0?n._datatype:n.getDataType(),f=r._values,p=r._index,R=r._ptr,m=r._datatype||r._data===void 0?r._datatype:r.getDataType(),G=n._size[0],k=r._size[1],U=D&&f,S=I,q=Q;w&&m&&w===m&&typeof w=="string"&&w!=="mixed"&&(c=w,S=A.find(I,[c,c]),q=A.find(Q,[c,c]));for(var z,gA,$,X,aA,wA,sA,fA,lA=U?[]:void 0,iA=[],GA=[],eA=n.createSparseMatrix({values:lA,index:iA,ptr:GA,size:[G,k],datatype:w===n._datatype&&m===r._datatype?c:void 0}),rA=U?[]:void 0,yA=[],RA=0;RA<k;RA++){GA[RA]=iA.length;var oA=RA+1;for(aA=R[RA],wA=R[RA+1],X=aA;X<wA;X++)if(fA=p[X],U)for(gA=h[fA],$=h[fA+1],z=gA;z<$;z++)yA[sA=b[z]]!==oA?(yA[sA]=oA,iA.push(sA),rA[sA]=q(f[X],D[z])):rA[sA]=S(rA[sA],q(f[X],D[z]));else for(gA=h[fA],$=h[fA+1],z=gA;z<$;z++)yA[sA=b[z]]!==oA&&(yA[sA]=oA,iA.push(sA));if(U)for(var cA=GA[RA],JA=iA.length,qA=cA;qA<JA;qA++){var sg=iA[qA];lA[qA]=rA[sg]}}return GA[k]=iA.length,eA}});return A($E,Q,{"Array, Array":A.referTo("Matrix, Matrix",n=>(r,c)=>{t(Bg(r),Bg(c));var D=n(g(r),g(c));return KA(D)?D.valueOf():D}),"Matrix, Matrix":function(n,r){var c=n.size(),D=r.size();return t(c,D),c.length===1?D.length===1?function(b,h,w){if(w===0)throw new Error("Cannot multiply two empty vectors");return E(b,h)}(n,r,c[0]):e(n,r):D.length===1?o(n,r):s(n,r)},"Matrix, Array":A.referTo("Matrix,Matrix",n=>(r,c)=>n(r,g(c))),"Array, Matrix":A.referToSelf(n=>(r,c)=>n(g(r,c.storage()),c)),"SparseMatrix, any":function(n,r){return a(n,r,Q,!1)},"DenseMatrix, any":function(n,r){return i(n,r,Q,!1)},"any, SparseMatrix":function(n,r){return a(r,n,Q,!0)},"any, DenseMatrix":function(n,r){return i(r,n,Q,!0)},"Array, any":function(n,r){return i(g(n),r,Q,!1).valueOf()},"any, Array":function(n,r){return i(g(r),n,Q,!0).valueOf()},"any, any":Q,"any, any, ...any":A.referToSelf(n=>(r,c,D)=>{for(var b=n(r,c),h=0;h<D.length;h++)b=n(b,D[h]);return b})})}),Aa="conj",Ft=uA(Aa,["typed"],B=>{var{typed:A}=B;return A(Aa,{"number | BigNumber | Fraction":g=>g,Complex:g=>g.conjugate(),Unit:A.referToSelf(g=>I=>new I.constructor(g(I.toNumeric()),I.formatUnits())),"Array | Matrix":A.referToSelf(g=>I=>EI(I,g))})}),ga="identity",yt=uA(ga,["typed","config","matrix","BigNumber","DenseMatrix","SparseMatrix"],B=>{var{typed:A,config:g,matrix:I,BigNumber:Q,DenseMatrix:C,SparseMatrix:E}=B;return A(ga,{"":function(){return g.matrix==="Matrix"?I([]):[]},string:function(t){return I(t)},"number | BigNumber":function(t){return i(t,t,g.matrix==="Matrix"?"dense":void 0)},"number | BigNumber, string":function(t,e){return i(t,t,e)},"number | BigNumber, number | BigNumber":function(t,e){return i(t,e,g.matrix==="Matrix"?"dense":void 0)},"number | BigNumber, number | BigNumber, string":function(t,e,o){return i(t,e,o)},Array:function(t){return a(t)},"Array, string":function(t,e){return a(t,e)},Matrix:function(t){return a(t.valueOf(),t.storage())},"Matrix, string":function(t,e){return a(t.valueOf(),e)}});function a(t,e){switch(t.length){case 0:return e?I(e):[];case 1:return i(t[0],t[0],e);case 2:return i(t[0],t[1],e);default:throw new Error("Vector containing two values expected")}}function i(t,e,o){var s=vA(t)||vA(e)?Q:null;if(vA(t)&&(t=t.toNumber()),vA(e)&&(e=e.toNumber()),!LA(t)||t<1)throw new Error("Parameters in function identity must be positive integers");if(!LA(e)||e<1)throw new Error("Parameters in function identity must be positive integers");var n=s?new Q(1):1,r=s?new s(0):0,c=[t,e];if(o){if(o==="sparse")return E.diagonal(c,n,0,r);if(o==="dense")return C.diagonal(c,n,0,r);throw new TypeError('Unknown matrix type "'.concat(o,'"'))}for(var D=nQ([],c,r),b=t<e?t:e,h=0;h<b;h++)D[h][h]=n;return D}});function Mt(){throw new Error('No "bignumber" implementation available')}function Gt(){throw new Error('No "fraction" implementation available')}var Ia,Ba="size",Rt=uA(Ba,["typed","config","?matrix"],B=>{var{typed:A,config:g,matrix:I}=B;return A(Ba,{Matrix:function(Q){return Q.create(Q.size(),"number")},Array:Bg,string:function(Q){return g.matrix==="Array"?[Q.length]:I([Q.length],"dense","number")},"number | Complex | BigNumber | Unit | boolean | null":function(Q){return g.matrix==="Array"?[]:I?I([],"dense","number"):function(){throw new Error('No "matrix" implementation available')}()}})}),pt=uA("numeric",["number","?bignumber","?fraction"],B=>{var{number:A,bignumber:g,fraction:I}=B,Q={string:!0,number:!0,BigNumber:!0,Fraction:!0},C={number:E=>A(E),BigNumber:g?E=>g(E):Mt,bigint:E=>BigInt(E),Fraction:I?E=>I(E):Gt};return function(E){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"number";if((arguments.length>2?arguments[2]:void 0)!==void 0)throw new SyntaxError("numeric() takes one or two arguments");var i=Kg(E);if(!(i in Q))throw new TypeError("Cannot convert "+E+' of type "'+i+'"; valid input types are '+Object.keys(Q).join(", "));if(!(a in C))throw new TypeError("Cannot convert "+E+' to type "'+a+'"; valid output types are '+Object.keys(C).join(", "));return a===i?E:C[a](E)}}),Qa="divideScalar",Nt=uA(Qa,["typed","numeric"],B=>{var{typed:A,numeric:g}=B;return A(Qa,{"number, number":function(I,Q){return I/Q},"Complex, Complex":function(I,Q){return I.div(Q)},"BigNumber, BigNumber":function(I,Q){return I.div(Q)},"bigint, bigint":function(I,Q){return I/Q},"Fraction, Fraction":function(I,Q){return I.div(Q)},"Unit, number | Complex | Fraction | BigNumber | Unit":(I,Q)=>I.divide(Q),"number | Fraction | Complex | BigNumber, Unit":(I,Q)=>Q.divideInto(I)})}),kt=uA("pow",["typed","config","identity","multiply","matrix","inv","fraction","number","Complex"],B=>{var{typed:A,config:g,identity:I,multiply:Q,matrix:C,inv:E,number:a,fraction:i,Complex:t}=B;return A("pow",{"number, number":e,"Complex, Complex":function(n,r){return n.pow(r)},"BigNumber, BigNumber":function(n,r){return r.isInteger()||n>=0||g.predictable?n.pow(r):new t(n.toNumber(),0).pow(r.toNumber(),0)},"bigint, bigint":(n,r)=>n**r,"Fraction, Fraction":function(n,r){var c=n.pow(r);if(c!=null)return c;if(g.predictable)throw new Error("Result of pow is non-rational and cannot be expressed as a fraction");return e(n.valueOf(),r.valueOf())},"Array, number":o,"Array, BigNumber":function(n,r){return o(n,r.toNumber())},"Matrix, number":s,"Matrix, BigNumber":function(n,r){return s(n,r.toNumber())},"Unit, number | BigNumber":function(n,r){return n.pow(r)}});function e(n,r){if(g.predictable&&!LA(r)&&n<0)try{var c=i(r),D=a(c);if((r===D||Math.abs((r-D)/r)<1e-14)&&c.d%2n===1n)return(c.n%2n===0n?1:-1)*Math.pow(-n,r)}catch{}return g.predictable&&(n<-1&&r===1/0||n>-1&&n<0&&r===-1/0)?NaN:LA(r)||n>=0||g.predictable?WE(n,r):n*n<1&&r===1/0||n*n>1&&r===-1/0?0:new t(n,0).pow(r,0)}function o(n,r){if(!LA(r))throw new TypeError("For A^b, b must be an integer (value is "+r+")");var c=Bg(n);if(c.length!==2)throw new Error("For A^b, A must be 2 dimensional (A has "+c.length+" dimensions)");if(c[0]!==c[1])throw new Error("For A^b, A must be square (size is "+c[0]+"x"+c[1]+")");if(r<0)try{return o(E(n),-r)}catch(h){throw h.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 "+r+")"):h}for(var D=I(c[0]).valueOf(),b=n;r>=1;)1&~r||(D=Q(b,D)),r>>=1,b=Q(b,b);return D}function s(n,r){return C(o(n.valueOf(),r))}}),mt=uA("dot",["typed","addScalar","multiplyScalar","conj","size"],B=>{var{typed:A,addScalar:g,multiplyScalar:I,conj:Q,size:C}=B;return A("dot",{"Array | DenseMatrix, Array | DenseMatrix":function(i,t){var e=E(i,t),o=KA(i)?i._data:i,s=KA(i)?i._datatype||i.getDataType():void 0,n=KA(t)?t._data:t,r=KA(t)?t._datatype||t.getDataType():void 0,c=a(i).length===2,D=a(t).length===2,b=g,h=I;if(s&&r&&s===r&&typeof s=="string"&&s!=="mixed"){var w=s;b=A.find(g,[w,w]),h=A.find(I,[w,w])}if(!c&&!D){for(var f=h(Q(o[0]),n[0]),p=1;p<e;p++)f=b(f,h(Q(o[p]),n[p]));return f}if(!c&&D){for(var R=h(Q(o[0]),n[0][0]),m=1;m<e;m++)R=b(R,h(Q(o[m]),n[m][0]));return R}if(c&&!D){for(var G=h(Q(o[0][0]),n[0]),k=1;k<e;k++)G=b(G,h(Q(o[k][0]),n[k]));return G}if(c&&D){for(var U=h(Q(o[0][0]),n[0][0]),S=1;S<e;S++)U=b(U,h(Q(o[S][0]),n[S][0]));return U}},"SparseMatrix, SparseMatrix":function(i,t){E(i,t);for(var e=i._index,o=i._values,s=t._index,n=t._values,r=0,c=g,D=I,b=0,h=0;b<e.length&&h<s.length;){var w=e[b],f=s[h];w<f?b++:w>f?h++:w===f&&(r=c(r,D(o[b],n[h])),b++,h++)}return r}});function E(i,t){var e,o,s=a(i),n=a(t);if(s.length===1)e=s[0];else{if(s.length!==2||s[1]!==1)throw new RangeError("Expected a column vector, instead got a matrix of size ("+s.join(", ")+")");e=s[0]}if(n.length===1)o=n[0];else{if(n.length!==2||n[1]!==1)throw new RangeError("Expected a column vector, instead got a matrix of size ("+n.join(", ")+")");o=n[0]}if(e!==o)throw new RangeError("Vectors must have equal length ("+e+" != "+o+")");if(e===0)throw new RangeError("Cannot calculate the dot product of empty vectors");return e}function a(i){return KA(i)?i.size():C(i)}}),St=uA("det",["typed","matrix","subtractScalar","multiply","divideScalar","isZero","unaryMinus"],B=>{var{typed:A,matrix:g,subtractScalar:I,multiply:Q,divideScalar:C,isZero:E,unaryMinus:a}=B;return A("det",{any:function(i){return jA(i)},"Array | Matrix":function(i){var t;switch((t=KA(i)?i.size():Array.isArray(i)?(i=g(i)).size():[]).length){case 0:return jA(i);case 1:if(t[0]===1)return jA(i.valueOf()[0]);if(t[0]===0)return 1;throw new RangeError("Matrix must be square (size: "+TA(t)+")");case 2:var e=t[0],o=t[1];if(e===o)return function(s,n){if(n===1)return jA(s[0][0]);if(n===2)return I(Q(s[0][0],s[1][1]),Q(s[1][0],s[0][1]));for(var r=!1,c=new Array(n).fill(0).map((k,U)=>U),D=0;D<n;D++){var b=c[D];if(E(s[b][D])){var h=void 0;for(h=D+1;h<n;h++)if(!E(s[c[h]][D])){b=c[h],c[h]=c[D],c[D]=b,r=!r;break}if(h===n)return s[b][D]}for(var w=s[b][D],f=D===0?1:s[c[D-1]][D-1],p=D+1;p<n;p++)for(var R=c[p],m=D+1;m<n;m++)s[R][m]=C(I(Q(s[R][m],w),Q(s[R][D],s[b][m])),f)}var G=s[c[n-1]][n-1];return r?a(G):G}(i.clone().valueOf(),e);if(o===0)return 1;throw new RangeError("Matrix must be square (size: "+TA(t)+")");default:throw new RangeError("Matrix must be two dimensional (size: "+TA(t)+")")}}})}),Ut=uA("inv",["typed","matrix","divideScalar","addScalar","multiply","unaryMinus","det","identity","abs"],B=>{var{typed:A,matrix:g,divideScalar:I,addScalar:Q,multiply:C,unaryMinus:E,det:a,identity:i,abs:t}=B;return A("inv",{"Array | Matrix":function(o){var s=KA(o)?o.size():Bg(o);switch(s.length){case 1:if(s[0]===1)return KA(o)?g([I(1,o.valueOf()[0])]):[I(1,o[0])];throw new RangeError("Matrix must be square (size: "+TA(s)+")");case 2:var n=s[0],r=s[1];if(n===r)return KA(o)?g(e(o.valueOf(),n,r),o.storage()):e(o,n,r);throw new RangeError("Matrix must be square (size: "+TA(s)+")");default:throw new RangeError("Matrix must be two dimensional (size: "+TA(s)+")")}},any:function(o){return I(1,o)}});function e(o,s,n){var r,c,D,b,h;if(s===1){if((b=o[0][0])===0)throw Error("Cannot calculate inverse, determinant is zero");return[[I(1,b)]]}if(s===2){var w=a(o);if(w===0)throw Error("Cannot calculate inverse, determinant is zero");return[[I(o[1][1],w),I(E(o[0][1]),w)],[I(E(o[1][0]),w),I(o[0][0],w)]]}var f=o.concat();for(r=0;r<s;r++)f[r]=f[r].concat();for(var p=i(s).valueOf(),R=0;R<n;R++){var m=t(f[R][R]),G=R;for(r=R+1;r<s;)t(f[r][R])>m&&(m=t(f[r][R]),G=r),r++;if(m===0)throw Error("Cannot calculate inverse, determinant is zero");(r=G)!==R&&(h=f[R],f[R]=f[r],f[r]=h,h=p[R],p[R]=p[r],p[r]=h);var k=f[R],U=p[R];for(r=0;r<s;r++){var S=f[r],q=p[r];if(r!==R){if(S[R]!==0){for(D=I(E(S[R]),k[R]),c=R;c<n;c++)S[c]=Q(S[c],C(D,k[c]));for(c=0;c<n;c++)q[c]=Q(q[c],C(D,U[c]))}}else{for(D=k[R],c=R;c<n;c++)S[c]=I(S[c],D);for(c=0;c<n;c++)q[c]=I(q[c],D)}}}return p}}),Ca="gamma",Lt=uA(Ca,["typed","config","multiplyScalar","pow","BigNumber","Complex"],B=>{var{typed:A,config:g,multiplyScalar:I,pow:Q,BigNumber:C,Complex:E}=B;return A(Ca,{number:hB,Complex:function i(t){if(t.im===0)return hB(t.re);if(t.re<.5){var e=new E(1-t.re,-t.im),o=new E(Math.PI*t.re,Math.PI*t.im);return new E(Math.PI).div(o.sin()).div(i(e))}t=new E(t.re-1,t.im);for(var s=new E(yI[0],0),n=1;n<yI.length;++n){var r=new E(yI[n],0);s=s.add(r.div(t.add(n)))}var c=new E(t.re+PE+.5,t.im),D=Math.sqrt(2*Math.PI),b=c.pow(t.add(.5)),h=c.neg().exp();return s.mul(D).mul(b).mul(h)},BigNumber:function(i){if(i.isInteger())return i.isNegative()||i.isZero()?new C(1/0):a(i.minus(1));if(!i.isFinite())return new C(i.isNegative()?NaN:1/0);throw new Error("Integer BigNumber expected")}});function a(i){if(i<8)return new C([1,1,2,6,24,120,720,5040][i]);var t=g.precision+(0|Math.log(i.toNumber())),e=C.clone({precision:t});if(i%2==1)return i.times(a(new C(i-1)));for(var o=i,s=new e(i),n=i.toNumber();o>2;)n+=o-=2,s=s.times(n);return new C(s.toPrecision(C.precision))}}),dB=_i({config:BI}),DQ=At({}),Ea=It({}),dQ=Bt({}),bQ=at({Matrix:dQ}),HA=ai({BigNumber:dB,Complex:DQ,DenseMatrix:bQ,Fraction:Ea}),Jt=Dt({typed:HA}),wQ=dt({typed:HA}),Yt=Ft({typed:HA}),uQ=tt({config:BI,typed:HA}),xt=et({equalScalar:uQ,typed:HA}),lQ=lt({typed:HA}),aa=nt({typed:HA}),ea=ot({Matrix:dQ,equalScalar:uQ,typed:HA}),Ht=bt({typed:HA}),Kt=st({BigNumber:dB,typed:HA}),MI=ct({DenseMatrix:bQ,Matrix:dQ,SparseMatrix:ea,typed:HA}),ia=rt({Fraction:Ea,typed:HA}),ta=yt({BigNumber:dB,DenseMatrix:bQ,SparseMatrix:ea,config:BI,matrix:MI,typed:HA}),jt=pt({bignumber:Kt,fraction:ia,number:aa}),qt=Rt({matrix:MI,config:BI,typed:HA}),oa=ht({typed:HA}),na=Nt({numeric:jt,typed:HA}),fQ=ft({addScalar:wQ,dot:mt({addScalar:wQ,conj:Yt,multiplyScalar:lQ,size:qt,typed:HA}),equalScalar:uQ,matrix:MI,multiplyScalar:lQ,typed:HA}),vt=Lt({BigNumber:dB,Complex:DQ,config:BI,multiplyScalar:lQ,pow:kt({Complex:DQ,config:BI,fraction:ia,identity:ta,inv:Ut({abs:Jt,addScalar:wQ,det:St({divideScalar:na,isZero:xt,matrix:MI,multiply:fQ,subtractScalar:Ht,typed:HA,unaryMinus:oa}),divideScalar:na,identity:ta,matrix:MI,multiply:fQ,typed:HA,unaryMinus:oa}),matrix:MI,multiply:fQ,number:aa,typed:HA}),typed:HA});class Tt{constructor(A){if(A){const{toElementFn:g}=A;if(typeof g=="function")this._toElementFn=g;else if(g)throw new TypeError("toElementFn must be a function type")}}_toElementFn;get toElementFn(){return this._toElementFn}*[Symbol.iterator](...A){yield*this._getIterator(...A)}*values(){for(const A of this)yield A}every(A,g){let I=0;for(const Q of this)if(!A.call(g,Q,I++,this))return!1;return!0}some(A,g){let I=0;for(const Q of this)if(A.call(g,Q,I++,this))return!0;return!1}forEach(A,g){let I=0;for(const Q of this)A.call(g,Q,I++,this)}find(A,g){let I=0;for(const Q of this)if(A.call(g,Q,I++,this))return Q}has(A){for(const g of this)if(g===A)return!0;return!1}reduce(A,g){let I=g??0,Q=0;for(const C of this)I=A(I,C,Q++,this);return I}toArray(){return[...this]}toVisual(){return[...this]}print(){console.log(this.toVisual())}}/**
|
|
964
|
+
*/var sa,Sg,uI=9e15,vg=1e9,aQ="0123456789abcdef",iB="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",tB="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",eQ={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-uI,maxE:uI,crypto:!1},tA=!0,oB="[DecimalError] ",qg=oB+"Invalid argument: ",ca=oB+"Precision limit exceeded",ha=oB+"crypto unavailable",da="[object Decimal]",Ag=Math.floor,VA=Math.pow,li=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,ui=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,bi=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,Da=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,fg=1e7,wi=iB.length-1,EQ=tB.length-1,q={toStringTag:da};function $A(B){var A,g,I,Q=B.length-1,C="",a=B[0];if(Q>0){for(C+=a,A=1;A<Q;A++)(g=7-(I=B[A]+"").length)&&(C+=Tg(g)),C+=I;(g=7-(I=(a=B[A])+"").length)&&(C+=Tg(g))}else if(a===0)return"0";for(;a%10==0;)a/=10;return C+a}function eg(B,A,g){if(B!==~~B||B<A||B>g)throw Error(qg+B)}function LI(B,A,g,I){var Q,C,a,e;for(C=B[0];C>=10;C/=10)--A;return--A<0?(A+=7,Q=0):(Q=Math.ceil((A+1)/7),A%=7),C=VA(10,7-A),e=B[Q]%C|0,I==null?A<3?(A==0?e=e/100|0:A==1&&(e=e/10|0),a=g<4&&e==99999||g>3&&e==49999||e==5e4||e==0):a=(g<4&&e+1==C||g>3&&e+1==C/2)&&(B[Q+1]/C/100|0)==VA(10,A-2)-1||(e==C/2||e==0)&&!(B[Q+1]/C/100|0):A<4?(A==0?e=e/1e3|0:A==1?e=e/100|0:A==2&&(e=e/10|0),a=(I||g<4)&&e==9999||!I&&g>3&&e==4999):a=((I||g<4)&&e+1==C||!I&&g>3&&e+1==C/2)&&(B[Q+1]/C/1e3|0)==VA(10,A-3)-1,a}function nB(B,A,g){for(var I,Q,C=[0],a=0,e=B.length;a<e;){for(Q=C.length;Q--;)C[Q]*=A;for(C[0]+=aQ.indexOf(B.charAt(a++)),I=0;I<C.length;I++)C[I]>g-1&&(C[I+1]===void 0&&(C[I+1]=0),C[I+1]+=C[I]/g|0,C[I]%=g)}return C.reverse()}q.absoluteValue=q.abs=function(){var B=new this.constructor(this);return B.s<0&&(B.s=1),aA(B)},q.ceil=function(){return aA(new this.constructor(this),this.e+1,2)},q.clampedTo=q.clamp=function(B,A){var g=this,I=g.constructor;if(B=new I(B),A=new I(A),!B.s||!A.s)return new I(NaN);if(B.gt(A))throw Error(qg+A);return g.cmp(B)<0?B:g.cmp(A)>0?A:new I(g)},q.comparedTo=q.cmp=function(B){var A,g,I,Q,C=this,a=C.d,e=(B=new C.constructor(B)).d,i=C.s,t=B.s;if(!a||!e)return i&&t?i!==t?i:a===e?0:!a^i<0?1:-1:NaN;if(!a[0]||!e[0])return a[0]?i:e[0]?-t:0;if(i!==t)return i;if(C.e!==B.e)return C.e>B.e^i<0?1:-1;for(A=0,g=(I=a.length)<(Q=e.length)?I:Q;A<g;++A)if(a[A]!==e[A])return a[A]>e[A]^i<0?1:-1;return I===Q?0:I>Q^i<0?1:-1},q.cosine=q.cos=function(){var B,A,g=this,I=g.constructor;return g.d?g.d[0]?(B=I.precision,A=I.rounding,I.precision=B+Math.max(g.e,g.sd())+7,I.rounding=1,g=function(Q,C){var a,e,i;if(C.isZero())return C;e=C.d.length,e<32?i=(1/hB(4,a=Math.ceil(e/3))).toString():(a=16,i="2.3283064365386962890625e-10"),Q.precision+=a,C=bI(Q,1,C.times(i),new Q(1));for(var t=a;t--;){var E=C.times(C);C=E.times(E).minus(E).times(8).plus(1)}return Q.precision-=a,C}(I,ya(I,g)),I.precision=B,I.rounding=A,aA(Sg==2||Sg==3?g.neg():g,B,A,!0)):new I(1):new I(NaN)},q.cubeRoot=q.cbrt=function(){var B,A,g,I,Q,C,a,e,i,t,E=this,o=E.constructor;if(!E.isFinite()||E.isZero())return new o(E);for(tA=!1,(C=E.s*VA(E.s*E,1/3))&&Math.abs(C)!=1/0?I=new o(C.toString()):(g=$A(E.d),(C=((B=E.e)-g.length+1)%3)&&(g+=C==1||C==-2?"0":"00"),C=VA(g,1/3),B=Ag((B+1)/3)-(B%3==(B<0?-1:2)),(I=new o(g=C==1/0?"5e"+B:(g=C.toExponential()).slice(0,g.indexOf("e")+1)+B)).s=E.s),a=(B=o.precision)+3;;)if(t=(i=(e=I).times(e).times(e)).plus(E),I=kA(t.plus(E).times(e),t.plus(i),a+2,1),$A(e.d).slice(0,a)===(g=$A(I.d)).slice(0,a)){if((g=g.slice(a-3,a+1))!="9999"&&(Q||g!="4999")){+g&&(+g.slice(1)||g.charAt(0)!="5")||(aA(I,B+1,1),A=!I.times(I).times(I).eq(E));break}if(!Q&&(aA(e,B+1,0),e.times(e).times(e).eq(E))){I=e;break}a+=4,Q=1}return tA=!0,aA(I,B,o.rounding,A)},q.decimalPlaces=q.dp=function(){var B,A=this.d,g=NaN;if(A){if(g=7*((B=A.length-1)-Ag(this.e/7)),B=A[B])for(;B%10==0;B/=10)g--;g<0&&(g=0)}return g},q.dividedBy=q.div=function(B){return kA(this,new this.constructor(B))},q.dividedToIntegerBy=q.divToInt=function(B){var A=this.constructor;return aA(kA(this,new A(B),0,1,1),A.precision,A.rounding)},q.equals=q.eq=function(B){return this.cmp(B)===0},q.floor=function(){return aA(new this.constructor(this),this.e+1,3)},q.greaterThan=q.gt=function(B){return this.cmp(B)>0},q.greaterThanOrEqualTo=q.gte=function(B){var A=this.cmp(B);return A==1||A===0},q.hyperbolicCosine=q.cosh=function(){var B,A,g,I,Q,C=this,a=C.constructor,e=new a(1);if(!C.isFinite())return new a(C.s?1/0:NaN);if(C.isZero())return e;g=a.precision,I=a.rounding,a.precision=g+Math.max(C.e,C.sd())+4,a.rounding=1,(Q=C.d.length)<32?A=(1/hB(4,B=Math.ceil(Q/3))).toString():(B=16,A="2.3283064365386962890625e-10"),C=bI(a,1,C.times(A),new a(1),!0);for(var i,t=B,E=new a(8);t--;)i=C.times(C),C=e.minus(i.times(E.minus(i.times(E))));return aA(C,a.precision=g,a.rounding=I,!0)},q.hyperbolicSine=q.sinh=function(){var B,A,g,I,Q=this,C=Q.constructor;if(!Q.isFinite()||Q.isZero())return new C(Q);if(A=C.precision,g=C.rounding,C.precision=A+Math.max(Q.e,Q.sd())+4,C.rounding=1,(I=Q.d.length)<3)Q=bI(C,2,Q,Q,!0);else{B=(B=1.4*Math.sqrt(I))>16?16:0|B,Q=bI(C,2,Q=Q.times(1/hB(5,B)),Q,!0);for(var a,e=new C(5),i=new C(16),t=new C(20);B--;)a=Q.times(Q),Q=Q.times(e.plus(a.times(i.times(a).plus(t))))}return C.precision=A,C.rounding=g,aA(Q,A,g,!0)},q.hyperbolicTangent=q.tanh=function(){var B,A,g=this,I=g.constructor;return g.isFinite()?g.isZero()?new I(g):(B=I.precision,A=I.rounding,I.precision=B+7,I.rounding=1,kA(g.sinh(),g.cosh(),I.precision=B,I.rounding=A)):new I(g.s)},q.inverseCosine=q.acos=function(){var B=this,A=B.constructor,g=B.abs().cmp(1),I=A.precision,Q=A.rounding;return g!==-1?g===0?B.isNeg()?kg(A,I,Q):new A(0):new A(NaN):B.isZero()?kg(A,I+4,Q).times(.5):(A.precision=I+6,A.rounding=1,B=new A(1).minus(B).div(B.plus(1)).sqrt().atan(),A.precision=I,A.rounding=Q,B.times(2))},q.inverseHyperbolicCosine=q.acosh=function(){var B,A,g=this,I=g.constructor;return g.lte(1)?new I(g.eq(1)?0:NaN):g.isFinite()?(B=I.precision,A=I.rounding,I.precision=B+Math.max(Math.abs(g.e),g.sd())+4,I.rounding=1,tA=!1,g=g.times(g).minus(1).sqrt().plus(g),tA=!0,I.precision=B,I.rounding=A,g.ln()):new I(g)},q.inverseHyperbolicSine=q.asinh=function(){var B,A,g=this,I=g.constructor;return!g.isFinite()||g.isZero()?new I(g):(B=I.precision,A=I.rounding,I.precision=B+2*Math.max(Math.abs(g.e),g.sd())+6,I.rounding=1,tA=!1,g=g.times(g).plus(1).sqrt().plus(g),tA=!0,I.precision=B,I.rounding=A,g.ln())},q.inverseHyperbolicTangent=q.atanh=function(){var B,A,g,I,Q=this,C=Q.constructor;return Q.isFinite()?Q.e>=0?new C(Q.abs().eq(1)?Q.s/0:Q.isZero()?Q:NaN):(B=C.precision,A=C.rounding,I=Q.sd(),Math.max(I,B)<2*-Q.e-1?aA(new C(Q),B,A,!0):(C.precision=g=I-Q.e,Q=kA(Q.plus(1),new C(1).minus(Q),g+B,1),C.precision=B+4,C.rounding=1,Q=Q.ln(),C.precision=B,C.rounding=A,Q.times(.5))):new C(NaN)},q.inverseSine=q.asin=function(){var B,A,g,I,Q=this,C=Q.constructor;return Q.isZero()?new C(Q):(A=Q.abs().cmp(1),g=C.precision,I=C.rounding,A!==-1?A===0?((B=kg(C,g+4,I).times(.5)).s=Q.s,B):new C(NaN):(C.precision=g+6,C.rounding=1,Q=Q.div(new C(1).minus(Q.times(Q)).sqrt().plus(1)).atan(),C.precision=g,C.rounding=I,Q.times(2)))},q.inverseTangent=q.atan=function(){var B,A,g,I,Q,C,a,e,i,t=this,E=t.constructor,o=E.precision,r=E.rounding;if(t.isFinite()){if(t.isZero())return new E(t);if(t.abs().eq(1)&&o+4<=EQ)return(a=kg(E,o+4,r).times(.25)).s=t.s,a}else{if(!t.s)return new E(NaN);if(o+4<=EQ)return(a=kg(E,o+4,r).times(.5)).s=t.s,a}for(E.precision=e=o+10,E.rounding=1,B=g=Math.min(28,e/7+2|0);B;--B)t=t.div(t.times(t).plus(1).sqrt().plus(1));for(tA=!1,A=Math.ceil(e/7),I=1,i=t.times(t),a=new E(t),Q=t;B!==-1;)if(Q=Q.times(i),C=a.minus(Q.div(I+=2)),Q=Q.times(i),(a=C.plus(Q.div(I+=2))).d[A]!==void 0)for(B=A;a.d[B]===C.d[B]&&B--;);return g&&(a=a.times(2<<g-1)),tA=!0,aA(a,E.precision=o,E.rounding=r,!0)},q.isFinite=function(){return!!this.d},q.isInteger=q.isInt=function(){return!!this.d&&Ag(this.e/7)>this.d.length-2},q.isNaN=function(){return!this.s},q.isNegative=q.isNeg=function(){return this.s<0},q.isPositive=q.isPos=function(){return this.s>0},q.isZero=function(){return!!this.d&&this.d[0]===0},q.lessThan=q.lt=function(B){return this.cmp(B)<0},q.lessThanOrEqualTo=q.lte=function(B){return this.cmp(B)<1},q.logarithm=q.log=function(B){var A,g,I,Q,C,a,e,i,t=this,E=t.constructor,o=E.precision,r=E.rounding;if(B==null)B=new E(10),A=!0;else{if(g=(B=new E(B)).d,B.s<0||!g||!g[0]||B.eq(1))return new E(NaN);A=B.eq(10)}if(g=t.d,t.s<0||!g||!g[0]||t.eq(1))return new E(g&&!g[0]?-1/0:t.s!=1?NaN:g?0:1/0);if(A)if(g.length>1)C=!0;else{for(Q=g[0];Q%10==0;)Q/=10;C=Q!==1}if(tA=!1,a=Og(t,e=o+5),I=A?sB(E,e+10):Og(B,e),LI((i=kA(a,I,e,1)).d,Q=o,r))do if(a=Og(t,e+=10),I=A?sB(E,e+10):Og(B,e),i=kA(a,I,e,1),!C){+$A(i.d).slice(Q+1,Q+15)+1==1e14&&(i=aA(i,o+1,0));break}while(LI(i.d,Q+=10,r));return tA=!0,aA(i,o,r)},q.minus=q.sub=function(B){var A,g,I,Q,C,a,e,i,t,E,o,r,n=this,s=n.constructor;if(B=new s(B),!n.d||!B.d)return n.s&&B.s?n.d?B.s=-B.s:B=new s(B.d||n.s!==B.s?n:NaN):B=new s(NaN),B;if(n.s!=B.s)return B.s=-B.s,n.plus(B);if(t=n.d,r=B.d,e=s.precision,i=s.rounding,!t[0]||!r[0]){if(r[0])B.s=-B.s;else{if(!t[0])return new s(i===3?-0:0);B=new s(n)}return tA?aA(B,e,i):B}if(g=Ag(B.e/7),E=Ag(n.e/7),t=t.slice(),C=E-g){for((o=C<0)?(A=t,C=-C,a=r.length):(A=r,g=E,a=t.length),C>(I=Math.max(Math.ceil(e/7),a)+2)&&(C=I,A.length=1),A.reverse(),I=C;I--;)A.push(0);A.reverse()}else{for((o=(I=t.length)<(a=r.length))&&(a=I),I=0;I<a;I++)if(t[I]!=r[I]){o=t[I]<r[I];break}C=0}for(o&&(A=t,t=r,r=A,B.s=-B.s),a=t.length,I=r.length-a;I>0;--I)t[a++]=0;for(I=r.length;I>C;){if(t[--I]<r[I]){for(Q=I;Q&&t[--Q]===0;)t[Q]=fg-1;--t[Q],t[I]+=fg}t[I]-=r[I]}for(;t[--a]===0;)t.pop();for(;t[0]===0;t.shift())--g;return t[0]?(B.d=t,B.e=rB(t,g),tA?aA(B,e,i):B):new s(i===3?-0:0)},q.modulo=q.mod=function(B){var A,g=this,I=g.constructor;return B=new I(B),!g.d||!B.s||B.d&&!B.d[0]?new I(NaN):!B.d||g.d&&!g.d[0]?aA(new I(g),I.precision,I.rounding):(tA=!1,I.modulo==9?(A=kA(g,B.abs(),0,3,1)).s*=B.s:A=kA(g,B,0,I.modulo,1),A=A.times(B),tA=!0,g.minus(A))},q.naturalExponential=q.exp=function(){return iQ(this)},q.naturalLogarithm=q.ln=function(){return Og(this)},q.negated=q.neg=function(){var B=new this.constructor(this);return B.s=-B.s,aA(B)},q.plus=q.add=function(B){var A,g,I,Q,C,a,e,i,t,E,o=this,r=o.constructor;if(B=new r(B),!o.d||!B.d)return o.s&&B.s?o.d||(B=new r(B.d||o.s===B.s?o:NaN)):B=new r(NaN),B;if(o.s!=B.s)return B.s=-B.s,o.minus(B);if(t=o.d,E=B.d,e=r.precision,i=r.rounding,!t[0]||!E[0])return E[0]||(B=new r(o)),tA?aA(B,e,i):B;if(C=Ag(o.e/7),I=Ag(B.e/7),t=t.slice(),Q=C-I){for(Q<0?(g=t,Q=-Q,a=E.length):(g=E,I=C,a=t.length),Q>(a=(C=Math.ceil(e/7))>a?C+1:a+1)&&(Q=a,g.length=1),g.reverse();Q--;)g.push(0);g.reverse()}for((a=t.length)-(Q=E.length)<0&&(Q=a,g=E,E=t,t=g),A=0;Q;)A=(t[--Q]=t[Q]+E[Q]+A)/fg|0,t[Q]%=fg;for(A&&(t.unshift(A),++I),a=t.length;t[--a]==0;)t.pop();return B.d=t,B.e=rB(t,I),tA?aA(B,e,i):B},q.precision=q.sd=function(B){var A,g=this;if(B!==void 0&&B!==!!B&&B!==1&&B!==0)throw Error(qg+B);return g.d?(A=la(g.d),B&&g.e+1>A&&(A=g.e+1)):A=NaN,A},q.round=function(){var B=this,A=B.constructor;return aA(new A(B),B.e+1,A.rounding)},q.sine=q.sin=function(){var B,A,g=this,I=g.constructor;return g.isFinite()?g.isZero()?new I(g):(B=I.precision,A=I.rounding,I.precision=B+Math.max(g.e,g.sd())+7,I.rounding=1,g=function(Q,C){var a,e=C.d.length;if(e<3)return C.isZero()?C:bI(Q,2,C,C);a=(a=1.4*Math.sqrt(e))>16?16:0|a,C=C.times(1/hB(5,a)),C=bI(Q,2,C,C);for(var i,t=new Q(5),E=new Q(16),o=new Q(20);a--;)i=C.times(C),C=C.times(t.plus(i.times(E.times(i).minus(o))));return C}(I,ya(I,g)),I.precision=B,I.rounding=A,aA(Sg>2?g.neg():g,B,A,!0)):new I(NaN)},q.squareRoot=q.sqrt=function(){var B,A,g,I,Q,C,a=this,e=a.d,i=a.e,t=a.s,E=a.constructor;if(t!==1||!e||!e[0])return new E(!t||t<0&&(!e||e[0])?NaN:e?a:1/0);for(tA=!1,(t=Math.sqrt(+a))==0||t==1/0?(((A=$A(e)).length+i)%2==0&&(A+="0"),t=Math.sqrt(A),i=Ag((i+1)/2)-(i<0||i%2),I=new E(A=t==1/0?"5e"+i:(A=t.toExponential()).slice(0,A.indexOf("e")+1)+i)):I=new E(t.toString()),g=(i=E.precision)+3;;)if(I=(C=I).plus(kA(a,C,g+2,1)).times(.5),$A(C.d).slice(0,g)===(A=$A(I.d)).slice(0,g)){if((A=A.slice(g-3,g+1))!="9999"&&(Q||A!="4999")){+A&&(+A.slice(1)||A.charAt(0)!="5")||(aA(I,i+1,1),B=!I.times(I).eq(a));break}if(!Q&&(aA(C,i+1,0),C.times(C).eq(a))){I=C;break}g+=4,Q=1}return tA=!0,aA(I,i,E.rounding,B)},q.tangent=q.tan=function(){var B,A,g=this,I=g.constructor;return g.isFinite()?g.isZero()?new I(g):(B=I.precision,A=I.rounding,I.precision=B+10,I.rounding=1,(g=g.sin()).s=1,g=kA(g,new I(1).minus(g.times(g)).sqrt(),B+10,0),I.precision=B,I.rounding=A,aA(Sg==2||Sg==4?g.neg():g,B,A,!0)):new I(NaN)},q.times=q.mul=function(B){var A,g,I,Q,C,a,e,i,t,E=this,o=E.constructor,r=E.d,n=(B=new o(B)).d;if(B.s*=E.s,!(r&&r[0]&&n&&n[0]))return new o(!B.s||r&&!r[0]&&!n||n&&!n[0]&&!r?NaN:r&&n?0*B.s:B.s/0);for(g=Ag(E.e/7)+Ag(B.e/7),(i=r.length)<(t=n.length)&&(C=r,r=n,n=C,a=i,i=t,t=a),C=[],I=a=i+t;I--;)C.push(0);for(I=t;--I>=0;){for(A=0,Q=i+I;Q>I;)e=C[Q]+n[I]*r[Q-I-1]+A,C[Q--]=e%fg|0,A=e/fg|0;C[Q]=(C[Q]+A)%fg|0}for(;!C[--a];)C.pop();return A?++g:C.shift(),B.d=C,B.e=rB(C,g),tA?aA(B,o.precision,o.rounding):B},q.toBinary=function(B,A){return tQ(this,2,B,A)},q.toDecimalPlaces=q.toDP=function(B,A){var g=this,I=g.constructor;return g=new I(g),B===void 0?g:(eg(B,0,vg),A===void 0?A=I.rounding:eg(A,0,8),aA(g,B+g.e+1,A))},q.toExponential=function(B,A){var g,I=this,Q=I.constructor;return B===void 0?g=Rg(I,!0):(eg(B,0,vg),A===void 0?A=Q.rounding:eg(A,0,8),g=Rg(I=aA(new Q(I),B+1,A),!0,B+1)),I.isNeg()&&!I.isZero()?"-"+g:g},q.toFixed=function(B,A){var g,I,Q=this,C=Q.constructor;return B===void 0?g=Rg(Q):(eg(B,0,vg),A===void 0?A=C.rounding:eg(A,0,8),g=Rg(I=aA(new C(Q),B+Q.e+1,A),!1,B+I.e+1)),Q.isNeg()&&!Q.isZero()?"-"+g:g},q.toFraction=function(B){var A,g,I,Q,C,a,e,i,t,E,o,r,n=this,s=n.d,c=n.constructor;if(!s)return new c(n);if(t=g=new c(1),I=i=new c(0),a=(C=(A=new c(I)).e=la(s)-n.e-1)%7,A.d[0]=VA(10,a<0?7+a:a),B==null)B=C>0?A:t;else{if(!(e=new c(B)).isInt()||e.lt(t))throw Error(qg+e);B=e.gt(A)?C>0?A:t:e}for(tA=!1,e=new c($A(s)),E=c.precision,c.precision=C=7*s.length*2;o=kA(e,A,0,1,1),(Q=g.plus(o.times(I))).cmp(B)!=1;)g=I,I=Q,Q=t,t=i.plus(o.times(Q)),i=Q,Q=A,A=e.minus(o.times(Q)),e=Q;return Q=kA(B.minus(g),I,0,1,1),i=i.plus(Q.times(t)),g=g.plus(Q.times(I)),i.s=t.s=n.s,r=kA(t,I,C,1).minus(n).abs().cmp(kA(i,g,C,1).minus(n).abs())<1?[t,I]:[i,g],c.precision=E,tA=!0,r},q.toHexadecimal=q.toHex=function(B,A){return tQ(this,16,B,A)},q.toNearest=function(B,A){var g=this,I=g.constructor;if(g=new I(g),B==null){if(!g.d)return g;B=new I(1),A=I.rounding}else{if(B=new I(B),A===void 0?A=I.rounding:eg(A,0,8),!g.d)return B.s?g:B;if(!B.d)return B.s&&(B.s=g.s),B}return B.d[0]?(tA=!1,g=kA(g,B,0,A,1).times(B),tA=!0,aA(g)):(B.s=g.s,g=B),g},q.toNumber=function(){return+this},q.toOctal=function(B,A){return tQ(this,8,B,A)},q.toPower=q.pow=function(B){var A,g,I,Q,C,a,e=this,i=e.constructor,t=+(B=new i(B));if(!(e.d&&B.d&&e.d[0]&&B.d[0]))return new i(VA(+e,t));if((e=new i(e)).eq(1))return e;if(I=i.precision,C=i.rounding,B.eq(1))return aA(e,I,C);if((A=Ag(B.e/7))>=B.d.length-1&&(g=t<0?-t:t)<=9007199254740991)return Q=ua(i,e,g,I),B.s<0?new i(1).div(Q):aA(Q,I,C);if((a=e.s)<0){if(A<B.d.length-1)return new i(NaN);if(1&B.d[A]||(a=1),e.e==0&&e.d[0]==1&&e.d.length==1)return e.s=a,e}return(A=(g=VA(+e,t))!=0&&isFinite(g)?new i(g+"").e:Ag(t*(Math.log("0."+$A(e.d))/Math.LN10+e.e+1)))>i.maxE+1||A<i.minE-1?new i(A>0?a/0:0):(tA=!1,i.rounding=e.s=1,g=Math.min(12,(A+"").length),(Q=iQ(B.times(Og(e,I+g)),I)).d&&LI((Q=aA(Q,I+5,1)).d,I,C)&&(A=I+10,+$A((Q=aA(iQ(B.times(Og(e,A+g)),A),A+5,1)).d).slice(I+1,I+15)+1==1e14&&(Q=aA(Q,I+1,0))),Q.s=a,tA=!0,i.rounding=C,aA(Q,I,C))},q.toPrecision=function(B,A){var g,I=this,Q=I.constructor;return B===void 0?g=Rg(I,I.e<=Q.toExpNeg||I.e>=Q.toExpPos):(eg(B,1,vg),A===void 0?A=Q.rounding:eg(A,0,8),g=Rg(I=aA(new Q(I),B,A),B<=I.e||I.e<=Q.toExpNeg,B)),I.isNeg()&&!I.isZero()?"-"+g:g},q.toSignificantDigits=q.toSD=function(B,A){var g=this.constructor;return B===void 0?(B=g.precision,A=g.rounding):(eg(B,1,vg),A===void 0?A=g.rounding:eg(A,0,8)),aA(new g(this),B,A)},q.toString=function(){var B=this,A=B.constructor,g=Rg(B,B.e<=A.toExpNeg||B.e>=A.toExpPos);return B.isNeg()&&!B.isZero()?"-"+g:g},q.truncated=q.trunc=function(){return aA(new this.constructor(this),this.e+1,1)},q.valueOf=q.toJSON=function(){var B=this,A=B.constructor,g=Rg(B,B.e<=A.toExpNeg||B.e>=A.toExpPos);return B.isNeg()?"-"+g:g};var kA=function(){function B(I,Q,C){var a,e=0,i=I.length;for(I=I.slice();i--;)a=I[i]*Q+e,I[i]=a%C|0,e=a/C|0;return e&&I.unshift(e),I}function A(I,Q,C,a){var e,i;if(C!=a)i=C>a?1:-1;else for(e=i=0;e<C;e++)if(I[e]!=Q[e]){i=I[e]>Q[e]?1:-1;break}return i}function g(I,Q,C,a){for(var e=0;C--;)I[C]-=e,e=I[C]<Q[C]?1:0,I[C]=e*a+I[C]-Q[C];for(;!I[0]&&I.length>1;)I.shift()}return function(I,Q,C,a,e,i){var t,E,o,r,n,s,c,d,D,h,u,f,R,G,k,F,m,N,S,j,z=I.constructor,$=I.s==Q.s?1:-1,_=I.d,X=Q.d;if(!(_&&_[0]&&X&&X[0]))return new z(I.s&&Q.s&&(_?!X||_[0]!=X[0]:X)?_&&_[0]==0||!X?0*$:$/0:NaN);for(i?(n=1,E=I.e-Q.e):(i=fg,n=7,E=Ag(I.e/n)-Ag(Q.e/n)),S=X.length,m=_.length,h=(D=new z($)).d=[],o=0;X[o]==(_[o]||0);o++);if(X[o]>(_[o]||0)&&E--,C==null?(G=C=z.precision,a=z.rounding):G=e?C+(I.e-Q.e)+1:C,G<0)h.push(1),s=!0;else{if(G=G/n+2|0,o=0,S==1){for(r=0,X=X[0],G++;(o<m||r)&&G--;o++)k=r*i+(_[o]||0),h[o]=k/X|0,r=k%X|0;s=r||o<m}else{for((r=i/(X[0]+1)|0)>1&&(X=B(X,r,i),_=B(_,r,i),S=X.length,m=_.length),F=S,f=(u=_.slice(0,S)).length;f<S;)u[f++]=0;(j=X.slice()).unshift(0),N=X[0],X[1]>=i/2&&++N;do r=0,(t=A(X,u,S,f))<0?(R=u[0],S!=f&&(R=R*i+(u[1]||0)),(r=R/N|0)>1?(r>=i&&(r=i-1),(t=A(c=B(X,r,i),u,d=c.length,f=u.length))==1&&(r--,g(c,S<d?j:X,d,i))):(r==0&&(t=r=1),c=X.slice()),(d=c.length)<f&&c.unshift(0),g(u,c,f,i),t==-1&&(t=A(X,u,S,f=u.length))<1&&(r++,g(u,S<f?j:X,f,i)),f=u.length):t===0&&(r++,u=[0]),h[o++]=r,t&&u[0]?u[f++]=_[F]||0:(u=[_[F]],f=1);while((F++<m||u[0]!==void 0)&&G--);s=u[0]!==void 0}h[0]||h.shift()}if(n==1)D.e=E,sa=s;else{for(o=1,r=h[0];r>=10;r/=10)o++;D.e=o+E*n-1,aA(D,e?C+D.e+1:C,a,s)}return D}}();function aA(B,A,g,I){var Q,C,a,e,i,t,E,o,r,n=B.constructor;A:if(A!=null){if(!(o=B.d))return B;for(Q=1,e=o[0];e>=10;e/=10)Q++;if((C=A-Q)<0)C+=7,a=A,i=(E=o[r=0])/VA(10,Q-a-1)%10|0;else if((r=Math.ceil((C+1)/7))>=(e=o.length)){if(!I)break A;for(;e++<=r;)o.push(0);E=i=0,Q=1,a=(C%=7)-7+1}else{for(E=e=o[r],Q=1;e>=10;e/=10)Q++;i=(a=(C%=7)-7+Q)<0?0:E/VA(10,Q-a-1)%10|0}if(I=I||A<0||o[r+1]!==void 0||(a<0?E:E%VA(10,Q-a-1)),t=g<4?(i||I)&&(g==0||g==(B.s<0?3:2)):i>5||i==5&&(g==4||I||g==6&&(C>0?a>0?E/VA(10,Q-a):0:o[r-1])%10&1||g==(B.s<0?8:7)),A<1||!o[0])return o.length=0,t?(A-=B.e+1,o[0]=VA(10,(7-A%7)%7),B.e=-A||0):o[0]=B.e=0,B;if(C==0?(o.length=r,e=1,r--):(o.length=r+1,e=VA(10,7-C),o[r]=a>0?(E/VA(10,Q-a)%VA(10,a)|0)*e:0),t)for(;;){if(r==0){for(C=1,a=o[0];a>=10;a/=10)C++;for(a=o[0]+=e,e=1;a>=10;a/=10)e++;C!=e&&(B.e++,o[0]==fg&&(o[0]=1));break}if(o[r]+=e,o[r]!=fg)break;o[r--]=0,e=1}for(C=o.length;o[--C]===0;)o.pop()}return tA&&(B.e>n.maxE?(B.d=null,B.e=NaN):B.e<n.minE&&(B.e=0,B.d=[0])),B}function Rg(B,A,g){if(!B.isFinite())return fa(B);var I,Q=B.e,C=$A(B.d),a=C.length;return A?(g&&(I=g-a)>0?C=C.charAt(0)+"."+C.slice(1)+Tg(I):a>1&&(C=C.charAt(0)+"."+C.slice(1)),C=C+(B.e<0?"e":"e+")+B.e):Q<0?(C="0."+Tg(-Q-1)+C,g&&(I=g-a)>0&&(C+=Tg(I))):Q>=a?(C+=Tg(Q+1-a),g&&(I=g-Q-1)>0&&(C=C+"."+Tg(I))):((I=Q+1)<a&&(C=C.slice(0,I)+"."+C.slice(I)),g&&(I=g-a)>0&&(Q+1===a&&(C+="."),C+=Tg(I))),C}function rB(B,A){var g=B[0];for(A*=7;g>=10;g/=10)A++;return A}function sB(B,A,g){if(A>wi)throw tA=!0,g&&(B.precision=g),Error(ca);return aA(new B(iB),A,1,!0)}function kg(B,A,g){if(A>EQ)throw Error(ca);return aA(new B(tB),A,g,!0)}function la(B){var A=B.length-1,g=7*A+1;if(A=B[A]){for(;A%10==0;A/=10)g--;for(A=B[0];A>=10;A/=10)g++}return g}function Tg(B){for(var A="";B--;)A+="0";return A}function ua(B,A,g,I){var Q,C=new B(1),a=Math.ceil(I/7+4);for(tA=!1;;){if(g%2&&Fa((C=C.times(A)).d,a)&&(Q=!0),(g=Ag(g/2))===0){g=C.d.length-1,Q&&C.d[g]===0&&++C.d[g];break}Fa((A=A.times(A)).d,a)}return tA=!0,C}function ba(B){return 1&B.d[B.d.length-1]}function wa(B,A,g){for(var I,Q,C=new B(A[0]),a=0;++a<A.length;){if(!(Q=new B(A[a])).s){C=Q;break}((I=C.cmp(Q))===g||I===0&&C.s===g)&&(C=Q)}return C}function iQ(B,A){var g,I,Q,C,a,e,i,t=0,E=0,o=0,r=B.constructor,n=r.rounding,s=r.precision;if(!B.d||!B.d[0]||B.e>17)return new r(B.d?B.d[0]?B.s<0?0:1/0:1:B.s?B.s<0?0:B:NaN);for(A==null?(tA=!1,i=s):i=A,e=new r(.03125);B.e>-2;)B=B.times(e),o+=5;for(i+=I=Math.log(VA(2,o))/Math.LN10*2+5|0,g=C=a=new r(1),r.precision=i;;){if(C=aA(C.times(B),i,1),g=g.times(++E),$A((e=a.plus(kA(C,g,i,1))).d).slice(0,i)===$A(a.d).slice(0,i)){for(Q=o;Q--;)a=aA(a.times(a),i,1);if(A!=null)return r.precision=s,a;if(!(t<3&&LI(a.d,i-I,n,t)))return aA(a,r.precision=s,n,tA=!0);r.precision=i+=10,g=C=e=new r(1),E=0,t++}a=e}}function Og(B,A){var g,I,Q,C,a,e,i,t,E,o,r,n=1,s=B,c=s.d,d=s.constructor,D=d.rounding,h=d.precision;if(s.s<0||!c||!c[0]||!s.e&&c[0]==1&&c.length==1)return new d(c&&!c[0]?-1/0:s.s!=1?NaN:c?0:s);if(A==null?(tA=!1,E=h):E=A,d.precision=E+=10,I=(g=$A(c)).charAt(0),!(Math.abs(C=s.e)<15e14))return t=sB(d,E+2,h).times(C+""),s=Og(new d(I+"."+g.slice(1)),E-10).plus(t),d.precision=h,A==null?aA(s,h,D,tA=!0):s;for(;I<7&&I!=1||I==1&&g.charAt(1)>3;)I=(g=$A((s=s.times(B)).d)).charAt(0),n++;for(C=s.e,I>1?(s=new d("0."+g),C++):s=new d(I+"."+g.slice(1)),o=s,i=a=s=kA(s.minus(1),s.plus(1),E,1),r=aA(s.times(s),E,1),Q=3;;){if(a=aA(a.times(r),E,1),$A((t=i.plus(kA(a,new d(Q),E,1))).d).slice(0,E)===$A(i.d).slice(0,E)){if(i=i.times(2),C!==0&&(i=i.plus(sB(d,E+2,h).times(C+""))),i=kA(i,new d(n),E,1),A!=null)return d.precision=h,i;if(!LI(i.d,E-10,D,e))return aA(i,d.precision=h,D,tA=!0);d.precision=E+=10,t=a=s=kA(o.minus(1),o.plus(1),E,1),r=aA(s.times(s),E,1),Q=e=1}i=t,Q+=2}}function fa(B){return String(B.s*B.s/0)}function cB(B,A){var g,I,Q;for((g=A.indexOf("."))>-1&&(A=A.replace(".","")),(I=A.search(/e/i))>0?(g<0&&(g=I),g+=+A.slice(I+1),A=A.substring(0,I)):g<0&&(g=A.length),I=0;A.charCodeAt(I)===48;I++);for(Q=A.length;A.charCodeAt(Q-1)===48;--Q);if(A=A.slice(I,Q)){if(Q-=I,B.e=g=g-I-1,B.d=[],I=(g+1)%7,g<0&&(I+=7),I<Q){for(I&&B.d.push(+A.slice(0,I)),Q-=7;I<Q;)B.d.push(+A.slice(I,I+=7));I=7-(A=A.slice(I)).length}else I-=Q;for(;I--;)A+="0";B.d.push(+A),tA&&(B.e>B.constructor.maxE?(B.d=null,B.e=NaN):B.e<B.constructor.minE&&(B.e=0,B.d=[0]))}else B.e=0,B.d=[0];return B}function fi(B,A){var g,I,Q,C,a,e,i,t,E;if(A.indexOf("_")>-1){if(A=A.replace(/(\d)_(?=\d)/g,"$1"),Da.test(A))return cB(B,A)}else if(A==="Infinity"||A==="NaN")return+A||(B.s=NaN),B.e=NaN,B.d=null,B;if(ui.test(A))g=16,A=A.toLowerCase();else if(li.test(A))g=2;else{if(!bi.test(A))throw Error(qg+A);g=8}for((C=A.search(/p/i))>0?(i=+A.slice(C+1),A=A.substring(2,C)):A=A.slice(2),a=(C=A.indexOf("."))>=0,I=B.constructor,a&&(C=(e=(A=A.replace(".","")).length)-C,Q=ua(I,new I(g),C,2*C)),C=E=(t=nB(A,g,fg)).length-1;t[C]===0;--C)t.pop();return C<0?new I(0*B.s):(B.e=rB(t,E),B.d=t,tA=!1,a&&(B=kA(B,Q,4*e)),i&&(B=B.times(Math.abs(i)<54?VA(2,i):wI.pow(2,i))),tA=!0,B)}function bI(B,A,g,I,Q){var C,a,e,i,t=B.precision,E=Math.ceil(t/7);for(tA=!1,i=g.times(g),e=new B(I);;){if(a=kA(e.times(i),new B(A++*A++),t,1),e=Q?I.plus(a):I.minus(a),I=kA(a.times(i),new B(A++*A++),t,1),(a=e.plus(I)).d[E]!==void 0){for(C=E;a.d[C]===e.d[C]&&C--;);if(C==-1)break}C=e,e=I,I=a,a=C}return tA=!0,a.d.length=E+1,a}function hB(B,A){for(var g=B;--A;)g*=B;return g}function ya(B,A){var g,I=A.s<0,Q=kg(B,B.precision,1),C=Q.times(.5);if((A=A.abs()).lte(C))return Sg=I?4:1,A;if((g=A.divToInt(Q)).isZero())Sg=I?3:2;else{if((A=A.minus(g.times(Q))).lte(C))return Sg=ba(g)?I?2:3:I?4:1,A;Sg=ba(g)?I?1:4:I?3:2}return A.minus(Q).abs()}function tQ(B,A,g,I){var Q,C,a,e,i,t,E,o,r,n=B.constructor,s=g!==void 0;if(s?(eg(g,1,vg),I===void 0?I=n.rounding:eg(I,0,8)):(g=n.precision,I=n.rounding),B.isFinite()){for(s?(Q=2,A==16?g=4*g-3:A==8&&(g=3*g-2)):Q=A,(a=(E=Rg(B)).indexOf("."))>=0&&(E=E.replace(".",""),(r=new n(1)).e=E.length-a,r.d=nB(Rg(r),10,Q),r.e=r.d.length),C=i=(o=nB(E,10,Q)).length;o[--i]==0;)o.pop();if(o[0]){if(a<0?C--:((B=new n(B)).d=o,B.e=C,o=(B=kA(B,r,g,I,0,Q)).d,C=B.e,t=sa),a=o[g],e=Q/2,t=t||o[g+1]!==void 0,t=I<4?(a!==void 0||t)&&(I===0||I===(B.s<0?3:2)):a>e||a===e&&(I===4||t||I===6&&1&o[g-1]||I===(B.s<0?8:7)),o.length=g,t)for(;++o[--g]>Q-1;)o[g]=0,g||(++C,o.unshift(1));for(i=o.length;!o[i-1];--i);for(a=0,E="";a<i;a++)E+=aQ.charAt(o[a]);if(s){if(i>1)if(A==16||A==8){for(a=A==16?4:3,--i;i%a;i++)E+="0";for(i=(o=nB(E,Q,A)).length;!o[i-1];--i);for(a=1,E="1.";a<i;a++)E+=aQ.charAt(o[a])}else E=E.charAt(0)+"."+E.slice(1);E=E+(C<0?"p":"p+")+C}else if(C<0){for(;++C;)E="0"+E;E="0."+E}else if(++C>i)for(C-=i;C--;)E+="0";else C<i&&(E=E.slice(0,C)+"."+E.slice(C))}else E=s?"0p+0":"0";E=(A==16?"0x":A==2?"0b":A==8?"0o":"")+E}else E=fa(B);return B.s<0?"-"+E:E}function Fa(B,A){if(B.length>A)return B.length=A,!0}function yi(B){return new this(B).abs()}function Fi(B){return new this(B).acos()}function pi(B){return new this(B).acosh()}function Mi(B,A){return new this(B).plus(A)}function Gi(B){return new this(B).asin()}function Ri(B){return new this(B).asinh()}function ki(B){return new this(B).atan()}function mi(B){return new this(B).atanh()}function Ni(B,A){B=new this(B),A=new this(A);var g,I=this.precision,Q=this.rounding,C=I+4;return B.s&&A.s?B.d||A.d?!A.d||B.isZero()?(g=A.s<0?kg(this,I,Q):new this(0)).s=B.s:!B.d||A.isZero()?(g=kg(this,C,1).times(.5)).s=B.s:A.s<0?(this.precision=C,this.rounding=1,g=this.atan(kA(B,A,C,1)),A=kg(this,C,1),this.precision=I,this.rounding=Q,g=B.s<0?g.minus(A):g.plus(A)):g=this.atan(kA(B,A,C,1)):(g=kg(this,C,1).times(A.s>0?.25:.75)).s=B.s:g=new this(NaN),g}function Ui(B){return new this(B).cbrt()}function Si(B){return aA(B=new this(B),B.e+1,2)}function Li(B,A,g){return new this(B).clamp(A,g)}function Ji(B){if(!B||typeof B!="object")throw Error(oB+"Object expected");var A,g,I,Q=B.defaults===!0,C=["precision",1,vg,"rounding",0,8,"toExpNeg",-uI,0,"toExpPos",0,uI,"maxE",0,uI,"minE",-uI,0,"modulo",0,9];for(A=0;A<C.length;A+=3)if(g=C[A],Q&&(this[g]=eQ[g]),(I=B[g])!==void 0){if(!(Ag(I)===I&&I>=C[A+1]&&I<=C[A+2]))throw Error(qg+g+": "+I);this[g]=I}if(g="crypto",Q&&(this[g]=eQ[g]),(I=B[g])!==void 0){if(I!==!0&&I!==!1&&I!==0&&I!==1)throw Error(qg+g+": "+I);if(I){if(typeof crypto>"u"||!crypto||!crypto.getRandomValues&&!crypto.randomBytes)throw Error(ha);this[g]=!0}else this[g]=!1}return this}function xi(B){return new this(B).cos()}function Yi(B){return new this(B).cosh()}function Hi(B,A){return new this(B).div(A)}function Ki(B){return new this(B).exp()}function ji(B){return aA(B=new this(B),B.e+1,3)}function vi(){var B,A,g=new this(0);for(tA=!1,B=0;B<arguments.length;)if((A=new this(arguments[B++])).d)g.d&&(g=g.plus(A.times(A)));else{if(A.s)return tA=!0,new this(1/0);g=A}return tA=!0,g.sqrt()}function pa(B){return B instanceof wI||B&&B.toStringTag===da||!1}function qi(B){return new this(B).ln()}function Ti(B,A){return new this(B).log(A)}function Oi(B){return new this(B).log(2)}function Wi(B){return new this(B).log(10)}function Pi(){return wa(this,arguments,-1)}function Vi(){return wa(this,arguments,1)}function zi(B,A){return new this(B).mod(A)}function Xi(B,A){return new this(B).mul(A)}function Zi(B,A){return new this(B).pow(A)}function _i(B){var A,g,I,Q,C=0,a=new this(1),e=[];if(B===void 0?B=this.precision:eg(B,1,vg),I=Math.ceil(B/7),this.crypto)if(crypto.getRandomValues)for(A=crypto.getRandomValues(new Uint32Array(I));C<I;)(Q=A[C])>=429e7?A[C]=crypto.getRandomValues(new Uint32Array(1))[0]:e[C++]=Q%1e7;else{if(!crypto.randomBytes)throw Error(ha);for(A=crypto.randomBytes(I*=4);C<I;)(Q=A[C]+(A[C+1]<<8)+(A[C+2]<<16)+((127&A[C+3])<<24))>=214e7?crypto.randomBytes(4).copy(A,C):(e.push(Q%1e7),C+=4);C=I/4}else for(;C<I;)e[C++]=1e7*Math.random()|0;for(B%=7,(I=e[--C])&&B&&(Q=VA(10,7-B),e[C]=(I/Q|0)*Q);e[C]===0;C--)e.pop();if(C<0)g=0,e=[0];else{for(g=-1;e[0]===0;g-=7)e.shift();for(I=1,Q=e[0];Q>=10;Q/=10)I++;I<7&&(g-=7-I)}return a.e=g,a.d=e,a}function $i(B){return aA(B=new this(B),B.e+1,this.rounding)}function At(B){return(B=new this(B)).d?B.d[0]?B.s:0*B.s:B.s||NaN}function gt(B){return new this(B).sin()}function It(B){return new this(B).sinh()}function Bt(B){return new this(B).sqrt()}function Qt(B,A){return new this(B).sub(A)}function Ct(){var B=0,A=arguments,g=new this(A[B]);for(tA=!1;g.s&&++B<A.length;)g=g.plus(A[B]);return tA=!0,aA(g,this.precision,this.rounding)}function at(B){return new this(B).tan()}function et(B){return new this(B).tanh()}function Et(B){return aA(B=new this(B),B.e+1,1)}q[Symbol.for("nodejs.util.inspect.custom")]=q.toString,q[Symbol.toStringTag]="Decimal";var wI=q.constructor=function B(A){var g,I,Q;function C(a){var e,i,t,E=this;if(!(E instanceof C))return new C(a);if(E.constructor=C,pa(a))return E.s=a.s,void(tA?!a.d||a.e>C.maxE?(E.e=NaN,E.d=null):a.e<C.minE?(E.e=0,E.d=[0]):(E.e=a.e,E.d=a.d.slice()):(E.e=a.e,E.d=a.d?a.d.slice():a.d));if((t=typeof a)=="number"){if(a===0)return E.s=1/a<0?-1:1,E.e=0,void(E.d=[0]);if(a<0?(a=-a,E.s=-1):E.s=1,a===~~a&&a<1e7){for(e=0,i=a;i>=10;i/=10)e++;return void(tA?e>C.maxE?(E.e=NaN,E.d=null):e<C.minE?(E.e=0,E.d=[0]):(E.e=e,E.d=[a]):(E.e=e,E.d=[a]))}return 0*a!=0?(a||(E.s=NaN),E.e=NaN,void(E.d=null)):cB(E,a.toString())}if(t==="string")return(i=a.charCodeAt(0))===45?(a=a.slice(1),E.s=-1):(i===43&&(a=a.slice(1)),E.s=1),Da.test(a)?cB(E,a):fi(E,a);if(t==="bigint")return a<0?(a=-a,E.s=-1):E.s=1,cB(E,a.toString());throw Error(qg+a)}if(C.prototype=q,C.ROUND_UP=0,C.ROUND_DOWN=1,C.ROUND_CEIL=2,C.ROUND_FLOOR=3,C.ROUND_HALF_UP=4,C.ROUND_HALF_DOWN=5,C.ROUND_HALF_EVEN=6,C.ROUND_HALF_CEIL=7,C.ROUND_HALF_FLOOR=8,C.EUCLID=9,C.config=C.set=Ji,C.clone=B,C.isDecimal=pa,C.abs=yi,C.acos=Fi,C.acosh=pi,C.add=Mi,C.asin=Gi,C.asinh=Ri,C.atan=ki,C.atanh=mi,C.atan2=Ni,C.cbrt=Ui,C.ceil=Si,C.clamp=Li,C.cos=xi,C.cosh=Yi,C.div=Hi,C.exp=Ki,C.floor=ji,C.hypot=vi,C.ln=qi,C.log=Ti,C.log10=Wi,C.log2=Oi,C.max=Pi,C.min=Vi,C.mod=zi,C.mul=Xi,C.pow=Zi,C.random=_i,C.round=$i,C.sign=At,C.sin=gt,C.sinh=It,C.sqrt=Bt,C.sub=Qt,C.sum=Ct,C.tan=at,C.tanh=et,C.trunc=Et,A===void 0&&(A={}),A&&A.defaults!==!0)for(Q=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],g=0;g<Q.length;)A.hasOwnProperty(I=Q[g++])||(A[I]=this[I]);return C.config(A),C}(eQ);iB=new wI(iB),tB=new wI(tB);var it=wA("BigNumber",["?on","config"],B=>{var{on:A,config:g}=B,I=wI.clone({precision:g.precision,modulo:wI.EUCLID});return I.prototype=Object.create(I.prototype),I.prototype.type="BigNumber",I.prototype.isBigNumber=!0,I.prototype.toJSON=function(){return{mathjs:"BigNumber",value:this.toString()}},I.fromJSON=function(Q){return new I(Q.value)},A&&A("config",function(Q,C){Q.precision!==C.precision&&I.config({precision:Q.precision})}),I},{isClass:!0});const gg=Math.cosh||function(B){return Math.abs(B)<1e-9?1-B:.5*(Math.exp(B)+Math.exp(-B))},bg=Math.sinh||function(B){return Math.abs(B)<1e-9?B:.5*(Math.exp(B)-Math.exp(-B))},oQ=function(B,A){return(B=Math.abs(B))<(A=Math.abs(A))&&([B,A]=[A,B]),B<1e8?Math.sqrt(B*B+A*A):(A/=B,B*Math.sqrt(1+A*A))},fI=function(){throw SyntaxError("Invalid Param")};function nQ(B,A){const g=Math.abs(B),I=Math.abs(A);return B===0?Math.log(I):A===0?Math.log(g):g<3e3&&I<3e3?.5*Math.log(B*B+A*A):(B*=.5,A*=.5,.5*Math.log(B*B+A*A)+Math.LN2)}const tt={re:0,im:0},CI=function(B,A){const g=tt;if(B==null)g.re=g.im=0;else if(A!==void 0)g.re=B,g.im=A;else switch(typeof B){case"object":if("im"in B&&"re"in B)g.re=B.re,g.im=B.im;else if("abs"in B&&"arg"in B){if(!isFinite(B.abs)&&isFinite(B.arg))return Y.INFINITY;g.re=B.abs*Math.cos(B.arg),g.im=B.abs*Math.sin(B.arg)}else if("r"in B&&"phi"in B){if(!isFinite(B.r)&&isFinite(B.phi))return Y.INFINITY;g.re=B.r*Math.cos(B.phi),g.im=B.r*Math.sin(B.phi)}else B.length===2?(g.re=B[0],g.im=B[1]):fI();break;case"string":g.im=g.re=0;const I=B.replace(/_/g,"").match(/\d+\.?\d*e[+-]?\d+|\d+\.?\d*|\.\d+|./g);let Q=1,C=0;I===null&&fI();for(let a=0;a<I.length;a++){const e=I[a];e===" "||e===" "||e===`
|
|
965
|
+
`||(e==="+"?Q++:e==="-"?C++:e==="i"||e==="I"?(Q+C===0&&fI(),I[a+1]===" "||isNaN(I[a+1])?g.im+=parseFloat((C%2?"-":"")+"1"):(g.im+=parseFloat((C%2?"-":"")+I[a+1]),a++),Q=C=0):((Q+C===0||isNaN(e))&&fI(),I[a+1]==="i"||I[a+1]==="I"?(g.im+=parseFloat((C%2?"-":"")+e),a++):g.re+=parseFloat((C%2?"-":"")+e),Q=C=0))}Q+C>0&&fI();break;case"number":g.im=0,g.re=B;break;default:fI()}return isNaN(g.re)||isNaN(g.im),g};function Y(B,A){if(!(this instanceof Y))return new Y(B,A);const g=CI(B,A);this.re=g.re,this.im=g.im}Y.prototype={re:0,im:0,sign:function(){const B=oQ(this.re,this.im);return new Y(this.re/B,this.im/B)},add:function(B,A){const g=CI(B,A),I=this.isInfinite(),Q=!(isFinite(g.re)&&isFinite(g.im));return I||Q?I&&Q?Y.NAN:Y.INFINITY:new Y(this.re+g.re,this.im+g.im)},sub:function(B,A){const g=CI(B,A),I=this.isInfinite(),Q=!(isFinite(g.re)&&isFinite(g.im));return I||Q?I&&Q?Y.NAN:Y.INFINITY:new Y(this.re-g.re,this.im-g.im)},mul:function(B,A){const g=CI(B,A),I=this.isInfinite(),Q=!(isFinite(g.re)&&isFinite(g.im)),C=this.re===0&&this.im===0,a=g.re===0&&g.im===0;return I&&a||Q&&C?Y.NAN:I||Q?Y.INFINITY:g.im===0&&this.im===0?new Y(this.re*g.re,0):new Y(this.re*g.re-this.im*g.im,this.re*g.im+this.im*g.re)},div:function(B,A){const g=CI(B,A),I=this.isInfinite(),Q=!(isFinite(g.re)&&isFinite(g.im)),C=this.re===0&&this.im===0,a=g.re===0&&g.im===0;if(C&&a||I&&Q)return Y.NAN;if(a||I)return Y.INFINITY;if(C||Q)return Y.ZERO;if(g.im===0)return new Y(this.re/g.re,this.im/g.re);if(Math.abs(g.re)<Math.abs(g.im)){const e=g.re/g.im,i=g.re*e+g.im;return new Y((this.re*e+this.im)/i,(this.im*e-this.re)/i)}{const e=g.im/g.re,i=g.im*e+g.re;return new Y((this.re+this.im*e)/i,(this.im-this.re*e)/i)}},pow:function(B,A){const g=CI(B,A),I=this.re===0&&this.im===0;if(g.re===0&&g.im===0)return Y.ONE;if(g.im===0){if(this.im===0&&this.re>0)return new Y(Math.pow(this.re,g.re),0);if(this.re===0)switch((g.re%4+4)%4){case 0:return new Y(Math.pow(this.im,g.re),0);case 1:return new Y(0,Math.pow(this.im,g.re));case 2:return new Y(-Math.pow(this.im,g.re),0);case 3:return new Y(0,-Math.pow(this.im,g.re))}}if(I&&g.re>0)return Y.ZERO;const Q=Math.atan2(this.im,this.re),C=nQ(this.re,this.im);let a=Math.exp(g.re*C-g.im*Q),e=g.im*C+g.re*Q;return new Y(a*Math.cos(e),a*Math.sin(e))},sqrt:function(){const B=this.re,A=this.im;if(A===0)return B>=0?new Y(Math.sqrt(B),0):new Y(0,Math.sqrt(-B));const g=oQ(B,A);let I=Math.sqrt(.5*(g+Math.abs(B))),Q=Math.abs(A)/(2*I);return B>=0?new Y(I,A<0?-Q:Q):new Y(Q,A<0?-I:I)},exp:function(){const B=Math.exp(this.re);return this.im===0?new Y(B,0):new Y(B*Math.cos(this.im),B*Math.sin(this.im))},expm1:function(){const B=this.re,A=this.im;return new Y(Math.expm1(B)*Math.cos(A)+function(g){const I=Math.PI/4;if(-I>g||g>I)return Math.cos(g)-1;const Q=g*g;return Q*(Q*(Q*(Q*(Q*(Q*(Q*(Q/20922789888e3-1/87178291200)+1/479001600)-1/3628800)+1/40320)-1/720)+1/24)-.5)}(A),Math.exp(B)*Math.sin(A))},log:function(){const B=this.re,A=this.im;return A===0&&B>0?new Y(Math.log(B),0):new Y(nQ(B,A),Math.atan2(A,B))},abs:function(){return oQ(this.re,this.im)},arg:function(){return Math.atan2(this.im,this.re)},sin:function(){const B=this.re,A=this.im;return new Y(Math.sin(B)*gg(A),Math.cos(B)*bg(A))},cos:function(){const B=this.re,A=this.im;return new Y(Math.cos(B)*gg(A),-Math.sin(B)*bg(A))},tan:function(){const B=2*this.re,A=2*this.im,g=Math.cos(B)+gg(A);return new Y(Math.sin(B)/g,bg(A)/g)},cot:function(){const B=2*this.re,A=2*this.im,g=Math.cos(B)-gg(A);return new Y(-Math.sin(B)/g,bg(A)/g)},sec:function(){const B=this.re,A=this.im,g=.5*gg(2*A)+.5*Math.cos(2*B);return new Y(Math.cos(B)*gg(A)/g,Math.sin(B)*bg(A)/g)},csc:function(){const B=this.re,A=this.im,g=.5*gg(2*A)-.5*Math.cos(2*B);return new Y(Math.sin(B)*gg(A)/g,-Math.cos(B)*bg(A)/g)},asin:function(){const B=this.re,A=this.im,g=new Y(A*A-B*B+1,-2*B*A).sqrt(),I=new Y(g.re-A,g.im+B).log();return new Y(I.im,-I.re)},acos:function(){const B=this.re,A=this.im,g=new Y(A*A-B*B+1,-2*B*A).sqrt(),I=new Y(g.re-A,g.im+B).log();return new Y(Math.PI/2-I.im,I.re)},atan:function(){const B=this.re,A=this.im;if(B===0){if(A===1)return new Y(0,1/0);if(A===-1)return new Y(0,-1/0)}const g=B*B+(1-A)*(1-A),I=new Y((1-A*A-B*B)/g,-2*B/g).log();return new Y(-.5*I.im,.5*I.re)},acot:function(){const B=this.re,A=this.im;if(A===0)return new Y(Math.atan2(1,B),0);const g=B*B+A*A;return g!==0?new Y(B/g,-A/g).atan():new Y(B!==0?B/0:0,A!==0?-A/0:0).atan()},asec:function(){const B=this.re,A=this.im;if(B===0&&A===0)return new Y(0,1/0);const g=B*B+A*A;return g!==0?new Y(B/g,-A/g).acos():new Y(B!==0?B/0:0,A!==0?-A/0:0).acos()},acsc:function(){const B=this.re,A=this.im;if(B===0&&A===0)return new Y(Math.PI/2,1/0);const g=B*B+A*A;return g!==0?new Y(B/g,-A/g).asin():new Y(B!==0?B/0:0,A!==0?-A/0:0).asin()},sinh:function(){const B=this.re,A=this.im;return new Y(bg(B)*Math.cos(A),gg(B)*Math.sin(A))},cosh:function(){const B=this.re,A=this.im;return new Y(gg(B)*Math.cos(A),bg(B)*Math.sin(A))},tanh:function(){const B=2*this.re,A=2*this.im,g=gg(B)+Math.cos(A);return new Y(bg(B)/g,Math.sin(A)/g)},coth:function(){const B=2*this.re,A=2*this.im,g=gg(B)-Math.cos(A);return new Y(bg(B)/g,-Math.sin(A)/g)},csch:function(){const B=this.re,A=this.im,g=Math.cos(2*A)-gg(2*B);return new Y(-2*bg(B)*Math.cos(A)/g,2*gg(B)*Math.sin(A)/g)},sech:function(){const B=this.re,A=this.im,g=Math.cos(2*A)+gg(2*B);return new Y(2*gg(B)*Math.cos(A)/g,-2*bg(B)*Math.sin(A)/g)},asinh:function(){let B=this.im;this.im=-this.re,this.re=B;const A=this.asin();return this.re=-this.im,this.im=B,B=A.re,A.re=-A.im,A.im=B,A},acosh:function(){const B=this.acos();if(B.im<=0){const A=B.re;B.re=-B.im,B.im=A}else{const A=B.im;B.im=-B.re,B.re=A}return B},atanh:function(){const B=this.re,A=this.im,g=B>1&&A===0,I=1-B,Q=1+B,C=I*I+A*A,a=C!==0?new Y((Q*I-A*A)/C,(A*I+Q*A)/C):new Y(B!==-1?B/0:0,A!==0?A/0:0),e=a.re;return a.re=nQ(a.re,a.im)/2,a.im=Math.atan2(a.im,e)/2,g&&(a.im=-a.im),a},acoth:function(){const B=this.re,A=this.im;if(B===0&&A===0)return new Y(0,Math.PI/2);const g=B*B+A*A;return g!==0?new Y(B/g,-A/g).atanh():new Y(B!==0?B/0:0,A!==0?-A/0:0).atanh()},acsch:function(){const B=this.re,A=this.im;if(A===0)return new Y(B!==0?Math.log(B+Math.sqrt(B*B+1)):1/0,0);const g=B*B+A*A;return g!==0?new Y(B/g,-A/g).asinh():new Y(B!==0?B/0:0,A!==0?-A/0:0).asinh()},asech:function(){const B=this.re,A=this.im;if(this.isZero())return Y.INFINITY;const g=B*B+A*A;return g!==0?new Y(B/g,-A/g).acosh():new Y(B!==0?B/0:0,A!==0?-A/0:0).acosh()},inverse:function(){if(this.isZero())return Y.INFINITY;if(this.isInfinite())return Y.ZERO;const B=this.re,A=this.im,g=B*B+A*A;return new Y(B/g,-A/g)},conjugate:function(){return new Y(this.re,-this.im)},neg:function(){return new Y(-this.re,-this.im)},ceil:function(B){return B=Math.pow(10,B||0),new Y(Math.ceil(this.re*B)/B,Math.ceil(this.im*B)/B)},floor:function(B){return B=Math.pow(10,B||0),new Y(Math.floor(this.re*B)/B,Math.floor(this.im*B)/B)},round:function(B){return B=Math.pow(10,B||0),new Y(Math.round(this.re*B)/B,Math.round(this.im*B)/B)},equals:function(B,A){const g=CI(B,A);return Math.abs(g.re-this.re)<=Y.EPSILON&&Math.abs(g.im-this.im)<=Y.EPSILON},clone:function(){return new Y(this.re,this.im)},toString:function(){let B=this.re,A=this.im,g="";return this.isNaN()?"NaN":this.isInfinite()?"Infinity":(Math.abs(B)<Y.EPSILON&&(B=0),Math.abs(A)<Y.EPSILON&&(A=0),A===0?g+B:(B!==0?(g+=B,g+=" ",A<0?(A=-A,g+="-"):g+="+",g+=" "):A<0&&(A=-A,g+="-"),A!==1&&(g+=A),g+"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.isFinite()}},Y.ZERO=new Y(0,0),Y.ONE=new Y(1,0),Y.I=new Y(0,1),Y.PI=new Y(Math.PI,0),Y.E=new Y(Math.E,0),Y.INFINITY=new Y(1/0,1/0),Y.NAN=new Y(NaN,NaN),Y.EPSILON=1e-15;var ot=wA("Complex",[],()=>(Object.defineProperty(Y,"name",{value:"Complex"}),Y.prototype.constructor=Y,Y.prototype.type="Complex",Y.prototype.isComplex=!0,Y.prototype.toJSON=function(){return{mathjs:"Complex",re:this.re,im:this.im}},Y.prototype.toPolar=function(){return{r:this.abs(),phi:this.arg()}},Y.prototype.format=function(B){var A=this.im,g=this.re,I=CQ(this.re,B),Q=CQ(this.im,B),C=NA(B)?B:B?B.precision:null;if(C!==null){var a=Math.pow(10,-C);Math.abs(g/A)<a&&(g=0),Math.abs(A/g)<a&&(A=0)}return A===0?I:g===0?A===1?"i":A===-1?"-i":Q+"i":A<0?A===-1?I+" - i":I+" - "+Q.substring(1)+"i":A===1?I+" + i":I+" + "+Q+"i"},Y.fromPolar=function(B){switch(arguments.length){case 1:var A=arguments[0];if(typeof A=="object")return Y(A);throw new TypeError("Input has to be an object with r and phi keys.");case 2:var g=arguments[0],I=arguments[1];if(NA(g)){if(aa(I)&&I.hasBase("ANGLE")&&(I=I.toNumber("rad")),NA(I))return new Y({r:g,phi:I});throw new TypeError("Phi is not a number nor an angle unit.")}throw new TypeError("Radius r is not a number.");default:throw new SyntaxError("Wrong number of arguments in function fromPolar")}},Y.prototype.valueOf=Y.prototype.toString,Y.fromJSON=function(B){return new Y(B)},Y.compare=function(B,A){return B.re>A.re?1:B.re<A.re?-1:B.im>A.im?1:B.im<A.im?-1:0},Y),{isClass:!0});typeof BigInt>"u"&&(BigInt=function(B){if(isNaN(B))throw new Error("");return B});const eA=BigInt(0),rA=BigInt(1),JI=BigInt(2),rQ=BigInt(5),Eg=BigInt(10),AA={s:rA,n:eA,d:rA};function Lg(B,A){try{B=BigInt(B)}catch{throw Wg()}return B*A}function yg(B){return typeof B=="bigint"?B:Math.floor(B)}function UA(B,A){if(A===eA)throw sQ();const g=Object.create(wg.prototype);g.s=B<eA?-rA:rA;const I=aI(B=B<eA?-B:B,A);return g.n=B/I,g.d=A/I,g}function yI(B){const A={};let g=B,I=JI,Q=rQ-rA;for(;Q<=g;){for(;g%I===eA;)g/=I,A[I]=(A[I]||eA)+rA;Q+=rA+JI*I++}return g!==B?g>1&&(A[g]=(A[g]||eA)+rA):A[B]=(A[B]||eA)+rA,A}const XA=function(B,A){let g=eA,I=rA,Q=rA;if(B!=null)if(A!==void 0){if(typeof B=="bigint")g=B;else{if(isNaN(B))throw Wg();if(B%1!=0)throw Ma();g=BigInt(B)}if(typeof A=="bigint")I=A;else{if(isNaN(A))throw Wg();if(A%1!=0)throw Ma();I=BigInt(A)}Q=g*I}else if(typeof B=="object"){if("d"in B&&"n"in B)g=BigInt(B.n),I=BigInt(B.d),"s"in B&&(g*=BigInt(B.s));else if(0 in B)g=BigInt(B[0]),1 in B&&(I=BigInt(B[1]));else{if(typeof B!="bigint")throw Wg();g=B}Q=g*I}else if(typeof B=="number"){if(isNaN(B))throw Wg();if(B<0&&(Q=-rA,B=-B),B%1==0)g=BigInt(B);else{let C=1,a=0,e=1,i=1,t=1,E=1e7;for(B>=1&&(C=10**Math.floor(1+Math.log10(B)),B/=C);e<=E&&t<=E;){let o=(a+i)/(e+t);if(B===o){e+t<=E?(g=a+i,I=e+t):t>e?(g=i,I=t):(g=a,I=e);break}B>o?(a+=i,e+=t):(i+=a,t+=e),e>E?(g=i,I=t):(g=a,I=e)}g=BigInt(g)*BigInt(C),I=BigInt(I)}}else if(typeof B=="string"){let C=0,a=eA,e=eA,i=eA,t=rA,E=rA,o=B.replace(/_/g,"").match(/\d+|./g);if(o===null||(o[C]==="-"?(Q=-rA,C++):o[C]==="+"&&C++,o.length===C+1?e=Lg(o[C++],Q):o[C+1]==="."||o[C]==="."?(o[C]!=="."&&(a=Lg(o[C++],Q)),C++,(C+1===o.length||o[C+1]==="("&&o[C+3]===")"||o[C+1]==="'"&&o[C+3]==="'")&&(e=Lg(o[C],Q),t=Eg**BigInt(o[C].length),C++),(o[C]==="("&&o[C+2]===")"||o[C]==="'"&&o[C+2]==="'")&&(i=Lg(o[C+1],Q),E=Eg**BigInt(o[C+1].length)-rA,C+=3)):o[C+1]==="/"||o[C+1]===":"?(e=Lg(o[C],Q),t=Lg(o[C+2],rA),C+=3):o[C+3]==="/"&&o[C+1]===" "&&(a=Lg(o[C],Q),e=Lg(o[C+2],Q),t=Lg(o[C+4],rA),C+=5),!(o.length<=C)))throw Wg();I=t*E,Q=g=i+I*a+E*e}else{if(typeof B!="bigint")throw Wg();g=B,Q=B,I=rA}if(I===eA)throw sQ();AA.s=Q<eA?-rA:rA,AA.n=g<eA?-g:g,AA.d=I<eA?-I:I};function nt(B,A,g){let I=rA,Q=function(C,a,e){let i=rA;for(;a>eA;C=C*C%e,a>>=rA)a&rA&&(i=i*C%e);return i}(Eg,g,A);for(let C=0;C<300;C++){if(I===Q)return BigInt(C);I=I*Eg%A,Q=Q*Eg%A}return 0}function aI(B,A){if(!B)return A;if(!A)return B;for(;;){if(!(B%=A))return A;if(!(A%=B))return B}}function wg(B,A){if(XA(B,A),!(this instanceof wg))return UA(AA.s*AA.n,AA.d);B=aI(AA.d,AA.n),this.s=AA.s,this.n=AA.n/B,this.d=AA.d/B}var sQ=function(){return new Error("Division by Zero")},Wg=function(){return new Error("Invalid argument")},Ma=function(){return new Error("Parameters must be integer")};wg.prototype={s:rA,n:eA,d:rA,abs:function(){return UA(this.n,this.d)},neg:function(){return UA(-this.s*this.n,this.d)},add:function(B,A){return XA(B,A),UA(this.s*this.n*AA.d+AA.s*this.d*AA.n,this.d*AA.d)},sub:function(B,A){return XA(B,A),UA(this.s*this.n*AA.d-AA.s*this.d*AA.n,this.d*AA.d)},mul:function(B,A){return XA(B,A),UA(this.s*AA.s*this.n*AA.n,this.d*AA.d)},div:function(B,A){return XA(B,A),UA(this.s*AA.s*this.n*AA.d,this.d*AA.n)},clone:function(){return UA(this.s*this.n,this.d)},mod:function(B,A){if(B===void 0)return UA(this.s*this.n%this.d,rA);if(XA(B,A),eA===AA.n*this.d)throw sQ();return UA(this.s*(AA.d*this.n)%(AA.n*this.d),AA.d*this.d)},gcd:function(B,A){return XA(B,A),UA(aI(AA.n,this.n)*aI(AA.d,this.d),AA.d*this.d)},lcm:function(B,A){return XA(B,A),AA.n===eA&&this.n===eA?UA(eA,rA):UA(AA.n*this.n,aI(AA.n,this.n)*aI(AA.d,this.d))},inverse:function(){return UA(this.s*this.d,this.n)},pow:function(B,A){if(XA(B,A),AA.d===rA)return AA.s<eA?UA((this.s*this.d)**AA.n,this.n**AA.n):UA((this.s*this.n)**AA.n,this.d**AA.n);if(this.s<eA)return null;let g=yI(this.n),I=yI(this.d),Q=rA,C=rA;for(let a in g)if(a!=="1"){if(a==="0"){Q=eA;break}if(g[a]*=AA.n,g[a]%AA.d!==eA)return null;g[a]/=AA.d,Q*=BigInt(a)**g[a]}for(let a in I)if(a!=="1"){if(I[a]*=AA.n,I[a]%AA.d!==eA)return null;I[a]/=AA.d,C*=BigInt(a)**I[a]}return AA.s<eA?UA(C,Q):UA(Q,C)},log:function(B,A){if(XA(B,A),this.s<=eA||AA.s<=eA)return null;const g={},I=yI(AA.n),Q=yI(AA.d),C=yI(this.n),a=yI(this.d);for(const t in Q)I[t]=(I[t]||eA)-Q[t];for(const t in a)C[t]=(C[t]||eA)-a[t];for(const t in I)t!=="1"&&(g[t]=!0);for(const t in C)t!=="1"&&(g[t]=!0);let e=null,i=null;for(const t in g){const E=I[t]||eA,o=C[t]||eA;if(E===eA){if(o!==eA)return null;continue}let r=o,n=E;const s=aI(r,n);if(r/=s,n/=s,e===null&&i===null)e=r,i=n;else if(r*i!=e*n)return null}return e!==null&&i!==null?UA(e,i):null},equals:function(B,A){return XA(B,A),this.s*this.n*AA.d==AA.s*AA.n*this.d},lt:function(B,A){return XA(B,A),this.s*this.n*AA.d<AA.s*AA.n*this.d},lte:function(B,A){return XA(B,A),this.s*this.n*AA.d<=AA.s*AA.n*this.d},gt:function(B,A){return XA(B,A),this.s*this.n*AA.d>AA.s*AA.n*this.d},gte:function(B,A){return XA(B,A),this.s*this.n*AA.d>=AA.s*AA.n*this.d},compare:function(B,A){XA(B,A);let g=this.s*this.n*AA.d-AA.s*AA.n*this.d;return(eA<g)-(g<eA)},ceil:function(B){return B=Eg**BigInt(B||0),UA(yg(this.s*B*this.n/this.d)+(B*this.n%this.d>eA&&this.s>=eA?rA:eA),B)},floor:function(B){return B=Eg**BigInt(B||0),UA(yg(this.s*B*this.n/this.d)-(B*this.n%this.d>eA&&this.s<eA?rA:eA),B)},round:function(B){return B=Eg**BigInt(B||0),UA(yg(this.s*B*this.n/this.d)+this.s*((this.s>=eA?rA:eA)+JI*(B*this.n%this.d)>this.d?rA:eA),B)},roundTo:function(B,A){XA(B,A);const g=this.n*AA.d,I=this.d*AA.n,Q=g%I;let C=yg(g/I);return Q+Q>=I&&C++,UA(this.s*C*AA.n,AA.d)},divisible:function(B,A){return XA(B,A),!(!(AA.n*this.d)||this.n*AA.d%(AA.n*this.d))},valueOf:function(){return Number(this.s*this.n)/Number(this.d)},toString:function(B){let A=this.n,g=this.d;B=B||15;let I=function(a,e){for(;e%JI===eA;e/=JI);for(;e%rQ===eA;e/=rQ);if(e===rA)return eA;let i=Eg%e,t=1;for(;i!==rA;t++)if(i=i*Eg%e,t>2e3)return eA;return BigInt(t)}(0,g),Q=nt(0,g,I),C=this.s<eA?"-":"";if(C+=yg(A/g),A%=g,A*=Eg,A&&(C+="."),I){for(let a=Q;a--;)C+=yg(A/g),A%=g,A*=Eg;C+="(";for(let a=I;a--;)C+=yg(A/g),A%=g,A*=Eg;C+=")"}else for(let a=B;A&&a--;)C+=yg(A/g),A%=g,A*=Eg;return C},toFraction:function(B){let A=this.n,g=this.d,I=this.s<eA?"-":"";if(g===rA)I+=A;else{let Q=yg(A/g);B&&Q>eA&&(I+=Q,I+=" ",A%=g),I+=A,I+="/",I+=g}return I},toLatex:function(B){let A=this.n,g=this.d,I=this.s<eA?"-":"";if(g===rA)I+=A;else{let Q=yg(A/g);B&&Q>eA&&(I+=Q,A%=g),I+="\\frac{",I+=A,I+="}{",I+=g,I+="}"}return I},toContinued:function(){let B=this.n,A=this.d,g=[];do{g.push(yg(B/A));let I=B%A;B=A,A=I}while(B!==rA);return g},simplify:function(B){const A=BigInt(1/(B||.001)|0),g=this.abs(),I=g.toContinued();for(let Q=1;Q<I.length;Q++){let C=UA(I[Q-1],rA);for(let e=Q-2;e>=0;e--)C=C.inverse().add(I[e]);let a=C.sub(g);if(a.n*A<a.d)return C.mul(this.s)}return this}};var rt=wA("Fraction",[],()=>(Object.defineProperty(wg,"name",{value:"Fraction"}),wg.prototype.constructor=wg,wg.prototype.type="Fraction",wg.prototype.isFraction=!0,wg.prototype.toJSON=function(){return{mathjs:"Fraction",n:String(this.s*this.n),d:String(this.d)}},wg.fromJSON=function(B){return new wg(B)},wg),{isClass:!0}),st=wA("Matrix",[],()=>{function B(){if(!(this instanceof B))throw new SyntaxError("Constructor must be called with the new operator")}return B.prototype.type="Matrix",B.prototype.isMatrix=!0,B.prototype.storage=function(){throw new Error("Cannot invoke storage on a Matrix interface")},B.prototype.datatype=function(){throw new Error("Cannot invoke datatype on a Matrix interface")},B.prototype.create=function(A,g){throw new Error("Cannot invoke create on a Matrix interface")},B.prototype.subset=function(A,g,I){throw new Error("Cannot invoke subset on a Matrix interface")},B.prototype.get=function(A){throw new Error("Cannot invoke get on a Matrix interface")},B.prototype.set=function(A,g,I){throw new Error("Cannot invoke set on a Matrix interface")},B.prototype.resize=function(A,g){throw new Error("Cannot invoke resize on a Matrix interface")},B.prototype.reshape=function(A,g){throw new Error("Cannot invoke reshape on a Matrix interface")},B.prototype.clone=function(){throw new Error("Cannot invoke clone on a Matrix interface")},B.prototype.size=function(){throw new Error("Cannot invoke size on a Matrix interface")},B.prototype.map=function(A,g){throw new Error("Cannot invoke map on a Matrix interface")},B.prototype.forEach=function(A){throw new Error("Cannot invoke forEach on a Matrix interface")},B.prototype[Symbol.iterator]=function(){throw new Error("Cannot iterate a Matrix interface")},B.prototype.toArray=function(){throw new Error("Cannot invoke toArray on a Matrix interface")},B.prototype.valueOf=function(){throw new Error("Cannot invoke valueOf on a Matrix interface")},B.prototype.format=function(A){throw new Error("Cannot invoke format on a Matrix interface")},B.prototype.toString=function(){throw new Error("Cannot invoke toString on a Matrix interface")},B},{isClass:!0});function cQ(B,A,g){var I=new B.constructor(2),Q="";if(g){if(g<1)throw new Error("size must be in greater than 0");if(!LA(g))throw new Error("size must be an integer");if(B.greaterThan(I.pow(g-1).sub(1))||B.lessThan(I.pow(g-1).mul(-1)))throw new Error("Value must be in range [-2^".concat(g-1,", 2^").concat(g-1,"-1]"));if(!B.isInteger())throw new Error("Value must be an integer");B.lessThan(0)&&(B=B.add(I.pow(g))),Q="i".concat(g)}switch(A){case 2:return"".concat(B.toBinary()).concat(Q);case 8:return"".concat(B.toOctal()).concat(Q);case 16:return"".concat(B.toHexadecimal()).concat(Q);default:throw new Error("Base ".concat(A," not supported "))}}function ct(B,A){if(typeof A=="function")return A(B);if(!B.isFinite())return B.isNaN()?"NaN":B.gt(0)?"Infinity":"-Infinity";var{notation:g,precision:I,wordSize:Q}=ia(A);switch(g){case"fixed":return function(t,E){return t.toFixed(E)}(B,I);case"exponential":return Ga(B,I);case"engineering":return function(t,E){var o=t.e,r=o%3==0?o:o<0?o-3-o%3:o-o%3,n=t.mul(Math.pow(10,-r)),s=n.toPrecision(E);return s.includes("e")&&(s=new t.constructor(s).toFixed()),s+"e"+(o>=0?"+":"")+r.toString()}(B,I);case"bin":return cQ(B,2,Q);case"oct":return cQ(B,8,Q);case"hex":return cQ(B,16,Q);case"auto":var C=Ra(A?.lowerExp,-3),a=Ra(A?.upperExp,5);if(B.isZero())return"0";var e=B.toSignificantDigits(I),i=e.e;return(i>=C&&i<a?e.toFixed():Ga(B,I)).replace(/((\.\d*?)(0+))($|e)/,function(){var t=arguments[2],E=arguments[4];return t!=="."?t+E:E});default:throw new Error('Unknown notation "'+g+'". Choose "auto", "exponential", "fixed", "bin", "oct", or "hex.')}}function Ga(B,A){return A!==void 0?B.toExponential(A-1):B.toExponential()}function Ra(B,A){return NA(B)?B:qA(B)?B.toNumber():A}function TA(B,A){var g=function(I,Q){return typeof I=="number"?CQ(I,Q):qA(I)?ct(I,Q):function(C){return C&&typeof C=="object"&&typeof C.s=="bigint"&&typeof C.n=="bigint"&&typeof C.d=="bigint"||!1}(I)?Q&&Q.fraction==="decimal"?I.toString():"".concat(I.s*I.n,"/").concat(I.d):Array.isArray(I)?Na(I,Q):Gg(I)?ka(I):typeof I=="function"?I.syntax?String(I.syntax):"function":I&&typeof I=="object"?typeof I.format=="function"?I.format(Q):I&&I.toString(Q)!=={}.toString()?I.toString(Q):"{"+Object.keys(I).map(C=>ka(C)+": "+TA(I[C],Q)).join(", ")+"}":String(I)}(B,A);return A&&typeof A=="object"&&"truncate"in A&&g.length>A.truncate?g.substring(0,A.truncate-3)+"...":g}function ka(B){for(var A=String(B),g="",I=0;I<A.length;){var Q=A.charAt(I);g+=Q in ma?ma[Q]:Q,I++}return'"'+g+'"'}var ma={'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t"};function Na(B,A){if(Array.isArray(B)){for(var g="[",I=B.length,Q=0;Q<I;Q++)Q!==0&&(g+=", "),g+=Na(B[Q],A);return g+="]"}return TA(B,A)}function SA(B,A,g){if(!(this instanceof SA))throw new SyntaxError("Constructor must be called with the new operator");this.actual=B,this.expected=A,this.relation=g,this.message="Dimension mismatch ("+(Array.isArray(B)?"["+B.join(", ")+"]":B)+" "+(this.relation||"!=")+" "+(Array.isArray(A)?"["+A.join(", ")+"]":A)+")",this.stack=new Error().stack}function FI(B,A,g){if(!(this instanceof FI))throw new SyntaxError("Constructor must be called with the new operator");this.index=B,arguments.length<3?(this.min=0,this.max=A):(this.min=A,this.max=g),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}function Bg(B){for(var A=[];Array.isArray(B);)A.push(B.length),B=B[0];return A}function Ua(B,A,g){var I,Q=B.length;if(Q!==A[g])throw new SA(Q,A[g]);if(g<A.length-1){var C=g+1;for(I=0;I<Q;I++){var a=B[I];if(!Array.isArray(a))throw new SA(A.length-1,A.length,"<");Ua(B[I],A,C)}}else for(I=0;I<Q;I++)if(Array.isArray(B[I]))throw new SA(A.length+1,A.length,">")}function Sa(B,A){if(A.length===0){if(Array.isArray(B))throw new SA(B.length,0)}else Ua(B,A,0)}function YA(B,A){if(B!==void 0){if(!NA(B)||!LA(B))throw new TypeError("Index must be an integer (value: "+B+")");if(B<0||typeof A=="number"&&B>=A)throw new FI(B,A)}}function hQ(B,A,g){if(!Array.isArray(A))throw new TypeError("Array expected");if(A.length===0)throw new Error("Resizing to scalar is not supported");return A.forEach(function(I){if(!NA(I)||!LA(I)||I<0)throw new TypeError("Invalid size, must contain positive integers (size: "+TA(A)+")")}),(NA(B)||qA(B))&&(B=[B]),dQ(B,A,0,g!==void 0?g:0),B}function dQ(B,A,g,I){var Q,C,a=B.length,e=A[g],i=Math.min(a,e);if(B.length=e,g<A.length-1){var t=g+1;for(Q=0;Q<i;Q++)C=B[Q],Array.isArray(C)||(C=[C],B[Q]=C),dQ(C,A,t,I);for(Q=i;Q<e;Q++)C=[],B[Q]=C,dQ(C,A,t,I)}else{for(Q=0;Q<i;Q++)for(;Array.isArray(B[Q]);)B[Q]=B[Q][0];for(Q=i;Q<e;Q++)B[Q]=I}}function La(B,A){var g=function(C){var a=arguments.length>1&&arguments[1]!==void 0&&arguments[1];if(!Array.isArray(C))return C;if(typeof a!="boolean")throw new TypeError("Boolean expected for second argument of flatten");var e=[];return a?t(C):i(C),e;function i(E){for(var o=0;o<E.length;o++){var r=E[o];Array.isArray(r)?i(r):e.push(r)}}function t(E){if(Array.isArray(E[0]))for(var o=0;o<E.length;o++)t(E[o]);else for(var r=0;r<E.length;r++)e.push(E[r])}}(B,!0),I=g.length;if(!Array.isArray(B)||!Array.isArray(A))throw new TypeError("Array expected");if(A.length===0)throw new SA(0,I,"!=");var Q=Ja(A=DQ(A,I));if(I!==Q)throw new SA(Q,I,"!=");try{return function(C,a){for(var e,i=C,t=a.length-1;t>0;t--){var E=a[t];e=[];for(var o=i.length/E,r=0;r<o;r++)e.push(i.slice(r*E,(r+1)*E));i=e}return i}(g,A)}catch(C){throw C instanceof SA?new SA(Q,I,"!="):C}}function DQ(B,A){var g=Ja(B),I=B.slice(),Q=B.indexOf(-1);if(B.indexOf(-1,Q+1)>=0)throw new Error("More than one wildcard in sizes");if(Q>=0){if(A%g!=0)throw new Error("Could not replace wildcard, since "+A+" is no multiple of "+-g);I[Q]=-A/g}return I}function Ja(B){return B.reduce((A,g)=>A*g,1)}function xa(B,A,g,I){var Q=I||Bg(B);if(g)for(var C=0;C<g;C++)B=[B],Q.unshift(1);for(B=Ya(B,A,0);Q.length<A;)Q.push(1);return B}function Ya(B,A,g){var I,Q;if(Array.isArray(B)){var C=g+1;for(I=0,Q=B.length;I<Q;I++)B[I]=Ya(B[I],A,C)}else for(var a=g;a<A;a++)B=[B];return B}function lQ(B,A){for(var g,I=0,Q=0;Q<B.length;Q++){var C=B[Q],a=Array.isArray(C);if(Q===0&&a&&(I=C.length),a&&C.length!==I)return;var e=a?lQ(C,A):A(C);if(g===void 0)g=e;else if(g!==e)return"mixed"}return g}function Ha(B,A,g,I){if(I<g){if(B.length!==A.length)throw new SA(B.length,A.length);for(var Q=[],C=0;C<B.length;C++)Q[C]=Ha(B[C],A[C],g,I+1);return Q}return B.concat(A)}function ht(){var B=Array.prototype.slice.call(arguments,0,-1),A=Array.prototype.slice.call(arguments,-1);if(B.length===1)return B[0];if(B.length>1)return B.slice(1).reduce(function(g,I){return Ha(g,I,A,0)},B[0]);throw new Error("Wrong number of arguments in function concat")}function Ka(B,A){for(var g=A.length,I=B.length,Q=0;Q<I;Q++){var C=g-I+Q;if(B[Q]<A[C]&&B[Q]>1||B[Q]>A[C])throw new Error("shape mismatch: mismatch is found in arg with shape (".concat(B,") not possible to broadcast dimension ").concat(I," with size ").concat(B[Q]," to size ").concat(A[C]))}}function ja(B,A){var g=Bg(B);if(dI(g,A))return B;Ka(g,A);var I,Q,C,a=function(){for(var o=arguments.length,r=new Array(o),n=0;n<o;n++)r[n]=arguments[n];for(var s=r.map(k=>k.length),c=Math.max(...s),d=new Array(c).fill(null),D=0;D<r.length;D++)for(var h=r[D],u=s[D],f=0;f<u;f++){var R=c-u+f;h[f]>d[R]&&(d[R]=h[f])}for(var G=0;G<r.length;G++)Ka(r[G],d);return d}(g,A),e=a.length,i=[...Array(e-g.length).fill(1),...g],t=function(o){return _I([],o)}(B);g.length<e&&(g=Bg(t=La(t,i)));for(var E=0;E<e;E++)g[E]<a[E]&&(I=t,Q=a[E],C=E,g=Bg(t=ht(...Array(Q).fill(I),C)));return t}function va(B,A){if(!Array.isArray(B))throw new Error("Array expected");var g=Bg(B);if(A.length!==g.length)throw new SA(A.length,g.length);for(var I=0;I<A.length;I++)YA(A[I],g[I]);return A.reduce((Q,C)=>Q[C],B)}function qa(B,A){var g=arguments.length>2&&arguments[2]!==void 0&&arguments[2];if(B.length===0)return[];if(g)return function Q(C){if(Array.isArray(C)){for(var a=C.length,e=Array(a),i=0;i<a;i++)e[i]=Q(C[i]);return e}return A(C)}(B);var I=[];return function Q(C,a){if(Array.isArray(C)){for(var e=C.length,i=Array(e),t=0;t<e;t++)I[a]=t,i[t]=Q(C[t],a+1);return i}return A(C,I.slice(0,a),B)}(B,0)}function dB(B,A,g){var I=arguments.length>3&&arguments[3]!==void 0&&arguments[3];if(IB.isTypedFunction(B)){var Q,C;if(I)Q=1;else{var a=(A.isMatrix?A.size():Bg(A)).map(()=>0),e=A.isMatrix?A.get(a):va(A,a);Q=function(t,E,o,r){for(var n=[E,o,r],s=3;s>0;s--){var c=n.slice(0,s);if(IB.resolve(t,c)!==null)return s}}(B,e,a,A)}if(A.isMatrix&&A.dataType!=="mixed"&&A.dataType!==void 0){var i=function(t,E){var o=[];if(Object.entries(t.signatures).forEach(r=>{var[n,s]=r;n.split(",").length===E&&o.push(s)}),o.length===1)return o[0]}(B,Q);C=i!==void 0?i:B}else C=B;return Q>=1&&Q<=3?{isUnary:Q===1,fn:function(){for(var t=arguments.length,E=new Array(t),o=0;o<t;o++)E[o]=arguments[o];return Ta(C,E.slice(0,Q),g,B.name)}}:{isUnary:!1,fn:function(){for(var t=arguments.length,E=new Array(t),o=0;o<t;o++)E[o]=arguments[o];return Ta(C,E,g,B.name)}}}return I===void 0?{isUnary:dt(B),fn:B}:{isUnary:I,fn:B}}function dt(B){if(B.length!==1)return!1;var A=B.toString();if(/arguments/.test(A))return!1;var g=A.match(/\(.*?\)/);return!/\.\.\./.test(g)}function Ta(B,A,g,I){try{return B(...A)}catch(Q){(function(C,a,e,i){var t;if(C instanceof TypeError&&((t=C.data)===null||t===void 0?void 0:t.category)==="wrongType"){var E=[];throw E.push("value: ".concat(jg(a[0]))),a.length>=2&&E.push("index: ".concat(jg(a[1]))),a.length>=3&&E.push("array: ".concat(jg(a[2]))),new TypeError("Function ".concat(e," cannot apply callback arguments ")+"".concat(i,"(").concat(E.join(", "),") at index ").concat(JSON.stringify(a[1])))}throw new TypeError("Function ".concat(e," cannot apply callback arguments ")+"to function ".concat(i,": ").concat(C.message))})(Q,A,g,I)}}SA.prototype=new RangeError,SA.prototype.constructor=RangeError,SA.prototype.name="DimensionError",SA.prototype.isDimensionError=!0,FI.prototype=new RangeError,FI.prototype.constructor=RangeError,FI.prototype.name="IndexError",FI.prototype.isIndexError=!0;var Dt=wA("DenseMatrix",["Matrix"],B=>{var{Matrix:A}=B;function g(a,e){if(!(this instanceof g))throw new SyntaxError("Constructor must be called with the new operator");if(e&&!Gg(e))throw new Error("Invalid datatype: "+e);if(KA(a))a.type==="DenseMatrix"?(this._data=jA(a._data),this._size=jA(a._size),this._datatype=e||a._datatype):(this._data=a.toArray(),this._size=a.size(),this._datatype=e||a._datatype);else if(a&&PA(a.data)&&PA(a.size))this._data=a.data,this._size=a.size,Sa(this._data,this._size),this._datatype=e||a.datatype;else if(PA(a))this._data=C(a),this._size=Bg(this._data),Sa(this._data,this._size),this._datatype=e;else{if(a)throw new TypeError("Unsupported type of data ("+jg(a)+")");this._data=[],this._size=[0],this._datatype=e}}function I(a,e,i){if(e.length===0){for(var t=a._data;PA(t);)t=t[0];return t}return a._size=e.slice(0),a._data=hQ(a._data,a._size,i),a}function Q(a,e,i){for(var t=a._size.slice(0),E=!1;t.length<e.length;)t.push(0),E=!0;for(var o=0,r=e.length;o<r;o++)e[o]>t[o]&&(t[o]=e[o],E=!0);E&&I(a,t,i)}function C(a){return KA(a)?C(a.valueOf()):PA(a)?a.map(C):a}return g.prototype=new A,g.prototype.createDenseMatrix=function(a,e){return new g(a,e)},Object.defineProperty(g,"name",{value:"DenseMatrix"}),g.prototype.constructor=g,g.prototype.type="DenseMatrix",g.prototype.isDenseMatrix=!0,g.prototype.getDataType=function(){return lQ(this._data,jg)},g.prototype.storage=function(){return"dense"},g.prototype.datatype=function(){return this._datatype},g.prototype.create=function(a,e){return new g(a,e)},g.prototype.subset=function(a,e,i){switch(arguments.length){case 1:return function(t,E){if(!IQ(E))throw new TypeError("Invalid index");var o=E.isScalar();if(o)return t.get(E.min());var r=E.size();if(r.length!==t._size.length)throw new SA(r.length,t._size.length);for(var n=E.min(),s=E.max(),c=0,d=t._size.length;c<d;c++)YA(n[c],t._size[c]),YA(s[c],t._size[c]);var D=new g([]),h=function(u,f){var R=f.size().length-1,G=Array(R);return{data:k(u),size:G};function k(F){var m=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,N=f.dimension(m);return G[m]=N.size()[0],m<R?N.map(S=>(YA(S,F.length),k(F[S],m+1))).valueOf():N.map(S=>(YA(S,F.length),F[S])).valueOf()}}(t._data,E);return D._size=h.size,D._datatype=t._datatype,D._data=h.data,D}(this,a);case 2:case 3:return function(t,E,o,r){if(!E||E.isIndex!==!0)throw new TypeError("Invalid index");var n,s=E.size(),c=E.isScalar();if(KA(o)?(n=o.size(),o=o.valueOf()):n=Bg(o),c){if(n.length!==0)throw new TypeError("Scalar expected");t.set(E.min(),o,r)}else{if(!dI(n,s))try{n=Bg(o=n.length===0?ja([o],s):ja(o,s))}catch{}if(s.length<t._size.length)throw new SA(s.length,t._size.length,"<");if(n.length<s.length){for(var d=0,D=0;s[d]===1&&n[d]===1;)d++;for(;s[d]===1;)D++,d++;o=xa(o,s.length,D,n)}if(!dI(s,n))throw new SA(s,n,">");var h=E.max().map(function(u){return u+1});Q(t,h,r),function(u,f,R){var G=f.size().length-1;function k(F,m){var N=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,S=f.dimension(N);N<G?S.forEach((j,z)=>{YA(j,F.length),k(F[j],m[z[0]],N+1)}):S.forEach((j,z)=>{YA(j,F.length),F[j]=m[z[0]]})}k(u,R)}(t._data,E,o)}return t}(this,a,e,i);default:throw new SyntaxError("Wrong number of arguments")}},g.prototype.get=function(a){return va(this._data,a)},g.prototype.set=function(a,e,i){if(!PA(a))throw new TypeError("Array expected");if(a.length<this._size.length)throw new SA(a.length,this._size.length,"<");var t,E,o,r=a.map(function(s){return s+1});Q(this,r,i);var n=this._data;for(t=0,E=a.length-1;t<E;t++)YA(o=a[t],n.length),n=n[o];return YA(o=a[a.length-1],n.length),n[o]=e,this},g.prototype.resize=function(a,e,i){if(!AB(a))throw new TypeError("Array or Matrix expected");var t=a.valueOf().map(E=>Array.isArray(E)&&E.length===1?E[0]:E);return I(i?this.clone():this,t,e)},g.prototype.reshape=function(a,e){var i=e?this.clone():this;i._data=La(i._data,a);var t=i._size.reduce((E,o)=>E*o);return i._size=DQ(a,t),i},g.prototype.clone=function(){return new g({data:jA(this._data),size:jA(this._size),datatype:this._datatype})},g.prototype.size=function(){return this._size.slice(0)},g.prototype.map=function(a){var e=arguments.length>2&&arguments[2]!==void 0&&arguments[2],i=this,t=i._size.length-1;if(t<0)return i.clone();var E=dB(a,i,"map",e),o=E.fn,r=i.create(void 0,i._datatype);if(r._size=i._size,e||E.isUnary)return r._data=function D(h){var u=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,f=Array(h.length);if(u<t)for(var R=0;R<h.length;R++)f[R]=D(h[R],u+1);else for(var G=0;G<h.length;G++)f[G]=o(h[G]);return f}(i._data),r;if(t===0){for(var n=i.valueOf(),s=Array(n.length),c=0;c<n.length;c++)s[c]=o(n[c],[c],i);return r._data=s,r}var d=[];return r._data=function D(h){var u=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,f=Array(h.length);if(u<t)for(var R=0;R<h.length;R++)d[u]=R,f[R]=D(h[R],u+1);else for(var G=0;G<h.length;G++)d[u]=G,f[G]=o(h[G],d.slice(),i);return f}(i._data),r},g.prototype.forEach=function(a){var e=arguments.length>2&&arguments[2]!==void 0&&arguments[2],i=this,t=i._size.length-1;if(!(t<0)){var E=dB(a,i,"map",e),o=E.fn;if(e||E.isUnary)(function s(c){var d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(d<t)for(var D=0;D<c.length;D++)s(c[D],d+1);else for(var h=0;h<c.length;h++)o(c[h])})(i._data);else if(t!==0){var r=[];(function s(c){var d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(d<t)for(var D=0;D<c.length;D++)r[d]=D,s(c[D],d+1);else for(var h=0;h<c.length;h++)r[d]=h,o(c[h],r.slice(),i)})(i._data)}else for(var n=0;n<i._data.length;n++)o(i._data[n],[n],i)}},g.prototype[Symbol.iterator]=function*(){var a=this._size.length-1;if(!(a<0))if(a!==0)for(var e=Array(a+1).fill(0),i=this._size.reduce((s,c)=>s*c,1),t=0;t<i;t++){for(var E=this._data,o=0;o<a;o++)E=E[e[o]];yield{value:E[e[a]],index:e.slice()};for(var r=a;r>=0&&(e[r]++,!(e[r]<this._size[r]));r--)e[r]=0}else for(var n=0;n<this._data.length;n++)yield{value:this._data[n],index:[n]}},g.prototype.rows=function(){var a=[];if(this.size().length!==2)throw new TypeError("Rows can only be returned for a 2D matrix.");var e=this._data;for(var i of e)a.push(new g([i],this._datatype));return a},g.prototype.columns=function(){var a=this,e=[],i=this.size();if(i.length!==2)throw new TypeError("Rows can only be returned for a 2D matrix.");for(var t=this._data,E=function(r){var n=t.map(s=>[s[r]]);e.push(new g(n,a._datatype))},o=0;o<i[1];o++)E(o);return e},g.prototype.toArray=function(){return jA(this._data)},g.prototype.valueOf=function(){return this._data},g.prototype.format=function(a){return TA(this._data,a)},g.prototype.toString=function(){return TA(this._data)},g.prototype.toJSON=function(){return{mathjs:"DenseMatrix",data:this._data,size:this._size,datatype:this._datatype}},g.prototype.diagonal=function(a){if(a){if(qA(a)&&(a=a.toNumber()),!NA(a)||!LA(a))throw new TypeError("The parameter k must be an integer number")}else a=0;for(var e=a>0?a:0,i=a<0?-a:0,t=this._size[0],E=this._size[1],o=Math.min(t-i,E-e),r=[],n=0;n<o;n++)r[n]=this._data[n+i][n+e];return new g({data:r,size:[o],datatype:this._datatype})},g.diagonal=function(a,e,i,t){if(!PA(a))throw new TypeError("Array expected, size parameter");if(a.length!==2)throw new Error("Only two dimensions matrix are supported");if(a=a.map(function(u){if(qA(u)&&(u=u.toNumber()),!NA(u)||!LA(u)||u<1)throw new Error("Size values must be positive integers");return u}),i){if(qA(i)&&(i=i.toNumber()),!NA(i)||!LA(i))throw new TypeError("The parameter k must be an integer number")}else i=0;var E,o=i>0?i:0,r=i<0?-i:0,n=a[0],s=a[1],c=Math.min(n-r,s-o);if(PA(e)){if(e.length!==c)throw new Error("Invalid value array length");E=function(u){return e[u]}}else if(KA(e)){var d=e.size();if(d.length!==1||d[0]!==c)throw new Error("Invalid matrix length");E=function(u){return e.get([u])}}else E=function(){return e};t||(t=qA(E(0))?E(0).mul(0):0);var D=[];if(a.length>0){D=hQ(D,a,t);for(var h=0;h<c;h++)D[h+r][h+o]=E(h)}return new g({data:D,size:[n,s]})},g.fromJSON=function(a){return new g(a)},g.prototype.swapRows=function(a,e){if(!(NA(a)&&LA(a)&&NA(e)&&LA(e)))throw new Error("Row index must be positive integers");if(this._size.length!==2)throw new Error("Only two dimensional matrix is supported");return YA(a,this._size[0]),YA(e,this._size[0]),g._swapRows(a,e,this._data),this},g._swapRows=function(a,e,i){var t=i[a];i[a]=i[e],i[e]=t},g},{isClass:!0});function eI(B,A,g){if(!g)return KA(B)?B.map(Q=>A(Q),!1,!0):qa(B,A,!0);var I=Q=>Q===0?Q:A(Q);return KA(B)?B.map(Q=>I(Q),!1,!0):qa(B,I,!0)}var Oa="number",DB="number, number";function Wa(B){return Math.abs(B)}function Pa(B,A){return B+A}function Va(B,A){return B-A}function za(B,A){return B*A}function Xa(B){return-B}function Za(B,A){return B*B<1&&A===1/0||B*B>1&&A===-1/0?0:Math.pow(B,A)}function uQ(B,A){if(A<B)return 1;if(A===B)return A;var g=A+B>>1;return uQ(B,g)*uQ(g+1,A)}function lB(B){var A;if(LA(B))return B<=0?isFinite(B)?1/0:NaN:B>171?1/0:uQ(1,B-1);if(B<.5)return Math.PI/(Math.sin(Math.PI*B)*lB(1-B));if(B>=171.35)return 1/0;if(B>85){var g=B*B,I=g*B,Q=I*B,C=Q*B;return Math.sqrt(2*Math.PI/B)*Math.pow(B/Math.E,B)*(1+1/(12*B)+1/(288*g)-139/(51840*I)-571/(2488320*Q)+163879/(209018880*C)+5246819/(75246796800*C*B))}--B,A=pI[0];for(var a=1;a<pI.length;++a)A+=pI[a]/(B+a);var e=B+_a+.5;return Math.sqrt(2*Math.PI)*Math.pow(e,B+.5)*Math.exp(-e)*A}Wa.signature=Oa,Pa.signature=DB,Va.signature=DB,za.signature=DB,Xa.signature=Oa,Za.signature=DB,lB.signature="number";var _a=4.7421875,pI=[.9999999999999971,57.15623566586292,-59.59796035547549,14.136097974741746,-.4919138160976202,3399464998481189e-20,4652362892704858e-20,-9837447530487956e-20,.0001580887032249125,-.00021026444172410488,.00021743961811521265,-.0001643181065367639,8441822398385275e-20,-26190838401581408e-21,36899182659531625e-22],$a="isZero",lt=wA($a,["typed","equalScalar"],B=>{var{typed:A,equalScalar:g}=B;return A($a,{"number | BigNumber | Complex | Fraction":I=>g(I,0),bigint:I=>I===0n,Unit:A.referToSelf(I=>Q=>A.find(I,Q.valueType())(Q.value)),"Array | Matrix":A.referToSelf(I=>Q=>eI(Q,I))})}),ut=wA("compareUnits",["typed"],B=>{var{typed:A}=B;return{"Unit, Unit":A.referToSelf(g=>(I,Q)=>{if(!I.equalBase(Q))throw new Error("Cannot compare units with different base");return A.find(g,[I.valueType(),Q.valueType()])(I.value,Q.value)})}}),uB="equalScalar",bt=wA(uB,["typed","config"],B=>{var{typed:A,config:g}=B,I=ut({typed:A});return A(uB,{"boolean, boolean":function(Q,C){return Q===C},"number, number":function(Q,C){return CB(Q,C,g.relTol,g.absTol)},"BigNumber, BigNumber":function(Q,C){return Q.eq(C)||function(a,e){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1e-9,t=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;if(i<=0)throw new Error("Relative tolerance must be greater than 0");if(t<0)throw new Error("Absolute tolerance must be at least 0");return!a.isNaN()&&!e.isNaN()&&(a.isFinite()&&e.isFinite()?!!a.eq(e)||a.minus(e).abs().lte(a.constructor.max(a.constructor.max(a.abs(),e.abs()).mul(i),t)):a.eq(e))}(Q,C,g.relTol,g.absTol)},"bigint, bigint":function(Q,C){return Q===C},"Fraction, Fraction":function(Q,C){return Q.equals(C)},"Complex, Complex":function(Q,C){return function(a,e,i,t){return CB(a.re,e.re,i,t)&&CB(a.im,e.im,i,t)}(Q,C,g.relTol,g.absTol)}},I)});wA(uB,["typed","config"],B=>{var{typed:A,config:g}=B;return A(uB,{"number, number":function(I,Q){return CB(I,Q,g.relTol,g.absTol)}})});var wt=wA("SparseMatrix",["typed","equalScalar","Matrix"],B=>{var{typed:A,equalScalar:g,Matrix:I}=B;function Q(E,o){if(!(this instanceof Q))throw new SyntaxError("Constructor must be called with the new operator");if(o&&!Gg(o))throw new Error("Invalid datatype: "+o);if(KA(E))(function(r,n,s){n.type==="SparseMatrix"?(r._values=n._values?jA(n._values):void 0,r._index=jA(n._index),r._ptr=jA(n._ptr),r._size=jA(n._size),r._datatype=s||n._datatype):C(r,n.valueOf(),s||n._datatype)})(this,E,o);else if(E&&PA(E.index)&&PA(E.ptr)&&PA(E.size))this._values=E.values,this._index=E.index,this._ptr=E.ptr,this._size=E.size,this._datatype=o||E.datatype;else if(PA(E))C(this,E,o);else{if(E)throw new TypeError("Unsupported type of data ("+jg(E)+")");this._values=[],this._index=[],this._ptr=[0],this._size=[0,0],this._datatype=o}}function C(E,o,r){E._values=[],E._index=[],E._ptr=[],E._datatype=r;var n=o.length,s=0,c=g,d=0;if(Gg(r)&&(c=A.find(g,[r,r])||g,d=A.convert(0,r)),n>0){var D=0;do{E._ptr.push(E._index.length);for(var h=0;h<n;h++){var u=o[h];if(PA(u)){if(D===0&&s<u.length&&(s=u.length),D<u.length){var f=u[D];c(f,d)||(E._values.push(f),E._index.push(h))}}else D===0&&s<1&&(s=1),c(u,d)||(E._values.push(u),E._index.push(h))}D++}while(D<s)}E._ptr.push(E._index.length),E._size=[n,s]}function a(E,o,r,n){if(r-o==0)return r;for(var s=o;s<r;s++)if(n[s]===E)return s;return o}function e(E,o,r,n,s,c,d){s.splice(E,0,n),c.splice(E,0,o);for(var D=r+1;D<d.length;D++)d[D]++}function i(E,o,r,n){var s=n||0,c=g,d=0;Gg(E._datatype)&&(c=A.find(g,[E._datatype,E._datatype])||g,d=A.convert(0,E._datatype),s=A.convert(s,E._datatype));var D,h,u,f=!c(s,d),R=E._size[0],G=E._size[1];if(r>G){for(h=G;h<r;h++)if(E._ptr[h]=E._values.length,f)for(D=0;D<R;D++)E._values.push(s),E._index.push(D);E._ptr[r]=E._values.length}else r<G&&(E._ptr.splice(r+1,G-r),E._values.splice(E._ptr[r],E._values.length),E._index.splice(E._ptr[r],E._index.length));if(G=r,o>R){if(f){var k=0;for(h=0;h<G;h++){E._ptr[h]=E._ptr[h]+k,u=E._ptr[h+1]+k;var F=0;for(D=R;D<o;D++,F++)E._values.splice(u+F,0,s),E._index.splice(u+F,0,D),k++}E._ptr[G]=E._values.length}}else if(o<R){var m=0;for(h=0;h<G;h++){E._ptr[h]=E._ptr[h]-m;var N=E._ptr[h],S=E._ptr[h+1]-m;for(u=N;u<S;u++)(D=E._index[u])>o-1&&(E._values.splice(u,1),E._index.splice(u,1),m++)}E._ptr[h]=E._values.length}return E._size[0]=o,E._size[1]=r,E}function t(E,o,r,n,s){var c,d,D=n[0],h=n[1],u=[];for(c=0;c<D;c++)for(u[c]=[],d=0;d<h;d++)u[c][d]=0;for(d=0;d<h;d++)for(var f=r[d],R=r[d+1],G=f;G<R;G++)u[c=o[G]][d]=E?s?jA(E[G]):E[G]:1;return u}return Q.prototype=new I,Q.prototype.createSparseMatrix=function(E,o){return new Q(E,o)},Object.defineProperty(Q,"name",{value:"SparseMatrix"}),Q.prototype.constructor=Q,Q.prototype.type="SparseMatrix",Q.prototype.isSparseMatrix=!0,Q.prototype.getDataType=function(){return lQ(this._values,jg)},Q.prototype.storage=function(){return"sparse"},Q.prototype.datatype=function(){return this._datatype},Q.prototype.create=function(E,o){return new Q(E,o)},Q.prototype.density=function(){var E=this._size[0],o=this._size[1];return E!==0&&o!==0?this._index.length/(E*o):0},Q.prototype.subset=function(E,o,r){if(!this._values)throw new Error("Cannot invoke subset on a Pattern only matrix");switch(arguments.length){case 1:return function(n,s){if(!IQ(s))throw new TypeError("Invalid index");if(s.isScalar())return n.get(s.min());var c,d,D,h,u=s.size();if(u.length!==n._size.length)throw new SA(u.length,n._size.length);var f=s.min(),R=s.max();for(c=0,d=n._size.length;c<d;c++)YA(f[c],n._size[c]),YA(R[c],n._size[c]);var G=n._values,k=n._index,F=n._ptr,m=s.dimension(0),N=s.dimension(1),S=[],j=[];m.forEach(function(X,CA){j[X]=CA[0],S[X]=!0});var z=G?[]:void 0,$=[],_=[];return N.forEach(function(X){for(_.push($.length),D=F[X],h=F[X+1];D<h;D++)c=k[D],S[c]===!0&&($.push(j[c]),z&&z.push(G[D]))}),_.push($.length),new Q({values:z,index:$,ptr:_,size:u,datatype:n._datatype})}(this,E);case 2:case 3:return function(n,s,c,d){if(!s||s.isIndex!==!0)throw new TypeError("Invalid index");var D,h=s.size(),u=s.isScalar();if(KA(c)?(D=c.size(),c=c.toArray()):D=Bg(c),u){if(D.length!==0)throw new TypeError("Scalar expected");n.set(s.min(),c,d)}else{if(h.length!==1&&h.length!==2)throw new SA(h.length,n._size.length,"<");if(D.length<h.length){for(var f=0,R=0;h[f]===1&&D[f]===1;)f++;for(;h[f]===1;)R++,f++;c=xa(c,h.length,R,D)}if(!dI(h,D))throw new SA(h,D,">");if(h.length===1)s.dimension(0).forEach(function(F,m){YA(F),n.set([F,0],c[m[0]],d)});else{var G=s.dimension(0),k=s.dimension(1);G.forEach(function(F,m){YA(F),k.forEach(function(N,S){YA(N),n.set([F,N],c[m[0]][S[0]],d)})})}}return n}(this,E,o,r);default:throw new SyntaxError("Wrong number of arguments")}},Q.prototype.get=function(E){if(!PA(E))throw new TypeError("Array expected");if(E.length!==this._size.length)throw new SA(E.length,this._size.length);if(!this._values)throw new Error("Cannot invoke get on a Pattern only matrix");var o=E[0],r=E[1];YA(o,this._size[0]),YA(r,this._size[1]);var n=a(o,this._ptr[r],this._ptr[r+1],this._index);return n<this._ptr[r+1]&&this._index[n]===o?this._values[n]:0},Q.prototype.set=function(E,o,r){if(!PA(E))throw new TypeError("Array expected");if(E.length!==this._size.length)throw new SA(E.length,this._size.length);if(!this._values)throw new Error("Cannot invoke set on a Pattern only matrix");var n=E[0],s=E[1],c=this._size[0],d=this._size[1],D=g,h=0;Gg(this._datatype)&&(D=A.find(g,[this._datatype,this._datatype])||g,h=A.convert(0,this._datatype)),(n>c-1||s>d-1)&&(i(this,Math.max(n+1,c),Math.max(s+1,d),r),c=this._size[0],d=this._size[1]),YA(n,c),YA(s,d);var u=a(n,this._ptr[s],this._ptr[s+1],this._index);return u<this._ptr[s+1]&&this._index[u]===n?D(o,h)?function(f,R,G,k,F){G.splice(f,1),k.splice(f,1);for(var m=R+1;m<F.length;m++)F[m]--}(u,s,this._values,this._index,this._ptr):this._values[u]=o:D(o,h)||e(u,n,s,o,this._values,this._index,this._ptr),this},Q.prototype.resize=function(E,o,r){if(!AB(E))throw new TypeError("Array or Matrix expected");var n=E.valueOf().map(s=>Array.isArray(s)&&s.length===1?s[0]:s);if(n.length!==2)throw new Error("Only two dimensions matrix are supported");return n.forEach(function(s){if(!NA(s)||!LA(s)||s<0)throw new TypeError("Invalid size, must contain positive integers (size: "+TA(n)+")")}),i(r?this.clone():this,n[0],n[1],o)},Q.prototype.reshape=function(E,o){if(!PA(E))throw new TypeError("Array expected");if(E.length!==2)throw new Error("Sparse matrices can only be reshaped in two dimensions");E.forEach(function(j){if(!NA(j)||!LA(j)||j<=-2||j===0)throw new TypeError("Invalid size, must contain positive integers or -1 (size: "+TA(E)+")")});var r=this._size[0]*this._size[1];if(r!==(E=DQ(E,r))[0]*E[1])throw new Error("Reshaping sparse matrix will result in the wrong number of elements");var n=o?this.clone():this;if(this._size[0]===E[0]&&this._size[1]===E[1])return n;for(var s=[],c=0;c<n._ptr.length;c++)for(var d=0;d<n._ptr[c+1]-n._ptr[c];d++)s.push(c);for(var D=n._values.slice(),h=n._index.slice(),u=0;u<n._index.length;u++){var f=h[u],R=s[u],G=f*n._size[1]+R;s[u]=G%E[1],h[u]=Math.floor(G/E[1])}n._values.length=0,n._index.length=0,n._ptr.length=E[1]+1,n._size=E.slice();for(var k=0;k<n._ptr.length;k++)n._ptr[k]=0;for(var F=0;F<D.length;F++){var m=h[F],N=s[F],S=D[F];e(a(m,n._ptr[N],n._ptr[N+1],n._index),m,N,S,n._values,n._index,n._ptr)}return n},Q.prototype.clone=function(){return new Q({values:this._values?jA(this._values):void 0,index:jA(this._index),ptr:jA(this._ptr),size:jA(this._size),datatype:this._datatype})},Q.prototype.size=function(){return this._size.slice(0)},Q.prototype.map=function(E,o){if(!this._values)throw new Error("Cannot invoke map on a Pattern only matrix");var r=this,n=this._size[0],s=this._size[1],c=dB(E,r,"map");return function(d,D,h,u,f,R,G){var k=[],F=[],m=[],N=g,S=0;Gg(d._datatype)&&(N=A.find(g,[d._datatype,d._datatype])||g,S=A.convert(0,d._datatype));for(var j=function(bA,iA,yA){var EA=R(bA,iA,yA);N(EA,S)||(k.push(EA),F.push(iA))},z=u;z<=f;z++){m.push(k.length);var $=d._ptr[z],_=d._ptr[z+1];if(G)for(var X=$;X<_;X++){var CA=d._index[X];CA>=D&&CA<=h&&j(d._values[X],CA-D,z-u)}else{for(var sA={},oA=$;oA<_;oA++)sA[d._index[oA]]=d._values[oA];for(var fA=D;fA<=h;fA++)j(fA in sA?sA[fA]:0,fA-D,z-u)}}return m.push(k.length),new Q({values:k,index:F,ptr:m,size:[h-D+1,f-u+1]})}(this,0,n-1,0,s-1,function(d,D,h){return c.fn(d,[D,h],r)},o)},Q.prototype.forEach=function(E,o){if(!this._values)throw new Error("Cannot invoke forEach on a Pattern only matrix");for(var r=this,n=this._size[0],s=this._size[1],c=dB(E,r,"forEach"),d=0;d<s;d++){var D=this._ptr[d],h=this._ptr[d+1];if(o)for(var u=D;u<h;u++){var f=this._index[u];c.fn(this._values[u],[f,d],r)}else{for(var R={},G=D;G<h;G++)R[this._index[G]]=this._values[G];for(var k=0;k<n;k++){var F=k in R?R[k]:0;c.fn(F,[k,d],r)}}}},Q.prototype[Symbol.iterator]=function*(){if(!this._values)throw new Error("Cannot iterate a Pattern only matrix");for(var E=this._size[1],o=0;o<E;o++)for(var r=this._ptr[o],n=this._ptr[o+1],s=r;s<n;s++){var c=this._index[s];yield{value:this._values[s],index:[c,o]}}},Q.prototype.toArray=function(){return t(this._values,this._index,this._ptr,this._size,!0)},Q.prototype.valueOf=function(){return t(this._values,this._index,this._ptr,this._size,!1)},Q.prototype.format=function(E){for(var o=this._size[0],r=this._size[1],n=this.density(),s="Sparse Matrix ["+TA(o,E)+" x "+TA(r,E)+"] density: "+TA(n,E)+`
|
|
966
|
+
`,c=0;c<r;c++)for(var d=this._ptr[c],D=this._ptr[c+1],h=d;h<D;h++)s+=`
|
|
967
|
+
(`+TA(this._index[h],E)+", "+TA(c,E)+") ==> "+(this._values?TA(this._values[h],E):"X");return s},Q.prototype.toString=function(){return TA(this.toArray())},Q.prototype.toJSON=function(){return{mathjs:"SparseMatrix",values:this._values,index:this._index,ptr:this._ptr,size:this._size,datatype:this._datatype}},Q.prototype.diagonal=function(E){if(E){if(qA(E)&&(E=E.toNumber()),!NA(E)||!LA(E))throw new TypeError("The parameter k must be an integer number")}else E=0;var o=E>0?E:0,r=E<0?-E:0,n=this._size[0],s=this._size[1],c=Math.min(n-r,s-o),d=[],D=[],h=[];h[0]=0;for(var u=o;u<s&&d.length<c;u++)for(var f=this._ptr[u],R=this._ptr[u+1],G=f;G<R;G++){var k=this._index[G];if(k===u-o+r){d.push(this._values[G]),D[d.length-1]=k-r;break}}return h.push(d.length),new Q({values:d,index:D,ptr:h,size:[c,1]})},Q.fromJSON=function(E){return new Q(E)},Q.diagonal=function(E,o,r,n,s){if(!PA(E))throw new TypeError("Array expected, size parameter");if(E.length!==2)throw new Error("Only two dimensions matrix are supported");if(E=E.map(function($){if(qA($)&&($=$.toNumber()),!NA($)||!LA($)||$<1)throw new Error("Size values must be positive integers");return $}),r){if(qA(r)&&(r=r.toNumber()),!NA(r)||!LA(r))throw new TypeError("The parameter k must be an integer number")}else r=0;var c=g,d=0;Gg(s)&&(c=A.find(g,[s,s])||g,d=A.convert(0,s));var D,h=r>0?r:0,u=r<0?-r:0,f=E[0],R=E[1],G=Math.min(f-u,R-h);if(PA(o)){if(o.length!==G)throw new Error("Invalid value array length");D=function($){return o[$]}}else if(KA(o)){var k=o.size();if(k.length!==1||k[0]!==G)throw new Error("Invalid matrix length");D=function($){return o.get([$])}}else D=function(){return o};for(var F=[],m=[],N=[],S=0;S<R;S++){N.push(F.length);var j=S-h;if(j>=0&&j<G){var z=D(j);c(z,d)||(m.push(j+u),F.push(z))}}return N.push(F.length),new Q({values:F,index:m,ptr:N,size:[f,R]})},Q.prototype.swapRows=function(E,o){if(!(NA(E)&&LA(E)&&NA(o)&&LA(o)))throw new Error("Row index must be positive integers");if(this._size.length!==2)throw new Error("Only two dimensional matrix is supported");return YA(E,this._size[0]),YA(o,this._size[0]),Q._swapRows(E,o,this._size[1],this._values,this._index,this._ptr),this},Q._forEachRow=function(E,o,r,n,s){for(var c=n[E],d=n[E+1],D=c;D<d;D++)s(r[D],o[D])},Q._swapRows=function(E,o,r,n,s,c){for(var d=0;d<r;d++){var D=c[d],h=c[d+1],u=a(E,D,h,s),f=a(o,D,h,s);if(u<h&&f<h&&s[u]===E&&s[f]===o){if(n){var R=n[u];n[u]=n[f],n[f]=R}}else if(u<h&&s[u]===E&&(f>=h||s[f]!==o)){var G=n?n[u]:void 0;s.splice(f,0,o),n&&n.splice(f,0,G),s.splice(f<=u?u+1:u,1),n&&n.splice(f<=u?u+1:u,1)}else if(f<h&&s[f]===o&&(u>=h||s[u]!==E)){var k=n?n[f]:void 0;s.splice(u,0,E),n&&n.splice(u,0,k),s.splice(u<=f?f+1:f,1),n&&n.splice(u<=f?f+1:f,1)}}},Q},{isClass:!0}),ft=wA("number",["typed"],B=>{var{typed:A}=B,g=A("number",{"":function(){return 0},number:function(I){return I},string:function(I){if(I==="NaN")return NaN;var Q,C,a=(C=(Q=I).match(/(0[box])([0-9a-fA-F]*)\.([0-9a-fA-F]*)/))?{input:Q,radix:{"0b":2,"0o":8,"0x":16}[C[1]],integerPart:C[2],fractionalPart:C[3]}:null;if(a)return function(E){for(var o=parseInt(E.integerPart,E.radix),r=0,n=0;n<E.fractionalPart.length;n++)r+=parseInt(E.fractionalPart[n],E.radix)/Math.pow(E.radix,n+1);var s=o+r;if(isNaN(s))throw new SyntaxError('String "'+E.input+'" is not a valid number');return s}(a);var e=0,i=I.match(/(0[box][0-9a-fA-F]*)i([0-9]*)/);i&&(e=Number(i[2]),I=i[1]);var t=Number(I);if(isNaN(t))throw new SyntaxError('String "'+I+'" is not a valid number');if(i){if(t>2**e-1)throw new SyntaxError('String "'.concat(I,'" is out of range'));t>=2**(e-1)&&(t-=2**e)}return t},BigNumber:function(I){return I.toNumber()},bigint:function(I){return Number(I)},Fraction:function(I){return I.valueOf()},Unit:A.referToSelf(I=>Q=>{var C=Q.clone();return C.value=I(Q.value),C}),null:function(I){return 0},"Unit, string | Unit":function(I,Q){return I.toNumber(Q)},"Array | Matrix":A.referToSelf(I=>Q=>eI(Q,I))});return g.fromJSON=function(I){return parseFloat(I.value)},g}),yt=wA("bignumber",["typed","BigNumber"],B=>{var{typed:A,BigNumber:g}=B;return A("bignumber",{"":function(){return new g(0)},number:function(I){return new g(I+"")},string:function(I){var Q=I.match(/(0[box][0-9a-fA-F]*)i([0-9]*)/);if(Q){var C=Q[2],a=g(Q[1]),e=new g(2).pow(Number(C));if(a.gt(e.sub(1)))throw new SyntaxError('String "'.concat(I,'" is out of range'));var i=new g(2).pow(Number(C)-1);return a.gte(i)?a.sub(e):a}return new g(I)},BigNumber:function(I){return I},bigint:function(I){return new g(I.toString())},Unit:A.referToSelf(I=>Q=>{var C=Q.clone();return C.value=I(Q.value),C}),Fraction:function(I){return new g(String(I.n)).div(String(I.d)).times(String(I.s))},null:function(I){return new g(0)},"Array | Matrix":A.referToSelf(I=>Q=>eI(Q,I))})}),Ft=wA("fraction",["typed","Fraction"],B=>{var{typed:A,Fraction:g}=B;return A("fraction",{number:function(I){if(!isFinite(I)||isNaN(I))throw new Error(I+" cannot be represented as a fraction");return new g(I)},string:function(I){return new g(I)},"number, number":function(I,Q){return new g(I,Q)},"bigint, bigint":function(I,Q){return new g(I,Q)},null:function(I){return new g(0)},BigNumber:function(I){return new g(I.toString())},bigint:function(I){return new g(I.toString())},Fraction:function(I){return I},Unit:A.referToSelf(I=>Q=>{var C=Q.clone();return C.value=I(Q.value),C}),Object:function(I){return new g(I)},"Array | Matrix":A.referToSelf(I=>Q=>eI(Q,I))})}),Ae="matrix",pt=wA(Ae,["typed","Matrix","DenseMatrix","SparseMatrix"],B=>{var{typed:A,Matrix:g,DenseMatrix:I,SparseMatrix:Q}=B;return A(Ae,{"":function(){return C([])},string:function(a){return C([],a)},"string, string":function(a,e){return C([],a,e)},Array:function(a){return C(a)},Matrix:function(a){return C(a,a.storage())},"Array | Matrix, string":C,"Array | Matrix, string, string":C});function C(a,e,i){if(e==="dense"||e==="default"||e===void 0)return new I(a,i);if(e==="sparse")return new Q(a,i);throw new TypeError("Unknown matrix type "+JSON.stringify(e)+".")}}),ge="unaryMinus",Mt=wA(ge,["typed"],B=>{var{typed:A}=B;return A(ge,{number:Xa,"Complex | BigNumber | Fraction":g=>g.neg(),bigint:g=>-g,Unit:A.referToSelf(g=>I=>{var Q=I.clone();return Q.value=A.find(g,Q.valueType())(I.value),Q}),"Array | Matrix":A.referToSelf(g=>I=>eI(I,g,!0))})}),Gt=wA("abs",["typed"],B=>{var{typed:A}=B;return A("abs",{number:Wa,"Complex | BigNumber | Fraction | Unit":g=>g.abs(),bigint:g=>g<0n?-g:g,"Array | Matrix":A.referToSelf(g=>I=>eI(I,g,!0))})}),Ie="addScalar",Rt=wA(Ie,["typed"],B=>{var{typed:A}=B;return A(Ie,{"number, number":Pa,"Complex, Complex":function(g,I){return g.add(I)},"BigNumber, BigNumber":function(g,I){return g.plus(I)},"bigint, bigint":function(g,I){return g+I},"Fraction, Fraction":function(g,I){return g.add(I)},"Unit, Unit":A.referToSelf(g=>(I,Q)=>{if(I.value===null||I.value===void 0)throw new Error("Parameter x contains a unit with undefined value");if(Q.value===null||Q.value===void 0)throw new Error("Parameter y contains a unit with undefined value");if(!I.equalBase(Q))throw new Error("Units do not match");var C=I.clone();return C.value=A.find(g,[C.valueType(),Q.valueType()])(C.value,Q.value),C.fixPrefix=!1,C})})}),Be="subtractScalar",kt=wA(Be,["typed"],B=>{var{typed:A}=B;return A(Be,{"number, number":Va,"Complex, Complex":function(g,I){return g.sub(I)},"BigNumber, BigNumber":function(g,I){return g.minus(I)},"bigint, bigint":function(g,I){return g-I},"Fraction, Fraction":function(g,I){return g.sub(I)},"Unit, Unit":A.referToSelf(g=>(I,Q)=>{if(I.value===null||I.value===void 0)throw new Error("Parameter x contains a unit with undefined value");if(Q.value===null||Q.value===void 0)throw new Error("Parameter y contains a unit with undefined value");if(!I.equalBase(Q))throw new Error("Units do not match");var C=I.clone();return C.value=A.find(g,[C.valueType(),Q.valueType()])(C.value,Q.value),C.fixPrefix=!1,C})})}),mt=wA("matAlgo11xS0s",["typed","equalScalar"],B=>{var{typed:A,equalScalar:g}=B;return function(I,Q,C,a){var e=I._values,i=I._index,t=I._ptr,E=I._size,o=I._datatype;if(!e)throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");var r,n=E[0],s=E[1],c=g,d=0,D=C;typeof o=="string"&&(r=o,c=A.find(g,[r,r]),d=A.convert(0,r),Q=A.convert(Q,r),D=A.find(C,[r,r]));for(var h=[],u=[],f=[],R=0;R<s;R++){f[R]=u.length;for(var G=t[R],k=t[R+1],F=G;F<k;F++){var m=i[F],N=a?D(Q,e[F]):D(e[F],Q);c(N,d)||(u.push(m),h.push(N))}}return f[s]=u.length,I.createSparseMatrix({values:h,index:u,ptr:f,size:[n,s],datatype:r})}}),Nt=wA("matAlgo14xDs",["typed"],B=>{var{typed:A}=B;return function(I,Q,C,a){var e,i=I._data,t=I._size,E=I._datatype,o=C;typeof E=="string"&&(e=E,Q=A.convert(Q,e),o=A.find(C,[e,e]));var r=t.length>0?g(o,0,t,t[0],i,Q,a):[];return I.createDenseMatrix({data:r,size:jA(t),datatype:e})};function g(I,Q,C,a,e,i,t){var E=[];if(Q===C.length-1)for(var o=0;o<a;o++)E[o]=t?I(i,e[o]):I(e[o],i);else for(var r=0;r<a;r++)E[r]=g(I,Q+1,C,C[Q+1],e[r],i,t);return E}}),Ut=wA("multiplyScalar",["typed"],B=>{var{typed:A}=B;return A("multiplyScalar",{"number, number":za,"Complex, Complex":function(g,I){return g.mul(I)},"BigNumber, BigNumber":function(g,I){return g.times(I)},"bigint, bigint":function(g,I){return g*I},"Fraction, Fraction":function(g,I){return g.mul(I)},"number | Fraction | BigNumber | Complex, Unit":(g,I)=>I.multiply(g),"Unit, number | Fraction | BigNumber | Complex | Unit":(g,I)=>g.multiply(I)})}),Qe="multiply",St=wA(Qe,["typed","matrix","addScalar","multiplyScalar","equalScalar","dot"],B=>{var{typed:A,matrix:g,addScalar:I,multiplyScalar:Q,equalScalar:C,dot:a}=B,e=mt({typed:A,equalScalar:C}),i=Nt({typed:A});function t(n,s){switch(n.length){case 1:switch(s.length){case 1:if(n[0]!==s[0])throw new RangeError("Dimension mismatch in multiplication. Vectors must have the same length");break;case 2:if(n[0]!==s[0])throw new RangeError("Dimension mismatch in multiplication. Vector length ("+n[0]+") must match Matrix rows ("+s[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+s.length+" dimensions)")}break;case 2:switch(s.length){case 1:if(n[1]!==s[0])throw new RangeError("Dimension mismatch in multiplication. Matrix columns ("+n[1]+") must match Vector length ("+s[0]+")");break;case 2:if(n[1]!==s[0])throw new RangeError("Dimension mismatch in multiplication. Matrix A columns ("+n[1]+") must match Matrix B rows ("+s[0]+")");break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix B has "+s.length+" dimensions)")}break;default:throw new Error("Can only multiply a 1 or 2 dimensional matrix (Matrix A has "+n.length+" dimensions)")}}function E(n,s){if(s.storage()!=="dense")throw new Error("Support for SparseMatrix not implemented");return function(c,d){var D,h=c._data,u=c._size,f=c._datatype||c.getDataType(),R=d._data,G=d._size,k=d._datatype||d.getDataType(),F=u[0],m=G[1],N=I,S=Q;f&&k&&f===k&&typeof f=="string"&&f!=="mixed"&&(D=f,N=A.find(I,[D,D]),S=A.find(Q,[D,D]));for(var j=[],z=0;z<m;z++){for(var $=S(h[0],R[0][z]),_=1;_<F;_++)$=N($,S(h[_],R[_][z]));j[z]=$}return c.createDenseMatrix({data:j,size:[m],datatype:f===c._datatype&&k===d._datatype?D:void 0})}(n,s)}var o=A("_multiplyMatrixVector",{"DenseMatrix, any":function(n,s){var c,d=n._data,D=n._size,h=n._datatype||n.getDataType(),u=s._data,f=s._datatype||s.getDataType(),R=D[0],G=D[1],k=I,F=Q;h&&f&&h===f&&typeof h=="string"&&h!=="mixed"&&(c=h,k=A.find(I,[c,c]),F=A.find(Q,[c,c]));for(var m=[],N=0;N<R;N++){for(var S=d[N],j=F(S[0],u[0]),z=1;z<G;z++)j=k(j,F(S[z],u[z]));m[N]=j}return n.createDenseMatrix({data:m,size:[R],datatype:h===n._datatype&&f===s._datatype?c:void 0})},"SparseMatrix, any":function(n,s){var c=n._values,d=n._index,D=n._ptr,h=n._datatype||n._data===void 0?n._datatype:n.getDataType();if(!c)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var u,f=s._data,R=s._datatype||s.getDataType(),G=n._size[0],k=s._size[0],F=[],m=[],N=[],S=I,j=Q,z=C,$=0;h&&R&&h===R&&typeof h=="string"&&h!=="mixed"&&(u=h,S=A.find(I,[u,u]),j=A.find(Q,[u,u]),z=A.find(C,[u,u]),$=A.convert(0,u));var _=[],X=[];N[0]=0;for(var CA=0;CA<k;CA++){var sA=f[CA];if(!z(sA,$))for(var oA=D[CA],fA=D[CA+1],bA=oA;bA<fA;bA++){var iA=d[bA];X[iA]?_[iA]=S(_[iA],j(sA,c[bA])):(X[iA]=!0,m.push(iA),_[iA]=j(sA,c[bA]))}}for(var yA=m.length,EA=0;EA<yA;EA++){var cA=m[EA];F[EA]=_[cA]}return N[1]=m.length,n.createSparseMatrix({values:F,index:m,ptr:N,size:[G,1],datatype:h===n._datatype&&R===s._datatype?u:void 0})}}),r=A("_multiplyMatrixMatrix",{"DenseMatrix, DenseMatrix":function(n,s){var c,d=n._data,D=n._size,h=n._datatype||n.getDataType(),u=s._data,f=s._size,R=s._datatype||s.getDataType(),G=D[0],k=D[1],F=f[1],m=I,N=Q;h&&R&&h===R&&typeof h=="string"&&h!=="mixed"&&h!=="mixed"&&(c=h,m=A.find(I,[c,c]),N=A.find(Q,[c,c]));for(var S=[],j=0;j<G;j++){var z=d[j];S[j]=[];for(var $=0;$<F;$++){for(var _=N(z[0],u[0][$]),X=1;X<k;X++)_=m(_,N(z[X],u[X][$]));S[j][$]=_}}return n.createDenseMatrix({data:S,size:[G,F],datatype:h===n._datatype&&R===s._datatype?c:void 0})},"DenseMatrix, SparseMatrix":function(n,s){var c=n._data,d=n._size,D=n._datatype||n.getDataType(),h=s._values,u=s._index,f=s._ptr,R=s._size,G=s._datatype||s._data===void 0?s._datatype:s.getDataType();if(!h)throw new Error("Cannot multiply Dense Matrix times Pattern only Matrix");var k,F=d[0],m=R[1],N=I,S=Q,j=C,z=0;D&&G&&D===G&&typeof D=="string"&&D!=="mixed"&&(k=D,N=A.find(I,[k,k]),S=A.find(Q,[k,k]),j=A.find(C,[k,k]),z=A.convert(0,k));for(var $=[],_=[],X=[],CA=s.createSparseMatrix({values:$,index:_,ptr:X,size:[F,m],datatype:D===n._datatype&&G===s._datatype?k:void 0}),sA=0;sA<m;sA++){X[sA]=_.length;var oA=f[sA],fA=f[sA+1];if(fA>oA)for(var bA=0,iA=0;iA<F;iA++){for(var yA=iA+1,EA=void 0,cA=oA;cA<fA;cA++){var pA=u[cA];bA!==yA?(EA=S(c[iA][pA],h[cA]),bA=yA):EA=N(EA,S(c[iA][pA],h[cA]))}bA!==yA||j(EA,z)||(_.push(iA),$.push(EA))}}return X[m]=_.length,CA},"SparseMatrix, DenseMatrix":function(n,s){var c=n._values,d=n._index,D=n._ptr,h=n._datatype||n._data===void 0?n._datatype:n.getDataType();if(!c)throw new Error("Cannot multiply Pattern only Matrix times Dense Matrix");var u,f=s._data,R=s._datatype||s.getDataType(),G=n._size[0],k=s._size[0],F=s._size[1],m=I,N=Q,S=C,j=0;h&&R&&h===R&&typeof h=="string"&&h!=="mixed"&&(u=h,m=A.find(I,[u,u]),N=A.find(Q,[u,u]),S=A.find(C,[u,u]),j=A.convert(0,u));for(var z=[],$=[],_=[],X=n.createSparseMatrix({values:z,index:$,ptr:_,size:[G,F],datatype:h===n._datatype&&R===s._datatype?u:void 0}),CA=[],sA=[],oA=0;oA<F;oA++){_[oA]=$.length;for(var fA=oA+1,bA=0;bA<k;bA++){var iA=f[bA][oA];if(!S(iA,j))for(var yA=D[bA],EA=D[bA+1],cA=yA;cA<EA;cA++){var pA=d[cA];sA[pA]!==fA?(sA[pA]=fA,$.push(pA),CA[pA]=N(iA,c[cA])):CA[pA]=m(CA[pA],N(iA,c[cA]))}}for(var GA=_[oA],nA=$.length,hA=GA;hA<nA;hA++){var JA=$[hA];z[hA]=CA[JA]}}return _[F]=$.length,X},"SparseMatrix, SparseMatrix":function(n,s){var c,d=n._values,D=n._index,h=n._ptr,u=n._datatype||n._data===void 0?n._datatype:n.getDataType(),f=s._values,R=s._index,G=s._ptr,k=s._datatype||s._data===void 0?s._datatype:s.getDataType(),F=n._size[0],m=s._size[1],N=d&&f,S=I,j=Q;u&&k&&u===k&&typeof u=="string"&&u!=="mixed"&&(c=u,S=A.find(I,[c,c]),j=A.find(Q,[c,c]));for(var z,$,_,X,CA,sA,oA,fA,bA=N?[]:void 0,iA=[],yA=[],EA=n.createSparseMatrix({values:bA,index:iA,ptr:yA,size:[F,m],datatype:u===n._datatype&&k===s._datatype?c:void 0}),cA=N?[]:void 0,pA=[],GA=0;GA<m;GA++){yA[GA]=iA.length;var nA=GA+1;for(CA=G[GA],sA=G[GA+1],X=CA;X<sA;X++)if(fA=R[X],N)for($=h[fA],_=h[fA+1],z=$;z<_;z++)pA[oA=D[z]]!==nA?(pA[oA]=nA,iA.push(oA),cA[oA]=j(f[X],d[z])):cA[oA]=S(cA[oA],j(f[X],d[z]));else for($=h[fA],_=h[fA+1],z=$;z<_;z++)pA[oA=D[z]]!==nA&&(pA[oA]=nA,iA.push(oA));if(N)for(var hA=yA[GA],JA=iA.length,vA=hA;vA<JA;vA++){var sg=iA[vA];bA[vA]=cA[sg]}}return yA[m]=iA.length,EA}});return A(Qe,Q,{"Array, Array":A.referTo("Matrix, Matrix",n=>(s,c)=>{t(Bg(s),Bg(c));var d=n(g(s),g(c));return KA(d)?d.valueOf():d}),"Matrix, Matrix":function(n,s){var c=n.size(),d=s.size();return t(c,d),c.length===1?d.length===1?function(D,h,u){if(u===0)throw new Error("Cannot multiply two empty vectors");return a(D,h)}(n,s,c[0]):E(n,s):d.length===1?o(n,s):r(n,s)},"Matrix, Array":A.referTo("Matrix,Matrix",n=>(s,c)=>n(s,g(c))),"Array, Matrix":A.referToSelf(n=>(s,c)=>n(g(s,c.storage()),c)),"SparseMatrix, any":function(n,s){return e(n,s,Q,!1)},"DenseMatrix, any":function(n,s){return i(n,s,Q,!1)},"any, SparseMatrix":function(n,s){return e(s,n,Q,!0)},"any, DenseMatrix":function(n,s){return i(s,n,Q,!0)},"Array, any":function(n,s){return i(g(n),s,Q,!1).valueOf()},"any, Array":function(n,s){return i(g(s),n,Q,!0).valueOf()},"any, any":Q,"any, any, ...any":A.referToSelf(n=>(s,c,d)=>{for(var D=n(s,c),h=0;h<d.length;h++)D=n(D,d[h]);return D})})}),Ce="conj",Lt=wA(Ce,["typed"],B=>{var{typed:A}=B;return A(Ce,{"number | BigNumber | Fraction":g=>g,Complex:g=>g.conjugate(),Unit:A.referToSelf(g=>I=>new I.constructor(g(I.toNumeric()),I.formatUnits())),"Array | Matrix":A.referToSelf(g=>I=>eI(I,g))})}),ae="identity",Jt=wA(ae,["typed","config","matrix","BigNumber","DenseMatrix","SparseMatrix"],B=>{var{typed:A,config:g,matrix:I,BigNumber:Q,DenseMatrix:C,SparseMatrix:a}=B;return A(ae,{"":function(){return g.matrix==="Matrix"?I([]):[]},string:function(t){return I(t)},"number | BigNumber":function(t){return i(t,t,g.matrix==="Matrix"?"dense":void 0)},"number | BigNumber, string":function(t,E){return i(t,t,E)},"number | BigNumber, number | BigNumber":function(t,E){return i(t,E,g.matrix==="Matrix"?"dense":void 0)},"number | BigNumber, number | BigNumber, string":function(t,E,o){return i(t,E,o)},Array:function(t){return e(t)},"Array, string":function(t,E){return e(t,E)},Matrix:function(t){return e(t.valueOf(),t.storage())},"Matrix, string":function(t,E){return e(t.valueOf(),E)}});function e(t,E){switch(t.length){case 0:return E?I(E):[];case 1:return i(t[0],t[0],E);case 2:return i(t[0],t[1],E);default:throw new Error("Vector containing two values expected")}}function i(t,E,o){var r=qA(t)||qA(E)?Q:null;if(qA(t)&&(t=t.toNumber()),qA(E)&&(E=E.toNumber()),!LA(t)||t<1)throw new Error("Parameters in function identity must be positive integers");if(!LA(E)||E<1)throw new Error("Parameters in function identity must be positive integers");var n=r?new Q(1):1,s=r?new r(0):0,c=[t,E];if(o){if(o==="sparse")return a.diagonal(c,n,0,s);if(o==="dense")return C.diagonal(c,n,0,s);throw new TypeError('Unknown matrix type "'.concat(o,'"'))}for(var d=hQ([],c,s),D=t<E?t:E,h=0;h<D;h++)d[h][h]=n;return d}});function xt(){throw new Error('No "bignumber" implementation available')}function Yt(){throw new Error('No "fraction" implementation available')}var ee,Ee="size",Ht=wA(Ee,["typed","config","?matrix"],B=>{var{typed:A,config:g,matrix:I}=B;return A(Ee,{Matrix:function(Q){return Q.create(Q.size(),"number")},Array:Bg,string:function(Q){return g.matrix==="Array"?[Q.length]:I([Q.length],"dense","number")},"number | Complex | BigNumber | Unit | boolean | null":function(Q){return g.matrix==="Array"?[]:I?I([],"dense","number"):function(){throw new Error('No "matrix" implementation available')}()}})}),Kt=wA("numeric",["number","?bignumber","?fraction"],B=>{var{number:A,bignumber:g,fraction:I}=B,Q={string:!0,number:!0,BigNumber:!0,Fraction:!0},C={number:a=>A(a),BigNumber:g?a=>g(a):xt,bigint:a=>BigInt(a),Fraction:I?a=>I(a):Yt};return function(a){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"number";if((arguments.length>2?arguments[2]:void 0)!==void 0)throw new SyntaxError("numeric() takes one or two arguments");var i=jg(a);if(!(i in Q))throw new TypeError("Cannot convert "+a+' of type "'+i+'"; valid input types are '+Object.keys(Q).join(", "));if(!(e in C))throw new TypeError("Cannot convert "+a+' to type "'+e+'"; valid output types are '+Object.keys(C).join(", "));return e===i?a:C[e](a)}}),ie="divideScalar",jt=wA(ie,["typed","numeric"],B=>{var{typed:A,numeric:g}=B;return A(ie,{"number, number":function(I,Q){return I/Q},"Complex, Complex":function(I,Q){return I.div(Q)},"BigNumber, BigNumber":function(I,Q){return I.div(Q)},"bigint, bigint":function(I,Q){return I/Q},"Fraction, Fraction":function(I,Q){return I.div(Q)},"Unit, number | Complex | Fraction | BigNumber | Unit":(I,Q)=>I.divide(Q),"number | Fraction | Complex | BigNumber, Unit":(I,Q)=>Q.divideInto(I)})}),vt=wA("pow",["typed","config","identity","multiply","matrix","inv","fraction","number","Complex"],B=>{var{typed:A,config:g,identity:I,multiply:Q,matrix:C,inv:a,number:e,fraction:i,Complex:t}=B;return A("pow",{"number, number":E,"Complex, Complex":function(n,s){return n.pow(s)},"BigNumber, BigNumber":function(n,s){return s.isInteger()||n>=0||g.predictable?n.pow(s):new t(n.toNumber(),0).pow(s.toNumber(),0)},"bigint, bigint":(n,s)=>n**s,"Fraction, Fraction":function(n,s){var c=n.pow(s);if(c!=null)return c;if(g.predictable)throw new Error("Result of pow is non-rational and cannot be expressed as a fraction");return E(n.valueOf(),s.valueOf())},"Array, number":o,"Array, BigNumber":function(n,s){return o(n,s.toNumber())},"Matrix, number":r,"Matrix, BigNumber":function(n,s){return r(n,s.toNumber())},"Unit, number | BigNumber":function(n,s){return n.pow(s)}});function E(n,s){if(g.predictable&&!LA(s)&&n<0)try{var c=i(s),d=e(c);if((s===d||Math.abs((s-d)/s)<1e-14)&&c.d%2n===1n)return(c.n%2n===0n?1:-1)*Math.pow(-n,s)}catch{}return g.predictable&&(n<-1&&s===1/0||n>-1&&n<0&&s===-1/0)?NaN:LA(s)||n>=0||g.predictable?Za(n,s):n*n<1&&s===1/0||n*n>1&&s===-1/0?0:new t(n,0).pow(s,0)}function o(n,s){if(!LA(s))throw new TypeError("For A^b, b must be an integer (value is "+s+")");var c=Bg(n);if(c.length!==2)throw new Error("For A^b, A must be 2 dimensional (A has "+c.length+" dimensions)");if(c[0]!==c[1])throw new Error("For A^b, A must be square (size is "+c[0]+"x"+c[1]+")");if(s<0)try{return o(a(n),-s)}catch(h){throw h.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 "+s+")"):h}for(var d=I(c[0]).valueOf(),D=n;s>=1;)1&~s||(d=Q(D,d)),s>>=1,D=Q(D,D);return d}function r(n,s){return C(o(n.valueOf(),s))}}),qt=wA("dot",["typed","addScalar","multiplyScalar","conj","size"],B=>{var{typed:A,addScalar:g,multiplyScalar:I,conj:Q,size:C}=B;return A("dot",{"Array | DenseMatrix, Array | DenseMatrix":function(i,t){var E=a(i,t),o=KA(i)?i._data:i,r=KA(i)?i._datatype||i.getDataType():void 0,n=KA(t)?t._data:t,s=KA(t)?t._datatype||t.getDataType():void 0,c=e(i).length===2,d=e(t).length===2,D=g,h=I;if(r&&s&&r===s&&typeof r=="string"&&r!=="mixed"){var u=r;D=A.find(g,[u,u]),h=A.find(I,[u,u])}if(!c&&!d){for(var f=h(Q(o[0]),n[0]),R=1;R<E;R++)f=D(f,h(Q(o[R]),n[R]));return f}if(!c&&d){for(var G=h(Q(o[0]),n[0][0]),k=1;k<E;k++)G=D(G,h(Q(o[k]),n[k][0]));return G}if(c&&!d){for(var F=h(Q(o[0][0]),n[0]),m=1;m<E;m++)F=D(F,h(Q(o[m][0]),n[m]));return F}if(c&&d){for(var N=h(Q(o[0][0]),n[0][0]),S=1;S<E;S++)N=D(N,h(Q(o[S][0]),n[S][0]));return N}},"SparseMatrix, SparseMatrix":function(i,t){a(i,t);for(var E=i._index,o=i._values,r=t._index,n=t._values,s=0,c=g,d=I,D=0,h=0;D<E.length&&h<r.length;){var u=E[D],f=r[h];u<f?D++:u>f?h++:u===f&&(s=c(s,d(o[D],n[h])),D++,h++)}return s}});function a(i,t){var E,o,r=e(i),n=e(t);if(r.length===1)E=r[0];else{if(r.length!==2||r[1]!==1)throw new RangeError("Expected a column vector, instead got a matrix of size ("+r.join(", ")+")");E=r[0]}if(n.length===1)o=n[0];else{if(n.length!==2||n[1]!==1)throw new RangeError("Expected a column vector, instead got a matrix of size ("+n.join(", ")+")");o=n[0]}if(E!==o)throw new RangeError("Vectors must have equal length ("+E+" != "+o+")");if(E===0)throw new RangeError("Cannot calculate the dot product of empty vectors");return E}function e(i){return KA(i)?i.size():C(i)}}),Tt=wA("det",["typed","matrix","subtractScalar","multiply","divideScalar","isZero","unaryMinus"],B=>{var{typed:A,matrix:g,subtractScalar:I,multiply:Q,divideScalar:C,isZero:a,unaryMinus:e}=B;return A("det",{any:function(i){return jA(i)},"Array | Matrix":function(i){var t;switch((t=KA(i)?i.size():Array.isArray(i)?(i=g(i)).size():[]).length){case 0:return jA(i);case 1:if(t[0]===1)return jA(i.valueOf()[0]);if(t[0]===0)return 1;throw new RangeError("Matrix must be square (size: "+TA(t)+")");case 2:var E=t[0],o=t[1];if(E===o)return function(r,n){if(n===1)return jA(r[0][0]);if(n===2)return I(Q(r[0][0],r[1][1]),Q(r[1][0],r[0][1]));for(var s=!1,c=new Array(n).fill(0).map((m,N)=>N),d=0;d<n;d++){var D=c[d];if(a(r[D][d])){var h=void 0;for(h=d+1;h<n;h++)if(!a(r[c[h]][d])){D=c[h],c[h]=c[d],c[d]=D,s=!s;break}if(h===n)return r[D][d]}for(var u=r[D][d],f=d===0?1:r[c[d-1]][d-1],R=d+1;R<n;R++)for(var G=c[R],k=d+1;k<n;k++)r[G][k]=C(I(Q(r[G][k],u),Q(r[G][d],r[D][k])),f)}var F=r[c[n-1]][n-1];return s?e(F):F}(i.clone().valueOf(),E);if(o===0)return 1;throw new RangeError("Matrix must be square (size: "+TA(t)+")");default:throw new RangeError("Matrix must be two dimensional (size: "+TA(t)+")")}}})}),Ot=wA("inv",["typed","matrix","divideScalar","addScalar","multiply","unaryMinus","det","identity","abs"],B=>{var{typed:A,matrix:g,divideScalar:I,addScalar:Q,multiply:C,unaryMinus:a,det:e,identity:i,abs:t}=B;return A("inv",{"Array | Matrix":function(o){var r=KA(o)?o.size():Bg(o);switch(r.length){case 1:if(r[0]===1)return KA(o)?g([I(1,o.valueOf()[0])]):[I(1,o[0])];throw new RangeError("Matrix must be square (size: "+TA(r)+")");case 2:var n=r[0],s=r[1];if(n===s)return KA(o)?g(E(o.valueOf(),n,s),o.storage()):E(o,n,s);throw new RangeError("Matrix must be square (size: "+TA(r)+")");default:throw new RangeError("Matrix must be two dimensional (size: "+TA(r)+")")}},any:function(o){return I(1,o)}});function E(o,r,n){var s,c,d,D,h;if(r===1){if((D=o[0][0])===0)throw Error("Cannot calculate inverse, determinant is zero");return[[I(1,D)]]}if(r===2){var u=e(o);if(u===0)throw Error("Cannot calculate inverse, determinant is zero");return[[I(o[1][1],u),I(a(o[0][1]),u)],[I(a(o[1][0]),u),I(o[0][0],u)]]}var f=o.concat();for(s=0;s<r;s++)f[s]=f[s].concat();for(var R=i(r).valueOf(),G=0;G<n;G++){var k=t(f[G][G]),F=G;for(s=G+1;s<r;)t(f[s][G])>k&&(k=t(f[s][G]),F=s),s++;if(k===0)throw Error("Cannot calculate inverse, determinant is zero");(s=F)!==G&&(h=f[G],f[G]=f[s],f[s]=h,h=R[G],R[G]=R[s],R[s]=h);var m=f[G],N=R[G];for(s=0;s<r;s++){var S=f[s],j=R[s];if(s!==G){if(S[G]!==0){for(d=I(a(S[G]),m[G]),c=G;c<n;c++)S[c]=Q(S[c],C(d,m[c]));for(c=0;c<n;c++)j[c]=Q(j[c],C(d,N[c]))}}else{for(d=m[G],c=G;c<n;c++)S[c]=I(S[c],d);for(c=0;c<n;c++)j[c]=I(j[c],d)}}}return R}}),te="gamma",Wt=wA(te,["typed","config","multiplyScalar","pow","BigNumber","Complex"],B=>{var{typed:A,config:g,multiplyScalar:I,pow:Q,BigNumber:C,Complex:a}=B;return A(te,{number:lB,Complex:function i(t){if(t.im===0)return lB(t.re);if(t.re<.5){var E=new a(1-t.re,-t.im),o=new a(Math.PI*t.re,Math.PI*t.im);return new a(Math.PI).div(o.sin()).div(i(E))}t=new a(t.re-1,t.im);for(var r=new a(pI[0],0),n=1;n<pI.length;++n){var s=new a(pI[n],0);r=r.add(s.div(t.add(n)))}var c=new a(t.re+_a+.5,t.im),d=Math.sqrt(2*Math.PI),D=c.pow(t.add(.5)),h=c.neg().exp();return r.mul(d).mul(D).mul(h)},BigNumber:function(i){if(i.isInteger())return i.isNegative()||i.isZero()?new C(1/0):e(i.minus(1));if(!i.isFinite())return new C(i.isNegative()?NaN:1/0);throw new Error("Integer BigNumber expected")}});function e(i){if(i<8)return new C([1,1,2,6,24,120,720,5040][i]);var t=g.precision+(0|Math.log(i.toNumber())),E=C.clone({precision:t});if(i%2==1)return i.times(e(new C(i-1)));for(var o=i,r=new E(i),n=i.toNumber();o>2;)n+=o-=2,r=r.times(n);return new C(r.toPrecision(C.precision))}}),bB=it({config:QI}),bQ=ot({}),oe=rt({}),wQ=st({}),fQ=Dt({Matrix:wQ}),HA=Di({BigNumber:bB,Complex:bQ,DenseMatrix:fQ,Fraction:oe}),Pt=Gt({typed:HA}),yQ=Rt({typed:HA}),Vt=Lt({typed:HA}),FQ=bt({config:QI,typed:HA}),zt=lt({equalScalar:FQ,typed:HA}),pQ=Ut({typed:HA}),ne=ft({typed:HA}),re=wt({Matrix:wQ,equalScalar:FQ,typed:HA}),Xt=kt({typed:HA}),Zt=yt({BigNumber:bB,typed:HA}),MI=pt({DenseMatrix:fQ,Matrix:wQ,SparseMatrix:re,typed:HA}),se=Ft({Fraction:oe,typed:HA}),ce=Jt({BigNumber:bB,DenseMatrix:fQ,SparseMatrix:re,config:QI,matrix:MI,typed:HA}),_t=Kt({bignumber:Zt,fraction:se,number:ne}),$t=Ht({matrix:MI,config:QI,typed:HA}),he=Mt({typed:HA}),de=jt({numeric:_t,typed:HA}),MQ=St({addScalar:yQ,dot:qt({addScalar:yQ,conj:Vt,multiplyScalar:pQ,size:$t,typed:HA}),equalScalar:FQ,matrix:MI,multiplyScalar:pQ,typed:HA}),Ao=Wt({BigNumber:bB,Complex:bQ,config:QI,multiplyScalar:pQ,pow:vt({Complex:bQ,config:QI,fraction:se,identity:ce,inv:Ot({abs:Pt,addScalar:yQ,det:Tt({divideScalar:de,isZero:zt,matrix:MI,multiply:MQ,subtractScalar:Xt,typed:HA,unaryMinus:he}),divideScalar:de,identity:ce,matrix:MI,multiply:MQ,typed:HA,unaryMinus:he}),matrix:MI,multiply:MQ,number:ne,typed:HA}),typed:HA});class go{constructor(A){if(A){const{toElementFn:g}=A;if(typeof g=="function")this._toElementFn=g;else if(g)throw new TypeError("toElementFn must be a function type")}}_toElementFn;get toElementFn(){return this._toElementFn}*[Symbol.iterator](...A){yield*this._getIterator(...A)}*values(){for(const A of this)yield A}every(A,g){let I=0;for(const Q of this)if(!A.call(g,Q,I++,this))return!1;return!0}some(A,g){let I=0;for(const Q of this)if(A.call(g,Q,I++,this))return!0;return!1}forEach(A,g){let I=0;for(const Q of this)A.call(g,Q,I++,this)}find(A,g){let I=0;for(const Q of this)if(A.call(g,Q,I++,this))return Q}has(A){for(const g of this)if(g===A)return!0;return!1}reduce(A,g){let I=g??0,Q=0;for(const C of this)I=A(I,C,Q++,this);return I}toArray(){return[...this]}toVisual(){return[...this]}print(){console.log(this.toVisual())}}/**
|
|
968
968
|
* data-structure-typed
|
|
969
969
|
* @author Kirk Qi
|
|
970
970
|
* @copyright Copyright (c) 2022 Kirk Qi <qilinaus@gmail.com>
|
|
971
971
|
* @license MIT License
|
|
972
|
-
*/class
|
|
972
|
+
*/class EI extends go{constructor(A=[],g){if(super(g),g){const{comparator:I}=g;I&&(this._comparator=I)}this.addMany(A)}_elements=[];get elements(){return this._elements}get size(){return this.elements.length}get leaf(){return this.elements[this.size-1]??void 0}static heapify(A,g){return new EI(A,g)}add(A){return this._elements.push(A),this._bubbleUp(this.elements.length-1)}addMany(A){const g=[];for(const I of A)this._toElementFn?g.push(this.add(this._toElementFn(I))):g.push(this.add(I));return g}poll(){if(this.elements.length===0)return;const A=this.elements[0],g=this.elements.pop();return this.elements.length&&(this.elements[0]=g,this._sinkDown(0,this.elements.length>>1)),A}peek(){return this.elements[0]}isEmpty(){return this.size===0}clear(){this._elements=[]}refill(A){return this._elements=A,this.fix()}has(A){return this.elements.includes(A)}delete(A){const g=this.elements.indexOf(A);return!(g<0)&&(g===0?this.poll():g===this.elements.length-1?this.elements.pop():(this.elements.splice(g,1,this.elements.pop()),this._bubbleUp(g),this._sinkDown(g,this.elements.length>>1)),!0)}dfs(A="PRE"){const g=[],I=Q=>{const C=2*Q+1,a=C+1;Q<this.size&&(A==="IN"?(I(C),g.push(this.elements[Q]),I(a)):A==="PRE"?(g.push(this.elements[Q]),I(C),I(a)):A==="POST"&&(I(C),I(a),g.push(this.elements[Q])))};return I(0),g}clone(){return new EI(this,{comparator:this.comparator,toElementFn:this.toElementFn})}sort(){const A=[],g=new EI(this,{comparator:this.comparator});for(;g.size!==0;){const I=g.poll();I!==void 0&&A.push(I)}return A}fix(){const A=[];for(let g=Math.floor(this.size/2);g>=0;g--)A.push(this._sinkDown(g,this.elements.length>>1));return A}filter(A,g){const I=new EI([],{toElementFn:this.toElementFn,comparator:this.comparator});let Q=0;for(const C of this)A.call(g,C,Q,this)&&I.add(C),Q++;return I}map(A,g,I,Q){const C=new EI([],{comparator:g,toElementFn:I});let a=0;for(const e of this)C.add(A.call(Q,e,a,this)),a++;return C}_DEFAULT_COMPARATOR=(A,g)=>{if(typeof A=="object"||typeof g=="object")throw TypeError("When comparing object types, a custom comparator must be defined in the constructor's options parameter.");return A>g?1:A<g?-1:0};_comparator=this._DEFAULT_COMPARATOR;get comparator(){return this._comparator}*_getIterator(){for(const A of this.elements)yield A}_bubbleUp(A){const g=this.elements[A];for(;A>0;){const I=A-1>>1,Q=this.elements[I];if(this.comparator(Q,g)<=0)break;this.elements[A]=Q,A=I}return this.elements[A]=g,!0}_sinkDown(A,g){const I=this.elements[A];for(;A<g;){let Q=A<<1|1;const C=Q+1;let a=this.elements[Q];if(C<this.elements.length&&this.comparator(a,this.elements[C])>0&&(Q=C,a=this.elements[C]),this.comparator(a,I)>=0)break;this.elements[A]=a,A=Q}return this.elements[A]=I,!0}}(function(B){B[B.VISIT=0]="VISIT",B[B.PROCESS=1]="PROCESS"})(ee||(ee={}));class xI extends EI{constructor(A=[],g){super(A,g)}clone(){return new xI(this,{comparator:this.comparator,toElementFn:this.toElementFn})}filter(A,g){const I=new xI([],{toElementFn:this.toElementFn,comparator:this.comparator});let Q=0;for(const C of this)A.call(g,C,Q,this)&&I.add(C),Q++;return I}map(A,g,I,Q){const C=new xI([],{comparator:g,toElementFn:I});let a=0;for(const e of this)C.add(A.call(Q,e,a,this)),a++;return C}}class YI extends xI{constructor(A=[],g){super(A,g)}clone(){return new YI(this,{comparator:this.comparator,toElementFn:this.toElementFn})}filter(A,g){const I=new YI([],{toElementFn:this.toElementFn,comparator:this.comparator});let Q=0;for(const C of this)A.call(g,C,Q,this)&&I.add(C),Q++;return I}map(A,g,I,Q){const C=new YI([],{comparator:g,toElementFn:I});let a=0;for(const e of this)C.add(A.call(Q,e,a,this)),a++;return C}}new l.Box3,new l.Vector3,new l.Vector3,new l.Vector3,new l.Vector3;const De=`let D, y = null;
|
|
973
973
|
function J() {
|
|
974
974
|
return (y === null || y.byteLength === 0) && (y = new Uint32Array(D.memory.buffer)), y;
|
|
975
975
|
}
|
|
@@ -1190,7 +1190,7 @@ self.onmessage = function(I) {
|
|
|
1190
1190
|
}
|
|
1191
1191
|
};
|
|
1192
1192
|
//# sourceMappingURL=PointsManager.worker-CsuBSjAh.js.map
|
|
1193
|
-
`,
|
|
1193
|
+
`,le=typeof self<"u"&&self.Blob&&new Blob(["URL.revokeObjectURL(import.meta.url);",De],{type:"text/javascript;charset=utf-8"});function Io(B){let A;try{if(A=le&&(self.URL||self.webkitURL).createObjectURL(le),!A)throw"";const g=new Worker(A,{type:"module",name:B?.name});return g.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(A)}),g}catch{return new Worker("data:text/javascript;charset=utf-8,"+encodeURIComponent(De),{type:"module",name:B?.name})}}new l.Vector3,new l.Vector3;const ue=new l.Matrix3;ue.set(1,0,0,0,0,1,0,-1,0);const Bo=new l.Matrix4().set(1,0,0,0,0,0,-1,0,0,1,0,0,0,0,0,1);function HI(B,A){return(l.DataUtils.toHalfFloat(B)|l.DataUtils.toHalfFloat(A)<<16)>>>0}class be extends l.Mesh{constructor(A,g,I,Q){const a=Math.min(Math.ceil(4)*1024,Math.pow(1024,2));let e=1*Math.pow(1024,2);e=Math.floor(e/a)*a;const i=new l.WebGL3DRenderTarget(1024,1024,1,{magFilter:l.NearestFilter,minFilter:l.NearestFilter,type:l.FloatType,format:l.RGBAFormat,anisotropy:0,depthBuffer:!1,resolveDepthBuffer:!1});i.texture.type=l.FloatType,i.texture.format=l.RGBAFormat,i.texture.internalFormat="RGBA32F",A.initRenderTarget(i);const t=new l.WebGL3DRenderTarget(1024,1024,1,{magFilter:l.NearestFilter,minFilter:l.NearestFilter,anisotropy:0,type:l.FloatType,format:l.RGBAFormat,depthBuffer:!1,resolveDepthBuffer:!1});t.texture.type=l.FloatType,t.texture.format=l.RGBAFormat,t.texture.internalFormat="RGBA32F",A.initRenderTarget(t);const E=new l.ShaderMaterial({glslVersion:l.GLSL3,uniforms:{textureSize:{value:1024},numSlices:{value:1},covarianceTexture:{value:t.texture},positionColorTexture:{value:i.texture},zUpToYUpMatrix3x3:{value:ue},sizeMultiplier:{value:1*(Q||1)},cropRadius:{value:Number.MAX_VALUE},viewportPixelSize:{value:new l.Vector2},k:{value:2},beta_k:{value:2},minSplatPixelSize:{value:0},minOpacity:{value:.01},culling:{value:!1},antialiasingFactor:{value:2},depthBias:{value:0},exposureEV:{value:0},saturation:{value:1},contrast:{value:1},tempTint:{value:new l.Vector2(0,0)}},vertexShader:we(),fragmentShader:I||fe(),transparent:!0,side:l.FrontSide,depthTest:!0,depthWrite:!1,blending:l.NormalBlending}),o=new l.InstancedBufferGeometry,r=new Float32Array([-.5,.5,0,.5,.5,0,-.5,-.5,0,.5,-.5,0]);o.setIndex([0,2,1,2,3,1]),o.setAttribute("position",new l.BufferAttribute(r,3));const n=new Uint32Array(e),s=new l.InstancedBufferAttribute(n,1,!1);s.needsUpdate=!0,s.setUsage(l.DynamicDrawUsage),o.setAttribute("order",s),o.instanceCount=0,super(o,E),this.scaleMultiplier=Q,this.matrixAutoUpdate=!1,this.numBatches=0,this.numVisibleBatches=0,this.orderAttribute=s,this.textureSize=1024,this.numTextures=1,this.batchSize=a,this.maxSplats=e,this.numSplatsRendered=0,this.positionColorRenderTarget=i,this.covarianceRenderTarget=t,this.renderer=A,this.sortID=0,this.freeAddresses=new YI;for(let d=0;d<this.maxSplats;d+=a)this.freeAddresses.add(d);this.worker=new Io,this.sortListeners=[],this._pendingOrder=null,this._pendingInstanceCount=0,this._pendingSortIDs=[],this._pendingTextureCopies=[],this._pendingGrowOperations=[],this.worker.onmessage=d=>{try{this._pendingOrder=new Uint32Array(d.data.order)}catch{this._pendingOrder=d.data.order}this._pendingInstanceCount=d.data.count||0,d.data.id!==void 0&&this._pendingSortIDs.push(d.data.id)},this.cameraPosition=new l.Vector3(0,0,0),this.viewProjModel,this.rotateOnAxis(new l.Vector3(1,0,0),.5*Math.PI),this.frustumCulled=!1,this.copyMaterial2D=new l.ShaderMaterial({glslVersion:l.GLSL3,uniforms:{sourceTexture:{}},vertexShader:ye(),fragmentShader:`
|
|
1194
1194
|
precision highp float;
|
|
1195
1195
|
precision highp int;
|
|
1196
1196
|
precision highp sampler2D;
|
|
@@ -1202,7 +1202,7 @@ in vec2 vUv;
|
|
|
1202
1202
|
|
|
1203
1203
|
void main() {
|
|
1204
1204
|
fragColor = texture( sourceTexture, vUv );
|
|
1205
|
-
}`,transparent:!1,side:
|
|
1205
|
+
}`,transparent:!1,side:l.FrontSide,depthTest:!1,depthWrite:!1}),this.copyMaterial3D=new l.ShaderMaterial({glslVersion:l.GLSL3,uniforms:{sourceTexture:{},w:{value:0}},vertexShader:ye(),fragmentShader:`
|
|
1206
1206
|
precision highp float;
|
|
1207
1207
|
precision highp int;
|
|
1208
1208
|
precision highp sampler3D;
|
|
@@ -1215,7 +1215,7 @@ in vec2 vUv;
|
|
|
1215
1215
|
|
|
1216
1216
|
void main() {
|
|
1217
1217
|
fragColor = texture( sourceTexture, vec3(vUv, w) );
|
|
1218
|
-
}`,transparent:!1,side:d.FrontSide,depthTest:!1,depthWrite:!1}),this.copyCamera=new d.OrthographicCamera(-.5,.5,.5,-.5,.1,10),this.copyCamera.position.z=1,this.copyScene=new d.Scene;const c=new d.PlaneGeometry(1,1);this.copyQuad=new d.Mesh(c,this.copyMaterial2D),this.copyScene.add(this.copyQuad),this.copyScene.matrixAutoUpdate=!1,this.copyQuad.matrixAutoUpdate=!1,this.splatsCPUCuling=!1}setQuality(A){const g=2+2*(A=Math.max(0,Math.min(1,1-A)));this.material.uniforms.k.value=g,this.material.uniforms.beta_k.value=Math.pow(4*vt(2/g)/g,g/2),this.material.uniforms.minSplatPixelSize.value=5*A,this.material.uniforms.minOpacity.value=.01}setSplatsCPUCulling(A){this.splatsCPUCuling=A,this.material.uniforms.culling.value=A}setDepthBias(A){this.depthBias=A,this.material.uniforms.depthBias.value=this.depthBias}setExposureEV(A){this.material&&this.material.uniforms&&this.material.uniforms.exposureEV!==void 0&&(this.material.uniforms.exposureEV.value=A)}setSaturation(A){this.material&&this.material.uniforms&&this.material.uniforms.saturation!==void 0&&(this.material.uniforms.saturation.value=A)}setContrast(A){this.material&&this.material.uniforms&&this.material.uniforms.contrast!==void 0&&(this.material.uniforms.contrast.value=A)}setTempTint(A,g){this.material&&this.material.uniforms&&this.material.uniforms.tempTint!==void 0&&this.material.uniforms.tempTint.value.set(A,g)}updateShaderParams(A){A.projectionMatrix.elements,this.renderer.getSize(this.material.uniforms.viewportPixelSize.value);const g=this.renderer.getPixelRatio();this.material.uniforms.viewportPixelSize.value.multiplyScalar(g),this.material.uniforms.antialiasingFactor.value=2}dispose(){this.material.dispose(),this.copyMaterial2D.dispose(),this.copyMaterial3D.dispose(),this.covarianceRenderTarget.dispose(),this.positionColorRenderTarget.dispose(),this.worker.terminate(),this.worker=null,this.orderAttribute.array=void 0,this.geometry.dispose()}copyTex2D(A,g,I,Q){this.copyMaterial2D.uniforms.sourceTexture.value=A;const C=this.renderer.autoClear,E=this.renderer.getRenderTarget();this.renderer.autoClear=!1;const a=I[2]-I[0],i=I[3]-I[1];g.viewport.set(I[0],I[1],a,i),this.renderer.setRenderTarget(g,Q),this.renderer.render(this.copyScene,this.copyCamera),this.renderer.setRenderTarget(E),this.renderer.autoClear=C}copyTex3D(A,g,I){this.copyMaterial3D.uniforms.sourceTexture.value=A;const Q=this.renderer.autoClear,C=this.renderer.getRenderTarget();this.renderer.autoClear=!1,this.copyQuad.material=this.copyMaterial3D;for(let E=0;E<I;E++)this.renderer.setRenderTarget(g,E),this.copyMaterial3D.uniforms.w.value=(E+.5)/I,this.renderer.render(this.copyScene,this.copyCamera);this.copyQuad.material=this.copyMaterial2D,this.renderer.setRenderTarget(C),this.renderer.autoClear=Q}setSplatsSizeMultiplier(A){this.material.uniforms.sizeMultiplier.value=A*(this.scaleMultiplier||1)}setSplatsCropRadius(A){this.material.uniforms.cropRadius.value=A}sort(A,g){this.worker&&(A?this.cameraPosition&&A.equals(this.cameraPosition)||(this.cameraPosition.copy(A),g?(this.viewProjModel||(this.viewProjModel=new d.Matrix4),this.viewProjModel.copy(g),this.viewProjModel.multiply(Wt)):this.viewProjModel=void 0,this.worker.postMessage({method:"sort",xyz:[this.cameraPosition.x,this.cameraPosition.z,-this.cameraPosition.y],vpm:this.viewProjModel&&this.splatsCPUCuling?this.viewProjModel.toArray():void 0,id:this.sortID++})):this.worker.postMessage({method:"sort",xyz:[this.cameraPosition.x,this.cameraPosition.z,-this.cameraPosition.y],vpm:this.viewProjModel&&this.splatsCPUCuling?this.viewProjModel.toArray():void 0,id:this.sortID++}))}update(){if(this._pendingOrder||this._pendingTextureCopies.length!==0||this._pendingGrowOperations.length!==0){for(;this._pendingGrowOperations.length>0;){const A=this._pendingGrowOperations.shift(),g=A.oldNumTextures;this.renderer.initRenderTarget(A.newPositionColorRenderTarget),this.copyTex3D(A.oldPositionColorRenderTarget.texture,A.newPositionColorRenderTarget,g),A.oldPositionColorRenderTarget.dispose(),this.positionColorRenderTarget=A.newPositionColorRenderTarget,this.material.uniforms.positionColorTexture.value=this.positionColorRenderTarget.texture,this.renderer.initRenderTarget(A.newCovarianceRenderTarget),this.copyTex3D(A.oldCovarianceRenderTarget.texture,A.newCovarianceRenderTarget,g),A.oldCovarianceRenderTarget.dispose(),this.covarianceRenderTarget=A.newCovarianceRenderTarget,this.material.uniforms.covarianceTexture.value=this.covarianceRenderTarget.texture,this.numTextures=A.newNumTextures,this.material.uniforms.numSlices.value=this.numTextures}for(;this._pendingTextureCopies.length>0;){const A=this._pendingTextureCopies.shift(),g=new d.DataTexture(A.array,A.textureSize,A.srcHeight,d.RGBAFormat,d.FloatType);g.internalFormat="RGBA32F",g.generateMipmaps=!1,g.magFilter=d.NearestFilter,g.minFilter=d.NearestFilter,g.anisotropy=0,g.needsUpdate=!0,this.renderer.initTexture(g);const I=A.kind==="positionColor"?this.positionColorRenderTarget:this.covarianceRenderTarget;this.copyTex2D(g,I,A.scissor,A.destTextureLayer),g.dispose()}if(this._pendingOrder){const A=this._pendingOrder;if(this.numSplatsRendered=A.length,A.length>this.orderAttribute.count){const g=new d.InstancedBufferGeometry,I=new Float32Array([-.5,.5,0,.5,.5,0,-.5,-.5,0,.5,-.5,0]),Q=[0,2,1,2,3,1];g.setIndex(Q),g.setAttribute("position",new d.BufferAttribute(I,3));const C=new Uint32Array(this.maxSplats),E=new d.InstancedBufferAttribute(C,1,!1);E.needsUpdate=!0,E.setUsage(d.DynamicDrawUsage),g.setAttribute("order",E),g.instanceCount=0,this.geometry.dispose(),this.geometry=g,this.orderAttribute=E}this.orderAttribute.clearUpdateRanges(),this.orderAttribute.set(A),this.orderAttribute.addUpdateRange(0,A.length),this.orderAttribute.needsUpdate=!0,this.geometry.instanceCount=this._pendingInstanceCount,this.geometry.needsUpdate=!0;for(const g of this._pendingSortIDs)for(let I=this.sortListeners.length-1;I>=0;I--)this.sortListeners[I](g)&&this.sortListeners.splice(I,1);this._pendingOrder=null,this._pendingInstanceCount=0,this._pendingSortIDs.length=0}}}raycast(A,g){}addSplatsTile(A,g,I,Q){if(!this.worker)return;const C=this,E=A.data?A.data.array:A.array,a=A.data&&A.data.isInterleavedBuffer?A.data.stride:3,i=A.data&&A.data.isInterleavedBuffer?A.offset:0,t=Math.ceil(E.length/(this.batchSize*a)),e=[],o=[];let s=()=>{};const n=new Float32Array(E.length/a*3),r=new Uint32Array(n.buffer,n.byteOffset,n.length);for(let D=0;D<E.length/3;D++)n[3*D]=E[D*a+i],n[3*D+1]=E[D*a+i+1],n[3*D+2]=E[D*a+i+2];s=(D,b,h)=>{const w=h*h,f=Math.pow(C.material.uniforms.cropRadius.value,2),p=new d.Matrix3,R=new d.Vector3,m=new d.Vector3,G=new d.Vector3,k=new d.Vector3,U=n.length/3;for(let S=0;S<U;S++){if(R.set(n[3*S],-n[3*S+2],n[3*S+1]),R.lengthSq()>f||D.distanceSqToPoint(R)>w)continue;Pt(I,Q,S,p);const q=m.copy(R).sub(D.origin).dot(D.direction);if(q<0)continue;k.copy(D.direction).multiplyScalar(q).add(D.origin);const z=m.copy(k).sub(R);Vt(p,z,G);const gA=z.dot(G),$=g.getW(S)*Math.exp(-.5*gA);$>.01&&b.push({distance:q,point:k.clone(),opacity:$,type:"splat",object:this})}},t>this.freeAddresses.size&&this.growTextures();for(let D=0;D<t;D++){const b=this.freeAddresses.poll();isNaN(b)&&console.log("insuficient texture size to store splats info"),e.push(b),o.push(3*b);const h=D*this.batchSize;this.addSplatsBatch(h,b,r,g,I,Q)}C.worker.postMessage({method:"addBatches",insertionIndexes:o,positions:E.buffer,offset:i,stride:a,batchSize:C.batchSize},[E.buffer]);let c=!1;return{hide:()=>{c==1&&C.worker&&(C.numVisibleBatches--,c=!1,C.worker.postMessage({method:"hideBatches",insertionIndexes:o,xyz:[C.cameraPosition.x,C.cameraPosition.z,-C.cameraPosition.y],vpm:this.viewProjModel&&this.splatsCPUCuling?this.viewProjModel.toArray():void 0,id:C.sortID++}))},show:D=>{if(c==0&&C.worker){C.numVisibleBatches--,c=!0;const b=C.sortID,h=w=>w>=b&&(D(),!0);C.sortListeners.push(h),C.worker.postMessage({method:"showBatches",insertionIndexes:o,xyz:[C.cameraPosition.x,C.cameraPosition.z,-C.cameraPosition.y],vpm:this.viewProjModel&&this.splatsCPUCuling?this.viewProjModel.toArray():void 0,id:C.sortID++})}},remove:()=>{C.worker&&(s=void 0,C.worker.postMessage({method:"removeBatches",insertionIndexes:o,xyz:[C.cameraPosition.x,C.cameraPosition.z,-C.cameraPosition.y],vpm:this.viewProjModel&&this.splatsCPUCuling?this.viewProjModel.toArray():void 0,id:C.sortID++}),e.forEach(D=>C.freeAddresses.add(D)))},sort:this.sort,raycast:s,isSplatsBatch:!0}}addSplatsBatch(A,g,I,Q,C,E){const a=new Float32Array(4*this.batchSize),i=new Float32Array(4*this.batchSize),t=new ArrayBuffer(4),e=new Uint32Array(t),o=new Float32Array(t),s=h=>(e[0]=h>>>0,o[0]),n=new Float32Array(I.buffer,I.byteOffset,I.length),r=I.length/3;for(let h=g;h<g+this.batchSize;h++){const w=h-g,f=4*w,p=A+w,R=3*(A+w);if(p>=r)break;const m=n[R],G=n[R+1],k=n[R+2],U=Q.getX(p),S=Q.getY(p),q=Q.getZ(p),z=Q.getW(p),gA=xI(C.getX(p),C.getY(p)),$=xI(C.getZ(p),E.getX(p)),X=xI(E.getY(p),E.getZ(p));i[f]=s(gA),i[f+1]=s($),i[f+2]=s(X),i[f+3]=m,a[f]=G,a[f+1]=k;const aA=xI(U,S),wA=xI(q,z);a[f+2]=s(aA),a[f+3]=s(wA)}const c=Math.floor(g/Math.pow(this.textureSize,2)),D=Math.ceil(this.batchSize/this.textureSize),b=[0,g/this.textureSize-c*this.textureSize,this.textureSize];b.push(b[1]+D),this._pendingTextureCopies.push({kind:"positionColor",array:a,textureSize:this.textureSize,srcHeight:D,scissor:b,destTextureLayer:c}),this._pendingTextureCopies.push({kind:"covariance",array:i,textureSize:this.textureSize,srcHeight:D,scissor:b,destTextureLayer:c})}growTextures(){for(let Q=this.maxSplats;Q<this.maxSplats+this.textureSize*this.textureSize;Q+=this.batchSize)this.freeAddresses.add(Q);this.maxSplats+=this.textureSize*this.textureSize;const A=this.numTextures+1,g=new d.WebGL3DRenderTarget(this.textureSize,this.textureSize,A,{magFilter:d.NearestFilter,minFilter:d.NearestFilter,type:d.FloatType,format:d.RGBAFormat,anisotropy:0,depthBuffer:!1,resolveDepthBuffer:!1});g.texture.type=d.FloatType,g.texture.internalFormat="RGBA32F",g.texture.format=d.RGBAFormat;const I=new d.WebGL3DRenderTarget(this.textureSize,this.textureSize,A,{magFilter:d.NearestFilter,minFilter:d.NearestFilter,anisotropy:0,type:d.FloatType,format:d.RGBAFormat,depthBuffer:!1,resolveDepthBuffer:!1});I.texture.type=d.FloatType,I.texture.internalFormat="RGBA32F",I.texture.format=d.RGBAFormat,this._pendingGrowOperations.push({newPositionColorRenderTarget:g,newCovarianceRenderTarget:I,oldPositionColorRenderTarget:this.positionColorRenderTarget,oldCovarianceRenderTarget:this.covarianceRenderTarget,oldNumTextures:this.numTextures,newNumTextures:A})}}function Da(){return`
|
|
1218
|
+
}`,transparent:!1,side:l.FrontSide,depthTest:!1,depthWrite:!1}),this.copyCamera=new l.OrthographicCamera(-.5,.5,.5,-.5,.1,10),this.copyCamera.position.z=1,this.copyScene=new l.Scene;const c=new l.PlaneGeometry(1,1);this.copyQuad=new l.Mesh(c,this.copyMaterial2D),this.copyScene.add(this.copyQuad),this.copyScene.matrixAutoUpdate=!1,this.copyQuad.matrixAutoUpdate=!1,this.splatsCPUCuling=!1}setQuality(A){const g=2+2*(A=Math.max(0,Math.min(1,1-A)));this.material.uniforms.k.value=g,this.material.uniforms.beta_k.value=Math.pow(4*Ao(2/g)/g,g/2),this.material.uniforms.minSplatPixelSize.value=5*A,this.material.uniforms.minOpacity.value=.01}setSplatsCPUCulling(A){this.splatsCPUCuling=A,this.material.uniforms.culling.value=A}setDepthBias(A){this.depthBias=A,this.material.uniforms.depthBias.value=this.depthBias}setExposureEV(A){this.material&&this.material.uniforms&&this.material.uniforms.exposureEV!==void 0&&(this.material.uniforms.exposureEV.value=A)}setSaturation(A){this.material&&this.material.uniforms&&this.material.uniforms.saturation!==void 0&&(this.material.uniforms.saturation.value=A)}setContrast(A){this.material&&this.material.uniforms&&this.material.uniforms.contrast!==void 0&&(this.material.uniforms.contrast.value=A)}setTempTint(A,g){this.material&&this.material.uniforms&&this.material.uniforms.tempTint!==void 0&&this.material.uniforms.tempTint.value.set(A,g)}updateShaderParams(A){A.projectionMatrix.elements,this.renderer.getSize(this.material.uniforms.viewportPixelSize.value);const g=this.renderer.getPixelRatio();this.material.uniforms.viewportPixelSize.value.multiplyScalar(g),this.material.uniforms.antialiasingFactor.value=2}dispose(){this.material.dispose(),this.copyMaterial2D.dispose(),this.copyMaterial3D.dispose(),this.covarianceRenderTarget.dispose(),this.positionColorRenderTarget.dispose(),this.worker.terminate(),this.worker=null,this.orderAttribute.array=void 0,this.geometry.dispose()}copyTex2D(A,g,I,Q){this.copyMaterial2D.uniforms.sourceTexture.value=A;const C=this.renderer.autoClear,a=this.renderer.getRenderTarget();this.renderer.autoClear=!1;const e=I[2]-I[0],i=I[3]-I[1];g.viewport.set(I[0],I[1],e,i),this.renderer.setRenderTarget(g,Q),this.renderer.render(this.copyScene,this.copyCamera),this.renderer.setRenderTarget(a),this.renderer.autoClear=C}copyTex3D(A,g,I){this.copyMaterial3D.uniforms.sourceTexture.value=A;const Q=this.renderer.autoClear,C=this.renderer.getRenderTarget();this.renderer.autoClear=!1,this.copyQuad.material=this.copyMaterial3D;for(let a=0;a<I;a++)this.renderer.setRenderTarget(g,a),this.copyMaterial3D.uniforms.w.value=(a+.5)/I,this.renderer.render(this.copyScene,this.copyCamera);this.copyQuad.material=this.copyMaterial2D,this.renderer.setRenderTarget(C),this.renderer.autoClear=Q}setSplatsSizeMultiplier(A){this.material.uniforms.sizeMultiplier.value=A*(this.scaleMultiplier||1)}setSplatsCropRadius(A){this.material.uniforms.cropRadius.value=A}sort(A,g){this.worker&&(A?this.cameraPosition&&A.equals(this.cameraPosition)||(this.cameraPosition.copy(A),g?(this.viewProjModel||(this.viewProjModel=new l.Matrix4),this.viewProjModel.copy(g),this.viewProjModel.multiply(Bo)):this.viewProjModel=void 0,this.worker.postMessage({method:"sort",xyz:[this.cameraPosition.x,this.cameraPosition.z,-this.cameraPosition.y],vpm:this.viewProjModel&&this.splatsCPUCuling?this.viewProjModel.toArray():void 0,id:this.sortID++})):this.worker.postMessage({method:"sort",xyz:[this.cameraPosition.x,this.cameraPosition.z,-this.cameraPosition.y],vpm:this.viewProjModel&&this.splatsCPUCuling?this.viewProjModel.toArray():void 0,id:this.sortID++}))}update(){if(this._pendingOrder||this._pendingTextureCopies.length!==0||this._pendingGrowOperations.length!==0){for(;this._pendingGrowOperations.length>0;){const A=this._pendingGrowOperations.shift(),g=A.oldNumTextures;this.renderer.initRenderTarget(A.newPositionColorRenderTarget),this.copyTex3D(A.oldPositionColorRenderTarget.texture,A.newPositionColorRenderTarget,g),A.oldPositionColorRenderTarget.dispose(),this.positionColorRenderTarget=A.newPositionColorRenderTarget,this.material.uniforms.positionColorTexture.value=this.positionColorRenderTarget.texture,this.renderer.initRenderTarget(A.newCovarianceRenderTarget),this.copyTex3D(A.oldCovarianceRenderTarget.texture,A.newCovarianceRenderTarget,g),A.oldCovarianceRenderTarget.dispose(),this.covarianceRenderTarget=A.newCovarianceRenderTarget,this.material.uniforms.covarianceTexture.value=this.covarianceRenderTarget.texture,this.numTextures=A.newNumTextures,this.material.uniforms.numSlices.value=this.numTextures}for(;this._pendingTextureCopies.length>0;){const A=this._pendingTextureCopies.shift(),g=new l.DataTexture(A.array,A.textureSize,A.srcHeight,l.RGBAFormat,l.FloatType);g.internalFormat="RGBA32F",g.generateMipmaps=!1,g.magFilter=l.NearestFilter,g.minFilter=l.NearestFilter,g.anisotropy=0,g.needsUpdate=!0,this.renderer.initTexture(g);const I=A.kind==="positionColor"?this.positionColorRenderTarget:this.covarianceRenderTarget;this.copyTex2D(g,I,A.scissor,A.destTextureLayer),g.dispose()}if(this._pendingOrder){const A=this._pendingOrder;if(this.numSplatsRendered=A.length,A.length>this.orderAttribute.count){const g=new l.InstancedBufferGeometry,I=new Float32Array([-.5,.5,0,.5,.5,0,-.5,-.5,0,.5,-.5,0]),Q=[0,2,1,2,3,1];g.setIndex(Q),g.setAttribute("position",new l.BufferAttribute(I,3));const C=new Uint32Array(this.maxSplats),a=new l.InstancedBufferAttribute(C,1,!1);a.needsUpdate=!0,a.setUsage(l.DynamicDrawUsage),g.setAttribute("order",a),g.instanceCount=0,this.geometry.dispose(),this.geometry=g,this.orderAttribute=a}this.orderAttribute.clearUpdateRanges(),this.orderAttribute.set(A),this.orderAttribute.addUpdateRange(0,A.length),this.orderAttribute.needsUpdate=!0,this.geometry.instanceCount=this._pendingInstanceCount,this.geometry.needsUpdate=!0;for(const g of this._pendingSortIDs)for(let I=this.sortListeners.length-1;I>=0;I--)this.sortListeners[I](g)&&this.sortListeners.splice(I,1);this._pendingOrder=null,this._pendingInstanceCount=0,this._pendingSortIDs.length=0}}}raycast(A,g){}addSplatsTile(A,g,I,Q){if(!this.worker)return;const C=this,a=A.data?A.data.array:A.array,e=A.data&&A.data.isInterleavedBuffer?A.data.stride:3,i=A.data&&A.data.isInterleavedBuffer?A.offset:0,t=Math.ceil(a.length/(this.batchSize*e)),E=[],o=[];let r=()=>{};const n=new Float32Array(a.length/e*3),s=new Uint32Array(n.buffer,n.byteOffset,n.length);for(let d=0;d<a.length/3;d++)n[3*d]=a[d*e+i],n[3*d+1]=a[d*e+i+1],n[3*d+2]=a[d*e+i+2];r=(d,D,h)=>{const u=h*h,f=Math.pow(C.material.uniforms.cropRadius.value,2),R=new l.Matrix3,G=new l.Vector3,k=new l.Vector3,F=new l.Vector3,m=new l.Vector3,N=n.length/3;for(let S=0;S<N;S++){if(G.set(n[3*S],-n[3*S+2],n[3*S+1]),G.lengthSq()>f||d.distanceSqToPoint(G)>u)continue;Qo(I,Q,S,R);const j=k.copy(G).sub(d.origin).dot(d.direction);if(j<0)continue;m.copy(d.direction).multiplyScalar(j).add(d.origin);const z=k.copy(m).sub(G);Co(R,z,F);const $=z.dot(F),_=g.getW(S)*Math.exp(-.5*$);_>.01&&D.push({distance:j,point:m.clone(),opacity:_,type:"splat",object:this})}},t>this.freeAddresses.size&&this.growTextures();for(let d=0;d<t;d++){const D=this.freeAddresses.poll();isNaN(D)&&console.log("insuficient texture size to store splats info"),E.push(D),o.push(3*D);const h=d*this.batchSize;this.addSplatsBatch(h,D,s,g,I,Q)}C.worker.postMessage({method:"addBatches",insertionIndexes:o,positions:a.buffer,offset:i,stride:e,batchSize:C.batchSize},[a.buffer]);let c=!1;return{hide:()=>{c==1&&C.worker&&(C.numVisibleBatches--,c=!1,C.worker.postMessage({method:"hideBatches",insertionIndexes:o,xyz:[C.cameraPosition.x,C.cameraPosition.z,-C.cameraPosition.y],vpm:this.viewProjModel&&this.splatsCPUCuling?this.viewProjModel.toArray():void 0,id:C.sortID++}))},show:d=>{if(c==0&&C.worker){C.numVisibleBatches--,c=!0;const D=C.sortID,h=u=>u>=D&&(d(),!0);C.sortListeners.push(h),C.worker.postMessage({method:"showBatches",insertionIndexes:o,xyz:[C.cameraPosition.x,C.cameraPosition.z,-C.cameraPosition.y],vpm:this.viewProjModel&&this.splatsCPUCuling?this.viewProjModel.toArray():void 0,id:C.sortID++})}},remove:()=>{C.worker&&(r=void 0,C.worker.postMessage({method:"removeBatches",insertionIndexes:o,xyz:[C.cameraPosition.x,C.cameraPosition.z,-C.cameraPosition.y],vpm:this.viewProjModel&&this.splatsCPUCuling?this.viewProjModel.toArray():void 0,id:C.sortID++}),E.forEach(d=>C.freeAddresses.add(d)))},sort:this.sort,raycast:r,isSplatsBatch:!0}}addSplatsBatch(A,g,I,Q,C,a){const e=new Float32Array(4*this.batchSize),i=new Float32Array(4*this.batchSize),t=new ArrayBuffer(4),E=new Uint32Array(t),o=new Float32Array(t),r=h=>(E[0]=h>>>0,o[0]),n=new Float32Array(I.buffer,I.byteOffset,I.length),s=I.length/3;for(let h=g;h<g+this.batchSize;h++){const u=h-g,f=4*u,R=A+u,G=3*(A+u);if(R>=s)break;const k=n[G],F=n[G+1],m=n[G+2],N=Q.getX(R),S=Q.getY(R),j=Q.getZ(R),z=Q.getW(R),$=HI(C.getX(R),C.getY(R)),_=HI(C.getZ(R),a.getX(R)),X=HI(a.getY(R),a.getZ(R));i[f]=r($),i[f+1]=r(_),i[f+2]=r(X),i[f+3]=k,e[f]=F,e[f+1]=m;const CA=HI(N,S),sA=HI(j,z);e[f+2]=r(CA),e[f+3]=r(sA)}const c=Math.floor(g/Math.pow(this.textureSize,2)),d=Math.ceil(this.batchSize/this.textureSize),D=[0,g/this.textureSize-c*this.textureSize,this.textureSize];D.push(D[1]+d),this._pendingTextureCopies.push({kind:"positionColor",array:e,textureSize:this.textureSize,srcHeight:d,scissor:D,destTextureLayer:c}),this._pendingTextureCopies.push({kind:"covariance",array:i,textureSize:this.textureSize,srcHeight:d,scissor:D,destTextureLayer:c})}growTextures(){for(let Q=this.maxSplats;Q<this.maxSplats+this.textureSize*this.textureSize;Q+=this.batchSize)this.freeAddresses.add(Q);this.maxSplats+=this.textureSize*this.textureSize;const A=this.numTextures+1,g=new l.WebGL3DRenderTarget(this.textureSize,this.textureSize,A,{magFilter:l.NearestFilter,minFilter:l.NearestFilter,type:l.FloatType,format:l.RGBAFormat,anisotropy:0,depthBuffer:!1,resolveDepthBuffer:!1});g.texture.type=l.FloatType,g.texture.internalFormat="RGBA32F",g.texture.format=l.RGBAFormat;const I=new l.WebGL3DRenderTarget(this.textureSize,this.textureSize,A,{magFilter:l.NearestFilter,minFilter:l.NearestFilter,anisotropy:0,type:l.FloatType,format:l.RGBAFormat,depthBuffer:!1,resolveDepthBuffer:!1});I.texture.type=l.FloatType,I.texture.internalFormat="RGBA32F",I.texture.format=l.RGBAFormat,this._pendingGrowOperations.push({newPositionColorRenderTarget:g,newCovarianceRenderTarget:I,oldPositionColorRenderTarget:this.positionColorRenderTarget,oldCovarianceRenderTarget:this.covarianceRenderTarget,oldNumTextures:this.numTextures,newNumTextures:A})}}function we(){return`
|
|
1219
1219
|
precision highp float;
|
|
1220
1220
|
precision highp int;
|
|
1221
1221
|
precision highp sampler3D;
|
|
@@ -1456,7 +1456,7 @@ void main() {
|
|
|
1456
1456
|
// Contrast (linear, pivot around 0.5)
|
|
1457
1457
|
adjustedColor = (adjustedColor - 0.5) * contrast + 0.5;
|
|
1458
1458
|
}
|
|
1459
|
-
`}function
|
|
1459
|
+
`}function fe(){return`
|
|
1460
1460
|
precision highp float;
|
|
1461
1461
|
precision highp int;
|
|
1462
1462
|
|
|
@@ -1489,7 +1489,7 @@ void main() {
|
|
|
1489
1489
|
fragColor = vec4(display, alpha);
|
|
1490
1490
|
gl_FragDepth = splatDepthWithBias;
|
|
1491
1491
|
|
|
1492
|
-
}`}function
|
|
1492
|
+
}`}function ye(){return`
|
|
1493
1493
|
|
|
1494
1494
|
precision highp float;
|
|
1495
1495
|
precision highp int;
|
|
@@ -1499,5 +1499,435 @@ out vec2 vUv;
|
|
|
1499
1499
|
void main() {
|
|
1500
1500
|
vUv = uv;
|
|
1501
1501
|
gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
|
|
1502
|
-
}`}function Pt(B,A,g,I){const Q=B.getX(g),C=B.getY(g),E=B.getZ(g),a=A.getX(g),i=A.getY(g),t=A.getZ(g);I.set(Q,C,E,C,a,i,E,i,t)}function Vt(B,A,g){const I=B.determinant();if(Math.abs(I)<1e-12)return void g.set(0,0,0);const Q=1/I,C=new d.Matrix3().copy(B);C.elements[0]=A.x,C.elements[3]=A.y,C.elements[6]=A.z;const E=new d.Matrix3().copy(B);E.elements[1]=A.x,E.elements[4]=A.y,E.elements[7]=A.z;const a=new d.Matrix3().copy(B);a.elements[2]=A.x,a.elements[5]=A.y,a.elements[8]=A.z,g.set(C.determinant()*Q,E.determinant()*Q,a.determinant()*Q)}var FA;const Fg=new W.Sphere(new W.Vector3(0,0,0),1),Lg=new og([0,0,0,1,0,0,0,1,0,0,0,1]);new W.Box3;const Wg=new W.Vector3(0,0,0),GI=new W.Vector3(0,0,0),zt=new W.Vector3(0,1,0),bB=new W.Ray,wB=new W.Matrix4;new W.Matrix4,new W.Frustum;const uB=new W.Vector3,lB=[],wa=new W.Quaternion,Ng={};function ua(){var B=[];for(let A in Ng)Ng.hasOwnProperty(A)&&Ng[A]>0&&B.push(A);return B}class FQ extends W.Object3D{constructor(A){super();const g=this;if(g.splatsMesh=A.splatsMesh,g.oldUltraMeshSplats=A.oldUltraMeshSplats,g.iosCompatibility=A.iosCompatibility,g.splatsQuality=A.splatsQuality!=null?A.splatsQuality:.75,g.splatsCPUCulling=A.splatsCPUCulling!=null&&A.splatsCPUCulling,this.contentURL=[],A.domWidth&&A.domHeight?this.rendererSize=new W.Vector2(A.domWidth,A.domHeight):this.rendererSize=new W.Vector2(1e3,1e3),this.setClipShape(A.clipShape),this.loadingStrategy=A.loadingStrategy?A.loadingStrategy.toUpperCase():"INCREMENTAL",this.distanceBias=Math.max(1e-4,A.distanceBias?A.distanceBias:1),this.proxy=A.proxy,this.drawBoundingVolume=!!A.drawBoundingVolume&&A.drawBoundingVolume,this.displayErrors=A.displayErrors,this.displayCopyright=A.displayCopyright,A.queryParams&&(this.queryParams={...A.queryParams}),this.uuid=zC(),A.tileLoader)this.tileLoader=A.tileLoader;else{const E={};E.meshCallback=A.meshCallback?A.meshCallback:(i,t)=>{i.material.wireframe=!1,i.material.side=W.DoubleSide},E.pointsCallback=A.pointsCallback?A.pointsCallback:(i,t)=>{i.material.size=Math.pow(t,.33),i.material.sizeAttenuation=!0},E.proxy=this.proxy,E.renderer=A.renderer,E.dracoLoader=A.dracoLoader,E.ktx2Loader=A.ktx2Loader,g.tileLoader=new WC(E);const a=this.update;this.update=i=>{a.call(g,i),g.tileLoader.update()}}this.displayCopyright=!!A.displayCopyright,this.geometricErrorMultiplier=A.geometricErrorMultiplier?A.geometricErrorMultiplier:1,this.splatsCropRadius=Number.MAX_VALUE,this.splatsSizeMultiplier=1,this.splatsExposureEV=A&&A.splatsExposureEV!==void 0?A.splatsExposureEV:0,this.splatsSaturation=A&&A.splatsSaturation!==void 0?A.splatsSaturation:1,this.splatsContrast=A&&A.splatsContrast!==void 0?A.splatsContrast:1;const I=A&&A.splatsTempTint!==void 0?A.splatsTempTint:[0,0];if(this.splatsTempTint=Array.isArray(I)?[Number(I[0]||0),Number(I[1]||0)]:[Number(I.temp||0),Number(I.tint||0)],this.renderer=A.renderer,this.meshCallback=A.meshCallback,this.loadOutsideView=A.loadOutsideView,this.cameraOnLoad=A.cameraOnLoad,this.parentTile=A.parentTile,this.occlusionCullingService=A.occlusionCullingService,this.static=A.static,this.occlusionCullingService&&(this.color=new W.Color,this.color.setHex(16777215*Math.random()),this.colorID=W.MathUtils.clamp(255*g.color.r,0,255)<<16^W.MathUtils.clamp(255*g.color.g,0,255)<<8^W.MathUtils.clamp(255*g.color.b,0,255)),this.static&&(this.matrixAutoUpdate=!1,this.matrixWorldAutoUpdate=!1),this.childrenTiles=[],this.meshContent=[],this.tileContent,this.refine,this.rootPath,this.geometricError,this.boundingVolume,this.json,this.materialVisibility=!1,this.level=A.level?A.level:0,this.hasMeshContent=0,this.hasUnloadedJSONContent=0,this.centerModel=A.centerModel,this.abortController=new AbortController,this.onLoadCallback=A.onLoadCallback,A.json)g._setup(A);else if(A.url){var Q=A.url;if(g.queryParams){var C="";for(let E in g.queryParams)g.queryParams.hasOwnProperty(E)&&(C+="&"+E+"="+g.queryParams[E]);Q.includes("?")?Q+=C:Q+="?"+C.substring(1)}(g.proxy?()=>fetch(g.proxy,{method:"POST",body:Q,signal:g.abortController.signal}):()=>fetch(Q,{signal:g.abortController.signal}))().then(E=>{if(!E.ok)throw new Error(`couldn't load "${A.url}". Request failed with status ${E.status} : ${E.statusText}`);E.json().then(a=>XB(a,Q)).then(a=>{g._setup({rootPath:II.dirname(A.url),json:a})})}).catch(E=>{g.displayErrors&&la(E)})}}setClipShape(A){if(A instanceof og||A instanceof W.Sphere)this.clipShape=A;else if(A instanceof W.Box3){const g=new W.Vector3,I=new W.Vector3;A.getCenter(g),A.getSize(I).multiplyScalar(.5),this.clipShape=new og([g.x,g.y,g.z,I.x,0,0,0,I.y,0,0,0,I.z])}else A=void 0;this.childrenTiles&&this.childrenTiles.forEach(g=>{g._setClipShape(this.clipShape)})}_setClipShape(A){this.clipShape=A,this.childrenTiles&&this.childrenTiles.forEach(g=>{g._setClipShape(this.clipShape)})}setSplatsSizeMultiplier(A){this.splatsSizeMultiplier=A,this.splatsMesh&&this.splatsMesh.setSplatsSizeMultiplier(this.splatsSizeMultiplier)}setSplatsCropRadius(A){this.splatsCropRadius=A,this.splatsMesh&&this.splatsMesh.setSplatsCropRadius(this.splatsCropRadius)}setSplatsDepthBias(A){this.splatsDepthBias=A,this.splatsMesh&&this.splatsMesh.setDepthBias(this.splatsDepthBias)}setSplatsCPUCulling(A){this.splatsCPUCulling=A,this.splatsMesh&&this.splatsMesh.setSplatsCPUCulling(A)}setSplatsQuality(A){this.splatsQuality=A,this.splatsMesh&&this.splatsMesh.setQuality(A)}setSplatsExposureEV(A){this.splatsExposureEV=A,this.splatsMesh&&typeof this.splatsMesh.setExposureEV=="function"&&this.splatsMesh.setExposureEV(A)}setSplatsSaturation(A){this.splatsSaturation=A,this.splatsMesh&&typeof this.splatsMesh.setSaturation=="function"&&this.splatsMesh.setSaturation(A)}setSplatsContrast(A){this.splatsContrast=A,this.splatsMesh&&typeof this.splatsMesh.setContrast=="function"&&this.splatsMesh.setContrast(A)}setSplatsTempTint(A,g){this.splatsTempTint=[A,g],this.splatsMesh&&typeof this.splatsMesh.setTempTint=="function"&&this.splatsMesh.setTempTint(A,g)}updateMatrices(){this.updateMatrix(),this.splatsMesh&&this.splatsMesh.updateMatrix(),this.static&&(this.traverse(A=>{A.isObject3D&&(A.matrixWorldAutoUpdate=!0)}),this.splatsMesh&&(this.splatsMesh.matrixWorldAutoUpdate=!0)),this.updateMatrixWorld(!0),this.static&&(this.traverse(A=>{A.isObject3D&&(A.matrixWorldAutoUpdate=!1)}),this.splatsMesh&&(this.splatsMesh.matrixWorldAutoUpdate=!1))}setCanvasSize(A,g){this.rendererSize.set(A,g)}async _setup(A){const g=this;if(A.json.extensionsRequired&&(A.json.extensionsRequired.includes("JDULTRA_gaussian_splats")||A.json.extensionsRequired.includes("JDULTRA_gaussian_splats_V2"))&&(g.oldUltraMeshSplats=!0),A.json.root?(g.json=A.json.root,g.json.refine||(g.json.refine=A.json.refine),g.json.geometricError||(g.json.geometricError=A.json.geometricError),g.json.transform||(g.json.transform=A.json.transform),g.json.boundingVolume||(g.json.boundingVolume=A.json.boundingVolume)):g.json=A.json,g.json.children||(g.json.getChildren?g.json.children=await g.json.getChildren():g.json.children=[]),g.rootPath=A.json.rootPath?A.json.rootPath:A.rootPath,g.json.refine?g.refine=g.json.refine:g.refine=A.parentRefine,g.json.geometricError?g.geometricError=g.json.geometricError:g.geometricError=A.parentGeometricError,g.json.transform){let Q=new W.Matrix4;Q.elements=g.json.transform,g.applyMatrix4(Q)}if(g.json.boundingVolume)if(g.json.boundingVolume.box)g.boundingVolume=new og(g.json.boundingVolume.box);else if(g.json.boundingVolume.region){const Q=g.json.boundingVolume.region;g._transformWGS84ToCartesian(Q[0],Q[1],Q[4],Wg),g._transformWGS84ToCartesian(Q[2],Q[3],Q[5],GI),Wg.lerp(GI,.5),g.boundingVolume=new W.Sphere(new W.Vector3(Wg.x,Wg.y,Wg.z),Wg.distanceTo(GI))}else if(g.json.boundingVolume.sphere){const Q=g.json.boundingVolume.sphere;g.boundingVolume=new W.Sphere(new W.Vector3(Q[0],Q[1],Q[2]),Q[3])}else g.boundingVolume=A.parentBoundingVolume;else g.boundingVolume=A.parentBoundingVolume;function I(Q){Q.uri&&Q.uri.includes("json")||Q.url&&Q.url.includes("json")?g.hasUnloadedJSONContent++:g.hasMeshContent++}if(g.json.content?(I(g.json.content),g.hasMeshContent==0&&(g.level=Math.max(0,g.parentTile?g.parentTile.level+.01:0)),g._load()):g.json.contents&&(g.json.contents.forEach(Q=>I(Q)),g.hasMeshContent==0&&(g.level=Math.max(0,g.parentTile?g.parentTile.level+.01:0))),g.centerModel&&(GI.copy(g.boundingVolume.center),this.json.boundingVolume.region&&(this._transformWGS84ToCartesian(.5*(this.json.boundingVolume.region[0]+this.json.boundingVolume.region[2]),.5*(this.json.boundingVolume.region[1]+this.json.boundingVolume.region[3]),.5*(this.json.boundingVolume.region[4]+this.json.boundingVolume.region[5]),Wg),wa.setFromUnitVectors(Wg.normalize(),zt.normalize()),g.applyQuaternion(wa)),GI.applyMatrix4(g.matrix),g.position.sub(GI),g.updateMatrices()),g.onLoadCallback&&g.onLoadCallback(g),g.isSetup=!0,g.level>0&&g.drawBoundingVolume)if(g.bbox&&console.log("double setup"),this.boundingVolume.aabb){let Q=this.boundingVolume.aabb.clone();Q.applyMatrix4(this.matrixWorld),g.bbox=new W.Box3Helper(Q,new W.Color(Math.random(),Math.random(),Math.random())),g.add(g.bbox),g.bbox.material.visible=!1}else g.boundingVolume instanceof og&&(g.bbox=g.boundingVolume.helper(),g.add(g.bbox),g.bbox.material.visible=!1)}_assembleURL(A,g){A.endsWith("/")||(A+="/");try{const I=new URL(A);let Q=I.pathname.split("/").filter(E=>E!==""),C=g.split("/").filter(E=>E!=="");for(let E=1;E<=Q.length&&!(E>=C.length);E++)if(Q.slice(Q.length-E,Q.length).join("/")===C.slice(0,E).join("/")){for(let i=0;i<E;i++)Q.pop();break}for(;C.length>0&&C[0]==="..";)Q.pop(),C.shift();return`${I.protocol}//${I.host}/${[...Q,...C].join("/")}`}catch{return A.endsWith("/")||g.startsWith("/")?A+g:A+"/"+g}}_extractQueryParams(A,g){try{const I=new URL(A);for(let[Q,C]of I.searchParams)g[Q]=C;return I.search="",I.toString()}catch{return A}}async _load(A=!0,g=!0){var I=this;if(!I.deleted||!g){if(I.json.content)await Q(I.json.content,null,A,g);else if(I.json.contents){let C=I.json.contents.map((E,a)=>Q(E,a,A,g));Promise.all(C)}}async function Q(C,E,a,i){let t;C.uri?t=C.uri:C.url&&(t=C.url);const e=/^(?:http|https|ftp|tcp|udp):\/\/\S+/;if(e.test(I.rootPath)?e.test(t)||(t=I._assembleURL(I.rootPath,t)):t=I.rootPath+II.sep+t,t.startsWith("/local-tiles")||(t=I._extractQueryParams(t,I.queryParams)),I.queryParams){var o="";for(let s in I.queryParams)I.queryParams.hasOwnProperty(s)&&(o+="&"+s+"="+I.queryParams[s]);t.includes("?")?t+=o:t+="?"+o.substring(1)}if(t)if(I.contentURL.push(t),i&&(t.includes(".b3dm")||t.includes(".glb")||t.includes(".gltf")))try{I.tileLoader.get(I.abortController,I.uuid,t,s=>{if(!I.deleted){if(s.asset&&s.asset.copyright&&(s.asset.copyright.split(";").forEach(n=>{Ng[n]?Ng[n]++:Ng[n]=1}),I.displayCopyright&&yQ()),s.isSplatsData){if(!I.splatsMesh){if(I.splatsMesh=new ha(I.tileLoader.renderer,void 0,void 0,I.oldUltraMeshSplats?.25:1),I.splatsMesh.setQuality(I.splatsQuality),I.splatsMesh.setSplatsCPUCulling(I.splatsCPUCulling),I.splatsMesh.setSplatsCropRadius(I.splatsCropRadius),I.splatsMesh.setSplatsSizeMultiplier(I.splatsSizeMultiplier),I.splatsExposureEV!==void 0&&typeof I.splatsMesh.setExposureEV=="function"&&I.splatsMesh.setExposureEV(I.splatsExposureEV),I.splatsSaturation!==void 0&&typeof I.splatsMesh.setSaturation=="function"&&I.splatsMesh.setSaturation(I.splatsSaturation),I.splatsContrast!==void 0&&typeof I.splatsMesh.setContrast=="function"&&I.splatsMesh.setContrast(I.splatsContrast),I.splatsTempTint!==void 0&&typeof I.splatsMesh.setTempTint=="function"){const n=I.splatsTempTint||[0,0];I.splatsMesh.setTempTint(n[0],n[1])}I.static&&(I.splatsMesh.matrixAutoUpdate=!1,I.splatsMesh.matrixWorldAutoUpdate=!1),I.add(I.splatsMesh),I.updateMatrices()}s=I.splatsMesh.addSplatsTile(s.positions,s.colors,s.cov0,s.cov1)}return s.isSplatsBatch||(s.traverse(n=>{if((n.isMesh||n.isPoints)&&n.layers.disable(0),n.isMesh&&I.occlusionCullingService){const r=n.geometry.attributes.position,c=[];for(let D=0;D<r.count;D++)c.push(I.color.r,I.color.g,I.color.b);n.geometry.setAttribute("color",new W.Float32BufferAttribute(c,3))}}),I.add(s),I.updateMatrices()),I.meshContent.push(s),s}},I.cameraOnLoad?()=>I.loadingStrategy=="IMMEDIATE"?I._calculateDistanceToCamera(I.cameraOnLoad):I.loadingStrategy=="INCREMENTAL"?I.parentTile?I.parentTile._calculateDistanceToCamera(I.cameraOnLoad)/Math.max(1,I.parentTile.level):I._calculateDistanceToCamera(I.cameraOnLoad)/Math.max(1,I.level):I.loadingStrategy=="PERLEVEL"?I.parentTile?I.level+I.parentTile._calculateDistanceToCamera(I.cameraOnLoad):I.level+I._calculateDistanceToCamera(I.cameraOnLoad):0:()=>0,()=>I._getSiblings(),I.level,I.loadingStrategy,!I.json.boundingVolume.region,!!I.json.boundingVolume.region,I.geometricError,I.oldUltraMeshSplats)}catch(s){I.displayErrors&&la(s)}else a&&t.includes(".json")&&(I.jsonRequested=t,I.tileLoader.get(I.abortController,I.uuid,t,async s=>{I.jsonReceived=!0,s.rootPath=II.dirname(t),I.json.children.push(s),E==null?delete I.json.content:I.json.contents.splice(E,1),I.hasUnloadedJSONContent--}))}}dispose(){const A=this;A.meshContent.forEach(g=>{g&&g.asset&&g.asset.copyright&&(g.asset.copyright.split(";").forEach(I=>{Ng[I]&&Ng[I]--}),A.displayCopyright&&yQ())}),A.childrenTiles.forEach(g=>g.dispose()),A.deleted=!0,A.splatsMesh&&(A.meshContent.forEach(g=>g.hide()),A.parentTile||(A.splatsMesh.dispose(),A.splatsMesh=void 0)),A.contentURL&&(A.contentURL.forEach(g=>{A.tileLoader.invalidate(g,A.uuid)}),A.contentURL=[]),A.abortController&&!A.jsonRequested&&A.abortController.abort("tile not needed"),this.parent=null,A.meshContent=[],A.bbox&&A.bbox.dispose(),this.dispatchEvent({type:"removed"})}_disposeMeshContent(){const A=this;if(!A.deleted){A.deleted=!0,A.abortController&&(A.abortController.abort("tile not needed"),A.abortController=new AbortController);for(let g=A.meshContent.length-1;g>=0;g--){const I=A.meshContent[g];I&&I.asset&&I.asset.copyright&&(I.asset.copyright.split(";").forEach(Q=>{Ng[Q]&&Ng[Q]--}),A.displayCopyright&&yQ()),A.remove(I)}A.splatsMesh&&A.meshContent.forEach(g=>g.hide()),A.meshContent=[],A.contentURL.forEach(g=>{A.tileLoader.invalidate(g,A.uuid)}),A.contentURL=[]}}_disposeChildren(){var A=this;A.childrenTiles.forEach(g=>{g.dispose(),A.remove(g)}),A.childrenTiles=[]}raycast(A,g){if(this.splatsMesh){bB.copy(A.ray),wB.copy(this.matrixWorld).invert(),bB.applyMatrix4(wB);let I=!1;if(this.boundingVolume instanceof og)I=this.boundingVolume.intersectsRay(bB);else{if(!(this.boundingVolume instanceof W.Sphere))return!1;I=ray.intersectsSphere(this.boundingVolume)}return I&&this.materialVisibility&&this.splatsReady&&(lB.length=0,this.meshContent.forEach(Q=>{Q.isSplatsBatch&&(Q.raycast(bB,lB,A.params.Points.threshold),lB.forEach(C=>{C.point.applyMatrix4(this.matrixWorld)}),g.push(...lB))})),I}return super.raycast(A,g)}update(A){this.splatsMesh&&this.splatsMesh.updateShaderParams(A,this.renderer);const g=new W.Frustum;g.setFromProjectionMatrix(new W.Matrix4().multiplyMatrices(A.projectionMatrix,A.matrixWorldInverse));let I=[0],Q=[0],C=[0],E=[0];if(this.refine=="REPLACE"?this.loadingStrategy==="IMMEDIATE"?(this._updateImmediate(A,g),this._statsImmediate(C,I,E,Q)):(this._update(A,g),this._stats(C,I,E,Q)):(this._update(A,g),this._stats(C,I,E,Q)),I>0&&(E[0]/=I[0]),this.splatsMesh)if(uB.copy(A.position),wB.copy(this.matrixWorld).invert(),uB.applyMatrix4(wB),this.splatsCPUCulling){const a=new W.Matrix4().multiplyMatrices(A.projectionMatrix,A.matrixWorldInverse).multiply(this.matrixWorld);this.splatsMesh.sort(uB,a)}else this.splatsMesh.sort(uB);return this.splatsMesh&&this.splatsMesh.update(),{numTilesLoaded:I[0],numTilesRendered:Q[0],maxLOD:C[0],percentageLoaded:E[0]}}_updateImmediate(A,g){this._computeMetricRecursive(A,g),this._updateNodeVisibilityImmediate(),this._expandTreeImmediate(A),this.shouldBeVisible=this.metric>0||!!this.loadOutsideView,this._shouldBeVisibleUpdateImmediate(),this._trimTreeImmediate(),this._loadMeshImmediate()}_statsImmediate(A,g,I,Q){A[0]=Math.max(A[0],this.level),(this.shouldBeVisible||this.materialVisibility)&&(g[0]++,this.materialVisibility&&I[0]++),this.materialVisibility&&Q[0]++,this.childrenTiles.forEach(C=>{C._statsImmediate(A,g,I,Q)})}_stats(A,g,I,Q){A[0]=Math.max(A[0],this.level),this.hasMeshContent&&(g[0]++,this.meshContent.length==this.hasMeshContent&&I[0]++,this.materialVisibility&&Q[0]++),this.childrenTiles.forEach(C=>{C._stats(A,g,I,Q)})}_trimTreeImmediate(){const A=this;if(A.metric!=null)if(A.hasMeshContent&&A.shouldBeVisible&&A.materialVisibility){if(A.splatsMesh&&!A.splatsReady)return;A._disposeChildren()}else A.childrenTiles.forEach(g=>{g._trimTreeImmediate()})}_updateNodeVisibilityImmediate(A=!1){const g=this;if(g.hasMeshContent)if(g.shouldBeVisible)g.meshContent.length==g.hasMeshContent?g.materialVisibility?g.childrenTiles.forEach(I=>{I._updateNodeVisibilityImmediate(!0)}):(g._changeContentVisibility(!0),g.childrenTiles.forEach(I=>{I._updateNodeVisibilityImmediate(A)})):g.childrenTiles.forEach(I=>{I._updateNodeVisibilityImmediate(A)});else{if(!g.loadOutsideView&&g.metric<0)return g._changeContentVisibility(!1),g.meshContent.length>0&&g._disposeMeshContent(),void g.childrenTiles.forEach(I=>{I._updateNodeVisibilityImmediate(!0)});if(!g.materialVisibility||g.splatsMesh&&!g.splatsReady)g.childrenTiles.forEach(I=>{I._updateNodeVisibilityImmediate(A)});else if(A)g._changeContentVisibility(!1),g.meshContent.length>0&&g._disposeMeshContent(),g.childrenTiles.forEach(I=>{I._updateNodeVisibilityImmediate(A)});else{let I=!0;g.childrenTiles.every(Q=>!!Q._isReadyImmediate()||(I=!1,!1)),I&&g.childrenTiles.length>0?(g._changeContentVisibility(!1),g.meshContent.length>0&&g._disposeMeshContent(),g.childrenTiles.forEach(Q=>{Q._updateNodeVisibilityImmediate(A)})):g.childrenTiles.forEach(Q=>{Q._updateNodeVisibilityImmediate(!g.splatsMesh||!!g.splatsReady)})}}else g.childrenTiles.forEach(I=>{I._updateNodeVisibilityImmediate(A)})}_shouldBeVisibleUpdateImmediate(){const A=this;A.hasMeshContent?A.metric==null?A.shouldBeVisible=!1:A.metric<0?(A.shouldBeVisible=!!A.loadOutsideView,A.childrenTiles.forEach(g=>{g._setShouldNotBeVisibleRecursive()})):A.metric<A.geometricErrorMultiplier*A.geometricError?A.hasUnloadedJSONContent||(A.json&&A.json.children&&A.json.children.length>0?(A.shouldBeVisible=!1,A.childrenTiles.forEach(g=>{g.shouldBeVisible=!0,g._shouldBeVisibleUpdateImmediate()})):A.shouldBeVisible=!0):A.childrenTiles.forEach(g=>{g._setShouldNotBeVisibleRecursive()}):(A.childrenTiles.forEach(g=>{g.shouldBeVisible=!0,g._shouldBeVisibleUpdateImmediate()}),A.shouldBeVisible=!1)}_setShouldNotBeVisibleRecursive(){this.shouldBeVisible=!1,this.childrenTiles.forEach(A=>{A._setShouldNotBeVisibleRecursive()})}_loadMeshImmediate(){const A=this;A.hasMeshContent&&A.shouldBeVisible?A.meshContent.length<A.hasMeshContent&&A.contentURL.length==0&&(A.deleted=!1,A._load(!1,!0)):A.childrenTiles.forEach(g=>{g._loadMeshImmediate()})}_computeMetricRecursive(A,g){const I=this;I.metric=-1,I.isSetup&&(I.boundingVolume&&I.geometricError&&(I.metric=I._calculateUpdateMetric(A,g)),I.childrenTiles.forEach(Q=>Q._computeMetricRecursive(A,g)))}_expandTreeImmediate(A){const g=this;g.hasUnloadedJSONContent||(g.hasMeshContent?g.occlusionCullingService&&g.hasMeshContent&&!g.occlusionCullingService.hasID(g.colorID)||g.metric>=0&&g.metric<g.geometricErrorMultiplier*g.geometricError&&g.json&&g.json.children&&g.childrenTiles.length<g.json.children.length&&g._loadJsonChildren(A):g.json&&g.json.children&&g.childrenTiles.length<g.json.children.length&&g._loadJsonChildren(A)),g.childrenTiles.forEach(I=>I._expandTreeImmediate(A))}_update(A,g){const I=this;if(!I.isSetup)return;const Q=I.materialVisibility;I.boundingVolume&&I.geometricError&&(I.metric=I._calculateUpdateMetric(A,g)),I.childrenTiles.forEach(C=>C._update(A,g)),function(C){if(C<0)return I.inFrustum=!1,void I._changeContentVisibility(!!I.loadOutsideView);if(I.inFrustum=!0,!!I.hasMeshContent&&!(I.meshContent.length<I.hasMeshContent)){if(I.childrenTiles.length==0)return void I._changeContentVisibility(!0);if(C>=I.geometricErrorMultiplier*I.geometricError)I._changeContentVisibility(!0);else if(C<I.geometricErrorMultiplier*I.geometricError&&I.refine=="REPLACE"){let E=!0;I.childrenTiles.every(a=>!!a._isReady()||(E=!1,!1)),E?I._changeContentVisibility(!1):I._changeContentVisibility(!0)}}}(I.metric),function(C){C<0&&I.hasMeshContent||I.occlusionCullingService&&I.hasMeshContent&&!I.occlusionCullingService.hasID(I.colorID)||(!I.hasMeshContent||C<=I.geometricErrorMultiplier*I.geometricError&&(I.meshContent.length>0||I.splatsMesh))&&I.json&&I.json.children&&I.childrenTiles.length!=I.json.children.length&&I._loadJsonChildren(A)}(I.metric),function(C,E){if(I.hasMeshContent){if(!I.inFrustum)return void I._disposeChildren();if(I.occlusionCullingService&&!E&&I.hasMeshContent&&I.meshContent.length>0&&I.materialVisibility&&I._areAllChildrenLoadedAndHidden())return I.splatsMesh&&I.materialVisibility&&!I.splatsReady?void 0:void I._disposeChildren();if(C>=I.geometricErrorMultiplier*I.geometricError){if(I.splatsMesh&&I.materialVisibility&&!I.splatsReady)return;I._disposeChildren()}}}(I.metric,Q)}_loadJsonChildren(A){const g=this;for(let I=g.json.children.length-1;I>=0;I--)g.json.children[I].root||g.json.children[I].children||g.json.children[I].getChildren||g.json.children[I].content||g.json.children[I].contents||g.json.children.splice(I,1);g.json.children.forEach(I=>{let Q=new FQ({parentTile:g,queryParams:g.queryParams,parentGeometricError:g.geometricError,parentBoundingVolume:g.boundingVolume,parentRefine:g.refine,json:I,rootPath:g.rootPath,geometricErrorMultiplier:g.geometricErrorMultiplier,loadOutsideView:g.loadOutsideView,level:Math.floor(g.level)+1,tileLoader:g.tileLoader,cameraOnLoad:A,occlusionCullingService:g.occlusionCullingService,renderer:g.renderer,static:g.static,centerModel:!1,displayErrors:g.displayErrors,displayCopyright:g.displayCopyright,distanceBias:g.distanceBias,loadingStrategy:g.loadingStrategy,drawBoundingVolume:g.drawBoundingVolume,splatsMesh:g.splatsMesh,clipShape:g.clipShape,oldUltraMeshSplats:g.oldUltraMeshSplats});g.childrenTiles.push(Q),g.add(Q)}),g.updateMatrices(!0)}_areAllChildrenLoadedAndHidden(){let A=!0;const g=this;return this.childrenTiles.every(I=>{if(I.hasMeshContent){if(I.childrenTiles.length>0)return A=!1,!1;if(I.metric<0)return!0;if(I.materialVisibility&&(!g.splatsMesh||g.splatsReady)||g.occlusionCullingService.hasID(I.colorID))return A=!1,!1}else if(!I._areAllChildrenLoadedAndHidden())return A=!1,!1;return!0}),A}_isReady(){if(this.metric==null)return!1;if(this.metric<0)return!0;if(this.hasUnloadedJSONContent)return!1;if(!this.hasMeshContent&&this.json.children.length==0&&!this.hasUnloadedJSONContent)return!0;if(!this.hasMeshContent||this.meshContent.length==0||!this.materialVisibility){if(this.children.length>0){var A=!0;return this.childrenTiles.every(g=>!!g._isReady()||(A=!1,!1)),A}return!1}return!this.hasMeshContent||!(this.meshContent.length<this.hasMeshContent)&&!!this.materialVisibility}_isReadyImmediate(){if(this.materialVisibility||!this.loadOutsideView&&this.metric<0)return!0;if(this.childrenTiles.length>0){var A=!0;return this.childrenTiles.every(g=>!!g._isReadyImmediate()||(A=!1,!1)),A}return!1}_changeContentVisibility(A){const g=this;if(g.bbox&&(g.bbox.material.visible=A),g.splatsMesh)A!=g.materialVisibility&&(g.meshContent.forEach(I=>{A&&I.isSplatsBatch?I.show(()=>{g.materialVisibility&&(g.splatsReady=!0)}):(I.hide(),g.splatsReady=!1)}),g.materialVisibility=A);else{if(g.hasMeshContent&&g.meshContent.length>0&&(A?g.meshContent.forEach(I=>{I.traverse(Q=>{(Q.isMesh||Q.isPoints)&&Q.layers.enable(0)})}):g.meshContent.forEach(I=>{I.traverse(Q=>{(Q.isMesh||Q.isPoints)&&Q.layers.disable(0)})})),g.materialVisibility==A)return;g.materialVisibility=A}}_calculateUpdateMetric(A,g){let I=0;if(this.boundingVolume instanceof og){if(Lg.copy(this.boundingVolume),Lg.applyMatrix4(this.matrixWorld),!Lg.inFrustum(g))return-1;if(this.clipShape!=null&&(this.clipShape.isSphere&&!Lg.intersectsSphere(this.clipShape)||this.clipShape.isOBB&&!Lg.intersectsOBB(this.clipShape)))return Number.MAX_VALUE;I=Math.max(0,Lg.distanceToPoint(A.position)-A.near)}else{if(!(this.boundingVolume instanceof W.Sphere))return console.error("unsupported shape"),-1;if(Fg.copy(this.boundingVolume),Fg.applyMatrix4(this.matrixWorld),this.clipShape!=null&&(this.clipShape.isOBB&&!this.clipShape.intersectsSphere(Fg)||this.clipShape.isSphere&&!this.clipShape.intersectsSphere(Fg)))return Number.MAX_VALUE;if(!g.intersectsSphere(Fg))return-1;I=Math.max(0,A.position.distanceTo(Fg.center)-Fg.radius-A.near)}if(I=Math.pow(I,this.distanceBias),I==0)return 0;const Q=this.matrixWorld.getMaxScaleOnAxis();this.renderer&&this.renderer.getDrawingBufferSize(this.rendererSize);let C=this.rendererSize.y,E=A.fov;return A.aspect<1&&(E*=A.aspect,C=this.rendererSize.x),16*(2*Math.tan(.5*E*.017453292519943295)*I)/(C*Q)}_getSiblings(){const A=this,g=[];if(!A.parentTile)return g;let I=A.parentTile;for(;!I.hasMeshContent&&I.parentTile;)I=I.parentTile;return I.childrenTiles.forEach(Q=>{if(Q&&Q!=A){for(;!Q.hasMeshContent&&Q.childrenTiles[0];)Q=Q.childrenTiles[0];g.push(Q)}}),g}_calculateDistanceToCamera(A){return this.boundingVolume instanceof og?(Lg.copy(this.boundingVolume),Lg.applyMatrix4(this.matrixWorld),Math.max(0,Lg.distanceToPoint(A.position))):this.boundingVolume instanceof W.Sphere?(Fg.copy(this.boundingVolume),Fg.applyMatrix4(this.matrixWorld),Math.max(0,A.position.distanceTo(Fg.center)-Fg.radius)):(console.error("unsupported shape"),-1)}setGeometricErrorMultiplier(A){this.geometricErrorMultiplier=A,this.childrenTiles.forEach(g=>g.setGeometricErrorMultiplier(A))}setDistanceBias(A){this.distanceBias=A,this.childrenTiles.forEach(g=>g.setDistanceBias(A))}_transformWGS84ToCartesian(A,g,I,Q){const C=6378137/Math.sqrt(1-.006694384442042*Math.pow(Math.sin(g),2)),E=Math.cos(g),a=Math.cos(A),i=Math.sin(g),t=C+I,e=t*E*a,o=t*E*Math.sin(A),s=(.993305615557957*C+I)*i;Q.set(e,o,s)}hideCopyright(){(function(){FA||((FA=document.createElement("div")).style.position="fixed",FA.style.bottom="20px",FA.style.left="20px",FA.style.color="white",FA.style.textShadow="2px 2px 0 #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000",FA.style.padding="10px",FA.style.backgroundColor="rgba(0, 0, 0, 0.1)",document.body.appendChild(FA)),FA.style.opacity=0})()}showCopyright(){(function(){FA||((FA=document.createElement("div")).style.position="fixed",FA.style.bottom="20px",FA.style.left="20px",FA.style.color="white",FA.style.textShadow="2px 2px 0 #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000",FA.style.padding="10px",FA.style.backgroundColor="rgba(0, 0, 0, 0.1)",document.body.appendChild(FA)),FA.style.opacity=1})()}}function la(B){var A=document.createElement("div");A.textContent=B,A.style.position="fixed",A.style.top="10px",A.style.left="50%",A.style.transform="translateX(-50%)",A.style.padding="10px",A.style.backgroundColor="#ff8800",A.style.color="#ffffff",A.style.zIndex="9999",document.body.appendChild(A),setTimeout(function(){A.remove()},8e3)}function yQ(){FA||((FA=document.createElement("div")).style.position="fixed",FA.style.bottom="20px",FA.style.left="20px",FA.style.color="white",FA.style.textShadow="2px 2px 0 #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000",FA.style.padding="10px",FA.style.backgroundColor="rgba(0, 0, 0, 0.1)",document.body.appendChild(FA));const B=ua();let A="";B.forEach(g=>{A+=g+", "}),A=A.slice(0,-2),FA.textContent=A}const eg=new W.Sphere(new W.Vector3(0,0,0),1),Pg=new W.Vector3(0,0,0),MQ=new W.Vector3(0,0,0),Xt=new W.Vector3(0,1,0),GQ=new W.Vector2,fa=new W.Quaternion,Fa=new W.Matrix4;class RQ extends W.Object3D{constructor(A){super();const g=this;if(A.queryParams&&(this.queryParams={...A.queryParams}),this.uuid=zC(),A.tileLoader?this.tileLoader=A.tileLoader:console.error("an instanced tileset must be provided an InstancedTilesetLoader"),this.master=A.master,this.loadOutsideView=A.loadOutsideView,this.cameraOnLoad=A.cameraOnLoad,this.parentTile=A.parentTile,this.distanceBias=Math.max(1e-4,A.distanceBias?A.distanceBias:1),this.childrenTiles=[],this.jsonChildren=[],this.meshContent=new Set,this.static=A.static,this.static&&(this.matrixAutoUpdate=!1,this.matrixWorldAutoUpdate=!1),this.tileContent,this.refinement,this.rootPath,this.geometricError,this.boundingVolume,this.json,this.materialVisibility=!1,this.inFrustum=!0,this.level=A.level?A.level:0,this.hasMeshContent=0,this.hasUnloadedJSONContent=0,this.centerModel=A.centerModel,this.deleted=!1,this.abortController=new AbortController,A.json)this.rootPath=A.json.rootPath?A.json.rootPath:A.rootPath,A.json.children&&(this.jsonChildren=A.json.children),g.setup(A);else if(A.url){this.loadJson=(C,E)=>{const a=II.dirname(E);g.setup({rootPath:a,json:C,onLoadCallback:A.onLoadCallback})};var I=A.url;if(g.queryParams){var Q="";for(let C in g.queryParams)g.queryParams.hasOwnProperty(C)&&(Q+="&"+C+"="+g.queryParams[C]);I.includes("?")?I+=Q:I+="?"+Q.substring(1)}g.tileLoader.get(g.abortController,I,g.uuid,g)}}async setup(A){const g=this;A.json.root?(g.json=A.json.root,!g.json.children&&g.json.getChildren&&(g.json.children=await g.json.getChildren()),g.jsonChildren=g.json.children,g.json.refinement||(g.json.refinement=A.json.refinement),g.json.geometricError||(g.json.geometricError=A.json.geometricError),g.json.transform||(g.json.transform=A.json.transform),g.json.boundingVolume||(g.json.boundingVolume=A.json.boundingVolume)):(g.json=A.json,!g.json.children&&g.json.getChildren&&(g.json.children=await g.json.getChildren(),g.jsonChildren=g.json.children)),g.rootPath=A.json.rootPath?A.json.rootPath:A.rootPath,g.json.refinement?g.refinement=g.json.refinement:g.refinement=A.parentRefinement,g.json.geometricError?g.geometricError=g.json.geometricError:g.geometricError=A.parentGeometricError;let I=new W.Matrix4;if(g.json.transform&&!g.centerModel&&(I.elements=g.json.transform),g.applyMatrix4(I),g.parentTile&&g.parentTile.matrix&&(g.matrix.premultiply(g.parentTile.matrix),g.matrix.decompose(g.position,g.quaternion,g.scale)),g.matrixWorldNeedsUpdate=!0,g.updateWorldMatrix(!0,!0),g.json.boundingVolume)if(g.json.boundingVolume.box)g.boundingVolume=new og(g.json.boundingVolume.box);else if(g.json.boundingVolume.region){const C=g.json.boundingVolume.region;g.transformWGS84ToCartesian(C[0],C[1],C[4],Pg),g.transformWGS84ToCartesian(C[2],C[3],C[5],MQ),Pg.lerp(MQ,.5),g.boundingVolume=new W.Sphere(new W.Vector3(Pg.x,Pg.y,Pg.z),Pg.distanceTo(MQ))}else if(g.json.boundingVolume.sphere){const C=g.json.boundingVolume.sphere;g.boundingVolume=new W.Sphere(new W.Vector3(C[0],C[1],C[2]),C[3])}else g.boundingVolume=A.parentBoundingVolume;else g.boundingVolume=A.parentBoundingVolume;function Q(C){C.uri&&C.uri.includes("json")||C.url&&C.url.includes("json")?g.hasUnloadedJSONContent++:g.hasMeshContent++}if(g.json.content?(Q(g.json.content),g.load()):g.json.contents&&(g.json.contents.forEach(C=>Q(C)),g.load()),g.centerModel){const C=new W.Sphere;g.boundingVolume instanceof og?C.copy(g.boundingVolume.sphere):g.boundingVolume instanceof W.Sphere&&C.copy(g.boundingVolume),this.json.boundingVolume.region&&(g.transformWGS84ToCartesian(.5*(g.json.boundingVolume.region[0]+g.json.boundingVolume.region[2]),.5*(g.json.boundingVolume.region[1]+g.json.boundingVolume.region[3]),.5*(g.json.boundingVolume.region[4]+g.json.boundingVolume.region[5]),Pg),fa.setFromUnitVectors(Pg.normalize(),Xt.normalize()),g.master.applyQuaternion(fa),g.master.updateWorldMatrix(!1,!1)),Fa.makeTranslation(-C.center.x*g.scale.x,-C.center.y*g.scale.y,-C.center.z*g.scale.z),g.master.matrix.multiply(Fa),g.master.matrix.decompose(g.master.position,g.master.quaternion,g.master.scale)}g.isSetup=!0,A.onLoadCallback&&A.onLoadCallback(g)}isAbsolutePathOrURL(A){const g=/^(?:http|https|ftp|tcp|udp):\/\/\S+/.test(A),I=A.startsWith("/")&&!A.startsWith("//");return g||I}assembleURL(A,g){A.endsWith("/")||(A+="/");const I=new URL(A);let Q=I.pathname.split("/").filter(E=>E!==""),C=g.split("/").filter(E=>E!=="");for(let E=1;E<=Q.length&&!(E>=C.length);E++)if(Q.slice(Q.length-E,Q.length).join("/")===C.slice(0,E).join("/")){for(let a=0;a<E;a++)Q.pop();break}for(;C.length>0&&C[0]==="..";)Q.pop(),C.shift();return`${I.protocol}//${I.host}/${[...Q,...C].join("/")}`}extractQueryParams(A,g){const I=new URL(A);for(let[Q,C]of I.searchParams)g[Q]=C;return I.search="",I.toString()}load(){var A=this;function g(I){let Q;I.uri?Q=I.uri:I.url&&(Q=I.url);const C=/^(?:http|https|ftp|tcp|udp):\/\/\S+/;if(C.test(A.rootPath)?C.test(Q)||(Q=A.assembleURL(A.rootPath,Q)):II.isAbsolute(A.rootPath)&&(Q=A.rootPath+II.sep+Q),Q=A.extractQueryParams(Q,A.queryParams),A.queryParams){var E="";for(let a in A.queryParams)A.queryParams.hasOwnProperty(a)&&(E+="&"+a+"="+A.queryParams[a]);Q.includes("?")?Q+=E:Q+="?"+E.substring(1)}Q&&(Q.includes(".b3dm")||Q.includes(".glb")||Q.includes(".gltf")?(A.contentURL=Q,A.tileLoader.get(A.abortController,Q,A.uuid,A,A.cameraOnLoad?()=>A.calculateDistanceToCamera(A.cameraOnLoad):()=>0,()=>A.getSiblings(),A.level,!A.json.boundingVolume.region,!!A.json.boundingVolume.region,A.geometricError)):Q.includes(".json")&&A.tileLoader.get(A.abortController,Q,A.uuid,A))}A.deleted||(A.json.content?g(A.json.content):A.json.contents&&A.json.contents.forEach(I=>g(I)))}loadMesh(A){this.deleted||this.meshContent.add(A)}loadJson(A,g){this.deleted||(this.json.children&&(this.jsonChildren=this.json.children),A.rootPath=II.dirname(g),this.jsonChildren.push(A),this.hasUnloadedJSONContent--)}dispose(){const A=this;A.childrenTiles.forEach(g=>g.dispose()),A.deleted=!0,A.abortController&&A.abortController.abort(),this.parent=null,this.parentTile=null,this.dispatchEvent({type:"removed"})}disposeChildren(){this.childrenTiles.forEach(A=>A.dispose()),this.childrenTiles=[]}_update(A,g){const I=this;function Q(C){if(I.hasMeshContent&&!(I.meshContent.size<I.hasMeshContent)){if(C<0)return I.inFrustum=!1,void I.changeContentVisibility(!!I.loadOutsideView);if(I.inFrustum=!0,I.childrenTiles.length!=0){if(C>=I.master.geometricErrorMultiplier*I.geometricError)I.changeContentVisibility(!0);else if(C<I.master.geometricErrorMultiplier*I.geometricError){let E=!0;I.childrenTiles.every(a=>!!a.isReady()||(E=!1,!1)),E&&I.changeContentVisibility(!1)}}else I.changeContentVisibility(!0)}}I.isSetup&&(I.materialVisibility,I.boundingVolume&&I.geometricError&&(I.metric=I.calculateUpdateMetric(A,g)),I.childrenTiles.forEach(C=>C._update(A,g)),Q(I.metric),function(C){C<0&&I.hasMeshContent||(!I.hasMeshContent&&I.rootPath||C<I.master.geometricErrorMultiplier*I.geometricError&&I.meshContent.size>0)&&I.json&&I.jsonChildren&&I.childrenTiles.length!=I.jsonChildren.length&&I.jsonChildren.forEach(E=>{if(!(E.root||E.children||E.getChildren||E.content||E.contents))return;let a=new RQ({parentTile:I,queryParams:I.queryParams,parentGeometricError:I.geometricError,parentBoundingVolume:I.boundingVolume,parentRefinement:I.refinement,json:E,rootPath:I.rootPath,loadOutsideView:I.loadOutsideView,level:I.level+1,tileLoader:I.tileLoader,cameraOnLoad:A,master:I.master,centerModel:!1});I.childrenTiles.push(a)})}(I.metric),function(C){if(I.hasMeshContent){if(!I.inFrustum)return I.disposeChildren(),void Q(C);C>=I.master.geometricErrorMultiplier*I.geometricError&&(I.disposeChildren(),Q(C))}}(I.metric))}areAllChildrenLoadedAndHidden(){let A=!0;return this.childrenTiles.every(g=>{if(g.hasMeshContent){if(g.childrenTiles.length>0)return A=!1,!1;if(!g.inFrustum)return!0;if(!g.materialVisibility||g.meshesToDisplay!=g.meshesDisplayed)return A=!1,!1}else if(!g.areAllChildrenLoadedAndHidden())return A=!1,!1;return!0}),A}isReady(){if(!this.inFrustum)return!0;if(this.hasUnloadedJSONContent)return!1;if(!this.hasMeshContent||this.meshContent.size==0||!this.materialVisibility){if(this.childrenTiles.length>0){var A=!0;return this.childrenTiles.every(g=>!!g.isReady()||(A=!1,!1)),A}return!1}return!this.hasMeshContent||!(this.meshContent.size<this.hasMeshContent)&&!!this.materialVisibility}changeContentVisibility(A){this.materialVisibility=A}calculateUpdateMetric(A,g){if(this.boundingVolume instanceof og){if(eg.copy(this.boundingVolume.sphere),eg.applyMatrix4(this.matrixWorld),!g.intersectsSphere(eg))return-1}else{if(!(this.boundingVolume instanceof W.Sphere))return console.error("unsupported shape"),-1;if(eg.copy(this.boundingVolume),eg.applyMatrix4(this.matrixWorld),!g.intersectsSphere(eg))return-1}let I=Math.max(0,A.position.distanceTo(eg.center)-eg.radius);if(I=Math.pow(I,this.distanceBias),I==0)return 0;const Q=this.matrixWorld.getMaxScaleOnAxis();this.master._renderSize(GQ);let C=GQ.y,E=A.fov;A.aspect<1&&(E*=A.aspect,C=GQ.x);let a=2*Math.tan(.5*E*.017453292519943295)*I;return 16*window.devicePixelRatio*a/(C*Q)}getSiblings(){const A=this,g=[];if(!A.parentTile)return g;let I=A.parentTile;for(;!I.hasMeshContent&&I.parentTile;)I=I.parentTile;return I.childrenTiles.forEach(Q=>{if(Q&&Q!=A){for(;!Q.hasMeshContent&&Q.childrenTiles[0];)Q=Q.childrenTiles[0];g.push(Q)}}),g}calculateDistanceToCamera(A){return this.boundingVolume instanceof og?(eg.copy(this.boundingVolume.sphere),eg.applyMatrix4(this.matrixWorld)):this.boundingVolume instanceof W.Sphere?(eg.copy(this.boundingVolume),eg.applyMatrix4(this.matrixWorld)):console.error("unsupported shape"),Math.max(0,A.position.distanceTo(eg.center)-eg.radius)}getWorldMatrix(){return this.matrixWorld}transformWGS84ToCartesian(A,g,I,Q){const C=6378137/Math.sqrt(1-.006694384442042*Math.pow(Math.sin(g),2)),E=Math.cos(g),a=Math.cos(A),i=Math.sin(g),t=C+I,e=t*E*a,o=t*E*Math.sin(A),s=(.993305615557957*C+I)*i;Q.set(e,o,s)}}class Zt extends W.Object3D{constructor(A){super(),A.master=this,A.domWidth&&A.domHeight?this.rendererSize=new W.Vector2(A.domWidth,A.domHeight):this.rendererSize=new W.Vector2(1e3,1e3),this.renderer=A.renderer,this.distanceBias=Math.max(1e-4,A.distanceBias?A.distanceBias:1),this.geometricErrorMultiplier=A.geometricErrorMultiplier?A.geometricErrorMultiplier:1,this.tileset=new RQ(A),A.static&&(this.matrixAutoUpdate=!1),this.tileLoader=A.tileLoader}_renderSize(A){this.renderer?this.renderer.getDrawingBufferSize(A):A.copy(this.rendererSize)}setCanvasSize(A,g){this.rendererSize.set(A,g)}update(A,g){if(g)this.tileset._update(A,g);else{const I=new W.Frustum;I.setFromProjectionMatrix(new W.Matrix4().multiplyMatrices(A.projectionMatrix,A.matrixWorldInverse)),this.tileset._update(A,I)}}setGeometricErrorMultiplier(A){this.geometricErrorMultiplier=A||1}}class _t{constructor(A){const g=this;g.scene=A,g.instancedTiles=[],g.instancedMesh,g.reuseableMatrix=new W.Matrix4}addInstance(A){const g=this;A.added=!0,A.listOMesh=g.instancedTiles,g.instancedTiles.push(A),g.instancedMesh&&A.loadMesh(g.instancedMesh)}addToScene(){const A=this;A.instancedMesh.setMatrixAt(0,new W.Matrix4),A.instancedMesh.instanceMatrix.needsUpdate=!0,A.instancedMesh.count=1,A.scene.add(A.instancedMesh),A.instancedMesh.onAfterRender=()=>{delete A.instancedMesh.onAfterRender,A.instancedMesh.displayedOnce=!0}}setObject(A){const g=this;g.instancedMesh=A,g.instancedMesh.matrixAutoUpdate=!1,g.instancedMesh.matrixWorldAutoUpdate=!1,g.scene.children.includes(A)||this.addToScene();for(let I=0;I<g.instancedTiles.length;I++)g.instancedTiles[I].loadMesh(g.instancedMesh)}update(){const A=this;for(let g=A.instancedTiles.length-1;g>=0;g--)A.instancedTiles[g].deleted&&A.instancedTiles.splice(g,1);if(A.instancedMesh){A.instancedMesh.count=0,A.instancedMesh.instancedTiles=[];for(let g=0;g<A.instancedTiles.length;g++)A.instancedTiles[g].meshContent.add(A.instancedMesh),A.instancedTiles[g].materialVisibility&&(A.instancedMesh.count++,A.reuseableMatrix.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),A.reuseableMatrix.multiply(A.instancedTiles[g].matrixWorld),A.reuseableMatrix.multiply(A.instancedMesh.baseMatrix),A.instancedMesh.setMatrixAt(A.instancedMesh.count-1,A.reuseableMatrix),A.instancedMesh.instancedTiles.push(A.instancedTiles[g]));A.instancedMesh.instanceMatrix.needsUpdate=!0,A.instancedMesh.needsUpdate=!0,A.instancedMesh.computeBoundingSphere()}}getCount(){return this.instancedTiles.length}dispose(){const A=this;return!(A.instancedTiles.length>0)&&!!A.instancedMesh&&(A.scene.remove(A.instancedMesh),A.instancedMesh.traverse(g=>{if(g.dispose&&g.dispose(),g.material)if(g.material.length)for(let I=0;I<g.material.length;++I)g.material[I].dispose();else g.material.dispose();g.geometry&&g.geometry.dispose()}),A.instancedMesh.dispose(),!0)}}class $t{constructor(){const A=this;A.count=0,A.json,A.instancedTiles=[]}addInstance(A){this.instancedTiles.push(A),this.json&&A.loadJson(this.json,this.url)}setObject(A,g){const I=this;I.json=A,I.url=g;for(let Q=0;Q<I.instancedTiles.length;Q++)I.instancedTiles[Q].loadJson(I.json,I.url)}getCount(){return this.instancedTiles.length}update(){const A=this;for(let g=A.instancedTiles.length-1;g>=0;g--)A.instancedTiles[g].deleted&&A.instancedTiles.splice(g,1)}dispose(){return!(!this.json||this.instancedTiles.length!=0)}}let eI=0;async function Ao(B){return new Promise(A=>{const g=setInterval(()=>{B.hasDracoLoader&&!B.dracoLoader||B.hasKTX2Loader&&!B.ktx2Loader||(clearInterval(g),A())},10)})}gg.InstancedOGC3DTile=Zt,gg.InstancedTileLoader=class{constructor(B,A){if(this.zUpToYUpMatrix=new W.Matrix4,this.zUpToYUpMatrix.set(1,0,0,0,0,0,-1,0,0,1,0,0,0,0,0,1),this.maxCachedItems=100,this.maxInstances=1,this.proxy=A.proxy,A&&(this.meshCallback=A.meshCallback,this.pointsCallback=A.pointsCallback,A.maxCachedItems&&(this.maxCachedItems=A.maxCachedItems),A.maxInstances&&(this.maxInstances=A.maxInstances)),this.gltfLoader=new VQ,A&&A.dracoLoader)this.gltfLoader.setDRACOLoader(A.dracoLoader),this.hasDracoLoader=!0;else{const g=new AC;g.setDecoderPath("https://www.gstatic.com/draco/versioned/decoders/1.4.3/"),this.gltfLoader.setDRACOLoader(g),this.gltfLoader.hasDracoLoader=!0}if(A&&A.ktx2Loader)this.gltfLoader.setKTX2Loader(A.ktx2Loader),this.hasKTX2Loader=!0;else if(A&&A.renderer){const g=new ng;g.setTranscoderPath("https://storage.googleapis.com/ogc-3d-tiles/basis/").detectSupport(A.renderer),this.gltfLoader.setKTX2Loader(g),this.gltfLoader.hasKTX2Loader=!0}this.gltfLoader.setMeshoptDecoder(OC),this.hasMeshOptDecoder=!0,this.b3dmDecoder=new OQ(this.gltfLoader),this.cache=new jQ,this.scene=B,this.ready=[],this.downloads=[],this.nextReady=[],this.nextDownloads=[]}update(){const B=this;B._checkSize(),B.cache._data.forEach(A=>{A.update()}),eI<8&&B._download(),B._loadBatch()}_download(){const B=this;if(B.nextDownloads.length!=0||(B._getNextDownloads(),B.nextDownloads.length!=0))for(;B.nextDownloads.length>0;){const g=B.nextDownloads.shift();if(g){if(g.path.includes(".b3dm")&&(A=B.proxy?()=>fetch(B.proxy,{method:"POST",body:g.path}):()=>fetch(g.path),eI++,A().then(I=>{if(!I.ok)throw console.error("could not load tile with path : "+g.path),new Error(`couldn't load "${g.path}". Request failed with status ${I.status} : ${I.statusText}`);return I.arrayBuffer()}).then(I=>this.b3dmDecoder.parseB3DMInstanced(I,Q=>{B.meshCallback(Q,g.geometricError)},B.maxInstances,g.sceneZupToYup,g.meshZupToYup)).then(I=>{I.frustumCulled=!1,g.tile.setObject(I),B.ready.unshift(g)}).catch(I=>console.error(I)).finally(()=>{eI--})),g.path.includes(".glb")||g.path.includes(".gltf"))A=B.proxy?()=>fetch(B.proxy,{method:"POST",body:g.path}):()=>fetch(g.path),eI++,A().then(I=>{if(!I.ok)throw new Error("missing content");return I.arrayBuffer()}).then(async I=>{await Ao(this.gltfLoader),this.gltfLoader.parse(I,null,Q=>{let C;Q.scene.asset=Q.asset,g.sceneZupToYup&&Q.scene.applyMatrix4(this.zUpToYUpMatrix),Q.scene.traverse(E=>{E.geometricError=g.geometricError,E.isMesh&&(g.meshZupToYup&&E.applyMatrix4(this.zUpToYUpMatrix),B.meshCallback&&B.meshCallback(E,E.geometricError)),E.isPoints&&console.error("instanced point cloud is not supported")}),Q.scene.updateWorldMatrix(!1,!0),Q.scene.traverse(E=>{E.isMesh&&(C=new W.InstancedMesh(E.geometry,E.material,B.maxInstances),C.baseMatrix=E.matrixWorld)}),B.ready.unshift(g),C?(C.frustumCulled=!1,g.tile.setObject(C)):Q.scene.traverse(E=>{E.dispose&&E.dispose(),E.material&&E.material.dispose()})})},I=>{console.error("could not load tile : "+g.path)}).finally(()=>{eI--});else if(g.path.includes(".json")){var A;A=B.proxy?()=>fetch(B.proxy,{method:"POST",body:g.path}):()=>fetch(g.path),eI++,A().then(I=>{if(!I.ok)throw console.error("could not load tile with path : "+g.path),new Error(`couldn't load "${g.path}". Request failed with status ${I.status} : ${I.statusText}`);return I.json()}).then(I=>XB(I,g.path)).then(I=>{g.tile.setObject(I,g.path),B.ready.unshift(g)}).catch(I=>console.error(I)).finally(()=>{eI--})}}}}_loadBatch(){return this.nextReady.length==0&&(this._getNextReady(),this.nextReady.length==0)?0:this.nextReady.shift()?1:0}_getNextReady(){let B=Number.MAX_VALUE,A=-1;for(let g=this.ready.length-1;g>=0;g--)this.ready[g].distanceFunction||this.nextReady.push(this.ready.splice(g,1)[0]);if(!(this.nextReady.length>0)){for(let g=this.ready.length-1;g>=0;g--){const I=this.ready[g].distanceFunction()*this.ready[g].level;I<B&&(B=I,A=g)}if(A>=0){const g=this.ready.splice(A,1).pop();this.nextReady.push(g);const I=g.getSiblings();for(let Q=this.ready.length-1;Q>=0;Q--)I.includes(this.ready[Q].uuid)&&this.nextready.push(this.ready.splice(Q,1).pop())}}}get(B,A,g,I,Q,C,E,a,i,t){const e=this,o=function(n){for(var r=n.split("/"),c=[],D=0,b=0;b<r.length;b++){var h=r[b];h!=="."&&h!==""&&h!==".."?c[D++]=h:h===".."&&D>0&&D--}if(D===0)return"/";var w="";for(b=0;b<D;b++)w+="/"+c[b];return w}(A);if(!(A.includes(".b3dm")||A.includes(".json")||A.includes(".glb")||A.includes(".gltf")))return void console.error("the 3DTiles cache can only be used to load B3DM, gltf and json data");const s=e.cache.get(o);if(s)s.addInstance(I);else if(A.includes(".b3dm")||A.includes(".glb")||A.includes(".gltf")){const n=new _t(e.scene);n.addInstance(I),e.cache.put(o,n);const r=new AbortController;B.signal.addEventListener("abort",()=>{n.getCount()==0&&r.abort()}),this.downloads.push({abortController:r,tile:n,key:o,path:A,distanceFunction:Q,getSiblings:C,level:E,uuid:g,sceneZupToYup:a,meshZupToYup:i,geometricError:t,shouldDoDownload:()=>!0})}else if(A.includes(".json")){const n=new $t;n.addInstance(I),e.cache.put(o,n);const r=new AbortController;B.signal.addEventListener("abort",()=>{n.getCount()==0&&r.abort()}),this.downloads.push({abortController:r,tile:n,key:o,path:A,distanceFunction:Q,getSiblings:C,level:E,shouldDoDownload:()=>!0})}}_getNextDownloads(){let B=Number.MAX_VALUE,A=-1;for(let g=this.downloads.length-1;g>=0;g--){const I=this.downloads[g];I.shouldDoDownload()?I.distanceFunction||this.nextDownloads.push(this.downloads.splice(g,1)[0]):this.downloads.splice(g,1)}if(!(this.nextDownloads.length>0)){for(let g=this.downloads.length-1;g>=0;g--){const I=this.downloads[g],Q=I.distanceFunction()*I.level;Q<B&&(B=Q,A=g)}if(A>=0){const g=this.downloads.splice(A,1).pop();this.nextDownloads.push(g);const I=g.getSiblings();for(let Q=this.downloads.length-1;Q>=0;Q--)I.includes(this.downloads[Q].uuid)&&this.nextDownloads.push(this.downloads.splice(Q,1).pop())}}}_checkSize(){const B=this;let A=0;for(;B.cache.size()>B.maxCachedItems&&A<B.cache.size();){A++;const g=B.cache.head();B.cache.remove(g.key),g.value.dispose()||B.cache.put(g.key,g.value)}}},gg.OBB=og,gg.OGC3DTile=FQ,gg.OcclusionCullingService=class{constructor(){this.cullMap=[],this.cullMaterial=new W.MeshBasicMaterial({vertexColors:!0}),this.cullMaterial.side=W.FrontSide,this.cullTarget=this._createCullTarget(),this.cullPixels=new Uint8Array(4*this.cullTarget.width*this.cullTarget.height)}setSide(B){this.cullMaterial.side=B}_createCullTarget(){const B=new W.WebGLRenderTarget(Math.floor(.05*window.innerWidth),Math.floor(.05*window.innerHeight));return B.texture.format=W.RGBAFormat,B.texture.colorSpace=W.LinearSRGBColorSpace,B.texture.minFilter=W.NearestFilter,B.texture.magFilter=W.NearestFilter,B.texture.generateMipmaps=!1,B.stencilBuffer=!1,B.depthBuffer=!0,B.depthTexture=new W.DepthTexture,B.depthTexture.format=W.DepthFormat,B.depthTexture.type=W.UnsignedShortType,B}update(B,A,g){let I=A.getRenderTarget(),Q=B.overrideMaterial;B.overrideMaterial=this.cullMaterial,A.setRenderTarget(this.cullTarget),A.render(B,g),B.overrideMaterial=Q,A.setRenderTarget(I),A.readRenderTargetPixels(this.cullTarget,0,0,this.cullTarget.width,this.cullTarget.height,this.cullPixels),this.cullMap=[];for(let C=0;C<this.cullPixels.length;C+=4){const E=W.MathUtils.clamp(this.cullPixels[C],0,255)<<16^W.MathUtils.clamp(this.cullPixels[C+1],0,255)<<8^W.MathUtils.clamp(this.cullPixels[C+2],0,255);this.cullMap[E]=!0}}hasID(B){return this.cullMap[B]}},gg.SplatsMesh=ha,gg.TileLoader=WC,gg.getOGC3DTilesCopyrightInfo=ua,gg.splatsFragmentShader=da,gg.splatsVertexShader=Da,Object.defineProperty(gg,Symbol.toStringTag,{value:"Module"})});
|
|
1502
|
+
}`}function Qo(B,A,g,I){const Q=B.getX(g),C=B.getY(g),a=B.getZ(g),e=A.getX(g),i=A.getY(g),t=A.getZ(g);I.set(Q,C,a,C,e,i,a,i,t)}function Co(B,A,g){const I=B.determinant();if(Math.abs(I)<1e-12)return void g.set(0,0,0);const Q=1/I,C=new l.Matrix3().copy(B);C.elements[0]=A.x,C.elements[3]=A.y,C.elements[6]=A.z;const a=new l.Matrix3().copy(B);a.elements[1]=A.x,a.elements[4]=A.y,a.elements[7]=A.z;const e=new l.Matrix3().copy(B);e.elements[2]=A.x,e.elements[5]=A.y,e.elements[8]=A.z,g.set(C.determinant()*Q,a.determinant()*Q,e.determinant()*Q)}function KI(B,A){if(!A||Array.isArray(A)&&A.length!==3)throw new Error(`${B} must be a length-3 array [x,y,z]`);return A}function Fe(B,A,g){return{kind:"cuboid",params:{hx:Number(B),hy:Number(A),hz:Number(g)}}}const GQ={createBall:function(B){return{kind:"ball",params:{radius:Number(B)}}},createCuboid:Fe,createBox:function(B,A,g){return Fe(B,A,g)},createRoundCuboid:function(B,A,g,I){return{kind:"roundCuboid",params:{hx:Number(B),hy:Number(A),hz:Number(g),radius:Number(I)}}},createCapsule:function(B,A){return{kind:"capsule",params:{halfHeight:Number(B),radius:Number(A)}}},createCone:function(B,A){return{kind:"cone",params:{halfHeight:Number(B),radius:Number(A)}}},createCylinder:function(B,A){return{kind:"cylinder",params:{halfHeight:Number(B),radius:Number(A)}}},createSegment:function(B,A){return{kind:"segment",params:{a:KI("a",B),b:KI("b",A)}}},createTriangle:function(B,A,g){return{kind:"triangle",params:{a:KI("a",B),b:KI("b",A),c:KI("c",g)}}},createPolyline:function(B,A){return{kind:"polyline",params:{vertices:B,indices:A||null}}},createConvexHull:function(B){return{kind:"convexHull",params:{vertices:B}}},createHeightfield:function(B,A,g,I={x:1,y:1,z:1}){return{kind:"heightfield",params:{rows:Number(B),cols:Number(A),heights:g,scale:I}}}};var FA;const Fg=new x.Sphere(new x.Vector3(0,0,0),1),Jg=new ag([0,0,0,1,0,0,0,1,0,0,0,1]);new x.Box3;const Pg=new x.Vector3(0,0,0),GI=new x.Vector3(0,0,0),ao=new x.Vector3(0,1,0),wB=new x.Ray,fB=new x.Matrix4;new x.Matrix4,new x.Frustum;const yB=new x.Vector3,FB=[],pe=new x.Quaternion,mg={};function Me(){var B=[];for(let A in mg)mg.hasOwnProperty(A)&&mg[A]>0&&B.push(A);return B}class RQ extends x.Object3D{constructor(A){super();const g=this;g.physics=A.physics||{};const I=g.physics;if(I&&typeof I=="object"&&(I.type||(I.type="fixed"),I.shape==null&&(I.shape="none"),I.mass==null&&(I.mass=1),Array.isArray(I.velocity)||I.velocity&&I.velocity.isVector3||(I.velocity=[0,0,0]),Array.isArray(I.angularVelocity)||I.angularVelocity&&I.angularVelocity.isVector3||(I.angularVelocity=[0,0,0]),I.maxLOD==null&&(I.maxLOD=1/0),I.colliders&&typeof I.colliders=="object")){const e=I.colliders;e.maxLOD==null&&(e.maxLOD=Number.isFinite(I.maxLOD)?I.maxLOD:1/0),Array.isArray(e.priority)?(e.priority=e.priority.filter(i=>i==="mesh"||i==="hull"||i==="bounds"),e.priority.length===0&&(e.priority=["mesh","hull","bounds"])):e.priority=["mesh","hull","bounds"],Array.isArray(e.byGeometricError)||(e.byGeometricError=[]),Array.isArray(e.byLevel)||(e.byLevel=[])}if(g.splatsMesh=A.splatsMesh,g.oldUltraMeshSplats=A.oldUltraMeshSplats,g.iosCompatibility=A.iosCompatibility,g.splatsQuality=A.splatsQuality!=null?A.splatsQuality:.75,g.splatsCPUCulling=A.splatsCPUCulling!=null&&A.splatsCPUCulling,this.contentURL=[],A.domWidth&&A.domHeight?this.rendererSize=new x.Vector2(A.domWidth,A.domHeight):this.rendererSize=new x.Vector2(1e3,1e3),this.setClipShape(A.clipShape),this.loadingStrategy=A.loadingStrategy?A.loadingStrategy.toUpperCase():"INCREMENTAL",this.distanceBias=Math.max(1e-4,A.distanceBias?A.distanceBias:1),this.proxy=A.proxy,this.drawBoundingVolume=!!A.drawBoundingVolume&&A.drawBoundingVolume,this.displayErrors=A.displayErrors,this.displayCopyright=A.displayCopyright,A.queryParams&&(this.queryParams={...A.queryParams}),this.uuid=Aa(),A.tileLoader)this.tileLoader=A.tileLoader;else{const e={};e.meshCallback=A.meshCallback?A.meshCallback:(t,E)=>{t.material.wireframe=!1,t.material.side=x.DoubleSide},e.pointsCallback=A.pointsCallback?A.pointsCallback:(t,E)=>{t.material.size=Math.pow(E,.33),t.material.sizeAttenuation=!0},e.proxy=this.proxy,e.renderer=A.renderer,e.dracoLoader=A.dracoLoader,e.ktx2Loader=A.ktx2Loader,g.tileLoader=new ZC(e);const i=this.update;this.update=t=>{i.call(g,t),g.tileLoader.update()}}this.displayCopyright=!!A.displayCopyright,this.geometricErrorMultiplier=A.geometricErrorMultiplier?A.geometricErrorMultiplier:1,this.splatsCropRadius=Number.MAX_VALUE,this.splatsSizeMultiplier=1,this.splatsExposureEV=A&&A.splatsExposureEV!==void 0?A.splatsExposureEV:0,this.splatsSaturation=A&&A.splatsSaturation!==void 0?A.splatsSaturation:1,this.splatsContrast=A&&A.splatsContrast!==void 0?A.splatsContrast:1;const Q=A&&A.splatsTempTint!==void 0?A.splatsTempTint:[0,0];if(this.splatsTempTint=Array.isArray(Q)?[Number(Q[0]||0),Number(Q[1]||0)]:[Number(Q.temp||0),Number(Q.tint||0)],this.renderer=A.renderer,this.meshCallback=A.meshCallback,this.loadOutsideView=A.loadOutsideView,this.cameraOnLoad=A.cameraOnLoad,this.parentTile=A.parentTile,this.occlusionCullingService=A.occlusionCullingService,this.static=A.static,this.occlusionCullingService&&(this.color=new x.Color,this.color.setHex(16777215*Math.random()),this.colorID=x.MathUtils.clamp(255*g.color.r,0,255)<<16^x.MathUtils.clamp(255*g.color.g,0,255)<<8^x.MathUtils.clamp(255*g.color.b,0,255)),this.static&&(this.matrixAutoUpdate=!1,this.matrixWorldAutoUpdate=!1),this.childrenTiles=[],this.meshContent=[],this.tileContent,this.refine,this.rootPath,this.geometricError,this.boundingVolume,this.json,this.materialVisibility=!1,this.level=A.level?A.level:0,this.hasMeshContent=0,this.hasUnloadedJSONContent=0,this.centerModel=A.centerModel,this.abortController=new AbortController,this.onLoadCallback=A.onLoadCallback,A.json)g._setup(A);else if(A.url){var C=A.url;if(g.queryParams){var a="";for(let e in g.queryParams)g.queryParams.hasOwnProperty(e)&&(a+="&"+e+"="+g.queryParams[e]);C.includes("?")?C+=a:C+="?"+a.substring(1)}(g.proxy?()=>fetch(g.proxy,{method:"POST",body:C,signal:g.abortController.signal}):()=>fetch(C,{signal:g.abortController.signal}))().then(e=>{if(!e.ok)throw new Error(`couldn't load "${A.url}". Request failed with status ${e.status} : ${e.statusText}`);e.json().then(i=>AQ(i,C)).then(i=>{g._setup({rootPath:BI.dirname(A.url),json:i})})}).catch(e=>{g.displayErrors&&Ge(e)})}}setClipShape(A){if(A instanceof ag||A instanceof x.Sphere)this.clipShape=A;else if(A instanceof x.Box3){const g=new x.Vector3,I=new x.Vector3;A.getCenter(g),A.getSize(I).multiplyScalar(.5),this.clipShape=new ag([g.x,g.y,g.z,I.x,0,0,0,I.y,0,0,0,I.z])}else A=void 0;this.childrenTiles&&this.childrenTiles.forEach(g=>{g._setClipShape(this.clipShape)})}_setClipShape(A){this.clipShape=A,this.childrenTiles&&this.childrenTiles.forEach(g=>{g._setClipShape(this.clipShape)})}setSplatsSizeMultiplier(A){this.splatsSizeMultiplier=A,this.splatsMesh&&this.splatsMesh.setSplatsSizeMultiplier(this.splatsSizeMultiplier)}setSplatsCropRadius(A){this.splatsCropRadius=A,this.splatsMesh&&this.splatsMesh.setSplatsCropRadius(this.splatsCropRadius)}setSplatsDepthBias(A){this.splatsDepthBias=A,this.splatsMesh&&this.splatsMesh.setDepthBias(this.splatsDepthBias)}setSplatsCPUCulling(A){this.splatsCPUCulling=A,this.splatsMesh&&this.splatsMesh.setSplatsCPUCulling(A)}setSplatsQuality(A){this.splatsQuality=A,this.splatsMesh&&this.splatsMesh.setQuality(A)}setSplatsExposureEV(A){this.splatsExposureEV=A,this.splatsMesh&&typeof this.splatsMesh.setExposureEV=="function"&&this.splatsMesh.setExposureEV(A)}setSplatsSaturation(A){this.splatsSaturation=A,this.splatsMesh&&typeof this.splatsMesh.setSaturation=="function"&&this.splatsMesh.setSaturation(A)}setSplatsContrast(A){this.splatsContrast=A,this.splatsMesh&&typeof this.splatsMesh.setContrast=="function"&&this.splatsMesh.setContrast(A)}setSplatsTempTint(A,g){this.splatsTempTint=[A,g],this.splatsMesh&&typeof this.splatsMesh.setTempTint=="function"&&this.splatsMesh.setTempTint(A,g)}updateMatrices(){this.updateMatrix(),this.splatsMesh&&this.splatsMesh.updateMatrix(),this.static&&(this.traverse(A=>{A.isObject3D&&(A.matrixWorldAutoUpdate=!0)}),this.splatsMesh&&(this.splatsMesh.matrixWorldAutoUpdate=!0)),this.updateMatrixWorld(!0),this.static&&(this.traverse(A=>{A.isObject3D&&(A.matrixWorldAutoUpdate=!1)}),this.splatsMesh&&(this.splatsMesh.matrixWorldAutoUpdate=!1))}setCanvasSize(A,g){this.rendererSize.set(A,g)}async _setup(A){const g=this;if(A.json.extensionsRequired&&(A.json.extensionsRequired.includes("JDULTRA_gaussian_splats")||A.json.extensionsRequired.includes("JDULTRA_gaussian_splats_V2"))&&(g.oldUltraMeshSplats=!0),A.json.root?(g.json=A.json.root,g.json.refine||(g.json.refine=A.json.refine),g.json.geometricError||(g.json.geometricError=A.json.geometricError),g.json.transform||(g.json.transform=A.json.transform),g.json.boundingVolume||(g.json.boundingVolume=A.json.boundingVolume)):g.json=A.json,g.json.children||(g.json.getChildren?g.json.children=await g.json.getChildren():g.json.children=[]),g.rootPath=A.json.rootPath?A.json.rootPath:A.rootPath,g.json.refine?g.refine=g.json.refine:g.refine=A.parentRefine,g.json.geometricError?g.geometricError=g.json.geometricError:g.geometricError=A.parentGeometricError,g.json.transform){let Q=new x.Matrix4;Q.elements=g.json.transform,g.applyMatrix4(Q)}if(g.json.boundingVolume)if(g.json.boundingVolume.box)g.boundingVolume=new ag(g.json.boundingVolume.box);else if(g.json.boundingVolume.region){const Q=g.json.boundingVolume.region;g._transformWGS84ToCartesian(Q[0],Q[1],Q[4],Pg),g._transformWGS84ToCartesian(Q[2],Q[3],Q[5],GI),Pg.lerp(GI,.5),g.boundingVolume=new x.Sphere(new x.Vector3(Pg.x,Pg.y,Pg.z),Pg.distanceTo(GI))}else if(g.json.boundingVolume.sphere){const Q=g.json.boundingVolume.sphere;g.boundingVolume=new x.Sphere(new x.Vector3(Q[0],Q[1],Q[2]),Q[3])}else g.boundingVolume=A.parentBoundingVolume;else g.boundingVolume=A.parentBoundingVolume;function I(Q){Q.uri&&Q.uri.includes("json")||Q.url&&Q.url.includes("json")?g.hasUnloadedJSONContent++:g.hasMeshContent++}if(g.json.content?(I(g.json.content),g.hasMeshContent==0&&(g.level=Math.max(0,g.parentTile?g.parentTile.level+.01:0)),g._load()):g.json.contents&&(g.json.contents.forEach(Q=>I(Q)),g.hasMeshContent==0&&(g.level=Math.max(0,g.parentTile?g.parentTile.level+.01:0))),g.centerModel&&(GI.copy(g.boundingVolume.center),this.json.boundingVolume.region&&(this._transformWGS84ToCartesian(.5*(this.json.boundingVolume.region[0]+this.json.boundingVolume.region[2]),.5*(this.json.boundingVolume.region[1]+this.json.boundingVolume.region[3]),.5*(this.json.boundingVolume.region[4]+this.json.boundingVolume.region[5]),Pg),pe.setFromUnitVectors(Pg.normalize(),ao.normalize()),g.applyQuaternion(pe)),GI.applyMatrix4(g.matrix),g.position.sub(GI),g.updateMatrices()),g.onLoadCallback&&g.onLoadCallback(g),!g.parentTile&&g.physics&&g.physics.sim&&(g.physics.rigidBodyID=g.physics.sim.addObject({object:g,type:g.physics.type,mass:g.physics.mass,position:g.position,rotation:g.quaternion,velocity:g.physics.velocity,angularVelocity:g.physics.angularVelocity})),g.isSetup=!0,g.level>0&&g.drawBoundingVolume)if(g.bbox&&console.log("double setup"),this.boundingVolume.aabb){let Q=this.boundingVolume.aabb.clone();Q.applyMatrix4(this.matrixWorld),g.bbox=new x.Box3Helper(Q,new x.Color(Math.random(),Math.random(),Math.random())),g.add(g.bbox),g.bbox.material.visible=!1}else g.boundingVolume instanceof ag&&(g.bbox=g.boundingVolume.helper(),g.add(g.bbox),g.bbox.material.visible=!1)}_assembleURL(A,g){A.endsWith("/")||(A+="/");try{const I=new URL(A);let Q=I.pathname.split("/").filter(a=>a!==""),C=g.split("/").filter(a=>a!=="");for(let a=1;a<=Q.length&&!(a>=C.length);a++)if(Q.slice(Q.length-a,Q.length).join("/")===C.slice(0,a).join("/")){for(let i=0;i<a;i++)Q.pop();break}for(;C.length>0&&C[0]==="..";)Q.pop(),C.shift();return`${I.protocol}//${I.host}/${[...Q,...C].join("/")}`}catch{return A.endsWith("/")||g.startsWith("/")?A+g:A+"/"+g}}_extractQueryParams(A,g){try{const I=new URL(A);for(let[Q,C]of I.searchParams)g[Q]=C;return I.search="",I.toString()}catch{return A}}async _load(A=!0,g=!0){var I=this;if(!I.deleted||!g){if(I.json.content)await Q(I.json.content,null,A,g);else if(I.json.contents){let C=I.json.contents.map((a,e)=>Q(a,e,A,g));Promise.all(C)}}async function Q(C,a,e,i){let t;C.uri?t=C.uri:C.url&&(t=C.url);const E=/^(?:http|https|ftp|tcp|udp):\/\/\S+/;if(E.test(I.rootPath)?E.test(t)||(t=I._assembleURL(I.rootPath,t)):t=I.rootPath+BI.sep+t,t.startsWith("/local-tiles")||(t=I._extractQueryParams(t,I.queryParams)),I.queryParams){var o="";for(let r in I.queryParams)I.queryParams.hasOwnProperty(r)&&(o+="&"+r+"="+I.queryParams[r]);t.includes("?")?t+=o:t+="?"+o.substring(1)}if(t)if(I.contentURL.push(t),i&&(t.includes(".b3dm")||t.includes(".glb")||t.includes(".gltf")))try{I.tileLoader.get(I.abortController,I.uuid,t,r=>{if(!I.deleted){if(r.asset&&r.asset.copyright&&(r.asset.copyright.split(";").forEach(n=>{mg[n]?mg[n]++:mg[n]=1}),I.displayCopyright&&kQ()),r.isSplatsData){if(!I.splatsMesh){if(I.splatsMesh=new be(I.tileLoader.renderer,void 0,void 0,I.oldUltraMeshSplats?.25:1),I.splatsMesh.setQuality(I.splatsQuality),I.splatsMesh.setSplatsCPUCulling(I.splatsCPUCulling),I.splatsMesh.setSplatsCropRadius(I.splatsCropRadius),I.splatsMesh.setSplatsSizeMultiplier(I.splatsSizeMultiplier),I.splatsExposureEV!==void 0&&typeof I.splatsMesh.setExposureEV=="function"&&I.splatsMesh.setExposureEV(I.splatsExposureEV),I.splatsSaturation!==void 0&&typeof I.splatsMesh.setSaturation=="function"&&I.splatsMesh.setSaturation(I.splatsSaturation),I.splatsContrast!==void 0&&typeof I.splatsMesh.setContrast=="function"&&I.splatsMesh.setContrast(I.splatsContrast),I.splatsTempTint!==void 0&&typeof I.splatsMesh.setTempTint=="function"){const n=I.splatsTempTint||[0,0];I.splatsMesh.setTempTint(n[0],n[1])}I.static&&(I.splatsMesh.matrixAutoUpdate=!1,I.splatsMesh.matrixWorldAutoUpdate=!1),I.add(I.splatsMesh),I.updateMatrices()}r=I.splatsMesh.addSplatsTile(r.positions,r.colors,r.cov0,r.cov1)}return r.isSplatsBatch||(r.traverse(n=>{if((n.isMesh||n.isPoints)&&n.layers.disable(0),n.isMesh&&I.occlusionCullingService){const s=n.geometry.attributes.position,c=[];for(let d=0;d<s.count;d++)c.push(I.color.r,I.color.g,I.color.b);n.geometry.setAttribute("color",new x.Float32BufferAttribute(c,3))}}),I.add(r),I.updateMatrices()),I.meshContent.push(r),r}},I.cameraOnLoad?()=>I.loadingStrategy=="IMMEDIATE"?I._calculateDistanceToCamera(I.cameraOnLoad):I.loadingStrategy=="INCREMENTAL"?I.parentTile?I.parentTile._calculateDistanceToCamera(I.cameraOnLoad)/Math.max(1,I.parentTile.level):I._calculateDistanceToCamera(I.cameraOnLoad)/Math.max(1,I.level):I.loadingStrategy=="PERLEVEL"?I.parentTile?I.level+I.parentTile._calculateDistanceToCamera(I.cameraOnLoad):I.level+I._calculateDistanceToCamera(I.cameraOnLoad):0:()=>0,()=>I._getSiblings(),I.level,I.loadingStrategy,!I.json.boundingVolume.region,!!I.json.boundingVolume.region,I.geometricError,I.oldUltraMeshSplats)}catch(r){I.displayErrors&&Ge(r)}else e&&t.includes(".json")&&(I.jsonRequested=t,I.tileLoader.get(I.abortController,I.uuid,t,async r=>{I.jsonReceived=!0,r.rootPath=BI.dirname(t),I.json.children.push(r),a==null?delete I.json.content:I.json.contents.splice(a,1),I.hasUnloadedJSONContent--}))}}dispose(){const A=this;if(A.physics&&A.physics.sim&&(A.colliderUUID&&(A.physics.sim.detachCollider({colliderId:A.colliderUUID}),A.colliderUUID=void 0),Array.isArray(A.colliderUUIDs)&&A.colliderUUIDs.length)){for(const g of A.colliderUUIDs)A.physics.sim.detachCollider({colliderId:g});A.colliderUUIDs=[]}A.meshContent.forEach(g=>{g&&g.asset&&g.asset.copyright&&(g.asset.copyright.split(";").forEach(I=>{mg[I]&&mg[I]--}),A.displayCopyright&&kQ())}),A.childrenTiles.forEach(g=>g.dispose()),A.deleted=!0,A.splatsMesh&&(A.meshContent.forEach(g=>g.hide()),A.parentTile||(A.splatsMesh.dispose(),A.splatsMesh=void 0)),A.contentURL&&(A.contentURL.forEach(g=>{A.tileLoader.invalidate(g,A.uuid)}),A.contentURL=[]),A.abortController&&!A.jsonRequested&&A.abortController.abort("tile not needed"),this.parent=null,A.meshContent=[],A.bbox&&A.bbox.dispose(),this.dispatchEvent({type:"removed"})}_disposeMeshContent(){const A=this;if(!A.deleted){A.deleted=!0,A.abortController&&(A.abortController.abort("tile not needed"),A.abortController=new AbortController);for(let g=A.meshContent.length-1;g>=0;g--){const I=A.meshContent[g];I&&I.asset&&I.asset.copyright&&(I.asset.copyright.split(";").forEach(Q=>{mg[Q]&&mg[Q]--}),A.displayCopyright&&kQ()),A.remove(I)}A.splatsMesh&&A.meshContent.forEach(g=>g.hide()),A.meshContent=[],A.contentURL.forEach(g=>{A.tileLoader.invalidate(g,A.uuid)}),A.contentURL=[]}}_disposeChildren(){var A=this;A.childrenTiles.forEach(g=>{g.dispose(),A.remove(g)}),A.childrenTiles=[]}raycast(A,g){if(this.splatsMesh){wB.copy(A.ray),fB.copy(this.matrixWorld).invert(),wB.applyMatrix4(fB);let I=!1;if(this.boundingVolume instanceof ag)I=this.boundingVolume.intersectsRay(wB);else{if(!(this.boundingVolume instanceof x.Sphere))return!1;I=ray.intersectsSphere(this.boundingVolume)}return I&&this.materialVisibility&&this.splatsReady&&(FB.length=0,this.meshContent.forEach(Q=>{Q.isSplatsBatch&&(Q.raycast(wB,FB,A.params.Points.threshold),FB.forEach(C=>{C.point.applyMatrix4(this.matrixWorld)}),g.push(...FB))})),I}return super.raycast(A,g)}update(A){this.splatsMesh&&this.splatsMesh.updateShaderParams(A,this.renderer);const g=new x.Frustum;g.setFromProjectionMatrix(new x.Matrix4().multiplyMatrices(A.projectionMatrix,A.matrixWorldInverse));let I=[0],Q=[0],C=[0],a=[0];if(this.refine=="REPLACE"?this.loadingStrategy==="IMMEDIATE"?(this._updateImmediate(A,g),this._statsImmediate(C,I,a,Q)):(this._update(A,g),this._stats(C,I,a,Q)):(this._update(A,g),this._stats(C,I,a,Q)),I>0&&(a[0]/=I[0]),this.splatsMesh)if(yB.copy(A.position),fB.copy(this.matrixWorld).invert(),yB.applyMatrix4(fB),this.splatsCPUCulling){const e=new x.Matrix4().multiplyMatrices(A.projectionMatrix,A.matrixWorldInverse).multiply(this.matrixWorld);this.splatsMesh.sort(yB,e)}else this.splatsMesh.sort(yB);return this.splatsMesh&&this.splatsMesh.update(),{numTilesLoaded:I[0],numTilesRendered:Q[0],maxLOD:C[0],percentageLoaded:a[0]}}_updateImmediate(A,g){this._computeMetricRecursive(A,g),this._updateNodeVisibilityImmediate(),this._expandTreeImmediate(A),this.shouldBeVisible=this.metric>0||!!this.loadOutsideView,this._shouldBeVisibleUpdateImmediate(),this._trimTreeImmediate(),this._loadMeshImmediate()}_statsImmediate(A,g,I,Q){A[0]=Math.max(A[0],this.level),(this.shouldBeVisible||this.materialVisibility)&&(g[0]++,this.materialVisibility&&I[0]++),this.materialVisibility&&Q[0]++,this.childrenTiles.forEach(C=>{C._statsImmediate(A,g,I,Q)})}_stats(A,g,I,Q){A[0]=Math.max(A[0],this.level),this.hasMeshContent&&(g[0]++,this.meshContent.length==this.hasMeshContent&&I[0]++,this.materialVisibility&&Q[0]++),this.childrenTiles.forEach(C=>{C._stats(A,g,I,Q)})}_trimTreeImmediate(){const A=this;if(A.metric!=null)if(A.hasMeshContent&&A.shouldBeVisible&&A.materialVisibility){if(A.splatsMesh&&!A.splatsReady)return;A._disposeChildren()}else A.childrenTiles.forEach(g=>{g._trimTreeImmediate()})}_updateNodeVisibilityImmediate(A=!1){const g=this;if(g.hasMeshContent)if(g.shouldBeVisible)g.meshContent.length==g.hasMeshContent?g.materialVisibility?g.childrenTiles.forEach(I=>{I._updateNodeVisibilityImmediate(!0)}):(g._changeContentVisibility(!0),g.childrenTiles.forEach(I=>{I._updateNodeVisibilityImmediate(A)})):g.childrenTiles.forEach(I=>{I._updateNodeVisibilityImmediate(A)});else{if(!g.loadOutsideView&&g.metric<0)return g._changeContentVisibility(!1),g.meshContent.length>0&&g._disposeMeshContent(),void g.childrenTiles.forEach(I=>{I._updateNodeVisibilityImmediate(!0)});if(!g.materialVisibility||g.splatsMesh&&!g.splatsReady)g.childrenTiles.forEach(I=>{I._updateNodeVisibilityImmediate(A)});else if(A)g._changeContentVisibility(!1),g.meshContent.length>0&&g._disposeMeshContent(),g.childrenTiles.forEach(I=>{I._updateNodeVisibilityImmediate(A)});else{let I=!0;g.childrenTiles.every(Q=>!!Q._isReadyImmediate()||(I=!1,!1)),I&&g.childrenTiles.length>0?(g._changeContentVisibility(!1),g.meshContent.length>0&&g._disposeMeshContent(),g.childrenTiles.forEach(Q=>{Q._updateNodeVisibilityImmediate(A)})):g.childrenTiles.forEach(Q=>{Q._updateNodeVisibilityImmediate(!g.splatsMesh||!!g.splatsReady)})}}else g.childrenTiles.forEach(I=>{I._updateNodeVisibilityImmediate(A)})}_shouldBeVisibleUpdateImmediate(){const A=this;A.hasMeshContent?A.metric==null?A.shouldBeVisible=!1:A.metric<0?(A.shouldBeVisible=!!A.loadOutsideView,A.childrenTiles.forEach(g=>{g._setShouldNotBeVisibleRecursive()})):A.metric<A.geometricErrorMultiplier*A.geometricError?A.hasUnloadedJSONContent||(A.json&&A.json.children&&A.json.children.length>0?(A.shouldBeVisible=!1,A.childrenTiles.forEach(g=>{g.shouldBeVisible=!0,g._shouldBeVisibleUpdateImmediate()})):A.shouldBeVisible=!0):A.childrenTiles.forEach(g=>{g._setShouldNotBeVisibleRecursive()}):(A.childrenTiles.forEach(g=>{g.shouldBeVisible=!0,g._shouldBeVisibleUpdateImmediate()}),A.shouldBeVisible=!1)}_setShouldNotBeVisibleRecursive(){this.shouldBeVisible=!1,this.childrenTiles.forEach(A=>{A._setShouldNotBeVisibleRecursive()})}_loadMeshImmediate(){const A=this;A.hasMeshContent&&A.shouldBeVisible?A.meshContent.length<A.hasMeshContent&&A.contentURL.length==0&&(A.deleted=!1,A._load(!1,!0)):A.childrenTiles.forEach(g=>{g._loadMeshImmediate()})}_computeMetricRecursive(A,g){const I=this;I.metric=-1,I.isSetup&&(I.boundingVolume&&I.geometricError&&(I.metric=I._calculateUpdateMetric(A,g)),I.childrenTiles.forEach(Q=>Q._computeMetricRecursive(A,g)))}_expandTreeImmediate(A){const g=this;g.hasUnloadedJSONContent||(g.hasMeshContent?g.occlusionCullingService&&g.hasMeshContent&&!g.occlusionCullingService.hasID(g.colorID)||g.metric>=0&&g.metric<g.geometricErrorMultiplier*g.geometricError&&g.json&&g.json.children&&g.childrenTiles.length<g.json.children.length&&g._loadJsonChildren(A):g.json&&g.json.children&&g.childrenTiles.length<g.json.children.length&&g._loadJsonChildren(A)),g.childrenTiles.forEach(I=>I._expandTreeImmediate(A))}_update(A,g){const I=this;if(!I.isSetup)return;const Q=I.materialVisibility;I.boundingVolume&&I.geometricError&&(I.metric=I._calculateUpdateMetric(A,g)),I.childrenTiles.forEach(C=>C._update(A,g)),function(C){if(C<0)return I.inFrustum=!1,void I._changeContentVisibility(!!I.loadOutsideView);if(I.inFrustum=!0,!!I.hasMeshContent&&!(I.meshContent.length<I.hasMeshContent)){if(I.childrenTiles.length==0)return void I._changeContentVisibility(!0);if(C>=I.geometricErrorMultiplier*I.geometricError)I._changeContentVisibility(!0);else if(C<I.geometricErrorMultiplier*I.geometricError&&I.refine=="REPLACE"){let a=!0;I.childrenTiles.every(e=>!!e._isReady()||(a=!1,!1)),a?I._changeContentVisibility(!1):I._changeContentVisibility(!0)}}}(I.metric),function(C){C<0&&I.hasMeshContent||I.occlusionCullingService&&I.hasMeshContent&&!I.occlusionCullingService.hasID(I.colorID)||(!I.hasMeshContent||C<=I.geometricErrorMultiplier*I.geometricError&&(I.meshContent.length>0||I.splatsMesh))&&I.json&&I.json.children&&I.childrenTiles.length!=I.json.children.length&&I._loadJsonChildren(A)}(I.metric),function(C,a){if(I.hasMeshContent){if(!I.inFrustum)return void I._disposeChildren();if(I.occlusionCullingService&&!a&&I.hasMeshContent&&I.meshContent.length>0&&I.materialVisibility&&I._areAllChildrenLoadedAndHidden())return I.splatsMesh&&I.materialVisibility&&!I.splatsReady?void 0:void I._disposeChildren();if(C>=I.geometricErrorMultiplier*I.geometricError){if(I.splatsMesh&&I.materialVisibility&&!I.splatsReady)return;I._disposeChildren()}}}(I.metric,Q)}_loadJsonChildren(A){const g=this;for(let I=g.json.children.length-1;I>=0;I--)g.json.children[I].root||g.json.children[I].children||g.json.children[I].getChildren||g.json.children[I].content||g.json.children[I].contents||g.json.children.splice(I,1);g.json.children.forEach(I=>{let Q=new RQ({parentTile:g,queryParams:g.queryParams,parentGeometricError:g.geometricError,parentBoundingVolume:g.boundingVolume,parentRefine:g.refine,json:I,rootPath:g.rootPath,geometricErrorMultiplier:g.geometricErrorMultiplier,loadOutsideView:g.loadOutsideView,level:Math.floor(g.level)+1,tileLoader:g.tileLoader,cameraOnLoad:A,occlusionCullingService:g.occlusionCullingService,renderer:g.renderer,static:g.static,centerModel:!1,displayErrors:g.displayErrors,displayCopyright:g.displayCopyright,distanceBias:g.distanceBias,loadingStrategy:g.loadingStrategy,drawBoundingVolume:g.drawBoundingVolume,splatsMesh:g.splatsMesh,clipShape:g.clipShape,oldUltraMeshSplats:g.oldUltraMeshSplats,physics:g.physics});g.childrenTiles.push(Q),g.add(Q)}),g.updateMatrices(!0)}_areAllChildrenLoadedAndHidden(){let A=!0;const g=this;return this.childrenTiles.every(I=>{if(I.hasMeshContent){if(I.childrenTiles.length>0)return A=!1,!1;if(I.metric<0)return!0;if(I.materialVisibility&&(!g.splatsMesh||g.splatsReady)||g.occlusionCullingService.hasID(I.colorID))return A=!1,!1}else if(!I._areAllChildrenLoadedAndHidden())return A=!1,!1;return!0}),A}_isReady(){if(this.metric==null)return!1;if(this.metric<0)return!0;if(this.hasUnloadedJSONContent)return!1;if(!this.hasMeshContent&&this.json.children.length==0&&!this.hasUnloadedJSONContent)return!0;if(!this.hasMeshContent||this.meshContent.length==0||!this.materialVisibility){if(this.children.length>0){var A=!0;return this.childrenTiles.every(g=>!!g._isReady()||(A=!1,!1)),A}return!1}return!this.hasMeshContent||!(this.meshContent.length<this.hasMeshContent)&&!!this.materialVisibility}_isReadyImmediate(){if(this.materialVisibility||!this.loadOutsideView&&this.metric<0)return!0;if(this.childrenTiles.length>0){var A=!0;return this.childrenTiles.every(g=>!!g._isReadyImmediate()||(A=!1,!1)),A}return!1}_changeContentVisibility(A){const g=this;if(g.materialVisibility!=A){if(g.bbox&&(g.bbox.material.visible=A),g.splatsMesh)A!=g.materialVisibility&&(g.meshContent.forEach(I=>{A&&I.isSplatsBatch?I.show(()=>{g.materialVisibility&&(g.splatsReady=!0)}):(I.hide(),g.splatsReady=!1)}),g.materialVisibility=A);else{if(g.hasMeshContent&&g.meshContent.length>0&&(A?g.meshContent.forEach(I=>{I.traverse(Q=>{(Q.isMesh||Q.isPoints)&&Q.layers.enable(0)})}):g.meshContent.forEach(I=>{I.traverse(Q=>{(Q.isMesh||Q.isPoints)&&Q.layers.disable(0)})})),g.materialVisibility==A)return;g.materialVisibility=A}g._updateCollider()}}setPose(A,g,I){if(!A.isVector3)throw new TypeError("OGC3DTile.setPose: 'position' must be an instance of THREE.Vector3");if(!I.isVector3)throw new TypeError("OGC3DTile.setPose: 'scale' must be an instance of THREE.Vector3");if(!g.isEuler&&!g.isQuaternion)throw new TypeError("OGC3DTile.setPose: 'rotation' must be a THREE.Euler or THREE.Quaternion");this.physics&&this.physics.sim&&this.physics.rigidBodyID?(this.physics.sim.setPose({bodyId:this.physics.rigidBodyID,position:A,rotation:g}),I&&!I.equals(this.scale)&&(this.scale.copy(I),this.updateMatrices(),this.traverse(Q=>{Q._updateCollider&&Q._updateCollider()}))):(this.scale.copy(I),g.isQuaternion?this.setRotationFromQuaternion(g):this.setRotationFromEuler(g),this.position.copy(A),this.updateMatrices())}_updateCollider(){const A=this;if(!A.physics||!A.physics.sim)return;const g=A.physics.rigidBodyID,I=Math.floor(A.level||0),Q=!!A.materialVisibility,C=Array.isArray(A.childrenTiles)&&A.childrenTiles.length>0,a=A.physics&&A.physics.colliders&&typeof A.physics.colliders=="object"?A.physics.colliders:null,e=Number.isFinite(a?.maxLOD)?a.maxLOD:Number.isFinite(A.physics.maxLOD)?A.physics.maxLOD:1/0,i=(G,k)=>{const F=Array.isArray(k)&&k.length?k:["mesh","hull","bounds"];for(const m of F)if(G.includes(m))return m;return null},t=()=>{const G=a?.priority||["mesh","hull","bounds"];if(a&&Array.isArray(a.byGeometricError)&&a.byGeometricError.length){const k=A.geometricError;if(typeof k=="number"){const F=[];for(const N of a.byGeometricError){if(!N||!N.shape)continue;const S=typeof N.min=="number"?N.min:-1/0,j=typeof N.max=="number"?N.max:1/0;k>=S&&k<j&&F.push(N.shape)}const m=i(F,G);if(m)return m}return a.defaultShape?a.defaultShape:A.physics.shape?A.physics.shape:"none"}if(a&&Array.isArray(a.byLevel)&&a.byLevel.length){const k=Math.floor(A.level||0),F=[];for(const N of a.byLevel){if(!N||!N.shape)continue;const S=typeof N.min=="number"?N.min:-1/0,j=typeof N.max=="number"?N.max:1/0;k>=S&&k<=j&&F.push(N.shape)}return i(F,G)||(a.defaultShape?a.defaultShape:A.physics.shape?A.physics.shape:"none")}return A.physics.shape||"none"},E=t(),o=()=>{A.colliderUUID&&(A.physics.sim.detachCollider({colliderId:A.colliderUUID}),A.colliderUUID=void 0)},r=()=>{if(Array.isArray(A.colliderUUIDs)&&A.colliderUUIDs.length){for(const G of A.colliderUUIDs)A.physics.sim.detachCollider({colliderId:G});A.colliderUUIDs=[]}},n=()=>{o(),r(),A._activeColliderShape=void 0};if(!g||!E||E==="none"||I>e)return n(),void(A._activeColliderShape=void 0);const s=Q&&I<=e,c=A._activeColliderShape||"none";c===E||!Q&&I===e&&C||(c!=="mesh"&&c!=="hull"||E!=="bounds"?c!=="bounds"||E!=="mesh"&&E!=="hull"?c==="mesh"&&E==="hull"||c==="hull"&&E==="mesh"?r():n():o():r(),A._activeColliderShape=E&&E!=="none"?E:void 0);let d=A;for(;d&&d.parentTile;)d=d.parentTile;const D=new x.Vector3,h=new x.Quaternion,u=new x.Vector3;d&&d.matrixWorld&&d.matrixWorld.decompose(D,h,u);const f=new x.Matrix4().compose(D,h,new x.Vector3(1,1,1)),R=new x.Matrix4().copy(f).invert();if(E!=="bounds"){if(E==="mesh"||E==="hull")if(console.log(E+" "+this.level),o(),s){if(!A.hasMeshContent||A.meshContent.length!==A.hasMeshContent)return;if(!Array.isArray(A.colliderUUIDs)||A.colliderUUIDs.length===0){A.colliderUUIDs=[];const G=E==="hull"?"addConvexHullCollider":"attachTrimeshCollider",k=F=>{if(!(F&&F.isMesh&&F.geometry&&F.geometry.isBufferGeometry))return;const m=new x.Matrix4().multiplyMatrices(R,F.matrixWorld),N=new x.Vector3,S=new x.Quaternion,j=new x.Vector3;m.decompose(N,S,j);const z=new x.Vector3;F.getWorldScale(z),z.set(Math.abs(z.x),Math.abs(z.y),Math.abs(z.z)),A.physics.sim[G]({bodyId:g,geometry:F.geometry,localPosition:[N.x,N.y,N.z],localRotation:S,localScale:[z.x,z.y,z.z]}).then($=>{const _=t(),X=!A.deleted&&(_==="mesh"||_==="hull"),CA=Math.floor(A.level||0)<=e,sA=Math.floor(A.level||0)===e&&Array.isArray(A.childrenTiles)&&A.childrenTiles.length>0;X&&(A.materialVisibility?CA:CA&&sA)?($&&A.colliderUUIDs.push($),A._activeColliderShape=E):$&&A.physics.sim.detachCollider({colliderId:$})}).catch(()=>{})};for(const F of A.meshContent)F&&!F.isSplatsBatch&&(F.isMesh&&k(F),F.traverse&&F.traverse(m=>{m.isMesh&&k(m)}))}}else I===e&&C||(r(),A._activeColliderShape=void 0)}else if(r(),s){if(!A.colliderUUID){if(A.boundingVolume instanceof ag||A.boundingVolume?.isOBB){const G=A.localToWorld(A.boundingVolume.center.clone()).clone().applyMatrix4(R),k=A.localToWorld(new x.Vector3(0,0,0)).clone().applyMatrix4(R),F=A.boundingVolume.e1.clone().multiplyScalar(A.boundingVolume.halfSize.x),m=A.boundingVolume.e2.clone().multiplyScalar(A.boundingVolume.halfSize.y),N=A.boundingVolume.e3.clone().multiplyScalar(A.boundingVolume.halfSize.z),S=A.localToWorld(F.clone()).applyMatrix4(R),j=A.localToWorld(m.clone()).applyMatrix4(R),z=A.localToWorld(N.clone()).applyMatrix4(R),$=S.clone().sub(k),_=j.clone().sub(k),X=z.clone().sub(k),CA=$.length(),sA=_.length(),oA=X.length(),fA=CA>0?$.clone().multiplyScalar(1/CA):new x.Vector3(1,0,0),bA=sA>0?_.clone().multiplyScalar(1/sA):new x.Vector3(0,1,0),iA=oA>0?X.clone().multiplyScalar(1/oA):new x.Vector3(0,0,1),yA=new x.Matrix4().makeBasis(fA,bA,iA),EA=new x.Quaternion().setFromRotationMatrix(yA);A.colliderUUID=A.physics.sim.attachShapeCollider({bodyId:g,shape:GQ.createBox(CA,sA,oA),localPosition:[G.x,G.y,G.z],localRotation:EA}),A._activeColliderShape="bounds"}else if(A.boundingVolume instanceof x.Sphere||A.boundingVolume?.isSphere){const G=A.localToWorld(A.boundingVolume.center.clone()).clone().applyMatrix4(R),k=A.localToWorld(new x.Vector3(0,0,0)).clone().applyMatrix4(R),F=A.localToWorld(new x.Vector3(1,0,0)).applyMatrix4(R).sub(k).length(),m=A.localToWorld(new x.Vector3(0,1,0)).applyMatrix4(R).sub(k).length(),N=A.localToWorld(new x.Vector3(0,0,1)).applyMatrix4(R).sub(k).length(),S=Math.max(F,m,N),j=A.boundingVolume.radius*S;A.colliderUUID=A.physics.sim.attachShapeCollider({bodyId:g,shape:GQ.createBall(j),localPosition:[G.x,G.y,G.z]}),A._activeColliderShape="bounds"}}}else I===e&&C||(o(),A._activeColliderShape=void 0)}_calculateUpdateMetric(A,g){let I=0;if(this.boundingVolume instanceof ag){if(Jg.copy(this.boundingVolume),Jg.applyMatrix4(this.matrixWorld),!Jg.inFrustum(g))return-1;if(this.clipShape!=null&&(this.clipShape.isSphere&&!Jg.intersectsSphere(this.clipShape)||this.clipShape.isOBB&&!Jg.intersectsOBB(this.clipShape)))return Number.MAX_VALUE;I=Math.max(0,Jg.distanceToPoint(A.position)-A.near)}else{if(!(this.boundingVolume instanceof x.Sphere))return console.error("unsupported shape"),-1;if(Fg.copy(this.boundingVolume),Fg.applyMatrix4(this.matrixWorld),this.clipShape!=null&&(this.clipShape.isOBB&&!this.clipShape.intersectsSphere(Fg)||this.clipShape.isSphere&&!this.clipShape.intersectsSphere(Fg)))return Number.MAX_VALUE;if(!g.intersectsSphere(Fg))return-1;I=Math.max(0,A.position.distanceTo(Fg.center)-Fg.radius-A.near)}if(I=Math.pow(I,this.distanceBias),I==0)return 0;const Q=this.matrixWorld.getMaxScaleOnAxis();this.renderer&&this.renderer.getDrawingBufferSize(this.rendererSize);let C=this.rendererSize.y,a=A.fov;return A.aspect<1&&(a*=A.aspect,C=this.rendererSize.x),16*(2*Math.tan(.5*a*.017453292519943295)*I)/(C*Q)}_getSiblings(){const A=this,g=[];if(!A.parentTile)return g;let I=A.parentTile;for(;!I.hasMeshContent&&I.parentTile;)I=I.parentTile;return I.childrenTiles.forEach(Q=>{if(Q&&Q!=A){for(;!Q.hasMeshContent&&Q.childrenTiles[0];)Q=Q.childrenTiles[0];g.push(Q)}}),g}_calculateDistanceToCamera(A){return this.boundingVolume instanceof ag?(Jg.copy(this.boundingVolume),Jg.applyMatrix4(this.matrixWorld),Math.max(0,Jg.distanceToPoint(A.position))):this.boundingVolume instanceof x.Sphere?(Fg.copy(this.boundingVolume),Fg.applyMatrix4(this.matrixWorld),Math.max(0,A.position.distanceTo(Fg.center)-Fg.radius)):(console.error("unsupported shape"),-1)}setGeometricErrorMultiplier(A){this.geometricErrorMultiplier=A,this.childrenTiles.forEach(g=>g.setGeometricErrorMultiplier(A))}setDistanceBias(A){this.distanceBias=A,this.childrenTiles.forEach(g=>g.setDistanceBias(A))}_transformWGS84ToCartesian(A,g,I,Q){const C=6378137/Math.sqrt(1-.006694384442042*Math.pow(Math.sin(g),2)),a=Math.cos(g),e=Math.cos(A),i=Math.sin(g),t=C+I,E=t*a*e,o=t*a*Math.sin(A),r=(.993305615557957*C+I)*i;Q.set(E,o,r)}hideCopyright(){(function(){FA||((FA=document.createElement("div")).style.position="fixed",FA.style.bottom="20px",FA.style.left="20px",FA.style.color="white",FA.style.textShadow="2px 2px 0 #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000",FA.style.padding="10px",FA.style.backgroundColor="rgba(0, 0, 0, 0.1)",document.body.appendChild(FA)),FA.style.opacity=0})()}showCopyright(){(function(){FA||((FA=document.createElement("div")).style.position="fixed",FA.style.bottom="20px",FA.style.left="20px",FA.style.color="white",FA.style.textShadow="2px 2px 0 #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000",FA.style.padding="10px",FA.style.backgroundColor="rgba(0, 0, 0, 0.1)",document.body.appendChild(FA)),FA.style.opacity=1})()}}function Ge(B){var A=document.createElement("div");A.textContent=B,A.style.position="fixed",A.style.top="10px",A.style.left="50%",A.style.transform="translateX(-50%)",A.style.padding="10px",A.style.backgroundColor="#ff8800",A.style.color="#ffffff",A.style.zIndex="9999",document.body.appendChild(A),setTimeout(function(){A.remove()},8e3)}function kQ(){FA||((FA=document.createElement("div")).style.position="fixed",FA.style.bottom="20px",FA.style.left="20px",FA.style.color="white",FA.style.textShadow="2px 2px 0 #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000",FA.style.padding="10px",FA.style.backgroundColor="rgba(0, 0, 0, 0.1)",document.body.appendChild(FA));const B=Me();let A="";B.forEach(g=>{A+=g+", "}),A=A.slice(0,-2),FA.textContent=A}const ig=new x.Sphere(new x.Vector3(0,0,0),1),Vg=new x.Vector3(0,0,0),mQ=new x.Vector3(0,0,0),eo=new x.Vector3(0,1,0),NQ=new x.Vector2,Re=new x.Quaternion,ke=new x.Matrix4;class UQ extends x.Object3D{constructor(A){super();const g=this;if(A.queryParams&&(this.queryParams={...A.queryParams}),this.uuid=Aa(),A.tileLoader?this.tileLoader=A.tileLoader:console.error("an instanced tileset must be provided an InstancedTilesetLoader"),this.master=A.master,this.loadOutsideView=A.loadOutsideView,this.cameraOnLoad=A.cameraOnLoad,this.parentTile=A.parentTile,this.distanceBias=Math.max(1e-4,A.distanceBias?A.distanceBias:1),this.childrenTiles=[],this.jsonChildren=[],this.meshContent=new Set,this.static=A.static,this.static&&(this.matrixAutoUpdate=!1,this.matrixWorldAutoUpdate=!1),this.tileContent,this.refinement,this.rootPath,this.geometricError,this.boundingVolume,this.json,this.materialVisibility=!1,this.inFrustum=!0,this.level=A.level?A.level:0,this.hasMeshContent=0,this.hasUnloadedJSONContent=0,this.centerModel=A.centerModel,this.deleted=!1,this.abortController=new AbortController,A.json)this.rootPath=A.json.rootPath?A.json.rootPath:A.rootPath,A.json.children&&(this.jsonChildren=A.json.children),g.setup(A);else if(A.url){this.loadJson=(C,a)=>{const e=BI.dirname(a);g.setup({rootPath:e,json:C,onLoadCallback:A.onLoadCallback})};var I=A.url;if(g.queryParams){var Q="";for(let C in g.queryParams)g.queryParams.hasOwnProperty(C)&&(Q+="&"+C+"="+g.queryParams[C]);I.includes("?")?I+=Q:I+="?"+Q.substring(1)}g.tileLoader.get(g.abortController,I,g.uuid,g)}}async setup(A){const g=this;A.json.root?(g.json=A.json.root,!g.json.children&&g.json.getChildren&&(g.json.children=await g.json.getChildren()),g.jsonChildren=g.json.children,g.json.refinement||(g.json.refinement=A.json.refinement),g.json.geometricError||(g.json.geometricError=A.json.geometricError),g.json.transform||(g.json.transform=A.json.transform),g.json.boundingVolume||(g.json.boundingVolume=A.json.boundingVolume)):(g.json=A.json,!g.json.children&&g.json.getChildren&&(g.json.children=await g.json.getChildren(),g.jsonChildren=g.json.children)),g.rootPath=A.json.rootPath?A.json.rootPath:A.rootPath,g.json.refinement?g.refinement=g.json.refinement:g.refinement=A.parentRefinement,g.json.geometricError?g.geometricError=g.json.geometricError:g.geometricError=A.parentGeometricError;let I=new x.Matrix4;if(g.json.transform&&!g.centerModel&&(I.elements=g.json.transform),g.applyMatrix4(I),g.parentTile&&g.parentTile.matrix&&(g.matrix.premultiply(g.parentTile.matrix),g.matrix.decompose(g.position,g.quaternion,g.scale)),g.matrixWorldNeedsUpdate=!0,g.updateWorldMatrix(!0,!0),g.json.boundingVolume)if(g.json.boundingVolume.box)g.boundingVolume=new ag(g.json.boundingVolume.box);else if(g.json.boundingVolume.region){const C=g.json.boundingVolume.region;g.transformWGS84ToCartesian(C[0],C[1],C[4],Vg),g.transformWGS84ToCartesian(C[2],C[3],C[5],mQ),Vg.lerp(mQ,.5),g.boundingVolume=new x.Sphere(new x.Vector3(Vg.x,Vg.y,Vg.z),Vg.distanceTo(mQ))}else if(g.json.boundingVolume.sphere){const C=g.json.boundingVolume.sphere;g.boundingVolume=new x.Sphere(new x.Vector3(C[0],C[1],C[2]),C[3])}else g.boundingVolume=A.parentBoundingVolume;else g.boundingVolume=A.parentBoundingVolume;function Q(C){C.uri&&C.uri.includes("json")||C.url&&C.url.includes("json")?g.hasUnloadedJSONContent++:g.hasMeshContent++}if(g.json.content?(Q(g.json.content),g.load()):g.json.contents&&(g.json.contents.forEach(C=>Q(C)),g.load()),g.centerModel){const C=new x.Sphere;g.boundingVolume instanceof ag?C.copy(g.boundingVolume.sphere):g.boundingVolume instanceof x.Sphere&&C.copy(g.boundingVolume),this.json.boundingVolume.region&&(g.transformWGS84ToCartesian(.5*(g.json.boundingVolume.region[0]+g.json.boundingVolume.region[2]),.5*(g.json.boundingVolume.region[1]+g.json.boundingVolume.region[3]),.5*(g.json.boundingVolume.region[4]+g.json.boundingVolume.region[5]),Vg),Re.setFromUnitVectors(Vg.normalize(),eo.normalize()),g.master.applyQuaternion(Re),g.master.updateWorldMatrix(!1,!1)),ke.makeTranslation(-C.center.x*g.scale.x,-C.center.y*g.scale.y,-C.center.z*g.scale.z),g.master.matrix.multiply(ke),g.master.matrix.decompose(g.master.position,g.master.quaternion,g.master.scale)}g.isSetup=!0,A.onLoadCallback&&A.onLoadCallback(g)}isAbsolutePathOrURL(A){const g=/^(?:http|https|ftp|tcp|udp):\/\/\S+/.test(A),I=A.startsWith("/")&&!A.startsWith("//");return g||I}assembleURL(A,g){A.endsWith("/")||(A+="/");const I=new URL(A);let Q=I.pathname.split("/").filter(a=>a!==""),C=g.split("/").filter(a=>a!=="");for(let a=1;a<=Q.length&&!(a>=C.length);a++)if(Q.slice(Q.length-a,Q.length).join("/")===C.slice(0,a).join("/")){for(let e=0;e<a;e++)Q.pop();break}for(;C.length>0&&C[0]==="..";)Q.pop(),C.shift();return`${I.protocol}//${I.host}/${[...Q,...C].join("/")}`}extractQueryParams(A,g){const I=new URL(A);for(let[Q,C]of I.searchParams)g[Q]=C;return I.search="",I.toString()}load(){var A=this;function g(I){let Q;I.uri?Q=I.uri:I.url&&(Q=I.url);const C=/^(?:http|https|ftp|tcp|udp):\/\/\S+/;if(C.test(A.rootPath)?C.test(Q)||(Q=A.assembleURL(A.rootPath,Q)):BI.isAbsolute(A.rootPath)&&(Q=A.rootPath+BI.sep+Q),Q=A.extractQueryParams(Q,A.queryParams),A.queryParams){var a="";for(let e in A.queryParams)A.queryParams.hasOwnProperty(e)&&(a+="&"+e+"="+A.queryParams[e]);Q.includes("?")?Q+=a:Q+="?"+a.substring(1)}Q&&(Q.includes(".b3dm")||Q.includes(".glb")||Q.includes(".gltf")?(A.contentURL=Q,A.tileLoader.get(A.abortController,Q,A.uuid,A,A.cameraOnLoad?()=>A.calculateDistanceToCamera(A.cameraOnLoad):()=>0,()=>A.getSiblings(),A.level,!A.json.boundingVolume.region,!!A.json.boundingVolume.region,A.geometricError)):Q.includes(".json")&&A.tileLoader.get(A.abortController,Q,A.uuid,A))}A.deleted||(A.json.content?g(A.json.content):A.json.contents&&A.json.contents.forEach(I=>g(I)))}loadMesh(A){this.deleted||this.meshContent.add(A)}loadJson(A,g){this.deleted||(this.json.children&&(this.jsonChildren=this.json.children),A.rootPath=BI.dirname(g),this.jsonChildren.push(A),this.hasUnloadedJSONContent--)}dispose(){const A=this;A.childrenTiles.forEach(g=>g.dispose()),A.deleted=!0,A.abortController&&A.abortController.abort(),this.parent=null,this.parentTile=null,this.dispatchEvent({type:"removed"})}disposeChildren(){this.childrenTiles.forEach(A=>A.dispose()),this.childrenTiles=[]}_update(A,g){const I=this;function Q(C){if(I.hasMeshContent&&!(I.meshContent.size<I.hasMeshContent)){if(C<0)return I.inFrustum=!1,void I.changeContentVisibility(!!I.loadOutsideView);if(I.inFrustum=!0,I.childrenTiles.length!=0){if(C>=I.master.geometricErrorMultiplier*I.geometricError)I.changeContentVisibility(!0);else if(C<I.master.geometricErrorMultiplier*I.geometricError){let a=!0;I.childrenTiles.every(e=>!!e.isReady()||(a=!1,!1)),a&&I.changeContentVisibility(!1)}}else I.changeContentVisibility(!0)}}I.isSetup&&(I.materialVisibility,I.boundingVolume&&I.geometricError&&(I.metric=I.calculateUpdateMetric(A,g)),I.childrenTiles.forEach(C=>C._update(A,g)),Q(I.metric),function(C){C<0&&I.hasMeshContent||(!I.hasMeshContent&&I.rootPath||C<I.master.geometricErrorMultiplier*I.geometricError&&I.meshContent.size>0)&&I.json&&I.jsonChildren&&I.childrenTiles.length!=I.jsonChildren.length&&I.jsonChildren.forEach(a=>{if(!(a.root||a.children||a.getChildren||a.content||a.contents))return;let e=new UQ({parentTile:I,queryParams:I.queryParams,parentGeometricError:I.geometricError,parentBoundingVolume:I.boundingVolume,parentRefinement:I.refinement,json:a,rootPath:I.rootPath,loadOutsideView:I.loadOutsideView,level:I.level+1,tileLoader:I.tileLoader,cameraOnLoad:A,master:I.master,centerModel:!1});I.childrenTiles.push(e)})}(I.metric),function(C){if(I.hasMeshContent){if(!I.inFrustum)return I.disposeChildren(),void Q(C);C>=I.master.geometricErrorMultiplier*I.geometricError&&(I.disposeChildren(),Q(C))}}(I.metric))}areAllChildrenLoadedAndHidden(){let A=!0;return this.childrenTiles.every(g=>{if(g.hasMeshContent){if(g.childrenTiles.length>0)return A=!1,!1;if(!g.inFrustum)return!0;if(!g.materialVisibility||g.meshesToDisplay!=g.meshesDisplayed)return A=!1,!1}else if(!g.areAllChildrenLoadedAndHidden())return A=!1,!1;return!0}),A}isReady(){if(!this.inFrustum)return!0;if(this.hasUnloadedJSONContent)return!1;if(!this.hasMeshContent||this.meshContent.size==0||!this.materialVisibility){if(this.childrenTiles.length>0){var A=!0;return this.childrenTiles.every(g=>!!g.isReady()||(A=!1,!1)),A}return!1}return!this.hasMeshContent||!(this.meshContent.size<this.hasMeshContent)&&!!this.materialVisibility}changeContentVisibility(A){this.materialVisibility=A}calculateUpdateMetric(A,g){if(this.boundingVolume instanceof ag){if(ig.copy(this.boundingVolume.sphere),ig.applyMatrix4(this.matrixWorld),!g.intersectsSphere(ig))return-1}else{if(!(this.boundingVolume instanceof x.Sphere))return console.error("unsupported shape"),-1;if(ig.copy(this.boundingVolume),ig.applyMatrix4(this.matrixWorld),!g.intersectsSphere(ig))return-1}let I=Math.max(0,A.position.distanceTo(ig.center)-ig.radius);if(I=Math.pow(I,this.distanceBias),I==0)return 0;const Q=this.matrixWorld.getMaxScaleOnAxis();this.master._renderSize(NQ);let C=NQ.y,a=A.fov;A.aspect<1&&(a*=A.aspect,C=NQ.x);let e=2*Math.tan(.5*a*.017453292519943295)*I;return 16*window.devicePixelRatio*e/(C*Q)}getSiblings(){const A=this,g=[];if(!A.parentTile)return g;let I=A.parentTile;for(;!I.hasMeshContent&&I.parentTile;)I=I.parentTile;return I.childrenTiles.forEach(Q=>{if(Q&&Q!=A){for(;!Q.hasMeshContent&&Q.childrenTiles[0];)Q=Q.childrenTiles[0];g.push(Q)}}),g}calculateDistanceToCamera(A){return this.boundingVolume instanceof ag?(ig.copy(this.boundingVolume.sphere),ig.applyMatrix4(this.matrixWorld)):this.boundingVolume instanceof x.Sphere?(ig.copy(this.boundingVolume),ig.applyMatrix4(this.matrixWorld)):console.error("unsupported shape"),Math.max(0,A.position.distanceTo(ig.center)-ig.radius)}getWorldMatrix(){return this.matrixWorld}transformWGS84ToCartesian(A,g,I,Q){const C=6378137/Math.sqrt(1-.006694384442042*Math.pow(Math.sin(g),2)),a=Math.cos(g),e=Math.cos(A),i=Math.sin(g),t=C+I,E=t*a*e,o=t*a*Math.sin(A),r=(.993305615557957*C+I)*i;Q.set(E,o,r)}}class Eo extends x.Object3D{constructor(A){super(),A.master=this,A.domWidth&&A.domHeight?this.rendererSize=new x.Vector2(A.domWidth,A.domHeight):this.rendererSize=new x.Vector2(1e3,1e3),this.renderer=A.renderer,this.distanceBias=Math.max(1e-4,A.distanceBias?A.distanceBias:1),this.geometricErrorMultiplier=A.geometricErrorMultiplier?A.geometricErrorMultiplier:1,this.tileset=new UQ(A),A.static&&(this.matrixAutoUpdate=!1),this.tileLoader=A.tileLoader}_renderSize(A){this.renderer?this.renderer.getDrawingBufferSize(A):A.copy(this.rendererSize)}setCanvasSize(A,g){this.rendererSize.set(A,g)}update(A,g){if(g)this.tileset._update(A,g);else{const I=new x.Frustum;I.setFromProjectionMatrix(new x.Matrix4().multiplyMatrices(A.projectionMatrix,A.matrixWorldInverse)),this.tileset._update(A,I)}}setGeometricErrorMultiplier(A){this.geometricErrorMultiplier=A||1}}class io{constructor(A){const g=this;g.scene=A,g.instancedTiles=[],g.instancedMesh,g.reuseableMatrix=new x.Matrix4}addInstance(A){const g=this;A.added=!0,A.listOMesh=g.instancedTiles,g.instancedTiles.push(A),g.instancedMesh&&A.loadMesh(g.instancedMesh)}addToScene(){const A=this;A.instancedMesh.setMatrixAt(0,new x.Matrix4),A.instancedMesh.instanceMatrix.needsUpdate=!0,A.instancedMesh.count=1,A.scene.add(A.instancedMesh),A.instancedMesh.onAfterRender=()=>{delete A.instancedMesh.onAfterRender,A.instancedMesh.displayedOnce=!0}}setObject(A){const g=this;g.instancedMesh=A,g.instancedMesh.matrixAutoUpdate=!1,g.instancedMesh.matrixWorldAutoUpdate=!1,g.scene.children.includes(A)||this.addToScene();for(let I=0;I<g.instancedTiles.length;I++)g.instancedTiles[I].loadMesh(g.instancedMesh)}update(){const A=this;for(let g=A.instancedTiles.length-1;g>=0;g--)A.instancedTiles[g].deleted&&A.instancedTiles.splice(g,1);if(A.instancedMesh){A.instancedMesh.count=0,A.instancedMesh.instancedTiles=[];for(let g=0;g<A.instancedTiles.length;g++)A.instancedTiles[g].meshContent.add(A.instancedMesh),A.instancedTiles[g].materialVisibility&&(A.instancedMesh.count++,A.reuseableMatrix.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),A.reuseableMatrix.multiply(A.instancedTiles[g].matrixWorld),A.reuseableMatrix.multiply(A.instancedMesh.baseMatrix),A.instancedMesh.setMatrixAt(A.instancedMesh.count-1,A.reuseableMatrix),A.instancedMesh.instancedTiles.push(A.instancedTiles[g]));A.instancedMesh.instanceMatrix.needsUpdate=!0,A.instancedMesh.needsUpdate=!0,A.instancedMesh.computeBoundingSphere()}}getCount(){return this.instancedTiles.length}dispose(){const A=this;return!(A.instancedTiles.length>0)&&!!A.instancedMesh&&(A.scene.remove(A.instancedMesh),A.instancedMesh.traverse(g=>{if(g.dispose&&g.dispose(),g.material)if(g.material.length)for(let I=0;I<g.material.length;++I)g.material[I].dispose();else g.material.dispose();g.geometry&&g.geometry.dispose()}),A.instancedMesh.dispose(),!0)}}class to{constructor(){const A=this;A.count=0,A.json,A.instancedTiles=[]}addInstance(A){this.instancedTiles.push(A),this.json&&A.loadJson(this.json,this.url)}setObject(A,g){const I=this;I.json=A,I.url=g;for(let Q=0;Q<I.instancedTiles.length;Q++)I.instancedTiles[Q].loadJson(I.json,I.url)}getCount(){return this.instancedTiles.length}update(){const A=this;for(let g=A.instancedTiles.length-1;g>=0;g--)A.instancedTiles[g].deleted&&A.instancedTiles.splice(g,1)}dispose(){return!(!this.json||this.instancedTiles.length!=0)}}let iI=0;async function oo(B){return new Promise(A=>{const g=setInterval(()=>{B.hasDracoLoader&&!B.dracoLoader||B.hasKTX2Loader&&!B.ktx2Loader||(clearInterval(g),A())},10)})}const me=`let l = null, p = null, A = null;
|
|
1503
|
+
const x = /* @__PURE__ */ new Map(), B = /* @__PURE__ */ new Map(), C = /* @__PURE__ */ new Map(), M = /* @__PURE__ */ new Map();
|
|
1504
|
+
let I = "vector", D = { x: 0, y: -9.81, z: 0 }, W = { x: 0, y: 0, z: 0 }, q = 9.81, E = 0, R = 1 / 60;
|
|
1505
|
+
function F(t, e = null) {
|
|
1506
|
+
t != null && postMessage({ replyTo: t, result: e });
|
|
1507
|
+
}
|
|
1508
|
+
function U(t, e) {
|
|
1509
|
+
t != null && postMessage({ replyTo: t, error: e && (e.message || e) || "error" });
|
|
1510
|
+
}
|
|
1511
|
+
function L(t, e, o) {
|
|
1512
|
+
return Math.max(e, Math.min(o, t));
|
|
1513
|
+
}
|
|
1514
|
+
function w(t) {
|
|
1515
|
+
return { x: +t[0], y: +t[1], z: +t[2] };
|
|
1516
|
+
}
|
|
1517
|
+
function z(t) {
|
|
1518
|
+
return { x: +t[0], y: +t[1], z: +t[2], w: +t[3] };
|
|
1519
|
+
}
|
|
1520
|
+
function P(t, e) {
|
|
1521
|
+
return { x: t.x - e.x, y: t.y - e.y, z: t.z - e.z };
|
|
1522
|
+
}
|
|
1523
|
+
function j(t, e) {
|
|
1524
|
+
return { x: t.x * e, y: t.y * e, z: t.z * e };
|
|
1525
|
+
}
|
|
1526
|
+
function O(t) {
|
|
1527
|
+
return Math.hypot(t.x, t.y, t.z);
|
|
1528
|
+
}
|
|
1529
|
+
function $(t) {
|
|
1530
|
+
const e = O(t) || 1;
|
|
1531
|
+
return { x: t.x / e, y: t.y / e, z: t.z / e };
|
|
1532
|
+
}
|
|
1533
|
+
async function v() {
|
|
1534
|
+
if (A) {
|
|
1535
|
+
await A;
|
|
1536
|
+
return;
|
|
1537
|
+
}
|
|
1538
|
+
A = (async () => {
|
|
1539
|
+
if (!l) {
|
|
1540
|
+
postMessage({ type: "debug", msg: "importing rapier module" });
|
|
1541
|
+
const t = await import("./rapier-CaKmQPsS.js"), o = { locateFile: (r) => {
|
|
1542
|
+
try {
|
|
1543
|
+
return new URL(r, import.meta.url).href;
|
|
1544
|
+
} catch {
|
|
1545
|
+
return r;
|
|
1546
|
+
}
|
|
1547
|
+
} }, n = t?.default ?? t;
|
|
1548
|
+
postMessage({
|
|
1549
|
+
type: "debug",
|
|
1550
|
+
msg: "rapier module import result",
|
|
1551
|
+
hasDefault: !!t?.default,
|
|
1552
|
+
hasInitFunction: typeof n?.init == "function",
|
|
1553
|
+
isFactoryFunction: typeof n == "function"
|
|
1554
|
+
});
|
|
1555
|
+
try {
|
|
1556
|
+
if (typeof n == "function") {
|
|
1557
|
+
postMessage({ type: "debug", msg: "rapier: calling module factory function" });
|
|
1558
|
+
const r = n(o);
|
|
1559
|
+
l = r && typeof r.then == "function" ? await r : r || n, postMessage({ type: "debug", msg: "rapier factory resolved", hasWorld: !!l?.World });
|
|
1560
|
+
} else if (typeof n?.init == "function")
|
|
1561
|
+
postMessage({ type: "debug", msg: "rapier: calling init()" }), await n.init(o), l = n, postMessage({ type: "debug", msg: "rapier.init completed", hasWorld: !!l?.World });
|
|
1562
|
+
else if (n)
|
|
1563
|
+
l = n, postMessage({ type: "debug", msg: "rapier: using imported module as-is", hasWorld: !!l?.World });
|
|
1564
|
+
else
|
|
1565
|
+
throw new Error("Imported Rapier module is empty/invalid");
|
|
1566
|
+
} catch (r) {
|
|
1567
|
+
throw postMessage({ type: "error", msg: "rapier init failed", error: r && (r.message || String(r)) || String(r) }), r;
|
|
1568
|
+
}
|
|
1569
|
+
if (!l) throw new Error("Failed to import Rapier module");
|
|
1570
|
+
}
|
|
1571
|
+
if (!p) {
|
|
1572
|
+
const t = I === "vector" ? D : { x: 0, y: 0, z: 0 };
|
|
1573
|
+
try {
|
|
1574
|
+
typeof l.World == "function" ? p = new l.World(t) : typeof l.World?.new == "function" ? p = l.World.new(t) : typeof l?.World == "object" && typeof l.World.create == "function" ? p = l.World.create(t) : typeof l == "function" ? p = l(t) : p = l.World ? l.World(t) : null, postMessage({ type: "debug", msg: "rapier world created" });
|
|
1575
|
+
} catch (e) {
|
|
1576
|
+
throw postMessage({ type: "error", msg: "failed to construct rapier World", error: e && (e.message || String(e)) || String(e) }), new Error("Failed to construct Rapier World: " + (e && e.message ? e.message : String(e)));
|
|
1577
|
+
}
|
|
1578
|
+
}
|
|
1579
|
+
})();
|
|
1580
|
+
try {
|
|
1581
|
+
await A;
|
|
1582
|
+
} finally {
|
|
1583
|
+
}
|
|
1584
|
+
}
|
|
1585
|
+
function S(t) {
|
|
1586
|
+
I = "vector", D = { x: +t[0], y: +t[1], z: +t[2] }, p && (p.gravity = D);
|
|
1587
|
+
}
|
|
1588
|
+
function T(t, e) {
|
|
1589
|
+
I = "geocentric", W = { x: +t[0], y: +t[1], z: +t[2] }, q = +e, p && (p.gravity = { x: 0, y: 0, z: 0 });
|
|
1590
|
+
}
|
|
1591
|
+
function H(t) {
|
|
1592
|
+
const e = $(P(W, t));
|
|
1593
|
+
return j(e, q);
|
|
1594
|
+
}
|
|
1595
|
+
function V(t, e, o) {
|
|
1596
|
+
try {
|
|
1597
|
+
if (typeof p.createRigidBody != "function")
|
|
1598
|
+
throw postMessage({ type: "error", msg: "world.createRigidBody is not a function", value: typeof p.createRigidBody }), new Error("world.createRigidBody is not a function");
|
|
1599
|
+
postMessage({ type: "debug", msg: "createBody: about to call world.createRigidBody", id: e, descType: typeof t, descCtor: t && t.constructor ? t.constructor.name : null });
|
|
1600
|
+
const n = p.createRigidBody(t);
|
|
1601
|
+
return o?.v && typeof n.setLinvel == "function" && n.setLinvel(w(o.v), !1), o?.w && typeof n.setAngvel == "function" && n.setAngvel(w(o.w), !1), x.set(e, n), B.set(e, { type: o.type, mass: o.mass }), n;
|
|
1602
|
+
} catch (n) {
|
|
1603
|
+
throw postMessage({ type: "error", msg: "createBody failed", error: n && (n.message || String(n)) || String(n), id: e, descType: typeof t }), n;
|
|
1604
|
+
}
|
|
1605
|
+
}
|
|
1606
|
+
function G(t) {
|
|
1607
|
+
const e = x.get(t);
|
|
1608
|
+
if (e) {
|
|
1609
|
+
for (const [o, n] of Array.from(M.entries()))
|
|
1610
|
+
if (n === t) {
|
|
1611
|
+
const r = C.get(o);
|
|
1612
|
+
r && p.removeCollider(r, !0), C.delete(o), M.delete(o);
|
|
1613
|
+
}
|
|
1614
|
+
p.removeRigidBody(e);
|
|
1615
|
+
}
|
|
1616
|
+
x.delete(t), B.delete(t);
|
|
1617
|
+
}
|
|
1618
|
+
function N({ id: t, positions: e, indices: o, bodyId: n, local: r }) {
|
|
1619
|
+
if (!(e instanceof Float32Array))
|
|
1620
|
+
throw new Error("attachCollider: positions must be Float32Array");
|
|
1621
|
+
if (e.length % 3 !== 0)
|
|
1622
|
+
throw new Error("attachCollider: positions length must be a multiple of 3");
|
|
1623
|
+
const d = new Float32Array(e), h = r && r.s && +r.s[0] || 1, m = r && r.s && +r.s[1] || 1, k = r && r.s && +r.s[2] || 1;
|
|
1624
|
+
for (let i = 0, c = d.length; i < c; i += 3)
|
|
1625
|
+
d[i + 0] *= h, d[i + 1] *= m, d[i + 2] *= k;
|
|
1626
|
+
let s = null;
|
|
1627
|
+
if (o) {
|
|
1628
|
+
const i = o instanceof Uint32Array ? o : new Uint32Array(o.buffer || o);
|
|
1629
|
+
s = new Uint32Array(i);
|
|
1630
|
+
const c = d.length / 3;
|
|
1631
|
+
for (let u = 0; u < s.length; ++u) {
|
|
1632
|
+
const b = s[u];
|
|
1633
|
+
if (!Number.isFinite(b) || b < 0 || b >= c)
|
|
1634
|
+
throw new Error(\`attachCollider: index out of range or invalid at \${u}: \${b} (vertCount=\${c})\`);
|
|
1635
|
+
}
|
|
1636
|
+
}
|
|
1637
|
+
for (let i = 0; i < d.length; ++i) {
|
|
1638
|
+
const c = d[i];
|
|
1639
|
+
if (!Number.isFinite(c)) throw new Error(\`attachCollider: invalid position value at \${i}: \${c}\`);
|
|
1640
|
+
}
|
|
1641
|
+
const a = l.ColliderDesc.trimesh(d, s);
|
|
1642
|
+
r?.p && a.setTranslation(+r.p[0], +r.p[1], +r.p[2]), r?.q && a.setRotation(z(r.q));
|
|
1643
|
+
const y = x.get(n);
|
|
1644
|
+
if (!y) throw new Error(\`attachCollider: body not found: \${n}\`);
|
|
1645
|
+
const f = p.createCollider(a, y);
|
|
1646
|
+
C.set(t, f), M.set(t, n);
|
|
1647
|
+
}
|
|
1648
|
+
function _(t) {
|
|
1649
|
+
const e = C.get(t);
|
|
1650
|
+
e && p.removeCollider(e, !0), C.delete(t), M.delete(t);
|
|
1651
|
+
}
|
|
1652
|
+
function K(t) {
|
|
1653
|
+
if (!t || typeof t != "object") throw new Error("attachShapeCollider: missing shape");
|
|
1654
|
+
const e = String(t.kind || "").toLowerCase(), o = t.params || {};
|
|
1655
|
+
switch (e) {
|
|
1656
|
+
case "ball": {
|
|
1657
|
+
const n = +o.radius;
|
|
1658
|
+
return l.ColliderDesc.ball(n);
|
|
1659
|
+
}
|
|
1660
|
+
case "cuboid":
|
|
1661
|
+
case "box": {
|
|
1662
|
+
const n = +o.hx, r = +o.hy, d = +o.hz;
|
|
1663
|
+
return l.ColliderDesc.cuboid(n, r, d);
|
|
1664
|
+
}
|
|
1665
|
+
case "roundcuboid":
|
|
1666
|
+
case "round_cuboid":
|
|
1667
|
+
case "round-cuboid": {
|
|
1668
|
+
const n = +o.hx, r = +o.hy, d = +o.hz, h = +o.radius || 0;
|
|
1669
|
+
return l.ColliderDesc.roundCuboid(n, r, d, h);
|
|
1670
|
+
}
|
|
1671
|
+
case "capsule": {
|
|
1672
|
+
const n = +o.halfHeight, r = +o.radius;
|
|
1673
|
+
return l.ColliderDesc.capsule(n, r);
|
|
1674
|
+
}
|
|
1675
|
+
case "cone": {
|
|
1676
|
+
const n = +o.halfHeight, r = +o.radius;
|
|
1677
|
+
return l.ColliderDesc.cone(n, r);
|
|
1678
|
+
}
|
|
1679
|
+
case "cylinder": {
|
|
1680
|
+
const n = +o.halfHeight, r = +o.radius;
|
|
1681
|
+
return l.ColliderDesc.cylinder(n, r);
|
|
1682
|
+
}
|
|
1683
|
+
case "segment": {
|
|
1684
|
+
const n = o.a || o.p1, r = o.b || o.p2;
|
|
1685
|
+
if (!n || !r) throw new Error("segment requires a and b (or p1,p2)");
|
|
1686
|
+
return l.ColliderDesc.segment(w(n), w(r));
|
|
1687
|
+
}
|
|
1688
|
+
case "triangle": {
|
|
1689
|
+
const n = o.a, r = o.b, d = o.c;
|
|
1690
|
+
if (!n || !r || !d) throw new Error("triangle requires a, b, c");
|
|
1691
|
+
return l.ColliderDesc.triangle(w(n), w(r), w(d));
|
|
1692
|
+
}
|
|
1693
|
+
case "polyline": {
|
|
1694
|
+
const n = o.vertices instanceof Float32Array ? o.vertices : new Float32Array(o.vertices);
|
|
1695
|
+
let r = null;
|
|
1696
|
+
return o.indices && (r = o.indices instanceof Uint32Array ? o.indices : new Uint32Array(o.indices)), l.ColliderDesc.polyline(n, r);
|
|
1697
|
+
}
|
|
1698
|
+
case "convexhull":
|
|
1699
|
+
case "convex_hull":
|
|
1700
|
+
case "convex-hull": {
|
|
1701
|
+
const n = o.vertices instanceof Float32Array ? o.vertices : new Float32Array(o.vertices), r = l.ColliderDesc.convexHull(n);
|
|
1702
|
+
if (!r) throw new Error("convexHull: invalid or insufficient points");
|
|
1703
|
+
return r;
|
|
1704
|
+
}
|
|
1705
|
+
case "heightfield": {
|
|
1706
|
+
const n = +o.rows, r = +o.cols, d = o.heights instanceof Float32Array ? o.heights : new Float32Array(o.heights), h = o.scale || { x: 1, y: 1, z: 1 };
|
|
1707
|
+
return l.ColliderDesc.heightfield(n, r, d, h);
|
|
1708
|
+
}
|
|
1709
|
+
default:
|
|
1710
|
+
throw new Error(\`Unknown primitive collider kind: \${t.kind}\`);
|
|
1711
|
+
}
|
|
1712
|
+
}
|
|
1713
|
+
function J(t) {
|
|
1714
|
+
if (I === "geocentric")
|
|
1715
|
+
for (const [e, o] of x.entries()) {
|
|
1716
|
+
if (!o || o.isFixed()) continue;
|
|
1717
|
+
const n = Math.max(1e-6, B.get(e)?.mass ?? 1), r = o.translation(), d = H(r), h = { x: d.x * n, y: d.y * n, z: d.z * n };
|
|
1718
|
+
o.applyForce(h, !0);
|
|
1719
|
+
}
|
|
1720
|
+
}
|
|
1721
|
+
function Q(t) {
|
|
1722
|
+
p.timestep = t, J(), p.step(), E += t * 1e3;
|
|
1723
|
+
const e = {};
|
|
1724
|
+
for (const [o, n] of x.entries()) {
|
|
1725
|
+
const r = n.translation(), d = n.rotation();
|
|
1726
|
+
e[o] = { p: [r.x, r.y, r.z], q: [d.x, d.y, d.z, d.w] };
|
|
1727
|
+
}
|
|
1728
|
+
postMessage({ type: "state", state: { timeMs: E, bodies: e } });
|
|
1729
|
+
}
|
|
1730
|
+
function X(t, e, o = 1e6) {
|
|
1731
|
+
const n = w(t), r = w(e), d = new l.Ray(n, r), h = p.castRay(d, o, !0);
|
|
1732
|
+
if (!h) return { hits: [] };
|
|
1733
|
+
const m = h.toi, k = d.pointAt(m), s = h.normal;
|
|
1734
|
+
let a = null;
|
|
1735
|
+
for (const [i, c] of C.entries())
|
|
1736
|
+
if (c.handle === h.collider.handle) {
|
|
1737
|
+
a = i;
|
|
1738
|
+
break;
|
|
1739
|
+
}
|
|
1740
|
+
let y = null;
|
|
1741
|
+
const f = h.collider.parent()?.handle;
|
|
1742
|
+
if (f != null) {
|
|
1743
|
+
for (const [i, c] of x.entries())
|
|
1744
|
+
if (c.handle === f) {
|
|
1745
|
+
y = i;
|
|
1746
|
+
break;
|
|
1747
|
+
}
|
|
1748
|
+
}
|
|
1749
|
+
return {
|
|
1750
|
+
hits: [{
|
|
1751
|
+
toi: m,
|
|
1752
|
+
point: [k.x, k.y, k.z],
|
|
1753
|
+
normal: [s.x, s.y, s.z],
|
|
1754
|
+
colliderId: a,
|
|
1755
|
+
bodyId: y
|
|
1756
|
+
}]
|
|
1757
|
+
};
|
|
1758
|
+
}
|
|
1759
|
+
async function Y(t) {
|
|
1760
|
+
const e = t.data || {}, { id: o, type: n, _envId: r, replyTo: d } = e, h = typeof r < "u" ? r : typeof d < "u" ? d : o, m = (s) => F(h, s), k = (s) => U(h, s);
|
|
1761
|
+
try {
|
|
1762
|
+
switch (n) {
|
|
1763
|
+
case "init": {
|
|
1764
|
+
R = typeof e.fixedDt == "number" ? e.fixedDt : R;
|
|
1765
|
+
const s = e.gravity || {};
|
|
1766
|
+
(s.mode || "vector").toLowerCase() === "geocentric" ? T(s.planetCenter || [0, 0, 0], typeof s.intensity == "number" ? s.intensity : 9.81) : S(s.vector || [0, -9.81, 0]), await v(), m({ ok: !0 });
|
|
1767
|
+
break;
|
|
1768
|
+
}
|
|
1769
|
+
case "addObject": {
|
|
1770
|
+
let u = function(g) {
|
|
1771
|
+
return typeof g == "number" && isFinite(g);
|
|
1772
|
+
};
|
|
1773
|
+
await v();
|
|
1774
|
+
const s = e.id, a = e.body || {}, y = (a.type || "dynamic").toLowerCase(), f = typeof a.mass == "number" ? a.mass : 1, i = w(a.p || [0, 0, 0]), c = z(a.q || [0, 0, 0, 1]);
|
|
1775
|
+
if ((!u(i.x) || !u(i.y) || !u(i.z)) && (postMessage({ type: "debug", msg: "addObject: invalid translation detected, resetting to 0", bodyId: s, p: i }), i.x = u(i.x) ? i.x : 0, i.y = u(i.y) ? i.y : 0, i.z = u(i.z) ? i.z : 0), ![c.x, c.y, c.z, c.w].every(u))
|
|
1776
|
+
postMessage({ type: "debug", msg: "addObject: invalid rotation detected, using identity quat", bodyId: s, q: c }), c.x = 0, c.y = 0, c.z = 0, c.w = 1;
|
|
1777
|
+
else {
|
|
1778
|
+
const g = Math.hypot(c.x, c.y, c.z, c.w) || 1;
|
|
1779
|
+
c.x /= g, c.y /= g, c.z /= g, c.w /= g;
|
|
1780
|
+
}
|
|
1781
|
+
let b;
|
|
1782
|
+
y === "fixed" ? b = l.RigidBodyDesc.fixed() : y === "kinematic" ? b = l.RigidBodyDesc.kinematicPositionBased() : b = l.RigidBodyDesc.dynamic().setAdditionalMass(f);
|
|
1783
|
+
try {
|
|
1784
|
+
b.setTranslation(i.x, i.y, i.z);
|
|
1785
|
+
} catch (g) {
|
|
1786
|
+
throw postMessage({ type: "error", msg: "desc.setTranslation failed", error: g && (g.message || String(g)) || String(g), bodyId: s, p: i }), g;
|
|
1787
|
+
}
|
|
1788
|
+
try {
|
|
1789
|
+
b.setRotation(c);
|
|
1790
|
+
} catch (g) {
|
|
1791
|
+
throw postMessage({ type: "error", msg: "desc.setRotation failed", error: g && (g.message || String(g)) || String(g), bodyId: s, q: c }), g;
|
|
1792
|
+
}
|
|
1793
|
+
postMessage({ type: "debug", msg: "addObject: creating body", bodyId: s, typeStr: y, mass: f, p: i, q: c }), V(b, s, { type: y, mass: f, v: a.v, w: a.w }), m({ ok: !0 });
|
|
1794
|
+
break;
|
|
1795
|
+
}
|
|
1796
|
+
case "removeObject": {
|
|
1797
|
+
await v(), G(e.id), m({ ok: !0 });
|
|
1798
|
+
break;
|
|
1799
|
+
}
|
|
1800
|
+
// addCollider removed: colliders are created during attachCollider
|
|
1801
|
+
// disposeCollider removed
|
|
1802
|
+
case "attachCollider":
|
|
1803
|
+
case "attachTrimeshCollider": {
|
|
1804
|
+
await v();
|
|
1805
|
+
const s = e.bodyId, a = e.id || e.colliderId, y = e.positions, f = e.indices || null, i = e.local || {};
|
|
1806
|
+
if (!y) {
|
|
1807
|
+
F(o, { ok: !1, reason: "missing positions" });
|
|
1808
|
+
break;
|
|
1809
|
+
}
|
|
1810
|
+
const c = y instanceof Float32Array ? y : new Float32Array(y.buffer || y);
|
|
1811
|
+
let u = f;
|
|
1812
|
+
u && !(u instanceof Uint32Array) && (u = new Uint32Array(u.buffer || u)), N({
|
|
1813
|
+
id: a,
|
|
1814
|
+
positions: c,
|
|
1815
|
+
indices: u || null,
|
|
1816
|
+
bodyId: s,
|
|
1817
|
+
local: i
|
|
1818
|
+
}), m({ ok: !0, colliderId: a });
|
|
1819
|
+
break;
|
|
1820
|
+
}
|
|
1821
|
+
case "attachShapeCollider": {
|
|
1822
|
+
await v();
|
|
1823
|
+
const s = e.bodyId, a = e.id || e.colliderId, y = e.shape, f = e.local || {}, i = K(y);
|
|
1824
|
+
f?.p && i.setTranslation(+f.p[0], +f.p[1], +f.p[2]), f?.q && i.setRotation(z(f.q));
|
|
1825
|
+
const c = x.get(s);
|
|
1826
|
+
if (!c) {
|
|
1827
|
+
F(o, { ok: !1, reason: "unknown body" });
|
|
1828
|
+
break;
|
|
1829
|
+
}
|
|
1830
|
+
const u = p.createCollider(i, c);
|
|
1831
|
+
C.set(a, u), M.set(a, s), m({ ok: !0, colliderId: a });
|
|
1832
|
+
break;
|
|
1833
|
+
}
|
|
1834
|
+
case "detachCollider": {
|
|
1835
|
+
await v();
|
|
1836
|
+
const s = e.colliderId || e.id;
|
|
1837
|
+
_(s), m({ ok: !0 });
|
|
1838
|
+
break;
|
|
1839
|
+
}
|
|
1840
|
+
case "applyForce": {
|
|
1841
|
+
await v();
|
|
1842
|
+
const s = e.id, a = x.get(s);
|
|
1843
|
+
if (!a) {
|
|
1844
|
+
F(o, { ok: !1, reason: "unknown body" });
|
|
1845
|
+
break;
|
|
1846
|
+
}
|
|
1847
|
+
const y = !!e.impulse, f = w(e.force || [0, 0, 0]), i = e.wake !== !1;
|
|
1848
|
+
y ? e.point && typeof a.applyImpulseAtPoint == "function" ? a.applyImpulseAtPoint(f, w(e.point), i) : a.applyImpulse(f, i) : e.point && typeof a.applyForceAtPoint == "function" ? a.applyForceAtPoint(f, w(e.point), i) : a.applyForce(f, i), m({ ok: !0 });
|
|
1849
|
+
break;
|
|
1850
|
+
}
|
|
1851
|
+
case "setPose": {
|
|
1852
|
+
await v();
|
|
1853
|
+
const s = e.id, a = x.get(s);
|
|
1854
|
+
if (!a) {
|
|
1855
|
+
m({ ok: !1, reason: "unknown body" });
|
|
1856
|
+
break;
|
|
1857
|
+
}
|
|
1858
|
+
const y = e.p, f = e.q, i = e.wake !== !1;
|
|
1859
|
+
try {
|
|
1860
|
+
typeof a.isKinematic == "function" && a.isKinematic() ? (y && a.setNextKinematicTranslation(w(y)), f && a.setNextKinematicRotation(z(f))) : (y && typeof a.setTranslation == "function" && a.setTranslation(w(y), !0), f && typeof a.setRotation == "function" && a.setRotation(z(f), !0)), i && typeof a.wakeUp == "function" && a.wakeUp(), m({ ok: !0 });
|
|
1861
|
+
} catch (c) {
|
|
1862
|
+
k(c);
|
|
1863
|
+
}
|
|
1864
|
+
break;
|
|
1865
|
+
}
|
|
1866
|
+
case "setGravity": {
|
|
1867
|
+
await v();
|
|
1868
|
+
const s = e.gravity || {};
|
|
1869
|
+
(s.mode || "vector").toLowerCase() === "geocentric" ? T(s.planetCenter || [0, 0, 0], typeof s.intensity == "number" ? s.intensity : 9.81) : S(s.vector || [0, -9.81, 0]), m({ ok: !0 });
|
|
1870
|
+
break;
|
|
1871
|
+
}
|
|
1872
|
+
case "step": {
|
|
1873
|
+
await v();
|
|
1874
|
+
const s = typeof e.dt == "number" ? L(e.dt, 1 / 600, 1 / 10) : R;
|
|
1875
|
+
Q(s), m({ ok: !0, dtUsed: s });
|
|
1876
|
+
break;
|
|
1877
|
+
}
|
|
1878
|
+
case "raycast": {
|
|
1879
|
+
await v();
|
|
1880
|
+
const s = X(e.origin || [0, 0, 0], e.direction || [0, -1, 0], typeof e.maxToi == "number" ? e.maxToi : 1e6);
|
|
1881
|
+
m(s);
|
|
1882
|
+
break;
|
|
1883
|
+
}
|
|
1884
|
+
default: {
|
|
1885
|
+
m({ ok: !1, reason: "unknown message type" });
|
|
1886
|
+
break;
|
|
1887
|
+
}
|
|
1888
|
+
}
|
|
1889
|
+
} catch (s) {
|
|
1890
|
+
k(s);
|
|
1891
|
+
}
|
|
1892
|
+
}
|
|
1893
|
+
self.addEventListener("message", Y);
|
|
1894
|
+
//# sourceMappingURL=physicsRapier.worker-jgQ9dgLt.js.map
|
|
1895
|
+
`,Ne=typeof self<"u"&&self.Blob&&new Blob(["URL.revokeObjectURL(import.meta.url);",me],{type:"text/javascript;charset=utf-8"});function no(B){let A;try{if(A=Ne&&(self.URL||self.webkitURL).createObjectURL(Ne),!A)throw"";const g=new Worker(A,{type:"module",name:B?.name});return g.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(A)}),g}catch{return new Worker("data:text/javascript;charset=utf-8,"+encodeURIComponent(me),{type:"module",name:B?.name})}}const Ue=`function u(n, e = null, t = []) {
|
|
1896
|
+
n != null && postMessage({ replyTo: n, result: e }, t);
|
|
1897
|
+
}
|
|
1898
|
+
function a(n, e) {
|
|
1899
|
+
n != null && postMessage({ replyTo: n, error: e && (e.message || String(e)) || String(e) });
|
|
1900
|
+
}
|
|
1901
|
+
function f(n, e) {
|
|
1902
|
+
if (!(n instanceof Float32Array))
|
|
1903
|
+
throw new Error("positions must be a Float32Array");
|
|
1904
|
+
const t = n.length;
|
|
1905
|
+
if (t % 3 !== 0)
|
|
1906
|
+
throw new Error("positions length must be a multiple of 3");
|
|
1907
|
+
const s = e && +e[0] || 1, r = e && +e[1] || 1, o = e && +e[2] || 1;
|
|
1908
|
+
if (s !== 1 || r !== 1 || o !== 1)
|
|
1909
|
+
for (let l = 0; l < t; l += 3)
|
|
1910
|
+
n[l + 0] *= s, n[l + 1] *= r, n[l + 2] *= o;
|
|
1911
|
+
return { hullVertices: n, hullIndices: null };
|
|
1912
|
+
}
|
|
1913
|
+
self.addEventListener("message", (n) => {
|
|
1914
|
+
const e = n.data || {}, t = typeof e._envId < "u" ? e._envId : typeof e.replyTo < "u" ? e.replyTo : e.id;
|
|
1915
|
+
try {
|
|
1916
|
+
switch (e.type) {
|
|
1917
|
+
case "computeConvexHull": {
|
|
1918
|
+
const s = e.positions instanceof Float32Array ? e.positions : new Float32Array(e.positions?.buffer || e.positions), r = e.localScale || e.scale || e.local?.s || [1, 1, 1], { hullVertices: o, hullIndices: i } = f(s, r), c = [];
|
|
1919
|
+
o?.buffer && c.push(o.buffer), i?.buffer, u(t, { vertices: o, indices: i }, c);
|
|
1920
|
+
break;
|
|
1921
|
+
}
|
|
1922
|
+
default: {
|
|
1923
|
+
u(t, { ok: !1, reason: "unknown message type" });
|
|
1924
|
+
break;
|
|
1925
|
+
}
|
|
1926
|
+
}
|
|
1927
|
+
} catch (s) {
|
|
1928
|
+
a(t, s);
|
|
1929
|
+
}
|
|
1930
|
+
});
|
|
1931
|
+
//# sourceMappingURL=physicsHelper.worker-Cr8S3sZk.js.map
|
|
1932
|
+
`,Se=typeof self<"u"&&self.Blob&&new Blob(["URL.revokeObjectURL(import.meta.url);",Ue],{type:"text/javascript;charset=utf-8"});function ro(B){let A;try{if(A=Se&&(self.URL||self.webkitURL).createObjectURL(Se),!A)throw"";const g=new Worker(A,{type:"module",name:B?.name});return g.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(A)}),g}catch{return new Worker("data:text/javascript;charset=utf-8,"+encodeURIComponent(Ue),{type:"module",name:B?.name})}}function tg(B,A=[0,-9.81,0]){return B?Array.isArray(B)&&B.length===3?[Number(B[0]),Number(B[1]),Number(B[2])]:B.isVector3?[B.x,B.y,B.z]:typeof B=="object"&&"x"in B&&"y"in B&&"z"in B?[Number(B.x),Number(B.y),Number(B.z)]:A.slice():A.slice()}function jI(B,A=[0,0,0,1]){if(!B)return A.slice();if(Array.isArray(B)&&B.length===4)return[Number(B[0]),Number(B[1]),Number(B[2]),Number(B[3])];if(B.isQuaternion)return[B.x,B.y,B.z,B.w];if(B.isEuler){const g=new x.Quaternion().setFromEuler(B);return[g.x,g.y,g.z,g.w]}return A.slice()}function Le(B){if(Array.isArray(B)||B&&B.isVector3)return{mode:"vector",vector:tg(B)};const A=B||{};return(A.mode||"vector").toLowerCase()==="geocentric"?{mode:"geocentric",planetCenter:tg(A.planetCenter||[0,0,0],[0,0,0]),intensity:typeof A.intensity=="number"?A.intensity:9.81}:{mode:"vector",vector:tg(A.vector||A,[0,-9.81,0])}}function pB(){return typeof performance<"u"&&performance.now?performance.now():Date.now()}ZA.ColliderShape=GQ,ZA.InstancedOGC3DTile=Eo,ZA.InstancedTileLoader=class{constructor(B,A){if(this.zUpToYUpMatrix=new x.Matrix4,this.zUpToYUpMatrix.set(1,0,0,0,0,0,-1,0,0,1,0,0,0,0,0,1),this.maxCachedItems=100,this.maxInstances=1,this.proxy=A.proxy,A&&(this.meshCallback=A.meshCallback,this.pointsCallback=A.pointsCallback,A.maxCachedItems&&(this.maxCachedItems=A.maxCachedItems),A.maxInstances&&(this.maxInstances=A.maxInstances)),this.gltfLoader=new $Q,A&&A.dracoLoader)this.gltfLoader.setDRACOLoader(A.dracoLoader),this.hasDracoLoader=!0;else{const g=new CC;g.setDecoderPath("https://www.gstatic.com/draco/versioned/decoders/1.4.3/"),this.gltfLoader.setDRACOLoader(g),this.gltfLoader.hasDracoLoader=!0}if(A&&A.ktx2Loader)this.gltfLoader.setKTX2Loader(A.ktx2Loader),this.hasKTX2Loader=!0;else if(A&&A.renderer){const g=new rg;g.setTranscoderPath("https://storage.googleapis.com/ogc-3d-tiles/basis/").detectSupport(A.renderer),this.gltfLoader.setKTX2Loader(g),this.gltfLoader.hasKTX2Loader=!0}this.gltfLoader.setMeshoptDecoder(XC),this.hasMeshOptDecoder=!0,this.b3dmDecoder=new XQ(this.gltfLoader),this.cache=new WQ,this.scene=B,this.ready=[],this.downloads=[],this.nextReady=[],this.nextDownloads=[]}update(){const B=this;B._checkSize(),B.cache._data.forEach(A=>{A.update()}),iI<8&&B._download(),B._loadBatch()}_download(){const B=this;if(B.nextDownloads.length!=0||(B._getNextDownloads(),B.nextDownloads.length!=0))for(;B.nextDownloads.length>0;){const g=B.nextDownloads.shift();if(g){if(g.path.includes(".b3dm")&&(A=B.proxy?()=>fetch(B.proxy,{method:"POST",body:g.path}):()=>fetch(g.path),iI++,A().then(I=>{if(!I.ok)throw console.error("could not load tile with path : "+g.path),new Error(`couldn't load "${g.path}". Request failed with status ${I.status} : ${I.statusText}`);return I.arrayBuffer()}).then(I=>this.b3dmDecoder.parseB3DMInstanced(I,Q=>{B.meshCallback(Q,g.geometricError)},B.maxInstances,g.sceneZupToYup,g.meshZupToYup)).then(I=>{I.frustumCulled=!1,g.tile.setObject(I),B.ready.unshift(g)}).catch(I=>console.error(I)).finally(()=>{iI--})),g.path.includes(".glb")||g.path.includes(".gltf"))A=B.proxy?()=>fetch(B.proxy,{method:"POST",body:g.path}):()=>fetch(g.path),iI++,A().then(I=>{if(!I.ok)throw new Error("missing content");return I.arrayBuffer()}).then(async I=>{await oo(this.gltfLoader),this.gltfLoader.parse(I,null,Q=>{let C;Q.scene.asset=Q.asset,g.sceneZupToYup&&Q.scene.applyMatrix4(this.zUpToYUpMatrix),Q.scene.traverse(a=>{a.geometricError=g.geometricError,a.isMesh&&(g.meshZupToYup&&a.applyMatrix4(this.zUpToYUpMatrix),B.meshCallback&&B.meshCallback(a,a.geometricError)),a.isPoints&&console.error("instanced point cloud is not supported")}),Q.scene.updateWorldMatrix(!1,!0),Q.scene.traverse(a=>{a.isMesh&&(C=new x.InstancedMesh(a.geometry,a.material,B.maxInstances),C.baseMatrix=a.matrixWorld)}),B.ready.unshift(g),C?(C.frustumCulled=!1,g.tile.setObject(C)):Q.scene.traverse(a=>{a.dispose&&a.dispose(),a.material&&a.material.dispose()})})},I=>{console.error("could not load tile : "+g.path)}).finally(()=>{iI--});else if(g.path.includes(".json")){var A;A=B.proxy?()=>fetch(B.proxy,{method:"POST",body:g.path}):()=>fetch(g.path),iI++,A().then(I=>{if(!I.ok)throw console.error("could not load tile with path : "+g.path),new Error(`couldn't load "${g.path}". Request failed with status ${I.status} : ${I.statusText}`);return I.json()}).then(I=>AQ(I,g.path)).then(I=>{g.tile.setObject(I,g.path),B.ready.unshift(g)}).catch(I=>console.error(I)).finally(()=>{iI--})}}}}_loadBatch(){return this.nextReady.length==0&&(this._getNextReady(),this.nextReady.length==0)?0:this.nextReady.shift()?1:0}_getNextReady(){let B=Number.MAX_VALUE,A=-1;for(let g=this.ready.length-1;g>=0;g--)this.ready[g].distanceFunction||this.nextReady.push(this.ready.splice(g,1)[0]);if(!(this.nextReady.length>0)){for(let g=this.ready.length-1;g>=0;g--){const I=this.ready[g].distanceFunction()*this.ready[g].level;I<B&&(B=I,A=g)}if(A>=0){const g=this.ready.splice(A,1).pop();this.nextReady.push(g);const I=g.getSiblings();for(let Q=this.ready.length-1;Q>=0;Q--)I.includes(this.ready[Q].uuid)&&this.nextready.push(this.ready.splice(Q,1).pop())}}}get(B,A,g,I,Q,C,a,e,i,t){const E=this,o=function(n){for(var s=n.split("/"),c=[],d=0,D=0;D<s.length;D++){var h=s[D];h!=="."&&h!==""&&h!==".."?c[d++]=h:h===".."&&d>0&&d--}if(d===0)return"/";var u="";for(D=0;D<d;D++)u+="/"+c[D];return u}(A);if(!(A.includes(".b3dm")||A.includes(".json")||A.includes(".glb")||A.includes(".gltf")))return void console.error("the 3DTiles cache can only be used to load B3DM, gltf and json data");const r=E.cache.get(o);if(r)r.addInstance(I);else if(A.includes(".b3dm")||A.includes(".glb")||A.includes(".gltf")){const n=new io(E.scene);n.addInstance(I),E.cache.put(o,n);const s=new AbortController;B.signal.addEventListener("abort",()=>{n.getCount()==0&&s.abort()}),this.downloads.push({abortController:s,tile:n,key:o,path:A,distanceFunction:Q,getSiblings:C,level:a,uuid:g,sceneZupToYup:e,meshZupToYup:i,geometricError:t,shouldDoDownload:()=>!0})}else if(A.includes(".json")){const n=new to;n.addInstance(I),E.cache.put(o,n);const s=new AbortController;B.signal.addEventListener("abort",()=>{n.getCount()==0&&s.abort()}),this.downloads.push({abortController:s,tile:n,key:o,path:A,distanceFunction:Q,getSiblings:C,level:a,shouldDoDownload:()=>!0})}}_getNextDownloads(){let B=Number.MAX_VALUE,A=-1;for(let g=this.downloads.length-1;g>=0;g--){const I=this.downloads[g];I.shouldDoDownload()?I.distanceFunction||this.nextDownloads.push(this.downloads.splice(g,1)[0]):this.downloads.splice(g,1)}if(!(this.nextDownloads.length>0)){for(let g=this.downloads.length-1;g>=0;g--){const I=this.downloads[g],Q=I.distanceFunction()*I.level;Q<B&&(B=Q,A=g)}if(A>=0){const g=this.downloads.splice(A,1).pop();this.nextDownloads.push(g);const I=g.getSiblings();for(let Q=this.downloads.length-1;Q>=0;Q--)I.includes(this.downloads[Q].uuid)&&this.nextDownloads.push(this.downloads.splice(Q,1).pop())}}}_checkSize(){const B=this;let A=0;for(;B.cache.size()>B.maxCachedItems&&A<B.cache.size();){A++;const g=B.cache.head();B.cache.remove(g.key),g.value.dispose()||B.cache.put(g.key,g.value)}}},ZA.OBB=ag,ZA.OGC3DTile=RQ,ZA.OcclusionCullingService=class{constructor(){this.cullMap=[],this.cullMaterial=new x.MeshBasicMaterial({vertexColors:!0}),this.cullMaterial.side=x.FrontSide,this.cullTarget=this._createCullTarget(),this.cullPixels=new Uint8Array(4*this.cullTarget.width*this.cullTarget.height)}setSide(B){this.cullMaterial.side=B}_createCullTarget(){const B=new x.WebGLRenderTarget(Math.floor(.05*window.innerWidth),Math.floor(.05*window.innerHeight));return B.texture.format=x.RGBAFormat,B.texture.colorSpace=x.LinearSRGBColorSpace,B.texture.minFilter=x.NearestFilter,B.texture.magFilter=x.NearestFilter,B.texture.generateMipmaps=!1,B.stencilBuffer=!1,B.depthBuffer=!0,B.depthTexture=new x.DepthTexture,B.depthTexture.format=x.DepthFormat,B.depthTexture.type=x.UnsignedShortType,B}update(B,A,g){let I=A.getRenderTarget(),Q=B.overrideMaterial;B.overrideMaterial=this.cullMaterial,A.setRenderTarget(this.cullTarget),A.render(B,g),B.overrideMaterial=Q,A.setRenderTarget(I),A.readRenderTargetPixels(this.cullTarget,0,0,this.cullTarget.width,this.cullTarget.height,this.cullPixels),this.cullMap=[];for(let C=0;C<this.cullPixels.length;C+=4){const a=x.MathUtils.clamp(this.cullPixels[C],0,255)<<16^x.MathUtils.clamp(this.cullPixels[C+1],0,255)<<8^x.MathUtils.clamp(this.cullPixels[C+2],0,255);this.cullMap[a]=!0}}hasID(B){return this.cullMap[B]}},ZA.Physics=class{constructor(B={}){this.updateIntervalMs=typeof B.updateIntervalMs=="number"?B.updateIntervalMs:16,this.fixedDt=typeof B.fixedDt=="number"?B.fixedDt:this.updateIntervalMs/1e3,this.gravity=Le(B.gravity),this.autoStart=B.autoStart!==!1,this.sharedMemorySupported=typeof SharedArrayBuffer<"u"&&!(!globalThis||!globalThis.crossOriginIsolated),this.worker=new no,this._msgId=0,this._pending=new Map,this._onWorkerMessage=this._onWorkerMessage.bind(this),this.worker.onmessage=this._onWorkerMessage,this.worker.onerror=A=>{console.error("Physics worker error:",A?.message||A)},this.helperWorker=null,this._helperMsgId=0,this._helperPending=new Map,this._onHelperMessage=this._onHelperMessage?this._onHelperMessage.bind(this):A=>{},this._paused=!1,this._lastTickTime=pB(),this._lastState=null,this._currentState=null,this._interpolationMax=1.25,this._nextBodyId=1,this._nextColliderId=1,this.rigidBodies=new Map,this.bodyToColliders=new Map,this.colliderToBody=new Map,this._listeners=new Map,this._initPromise=this._post({type:"init",gravity:this.gravity,sharedMemorySupported:this.sharedMemorySupported,fixedDt:this.fixedDt}),this.autoStart&&this._initPromise.then(()=>{this._scheduleNextTick()}).catch(A=>{console.error("Physics init failed:",A)})}addObject(B={}){const A="rb-"+this._nextBodyId++,g=(B.type||"dynamic").toLowerCase(),I=typeof B.mass=="number"?B.mass:1,Q=tg(B.position,[0,0,0]),C=jI(B.rotation,[0,0,0,1]),a=B.velocity?tg(B.velocity,[0,0,0]):void 0,e=B.angularVelocity?tg(B.angularVelocity,[0,0,0]):void 0;return this.rigidBodies.set(A,{id:A,object:B.object||null,type:g,mass:I,last:{p:Q,q:C},current:{p:Q.slice(),q:C.slice()}}),this.bodyToColliders.set(A,new Set),this._post({type:"addObject",id:A,body:{type:g,mass:I,p:Q,q:C,v:a,w:e}}),A}attachTrimeshCollider({bodyId:B,geometry:A,positions:g,indices:I,localPosition:Q,localRotation:C,localScale:a}){if(!this.rigidBodies.has(B))return console.warn(`attachTrimeshCollider: unknown bodyId ${B}`),Promise.resolve(null);let e=null,i=null;if(A&&A.isBufferGeometry){const d=A.getAttribute("position");if(d)if(d.isInterleavedBufferAttribute){const h=d.count;e=new Float32Array(3*h);for(let u=0;u<h;u++)e[3*u+0]=d.getX(u),e[3*u+1]=d.getY(u),e[3*u+2]=d.getZ(u)}else d.array&&(e=new Float32Array(d.array));else console.warn("attachTrimeshCollider: geometry has no position attribute");const D=A.getIndex?.();if(D&&D.array){const h=D.array;i=new Uint32Array(h)}}else g&&(e=Array.isArray(g)||g instanceof Float32Array?new Float32Array(g):new Float32Array(g.buffer||g)),I&&(i=Array.isArray(I)||I instanceof Uint32Array?new Uint32Array(I):new Uint32Array(I.buffer||I));if(!(e instanceof Float32Array))return console.warn("attachTrimeshCollider: missing or invalid positions buffer"),Promise.resolve(null);const t=Q?tg(Q,[0,0,0]):[0,0,0],E=C?jI(C,[0,0,0,1]):[0,0,0,1],o=Array.isArray(a)&&a.length===3?[Number(a[0]),Number(a[1]),Number(a[2])]:[1,1,1],r="col-"+this._nextColliderId++,n=this.bodyToColliders.get(B)||new Set;n.add(r),this.bodyToColliders.set(B,n),this.colliderToBody.set(r,B);const s={type:"attachTrimeshCollider",id:r,bodyId:B,positions:e,indices:i||null,local:{p:t,q:E,s:o}},c=[];return e?.buffer&&c.push(e.buffer),i?.buffer&&c.push(i.buffer),this._post(s,c).then(()=>r)}addConvexHullCollider({bodyId:B,geometry:A,positions:g,indices:I,localPosition:Q,localRotation:C,localScale:a}){if(!this.rigidBodies.has(B))return console.warn(`addConvexHullCollider: unknown bodyId ${B}`),Promise.resolve(null);let e=null,i=null;if(A&&A.isBufferGeometry){const d=A.getAttribute("position");if(d)if(d.isInterleavedBufferAttribute){const h=d.count;e=new Float32Array(3*h);for(let u=0;u<h;u++)e[3*u+0]=d.getX(u),e[3*u+1]=d.getY(u),e[3*u+2]=d.getZ(u)}else d.array&&(e=new Float32Array(d.array));else console.warn("addConvexHullCollider: geometry has no position attribute");const D=A.getIndex?.();if(D&&D.array){const h=D.array;i=new Uint32Array(h)}}else g&&(e=Array.isArray(g)||g instanceof Float32Array?new Float32Array(g):new Float32Array(g.buffer||g)),I&&(i=Array.isArray(I)||I instanceof Uint32Array?new Uint32Array(I):new Uint32Array(I.buffer||I));if(!(e instanceof Float32Array))return console.warn("addConvexHullCollider: missing or invalid positions buffer"),Promise.resolve(null);const t=Q?tg(Q,[0,0,0]):[0,0,0],E=C?jI(C,[0,0,0,1]):[0,0,0,1],o=Array.isArray(a)&&a.length===3?[Number(a[0]),Number(a[1]),Number(a[2])]:[1,1,1],r="col-"+this._nextColliderId++,n=this.bodyToColliders.get(B)||new Set;n.add(r),this.bodyToColliders.set(B,n),this.colliderToBody.set(r,B);const s={type:"computeConvexHull",positions:e,indices:i||null,localScale:o},c=[];return e?.buffer&&c.push(e.buffer),i?.buffer&&c.push(i.buffer),this._helperPost(s,c).then(d=>{const D=d?.vertices;if(!(D instanceof Float32Array)||D.length<9)throw new Error("convex hull computation failed or returned insufficient vertices");const h={type:"attachShapeCollider",id:r,bodyId:B,shape:{kind:"convexHull",params:{vertices:D}},local:{p:t,q:E}},u=[];return D?.buffer&&u.push(D.buffer),this._post(h,u).then(()=>r)}).catch(d=>{const D=this.bodyToColliders.get(B);return D&&D.delete(r),this.colliderToBody.delete(r),console.warn("addConvexHullCollider failed:",d),null})}attachShapeCollider({bodyId:B,shape:A,localPosition:g,localRotation:I}){if(!this.rigidBodies.has(B))return console.warn(`attachShapeCollider: unknown bodyId ${B}`),Promise.resolve(null);if(!A||typeof A!="object")return console.warn("attachShapeCollider: missing or invalid shape descriptor"),Promise.resolve(null);const Q=g?tg(g,[0,0,0]):[0,0,0],C=I?jI(I,[0,0,0,1]):[0,0,0,1],a="col-"+this._nextColliderId++,e=this.bodyToColliders.get(B)||new Set;e.add(a),this.bodyToColliders.set(B,e),this.colliderToBody.set(a,B);const i={type:"attachShapeCollider",id:a,bodyId:B,shape:A,local:{p:Q,q:C}};return this._post(i),a}detachCollider({colliderId:B}){const A=this.colliderToBody.get(B);if(!A)return;const g=this.bodyToColliders.get(A);g&&g.delete(B),this.colliderToBody.delete(B),this._post({type:"detachCollider",colliderId:B})}removeObject({bodyId:B}){if(!this.rigidBodies.has(B))return;const A=this.bodyToColliders.get(B);if(A)for(const g of A)this.colliderToBody.delete(g);this.bodyToColliders.delete(B),this.rigidBodies.delete(B),this._post({type:"removeObject",id:B})}applyForce({bodyId:B,force:A,worldPoint:g,wake:I=!0,impulse:Q=!1}){if(!this.rigidBodies.has(B))return void console.warn(`applyForce: unknown bodyId ${B}`);const C=tg(A,[0,0,0]),a=g?tg(g,[0,0,0]):void 0;this._post({type:"applyForce",id:B,force:C,point:a,wake:!!I,impulse:!!Q})}setGravity(B){this.gravity=Le(B),this._post({type:"setGravity",gravity:this.gravity})}setPose({bodyId:B,position:A,rotation:g,wake:I=!0}){if(!this.rigidBodies.has(B))return void console.warn(`setPose: unknown bodyId ${B}`);const Q=A!=null?tg(A,[0,0,0]):null,C=g!=null?jI(g,[0,0,0,1]):null;this._post({type:"setPose",id:B,p:Q,q:C,wake:!!I});const a=this.rigidBodies.get(B);a&&(Q&&(a.last.p=Q.slice(),a.current.p=Q.slice(),a.object?.isObject3D&&a.object.position.set(Q[0],Q[1],Q[2])),C&&(a.last.q=C.slice(),a.current.q=C.slice(),a.object?.isObject3D&&a.object.quaternion.set(C[0],C[1],C[2],C[3])),a.object?.isObject3D&&(a.object.updateMatrices?a.object.updateMatrices():(a.object.matrixAutoUpdate!==!1&&a.object.updateMatrix(),a.object.matrixWorldAutoUpdate!==!1&&a.object.updateMatrixWorld(!0))))}raycast({origin:B,direction:A,maxToi:g=1e6,filter:I}){const Q=tg(B,[0,0,0]),C=tg(A,[0,-1,0]);return this._post({type:"raycast",origin:Q,direction:C,maxToi:g,filter:I||null})}pause(){this._paused=!0}resume(){this._paused&&(this._paused=!1,this._lastTickTime=pB(),this._scheduleNextTick())}setUpdateInterval(B){this.updateIntervalMs=Math.max(1,Number(B)||16)}stepOnce(B){const A=typeof B=="number"?B:this.fixedDt;return this._post({type:"step",dt:A})}update(){if(!this._currentState)return;const B=this._lastState||this._currentState,A=this._currentState,g=pB(),I=B.timeMs||g,Q=A.timeMs||g,C=Math.max(.001,Q-I);let a=x.MathUtils.clamp((g-Q)/C+1,0,this._interpolationMax);a=x.MathUtils.clamp(a,0,1);const e=new x.Quaternion,i=new x.Quaternion,t=new x.Quaternion;for(const[E,o]of this.rigidBodies.entries()){const r=B.bodies?.[E],n=A.bodies?.[E];if(!n&&!r)continue;const s=r?.p||o.current.p,c=r?.q||o.current.q,d=n?.p||o.current.p,D=n?.q||o.current.q,h=x.MathUtils.lerp(s[0],d[0],a),u=x.MathUtils.lerp(s[1],d[1],a),f=x.MathUtils.lerp(s[2],d[2],a);e.set(c[0],c[1],c[2],c[3]),i.set(D[0],D[1],D[2],D[3]),t.copy(e).slerp(i,a),o.object&&o.object.isObject3D&&(o.object.position.set(h,u,f),o.object.quaternion.copy(t),o.object.updateMatrices?o.object.updateMatrices():(o.object.matrixAutoUpdate!==!1&&o.object.updateMatrix(),o.object.matrixWorldAutoUpdate!==!1&&o.object.updateMatrixWorld(!0))),o.last={p:s.slice(),q:c.slice()},o.current={p:d.slice(),q:D.slice()}}}dispose(){try{this.worker.terminate()}catch{}try{this.helperWorker?.terminate()}catch{}this.rigidBodies.clear(),this.bodyToColliders.clear(),this.colliderToBody.clear(),this._pending.clear(),this._listeners.clear(),this._lastState=null,this._currentState=null}_scheduleNextTick(){this._paused||setTimeout(()=>this._onTick(),this.updateIntervalMs)}_onTick(){if(this._paused)return;const B=pB();Math.max(1e-6,(B-this._lastTickTime)/1e3),this._lastTickTime=B,this._post({type:"step",dt:this.fixedDt}),this.update(),this._scheduleNextTick()}_onWorkerMessage(B){const A=B.data||{};if(A.replyTo){const g=this._pending.get(A.replyTo);g&&(this._pending.delete(A.replyTo),A.error?g.rej?g.rej(A.error):console.error("Physics worker error:",A.error):g.res&&g.res(A.result))}else switch(A.type){case"state":this._lastState=this._currentState,this._currentState=A.state||null,this._emit("state",this._currentState);break;case"event":this._emit("event",A.event)}}_ensureHelperWorker(){this.helperWorker||(this.helperWorker=new ro,this.helperWorker.onmessage=this._onHelperMessage,this.helperWorker.onerror=B=>{console.error("Physics helper worker error:",B?.message||B)})}_onHelperMessage(B){const A=B.data||{};if(A.replyTo){const g=this._helperPending.get(A.replyTo);g&&(this._helperPending.delete(A.replyTo),A.error?g.rej?g.rej(A.error):console.error("Physics helper worker error:",A.error):g.res&&g.res(A.result))}}_helperPost(B,A=[]){this._ensureHelperWorker();const g=++this._helperMsgId,I={...B,_envId:g};return this.helperWorker.postMessage(I,A),new Promise((Q,C)=>{this._helperPending.set(g,{res:Q,rej:C})})}_post(B,A=[]){const g=++this._msgId,I={...B,_envId:g};return this.worker.postMessage(I,A),new Promise((Q,C)=>{this._pending.set(g,{res:Q,rej:C})})}on(B,A){return this._listeners.has(B)||this._listeners.set(B,new Set),this._listeners.get(B).add(A),()=>this.off(B,A)}off(B,A){const g=this._listeners.get(B);g&&g.delete(A)}_emit(B,A){const g=this._listeners.get(B);if(g)for(const I of g)try{I(A)}catch(Q){console.error(Q)}}},ZA.SplatsMesh=be,ZA.TileLoader=ZC,ZA.getOGC3DTilesCopyrightInfo=Me,ZA.splatsFragmentShader=fe,ZA.splatsVertexShader=we,Object.defineProperty(ZA,Symbol.toStringTag,{value:"Module"})});
|
|
1503
1933
|
//# sourceMappingURL=threedtiles.umd.js.map
|