Files
einundzwanzig-portal/public/earth/miniature.earth.js
Benjamin Takats 9bf4af3f02 add map
2022-12-12 19:17:09 +01:00

163 lines
997 KiB
JavaScript

/*
Miniature Earth v3.1
https://miniature.earth/
Copyright © 2018-2020 Ulf Paule (Miniature Earth)
Copyright © 2010-2020 three.js authors (three.js)
Copyright © 2015-2016 Jaume Sanchez Elias (MeshLine)
*/
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).THREE={})}(this,(function(t){"use strict";const e="133",n=100,i=300,r=301,s=302,a=303,o=304,l=306,c=307,h=1e3,u=1001,d=1002,p=1003,m=1004,f=1005,g=1006,v=1007,y=1008,x=1009,_=1012,b=1014,M=1015,w=1016,S=1020,T=1022,E=1023,A=1026,L=1027,R=33776,C=33777,P=33778,I=33779,D=35840,N=35841,z=35842,B=35843,F=37492,O=37496,U=2300,H=2301,G=2302,k=2400,V=2401,W=2402,j=2500,q=2501,X=3e3,Y=3001,J=3007,Z=3002,Q=3004,K=3005,$=3006,tt=7680,et=35044,nt=35048,it="300 es";class rt{addEventListener(t,e){void 0===this._listeners&&(this._listeners={});const n=this._listeners;void 0===n[t]&&(n[t]=[]),-1===n[t].indexOf(e)&&n[t].push(e)}hasEventListener(t,e){if(void 0===this._listeners)return!1;const n=this._listeners;return void 0!==n[t]&&-1!==n[t].indexOf(e)}removeEventListener(t,e){if(void 0===this._listeners)return;const n=this._listeners[t];if(void 0!==n){const t=n.indexOf(e);-1!==t&&n.splice(t,1)}}dispatchEvent(t){if(void 0===this._listeners)return;const e=this._listeners[t.type];if(void 0!==e){t.target=this;const n=e.slice(0);for(let e=0,i=n.length;e<i;e++)n[e].call(this,t);t.target=null}}}let st=1234567;const at=Math.PI/180,ot=180/Math.PI,lt=[];for(let t=0;t<256;t++)lt[t]=(t<16?"0":"")+t.toString(16);const ct="undefined"!=typeof crypto&&"randomUUID"in crypto;function ht(){if(ct)return crypto.randomUUID().toUpperCase();const t=4294967295*Math.random()|0,e=4294967295*Math.random()|0,n=4294967295*Math.random()|0,i=4294967295*Math.random()|0;return(lt[255&t]+lt[t>>8&255]+lt[t>>16&255]+lt[t>>24&255]+"-"+lt[255&e]+lt[e>>8&255]+"-"+lt[e>>16&15|64]+lt[e>>24&255]+"-"+lt[63&n|128]+lt[n>>8&255]+"-"+lt[n>>16&255]+lt[n>>24&255]+lt[255&i]+lt[i>>8&255]+lt[i>>16&255]+lt[i>>24&255]).toUpperCase()}function ut(t,e,n){return Math.max(e,Math.min(n,t))}function dt(t,e){return(t%e+e)%e}function pt(t,e,n){return(1-n)*t+n*e}function mt(t){return 0==(t&t-1)&&0!==t}function ft(t){return Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))}function gt(t){return Math.pow(2,Math.floor(Math.log(t)/Math.LN2))}var vt=Object.freeze({__proto__:null,DEG2RAD:at,RAD2DEG:ot,generateUUID:ht,clamp:ut,euclideanModulo:dt,mapLinear:function(t,e,n,i,r){return i+(t-e)*(r-i)/(n-e)},inverseLerp:function(t,e,n){return t!==e?(n-t)/(e-t):0},lerp:pt,damp:function(t,e,n,i){return pt(t,e,1-Math.exp(-n*i))},pingpong:function(t,e=1){return e-Math.abs(dt(t,2*e)-e)},smoothstep:function(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*(3-2*t)},smootherstep:function(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e))*t*t*(t*(6*t-15)+10)},randInt:function(t,e){return t+Math.floor(Math.random()*(e-t+1))},randFloat:function(t,e){return t+Math.random()*(e-t)},randFloatSpread:function(t){return t*(.5-Math.random())},seededRandom:function(t){return void 0!==t&&(st=t%2147483647),st=16807*st%2147483647,(st-1)/2147483646},degToRad:function(t){return t*at},radToDeg:function(t){return t*ot},isPowerOfTwo:mt,ceilPowerOfTwo:ft,floorPowerOfTwo:gt,setQuaternionFromProperEuler:function(t,e,n,i,r){const s=Math.cos,a=Math.sin,o=s(n/2),l=a(n/2),c=s((e+i)/2),h=a((e+i)/2),u=s((e-i)/2),d=a((e-i)/2),p=s((i-e)/2),m=a((i-e)/2);switch(r){case"XYX":t.set(o*h,l*u,l*d,o*c);break;case"YZY":t.set(l*d,o*h,l*u,o*c);break;case"ZXZ":t.set(l*u,l*d,o*h,o*c);break;case"XZX":t.set(o*h,l*m,l*p,o*c);break;case"YXY":t.set(l*p,o*h,l*m,o*c);break;case"ZYZ":t.set(l*m,l*p,o*h,o*c);break;default:(""+r)}}});class yt{constructor(t=0,e=0){this.x=t,this.y=e}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,e){return this.x=t,this.y=e,this}setScalar(t){return this.x=t,this.y=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error(""+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error(""+t)}}clone(){return new this.constructor(this.x,this.y)}copy(t){return this.x=t.x,this.y=t.y,this}add(t,e){return void 0!==e?((""),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this)}addScalar(t){return this.x+=t,this.y+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this}sub(t,e){return void 0!==e?((""),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this)}subScalar(t){return this.x-=t,this.y-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}multiply(t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t){return this.x*=t,this.y*=t,this}divide(t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}applyMatrix3(t){const e=this.x,n=this.y,i=t.elements;return this.x=i[0]*e+i[3]*n+i[6],this.y=i[1]*e+i[4]*n+i[7],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y;return e*e+n*n}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this}equals(t){return t.x===this.x&&t.y===this.y}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t}fromBufferAttribute(t,e,n){return void 0!==n&&(""),this.x=t.getX(e),this.y=t.getY(e),this}rotateAround(t,e){const n=Math.cos(e),i=Math.sin(e),r=this.x-t.x,s=this.y-t.y;return this.x=r*n-s*i+t.x,this.y=r*i+s*n+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}yt.prototype.isVector2=!0;class xt{constructor(){this.elements=[1,0,0,0,1,0,0,0,1],arguments.length>0&&("")}set(t,e,n,i,r,s,a,o,l){const c=this.elements;return c[0]=t,c[1]=i,c[2]=a,c[3]=e,c[4]=r,c[5]=o,c[6]=n,c[7]=s,c[8]=l,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],this}extractBasis(t,e,n){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(t){const e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,r=this.elements,s=n[0],a=n[3],o=n[6],l=n[1],c=n[4],h=n[7],u=n[2],d=n[5],p=n[8],m=i[0],f=i[3],g=i[6],v=i[1],y=i[4],x=i[7],_=i[2],b=i[5],M=i[8];return r[0]=s*m+a*v+o*_,r[3]=s*f+a*y+o*b,r[6]=s*g+a*x+o*M,r[1]=l*m+c*v+h*_,r[4]=l*f+c*y+h*b,r[7]=l*g+c*x+h*M,r[2]=u*m+d*v+p*_,r[5]=u*f+d*y+p*b,r[8]=u*g+d*x+p*M,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8];return e*s*c-e*a*l-n*r*c+n*a*o+i*r*l-i*s*o}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8],h=c*s-a*l,u=a*o-c*r,d=l*r-s*o,p=e*h+n*u+i*d;if(0===p)return this.set(0,0,0,0,0,0,0,0,0);const m=1/p;return t[0]=h*m,t[1]=(i*l-c*n)*m,t[2]=(a*n-i*s)*m,t[3]=u*m,t[4]=(c*e-i*o)*m,t[5]=(i*r-a*e)*m,t[6]=d*m,t[7]=(n*o-l*e)*m,t[8]=(s*e-n*r)*m,this}transpose(){let t;const e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this}getNormalMatrix(t){return this.setFromMatrix4(t).invert().transpose()}transposeIntoArray(t){const e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this}setUvTransform(t,e,n,i,r,s,a){const o=Math.cos(r),l=Math.sin(r);return this.set(n*o,n*l,-n*(o*s+l*a)+s+t,-i*l,i*o,-i*(-l*s+o*a)+a+e,0,0,1),this}scale(t,e){const n=this.elements;return n[0]*=t,n[3]*=t,n[6]*=t,n[1]*=e,n[4]*=e,n[7]*=e,this}rotate(t){const e=Math.cos(t),n=Math.sin(t),i=this.elements,r=i[0],s=i[3],a=i[6],o=i[1],l=i[4],c=i[7];return i[0]=e*r+n*o,i[3]=e*s+n*l,i[6]=e*a+n*c,i[1]=-n*r+e*o,i[4]=-n*s+e*l,i[7]=-n*a+e*c,this}translate(t,e){const n=this.elements;return n[0]+=t*n[2],n[3]+=t*n[5],n[6]+=t*n[8],n[1]+=e*n[2],n[4]+=e*n[5],n[7]+=e*n[8],this}equals(t){const e=this.elements,n=t.elements;for(let t=0;t<9;t++)if(e[t]!==n[t])return!1;return!0}fromArray(t,e=0){for(let n=0;n<9;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t}clone(){return(new this.constructor).fromArray(this.elements)}}function _t(t){if(0===t.length)return-1/0;let e=t[0];for(let n=1,i=t.length;n<i;++n)t[n]>e&&(e=t[n]);return e}xt.prototype.isMatrix3=!0;const bt={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:Uint8ClampedArray,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};function Mt(t,e){return new bt[t](e)}function wt(t){return document.createElement(t)}let St;class Tt{static getDataURL(t){if(/^data:/i.test(t.src))return t.src;if("undefined"==typeof HTMLCanvasElement)return t.src;let e;if(t instanceof HTMLCanvasElement)e=t;else{void 0===St&&(St=wt("canvas")),St.width=t.width,St.height=t.height;const n=St.getContext("2d");t instanceof ImageData?n.putImageData(t,0,0):n.drawImage(t,0,0,t.width,t.height),e=St}return e.width>2048||e.height>2048?(("",t),e.toDataURL("image/jpeg",.6)):e.toDataURL("image/png")}}let Et=0;class At extends rt{constructor(t=At.DEFAULT_IMAGE,e=At.DEFAULT_MAPPING,n=1001,i=1001,r=1006,s=1008,a=1023,o=1009,l=1,c=3e3){super(),Object.defineProperty(this,"id",{value:Et++}),this.uuid=ht(),this.name="",this.image=t,this.mipmaps=[],this.mapping=e,this.wrapS=n,this.wrapT=i,this.magFilter=r,this.minFilter=s,this.anisotropy=l,this.format=a,this.internalFormat=null,this.type=o,this.offset=new yt(0,0),this.repeat=new yt(1,1),this.center=new yt(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new xt,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.encoding=c,this.version=0,this.onUpdate=null,this.isRenderTargetTexture=!1}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}clone(){return(new this.constructor).copy(this)}copy(t){return this.name=t.name,this.image=t.image,this.mipmaps=t.mipmaps.slice(0),this.mapping=t.mapping,this.wrapS=t.wrapS,this.wrapT=t.wrapT,this.magFilter=t.magFilter,this.minFilter=t.minFilter,this.anisotropy=t.anisotropy,this.format=t.format,this.internalFormat=t.internalFormat,this.type=t.type,this.offset.copy(t.offset),this.repeat.copy(t.repeat),this.center.copy(t.center),this.rotation=t.rotation,this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrix.copy(t.matrix),this.generateMipmaps=t.generateMipmaps,this.premultiplyAlpha=t.premultiplyAlpha,this.flipY=t.flipY,this.unpackAlignment=t.unpackAlignment,this.encoding=t.encoding,this}toJSON(t){const e=void 0===t||"string"==typeof t;if(!e&&void 0!==t.textures[this.uuid])return t.textures[this.uuid];const n={metadata:{version:4.5,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,mapping:this.mapping,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,type:this.type,encoding:this.encoding,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};if(void 0!==this.image){const i=this.image;if(void 0===i.uuid&&(i.uuid=ht()),!e&&void 0===t.images[i.uuid]){let e;if(Array.isArray(i)){e=[];for(let t=0,n=i.length;t<n;t++)i[t].isDataTexture?e.push(Lt(i[t].image)):e.push(Lt(i[t]))}else e=Lt(i);t.images[i.uuid]={uuid:i.uuid,url:e}}n.image=i.uuid}return e||(t.textures[this.uuid]=n),n}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(t){if(this.mapping!==i)return t;if(t.applyMatrix3(this.matrix),t.x<0||t.x>1)switch(this.wrapS){case h:t.x=t.x-Math.floor(t.x);break;case u:t.x=t.x<0?0:1;break;case d:1===Math.abs(Math.floor(t.x)%2)?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x)}if(t.y<0||t.y>1)switch(this.wrapT){case h:t.y=t.y-Math.floor(t.y);break;case u:t.y=t.y<0?0:1;break;case d:1===Math.abs(Math.floor(t.y)%2)?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y)}return this.flipY&&(t.y=1-t.y),t}set needsUpdate(t){!0===t&&this.version++}}function Lt(t){return"undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap?Tt.getDataURL(t):t.data?{data:Array.prototype.slice.call(t.data),width:t.width,height:t.height,type:t.data.constructor.name}:((""),{})}At.DEFAULT_IMAGE=void 0,At.DEFAULT_MAPPING=i,At.prototype.isTexture=!0;class Rt{constructor(t=0,e=0,n=0,i=1){this.x=t,this.y=e,this.z=n,this.w=i}get width(){return this.z}set width(t){this.z=t}get height(){return this.w}set height(t){this.w=t}set(t,e,n,i){return this.x=t,this.y=e,this.z=n,this.w=i,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this.w=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setW(t){return this.w=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error(""+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error(""+t)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=void 0!==t.w?t.w:1,this}add(t,e){return void 0!==e?((""),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this)}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this}sub(t,e){return void 0!==e?((""),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this)}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,r=this.w,s=t.elements;return this.x=s[0]*e+s[4]*n+s[8]*i+s[12]*r,this.y=s[1]*e+s[5]*n+s[9]*i+s[13]*r,this.z=s[2]*e+s[6]*n+s[10]*i+s[14]*r,this.w=s[3]*e+s[7]*n+s[11]*i+s[15]*r,this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);const e=Math.sqrt(1-t.w*t.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this}setAxisAngleFromRotationMatrix(t){let e,n,i,r;const s=.01,a=.1,o=t.elements,l=o[0],c=o[4],h=o[8],u=o[1],d=o[5],p=o[9],m=o[2],f=o[6],g=o[10];if(Math.abs(c-u)<s&&Math.abs(h-m)<s&&Math.abs(p-f)<s){if(Math.abs(c+u)<a&&Math.abs(h+m)<a&&Math.abs(p+f)<a&&Math.abs(l+d+g-3)<a)return this.set(1,0,0,0),this;e=Math.PI;const t=(l+1)/2,o=(d+1)/2,v=(g+1)/2,y=(c+u)/4,x=(h+m)/4,_=(p+f)/4;return t>o&&t>v?t<s?(n=0,i=.707106781,r=.707106781):(n=Math.sqrt(t),i=y/n,r=x/n):o>v?o<s?(n=.707106781,i=0,r=.707106781):(i=Math.sqrt(o),n=y/i,r=_/i):v<s?(n=.707106781,i=.707106781,r=0):(r=Math.sqrt(v),n=x/r,i=_/r),this.set(n,i,r,e),this}let v=Math.sqrt((f-p)*(f-p)+(h-m)*(h-m)+(u-c)*(u-c));return Math.abs(v)<.001&&(v=1),this.x=(f-p)/v,this.y=(h-m)/v,this.z=(u-c)/v,this.w=Math.acos((l+d+g-1)/2),this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this.w=Math.min(this.w,t.w),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this.w=Math.max(this.w,t.w),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this.w=Math.max(t.w,Math.min(e.w,this.w)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this.w=Math.max(t,Math.min(e,this.w)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this.w=this.w<0?Math.ceil(this.w):Math.floor(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this.w+=(t.w-this.w)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this.w=t.w+(e.w-t.w)*n,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z&&t.w===this.w}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this.w=t[e+3],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t[e+3]=this.w,t}fromBufferAttribute(t,e,n){return void 0!==n&&(""),this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this.w=t.getW(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}Rt.prototype.isVector4=!0;class Ct extends rt{constructor(t,e,n={}){super(),this.width=t,this.height=e,this.depth=1,this.scissor=new Rt(0,0,t,e),this.scissorTest=!1,this.viewport=new Rt(0,0,t,e),this.texture=new At(void 0,n.mapping,n.wrapS,n.wrapT,n.magFilter,n.minFilter,n.format,n.type,n.anisotropy,n.encoding),this.texture.isRenderTargetTexture=!0,this.texture.image={width:t,height:e,depth:1},this.texture.generateMipmaps=void 0!==n.generateMipmaps&&n.generateMipmaps,this.texture.internalFormat=void 0!==n.internalFormat?n.internalFormat:null,this.texture.minFilter=void 0!==n.minFilter?n.minFilter:g,this.depthBuffer=void 0===n.depthBuffer||n.depthBuffer,this.stencilBuffer=void 0!==n.stencilBuffer&&n.stencilBuffer,this.depthTexture=void 0!==n.depthTexture?n.depthTexture:null}setTexture(t){t.image={width:this.width,height:this.height,depth:this.depth},this.texture=t}setSize(t,e,n=1){this.width===t&&this.height===e&&this.depth===n||(this.width=t,this.height=e,this.depth=n,this.texture.image.width=t,this.texture.image.height=e,this.texture.image.depth=n,this.dispose()),this.viewport.set(0,0,t,e),this.scissor.set(0,0,t,e)}clone(){return(new this.constructor).copy(this)}copy(t){return this.width=t.width,this.height=t.height,this.depth=t.depth,this.viewport.copy(t.viewport),this.texture=t.texture.clone(),this.texture.image={...this.texture.image},this.depthBuffer=t.depthBuffer,this.stencilBuffer=t.stencilBuffer,this.depthTexture=t.depthTexture,this}dispose(){this.dispatchEvent({type:"dispose"})}}Ct.prototype.isWebGLRenderTarget=!0;class Pt extends Ct{constructor(t,e,n){super(t,e);const i=this.texture;this.texture=[];for(let t=0;t<n;t++)this.texture[t]=i.clone()}setSize(t,e,n=1){if(this.width!==t||this.height!==e||this.depth!==n){this.width=t,this.height=e,this.depth=n;for(let i=0,r=this.texture.length;i<r;i++)this.texture[i].image.width=t,this.texture[i].image.height=e,this.texture[i].image.depth=n;this.dispose()}return this.viewport.set(0,0,t,e),this.scissor.set(0,0,t,e),this}copy(t){this.dispose(),this.width=t.width,this.height=t.height,this.depth=t.depth,this.viewport.set(0,0,this.width,this.height),this.scissor.set(0,0,this.width,this.height),this.depthBuffer=t.depthBuffer,this.stencilBuffer=t.stencilBuffer,this.depthTexture=t.depthTexture,this.texture.length=0;for(let e=0,n=t.texture.length;e<n;e++)this.texture[e]=t.texture[e].clone();return this}}Pt.prototype.isWebGLMultipleRenderTargets=!0;class It extends Ct{constructor(t,e,n){super(t,e,n),this.samples=4}copy(t){return super.copy.call(this,t),this.samples=t.samples,this}}It.prototype.isWebGLMultisampleRenderTarget=!0;class Dt{constructor(t=0,e=0,n=0,i=1){this._x=t,this._y=e,this._z=n,this._w=i}static slerp(t,e,n,i){return (""),n.slerpQuaternions(t,e,i)}static slerpFlat(t,e,n,i,r,s,a){let o=n[i+0],l=n[i+1],c=n[i+2],h=n[i+3];const u=r[s+0],d=r[s+1],p=r[s+2],m=r[s+3];if(0===a)return t[e+0]=o,t[e+1]=l,t[e+2]=c,void(t[e+3]=h);if(1===a)return t[e+0]=u,t[e+1]=d,t[e+2]=p,void(t[e+3]=m);if(h!==m||o!==u||l!==d||c!==p){let t=1-a;const e=o*u+l*d+c*p+h*m,n=e>=0?1:-1,i=1-e*e;if(i>Number.EPSILON){const r=Math.sqrt(i),s=Math.atan2(r,e*n);t=Math.sin(t*s)/r,a=Math.sin(a*s)/r}const r=a*n;if(o=o*t+u*r,l=l*t+d*r,c=c*t+p*r,h=h*t+m*r,t===1-a){const t=1/Math.sqrt(o*o+l*l+c*c+h*h);o*=t,l*=t,c*=t,h*=t}}t[e]=o,t[e+1]=l,t[e+2]=c,t[e+3]=h}static multiplyQuaternionsFlat(t,e,n,i,r,s){const a=n[i],o=n[i+1],l=n[i+2],c=n[i+3],h=r[s],u=r[s+1],d=r[s+2],p=r[s+3];return t[e]=a*p+c*h+o*d-l*u,t[e+1]=o*p+c*u+l*h-a*d,t[e+2]=l*p+c*d+a*u-o*h,t[e+3]=c*p-a*h-o*u-l*d,t}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get w(){return this._w}set w(t){this._w=t,this._onChangeCallback()}set(t,e,n,i){return this._x=t,this._y=e,this._z=n,this._w=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this}setFromEuler(t,e){if(!t||!t.isEuler)throw new Error("");const n=t._x,i=t._y,r=t._z,s=t._order,a=Math.cos,o=Math.sin,l=a(n/2),c=a(i/2),h=a(r/2),u=o(n/2),d=o(i/2),p=o(r/2);switch(s){case"XYZ":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case"YXZ":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case"ZXY":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case"ZYX":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case"YZX":this._x=u*c*h+l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h-u*d*p;break;case"XZY":this._x=u*c*h-l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h+u*d*p;break;default:(""+s)}return!1!==e&&this._onChangeCallback(),this}setFromAxisAngle(t,e){const n=e/2,i=Math.sin(n);return this._x=t.x*i,this._y=t.y*i,this._z=t.z*i,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(t){const e=t.elements,n=e[0],i=e[4],r=e[8],s=e[1],a=e[5],o=e[9],l=e[2],c=e[6],h=e[10],u=n+a+h;if(u>0){const t=.5/Math.sqrt(u+1);this._w=.25/t,this._x=(c-o)*t,this._y=(r-l)*t,this._z=(s-i)*t}else if(n>a&&n>h){const t=2*Math.sqrt(1+n-a-h);this._w=(c-o)/t,this._x=.25*t,this._y=(i+s)/t,this._z=(r+l)/t}else if(a>h){const t=2*Math.sqrt(1+a-n-h);this._w=(r-l)/t,this._x=(i+s)/t,this._y=.25*t,this._z=(o+c)/t}else{const t=2*Math.sqrt(1+h-n-a);this._w=(s-i)/t,this._x=(r+l)/t,this._y=(o+c)/t,this._z=.25*t}return this._onChangeCallback(),this}setFromUnitVectors(t,e){let n=t.dot(e)+1;return n<Number.EPSILON?(n=0,Math.abs(t.x)>Math.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=n):(this._x=0,this._y=-t.z,this._z=t.y,this._w=n)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=n),this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(ut(this.dot(t),-1,1)))}rotateTowards(t,e){const n=this.angleTo(t);if(0===n)return this;const i=Math.min(1,e/n);return this.slerp(t,i),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let t=this.length();return 0===t?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this}multiply(t,e){return void 0!==e?((""),this.multiplyQuaternions(t,e)):this.multiplyQuaternions(this,t)}premultiply(t){return this.multiplyQuaternions(t,this)}multiplyQuaternions(t,e){const n=t._x,i=t._y,r=t._z,s=t._w,a=e._x,o=e._y,l=e._z,c=e._w;return this._x=n*c+s*a+i*l-r*o,this._y=i*c+s*o+r*a-n*l,this._z=r*c+s*l+n*o-i*a,this._w=s*c-n*a-i*o-r*l,this._onChangeCallback(),this}slerp(t,e){if(0===e)return this;if(1===e)return this.copy(t);const n=this._x,i=this._y,r=this._z,s=this._w;let a=s*t._w+n*t._x+i*t._y+r*t._z;if(a<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,a=-a):this.copy(t),a>=1)return this._w=s,this._x=n,this._y=i,this._z=r,this;const o=1-a*a;if(o<=Number.EPSILON){const t=1-e;return this._w=t*s+e*this._w,this._x=t*n+e*this._x,this._y=t*i+e*this._y,this._z=t*r+e*this._z,this.normalize(),this._onChangeCallback(),this}const l=Math.sqrt(o),c=Math.atan2(l,a),h=Math.sin((1-e)*c)/l,u=Math.sin(e*c)/l;return this._w=s*h+this._w*u,this._x=n*h+this._x*u,this._y=i*h+this._y*u,this._z=r*h+this._z*u,this._onChangeCallback(),this}slerpQuaternions(t,e,n){this.copy(t).slerp(e,n)}random(){const t=Math.random(),e=Math.sqrt(1-t),n=Math.sqrt(t),i=2*Math.PI*Math.random(),r=2*Math.PI*Math.random();return this.set(e*Math.cos(i),n*Math.sin(r),n*Math.cos(r),e*Math.sin(i))}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}fromArray(t,e=0){return this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t}fromBufferAttribute(t,e){return this._x=t.getX(e),this._y=t.getY(e),this._z=t.getZ(e),this._w=t.getW(e),this}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}}Dt.prototype.isQuaternion=!0;class Nt{constructor(t=0,e=0,n=0){this.x=t,this.y=e,this.z=n}set(t,e,n){return void 0===n&&(n=this.z),this.x=t,this.y=e,this.z=n,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error(""+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error(""+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}add(t,e){return void 0!==e?((""),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this)}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this}sub(t,e){return void 0!==e?((""),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this)}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this}multiply(t,e){return void 0!==e?((""),this.multiplyVectors(t,e)):(this.x*=t.x,this.y*=t.y,this.z*=t.z,this)}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this}applyEuler(t){return t&&t.isEuler||(""),this.applyQuaternion(Bt.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(Bt.setFromAxisAngle(t,e))}applyMatrix3(t){const e=this.x,n=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[3]*n+r[6]*i,this.y=r[1]*e+r[4]*n+r[7]*i,this.z=r[2]*e+r[5]*n+r[8]*i,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,r=t.elements,s=1/(r[3]*e+r[7]*n+r[11]*i+r[15]);return this.x=(r[0]*e+r[4]*n+r[8]*i+r[12])*s,this.y=(r[1]*e+r[5]*n+r[9]*i+r[13])*s,this.z=(r[2]*e+r[6]*n+r[10]*i+r[14])*s,this}applyQuaternion(t){const e=this.x,n=this.y,i=this.z,r=t.x,s=t.y,a=t.z,o=t.w,l=o*e+s*i-a*n,c=o*n+a*e-r*i,h=o*i+r*n-s*e,u=-r*e-s*n-a*i;return this.x=l*o+u*-r+c*-a-h*-s,this.y=c*o+u*-s+h*-r-l*-a,this.z=h*o+u*-a+l*-s-c*-r,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){const e=this.x,n=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[4]*n+r[8]*i,this.y=r[1]*e+r[5]*n+r[9]*i,this.z=r[2]*e+r[6]*n+r[10]*i,this.normalize()}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this}cross(t,e){return void 0!==e?((""),this.crossVectors(t,e)):this.crossVectors(this,t)}crossVectors(t,e){const n=t.x,i=t.y,r=t.z,s=e.x,a=e.y,o=e.z;return this.x=i*o-r*a,this.y=r*s-n*o,this.z=n*a-i*s,this}projectOnVector(t){const e=t.lengthSq();if(0===e)return this.set(0,0,0);const n=t.dot(this)/e;return this.copy(t).multiplyScalar(n)}projectOnPlane(t){return zt.copy(this).projectOnVector(t),this.sub(zt)}reflect(t){return this.sub(zt.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===e)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(ut(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y,i=this.z-t.z;return e*e+n*n+i*i}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,e,n){const i=Math.sin(e)*t;return this.x=i*Math.sin(n),this.y=Math.cos(e)*t,this.z=i*Math.cos(n),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,e,n){return this.x=t*Math.sin(e),this.y=n,this.z=t*Math.cos(e),this}setFromMatrixPosition(t){const e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(t){const e=this.setFromMatrixColumn(t,0).length(),n=this.setFromMatrixColumn(t,1).length(),i=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=n,this.z=i,this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,4*e)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,3*e)}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t}fromBufferAttribute(t,e,n){return void 0!==n&&(""),this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const t=2*(Math.random()-.5),e=Math.random()*Math.PI*2,n=Math.sqrt(1-t**2);return this.x=n*Math.cos(e),this.y=n*Math.sin(e),this.z=t,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}Nt.prototype.isVector3=!0;const zt=new Nt,Bt=new Dt;class Ft{constructor(t=new Nt(1/0,1/0,1/0),e=new Nt(-1/0,-1/0,-1/0)){this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromArray(t){let e=1/0,n=1/0,i=1/0,r=-1/0,s=-1/0,a=-1/0;for(let o=0,l=t.length;o<l;o+=3){const l=t[o],c=t[o+1],h=t[o+2];l<e&&(e=l),c<n&&(n=c),h<i&&(i=h),l>r&&(r=l),c>s&&(s=c),h>a&&(a=h)}return this.min.set(e,n,i),this.max.set(r,s,a),this}setFromBufferAttribute(t){let e=1/0,n=1/0,i=1/0,r=-1/0,s=-1/0,a=-1/0;for(let o=0,l=t.count;o<l;o++){const l=t.getX(o),c=t.getY(o),h=t.getZ(o);l<e&&(e=l),c<n&&(n=c),h<i&&(i=h),l>r&&(r=l),c>s&&(s=c),h>a&&(a=h)}return this.min.set(e,n,i),this.max.set(r,s,a),this}setFromPoints(t){this.makeEmpty();for(let e=0,n=t.length;e<n;e++)this.expandByPoint(t[e]);return this}setFromCenterAndSize(t,e){const n=Ut.copy(e).multiplyScalar(.5);return this.min.copy(t).sub(n),this.max.copy(t).add(n),this}setFromObject(t){return this.makeEmpty(),this.expandByObject(t)}clone(){return(new this.constructor).copy(this)}copy(t){return this.min.copy(t.min),this.max.copy(t.max),this}makeEmpty(){return this.min.x=this.min.y=this.min.z=1/0,this.max.x=this.max.y=this.max.z=-1/0,this}isEmpty(){return this.max.x<this.min.x||this.max.y<this.min.y||this.max.z<this.min.z}getCenter(t){return this.isEmpty()?t.set(0,0,0):t.addVectors(this.min,this.max).multiplyScalar(.5)}getSize(t){return this.isEmpty()?t.set(0,0,0):t.subVectors(this.max,this.min)}expandByPoint(t){return this.min.min(t),this.max.max(t),this}expandByVector(t){return this.min.sub(t),this.max.add(t),this}expandByScalar(t){return this.min.addScalar(-t),this.max.addScalar(t),this}expandByObject(t){t.updateWorldMatrix(!1,!1);const e=t.geometry;void 0!==e&&(null===e.boundingBox&&e.computeBoundingBox(),Ht.copy(e.boundingBox),Ht.applyMatrix4(t.matrixWorld),this.union(Ht));const n=t.children;for(let t=0,e=n.length;t<e;t++)this.expandByObject(n[t]);return this}containsPoint(t){return!(t.x<this.min.x||t.x>this.max.x||t.y<this.min.y||t.y>this.max.y||t.z<this.min.z||t.z>this.max.z)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(t){return!(t.max.x<this.min.x||t.min.x>this.max.x||t.max.y<this.min.y||t.min.y>this.max.y||t.max.z<this.min.z||t.min.z>this.max.z)}intersectsSphere(t){return this.clampPoint(t.center,Ut),Ut.distanceToSquared(t.center)<=t.radius*t.radius}intersectsPlane(t){let e,n;return t.normal.x>0?(e=t.normal.x*this.min.x,n=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,n=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,n+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,n+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,n+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,n+=t.normal.z*this.min.z),e<=-t.constant&&n>=-t.constant}intersectsTriangle(t){if(this.isEmpty())return!1;this.getCenter(Xt),Yt.subVectors(this.max,Xt),Gt.subVectors(t.a,Xt),kt.subVectors(t.b,Xt),Vt.subVectors(t.c,Xt),Wt.subVectors(kt,Gt),jt.subVectors(Vt,kt),qt.subVectors(Gt,Vt);let e=[0,-Wt.z,Wt.y,0,-jt.z,jt.y,0,-qt.z,qt.y,Wt.z,0,-Wt.x,jt.z,0,-jt.x,qt.z,0,-qt.x,-Wt.y,Wt.x,0,-jt.y,jt.x,0,-qt.y,qt.x,0];return!!Qt(e,Gt,kt,Vt,Yt)&&(e=[1,0,0,0,1,0,0,0,1],!!Qt(e,Gt,kt,Vt,Yt)&&(Jt.crossVectors(Wt,jt),e=[Jt.x,Jt.y,Jt.z],Qt(e,Gt,kt,Vt,Yt)))}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return Ut.copy(t).clamp(this.min,this.max).sub(t).length()}getBoundingSphere(t){return this.getCenter(t.center),t.radius=.5*this.getSize(Ut).length(),t}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}applyMatrix4(t){return this.isEmpty()||(Ot[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),Ot[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),Ot[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),Ot[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),Ot[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),Ot[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),Ot[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),Ot[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(Ot)),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}Ft.prototype.isBox3=!0;const Ot=[new Nt,new Nt,new Nt,new Nt,new Nt,new Nt,new Nt,new Nt],Ut=new Nt,Ht=new Ft,Gt=new Nt,kt=new Nt,Vt=new Nt,Wt=new Nt,jt=new Nt,qt=new Nt,Xt=new Nt,Yt=new Nt,Jt=new Nt,Zt=new Nt;function Qt(t,e,n,i,r){for(let s=0,a=t.length-3;s<=a;s+=3){Zt.fromArray(t,s);const a=r.x*Math.abs(Zt.x)+r.y*Math.abs(Zt.y)+r.z*Math.abs(Zt.z),o=e.dot(Zt),l=n.dot(Zt),c=i.dot(Zt);if(Math.max(-Math.max(o,l,c),Math.min(o,l,c))>a)return!1}return!0}const Kt=new Ft,$t=new Nt,te=new Nt,ee=new Nt;class ne{constructor(t=new Nt,e=-1){this.center=t,this.radius=e}set(t,e){return this.center.copy(t),this.radius=e,this}setFromPoints(t,e){const n=this.center;void 0!==e?n.copy(e):Kt.setFromPoints(t).getCenter(n);let i=0;for(let e=0,r=t.length;e<r;e++)i=Math.max(i,n.distanceToSquared(t[e]));return this.radius=Math.sqrt(i),this}copy(t){return this.center.copy(t.center),this.radius=t.radius,this}isEmpty(){return this.radius<0}makeEmpty(){return this.center.set(0,0,0),this.radius=-1,this}containsPoint(t){return t.distanceToSquared(this.center)<=this.radius*this.radius}distanceToPoint(t){return t.distanceTo(this.center)-this.radius}intersectsSphere(t){const e=this.radius+t.radius;return t.center.distanceToSquared(this.center)<=e*e}intersectsBox(t){return t.intersectsSphere(this)}intersectsPlane(t){return Math.abs(t.distanceToPoint(this.center))<=this.radius}clampPoint(t,e){const n=this.center.distanceToSquared(t);return e.copy(t),n>this.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e}getBoundingBox(t){return this.isEmpty()?(t.makeEmpty(),t):(t.set(this.center,this.center),t.expandByScalar(this.radius),t)}applyMatrix4(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this}translate(t){return this.center.add(t),this}expandByPoint(t){ee.subVectors(t,this.center);const e=ee.lengthSq();if(e>this.radius*this.radius){const t=Math.sqrt(e),n=.5*(t-this.radius);this.center.add(ee.multiplyScalar(n/t)),this.radius+=n}return this}union(t){return te.subVectors(t.center,this.center).normalize().multiplyScalar(t.radius),this.expandByPoint($t.copy(t.center).add(te)),this.expandByPoint($t.copy(t.center).sub(te)),this}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return(new this.constructor).copy(this)}}const ie=new Nt,re=new Nt,se=new Nt,ae=new Nt,oe=new Nt,le=new Nt,ce=new Nt;class he{constructor(t=new Nt,e=new Nt(0,0,-1)){this.origin=t,this.direction=e}set(t,e){return this.origin.copy(t),this.direction.copy(e),this}copy(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this}at(t,e){return e.copy(this.direction).multiplyScalar(t).add(this.origin)}lookAt(t){return this.direction.copy(t).sub(this.origin).normalize(),this}recast(t){return this.origin.copy(this.at(t,ie)),this}closestPointToPoint(t,e){e.subVectors(t,this.origin);const n=e.dot(this.direction);return n<0?e.copy(this.origin):e.copy(this.direction).multiplyScalar(n).add(this.origin)}distanceToPoint(t){return Math.sqrt(this.distanceSqToPoint(t))}distanceSqToPoint(t){const e=ie.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(ie.copy(this.direction).multiplyScalar(e).add(this.origin),ie.distanceToSquared(t))}distanceSqToSegment(t,e,n,i){re.copy(t).add(e).multiplyScalar(.5),se.copy(e).sub(t).normalize(),ae.copy(this.origin).sub(re);const r=.5*t.distanceTo(e),s=-this.direction.dot(se),a=ae.dot(this.direction),o=-ae.dot(se),l=ae.lengthSq(),c=Math.abs(1-s*s);let h,u,d,p;if(c>0)if(h=s*o-a,u=s*a-o,p=r*c,h>=0)if(u>=-p)if(u<=p){const t=1/c;h*=t,u*=t,d=h*(h+s*u+2*a)+u*(s*h+u+2*o)+l}else u=r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;else u=-r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;else u<=-p?(h=Math.max(0,-(-s*r+a)),u=h>0?-r:Math.min(Math.max(-r,-o),r),d=-h*h+u*(u+2*o)+l):u<=p?(h=0,u=Math.min(Math.max(-r,-o),r),d=u*(u+2*o)+l):(h=Math.max(0,-(s*r+a)),u=h>0?r:Math.min(Math.max(-r,-o),r),d=-h*h+u*(u+2*o)+l);else u=s>0?-r:r,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;return n&&n.copy(this.direction).multiplyScalar(h).add(this.origin),i&&i.copy(se).multiplyScalar(u).add(re),d}intersectSphere(t,e){ie.subVectors(t.center,this.origin);const n=ie.dot(this.direction),i=ie.dot(ie)-n*n,r=t.radius*t.radius;if(i>r)return null;const s=Math.sqrt(r-i),a=n-s,o=n+s;return a<0&&o<0?null:a<0?this.at(o,e):this.at(a,e)}intersectsSphere(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius}distanceToPlane(t){const e=t.normal.dot(this.direction);if(0===e)return 0===t.distanceToPoint(this.origin)?0:null;const n=-(this.origin.dot(t.normal)+t.constant)/e;return n>=0?n:null}intersectPlane(t,e){const n=this.distanceToPlane(t);return null===n?null:this.at(n,e)}intersectsPlane(t){const e=t.distanceToPoint(this.origin);if(0===e)return!0;return t.normal.dot(this.direction)*e<0}intersectBox(t,e){let n,i,r,s,a,o;const l=1/this.direction.x,c=1/this.direction.y,h=1/this.direction.z,u=this.origin;return l>=0?(n=(t.min.x-u.x)*l,i=(t.max.x-u.x)*l):(n=(t.max.x-u.x)*l,i=(t.min.x-u.x)*l),c>=0?(r=(t.min.y-u.y)*c,s=(t.max.y-u.y)*c):(r=(t.max.y-u.y)*c,s=(t.min.y-u.y)*c),n>s||r>i?null:((r>n||n!=n)&&(n=r),(s<i||i!=i)&&(i=s),h>=0?(a=(t.min.z-u.z)*h,o=(t.max.z-u.z)*h):(a=(t.max.z-u.z)*h,o=(t.min.z-u.z)*h),n>o||a>i?null:((a>n||n!=n)&&(n=a),(o<i||i!=i)&&(i=o),i<0?null:this.at(n>=0?n:i,e)))}intersectsBox(t){return null!==this.intersectBox(t,ie)}intersectTriangle(t,e,n,i,r){oe.subVectors(e,t),le.subVectors(n,t),ce.crossVectors(oe,le);let s,a=this.direction.dot(ce);if(a>0){if(i)return null;s=1}else{if(!(a<0))return null;s=-1,a=-a}ae.subVectors(this.origin,t);const o=s*this.direction.dot(le.crossVectors(ae,le));if(o<0)return null;const l=s*this.direction.dot(oe.cross(ae));if(l<0)return null;if(o+l>a)return null;const c=-s*ae.dot(ce);return c<0?null:this.at(c/a,r)}applyMatrix4(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this}equals(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}clone(){return(new this.constructor).copy(this)}}class ue{constructor(){this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],arguments.length>0&&("")}set(t,e,n,i,r,s,a,o,l,c,h,u,d,p,m,f){const g=this.elements;return g[0]=t,g[4]=e,g[8]=n,g[12]=i,g[1]=r,g[5]=s,g[9]=a,g[13]=o,g[2]=l,g[6]=c,g[10]=h,g[14]=u,g[3]=d,g[7]=p,g[11]=m,g[15]=f,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return(new ue).fromArray(this.elements)}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e[9]=n[9],e[10]=n[10],e[11]=n[11],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15],this}copyPosition(t){const e=this.elements,n=t.elements;return e[12]=n[12],e[13]=n[13],e[14]=n[14],this}setFromMatrix3(t){const e=t.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this}extractBasis(t,e,n){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(t,e,n){return this.set(t.x,e.x,n.x,0,t.y,e.y,n.y,0,t.z,e.z,n.z,0,0,0,0,1),this}extractRotation(t){const e=this.elements,n=t.elements,i=1/de.setFromMatrixColumn(t,0).length(),r=1/de.setFromMatrixColumn(t,1).length(),s=1/de.setFromMatrixColumn(t,2).length();return e[0]=n[0]*i,e[1]=n[1]*i,e[2]=n[2]*i,e[3]=0,e[4]=n[4]*r,e[5]=n[5]*r,e[6]=n[6]*r,e[7]=0,e[8]=n[8]*s,e[9]=n[9]*s,e[10]=n[10]*s,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromEuler(t){t&&t.isEuler||("");const e=this.elements,n=t.x,i=t.y,r=t.z,s=Math.cos(n),a=Math.sin(n),o=Math.cos(i),l=Math.sin(i),c=Math.cos(r),h=Math.sin(r);if("XYZ"===t.order){const t=s*c,n=s*h,i=a*c,r=a*h;e[0]=o*c,e[4]=-o*h,e[8]=l,e[1]=n+i*l,e[5]=t-r*l,e[9]=-a*o,e[2]=r-t*l,e[6]=i+n*l,e[10]=s*o}else if("YXZ"===t.order){const t=o*c,n=o*h,i=l*c,r=l*h;e[0]=t+r*a,e[4]=i*a-n,e[8]=s*l,e[1]=s*h,e[5]=s*c,e[9]=-a,e[2]=n*a-i,e[6]=r+t*a,e[10]=s*o}else if("ZXY"===t.order){const t=o*c,n=o*h,i=l*c,r=l*h;e[0]=t-r*a,e[4]=-s*h,e[8]=i+n*a,e[1]=n+i*a,e[5]=s*c,e[9]=r-t*a,e[2]=-s*l,e[6]=a,e[10]=s*o}else if("ZYX"===t.order){const t=s*c,n=s*h,i=a*c,r=a*h;e[0]=o*c,e[4]=i*l-n,e[8]=t*l+r,e[1]=o*h,e[5]=r*l+t,e[9]=n*l-i,e[2]=-l,e[6]=a*o,e[10]=s*o}else if("YZX"===t.order){const t=s*o,n=s*l,i=a*o,r=a*l;e[0]=o*c,e[4]=r-t*h,e[8]=i*h+n,e[1]=h,e[5]=s*c,e[9]=-a*c,e[2]=-l*c,e[6]=n*h+i,e[10]=t-r*h}else if("XZY"===t.order){const t=s*o,n=s*l,i=a*o,r=a*l;e[0]=o*c,e[4]=-h,e[8]=l*c,e[1]=t*h+r,e[5]=s*c,e[9]=n*h-i,e[2]=i*h-n,e[6]=a*c,e[10]=r*h+t}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromQuaternion(t){return this.compose(me,t,fe)}lookAt(t,e,n){const i=this.elements;return ye.subVectors(t,e),0===ye.lengthSq()&&(ye.z=1),ye.normalize(),ge.crossVectors(n,ye),0===ge.lengthSq()&&(1===Math.abs(n.z)?ye.x+=1e-4:ye.z+=1e-4,ye.normalize(),ge.crossVectors(n,ye)),ge.normalize(),ve.crossVectors(ye,ge),i[0]=ge.x,i[4]=ve.x,i[8]=ye.x,i[1]=ge.y,i[5]=ve.y,i[9]=ye.y,i[2]=ge.z,i[6]=ve.z,i[10]=ye.z,this}multiply(t,e){return void 0!==e?((""),this.multiplyMatrices(t,e)):this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,r=this.elements,s=n[0],a=n[4],o=n[8],l=n[12],c=n[1],h=n[5],u=n[9],d=n[13],p=n[2],m=n[6],f=n[10],g=n[14],v=n[3],y=n[7],x=n[11],_=n[15],b=i[0],M=i[4],w=i[8],S=i[12],T=i[1],E=i[5],A=i[9],L=i[13],R=i[2],C=i[6],P=i[10],I=i[14],D=i[3],N=i[7],z=i[11],B=i[15];return r[0]=s*b+a*T+o*R+l*D,r[4]=s*M+a*E+o*C+l*N,r[8]=s*w+a*A+o*P+l*z,r[12]=s*S+a*L+o*I+l*B,r[1]=c*b+h*T+u*R+d*D,r[5]=c*M+h*E+u*C+d*N,r[9]=c*w+h*A+u*P+d*z,r[13]=c*S+h*L+u*I+d*B,r[2]=p*b+m*T+f*R+g*D,r[6]=p*M+m*E+f*C+g*N,r[10]=p*w+m*A+f*P+g*z,r[14]=p*S+m*L+f*I+g*B,r[3]=v*b+y*T+x*R+_*D,r[7]=v*M+y*E+x*C+_*N,r[11]=v*w+y*A+x*P+_*z,r[15]=v*S+y*L+x*I+_*B,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[4],i=t[8],r=t[12],s=t[1],a=t[5],o=t[9],l=t[13],c=t[2],h=t[6],u=t[10],d=t[14];return t[3]*(+r*o*h-i*l*h-r*a*u+n*l*u+i*a*d-n*o*d)+t[7]*(+e*o*d-e*l*u+r*s*u-i*s*d+i*l*c-r*o*c)+t[11]*(+e*l*h-e*a*d-r*s*h+n*s*d+r*a*c-n*l*c)+t[15]*(-i*a*c-e*o*h+e*a*u+i*s*h-n*s*u+n*o*c)}transpose(){const t=this.elements;let e;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(t,e,n){const i=this.elements;return t.isVector3?(i[12]=t.x,i[13]=t.y,i[14]=t.z):(i[12]=t,i[13]=e,i[14]=n),this}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],s=t[4],a=t[5],o=t[6],l=t[7],c=t[8],h=t[9],u=t[10],d=t[11],p=t[12],m=t[13],f=t[14],g=t[15],v=h*f*l-m*u*l+m*o*d-a*f*d-h*o*g+a*u*g,y=p*u*l-c*f*l-p*o*d+s*f*d+c*o*g-s*u*g,x=c*m*l-p*h*l+p*a*d-s*m*d-c*a*g+s*h*g,_=p*h*o-c*m*o-p*a*u+s*m*u+c*a*f-s*h*f,b=e*v+n*y+i*x+r*_;if(0===b)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const M=1/b;return t[0]=v*M,t[1]=(m*u*r-h*f*r-m*i*d+n*f*d+h*i*g-n*u*g)*M,t[2]=(a*f*r-m*o*r+m*i*l-n*f*l-a*i*g+n*o*g)*M,t[3]=(h*o*r-a*u*r-h*i*l+n*u*l+a*i*d-n*o*d)*M,t[4]=y*M,t[5]=(c*f*r-p*u*r+p*i*d-e*f*d-c*i*g+e*u*g)*M,t[6]=(p*o*r-s*f*r-p*i*l+e*f*l+s*i*g-e*o*g)*M,t[7]=(s*u*r-c*o*r+c*i*l-e*u*l-s*i*d+e*o*d)*M,t[8]=x*M,t[9]=(p*h*r-c*m*r-p*n*d+e*m*d+c*n*g-e*h*g)*M,t[10]=(s*m*r-p*a*r+p*n*l-e*m*l-s*n*g+e*a*g)*M,t[11]=(c*a*r-s*h*r-c*n*l+e*h*l+s*n*d-e*a*d)*M,t[12]=_*M,t[13]=(c*m*i-p*h*i+p*n*u-e*m*u-c*n*f+e*h*f)*M,t[14]=(p*a*i-s*m*i-p*n*o+e*m*o+s*n*f-e*a*f)*M,t[15]=(s*h*i-c*a*i+c*n*o-e*h*o-s*n*u+e*a*u)*M,this}scale(t){const e=this.elements,n=t.x,i=t.y,r=t.z;return e[0]*=n,e[4]*=i,e[8]*=r,e[1]*=n,e[5]*=i,e[9]*=r,e[2]*=n,e[6]*=i,e[10]*=r,e[3]*=n,e[7]*=i,e[11]*=r,this}getMaxScaleOnAxis(){const t=this.elements,e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],n=t[4]*t[4]+t[5]*t[5]+t[6]*t[6],i=t[8]*t[8]+t[9]*t[9]+t[10]*t[10];return Math.sqrt(Math.max(e,n,i))}makeTranslation(t,e,n){return this.set(1,0,0,t,0,1,0,e,0,0,1,n,0,0,0,1),this}makeRotationX(t){const e=Math.cos(t),n=Math.sin(t);return this.set(1,0,0,0,0,e,-n,0,0,n,e,0,0,0,0,1),this}makeRotationY(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,0,n,0,0,1,0,0,-n,0,e,0,0,0,0,1),this}makeRotationZ(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,0,n,e,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(t,e){const n=Math.cos(e),i=Math.sin(e),r=1-n,s=t.x,a=t.y,o=t.z,l=r*s,c=r*a;return this.set(l*s+n,l*a-i*o,l*o+i*a,0,l*a+i*o,c*a+n,c*o-i*s,0,l*o-i*a,c*o+i*s,r*o*o+n,0,0,0,0,1),this}makeScale(t,e,n){return this.set(t,0,0,0,0,e,0,0,0,0,n,0,0,0,0,1),this}makeShear(t,e,n,i,r,s){return this.set(1,n,r,0,t,1,s,0,e,i,1,0,0,0,0,1),this}compose(t,e,n){const i=this.elements,r=e._x,s=e._y,a=e._z,o=e._w,l=r+r,c=s+s,h=a+a,u=r*l,d=r*c,p=r*h,m=s*c,f=s*h,g=a*h,v=o*l,y=o*c,x=o*h,_=n.x,b=n.y,M=n.z;return i[0]=(1-(m+g))*_,i[1]=(d+x)*_,i[2]=(p-y)*_,i[3]=0,i[4]=(d-x)*b,i[5]=(1-(u+g))*b,i[6]=(f+v)*b,i[7]=0,i[8]=(p+y)*M,i[9]=(f-v)*M,i[10]=(1-(u+m))*M,i[11]=0,i[12]=t.x,i[13]=t.y,i[14]=t.z,i[15]=1,this}decompose(t,e,n){const i=this.elements;let r=de.set(i[0],i[1],i[2]).length();const s=de.set(i[4],i[5],i[6]).length(),a=de.set(i[8],i[9],i[10]).length();this.determinant()<0&&(r=-r),t.x=i[12],t.y=i[13],t.z=i[14],pe.copy(this);const o=1/r,l=1/s,c=1/a;return pe.elements[0]*=o,pe.elements[1]*=o,pe.elements[2]*=o,pe.elements[4]*=l,pe.elements[5]*=l,pe.elements[6]*=l,pe.elements[8]*=c,pe.elements[9]*=c,pe.elements[10]*=c,e.setFromRotationMatrix(pe),n.x=r,n.y=s,n.z=a,this}makePerspective(t,e,n,i,r,s){void 0===s&&("");const a=this.elements,o=2*r/(e-t),l=2*r/(n-i),c=(e+t)/(e-t),h=(n+i)/(n-i),u=-(s+r)/(s-r),d=-2*s*r/(s-r);return a[0]=o,a[4]=0,a[8]=c,a[12]=0,a[1]=0,a[5]=l,a[9]=h,a[13]=0,a[2]=0,a[6]=0,a[10]=u,a[14]=d,a[3]=0,a[7]=0,a[11]=-1,a[15]=0,this}makeOrthographic(t,e,n,i,r,s){const a=this.elements,o=1/(e-t),l=1/(n-i),c=1/(s-r),h=(e+t)*o,u=(n+i)*l,d=(s+r)*c;return a[0]=2*o,a[4]=0,a[8]=0,a[12]=-h,a[1]=0,a[5]=2*l,a[9]=0,a[13]=-u,a[2]=0,a[6]=0,a[10]=-2*c,a[14]=-d,a[3]=0,a[7]=0,a[11]=0,a[15]=1,this}equals(t){const e=this.elements,n=t.elements;for(let t=0;t<16;t++)if(e[t]!==n[t])return!1;return!0}fromArray(t,e=0){for(let n=0;n<16;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t[e+9]=n[9],t[e+10]=n[10],t[e+11]=n[11],t[e+12]=n[12],t[e+13]=n[13],t[e+14]=n[14],t[e+15]=n[15],t}}ue.prototype.isMatrix4=!0;const de=new Nt,pe=new ue,me=new Nt(0,0,0),fe=new Nt(1,1,1),ge=new Nt,ve=new Nt,ye=new Nt,xe=new ue,_e=new Dt;class be{constructor(t=0,e=0,n=0,i=be.DefaultOrder){this._x=t,this._y=e,this._z=n,this._order=i}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get order(){return this._order}set order(t){this._order=t,this._onChangeCallback()}set(t,e,n,i=this._order){return this._x=t,this._y=e,this._z=n,this._order=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this._onChangeCallback(),this}setFromRotationMatrix(t,e=this._order,n=!0){const i=t.elements,r=i[0],s=i[4],a=i[8],o=i[1],l=i[5],c=i[9],h=i[2],u=i[6],d=i[10];switch(e){case"XYZ":this._y=Math.asin(ut(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-c,d),this._z=Math.atan2(-s,r)):(this._x=Math.atan2(u,l),this._z=0);break;case"YXZ":this._x=Math.asin(-ut(c,-1,1)),Math.abs(c)<.9999999?(this._y=Math.atan2(a,d),this._z=Math.atan2(o,l)):(this._y=Math.atan2(-h,r),this._z=0);break;case"ZXY":this._x=Math.asin(ut(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(-h,d),this._z=Math.atan2(-s,l)):(this._y=0,this._z=Math.atan2(o,r));break;case"ZYX":this._y=Math.asin(-ut(h,-1,1)),Math.abs(h)<.9999999?(this._x=Math.atan2(u,d),this._z=Math.atan2(o,r)):(this._x=0,this._z=Math.atan2(-s,l));break;case"YZX":this._z=Math.asin(ut(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-c,l),this._y=Math.atan2(-h,r)):(this._x=0,this._y=Math.atan2(a,d));break;case"XZY":this._z=Math.asin(-ut(s,-1,1)),Math.abs(s)<.9999999?(this._x=Math.atan2(u,l),this._y=Math.atan2(a,r)):(this._x=Math.atan2(-c,d),this._y=0);break;default:(""+e)}return this._order=e,!0===n&&this._onChangeCallback(),this}setFromQuaternion(t,e,n){return xe.makeRotationFromQuaternion(t),this.setFromRotationMatrix(xe,e,n)}setFromVector3(t,e=this._order){return this.set(t.x,t.y,t.z,e)}reorder(t){return _e.setFromEuler(this),this.setFromQuaternion(_e,t)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order}fromArray(t){return this._x=t[0],this._y=t[1],this._z=t[2],void 0!==t[3]&&(this._order=t[3]),this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t}toVector3(t){return t?t.set(this._x,this._y,this._z):new Nt(this._x,this._y,this._z)}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}}be.prototype.isEuler=!0,be.DefaultOrder="XYZ",be.RotationOrders=["XYZ","YZX","ZXY","XZY","YXZ","ZYX"];class Me{constructor(){this.mask=1}set(t){this.mask=1<<t|0}enable(t){this.mask|=1<<t|0}enableAll(){this.mask=-1}toggle(t){this.mask^=1<<t|0}disable(t){this.mask&=~(1<<t|0)}disableAll(){this.mask=0}test(t){return 0!=(this.mask&t.mask)}}let we=0;const Se=new Nt,Te=new Dt,Ee=new ue,Ae=new Nt,Le=new Nt,Re=new Nt,Ce=new Dt,Pe=new Nt(1,0,0),Ie=new Nt(0,1,0),De=new Nt(0,0,1),Ne={type:"added"},ze={type:"removed"};class Be extends rt{constructor(){super(),Object.defineProperty(this,"id",{value:we++}),this.uuid=ht(),this.name="",this.type="Object3D",this.parent=null,this.children=[],this.up=Be.DefaultUp.clone();const t=new Nt,e=new be,n=new Dt,i=new Nt(1,1,1);e._onChange((function(){n.setFromEuler(e,!1)})),n._onChange((function(){e.setFromQuaternion(n,void 0,!1)})),Object.defineProperties(this,{position:{configurable:!0,enumerable:!0,value:t},rotation:{configurable:!0,enumerable:!0,value:e},quaternion:{configurable:!0,enumerable:!0,value:n},scale:{configurable:!0,enumerable:!0,value:i},modelViewMatrix:{value:new ue},normalMatrix:{value:new xt}}),this.matrix=new ue,this.matrixWorld=new ue,this.matrixAutoUpdate=Be.DefaultMatrixAutoUpdate,this.matrixWorldNeedsUpdate=!1,this.layers=new Me,this.visible=!0,this.castShadow=!1,this.receiveShadow=!1,this.frustumCulled=!0,this.renderOrder=0,this.animations=[],this.userData={}}onBeforeRender(){}onAfterRender(){}applyMatrix4(t){this.matrixAutoUpdate&&this.updateMatrix(),this.matrix.premultiply(t),this.matrix.decompose(this.position,this.quaternion,this.scale)}applyQuaternion(t){return this.quaternion.premultiply(t),this}setRotationFromAxisAngle(t,e){this.quaternion.setFromAxisAngle(t,e)}setRotationFromEuler(t){this.quaternion.setFromEuler(t,!0)}setRotationFromMatrix(t){this.quaternion.setFromRotationMatrix(t)}setRotationFromQuaternion(t){this.quaternion.copy(t)}rotateOnAxis(t,e){return Te.setFromAxisAngle(t,e),this.quaternion.multiply(Te),this}rotateOnWorldAxis(t,e){return Te.setFromAxisAngle(t,e),this.quaternion.premultiply(Te),this}rotateX(t){return this.rotateOnAxis(Pe,t)}rotateY(t){return this.rotateOnAxis(Ie,t)}rotateZ(t){return this.rotateOnAxis(De,t)}translateOnAxis(t,e){return Se.copy(t).applyQuaternion(this.quaternion),this.position.add(Se.multiplyScalar(e)),this}translateX(t){return this.translateOnAxis(Pe,t)}translateY(t){return this.translateOnAxis(Ie,t)}translateZ(t){return this.translateOnAxis(De,t)}localToWorld(t){return t.applyMatrix4(this.matrixWorld)}worldToLocal(t){return t.applyMatrix4(Ee.copy(this.matrixWorld).invert())}lookAt(t,e,n){t.isVector3?Ae.copy(t):Ae.set(t,e,n);const i=this.parent;this.updateWorldMatrix(!0,!1),Le.setFromMatrixPosition(this.matrixWorld),this.isCamera||this.isLight?Ee.lookAt(Le,Ae,this.up):Ee.lookAt(Ae,Le,this.up),this.quaternion.setFromRotationMatrix(Ee),i&&(Ee.extractRotation(i.matrixWorld),Te.setFromRotationMatrix(Ee),this.quaternion.premultiply(Te.invert()))}add(t){if(arguments.length>1){for(let t=0;t<arguments.length;t++)this.add(arguments[t]);return this}return t===this?(("",t),this):(t&&t.isObject3D?(null!==t.parent&&t.parent.remove(t),t.parent=this,this.children.push(t),t.dispatchEvent(Ne)):("",t),this)}remove(t){if(arguments.length>1){for(let t=0;t<arguments.length;t++)this.remove(arguments[t]);return this}const e=this.children.indexOf(t);return-1!==e&&(t.parent=null,this.children.splice(e,1),t.dispatchEvent(ze)),this}removeFromParent(){const t=this.parent;return null!==t&&t.remove(this),this}clear(){for(let t=0;t<this.children.length;t++){const e=this.children[t];e.parent=null,e.dispatchEvent(ze)}return this.children.length=0,this}attach(t){return this.updateWorldMatrix(!0,!1),Ee.copy(this.matrixWorld).invert(),null!==t.parent&&(t.parent.updateWorldMatrix(!0,!1),Ee.multiply(t.parent.matrixWorld)),t.applyMatrix4(Ee),this.add(t),t.updateWorldMatrix(!1,!0),this}getObjectById(t){return this.getObjectByProperty("id",t)}getObjectByName(t){return this.getObjectByProperty("name",t)}getObjectByProperty(t,e){if(this[t]===e)return this;for(let n=0,i=this.children.length;n<i;n++){const i=this.children[n].getObjectByProperty(t,e);if(void 0!==i)return i}}getWorldPosition(t){return this.updateWorldMatrix(!0,!1),t.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(Le,t,Re),t}getWorldScale(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(Le,Ce,t),t}getWorldDirection(t){this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(e[8],e[9],e[10]).normalize()}raycast(){}traverse(t){t(this);const e=this.children;for(let n=0,i=e.length;n<i;n++)e[n].traverse(t)}traverseVisible(t){if(!1===this.visible)return;t(this);const e=this.children;for(let n=0,i=e.length;n<i;n++)e[n].traverseVisible(t)}traverseAncestors(t){const e=this.parent;null!==e&&(t(e),e.traverseAncestors(t))}updateMatrix(){this.matrix.compose(this.position,this.quaternion,this.scale),this.matrixWorldNeedsUpdate=!0}updateMatrixWorld(t){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||t)&&(null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),this.matrixWorldNeedsUpdate=!1,t=!0);const e=this.children;for(let n=0,i=e.length;n<i;n++)e[n].updateMatrixWorld(t)}updateWorldMatrix(t,e){const n=this.parent;if(!0===t&&null!==n&&n.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),!0===e){const t=this.children;for(let e=0,n=t.length;e<n;e++)t[e].updateWorldMatrix(!1,!0)}}toJSON(t){const e=void 0===t||"string"==typeof t,n={};e&&(t={geometries:{},materials:{},textures:{},images:{},shapes:{},skeletons:{},animations:{}},n.metadata={version:4.5,type:"Object",generator:"Object3D.toJSON"});const i={};function r(e,n){return void 0===e[n.uuid]&&(e[n.uuid]=n.toJSON(t)),n.uuid}if(i.uuid=this.uuid,i.type=this.type,""!==this.name&&(i.name=this.name),!0===this.castShadow&&(i.castShadow=!0),!0===this.receiveShadow&&(i.receiveShadow=!0),!1===this.visible&&(i.visible=!1),!1===this.frustumCulled&&(i.frustumCulled=!1),0!==this.renderOrder&&(i.renderOrder=this.renderOrder),"{}"!==JSON.stringify(this.userData)&&(i.userData=this.userData),i.layers=this.layers.mask,i.matrix=this.matrix.toArray(),!1===this.matrixAutoUpdate&&(i.matrixAutoUpdate=!1),this.isInstancedMesh&&(i.type="InstancedMesh",i.count=this.count,i.instanceMatrix=this.instanceMatrix.toJSON(),null!==this.instanceColor&&(i.instanceColor=this.instanceColor.toJSON())),this.isScene)this.background&&(this.background.isColor?i.background=this.background.toJSON():this.background.isTexture&&(i.background=this.background.toJSON(t).uuid)),this.environment&&this.environment.isTexture&&(i.environment=this.environment.toJSON(t).uuid);else if(this.isMesh||this.isLine||this.isPoints){i.geometry=r(t.geometries,this.geometry);const e=this.geometry.parameters;if(void 0!==e&&void 0!==e.shapes){const n=e.shapes;if(Array.isArray(n))for(let e=0,i=n.length;e<i;e++){const i=n[e];r(t.shapes,i)}else r(t.shapes,n)}}if(this.isSkinnedMesh&&(i.bindMode=this.bindMode,i.bindMatrix=this.bindMatrix.toArray(),void 0!==this.skeleton&&(r(t.skeletons,this.skeleton),i.skeleton=this.skeleton.uuid)),void 0!==this.material)if(Array.isArray(this.material)){const e=[];for(let n=0,i=this.material.length;n<i;n++)e.push(r(t.materials,this.material[n]));i.material=e}else i.material=r(t.materials,this.material);if(this.children.length>0){i.children=[];for(let e=0;e<this.children.length;e++)i.children.push(this.children[e].toJSON(t).object)}if(this.animations.length>0){i.animations=[];for(let e=0;e<this.animations.length;e++){const n=this.animations[e];i.animations.push(r(t.animations,n))}}if(e){const e=s(t.geometries),i=s(t.materials),r=s(t.textures),a=s(t.images),o=s(t.shapes),l=s(t.skeletons),c=s(t.animations);e.length>0&&(n.geometries=e),i.length>0&&(n.materials=i),r.length>0&&(n.textures=r),a.length>0&&(n.images=a),o.length>0&&(n.shapes=o),l.length>0&&(n.skeletons=l),c.length>0&&(n.animations=c)}return n.object=i,n;function s(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}}clone(t){return(new this.constructor).copy(this,t)}copy(t,e=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.userData=JSON.parse(JSON.stringify(t.userData)),!0===e)for(let e=0;e<t.children.length;e++){const n=t.children[e];this.add(n.clone())}return this}}Be.DefaultUp=new Nt(0,1,0),Be.DefaultMatrixAutoUpdate=!0,Be.prototype.isObject3D=!0;const Fe=new Nt,Oe=new Nt,Ue=new Nt,He=new Nt,Ge=new Nt,ke=new Nt,Ve=new Nt,We=new Nt,je=new Nt,qe=new Nt;class Xe{constructor(t=new Nt,e=new Nt,n=new Nt){this.a=t,this.b=e,this.c=n}static getNormal(t,e,n,i){i.subVectors(n,e),Fe.subVectors(t,e),i.cross(Fe);const r=i.lengthSq();return r>0?i.multiplyScalar(1/Math.sqrt(r)):i.set(0,0,0)}static getBarycoord(t,e,n,i,r){Fe.subVectors(i,e),Oe.subVectors(n,e),Ue.subVectors(t,e);const s=Fe.dot(Fe),a=Fe.dot(Oe),o=Fe.dot(Ue),l=Oe.dot(Oe),c=Oe.dot(Ue),h=s*l-a*a;if(0===h)return r.set(-2,-1,-1);const u=1/h,d=(l*o-a*c)*u,p=(s*c-a*o)*u;return r.set(1-d-p,p,d)}static containsPoint(t,e,n,i){return this.getBarycoord(t,e,n,i,He),He.x>=0&&He.y>=0&&He.x+He.y<=1}static getUV(t,e,n,i,r,s,a,o){return this.getBarycoord(t,e,n,i,He),o.set(0,0),o.addScaledVector(r,He.x),o.addScaledVector(s,He.y),o.addScaledVector(a,He.z),o}static isFrontFacing(t,e,n,i){return Fe.subVectors(n,e),Oe.subVectors(t,e),Fe.cross(Oe).dot(i)<0}set(t,e,n){return this.a.copy(t),this.b.copy(e),this.c.copy(n),this}setFromPointsAndIndices(t,e,n,i){return this.a.copy(t[e]),this.b.copy(t[n]),this.c.copy(t[i]),this}setFromAttributeAndIndices(t,e,n,i){return this.a.fromBufferAttribute(t,e),this.b.fromBufferAttribute(t,n),this.c.fromBufferAttribute(t,i),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this}getArea(){return Fe.subVectors(this.c,this.b),Oe.subVectors(this.a,this.b),.5*Fe.cross(Oe).length()}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return Xe.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return Xe.getBarycoord(t,this.a,this.b,this.c,e)}getUV(t,e,n,i,r){return Xe.getUV(t,this.a,this.b,this.c,e,n,i,r)}containsPoint(t){return Xe.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return Xe.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){const n=this.a,i=this.b,r=this.c;let s,a;Ge.subVectors(i,n),ke.subVectors(r,n),We.subVectors(t,n);const o=Ge.dot(We),l=ke.dot(We);if(o<=0&&l<=0)return e.copy(n);je.subVectors(t,i);const c=Ge.dot(je),h=ke.dot(je);if(c>=0&&h<=c)return e.copy(i);const u=o*h-c*l;if(u<=0&&o>=0&&c<=0)return s=o/(o-c),e.copy(n).addScaledVector(Ge,s);qe.subVectors(t,r);const d=Ge.dot(qe),p=ke.dot(qe);if(p>=0&&d<=p)return e.copy(r);const m=d*l-o*p;if(m<=0&&l>=0&&p<=0)return a=l/(l-p),e.copy(n).addScaledVector(ke,a);const f=c*p-d*h;if(f<=0&&h-c>=0&&d-p>=0)return Ve.subVectors(r,i),a=(h-c)/(h-c+(d-p)),e.copy(i).addScaledVector(Ve,a);const g=1/(f+m+u);return s=m*g,a=u*g,e.copy(n).addScaledVector(Ge,s).addScaledVector(ke,a)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}}let Ye=0;class Je extends rt{constructor(){super(),Object.defineProperty(this,"id",{value:Ye++}),this.uuid=ht(),this.name="",this.type="Material",this.fog=!0,this.blending=1,this.side=0,this.vertexColors=!1,this.opacity=1,this.format=E,this.transparent=!1,this.blendSrc=204,this.blendDst=205,this.blendEquation=n,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=3,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=519,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=tt,this.stencilZFail=tt,this.stencilZPass=tt,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(t){this._alphaTest>0!=t>0&&this.version++,this._alphaTest=t}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(t){if(void 0!==t)for(const e in t){const n=t[e];if(void 0===n){(""+e+"' parameter is undefined.");continue}if("shading"===e){(""+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=1===n;continue}const i=this[e];void 0!==i?i&&i.isColor?i.set(n):i&&i.isVector3&&n&&n.isVector3?i.copy(n):this[e]=n:(""+this.type+": '"+e+"' is not a property of this material.")}}toJSON(t){const e=void 0===t||"string"==typeof t;e&&(t={textures:{},images:{}});const n={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};function i(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}if(n.uuid=this.uuid,n.type=this.type,""!==this.name&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),void 0!==this.roughness&&(n.roughness=this.roughness),void 0!==this.metalness&&(n.metalness=this.metalness),void 0!==this.sheen&&(n.sheen=this.sheen),this.sheenTint&&this.sheenTint.isColor&&(n.sheenTint=this.sheenTint.getHex()),void 0!==this.sheenRoughness&&(n.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity&&1!==this.emissiveIntensity&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),void 0!==this.specularIntensity&&(n.specularIntensity=this.specularIntensity),this.specularTint&&this.specularTint.isColor&&(n.specularTint=this.specularTint.getHex()),void 0!==this.shininess&&(n.shininess=this.shininess),void 0!==this.clearcoat&&(n.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(t).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(t).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(t).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(t).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(t).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(t).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(t).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(t).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(t).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(t).uuid),this.specularTintMap&&this.specularTintMap.isTexture&&(n.specularTintMap=this.specularTintMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(t).uuid,void 0!==this.combine&&(n.combine=this.combine)),void 0!==this.envMapIntensity&&(n.envMapIntensity=this.envMapIntensity),void 0!==this.reflectivity&&(n.reflectivity=this.reflectivity),void 0!==this.refractionRatio&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(t).uuid),void 0!==this.transmission&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(t).uuid),void 0!==this.thickness&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(t).uuid),void 0!==this.attenuationDistance&&(n.attenuationDistance=this.attenuationDistance),void 0!==this.attenuationTint&&(n.attenuationTint=this.attenuationTint.getHex()),void 0!==this.size&&(n.size=this.size),null!==this.shadowSide&&(n.shadowSide=this.shadowSide),void 0!==this.sizeAttenuation&&(n.sizeAttenuation=this.sizeAttenuation),1!==this.blending&&(n.blending=this.blending),0!==this.side&&(n.side=this.side),this.vertexColors&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),this.format!==E&&(n.format=this.format),!0===this.transparent&&(n.transparent=this.transparent),n.depthFunc=this.depthFunc,n.depthTest=this.depthTest,n.depthWrite=this.depthWrite,n.colorWrite=this.colorWrite,n.stencilWrite=this.stencilWrite,n.stencilWriteMask=this.stencilWriteMask,n.stencilFunc=this.stencilFunc,n.stencilRef=this.stencilRef,n.stencilFuncMask=this.stencilFuncMask,n.stencilFail=this.stencilFail,n.stencilZFail=this.stencilZFail,n.stencilZPass=this.stencilZPass,this.rotation&&0!==this.rotation&&(n.rotation=this.rotation),!0===this.polygonOffset&&(n.polygonOffset=!0),0!==this.polygonOffsetFactor&&(n.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(n.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth&&1!==this.linewidth&&(n.linewidth=this.linewidth),void 0!==this.dashSize&&(n.dashSize=this.dashSize),void 0!==this.gapSize&&(n.gapSize=this.gapSize),void 0!==this.scale&&(n.scale=this.scale),!0===this.dithering&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),!0===this.alphaToCoverage&&(n.alphaToCoverage=this.alphaToCoverage),!0===this.premultipliedAlpha&&(n.premultipliedAlpha=this.premultipliedAlpha),!0===this.wireframe&&(n.wireframe=this.wireframe),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(n.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(n.wireframeLinejoin=this.wireframeLinejoin),!0===this.flatShading&&(n.flatShading=this.flatShading),!1===this.visible&&(n.visible=!1),!1===this.toneMapped&&(n.toneMapped=!1),"{}"!==JSON.stringify(this.userData)&&(n.userData=this.userData),e){const e=i(t.textures),r=i(t.images);e.length>0&&(n.textures=e),r.length>0&&(n.images=r)}return n}clone(){return(new this.constructor).copy(this)}copy(t){this.name=t.name,this.fog=t.fog,this.blending=t.blending,this.side=t.side,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.format=t.format,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.stencilWriteMask=t.stencilWriteMask,this.stencilFunc=t.stencilFunc,this.stencilRef=t.stencilRef,this.stencilFuncMask=t.stencilFuncMask,this.stencilFail=t.stencilFail,this.stencilZFail=t.stencilZFail,this.stencilZPass=t.stencilZPass,this.stencilWrite=t.stencilWrite;const e=t.clippingPlanes;let n=null;if(null!==e){const t=e.length;n=new Array(t);for(let i=0;i!==t;++i)n[i]=e[i].clone()}return this.clippingPlanes=n,this.clipIntersection=t.clipIntersection,this.clipShadows=t.clipShadows,this.shadowSide=t.shadowSide,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.alphaToCoverage=t.alphaToCoverage,this.premultipliedAlpha=t.premultipliedAlpha,this.visible=t.visible,this.toneMapped=t.toneMapped,this.userData=JSON.parse(JSON.stringify(t.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(t){!0===t&&this.version++}}Je.prototype.isMaterial=!0;const Ze={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},Qe={h:0,s:0,l:0},Ke={h:0,s:0,l:0};function $e(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+6*(e-t)*(2/3-n):t}function tn(t){return t<.04045?.0773993808*t:Math.pow(.9478672986*t+.0521327014,2.4)}function en(t){return t<.0031308?12.92*t:1.055*Math.pow(t,.41666)-.055}class nn{constructor(t,e,n){return void 0===e&&void 0===n?this.set(t):this.setRGB(t,e,n)}set(t){return t&&t.isColor?this.copy(t):"number"==typeof t?this.setHex(t):"string"==typeof t&&this.setStyle(t),this}setScalar(t){return this.r=t,this.g=t,this.b=t,this}setHex(t){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(255&t)/255,this}setRGB(t,e,n){return this.r=t,this.g=e,this.b=n,this}setHSL(t,e,n){if(t=dt(t,1),e=ut(e,0,1),n=ut(n,0,1),0===e)this.r=this.g=this.b=n;else{const i=n<=.5?n*(1+e):n+e-n*e,r=2*n-i;this.r=$e(r,i,t+1/3),this.g=$e(r,i,t),this.b=$e(r,i,t-1/3)}return this}setStyle(t){function e(e){void 0!==e&&parseFloat(e)<1&&(""+t+" will be ignored.")}let n;if(n=/^((?:rgb|hsl)a?)\(([^\)]*)\)/.exec(t)){let t;const i=n[1],r=n[2];switch(i){case"rgb":case"rgba":if(t=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(r))return this.r=Math.min(255,parseInt(t[1],10))/255,this.g=Math.min(255,parseInt(t[2],10))/255,this.b=Math.min(255,parseInt(t[3],10))/255,e(t[4]),this;if(t=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(r))return this.r=Math.min(100,parseInt(t[1],10))/100,this.g=Math.min(100,parseInt(t[2],10))/100,this.b=Math.min(100,parseInt(t[3],10))/100,e(t[4]),this;break;case"hsl":case"hsla":if(t=/^\s*(\d*\.?\d+)\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(r)){const n=parseFloat(t[1])/360,i=parseInt(t[2],10)/100,r=parseInt(t[3],10)/100;return e(t[4]),this.setHSL(n,i,r)}}}else if(n=/^\#([A-Fa-f\d]+)$/.exec(t)){const t=n[1],e=t.length;if(3===e)return this.r=parseInt(t.charAt(0)+t.charAt(0),16)/255,this.g=parseInt(t.charAt(1)+t.charAt(1),16)/255,this.b=parseInt(t.charAt(2)+t.charAt(2),16)/255,this;if(6===e)return this.r=parseInt(t.charAt(0)+t.charAt(1),16)/255,this.g=parseInt(t.charAt(2)+t.charAt(3),16)/255,this.b=parseInt(t.charAt(4)+t.charAt(5),16)/255,this}return t&&t.length>0?this.setColorName(t):this}setColorName(t){const e=Ze[t.toLowerCase()];return void 0!==e?this.setHex(e):(""+t),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(t){return this.r=t.r,this.g=t.g,this.b=t.b,this}copyGammaToLinear(t,e=2){return this.r=Math.pow(t.r,e),this.g=Math.pow(t.g,e),this.b=Math.pow(t.b,e),this}copyLinearToGamma(t,e=2){const n=e>0?1/e:1;return this.r=Math.pow(t.r,n),this.g=Math.pow(t.g,n),this.b=Math.pow(t.b,n),this}convertGammaToLinear(t){return this.copyGammaToLinear(this,t),this}convertLinearToGamma(t){return this.copyLinearToGamma(this,t),this}copySRGBToLinear(t){return this.r=tn(t.r),this.g=tn(t.g),this.b=tn(t.b),this}copyLinearToSRGB(t){return this.r=en(t.r),this.g=en(t.g),this.b=en(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(){return 255*this.r<<16^255*this.g<<8^255*this.b<<0}getHexString(){return("000000"+this.getHex().toString(16)).slice(-6)}getHSL(t){const e=this.r,n=this.g,i=this.b,r=Math.max(e,n,i),s=Math.min(e,n,i);let a,o;const l=(s+r)/2;if(s===r)a=0,o=0;else{const t=r-s;switch(o=l<=.5?t/(r+s):t/(2-r-s),r){case e:a=(n-i)/t+(n<i?6:0);break;case n:a=(i-e)/t+2;break;case i:a=(e-n)/t+4}a/=6}return t.h=a,t.s=o,t.l=l,t}getStyle(){return"rgb("+(255*this.r|0)+","+(255*this.g|0)+","+(255*this.b|0)+")"}offsetHSL(t,e,n){return this.getHSL(Qe),Qe.h+=t,Qe.s+=e,Qe.l+=n,this.setHSL(Qe.h,Qe.s,Qe.l),this}add(t){return this.r+=t.r,this.g+=t.g,this.b+=t.b,this}addColors(t,e){return this.r=t.r+e.r,this.g=t.g+e.g,this.b=t.b+e.b,this}addScalar(t){return this.r+=t,this.g+=t,this.b+=t,this}sub(t){return this.r=Math.max(0,this.r-t.r),this.g=Math.max(0,this.g-t.g),this.b=Math.max(0,this.b-t.b),this}multiply(t){return this.r*=t.r,this.g*=t.g,this.b*=t.b,this}multiplyScalar(t){return this.r*=t,this.g*=t,this.b*=t,this}lerp(t,e){return this.r+=(t.r-this.r)*e,this.g+=(t.g-this.g)*e,this.b+=(t.b-this.b)*e,this}lerpColors(t,e,n){return this.r=t.r+(e.r-t.r)*n,this.g=t.g+(e.g-t.g)*n,this.b=t.b+(e.b-t.b)*n,this}lerpHSL(t,e){this.getHSL(Qe),t.getHSL(Ke);const n=pt(Qe.h,Ke.h,e),i=pt(Qe.s,Ke.s,e),r=pt(Qe.l,Ke.l,e);return this.setHSL(n,i,r),this}equals(t){return t.r===this.r&&t.g===this.g&&t.b===this.b}fromArray(t,e=0){return this.r=t[e],this.g=t[e+1],this.b=t[e+2],this}toArray(t=[],e=0){return t[e]=this.r,t[e+1]=this.g,t[e+2]=this.b,t}fromBufferAttribute(t,e){return this.r=t.getX(e),this.g=t.getY(e),this.b=t.getZ(e),!0===t.normalized&&(this.r/=255,this.g/=255,this.b/=255),this}toJSON(){return this.getHex()}}nn.NAMES=Ze,nn.prototype.isColor=!0,nn.prototype.r=1,nn.prototype.g=1,nn.prototype.b=1;class rn extends Je{constructor(t){super(),this.type="MeshBasicMaterial",this.color=new nn(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this}}rn.prototype.isMeshBasicMaterial=!0;const sn=new Nt,an=new yt;class on{constructor(t,e,n){if(Array.isArray(t))throw new TypeError("");this.name="",this.array=t,this.itemSize=e,this.count=void 0!==t?t.length/e:0,this.normalized=!0===n,this.usage=et,this.updateRange={offset:0,count:-1},this.version=0}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}setUsage(t){return this.usage=t,this}copy(t){return this.name=t.name,this.array=new t.array.constructor(t.array),this.itemSize=t.itemSize,this.count=t.count,this.normalized=t.normalized,this.usage=t.usage,this}copyAt(t,e,n){t*=this.itemSize,n*=e.itemSize;for(let i=0,r=this.itemSize;i<r;i++)this.array[t+i]=e.array[n+i];return this}copyArray(t){return this.array.set(t),this}copyColorsArray(t){const e=this.array;let n=0;for(let i=0,r=t.length;i<r;i++){let r=t[i];void 0===r&&(("",i),r=new nn),e[n++]=r.r,e[n++]=r.g,e[n++]=r.b}return this}copyVector2sArray(t){const e=this.array;let n=0;for(let i=0,r=t.length;i<r;i++){let r=t[i];void 0===r&&(("",i),r=new yt),e[n++]=r.x,e[n++]=r.y}return this}copyVector3sArray(t){const e=this.array;let n=0;for(let i=0,r=t.length;i<r;i++){let r=t[i];void 0===r&&(("",i),r=new Nt),e[n++]=r.x,e[n++]=r.y,e[n++]=r.z}return this}copyVector4sArray(t){const e=this.array;let n=0;for(let i=0,r=t.length;i<r;i++){let r=t[i];void 0===r&&(("",i),r=new Rt),e[n++]=r.x,e[n++]=r.y,e[n++]=r.z,e[n++]=r.w}return this}applyMatrix3(t){if(2===this.itemSize)for(let e=0,n=this.count;e<n;e++)an.fromBufferAttribute(this,e),an.applyMatrix3(t),this.setXY(e,an.x,an.y);else if(3===this.itemSize)for(let e=0,n=this.count;e<n;e++)sn.fromBufferAttribute(this,e),sn.applyMatrix3(t),this.setXYZ(e,sn.x,sn.y,sn.z);return this}applyMatrix4(t){for(let e=0,n=this.count;e<n;e++)sn.x=this.getX(e),sn.y=this.getY(e),sn.z=this.getZ(e),sn.applyMatrix4(t),this.setXYZ(e,sn.x,sn.y,sn.z);return this}applyNormalMatrix(t){for(let e=0,n=this.count;e<n;e++)sn.x=this.getX(e),sn.y=this.getY(e),sn.z=this.getZ(e),sn.applyNormalMatrix(t),this.setXYZ(e,sn.x,sn.y,sn.z);return this}transformDirection(t){for(let e=0,n=this.count;e<n;e++)sn.x=this.getX(e),sn.y=this.getY(e),sn.z=this.getZ(e),sn.transformDirection(t),this.setXYZ(e,sn.x,sn.y,sn.z);return this}set(t,e=0){return this.array.set(t,e),this}getX(t){return this.array[t*this.itemSize]}setX(t,e){return this.array[t*this.itemSize]=e,this}getY(t){return this.array[t*this.itemSize+1]}setY(t,e){return this.array[t*this.itemSize+1]=e,this}getZ(t){return this.array[t*this.itemSize+2]}setZ(t,e){return this.array[t*this.itemSize+2]=e,this}getW(t){return this.array[t*this.itemSize+3]}setW(t,e){return this.array[t*this.itemSize+3]=e,this}setXY(t,e,n){return t*=this.itemSize,this.array[t+0]=e,this.array[t+1]=n,this}setXYZ(t,e,n,i){return t*=this.itemSize,this.array[t+0]=e,this.array[t+1]=n,this.array[t+2]=i,this}setXYZW(t,e,n,i,r){return t*=this.itemSize,this.array[t+0]=e,this.array[t+1]=n,this.array[t+2]=i,this.array[t+3]=r,this}onUpload(t){return this.onUploadCallback=t,this}clone(){return new this.constructor(this.array,this.itemSize).copy(this)}toJSON(){const t={itemSize:this.itemSize,type:this.array.constructor.name,array:Array.prototype.slice.call(this.array),normalized:this.normalized};return""!==this.name&&(t.name=this.name),this.usage!==et&&(t.usage=this.usage),0===this.updateRange.offset&&-1===this.updateRange.count||(t.updateRange=this.updateRange),t}}on.prototype.isBufferAttribute=!0;class ln extends on{constructor(t,e,n){super(new Int8Array(t),e,n)}}class cn extends on{constructor(t,e,n){super(new Uint8Array(t),e,n)}}class hn extends on{constructor(t,e,n){super(new Uint8ClampedArray(t),e,n)}}class un extends on{constructor(t,e,n){super(new Int16Array(t),e,n)}}class dn extends on{constructor(t,e,n){super(new Uint16Array(t),e,n)}}class pn extends on{constructor(t,e,n){super(new Int32Array(t),e,n)}}class mn extends on{constructor(t,e,n){super(new Uint32Array(t),e,n)}}class fn extends on{constructor(t,e,n){super(new Uint16Array(t),e,n)}}fn.prototype.isFloat16BufferAttribute=!0;class gn extends on{constructor(t,e,n){super(new Float32Array(t),e,n)}}class vn extends on{constructor(t,e,n){super(new Float64Array(t),e,n)}}let yn=0;const xn=new ue,_n=new Be,bn=new Nt,Mn=new Ft,wn=new Ft,Sn=new Nt;class Tn extends rt{constructor(){super(),Object.defineProperty(this,"id",{value:yn++}),this.uuid=ht(),this.name="",this.type="BufferGeometry",this.index=null,this.attributes={},this.morphAttributes={},this.morphTargetsRelative=!1,this.groups=[],this.boundingBox=null,this.boundingSphere=null,this.drawRange={start:0,count:1/0},this.userData={}}getIndex(){return this.index}setIndex(t){return Array.isArray(t)?this.index=new(_t(t)>65535?mn:dn)(t,1):this.index=t,this}getAttribute(t){return this.attributes[t]}setAttribute(t,e){return this.attributes[t]=e,this}deleteAttribute(t){return delete this.attributes[t],this}hasAttribute(t){return void 0!==this.attributes[t]}addGroup(t,e,n=0){this.groups.push({start:t,count:e,materialIndex:n})}clearGroups(){this.groups=[]}setDrawRange(t,e){this.drawRange.start=t,this.drawRange.count=e}applyMatrix4(t){const e=this.attributes.position;void 0!==e&&(e.applyMatrix4(t),e.needsUpdate=!0);const n=this.attributes.normal;if(void 0!==n){const e=(new xt).getNormalMatrix(t);n.applyNormalMatrix(e),n.needsUpdate=!0}const i=this.attributes.tangent;return void 0!==i&&(i.transformDirection(t),i.needsUpdate=!0),null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this}applyQuaternion(t){return xn.makeRotationFromQuaternion(t),this.applyMatrix4(xn),this}rotateX(t){return xn.makeRotationX(t),this.applyMatrix4(xn),this}rotateY(t){return xn.makeRotationY(t),this.applyMatrix4(xn),this}rotateZ(t){return xn.makeRotationZ(t),this.applyMatrix4(xn),this}translate(t,e,n){return xn.makeTranslation(t,e,n),this.applyMatrix4(xn),this}scale(t,e,n){return xn.makeScale(t,e,n),this.applyMatrix4(xn),this}lookAt(t){return _n.lookAt(t),_n.updateMatrix(),this.applyMatrix4(_n.matrix),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(bn).negate(),this.translate(bn.x,bn.y,bn.z),this}setFromPoints(t){const e=[];for(let n=0,i=t.length;n<i;n++){const i=t[n];e.push(i.x,i.y,i.z||0)}return this.setAttribute("position",new gn(e,3)),this}computeBoundingBox(){null===this.boundingBox&&(this.boundingBox=new Ft);const t=this.attributes.position,e=this.morphAttributes.position;if(t&&t.isGLBufferAttribute)return ('',this),void this.boundingBox.set(new Nt(-1/0,-1/0,-1/0),new Nt(1/0,1/0,1/0));if(void 0!==t){if(this.boundingBox.setFromBufferAttribute(t),e)for(let t=0,n=e.length;t<n;t++){const n=e[t];Mn.setFromBufferAttribute(n),this.morphTargetsRelative?(Sn.addVectors(this.boundingBox.min,Mn.min),this.boundingBox.expandByPoint(Sn),Sn.addVectors(this.boundingBox.max,Mn.max),this.boundingBox.expandByPoint(Sn)):(this.boundingBox.expandByPoint(Mn.min),this.boundingBox.expandByPoint(Mn.max))}}else this.boundingBox.makeEmpty();(isNaN(this.boundingBox.min.x)||isNaN(this.boundingBox.min.y)||isNaN(this.boundingBox.min.z))&&('',this)}computeBoundingSphere(){null===this.boundingSphere&&(this.boundingSphere=new ne);const t=this.attributes.position,e=this.morphAttributes.position;if(t&&t.isGLBufferAttribute)return ('',this),void this.boundingSphere.set(new Nt,1/0);if(t){const n=this.boundingSphere.center;if(Mn.setFromBufferAttribute(t),e)for(let t=0,n=e.length;t<n;t++){const n=e[t];wn.setFromBufferAttribute(n),this.morphTargetsRelative?(Sn.addVectors(Mn.min,wn.min),Mn.expandByPoint(Sn),Sn.addVectors(Mn.max,wn.max),Mn.expandByPoint(Sn)):(Mn.expandByPoint(wn.min),Mn.expandByPoint(wn.max))}Mn.getCenter(n);let i=0;for(let e=0,r=t.count;e<r;e++)Sn.fromBufferAttribute(t,e),i=Math.max(i,n.distanceToSquared(Sn));if(e)for(let r=0,s=e.length;r<s;r++){const s=e[r],a=this.morphTargetsRelative;for(let e=0,r=s.count;e<r;e++)Sn.fromBufferAttribute(s,e),a&&(bn.fromBufferAttribute(t,e),Sn.add(bn)),i=Math.max(i,n.distanceToSquared(Sn))}this.boundingSphere.radius=Math.sqrt(i),isNaN(this.boundingSphere.radius)&&('',this)}}computeTangents(){const t=this.index,e=this.attributes;if(null===t||void 0===e.position||void 0===e.normal||void 0===e.uv)return void ("");const n=t.array,i=e.position.array,r=e.normal.array,s=e.uv.array,a=i.length/3;void 0===e.tangent&&this.setAttribute("tangent",new on(new Float32Array(4*a),4));const o=e.tangent.array,l=[],c=[];for(let t=0;t<a;t++)l[t]=new Nt,c[t]=new Nt;const h=new Nt,u=new Nt,d=new Nt,p=new yt,m=new yt,f=new yt,g=new Nt,v=new Nt;function y(t,e,n){h.fromArray(i,3*t),u.fromArray(i,3*e),d.fromArray(i,3*n),p.fromArray(s,2*t),m.fromArray(s,2*e),f.fromArray(s,2*n),u.sub(h),d.sub(h),m.sub(p),f.sub(p);const r=1/(m.x*f.y-f.x*m.y);isFinite(r)&&(g.copy(u).multiplyScalar(f.y).addScaledVector(d,-m.y).multiplyScalar(r),v.copy(d).multiplyScalar(m.x).addScaledVector(u,-f.x).multiplyScalar(r),l[t].add(g),l[e].add(g),l[n].add(g),c[t].add(v),c[e].add(v),c[n].add(v))}let x=this.groups;0===x.length&&(x=[{start:0,count:n.length}]);for(let t=0,e=x.length;t<e;++t){const e=x[t],i=e.start;for(let t=i,r=i+e.count;t<r;t+=3)y(n[t+0],n[t+1],n[t+2])}const _=new Nt,b=new Nt,M=new Nt,w=new Nt;function S(t){M.fromArray(r,3*t),w.copy(M);const e=l[t];_.copy(e),_.sub(M.multiplyScalar(M.dot(e))).normalize(),b.crossVectors(w,e);const n=b.dot(c[t])<0?-1:1;o[4*t]=_.x,o[4*t+1]=_.y,o[4*t+2]=_.z,o[4*t+3]=n}for(let t=0,e=x.length;t<e;++t){const e=x[t],i=e.start;for(let t=i,r=i+e.count;t<r;t+=3)S(n[t+0]),S(n[t+1]),S(n[t+2])}}computeVertexNormals(){const t=this.index,e=this.getAttribute("position");if(void 0!==e){let n=this.getAttribute("normal");if(void 0===n)n=new on(new Float32Array(3*e.count),3),this.setAttribute("normal",n);else for(let t=0,e=n.count;t<e;t++)n.setXYZ(t,0,0,0);const i=new Nt,r=new Nt,s=new Nt,a=new Nt,o=new Nt,l=new Nt,c=new Nt,h=new Nt;if(t)for(let u=0,d=t.count;u<d;u+=3){const d=t.getX(u+0),p=t.getX(u+1),m=t.getX(u+2);i.fromBufferAttribute(e,d),r.fromBufferAttribute(e,p),s.fromBufferAttribute(e,m),c.subVectors(s,r),h.subVectors(i,r),c.cross(h),a.fromBufferAttribute(n,d),o.fromBufferAttribute(n,p),l.fromBufferAttribute(n,m),a.add(c),o.add(c),l.add(c),n.setXYZ(d,a.x,a.y,a.z),n.setXYZ(p,o.x,o.y,o.z),n.setXYZ(m,l.x,l.y,l.z)}else for(let t=0,a=e.count;t<a;t+=3)i.fromBufferAttribute(e,t+0),r.fromBufferAttribute(e,t+1),s.fromBufferAttribute(e,t+2),c.subVectors(s,r),h.subVectors(i,r),c.cross(h),n.setXYZ(t+0,c.x,c.y,c.z),n.setXYZ(t+1,c.x,c.y,c.z),n.setXYZ(t+2,c.x,c.y,c.z);this.normalizeNormals(),n.needsUpdate=!0}}merge(t,e){if(!t||!t.isBufferGeometry)return void ("",t);void 0===e&&(e=0,(""));const n=this.attributes;for(const i in n){if(void 0===t.attributes[i])continue;const r=n[i].array,s=t.attributes[i],a=s.array,o=s.itemSize*e,l=Math.min(a.length,r.length-o);for(let t=0,e=o;t<l;t++,e++)r[e]=a[t]}return this}normalizeNormals(){const t=this.attributes.normal;for(let e=0,n=t.count;e<n;e++)Sn.fromBufferAttribute(t,e),Sn.normalize(),t.setXYZ(e,Sn.x,Sn.y,Sn.z)}toNonIndexed(){function t(t,e){const n=t.array,i=t.itemSize,r=t.normalized,s=new n.constructor(e.length*i);let a=0,o=0;for(let r=0,l=e.length;r<l;r++){a=t.isInterleavedBufferAttribute?e[r]*t.data.stride+t.offset:e[r]*i;for(let t=0;t<i;t++)s[o++]=n[a++]}return new on(s,i,r)}if(null===this.index)return (""),this;const e=new Tn,n=this.index.array,i=this.attributes;for(const r in i){const s=t(i[r],n);e.setAttribute(r,s)}const r=this.morphAttributes;for(const i in r){const s=[],a=r[i];for(let e=0,i=a.length;e<i;e++){const i=t(a[e],n);s.push(i)}e.morphAttributes[i]=s}e.morphTargetsRelative=this.morphTargetsRelative;const s=this.groups;for(let t=0,n=s.length;t<n;t++){const n=s[t];e.addGroup(n.start,n.count,n.materialIndex)}return e}toJSON(){const t={metadata:{version:4.5,type:"BufferGeometry",generator:"BufferGeometry.toJSON"}};if(t.uuid=this.uuid,t.type=this.type,""!==this.name&&(t.name=this.name),Object.keys(this.userData).length>0&&(t.userData=this.userData),void 0!==this.parameters){const e=this.parameters;for(const n in e)void 0!==e[n]&&(t[n]=e[n]);return t}t.data={attributes:{}};const e=this.index;null!==e&&(t.data.index={type:e.array.constructor.name,array:Array.prototype.slice.call(e.array)});const n=this.attributes;for(const e in n){const i=n[e];t.data.attributes[e]=i.toJSON(t.data)}const i={};let r=!1;for(const e in this.morphAttributes){const n=this.morphAttributes[e],s=[];for(let e=0,i=n.length;e<i;e++){const i=n[e];s.push(i.toJSON(t.data))}s.length>0&&(i[e]=s,r=!0)}r&&(t.data.morphAttributes=i,t.data.morphTargetsRelative=this.morphTargetsRelative);const s=this.groups;s.length>0&&(t.data.groups=JSON.parse(JSON.stringify(s)));const a=this.boundingSphere;return null!==a&&(t.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),t}clone(){return(new this.constructor).copy(this)}copy(t){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const e={};this.name=t.name;const n=t.index;null!==n&&this.setIndex(n.clone(e));const i=t.attributes;for(const t in i){const n=i[t];this.setAttribute(t,n.clone(e))}const r=t.morphAttributes;for(const t in r){const n=[],i=r[t];for(let t=0,r=i.length;t<r;t++)n.push(i[t].clone(e));this.morphAttributes[t]=n}this.morphTargetsRelative=t.morphTargetsRelative;const s=t.groups;for(let t=0,e=s.length;t<e;t++){const e=s[t];this.addGroup(e.start,e.count,e.materialIndex)}const a=t.boundingBox;null!==a&&(this.boundingBox=a.clone());const o=t.boundingSphere;return null!==o&&(this.boundingSphere=o.clone()),this.drawRange.start=t.drawRange.start,this.drawRange.count=t.drawRange.count,this.userData=t.userData,void 0!==t.parameters&&(this.parameters=Object.assign({},t.parameters)),this}dispose(){this.dispatchEvent({type:"dispose"})}}Tn.prototype.isBufferGeometry=!0;const En=new ue,An=new he,Ln=new ne,Rn=new Nt,Cn=new Nt,Pn=new Nt,In=new Nt,Dn=new Nt,Nn=new Nt,zn=new Nt,Bn=new Nt,Fn=new Nt,On=new yt,Un=new yt,Hn=new yt,Gn=new Nt,kn=new Nt;class Vn extends Be{constructor(t=new Tn,e=new rn){super(),this.type="Mesh",this.geometry=t,this.material=e,this.updateMorphTargets()}copy(t){return super.copy(t),void 0!==t.morphTargetInfluences&&(this.morphTargetInfluences=t.morphTargetInfluences.slice()),void 0!==t.morphTargetDictionary&&(this.morphTargetDictionary=Object.assign({},t.morphTargetDictionary)),this.material=t.material,this.geometry=t.geometry,this}updateMorphTargets(){const t=this.geometry;if(t.isBufferGeometry){const e=t.morphAttributes,n=Object.keys(e);if(n.length>0){const t=e[n[0]];if(void 0!==t){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,n=t.length;e<n;e++){const n=t[e].name||String(e);this.morphTargetInfluences.push(0),this.morphTargetDictionary[n]=e}}}}else{const e=t.morphTargets;void 0!==e&&e.length>0&&("")}}raycast(t,e){const n=this.geometry,i=this.material,r=this.matrixWorld;if(void 0===i)return;if(null===n.boundingSphere&&n.computeBoundingSphere(),Ln.copy(n.boundingSphere),Ln.applyMatrix4(r),!1===t.ray.intersectsSphere(Ln))return;if(En.copy(r).invert(),An.copy(t.ray).applyMatrix4(En),null!==n.boundingBox&&!1===An.intersectsBox(n.boundingBox))return;let s;if(n.isBufferGeometry){const r=n.index,a=n.attributes.position,o=n.morphAttributes.position,l=n.morphTargetsRelative,c=n.attributes.uv,h=n.attributes.uv2,u=n.groups,d=n.drawRange;if(null!==r)if(Array.isArray(i))for(let n=0,p=u.length;n<p;n++){const p=u[n],m=i[p.materialIndex];for(let n=Math.max(p.start,d.start),i=Math.min(r.count,Math.min(p.start+p.count,d.start+d.count));n<i;n+=3){const i=r.getX(n),u=r.getX(n+1),d=r.getX(n+2);s=Wn(this,m,t,An,a,o,l,c,h,i,u,d),s&&(s.faceIndex=Math.floor(n/3),s.face.materialIndex=p.materialIndex,e.push(s))}}else{for(let n=Math.max(0,d.start),u=Math.min(r.count,d.start+d.count);n<u;n+=3){const u=r.getX(n),d=r.getX(n+1),p=r.getX(n+2);s=Wn(this,i,t,An,a,o,l,c,h,u,d,p),s&&(s.faceIndex=Math.floor(n/3),e.push(s))}}else if(void 0!==a)if(Array.isArray(i))for(let n=0,r=u.length;n<r;n++){const r=u[n],p=i[r.materialIndex];for(let n=Math.max(r.start,d.start),i=Math.min(a.count,Math.min(r.start+r.count,d.start+d.count));n<i;n+=3){s=Wn(this,p,t,An,a,o,l,c,h,n,n+1,n+2),s&&(s.faceIndex=Math.floor(n/3),s.face.materialIndex=r.materialIndex,e.push(s))}}else{for(let n=Math.max(0,d.start),r=Math.min(a.count,d.start+d.count);n<r;n+=3){s=Wn(this,i,t,An,a,o,l,c,h,n,n+1,n+2),s&&(s.faceIndex=Math.floor(n/3),e.push(s))}}}else n.isGeometry&&("")}}function Wn(t,e,n,i,r,s,a,o,l,c,h,u){Rn.fromBufferAttribute(r,c),Cn.fromBufferAttribute(r,h),Pn.fromBufferAttribute(r,u);const d=t.morphTargetInfluences;if(s&&d){zn.set(0,0,0),Bn.set(0,0,0),Fn.set(0,0,0);for(let t=0,e=s.length;t<e;t++){const e=d[t],n=s[t];0!==e&&(In.fromBufferAttribute(n,c),Dn.fromBufferAttribute(n,h),Nn.fromBufferAttribute(n,u),a?(zn.addScaledVector(In,e),Bn.addScaledVector(Dn,e),Fn.addScaledVector(Nn,e)):(zn.addScaledVector(In.sub(Rn),e),Bn.addScaledVector(Dn.sub(Cn),e),Fn.addScaledVector(Nn.sub(Pn),e)))}Rn.add(zn),Cn.add(Bn),Pn.add(Fn)}t.isSkinnedMesh&&(t.boneTransform(c,Rn),t.boneTransform(h,Cn),t.boneTransform(u,Pn));const p=function(t,e,n,i,r,s,a,o){let l;if(l=1===e.side?i.intersectTriangle(a,s,r,!0,o):i.intersectTriangle(r,s,a,2!==e.side,o),null===l)return null;kn.copy(o),kn.applyMatrix4(t.matrixWorld);const c=n.ray.origin.distanceTo(kn);return c<n.near||c>n.far?null:{distance:c,point:kn.clone(),object:t}}(t,e,n,i,Rn,Cn,Pn,Gn);if(p){o&&(On.fromBufferAttribute(o,c),Un.fromBufferAttribute(o,h),Hn.fromBufferAttribute(o,u),p.uv=Xe.getUV(Gn,Rn,Cn,Pn,On,Un,Hn,new yt)),l&&(On.fromBufferAttribute(l,c),Un.fromBufferAttribute(l,h),Hn.fromBufferAttribute(l,u),p.uv2=Xe.getUV(Gn,Rn,Cn,Pn,On,Un,Hn,new yt));const t={a:c,b:h,c:u,normal:new Nt,materialIndex:0};Xe.getNormal(Rn,Cn,Pn,t.normal),p.face=t}return p}Vn.prototype.isMesh=!0;class jn extends Tn{constructor(t=1,e=1,n=1,i=1,r=1,s=1){super(),this.type="BoxGeometry",this.parameters={width:t,height:e,depth:n,widthSegments:i,heightSegments:r,depthSegments:s};const a=this;i=Math.floor(i),r=Math.floor(r),s=Math.floor(s);const o=[],l=[],c=[],h=[];let u=0,d=0;function p(t,e,n,i,r,s,p,m,f,g,v){const y=s/f,x=p/g,_=s/2,b=p/2,M=m/2,w=f+1,S=g+1;let T=0,E=0;const A=new Nt;for(let s=0;s<S;s++){const a=s*x-b;for(let o=0;o<w;o++){const u=o*y-_;A[t]=u*i,A[e]=a*r,A[n]=M,l.push(A.x,A.y,A.z),A[t]=0,A[e]=0,A[n]=m>0?1:-1,c.push(A.x,A.y,A.z),h.push(o/f),h.push(1-s/g),T+=1}}for(let t=0;t<g;t++)for(let e=0;e<f;e++){const n=u+e+w*t,i=u+e+w*(t+1),r=u+(e+1)+w*(t+1),s=u+(e+1)+w*t;o.push(n,i,s),o.push(i,r,s),E+=6}a.addGroup(d,E,v),d+=E,u+=T}p("z","y","x",-1,-1,n,e,t,s,r,0),p("z","y","x",1,-1,n,e,-t,s,r,1),p("x","z","y",1,1,t,n,e,i,s,2),p("x","z","y",1,-1,t,n,-e,i,s,3),p("x","y","z",1,-1,t,e,n,i,r,4),p("x","y","z",-1,-1,t,e,-n,i,r,5),this.setIndex(o),this.setAttribute("position",new gn(l,3)),this.setAttribute("normal",new gn(c,3)),this.setAttribute("uv",new gn(h,2))}static fromJSON(t){return new jn(t.width,t.height,t.depth,t.widthSegments,t.heightSegments,t.depthSegments)}}function qn(t){const e={};for(const n in t){e[n]={};for(const i in t[n]){const r=t[n][i];r&&(r.isColor||r.isMatrix3||r.isMatrix4||r.isVector2||r.isVector3||r.isVector4||r.isTexture||r.isQuaternion)?e[n][i]=r.clone():Array.isArray(r)?e[n][i]=r.slice():e[n][i]=r}}return e}function Xn(t){const e={};for(let n=0;n<t.length;n++){const i=qn(t[n]);for(const t in i)e[t]=i[t]}return e}const Yn={clone:qn,merge:Xn};class Jn extends Je{constructor(t){super(),this.type="ShaderMaterial",this.defines={},this.uniforms={},this.vertexShader="void main() {\n\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}",this.fragmentShader="void main() {\n\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\n}",this.linewidth=1,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.lights=!1,this.clipping=!1,this.extensions={derivatives:!1,fragDepth:!1,drawBuffers:!1,shaderTextureLOD:!1},this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv2:[0,0]},this.index0AttributeName=void 0,this.uniformsNeedUpdate=!1,this.glslVersion=null,void 0!==t&&(void 0!==t.attributes&&(""),this.setValues(t))}copy(t){return super.copy(t),this.fragmentShader=t.fragmentShader,this.vertexShader=t.vertexShader,this.uniforms=qn(t.uniforms),this.defines=Object.assign({},t.defines),this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.lights=t.lights,this.clipping=t.clipping,this.extensions=Object.assign({},t.extensions),this.glslVersion=t.glslVersion,this}toJSON(t){const e=super.toJSON(t);e.glslVersion=this.glslVersion,e.uniforms={};for(const n in this.uniforms){const i=this.uniforms[n].value;i&&i.isTexture?e.uniforms[n]={type:"t",value:i.toJSON(t).uuid}:i&&i.isColor?e.uniforms[n]={type:"c",value:i.getHex()}:i&&i.isVector2?e.uniforms[n]={type:"v2",value:i.toArray()}:i&&i.isVector3?e.uniforms[n]={type:"v3",value:i.toArray()}:i&&i.isVector4?e.uniforms[n]={type:"v4",value:i.toArray()}:i&&i.isMatrix3?e.uniforms[n]={type:"m3",value:i.toArray()}:i&&i.isMatrix4?e.uniforms[n]={type:"m4",value:i.toArray()}:e.uniforms[n]={value:i}}Object.keys(this.defines).length>0&&(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader;const n={};for(const t in this.extensions)!0===this.extensions[t]&&(n[t]=!0);return Object.keys(n).length>0&&(e.extensions=n),e}}Jn.prototype.isShaderMaterial=!0;class Zn extends Be{constructor(){super(),this.type="Camera",this.matrixWorldInverse=new ue,this.projectionMatrix=new ue,this.projectionMatrixInverse=new ue}copy(t,e){return super.copy(t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this}getWorldDirection(t){this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(-e[8],-e[9],-e[10]).normalize()}updateMatrixWorld(t){super.updateMatrixWorld(t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(t,e){super.updateWorldMatrix(t,e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return(new this.constructor).copy(this)}}Zn.prototype.isCamera=!0;class Qn extends Zn{constructor(t=50,e=1,n=.1,i=2e3){super(),this.type="PerspectiveCamera",this.fov=t,this.zoom=1,this.near=n,this.far=i,this.focus=10,this.aspect=e,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.fov=t.fov,this.zoom=t.zoom,this.near=t.near,this.far=t.far,this.focus=t.focus,this.aspect=t.aspect,this.view=null===t.view?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this}setFocalLength(t){const e=.5*this.getFilmHeight()/t;this.fov=2*ot*Math.atan(e),this.updateProjectionMatrix()}getFocalLength(){const t=Math.tan(.5*at*this.fov);return.5*this.getFilmHeight()/t}getEffectiveFOV(){return 2*ot*Math.atan(Math.tan(.5*at*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(t,e,n,i,r,s){this.aspect=t/e,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=this.near;let e=t*Math.tan(.5*at*this.fov)/this.zoom,n=2*e,i=this.aspect*n,r=-.5*i;const s=this.view;if(null!==this.view&&this.view.enabled){const t=s.fullWidth,a=s.fullHeight;r+=s.offsetX*i/t,e-=s.offsetY*n/a,i*=s.width/t,n*=s.height/a}const a=this.filmOffset;0!==a&&(r+=t*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(r,r+i,e,e-n,t,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.fov=this.fov,e.object.zoom=this.zoom,e.object.near=this.near,e.object.far=this.far,e.object.focus=this.focus,e.object.aspect=this.aspect,null!==this.view&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}}Qn.prototype.isPerspectiveCamera=!0;const Kn=90;class $n extends Be{constructor(t,e,n){if(super(),this.type="CubeCamera",!0!==n.isWebGLCubeRenderTarget)return void ("");this.renderTarget=n;const i=new Qn(Kn,1,t,e);i.layers=this.layers,i.up.set(0,-1,0),i.lookAt(new Nt(1,0,0)),this.add(i);const r=new Qn(Kn,1,t,e);r.layers=this.layers,r.up.set(0,-1,0),r.lookAt(new Nt(-1,0,0)),this.add(r);const s=new Qn(Kn,1,t,e);s.layers=this.layers,s.up.set(0,0,1),s.lookAt(new Nt(0,1,0)),this.add(s);const a=new Qn(Kn,1,t,e);a.layers=this.layers,a.up.set(0,0,-1),a.lookAt(new Nt(0,-1,0)),this.add(a);const o=new Qn(Kn,1,t,e);o.layers=this.layers,o.up.set(0,-1,0),o.lookAt(new Nt(0,0,1)),this.add(o);const l=new Qn(Kn,1,t,e);l.layers=this.layers,l.up.set(0,-1,0),l.lookAt(new Nt(0,0,-1)),this.add(l)}update(t,e){null===this.parent&&this.updateMatrixWorld();const n=this.renderTarget,[i,r,s,a,o,l]=this.children,c=t.xr.enabled,h=t.getRenderTarget();t.xr.enabled=!1;const u=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,t.setRenderTarget(n,0),t.render(e,i),t.setRenderTarget(n,1),t.render(e,r),t.setRenderTarget(n,2),t.render(e,s),t.setRenderTarget(n,3),t.render(e,a),t.setRenderTarget(n,4),t.render(e,o),n.texture.generateMipmaps=u,t.setRenderTarget(n,5),t.render(e,l),t.setRenderTarget(h),t.xr.enabled=c}}class ti extends At{constructor(t,e,n,i,s,a,o,l,c,h){super(t=void 0!==t?t:[],e=void 0!==e?e:r,n,i,s,a,o,l,c,h),this.flipY=!1}get images(){return this.image}set images(t){this.image=t}}ti.prototype.isCubeTexture=!0;class ei extends Ct{constructor(t,e,n){Number.isInteger(e)&&((""),e=n),super(t,t,e),e=e||{},this.texture=new ti(void 0,e.mapping,e.wrapS,e.wrapT,e.magFilter,e.minFilter,e.format,e.type,e.anisotropy,e.encoding),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=void 0!==e.generateMipmaps&&e.generateMipmaps,this.texture.minFilter=void 0!==e.minFilter?e.minFilter:g,this.texture._needsFlipEnvMap=!1}fromEquirectangularTexture(t,e){this.texture.type=e.type,this.texture.format=E,this.texture.encoding=e.encoding,this.texture.generateMipmaps=e.generateMipmaps,this.texture.minFilter=e.minFilter,this.texture.magFilter=e.magFilter;const n={uniforms:{tEquirect:{value:null}},vertexShader:"\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include <begin_vertex>\n\t\t\t\t\t#include <project_vertex>\n\n\t\t\t\t}\n\t\t\t",fragmentShader:"\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include <common>\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t"},i=new jn(5,5,5),r=new Jn({name:"CubemapFromEquirect",uniforms:qn(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:1,blending:0});r.uniforms.tEquirect.value=e;const s=new Vn(i,r),a=e.minFilter;e.minFilter===y&&(e.minFilter=g);return new $n(1,10,this).update(t,s),e.minFilter=a,s.geometry.dispose(),s.material.dispose(),this}clear(t,e,n,i){const r=t.getRenderTarget();for(let r=0;r<6;r++)t.setRenderTarget(this,r),t.clear(e,n,i);t.setRenderTarget(r)}}ei.prototype.isWebGLCubeRenderTarget=!0;const ni=new Nt,ii=new Nt,ri=new xt;class si{constructor(t=new Nt(1,0,0),e=0){this.normal=t,this.constant=e}set(t,e){return this.normal.copy(t),this.constant=e,this}setComponents(t,e,n,i){return this.normal.set(t,e,n),this.constant=i,this}setFromNormalAndCoplanarPoint(t,e){return this.normal.copy(t),this.constant=-e.dot(this.normal),this}setFromCoplanarPoints(t,e,n){const i=ni.subVectors(n,e).cross(ii.subVectors(t,e)).normalize();return this.setFromNormalAndCoplanarPoint(i,t),this}copy(t){return this.normal.copy(t.normal),this.constant=t.constant,this}normalize(){const t=1/this.normal.length();return this.normal.multiplyScalar(t),this.constant*=t,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(t){return this.normal.dot(t)+this.constant}distanceToSphere(t){return this.distanceToPoint(t.center)-t.radius}projectPoint(t,e){return e.copy(this.normal).multiplyScalar(-this.distanceToPoint(t)).add(t)}intersectLine(t,e){const n=t.delta(ni),i=this.normal.dot(n);if(0===i)return 0===this.distanceToPoint(t.start)?e.copy(t.start):null;const r=-(t.start.dot(this.normal)+this.constant)/i;return r<0||r>1?null:e.copy(n).multiplyScalar(r).add(t.start)}intersectsLine(t){const e=this.distanceToPoint(t.start),n=this.distanceToPoint(t.end);return e<0&&n>0||n<0&&e>0}intersectsBox(t){return t.intersectsPlane(this)}intersectsSphere(t){return t.intersectsPlane(this)}coplanarPoint(t){return t.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(t,e){const n=e||ri.getNormalMatrix(t),i=this.coplanarPoint(ni).applyMatrix4(t),r=this.normal.applyMatrix3(n).normalize();return this.constant=-i.dot(r),this}translate(t){return this.constant-=t.dot(this.normal),this}equals(t){return t.normal.equals(this.normal)&&t.constant===this.constant}clone(){return(new this.constructor).copy(this)}}si.prototype.isPlane=!0;const ai=new ne,oi=new Nt;class li{constructor(t=new si,e=new si,n=new si,i=new si,r=new si,s=new si){this.planes=[t,e,n,i,r,s]}set(t,e,n,i,r,s){const a=this.planes;return a[0].copy(t),a[1].copy(e),a[2].copy(n),a[3].copy(i),a[4].copy(r),a[5].copy(s),this}copy(t){const e=this.planes;for(let n=0;n<6;n++)e[n].copy(t.planes[n]);return this}setFromProjectionMatrix(t){const e=this.planes,n=t.elements,i=n[0],r=n[1],s=n[2],a=n[3],o=n[4],l=n[5],c=n[6],h=n[7],u=n[8],d=n[9],p=n[10],m=n[11],f=n[12],g=n[13],v=n[14],y=n[15];return e[0].setComponents(a-i,h-o,m-u,y-f).normalize(),e[1].setComponents(a+i,h+o,m+u,y+f).normalize(),e[2].setComponents(a+r,h+l,m+d,y+g).normalize(),e[3].setComponents(a-r,h-l,m-d,y-g).normalize(),e[4].setComponents(a-s,h-c,m-p,y-v).normalize(),e[5].setComponents(a+s,h+c,m+p,y+v).normalize(),this}intersectsObject(t){const e=t.geometry;return null===e.boundingSphere&&e.computeBoundingSphere(),ai.copy(e.boundingSphere).applyMatrix4(t.matrixWorld),this.intersectsSphere(ai)}intersectsSprite(t){return ai.center.set(0,0,0),ai.radius=.7071067811865476,ai.applyMatrix4(t.matrixWorld),this.intersectsSphere(ai)}intersectsSphere(t){const e=this.planes,n=t.center,i=-t.radius;for(let t=0;t<6;t++){if(e[t].distanceToPoint(n)<i)return!1}return!0}intersectsBox(t){const e=this.planes;for(let n=0;n<6;n++){const i=e[n];if(oi.x=i.normal.x>0?t.max.x:t.min.x,oi.y=i.normal.y>0?t.max.y:t.min.y,oi.z=i.normal.z>0?t.max.z:t.min.z,i.distanceToPoint(oi)<0)return!1}return!0}containsPoint(t){const e=this.planes;for(let n=0;n<6;n++)if(e[n].distanceToPoint(t)<0)return!1;return!0}clone(){return(new this.constructor).copy(this)}}function ci(){let t=null,e=!1,n=null,i=null;function r(e,s){n(e,s),i=t.requestAnimationFrame(r)}return{start:function(){!0!==e&&null!==n&&(i=t.requestAnimationFrame(r),e=!0)},stop:function(){t.cancelAnimationFrame(i),e=!1},setAnimationLoop:function(t){n=t},setContext:function(e){t=e}}}function hi(t,e){const n=e.isWebGL2,i=new WeakMap;return{get:function(t){return t.isInterleavedBufferAttribute&&(t=t.data),i.get(t)},remove:function(e){e.isInterleavedBufferAttribute&&(e=e.data);const n=i.get(e);n&&(t.deleteBuffer(n.buffer),i.delete(e))},update:function(e,r){if(e.isGLBufferAttribute){const t=i.get(e);return void((!t||t.version<e.version)&&i.set(e,{buffer:e.buffer,type:e.type,bytesPerElement:e.elementSize,version:e.version}))}e.isInterleavedBufferAttribute&&(e=e.data);const s=i.get(e);void 0===s?i.set(e,function(e,i){const r=e.array,s=e.usage,a=t.createBuffer();t.bindBuffer(i,a),t.bufferData(i,r,s),e.onUploadCallback();let o=5126;return r instanceof Float32Array?o=5126:r instanceof Float64Array?(""):r instanceof Uint16Array?e.isFloat16BufferAttribute?n?o=5131:(""):o=5123:r instanceof Int16Array?o=5122:r instanceof Uint32Array?o=5125:r instanceof Int32Array?o=5124:r instanceof Int8Array?o=5120:(r instanceof Uint8Array||r instanceof Uint8ClampedArray)&&(o=5121),{buffer:a,type:o,bytesPerElement:r.BYTES_PER_ELEMENT,version:e.version}}(e,r)):s.version<e.version&&(!function(e,i,r){const s=i.array,a=i.updateRange;t.bindBuffer(r,e),-1===a.count?t.bufferSubData(r,0,s):(n?t.bufferSubData(r,a.offset*s.BYTES_PER_ELEMENT,s,a.offset,a.count):t.bufferSubData(r,a.offset*s.BYTES_PER_ELEMENT,s.subarray(a.offset,a.offset+a.count)),a.count=-1)}(s.buffer,e,r),s.version=e.version)}}}class ui extends Tn{constructor(t=1,e=1,n=1,i=1){super(),this.type="PlaneGeometry",this.parameters={width:t,height:e,widthSegments:n,heightSegments:i};const r=t/2,s=e/2,a=Math.floor(n),o=Math.floor(i),l=a+1,c=o+1,h=t/a,u=e/o,d=[],p=[],m=[],f=[];for(let t=0;t<c;t++){const e=t*u-s;for(let n=0;n<l;n++){const i=n*h-r;p.push(i,-e,0),m.push(0,0,1),f.push(n/a),f.push(1-t/o)}}for(let t=0;t<o;t++)for(let e=0;e<a;e++){const n=e+l*t,i=e+l*(t+1),r=e+1+l*(t+1),s=e+1+l*t;d.push(n,i,s),d.push(i,r,s)}this.setIndex(d),this.setAttribute("position",new gn(p,3)),this.setAttribute("normal",new gn(m,3)),this.setAttribute("uv",new gn(f,2))}static fromJSON(t){return new ui(t.width,t.height,t.widthSegments,t.heightSegments)}}const di={alphamap_fragment:"#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, vUv ).g;\n#endif",alphamap_pars_fragment:"#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",alphatest_fragment:"#ifdef USE_ALPHATEST\n\tif ( diffuseColor.a < alphaTest ) discard;\n#endif",alphatest_pars_fragment:"#ifdef USE_ALPHATEST\n\tuniform float alphaTest;\n#endif",aomap_fragment:"#ifdef USE_AOMAP\n\tfloat ambientOcclusion = ( texture2D( aoMap, vUv2 ).r - 1.0 ) * aoMapIntensity + 1.0;\n\treflectedLight.indirectDiffuse *= ambientOcclusion;\n\t#if defined( USE_ENVMAP ) && defined( STANDARD )\n\t\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\t\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.roughness );\n\t#endif\n#endif",aomap_pars_fragment:"#ifdef USE_AOMAP\n\tuniform sampler2D aoMap;\n\tuniform float aoMapIntensity;\n#endif",begin_vertex:"vec3 transformed = vec3( position );",beginnormal_vertex:"vec3 objectNormal = vec3( normal );\n#ifdef USE_TANGENT\n\tvec3 objectTangent = vec3( tangent.xyz );\n#endif",bsdfs:"vec3 BRDF_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n}\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 f0, const in float f90, const in float roughness ) {\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( f0, f90, dotVH );\n\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\tfloat D = D_GGX( alpha, dotNH );\n\treturn F * ( V * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\nfloat G_BlinnPhong_Implicit( ) {\n\treturn 0.25;\n}\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\n\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\n}\nvec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, 1.0, dotVH );\n\tfloat G = G_BlinnPhong_Implicit( );\n\tfloat D = D_BlinnPhong( shininess, dotNH );\n\treturn F * ( G * D );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 / alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenTint, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenTint * ( D * V );\n}\n#endif",bumpmap_pars_fragment:"#ifdef USE_BUMPMAP\n\tuniform sampler2D bumpMap;\n\tuniform float bumpScale;\n\tvec2 dHdxy_fwd() {\n\t\tvec2 dSTdx = dFdx( vUv );\n\t\tvec2 dSTdy = dFdy( vUv );\n\t\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\n\t\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\n\t\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\n\t\treturn vec2( dBx, dBy );\n\t}\n\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {\n\t\tvec3 vSigmaX = vec3( dFdx( surf_pos.x ), dFdx( surf_pos.y ), dFdx( surf_pos.z ) );\n\t\tvec3 vSigmaY = vec3( dFdy( surf_pos.x ), dFdy( surf_pos.y ), dFdy( surf_pos.z ) );\n\t\tvec3 vN = surf_norm;\n\t\tvec3 R1 = cross( vSigmaY, vN );\n\t\tvec3 R2 = cross( vN, vSigmaX );\n\t\tfloat fDet = dot( vSigmaX, R1 ) * faceDirection;\n\t\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n\t\treturn normalize( abs( fDet ) * surf_norm - vGrad );\n\t}\n#endif",clipping_planes_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvec4 plane;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\tplane = clippingPlanes[ i ];\n\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n\t}\n\t#pragma unroll_loop_end\n\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\tbool clipped = true;\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\tif ( clipped ) discard;\n\t#endif\n#endif",clipping_planes_pars_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif",clipping_planes_pars_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif",clipping_planes_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif",color_fragment:"#if defined( USE_COLOR_ALPHA )\n\tdiffuseColor *= vColor;\n#elif defined( USE_COLOR )\n\tdiffuseColor.rgb *= vColor;\n#endif",color_pars_fragment:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR )\n\tvarying vec3 vColor;\n#endif",color_pars_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvarying vec3 vColor;\n#endif",color_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvColor = vec4( 1.0 );\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n\tvColor *= color;\n#endif\n#ifdef USE_INSTANCING_COLOR\n\tvColor.xyz *= instanceColor.xyz;\n#endif",common:"#define PI 3.141592653589793\n#define PI2 6.283185307179586\n#define PI_HALF 1.5707963267948966\n#define RECIPROCAL_PI 0.3183098861837907\n#define RECIPROCAL_PI2 0.15915494309189535\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\nfloat average( const in vec3 color ) { return dot( color, vec3( 0.3333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract( sin( sn ) * c );\n}\n#ifdef HIGH_PRECISION\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n\tfloat precisionSafeLength( vec3 v ) {\n\t\tfloat maxComponent = max3( abs( v ) );\n\t\treturn length( v / maxComponent ) * maxComponent;\n\t}\n#endif\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\nstruct GeometricContext {\n\tvec3 position;\n\tvec3 normal;\n\tvec3 viewDir;\n#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal;\n#endif\n};\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat linearToRelativeLuminance( const in vec3 color ) {\n\tvec3 weights = vec3( 0.2126, 0.7152, 0.0722 );\n\treturn dot( weights, color.rgb );\n}\nbool isPerspectiveMatrix( mat4 m ) {\n\treturn m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\treturn vec2( u, v );\n}",cube_uv_reflection_fragment:"#ifdef ENVMAP_TYPE_CUBE_UV\n\t#define cubeUV_maxMipLevel 8.0\n\t#define cubeUV_minMipLevel 4.0\n\t#define cubeUV_maxTileSize 256.0\n\t#define cubeUV_minTileSize 16.0\n\tfloat getFace( vec3 direction ) {\n\t\tvec3 absDirection = abs( direction );\n\t\tfloat face = - 1.0;\n\t\tif ( absDirection.x > absDirection.z ) {\n\t\t\tif ( absDirection.x > absDirection.y )\n\t\t\t\tface = direction.x > 0.0 ? 0.0 : 3.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t} else {\n\t\t\tif ( absDirection.z > absDirection.y )\n\t\t\t\tface = direction.z > 0.0 ? 2.0 : 5.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t}\n\t\treturn face;\n\t}\n\tvec2 getUV( vec3 direction, float face ) {\n\t\tvec2 uv;\n\t\tif ( face == 0.0 ) {\n\t\t\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 1.0 ) {\n\t\t\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\n\t\t} else if ( face == 2.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\n\t\t} else if ( face == 3.0 ) {\n\t\t\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 4.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\n\t\t} else {\n\t\t\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\n\t\t}\n\t\treturn 0.5 * ( uv + 1.0 );\n\t}\n\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n\t\tfloat face = getFace( direction );\n\t\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n\t\tmipInt = max( mipInt, cubeUV_minMipLevel );\n\t\tfloat faceSize = exp2( mipInt );\n\t\tfloat texelSize = 1.0 / ( 3.0 * cubeUV_maxTileSize );\n\t\tvec2 uv = getUV( direction, face ) * ( faceSize - 1.0 );\n\t\tvec2 f = fract( uv );\n\t\tuv += 0.5 - f;\n\t\tif ( face > 2.0 ) {\n\t\t\tuv.y += faceSize;\n\t\t\tface -= 3.0;\n\t\t}\n\t\tuv.x += face * faceSize;\n\t\tif ( mipInt < cubeUV_maxMipLevel ) {\n\t\t\tuv.y += 2.0 * cubeUV_maxTileSize;\n\t\t}\n\t\tuv.y += filterInt * 2.0 * cubeUV_minTileSize;\n\t\tuv.x += 3.0 * max( 0.0, cubeUV_maxTileSize - 2.0 * faceSize );\n\t\tuv *= texelSize;\n\t\tvec3 tl = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\n\t\tuv.x += texelSize;\n\t\tvec3 tr = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\n\t\tuv.y += texelSize;\n\t\tvec3 br = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\n\t\tuv.x -= texelSize;\n\t\tvec3 bl = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\n\t\tvec3 tm = mix( tl, tr, f.x );\n\t\tvec3 bm = mix( bl, br, f.x );\n\t\treturn mix( tm, bm, f.y );\n\t}\n\t#define r0 1.0\n\t#define v0 0.339\n\t#define m0 - 2.0\n\t#define r1 0.8\n\t#define v1 0.276\n\t#define m1 - 1.0\n\t#define r4 0.4\n\t#define v4 0.046\n\t#define m4 2.0\n\t#define r5 0.305\n\t#define v5 0.016\n\t#define m5 3.0\n\t#define r6 0.21\n\t#define v6 0.0038\n\t#define m6 4.0\n\tfloat roughnessToMip( float roughness ) {\n\t\tfloat mip = 0.0;\n\t\tif ( roughness >= r1 ) {\n\t\t\tmip = ( r0 - roughness ) * ( m1 - m0 ) / ( r0 - r1 ) + m0;\n\t\t} else if ( roughness >= r4 ) {\n\t\t\tmip = ( r1 - roughness ) * ( m4 - m1 ) / ( r1 - r4 ) + m1;\n\t\t} else if ( roughness >= r5 ) {\n\t\t\tmip = ( r4 - roughness ) * ( m5 - m4 ) / ( r4 - r5 ) + m4;\n\t\t} else if ( roughness >= r6 ) {\n\t\t\tmip = ( r5 - roughness ) * ( m6 - m5 ) / ( r5 - r6 ) + m5;\n\t\t} else {\n\t\t\tmip = - 2.0 * log2( 1.16 * roughness );\t\t}\n\t\treturn mip;\n\t}\n\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n\t\tfloat mip = clamp( roughnessToMip( roughness ), m0, cubeUV_maxMipLevel );\n\t\tfloat mipF = fract( mip );\n\t\tfloat mipInt = floor( mip );\n\t\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n\t\tif ( mipF == 0.0 ) {\n\t\t\treturn vec4( color0, 1.0 );\n\t\t} else {\n\t\t\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n\t\t\treturn vec4( mix( color0, color1, mipF ), 1.0 );\n\t\t}\n\t}\n#endif",defaultnormal_vertex:"vec3 transformedNormal = objectNormal;\n#ifdef USE_INSTANCING\n\tmat3 m = mat3( instanceMatrix );\n\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\n\ttransformedNormal = m * transformedNormal;\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif",displacementmap_pars_vertex:"#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif",displacementmap_vertex:"#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vUv ).x * displacementScale + displacementBias );\n#endif",emissivemap_fragment:"#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\n\temissiveColor.rgb = emissiveMapTexelToLinear( emissiveColor ).rgb;\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif",emissivemap_pars_fragment:"#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif",encodings_fragment:"gl_FragColor = linearToOutputTexel( gl_FragColor );",encodings_pars_fragment:"\nvec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 GammaToLinear( in vec4 value, in float gammaFactor ) {\n\treturn vec4( pow( value.rgb, vec3( gammaFactor ) ), value.a );\n}\nvec4 LinearToGamma( in vec4 value, in float gammaFactor ) {\n\treturn vec4( pow( value.rgb, vec3( 1.0 / gammaFactor ) ), value.a );\n}\nvec4 sRGBToLinear( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a );\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\n}\nvec4 RGBEToLinear( in vec4 value ) {\n\treturn vec4( value.rgb * exp2( value.a * 255.0 - 128.0 ), 1.0 );\n}\nvec4 LinearToRGBE( in vec4 value ) {\n\tfloat maxComponent = max( max( value.r, value.g ), value.b );\n\tfloat fExp = clamp( ceil( log2( maxComponent ) ), -128.0, 127.0 );\n\treturn vec4( value.rgb / exp2( fExp ), ( fExp + 128.0 ) / 255.0 );\n}\nvec4 RGBMToLinear( in vec4 value, in float maxRange ) {\n\treturn vec4( value.rgb * value.a * maxRange, 1.0 );\n}\nvec4 LinearToRGBM( in vec4 value, in float maxRange ) {\n\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\n\tfloat M = clamp( maxRGB / maxRange, 0.0, 1.0 );\n\tM = ceil( M * 255.0 ) / 255.0;\n\treturn vec4( value.rgb / ( M * maxRange ), M );\n}\nvec4 RGBDToLinear( in vec4 value, in float maxRange ) {\n\treturn vec4( value.rgb * ( ( maxRange / 255.0 ) / value.a ), 1.0 );\n}\nvec4 LinearToRGBD( in vec4 value, in float maxRange ) {\n\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\n\tfloat D = max( maxRange / maxRGB, 1.0 );\n\tD = clamp( floor( D ) / 255.0, 0.0, 1.0 );\n\treturn vec4( value.rgb * ( D * ( 255.0 / maxRange ) ), D );\n}\nconst mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );\nvec4 LinearToLogLuv( in vec4 value ) {\n\tvec3 Xp_Y_XYZp = cLogLuvM * value.rgb;\n\tXp_Y_XYZp = max( Xp_Y_XYZp, vec3( 1e-6, 1e-6, 1e-6 ) );\n\tvec4 vResult;\n\tvResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;\n\tfloat Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0;\n\tvResult.w = fract( Le );\n\tvResult.z = ( Le - ( floor( vResult.w * 255.0 ) ) / 255.0 ) / 255.0;\n\treturn vResult;\n}\nconst mat3 cLogLuvInverseM = mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 );\nvec4 LogLuvToLinear( in vec4 value ) {\n\tfloat Le = value.z * 255.0 + value.w;\n\tvec3 Xp_Y_XYZp;\n\tXp_Y_XYZp.y = exp2( ( Le - 127.0 ) / 2.0 );\n\tXp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;\n\tXp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;\n\tvec3 vRGB = cLogLuvInverseM * Xp_Y_XYZp.rgb;\n\treturn vec4( max( vRGB, 0.0 ), 1.0 );\n}",envmap_fragment:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t\tenvColor = envMapTexelToLinear( envColor );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 envColor = textureCubeUV( envMap, reflectVec, 0.0 );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif",envmap_common_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\tuniform int maxMipLevel;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif",envmap_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif",envmap_pars_vertex:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) ||defined( PHONG )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif",envmap_physical_pars_fragment:"#if defined( USE_ENVMAP )\n\t#ifdef ENVMAP_MODE_REFRACTION\n\t\tuniform float refractionRatio;\n\t#endif\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#if defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#if defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 reflectVec;\n\t\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\t\treflectVec = reflect( - viewDir, normal );\n\t\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\t#else\n\t\t\t\treflectVec = refract( - viewDir, normal, refractionRatio );\n\t\t\t#endif\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n#endif",envmap_vertex:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif",fog_vertex:"#ifdef USE_FOG\n\tvFogDepth = - mvPosition.z;\n#endif",fog_pars_vertex:"#ifdef USE_FOG\n\tvarying float vFogDepth;\n#endif",fog_fragment:"#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif",fog_pars_fragment:"#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float vFogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif",gradientmap_pars_fragment:"#ifdef USE_GRADIENTMAP\n\tuniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\tfloat dotNL = dot( normal, lightDirection );\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t#ifdef USE_GRADIENTMAP\n\t\treturn texture2D( gradientMap, coord ).rgb;\n\t#else\n\t\treturn ( coord.x < 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 );\n\t#endif\n}",lightmap_fragment:"#ifdef USE_LIGHTMAP\n\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\n\tvec3 lightMapIrradiance = lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tlightMapIrradiance *= PI;\n\t#endif\n\treflectedLight.indirectDiffuse += lightMapIrradiance;\n#endif",lightmap_pars_fragment:"#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif",lights_lambert_vertex:"vec3 diffuse = vec3( 1.0 );\nGeometricContext geometry;\ngeometry.position = mvPosition.xyz;\ngeometry.normal = normalize( transformedNormal );\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( -mvPosition.xyz );\nGeometricContext backGeometry;\nbackGeometry.position = geometry.position;\nbackGeometry.normal = -geometry.normal;\nbackGeometry.viewDir = geometry.viewDir;\nvLightFront = vec3( 0.0 );\nvIndirectFront = vec3( 0.0 );\n#ifdef DOUBLE_SIDED\n\tvLightBack = vec3( 0.0 );\n\tvIndirectBack = vec3( 0.0 );\n#endif\nIncidentLight directLight;\nfloat dotNL;\nvec3 directLightColor_Diffuse;\nvIndirectFront += getAmbientLightIrradiance( ambientLightColor );\nvIndirectFront += getLightProbeIrradiance( lightProbe, geometry.normal );\n#ifdef DOUBLE_SIDED\n\tvIndirectBack += getAmbientLightIrradiance( ambientLightColor );\n\tvIndirectBack += getLightProbeIrradiance( lightProbe, backGeometry.normal );\n#endif\n#if NUM_POINT_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tgetPointLightInfo( pointLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( - dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tgetSpotLightInfo( spotLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( - dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if NUM_DIR_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tgetDirectionalLightInfo( directionalLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( - dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\tvIndirectFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvIndirectBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry.normal );\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif",lights_pars_begin:"uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\nuniform vec3 lightProbe[ 9 ];\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\n\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\treturn irradiance;\n}\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n\t#if defined ( PHYSICALLY_CORRECT_LIGHTS )\n\t\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\t\tif ( cutoffDistance > 0.0 ) {\n\t\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t\t}\n\t\treturn distanceFalloff;\n\t#else\n\t\tif ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\t\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t\t}\n\t\treturn 1.0;\n\t#endif\n}\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\n\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tlight.color = directionalLight.color;\n\t\tlight.direction = directionalLight.direction;\n\t\tlight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointLightInfo( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tlight.color = pointLight.color;\n\t\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\n\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotLightInfo( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat angleCos = dot( light.direction, spotLight.direction );\n\t\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\tif ( spotAttenuation > 0.0 ) {\n\t\t\tfloat lightDistance = length( lVector );\n\t\t\tlight.color = spotLight.color * spotAttenuation;\n\t\t\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t\t} else {\n\t\t\tlight.color = vec3( 0.0 );\n\t\t\tlight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\n\t\tfloat dotNL = dot( normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\treturn irradiance;\n\t}\n#endif",lights_toon_fragment:"ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;",lights_toon_pars_fragment:"varying vec3 vViewPosition;\nstruct ToonMaterial {\n\tvec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Toon\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Toon\n#define Material_LightProbeLOD( material )\t(0)",lights_phong_fragment:"BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;",lights_phong_pars_fragment:"varying vec3 vViewPosition;\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong\n#define Material_LightProbeLOD( material )\t(0)",lights_physical_fragment:"PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\t#ifdef SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularTintFactor = specularTint;\n\t\t#ifdef USE_SPECULARINTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vUv ).a;\n\t\t#endif\n\t\t#ifdef USE_SPECULARTINTMAP\n\t\t\tspecularTintFactor *= specularTintMapTexelToLinear( texture2D( specularTintMap, vUv ) ).rgb;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularTintFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( ior - 1.0 ) / ( ior + 1.0 ) ) * specularTintFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenTint = sheenTint;\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n#endif",lights_physical_pars_fragment:"struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenTint;\n\t\tfloat sheenRoughness;\n\t#endif\n};\nvec3 clearcoatSpecular = vec3( 0.0 );\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\tvec3 FssEss = specularColor * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = specularColor + ( 1.0 - specularColor ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3(\t\t0, 1,\t\t0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecular += ccIrradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\treflectedLight.directSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenTint, material.sheenRoughness );\n\t#endif\n\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularF90, material.roughness );\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\tcomputeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - ( singleScattering + multiScattering ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}",lights_fragment_begin:"\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\n#ifdef USE_CLEARCOAT\n\tgeometry.clearcoatNormal = clearcoatNormal;\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointLightInfo( pointLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotLightInfo( spotLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalLightInfo( directionalLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\tirradiance += getLightProbeIrradiance( lightProbe, geometry.normal );\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif",lights_fragment_maps:"#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\n\t\tvec3 lightMapIrradiance = lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tlightMapIrradiance *= PI;\n\t\t#endif\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometry.normal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\tradiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness );\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif",lights_fragment_end:"#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\n#endif",logdepthbuf_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif",logdepthbuf_pars_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif",logdepthbuf_pars_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t\tvarying float vIsPerspective;\n\t#else\n\t\tuniform float logDepthBufFC;\n\t#endif\n#endif",logdepthbuf_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n\t#else\n\t\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\n\t\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\t\tgl_Position.z *= gl_Position.w;\n\t\t}\n\t#endif\n#endif",map_fragment:"#ifdef USE_MAP\n\tvec4 texelColor = texture2D( map, vUv );\n\ttexelColor = mapTexelToLinear( texelColor );\n\tdiffuseColor *= texelColor;\n#endif",map_pars_fragment:"#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif",map_particle_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n#endif\n#ifdef USE_MAP\n\tvec4 mapTexel = texture2D( map, uv );\n\tdiffuseColor *= mapTexelToLinear( mapTexel );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif",map_particle_pars_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\tuniform mat3 uvTransform;\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",metalnessmap_fragment:"float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif",metalnessmap_pars_fragment:"#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif",morphnormal_vertex:"#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] > 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1, 2 ) * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\n\t\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\n\t\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\n\t\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\n\t#endif\n#endif",morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\n\tuniform float morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\n\t\tuniform sampler2DArray morphTargetsTexture;\n\t\tuniform vec2 morphTargetsTextureSize;\n\t\tvec3 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset, const in int stride ) {\n\t\t\tfloat texelIndex = float( vertexIndex * stride + offset );\n\t\t\tfloat y = floor( texelIndex / morphTargetsTextureSize.x );\n\t\t\tfloat x = texelIndex - y * morphTargetsTextureSize.x;\n\t\t\tvec3 morphUV = vec3( ( x + 0.5 ) / morphTargetsTextureSize.x, y / morphTargetsTextureSize.y, morphTargetIndex );\n\t\t\treturn texture( morphTargetsTexture, morphUV ).xyz;\n\t\t}\n\t#else\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\tuniform float morphTargetInfluences[ 8 ];\n\t\t#else\n\t\t\tuniform float morphTargetInfluences[ 4 ];\n\t\t#endif\n\t#endif\n#endif",morphtarget_vertex:"#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\t#ifndef USE_MORPHNORMALS\n\t\t\t\tif ( morphTargetInfluences[ i ] > 0.0 ) transformed += getMorph( gl_VertexID, i, 0, 1 ) * morphTargetInfluences[ i ];\n\t\t\t#else\n\t\t\t\tif ( morphTargetInfluences[ i ] > 0.0 ) transformed += getMorph( gl_VertexID, i, 0, 2 ) * morphTargetInfluences[ i ];\n\t\t\t#endif\n\t\t}\n\t#else\n\t\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\t\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\t\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\t\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\t\t\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\t\t\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\t\t\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t\t#endif\n\t#endif\n#endif",normal_fragment_begin:"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) );\n\tvec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\t#ifdef USE_TANGENT\n\t\tvec3 tangent = normalize( vTangent );\n\t\tvec3 bitangent = normalize( vBitangent );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\ttangent = tangent * faceDirection;\n\t\t\tbitangent = bitangent * faceDirection;\n\t\t#endif\n\t\t#if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP )\n\t\t\tmat3 vTBN = mat3( tangent, bitangent, normal );\n\t\t#endif\n\t#endif\n#endif\nvec3 geometryNormal = normal;",normal_fragment_maps:"#ifdef OBJECTSPACE_NORMALMAP\n\tnormal = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( TANGENTSPACE_NORMALMAP )\n\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\t#ifdef USE_TANGENT\n\t\tnormal = normalize( vTBN * mapN );\n\t#else\n\t\tnormal = perturbNormal2Arb( - vViewPosition, normal, mapN, faceDirection );\n\t#endif\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif",normal_pars_fragment:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_pars_vertex:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_vertex:"#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif",normalmap_pars_fragment:"#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef OBJECTSPACE_NORMALMAP\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( TANGENTSPACE_NORMALMAP ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\n\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec3 mapN, float faceDirection ) {\n\t\tvec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );\n\t\tvec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );\n\t\tvec2 st0 = dFdx( vUv.st );\n\t\tvec2 st1 = dFdy( vUv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : faceDirection * inversesqrt( det );\n\t\treturn normalize( T * ( mapN.x * scale ) + B * ( mapN.y * scale ) + N * mapN.z );\n\t}\n#endif",clearcoat_normal_fragment_begin:"#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal = geometryNormal;\n#endif",clearcoat_normal_fragment_maps:"#ifdef USE_CLEARCOAT_NORMALMAP\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\t#ifdef USE_TANGENT\n\t\tclearcoatNormal = normalize( vTBN * clearcoatMapN );\n\t#else\n\t\tclearcoatNormal = perturbNormal2Arb( - vViewPosition, clearcoatNormal, clearcoatMapN, faceDirection );\n\t#endif\n#endif",clearcoat_pars_fragment:"#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif",output_fragment:"#ifdef OPAQUE\ndiffuseColor.a = 1.0;\n#endif\n#ifdef USE_TRANSMISSION\ndiffuseColor.a *= transmissionAlpha + 0.1;\n#endif\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );",packing:"vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nvec4 pack2HalfToRGBA( vec2 v ) {\n\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\n\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\n}\nvec2 unpackRGBATo2Half( vec4 v ) {\n\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {\n\treturn linearClipZ * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * invClipZ - far );\n}",premultiplied_alpha_fragment:"#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif",project_vertex:"vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;",dithering_fragment:"#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif",dithering_pars_fragment:"#ifdef DITHERING\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif",roughnessmap_fragment:"float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\n\troughnessFactor *= texelRoughness.g;\n#endif",roughnessmap_pars_fragment:"#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif",shadowmap_pars_fragment:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n\t\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\n\t}\n\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n\t\tfloat occlusion = 1.0;\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\n\t\tfloat hard_shadow = step( compare , distribution.x );\n\t\tif (hard_shadow != 1.0 ) {\n\t\t\tfloat distance = compare - distribution.x ;\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\n\t\t\tfloat softness_probability = variance / (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n\t\t}\n\t\treturn occlusion;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\n\t\tbool inFrustum = all( inFrustumVec );\n\t\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\n\t\tbool frustumTest = all( frustumTestVec );\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tfloat dx2 = dx0 / 2.0;\n\t\t\tfloat dy2 = dy0 / 2.0;\n\t\t\tfloat dx3 = dx1 / 2.0;\n\t\t\tfloat dy3 = dy1 / 2.0;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 17.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx = texelSize.x;\n\t\t\tfloat dy = texelSize.y;\n\t\t\tvec2 uv = shadowCoord.xy;\n\t\t\tvec2 f = fract( uv * shadowMapSize + 0.5 );\n\t\t\tuv -= f * texelSize;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), \n\t\t\t\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t\tf.x ),\n\t\t\t\t\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), \n\t\t\t\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t\tf.x ),\n\t\t\t\t\t f.y )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp += shadowBias;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif",shadowmap_pars_vertex:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 spotShadowMatrix[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n#endif",shadowmap_vertex:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0 || NUM_SPOT_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0\n\t\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\tvec4 shadowWorldPosition;\n\t#endif\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n#endif",shadowmask_pars_fragment:"float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tdirectionalLight = directionalLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tspotLight = spotLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tpointLight = pointLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#endif\n\treturn shadow;\n}",skinbase_vertex:"#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif",skinning_pars_vertex:"#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\t#ifdef BONE_TEXTURE\n\t\tuniform highp sampler2D boneTexture;\n\t\tuniform int boneTextureSize;\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tfloat j = i * 4.0;\n\t\t\tfloat x = mod( j, float( boneTextureSize ) );\n\t\t\tfloat y = floor( j / float( boneTextureSize ) );\n\t\t\tfloat dx = 1.0 / float( boneTextureSize );\n\t\t\tfloat dy = 1.0 / float( boneTextureSize );\n\t\t\ty = dy * ( y + 0.5 );\n\t\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\t\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\t\t\treturn bone;\n\t\t}\n\t#else\n\t\tuniform mat4 boneMatrices[ MAX_BONES ];\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tmat4 bone = boneMatrices[ int(i) ];\n\t\t\treturn bone;\n\t\t}\n\t#endif\n#endif",skinning_vertex:"#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif",skinnormal_vertex:"#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif",specularmap_fragment:"float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif",specularmap_pars_fragment:"#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif",tonemapping_fragment:"#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif",tonemapping_pars_fragment:"#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn toneMappingExposure * color;\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n\treturn a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tconst mat3 ACESInputMat = mat3(\n\t\tvec3( 0.59719, 0.07600, 0.02840 ),\t\tvec3( 0.35458, 0.90834, 0.13383 ),\n\t\tvec3( 0.04823, 0.01566, 0.83777 )\n\t);\n\tconst mat3 ACESOutputMat = mat3(\n\t\tvec3(\t1.60475, -0.10208, -0.00327 ),\t\tvec3( -0.53108,\t1.10813, -0.07276 ),\n\t\tvec3( -0.07367, -0.00605,\t1.07602 )\n\t);\n\tcolor *= toneMappingExposure / 0.6;\n\tcolor = ACESInputMat * color;\n\tcolor = RRTAndODTFit( color );\n\tcolor = ACESOutputMat * color;\n\treturn saturate( color );\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }",transmission_fragment:"#ifdef USE_TRANSMISSION\n\tfloat transmissionAlpha = 1.0;\n\tfloat transmissionFactor = transmission;\n\tfloat thicknessFactor = thickness;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\ttransmissionFactor *= texture2D( transmissionMap, vUv ).r;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tthicknessFactor *= texture2D( thicknessMap, vUv ).g;\n\t#endif\n\tvec3 pos = vWorldPosition;\n\tvec3 v = normalize( cameraPosition - pos );\n\tvec3 n = inverseTransformDirection( normal, viewMatrix );\n\tvec4 transmission = getIBLVolumeRefraction(\n\t\tn, v, roughnessFactor, material.diffuseColor, material.specularColor, material.specularF90,\n\t\tpos, modelMatrix, viewMatrix, projectionMatrix, ior, thicknessFactor,\n\t\tattenuationTint, attenuationDistance );\n\ttotalDiffuse = mix( totalDiffuse, transmission.rgb, transmissionFactor );\n\ttransmissionAlpha = mix( transmissionAlpha, transmission.a, transmissionFactor );\n#endif",transmission_pars_fragment:"#ifdef USE_TRANSMISSION\n\tuniform float transmission;\n\tuniform float thickness;\n\tuniform float attenuationDistance;\n\tuniform vec3 attenuationTint;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tuniform sampler2D transmissionMap;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tuniform sampler2D thicknessMap;\n\t#endif\n\tuniform vec2 transmissionSamplerSize;\n\tuniform sampler2D transmissionSamplerMap;\n\tuniform mat4 modelMatrix;\n\tuniform mat4 projectionMatrix;\n\tvarying vec3 vWorldPosition;\n\tvec3 getVolumeTransmissionRay( vec3 n, vec3 v, float thickness, float ior, mat4 modelMatrix ) {\n\t\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n\t\tvec3 modelScale;\n\t\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n\t\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n\t\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n\t\treturn normalize( refractionVector ) * thickness * modelScale;\n\t}\n\tfloat applyIorToRoughness( float roughness, float ior ) {\n\t\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n\t}\n\tvec4 getTransmissionSample( vec2 fragCoord, float roughness, float ior ) {\n\t\tfloat framebufferLod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\treturn texture2DLodEXT( transmissionSamplerMap, fragCoord.xy, framebufferLod );\n\t\t#else\n\t\t\treturn texture2D( transmissionSamplerMap, fragCoord.xy, framebufferLod );\n\t\t#endif\n\t}\n\tvec3 applyVolumeAttenuation( vec3 radiance, float transmissionDistance, vec3 attenuationColor, float attenuationDistance ) {\n\t\tif ( attenuationDistance == 0.0 ) {\n\t\t\treturn radiance;\n\t\t} else {\n\t\t\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n\t\t\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\t\t\treturn transmittance * radiance;\n\t\t}\n\t}\n\tvec4 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 diffuseColor, vec3 specularColor, float specularF90,\n\t\tvec3 position, mat4 modelMatrix, mat4 viewMatrix, mat4 projMatrix, float ior, float thickness,\n\t\tvec3 attenuationColor, float attenuationDistance ) {\n\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\trefractionCoords += 1.0;\n\t\trefractionCoords /= 2.0;\n\t\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n\t\tvec3 attenuatedColor = applyVolumeAttenuation( transmittedLight.rgb, length( transmissionRay ), attenuationColor, attenuationDistance );\n\t\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n\t\treturn vec4( ( 1.0 - F ) * attenuatedColor * diffuseColor, transmittedLight.a );\n\t}\n#endif",uv_pars_fragment:"#if ( defined( USE_UV ) && ! defined( UVS_VERTEX_ONLY ) )\n\tvarying vec2 vUv;\n#endif",uv_pars_vertex:"#ifdef USE_UV\n\t#ifdef UVS_VERTEX_ONLY\n\t\tvec2 vUv;\n\t#else\n\t\tvarying vec2 vUv;\n\t#endif\n\tuniform mat3 uvTransform;\n#endif",uv_vertex:"#ifdef USE_UV\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n#endif",uv2_pars_fragment:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvarying vec2 vUv2;\n#endif",uv2_pars_vertex:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tattribute vec2 uv2;\n\tvarying vec2 vUv2;\n\tuniform mat3 uv2Transform;\n#endif",uv2_vertex:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvUv2 = ( uv2Transform * vec3( uv2, 1 ) ).xy;\n#endif",worldpos_vertex:"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION )\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif",background_vert:"varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\tgl_Position = vec4( position.xy, 1.0, 1.0 );\n}",background_frag:"uniform sampler2D t2D;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 texColor = texture2D( t2D, vUv );\n\tgl_FragColor = mapTexelToLinear( texColor );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n}",cube_vert:"varying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n\tgl_Position.z = gl_Position.w;\n}",cube_frag:"#include <envmap_common_pars_fragment>\nuniform float opacity;\nvarying vec3 vWorldDirection;\n#include <cube_uv_reflection_fragment>\nvoid main() {\n\tvec3 vReflect = vWorldDirection;\n\t#include <envmap_fragment>\n\tgl_FragColor = envColor;\n\tgl_FragColor.a *= opacity;\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n}",depth_vert:"#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include <uv_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvHighPrecisionZW = gl_Position.zw;\n}",depth_frag:"#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <logdepthbuf_fragment>\n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\t#endif\n}",distanceRGBA_vert:"#define DISTANCE\nvarying vec3 vWorldPosition;\n#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <worldpos_vertex>\n\t#include <clipping_planes_vertex>\n\tvWorldPosition = worldPosition.xyz;\n}",distanceRGBA_frag:"#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main () {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}",equirect_vert:"varying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n}",equirect_frag:"uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tvec4 texColor = texture2D( tEquirect, sampleUV );\n\tgl_FragColor = mapTexelToLinear( texColor );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n}",linedashed_vert:"uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include <common>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include <color_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n}",linedashed_frag:"uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include <common>\n#include <color_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <color_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\t#include <output_fragment>\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n}",meshbasic_vert:"#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinbase_vertex>\n\t\t#include <skinnormal_vertex>\n\t\t#include <defaultnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <fog_vertex>\n}",meshbasic_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <cube_uv_reflection_fragment>\n#include <fog_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\n\t\treflectedLight.indirectDiffuse += lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include <aomap_fragment>\n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include <envmap_fragment>\n\t#include <output_fragment>\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",meshlambert_vert:"#define LAMBERT\nvarying vec3 vLightFront;\nvarying vec3 vIndirectFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n\tvarying vec3 vIndirectBack;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <envmap_pars_vertex>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <lights_lambert_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",meshlambert_frag:"uniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\nvarying vec3 vLightFront;\nvarying vec3 vIndirectFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n\tvarying vec3 vIndirectBack;\n#endif\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <cube_uv_reflection_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <fog_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <shadowmask_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\t#include <emissivemap_fragment>\n\t#ifdef DOUBLE_SIDED\n\t\treflectedLight.indirectDiffuse += ( gl_FrontFacing ) ? vIndirectFront : vIndirectBack;\n\t#else\n\t\treflectedLight.indirectDiffuse += vIndirectFront;\n\t#endif\n\t#include <lightmap_fragment>\n\treflectedLight.indirectDiffuse *= BRDF_Lambert( diffuseColor.rgb );\n\t#ifdef DOUBLE_SIDED\n\t\treflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;\n\t#else\n\t\treflectedLight.directDiffuse = vLightFront;\n\t#endif\n\treflectedLight.directDiffuse *= BRDF_Lambert( diffuseColor.rgb ) * getShadowMask();\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include <envmap_fragment>\n\t#include <output_fragment>\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",meshmatcap_vert:"#define MATCAP\nvarying vec3 vViewPosition;\n#include <common>\n#include <uv_pars_vertex>\n#include <color_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <fog_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n\tvViewPosition = - mvPosition.xyz;\n}",meshmatcap_frag:"#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#include <common>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <fog_pars_fragment>\n#include <normal_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\tvec3 viewDir = normalize( vViewPosition );\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y = cross( viewDir, x );\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\t#ifdef USE_MATCAP\n\t\tvec4 matcapColor = texture2D( matcap, uv );\n\t\tmatcapColor = matcapTexelToLinear( matcapColor );\n\t#else\n\t\tvec4 matcapColor = vec4( 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\t#include <output_fragment>\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",meshnormal_vert:"#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}",meshnormal_frag:"#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#include <packing>\n#include <uv_pars_fragment>\n#include <normal_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\t#include <logdepthbuf_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\n}",meshphong_vert:"#define PHONG\nvarying vec3 vViewPosition;\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",meshphong_frag:"#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <cube_uv_reflection_fragment>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <normal_pars_fragment>\n#include <lights_phong_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_phong_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include <envmap_fragment>\n\t#include <output_fragment>\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",meshphysical_vert:"#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n\tvarying vec3 vWorldPosition;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition.xyz;\n#endif\n}",meshphysical_frag:"#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularTint;\n\t#ifdef USE_SPECULARINTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n\t#ifdef USE_SPECULARTINTMAP\n\t\tuniform sampler2D specularTintMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenTint;\n\tuniform float sheenRoughness;\n#endif\nvarying vec3 vViewPosition;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <bsdfs>\n#include <cube_uv_reflection_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_physical_pars_fragment>\n#include <fog_pars_fragment>\n#include <lights_pars_begin>\n#include <normal_pars_fragment>\n#include <lights_physical_pars_fragment>\n#include <transmission_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <clearcoat_pars_fragment>\n#include <roughnessmap_pars_fragment>\n#include <metalnessmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <roughnessmap_fragment>\n\t#include <metalnessmap_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <clearcoat_normal_fragment_begin>\n\t#include <clearcoat_normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_physical_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include <transmission_fragment>\n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - clearcoat * Fcc ) + clearcoatSpecular * clearcoat;\n\t#endif\n\t#include <output_fragment>\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",meshtoon_vert:"#define TOON\nvarying vec3 vViewPosition;\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",meshtoon_frag:"#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <gradientmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <normal_pars_fragment>\n#include <lights_toon_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_toon_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include <output_fragment>\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",points_vert:"uniform float size;\nuniform float scale;\n#include <common>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <color_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <project_vertex>\n\tgl_PointSize = size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n\t#endif\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <fog_vertex>\n}",points_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include <common>\n#include <color_pars_fragment>\n#include <map_particle_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_particle_fragment>\n\t#include <color_fragment>\n\t#include <alphatest_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\t#include <output_fragment>\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n}",shadow_vert:"#include <common>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\nvoid main() {\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <project_vertex>\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",shadow_frag:"uniform vec3 color;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <shadowmap_pars_fragment>\n#include <shadowmask_pars_fragment>\nvoid main() {\n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n}",sprite_vert:"uniform float rotation;\nuniform vec2 center;\n#include <common>\n#include <uv_pars_vertex>\n#include <fog_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n}",sprite_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include <common>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\t#include <output_fragment>\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n}"},pi={common:{diffuse:{value:new nn(16777215)},opacity:{value:1},map:{value:null},uvTransform:{value:new xt},uv2Transform:{value:new xt},alphaMap:{value:null},alphaTest:{value:0}},specularmap:{specularMap:{value:null}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98},maxMipLevel:{value:0}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1}},emissivemap:{emissiveMap:{value:null}},bumpmap:{bumpMap:{value:null},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalScale:{value:new yt(1,1)}},displacementmap:{displacementMap:{value:null},displacementScale:{value:1},displacementBias:{value:0}},roughnessmap:{roughnessMap:{value:null}},metalnessmap:{metalnessMap:{value:null}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new nn(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotShadowMap:{value:[]},spotShadowMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new nn(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new xt}},sprite:{diffuse:{value:new nn(16777215)},opacity:{value:1},center:{value:new yt(.5,.5)},rotation:{value:0},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new xt}}},mi={basic:{uniforms:Xn([pi.common,pi.specularmap,pi.envmap,pi.aomap,pi.lightmap,pi.fog]),vertexShader:di.meshbasic_vert,fragmentShader:di.meshbasic_frag},lambert:{uniforms:Xn([pi.common,pi.specularmap,pi.envmap,pi.aomap,pi.lightmap,pi.emissivemap,pi.fog,pi.lights,{emissive:{value:new nn(0)}}]),vertexShader:di.meshlambert_vert,fragmentShader:di.meshlambert_frag},phong:{uniforms:Xn([pi.common,pi.specularmap,pi.envmap,pi.aomap,pi.lightmap,pi.emissivemap,pi.bumpmap,pi.normalmap,pi.displacementmap,pi.fog,pi.lights,{emissive:{value:new nn(0)},specular:{value:new nn(1118481)},shininess:{value:30}}]),vertexShader:di.meshphong_vert,fragmentShader:di.meshphong_frag},standard:{uniforms:Xn([pi.common,pi.envmap,pi.aomap,pi.lightmap,pi.emissivemap,pi.bumpmap,pi.normalmap,pi.displacementmap,pi.roughnessmap,pi.metalnessmap,pi.fog,pi.lights,{emissive:{value:new nn(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:di.meshphysical_vert,fragmentShader:di.meshphysical_frag},toon:{uniforms:Xn([pi.common,pi.aomap,pi.lightmap,pi.emissivemap,pi.bumpmap,pi.normalmap,pi.displacementmap,pi.gradientmap,pi.fog,pi.lights,{emissive:{value:new nn(0)}}]),vertexShader:di.meshtoon_vert,fragmentShader:di.meshtoon_frag},matcap:{uniforms:Xn([pi.common,pi.bumpmap,pi.normalmap,pi.displacementmap,pi.fog,{matcap:{value:null}}]),vertexShader:di.meshmatcap_vert,fragmentShader:di.meshmatcap_frag},points:{uniforms:Xn([pi.points,pi.fog]),vertexShader:di.points_vert,fragmentShader:di.points_frag},dashed:{uniforms:Xn([pi.common,pi.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:di.linedashed_vert,fragmentShader:di.linedashed_frag},depth:{uniforms:Xn([pi.common,pi.displacementmap]),vertexShader:di.depth_vert,fragmentShader:di.depth_frag},normal:{uniforms:Xn([pi.common,pi.bumpmap,pi.normalmap,pi.displacementmap,{opacity:{value:1}}]),vertexShader:di.meshnormal_vert,fragmentShader:di.meshnormal_frag},sprite:{uniforms:Xn([pi.sprite,pi.fog]),vertexShader:di.sprite_vert,fragmentShader:di.sprite_frag},background:{uniforms:{uvTransform:{value:new xt},t2D:{value:null}},vertexShader:di.background_vert,fragmentShader:di.background_frag},cube:{uniforms:Xn([pi.envmap,{opacity:{value:1}}]),vertexShader:di.cube_vert,fragmentShader:di.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:di.equirect_vert,fragmentShader:di.equirect_frag},distanceRGBA:{uniforms:Xn([pi.common,pi.displacementmap,{referencePosition:{value:new Nt},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:di.distanceRGBA_vert,fragmentShader:di.distanceRGBA_frag},shadow:{uniforms:Xn([pi.lights,pi.fog,{color:{value:new nn(0)},opacity:{value:1}}]),vertexShader:di.shadow_vert,fragmentShader:di.shadow_frag}};function fi(t,e,n,i,r){const s=new nn(0);let a,o,c=0,h=null,u=0,d=null;function p(t,e){n.buffers.color.setClear(t.r,t.g,t.b,e,r)}return{getClearColor:function(){return s},setClearColor:function(t,e=1){s.set(t),c=e,p(s,c)},getClearAlpha:function(){return c},setClearAlpha:function(t){c=t,p(s,c)},render:function(n,r){let m=!1,f=!0===r.isScene?r.background:null;f&&f.isTexture&&(f=e.get(f));const g=t.xr,v=g.getSession&&g.getSession();v&&"additive"===v.environmentBlendMode&&(f=null),null===f?p(s,c):f&&f.isColor&&(p(f,1),m=!0),(t.autoClear||m)&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),f&&(f.isCubeTexture||f.mapping===l)?(void 0===o&&(o=new Vn(new jn(1,1,1),new Jn({name:"BackgroundCubeMaterial",uniforms:qn(mi.cube.uniforms),vertexShader:mi.cube.vertexShader,fragmentShader:mi.cube.fragmentShader,side:1,depthTest:!1,depthWrite:!1,fog:!1})),o.geometry.deleteAttribute("normal"),o.geometry.deleteAttribute("uv"),o.onBeforeRender=function(t,e,n){this.matrixWorld.copyPosition(n.matrixWorld)},Object.defineProperty(o.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),i.update(o)),o.material.uniforms.envMap.value=f,o.material.uniforms.flipEnvMap.value=f.isCubeTexture&&!1===f.isRenderTargetTexture?-1:1,h===f&&u===f.version&&d===t.toneMapping||(o.material.needsUpdate=!0,h=f,u=f.version,d=t.toneMapping),n.unshift(o,o.geometry,o.material,0,0,null)):f&&f.isTexture&&(void 0===a&&(a=new Vn(new ui(2,2),new Jn({name:"BackgroundMaterial",uniforms:qn(mi.background.uniforms),vertexShader:mi.background.vertexShader,fragmentShader:mi.background.fragmentShader,side:0,depthTest:!1,depthWrite:!1,fog:!1})),a.geometry.deleteAttribute("normal"),Object.defineProperty(a.material,"map",{get:function(){return this.uniforms.t2D.value}}),i.update(a)),a.material.uniforms.t2D.value=f,!0===f.matrixAutoUpdate&&f.updateMatrix(),a.material.uniforms.uvTransform.value.copy(f.matrix),h===f&&u===f.version&&d===t.toneMapping||(a.material.needsUpdate=!0,h=f,u=f.version,d=t.toneMapping),n.unshift(a,a.geometry,a.material,0,0,null))}}}function gi(t,e,n,i){const r=t.getParameter(34921),s=i.isWebGL2?null:e.get("OES_vertex_array_object"),a=i.isWebGL2||null!==s,o={},l=d(null);let c=l;function h(e){return i.isWebGL2?t.bindVertexArray(e):s.bindVertexArrayOES(e)}function u(e){return i.isWebGL2?t.deleteVertexArray(e):s.deleteVertexArrayOES(e)}function d(t){const e=[],n=[],i=[];for(let t=0;t<r;t++)e[t]=0,n[t]=0,i[t]=0;return{geometry:null,program:null,wireframe:!1,newAttributes:e,enabledAttributes:n,attributeDivisors:i,object:t,attributes:{},index:null}}function p(){const t=c.newAttributes;for(let e=0,n=t.length;e<n;e++)t[e]=0}function m(t){f(t,0)}function f(n,r){const s=c.newAttributes,a=c.enabledAttributes,o=c.attributeDivisors;if(s[n]=1,0===a[n]&&(t.enableVertexAttribArray(n),a[n]=1),o[n]!==r){(i.isWebGL2?t:e.get("ANGLE_instanced_arrays"))[i.isWebGL2?"vertexAttribDivisor":"vertexAttribDivisorANGLE"](n,r),o[n]=r}}function g(){const e=c.newAttributes,n=c.enabledAttributes;for(let i=0,r=n.length;i<r;i++)n[i]!==e[i]&&(t.disableVertexAttribArray(i),n[i]=0)}function v(e,n,r,s,a,o){!0!==i.isWebGL2||5124!==r&&5125!==r?t.vertexAttribPointer(e,n,r,s,a,o):t.vertexAttribIPointer(e,n,r,a,o)}function y(){x(),c!==l&&(c=l,h(c.object))}function x(){l.geometry=null,l.program=null,l.wireframe=!1}return{setup:function(r,l,u,y,x){let _=!1;if(a){const e=function(e,n,r){const a=!0===r.wireframe;let l=o[e.id];void 0===l&&(l={},o[e.id]=l);let c=l[n.id];void 0===c&&(c={},l[n.id]=c);let h=c[a];void 0===h&&(h=d(i.isWebGL2?t.createVertexArray():s.createVertexArrayOES()),c[a]=h);return h}(y,u,l);c!==e&&(c=e,h(c.object)),_=function(t,e){const n=c.attributes,i=t.attributes;let r=0;for(const t in i){const e=n[t],s=i[t];if(void 0===e)return!0;if(e.attribute!==s)return!0;if(e.data!==s.data)return!0;r++}return c.attributesNum!==r||c.index!==e}(y,x),_&&function(t,e){const n={},i=t.attributes;let r=0;for(const t in i){const e=i[t],s={};s.attribute=e,e.data&&(s.data=e.data),n[t]=s,r++}c.attributes=n,c.attributesNum=r,c.index=e}(y,x)}else{const t=!0===l.wireframe;c.geometry===y.id&&c.program===u.id&&c.wireframe===t||(c.geometry=y.id,c.program=u.id,c.wireframe=t,_=!0)}!0===r.isInstancedMesh&&(_=!0),null!==x&&n.update(x,34963),_&&(!function(r,s,a,o){if(!1===i.isWebGL2&&(r.isInstancedMesh||o.isInstancedBufferGeometry)&&null===e.get("ANGLE_instanced_arrays"))return;p();const l=o.attributes,c=a.getAttributes(),h=s.defaultAttributeValues;for(const e in c){const i=c[e];if(i.location>=0){let s=l[e];if(void 0===s&&("instanceMatrix"===e&&r.instanceMatrix&&(s=r.instanceMatrix),"instanceColor"===e&&r.instanceColor&&(s=r.instanceColor)),void 0!==s){const e=s.normalized,a=s.itemSize,l=n.get(s);if(void 0===l)continue;const c=l.buffer,h=l.type,u=l.bytesPerElement;if(s.isInterleavedBufferAttribute){const n=s.data,l=n.stride,d=s.offset;if(n&&n.isInstancedInterleavedBuffer){for(let t=0;t<i.locationSize;t++)f(i.location+t,n.meshPerAttribute);!0!==r.isInstancedMesh&&void 0===o._maxInstanceCount&&(o._maxInstanceCount=n.meshPerAttribute*n.count)}else for(let t=0;t<i.locationSize;t++)m(i.location+t);t.bindBuffer(34962,c);for(let t=0;t<i.locationSize;t++)v(i.location+t,a/i.locationSize,h,e,l*u,(d+a/i.locationSize*t)*u)}else{if(s.isInstancedBufferAttribute){for(let t=0;t<i.locationSize;t++)f(i.location+t,s.meshPerAttribute);!0!==r.isInstancedMesh&&void 0===o._maxInstanceCount&&(o._maxInstanceCount=s.meshPerAttribute*s.count)}else for(let t=0;t<i.locationSize;t++)m(i.location+t);t.bindBuffer(34962,c);for(let t=0;t<i.locationSize;t++)v(i.location+t,a/i.locationSize,h,e,a*u,a/i.locationSize*t*u)}}else if(void 0!==h){const n=h[e];if(void 0!==n)switch(n.length){case 2:t.vertexAttrib2fv(i.location,n);break;case 3:t.vertexAttrib3fv(i.location,n);break;case 4:t.vertexAttrib4fv(i.location,n);break;default:t.vertexAttrib1fv(i.location,n)}}}}g()}(r,l,u,y),null!==x&&t.bindBuffer(34963,n.get(x).buffer))},reset:y,resetDefaultState:x,dispose:function(){y();for(const t in o){const e=o[t];for(const t in e){const n=e[t];for(const t in n)u(n[t].object),delete n[t];delete e[t]}delete o[t]}},releaseStatesOfGeometry:function(t){if(void 0===o[t.id])return;const e=o[t.id];for(const t in e){const n=e[t];for(const t in n)u(n[t].object),delete n[t];delete e[t]}delete o[t.id]},releaseStatesOfProgram:function(t){for(const e in o){const n=o[e];if(void 0===n[t.id])continue;const i=n[t.id];for(const t in i)u(i[t].object),delete i[t];delete n[t.id]}},initAttributes:p,enableAttribute:m,disableUnusedAttributes:g}}function vi(t,e,n,i){const r=i.isWebGL2;let s;this.setMode=function(t){s=t},this.render=function(e,i){t.drawArrays(s,e,i),n.update(i,s,1)},this.renderInstances=function(i,a,o){if(0===o)return;let l,c;if(r)l=t,c="drawArraysInstanced";else if(l=e.get("ANGLE_instanced_arrays"),c="drawArraysInstancedANGLE",null===l)return void ("");l[c](s,i,a,o),n.update(a,s,o)}}function yi(t,e,n){let i;function r(e){if("highp"===e){if(t.getShaderPrecisionFormat(35633,36338).precision>0&&t.getShaderPrecisionFormat(35632,36338).precision>0)return"highp";e="mediump"}return"mediump"===e&&t.getShaderPrecisionFormat(35633,36337).precision>0&&t.getShaderPrecisionFormat(35632,36337).precision>0?"mediump":"lowp"}const s="undefined"!=typeof WebGL2RenderingContext&&t instanceof WebGL2RenderingContext||"undefined"!=typeof WebGL2ComputeRenderingContext&&t instanceof WebGL2ComputeRenderingContext;let a=void 0!==n.precision?n.precision:"highp";const o=r(a);o!==a&&(("",a,"not supported, using",o,"instead."),a=o);const l=s||e.has("WEBGL_draw_buffers"),c=!0===n.logarithmicDepthBuffer,h=t.getParameter(34930),u=t.getParameter(35660),d=t.getParameter(3379),p=t.getParameter(34076),m=t.getParameter(34921),f=t.getParameter(36347),g=t.getParameter(36348),v=t.getParameter(36349),y=u>0,x=s||e.has("OES_texture_float");return{isWebGL2:s,drawBuffers:l,getMaxAnisotropy:function(){if(void 0!==i)return i;if(!0===e.has("EXT_texture_filter_anisotropic")){const n=e.get("EXT_texture_filter_anisotropic");i=t.getParameter(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else i=0;return i},getMaxPrecision:r,precision:a,logarithmicDepthBuffer:c,maxTextures:h,maxVertexTextures:u,maxTextureSize:d,maxCubemapSize:p,maxAttributes:m,maxVertexUniforms:f,maxVaryings:g,maxFragmentUniforms:v,vertexTextures:y,floatFragmentTextures:x,floatVertexTextures:y&&x,maxSamples:s?t.getParameter(36183):0}}function xi(t){const e=this;let n=null,i=0,r=!1,s=!1;const a=new si,o=new xt,l={value:null,needsUpdate:!1};function c(){l.value!==n&&(l.value=n,l.needsUpdate=i>0),e.numPlanes=i,e.numIntersection=0}function h(t,n,i,r){const s=null!==t?t.length:0;let c=null;if(0!==s){if(c=l.value,!0!==r||null===c){const e=i+4*s,r=n.matrixWorldInverse;o.getNormalMatrix(r),(null===c||c.length<e)&&(c=new Float32Array(e));for(let e=0,n=i;e!==s;++e,n+=4)a.copy(t[e]).applyMatrix4(r,o),a.normal.toArray(c,n),c[n+3]=a.constant}l.value=c,l.needsUpdate=!0}return e.numPlanes=s,e.numIntersection=0,c}this.uniform=l,this.numPlanes=0,this.numIntersection=0,this.init=function(t,e,s){const a=0!==t.length||e||0!==i||r;return r=e,n=h(t,s,0),i=t.length,a},this.beginShadows=function(){s=!0,h(null)},this.endShadows=function(){s=!1,c()},this.setState=function(e,a,o){const u=e.clippingPlanes,d=e.clipIntersection,p=e.clipShadows,m=t.get(e);if(!r||null===u||0===u.length||s&&!p)s?h(null):c();else{const t=s?0:i,e=4*t;let r=m.clippingState||null;l.value=r,r=h(u,a,e,o);for(let t=0;t!==e;++t)r[t]=n[t];m.clippingState=r,this.numIntersection=d?this.numPlanes:0,this.numPlanes+=t}}}function _i(t){let e=new WeakMap;function n(t,e){return e===a?t.mapping=r:e===o&&(t.mapping=s),t}function i(t){const n=t.target;n.removeEventListener("dispose",i);const r=e.get(n);void 0!==r&&(e.delete(n),r.dispose())}return{get:function(r){if(r&&r.isTexture&&!1===r.isRenderTargetTexture){const s=r.mapping;if(s===a||s===o){if(e.has(r)){return n(e.get(r).texture,r.mapping)}{const s=r.image;if(s&&s.height>0){const a=t.getRenderTarget(),o=new ei(s.height/2);return o.fromEquirectangularTexture(t,r),e.set(r,o),t.setRenderTarget(a),r.addEventListener("dispose",i),n(o.texture,r.mapping)}return null}}}return r},dispose:function(){e=new WeakMap}}}mi.physical={uniforms:Xn([mi.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatNormalScale:{value:new yt(1,1)},clearcoatNormalMap:{value:null},sheen:{value:0},sheenTint:{value:new nn(0)},sheenRoughness:{value:0},transmission:{value:0},transmissionMap:{value:null},transmissionSamplerSize:{value:new yt},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},attenuationDistance:{value:0},attenuationTint:{value:new nn(0)},specularIntensity:{value:0},specularIntensityMap:{value:null},specularTint:{value:new nn(1,1,1)},specularTintMap:{value:null}}]),vertexShader:di.meshphysical_vert,fragmentShader:di.meshphysical_frag};class bi extends Zn{constructor(t=-1,e=1,n=1,i=-1,r=.1,s=2e3){super(),this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=t,this.right=e,this.top=n,this.bottom=i,this.near=r,this.far=s,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.left=t.left,this.right=t.right,this.top=t.top,this.bottom=t.bottom,this.near=t.near,this.far=t.far,this.zoom=t.zoom,this.view=null===t.view?null:Object.assign({},t.view),this}setViewOffset(t,e,n,i,r,s){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=(this.right-this.left)/(2*this.zoom),e=(this.top-this.bottom)/(2*this.zoom),n=(this.right+this.left)/2,i=(this.top+this.bottom)/2;let r=n-t,s=n+t,a=i+e,o=i-e;if(null!==this.view&&this.view.enabled){const t=(this.right-this.left)/this.view.fullWidth/this.zoom,e=(this.top-this.bottom)/this.view.fullHeight/this.zoom;r+=t*this.view.offsetX,s=r+t*this.view.width,a-=e*this.view.offsetY,o=a-e*this.view.height}this.projectionMatrix.makeOrthographic(r,s,a,o,this.near,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.zoom=this.zoom,e.object.left=this.left,e.object.right=this.right,e.object.top=this.top,e.object.bottom=this.bottom,e.object.near=this.near,e.object.far=this.far,null!==this.view&&(e.object.view=Object.assign({},this.view)),e}}bi.prototype.isOrthographicCamera=!0;class Mi extends Jn{constructor(t){super(t),this.type="RawShaderMaterial"}}Mi.prototype.isRawShaderMaterial=!0;const wi=Math.pow(2,8),Si=[.125,.215,.35,.446,.526,.582],Ti=5+Si.length,Ei=20,Ai={[X]:0,[Y]:1,[Z]:2,[Q]:3,[K]:4,[$]:5,[J]:6},Li=new bi,{_lodPlanes:Ri,_sizeLods:Ci,_sigmas:Pi}=Ui(),Ii=new nn;let Di=null;const Ni=(1+Math.sqrt(5))/2,zi=1/Ni,Bi=[new Nt(1,1,1),new Nt(-1,1,1),new Nt(1,1,-1),new Nt(-1,1,-1),new Nt(0,Ni,zi),new Nt(0,Ni,-zi),new Nt(zi,0,Ni),new Nt(-zi,0,Ni),new Nt(Ni,zi,0),new Nt(-Ni,zi,0)];class Fi{constructor(t){this._renderer=t,this._pingPongRenderTarget=null,this._blurMaterial=function(t){const e=new Float32Array(t),n=new Nt(0,1,0);return new Mi({name:"SphericalGaussianBlur",defines:{n:t},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:e},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:n},inputEncoding:{value:Ai[3e3]},outputEncoding:{value:Ai[3e3]}},vertexShader:Wi(),fragmentShader:`\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform int samples;\n\t\t\tuniform float weights[ n ];\n\t\t\tuniform bool latitudinal;\n\t\t\tuniform float dTheta;\n\t\t\tuniform float mipInt;\n\t\t\tuniform vec3 poleAxis;\n\n\t\t\t${ji()}\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\t\t\t#include <cube_uv_reflection_fragment>\n\n\t\t\tvec3 getSample( float theta, vec3 axis ) {\n\n\t\t\t\tfloat cosTheta = cos( theta );\n\t\t\t\t// Rodrigues' axis-angle rotation\n\t\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross( axis, vOutputDirection ) * sin( theta )\n\t\t\t\t\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n\n\t\t\t\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n\n\t\t\t\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n\n\t\t\t\t\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n\n\t\t\t\t}\n\n\t\t\t\taxis = normalize( axis );\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n\n\t\t\t\tfor ( int i = 1; i < n; i++ ) {\n\n\t\t\t\t\tif ( i >= samples ) {\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat theta = dTheta * float( i );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n\n\t\t\t\t}\n\n\t\t\t\tgl_FragColor = linearToOutputTexel( gl_FragColor );\n\n\t\t\t}\n\t\t`,blending:0,depthTest:!1,depthWrite:!1})}(Ei),this._equirectShader=null,this._cubemapShader=null,this._compileMaterial(this._blurMaterial)}fromScene(t,e=0,n=.1,i=100){Di=this._renderer.getRenderTarget();const r=this._allocateTargets();return this._sceneToCubeUV(t,n,i,r),e>0&&this._blur(r,0,0,e),this._applyPMREM(r),this._cleanup(r),r}fromEquirectangular(t){return this._fromTexture(t)}fromCubemap(t){return this._fromTexture(t)}compileCubemapShader(){null===this._cubemapShader&&(this._cubemapShader=Vi(),this._compileMaterial(this._cubemapShader))}compileEquirectangularShader(){null===this._equirectShader&&(this._equirectShader=ki(),this._compileMaterial(this._equirectShader))}dispose(){this._blurMaterial.dispose(),null!==this._cubemapShader&&this._cubemapShader.dispose(),null!==this._equirectShader&&this._equirectShader.dispose();for(let t=0;t<Ri.length;t++)Ri[t].dispose()}_cleanup(t){this._pingPongRenderTarget.dispose(),this._renderer.setRenderTarget(Di),t.scissorTest=!1,Gi(t,0,0,t.width,t.height)}_fromTexture(t){Di=this._renderer.getRenderTarget();const e=this._allocateTargets(t);return this._textureToCubeUV(t,e),this._applyPMREM(e),this._cleanup(e),e}_allocateTargets(t){const e={magFilter:p,minFilter:p,generateMipmaps:!1,type:x,format:1023,encoding:Oi(t)?t.encoding:Z,depthBuffer:!1},n=Hi(e);return n.depthBuffer=!t,this._pingPongRenderTarget=Hi(e),n}_compileMaterial(t){const e=new Vn(Ri[0],t);this._renderer.compile(e,Li)}_sceneToCubeUV(t,e,n,i){const r=new Qn(90,1,e,n),s=[1,-1,1,1,1,1],a=[1,1,1,-1,-1,-1],o=this._renderer,l=o.autoClear,c=o.outputEncoding,h=o.toneMapping;o.getClearColor(Ii),o.toneMapping=0,o.outputEncoding=X,o.autoClear=!1;const u=new rn({name:"PMREM.Background",side:1,depthWrite:!1,depthTest:!1}),d=new Vn(new jn,u);let p=!1;const m=t.background;m?m.isColor&&(u.color.copy(m),t.background=null,p=!0):(u.color.copy(Ii),p=!0);for(let e=0;e<6;e++){const n=e%3;0==n?(r.up.set(0,s[e],0),r.lookAt(a[e],0,0)):1==n?(r.up.set(0,0,s[e]),r.lookAt(0,a[e],0)):(r.up.set(0,s[e],0),r.lookAt(0,0,a[e])),Gi(i,n*wi,e>2?wi:0,wi,wi),o.setRenderTarget(i),p&&o.render(d,r),o.render(t,r)}d.geometry.dispose(),d.material.dispose(),o.toneMapping=h,o.outputEncoding=c,o.autoClear=l,t.background=m}_setEncoding(t,e){!0===this._renderer.capabilities.isWebGL2&&e.format===E&&e.type===x&&e.encoding===Y?t.value=Ai[3e3]:t.value=Ai[e.encoding]}_textureToCubeUV(t,e){const n=this._renderer;t.isCubeTexture?null==this._cubemapShader&&(this._cubemapShader=Vi()):null==this._equirectShader&&(this._equirectShader=ki());const i=t.isCubeTexture?this._cubemapShader:this._equirectShader,r=new Vn(Ri[0],i),s=i.uniforms;s.envMap.value=t,t.isCubeTexture||s.texelSize.value.set(1/t.image.width,1/t.image.height),this._setEncoding(s.inputEncoding,t),this._setEncoding(s.outputEncoding,e.texture),Gi(e,0,0,3*wi,2*wi),n.setRenderTarget(e),n.render(r,Li)}_applyPMREM(t){const e=this._renderer,n=e.autoClear;e.autoClear=!1;for(let e=1;e<Ti;e++){const n=Math.sqrt(Pi[e]*Pi[e]-Pi[e-1]*Pi[e-1]),i=Bi[(e-1)%Bi.length];this._blur(t,e-1,e,n,i)}e.autoClear=n}_blur(t,e,n,i,r){const s=this._pingPongRenderTarget;this._halfBlur(t,s,e,n,i,"latitudinal",r),this._halfBlur(s,t,n,n,i,"longitudinal",r)}_halfBlur(t,e,n,i,r,s,a){const o=this._renderer,l=this._blurMaterial;"latitudinal"!==s&&"longitudinal"!==s&&("");const c=new Vn(Ri[i],l),h=l.uniforms,u=Ci[n]-1,d=isFinite(r)?Math.PI/(2*u):2*Math.PI/39,p=r/d,m=isFinite(r)?1+Math.floor(3*p):Ei;m>Ei&&(`sigmaRadians, ${r}, is too large and will clip, as it requested ${m} samples when the maximum is set to 20`);const f=[];let g=0;for(let t=0;t<Ei;++t){const e=t/p,n=Math.exp(-e*e/2);f.push(n),0==t?g+=n:t<m&&(g+=2*n)}for(let t=0;t<f.length;t++)f[t]=f[t]/g;h.envMap.value=t.texture,h.samples.value=m,h.weights.value=f,h.latitudinal.value="latitudinal"===s,a&&(h.poleAxis.value=a),h.dTheta.value=d,h.mipInt.value=8-n,this._setEncoding(h.inputEncoding,t.texture),this._setEncoding(h.outputEncoding,t.texture);const v=Ci[i];Gi(e,3*Math.max(0,wi-2*v),(0===i?0:2*wi)+2*v*(i>4?i-8+4:0),3*v,2*v),o.setRenderTarget(e),o.render(c,Li)}}function Oi(t){return void 0!==t&&t.type===x&&(t.encoding===X||t.encoding===Y||t.encoding===J)}function Ui(){const t=[],e=[],n=[];let i=8;for(let r=0;r<Ti;r++){const s=Math.pow(2,i);e.push(s);let a=1/s;r>4?a=Si[r-8+4-1]:0==r&&(a=0),n.push(a);const o=1/(s-1),l=-o/2,c=1+o/2,h=[l,l,c,l,c,c,l,l,c,c,l,c],u=6,d=6,p=3,m=2,f=1,g=new Float32Array(p*d*u),v=new Float32Array(m*d*u),y=new Float32Array(f*d*u);for(let t=0;t<u;t++){const e=t%3*2/3-1,n=t>2?0:-1,i=[e,n,0,e+2/3,n,0,e+2/3,n+1,0,e,n,0,e+2/3,n+1,0,e,n+1,0];g.set(i,p*d*t),v.set(h,m*d*t);const r=[t,t,t,t,t,t];y.set(r,f*d*t)}const x=new Tn;x.setAttribute("position",new on(g,p)),x.setAttribute("uv",new on(v,m)),x.setAttribute("faceIndex",new on(y,f)),t.push(x),i>4&&i--}return{_lodPlanes:t,_sizeLods:e,_sigmas:n}}function Hi(t){const e=new Ct(3*wi,3*wi,t);return e.texture.mapping=l,e.texture.name="PMREM.cubeUv",e.scissorTest=!0,e}function Gi(t,e,n,i,r){t.viewport.set(e,n,i,r),t.scissor.set(e,n,i,r)}function ki(){const t=new yt(1,1);return new Mi({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null},texelSize:{value:t},inputEncoding:{value:Ai[3e3]},outputEncoding:{value:Ai[3e3]}},vertexShader:Wi(),fragmentShader:`\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform vec2 texelSize;\n\n\t\t\t${ji()}\n\n\t\t\t#include <common>\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tvec2 f = fract( uv / texelSize - 0.5 );\n\t\t\t\tuv -= f * texelSize;\n\t\t\t\tvec3 tl = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\n\t\t\t\tuv.x += texelSize.x;\n\t\t\t\tvec3 tr = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\n\t\t\t\tuv.y += texelSize.y;\n\t\t\t\tvec3 br = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\n\t\t\t\tuv.x -= texelSize.x;\n\t\t\t\tvec3 bl = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\n\n\t\t\t\tvec3 tm = mix( tl, tr, f.x );\n\t\t\t\tvec3 bm = mix( bl, br, f.x );\n\t\t\t\tgl_FragColor.rgb = mix( tm, bm, f.y );\n\n\t\t\t\tgl_FragColor = linearToOutputTexel( gl_FragColor );\n\n\t\t\t}\n\t\t`,blending:0,depthTest:!1,depthWrite:!1})}function Vi(){return new Mi({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},inputEncoding:{value:Ai[3e3]},outputEncoding:{value:Ai[3e3]}},vertexShader:Wi(),fragmentShader:`\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\t${ji()}\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb = envMapTexelToLinear( textureCube( envMap, vec3( - vOutputDirection.x, vOutputDirection.yz ) ) ).rgb;\n\t\t\t\tgl_FragColor = linearToOutputTexel( gl_FragColor );\n\n\t\t\t}\n\t\t`,blending:0,depthTest:!1,depthWrite:!1})}function Wi(){return"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute vec3 position;\n\t\tattribute vec2 uv;\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t"}function ji(){return"\n\n\t\tuniform int inputEncoding;\n\t\tuniform int outputEncoding;\n\n\t\t#include <encodings_pars_fragment>\n\n\t\tvec4 inputTexelToLinear( vec4 value ) {\n\n\t\t\tif ( inputEncoding == 0 ) {\n\n\t\t\t\treturn value;\n\n\t\t\t} else if ( inputEncoding == 1 ) {\n\n\t\t\t\treturn sRGBToLinear( value );\n\n\t\t\t} else if ( inputEncoding == 2 ) {\n\n\t\t\t\treturn RGBEToLinear( value );\n\n\t\t\t} else if ( inputEncoding == 3 ) {\n\n\t\t\t\treturn RGBMToLinear( value, 7.0 );\n\n\t\t\t} else if ( inputEncoding == 4 ) {\n\n\t\t\t\treturn RGBMToLinear( value, 16.0 );\n\n\t\t\t} else if ( inputEncoding == 5 ) {\n\n\t\t\t\treturn RGBDToLinear( value, 256.0 );\n\n\t\t\t} else {\n\n\t\t\t\treturn GammaToLinear( value, 2.2 );\n\n\t\t\t}\n\n\t\t}\n\n\t\tvec4 linearToOutputTexel( vec4 value ) {\n\n\t\t\tif ( outputEncoding == 0 ) {\n\n\t\t\t\treturn value;\n\n\t\t\t} else if ( outputEncoding == 1 ) {\n\n\t\t\t\treturn LinearTosRGB( value );\n\n\t\t\t} else if ( outputEncoding == 2 ) {\n\n\t\t\t\treturn LinearToRGBE( value );\n\n\t\t\t} else if ( outputEncoding == 3 ) {\n\n\t\t\t\treturn LinearToRGBM( value, 7.0 );\n\n\t\t\t} else if ( outputEncoding == 4 ) {\n\n\t\t\t\treturn LinearToRGBM( value, 16.0 );\n\n\t\t\t} else if ( outputEncoding == 5 ) {\n\n\t\t\t\treturn LinearToRGBD( value, 256.0 );\n\n\t\t\t} else {\n\n\t\t\t\treturn LinearToGamma( value, 2.2 );\n\n\t\t\t}\n\n\t\t}\n\n\t\tvec4 envMapTexelToLinear( vec4 color ) {\n\n\t\t\treturn inputTexelToLinear( color );\n\n\t\t}\n\t"}function qi(t){let e=new WeakMap,n=null;function i(t){const n=t.target;n.removeEventListener("dispose",i);const r=e.get(n);void 0!==r&&(e.delete(n),r.dispose())}return{get:function(l){if(l&&l.isTexture&&!1===l.isRenderTargetTexture){const c=l.mapping,h=c===a||c===o,u=c===r||c===s;if(h||u){if(e.has(l))return e.get(l).texture;{const r=l.image;if(h&&r&&r.height>0||u&&r&&function(t){let e=0;const n=6;for(let i=0;i<n;i++)void 0!==t[i]&&e++;return e===n}(r)){const r=t.getRenderTarget();null===n&&(n=new Fi(t));const s=h?n.fromEquirectangular(l):n.fromCubemap(l);return e.set(l,s),t.setRenderTarget(r),l.addEventListener("dispose",i),s.texture}return null}}}return l},dispose:function(){e=new WeakMap,null!==n&&(n.dispose(),n=null)}}}function Xi(t){const e={};function n(n){if(void 0!==e[n])return e[n];let i;switch(n){case"WEBGL_depth_texture":i=t.getExtension("WEBGL_depth_texture")||t.getExtension("MOZ_WEBGL_depth_texture")||t.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":i=t.getExtension("EXT_texture_filter_anisotropic")||t.getExtension("MOZ_EXT_texture_filter_anisotropic")||t.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case"WEBGL_compressed_texture_s3tc":i=t.getExtension("WEBGL_compressed_texture_s3tc")||t.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||t.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case"WEBGL_compressed_texture_pvrtc":i=t.getExtension("WEBGL_compressed_texture_pvrtc")||t.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:i=t.getExtension(n)}return e[n]=i,i}return{has:function(t){return null!==n(t)},init:function(t){t.isWebGL2?n("EXT_color_buffer_float"):(n("WEBGL_depth_texture"),n("OES_texture_float"),n("OES_texture_half_float"),n("OES_texture_half_float_linear"),n("OES_standard_derivatives"),n("OES_element_index_uint"),n("OES_vertex_array_object"),n("ANGLE_instanced_arrays")),n("OES_texture_float_linear"),n("EXT_color_buffer_half_float")},get:function(t){const e=n(t);return null===e&&(""+t+" extension not supported."),e}}}function Yi(t,e,n,i){const r={},s=new WeakMap;function a(t){const o=t.target;null!==o.index&&e.remove(o.index);for(const t in o.attributes)e.remove(o.attributes[t]);o.removeEventListener("dispose",a),delete r[o.id];const l=s.get(o);l&&(e.remove(l),s.delete(o)),i.releaseStatesOfGeometry(o),!0===o.isInstancedBufferGeometry&&delete o._maxInstanceCount,n.memory.geometries--}function o(t){const n=[],i=t.index,r=t.attributes.position;let a=0;if(null!==i){const t=i.array;a=i.version;for(let e=0,i=t.length;e<i;e+=3){const i=t[e+0],r=t[e+1],s=t[e+2];n.push(i,r,r,s,s,i)}}else{const t=r.array;a=r.version;for(let e=0,i=t.length/3-1;e<i;e+=3){const t=e+0,i=e+1,r=e+2;n.push(t,i,i,r,r,t)}}const o=new(_t(n)>65535?mn:dn)(n,1);o.version=a;const l=s.get(t);l&&e.remove(l),s.set(t,o)}return{get:function(t,e){return!0===r[e.id]||(e.addEventListener("dispose",a),r[e.id]=!0,n.memory.geometries++),e},update:function(t){const n=t.attributes;for(const t in n)e.update(n[t],34962);const i=t.morphAttributes;for(const t in i){const n=i[t];for(let t=0,i=n.length;t<i;t++)e.update(n[t],34962)}},getWireframeAttribute:function(t){const e=s.get(t);if(e){const n=t.index;null!==n&&e.version<n.version&&o(t)}else o(t);return s.get(t)}}}function Ji(t,e,n,i){const r=i.isWebGL2;let s,a,o;this.setMode=function(t){s=t},this.setIndex=function(t){a=t.type,o=t.bytesPerElement},this.render=function(e,i){t.drawElements(s,i,a,e*o),n.update(i,s,1)},this.renderInstances=function(i,l,c){if(0===c)return;let h,u;if(r)h=t,u="drawElementsInstanced";else if(h=e.get("ANGLE_instanced_arrays"),u="drawElementsInstancedANGLE",null===h)return void ("");h[u](s,l,a,i*o,c),n.update(l,s,c)}}function Zi(t){const e={frame:0,calls:0,triangles:0,points:0,lines:0};return{memory:{geometries:0,textures:0},render:e,programs:null,autoReset:!0,reset:function(){e.frame++,e.calls=0,e.triangles=0,e.points=0,e.lines=0},update:function(t,n,i){switch(e.calls++,n){case 4:e.triangles+=i*(t/3);break;case 1:e.lines+=i*(t/2);break;case 3:e.lines+=i*(t-1);break;case 2:e.lines+=i*t;break;case 0:e.points+=i*t;break;default:("",n)}}}}class Qi extends At{constructor(t=null,e=1,n=1,i=1){super(null),this.image={data:t,width:e,height:n,depth:i},this.magFilter=p,this.minFilter=p,this.wrapR=u,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1,this.needsUpdate=!0}}function Ki(t,e){return t[0]-e[0]}function $i(t,e){return Math.abs(e[1])-Math.abs(t[1])}function tr(t,e){let n=1;const i=e.isInterleavedBufferAttribute?e.data.array:e.array;i instanceof Int8Array?n=127:i instanceof Int16Array?n=32767:i instanceof Int32Array?n=2147483647:("",i),t.divideScalar(n)}function er(t,e,n){const i={},r=new Float32Array(8),s=new WeakMap,a=new Nt,o=[];for(let t=0;t<8;t++)o[t]=[t,0];return{update:function(l,c,h,u){const d=l.morphTargetInfluences;if(!0===e.isWebGL2){const i=c.morphAttributes.position.length;let r=s.get(c);if(void 0===r||r.count!==i){void 0!==r&&r.texture.dispose();const t=void 0!==c.morphAttributes.normal,n=c.morphAttributes.position,o=c.morphAttributes.normal||[],l=!0===t?2:1;let h=c.attributes.position.count*l,u=1;h>e.maxTextureSize&&(u=Math.ceil(h/e.maxTextureSize),h=e.maxTextureSize);const d=new Float32Array(h*u*4*i),p=new Qi(d,h,u,i);p.format=E,p.type=M;const m=4*l;for(let e=0;e<i;e++){const i=n[e],r=o[e],s=h*u*4*e;for(let e=0;e<i.count;e++){a.fromBufferAttribute(i,e),!0===i.normalized&&tr(a,i);const n=e*m;d[s+n+0]=a.x,d[s+n+1]=a.y,d[s+n+2]=a.z,d[s+n+3]=0,!0===t&&(a.fromBufferAttribute(r,e),!0===r.normalized&&tr(a,r),d[s+n+4]=a.x,d[s+n+5]=a.y,d[s+n+6]=a.z,d[s+n+7]=0)}}r={count:i,texture:p,size:new yt(h,u)},s.set(c,r)}let o=0;for(let t=0;t<d.length;t++)o+=d[t];const l=c.morphTargetsRelative?1:1-o;u.getUniforms().setValue(t,"morphTargetBaseInfluence",l),u.getUniforms().setValue(t,"morphTargetInfluences",d),u.getUniforms().setValue(t,"morphTargetsTexture",r.texture,n),u.getUniforms().setValue(t,"morphTargetsTextureSize",r.size)}else{const e=void 0===d?0:d.length;let n=i[c.id];if(void 0===n||n.length!==e){n=[];for(let t=0;t<e;t++)n[t]=[t,0];i[c.id]=n}for(let t=0;t<e;t++){const e=n[t];e[0]=t,e[1]=d[t]}n.sort($i);for(let t=0;t<8;t++)t<e&&n[t][1]?(o[t][0]=n[t][0],o[t][1]=n[t][1]):(o[t][0]=Number.MAX_SAFE_INTEGER,o[t][1]=0);o.sort(Ki);const s=c.morphAttributes.position,a=c.morphAttributes.normal;let l=0;for(let t=0;t<8;t++){const e=o[t],n=e[0],i=e[1];n!==Number.MAX_SAFE_INTEGER&&i?(s&&c.getAttribute("morphTarget"+t)!==s[n]&&c.setAttribute("morphTarget"+t,s[n]),a&&c.getAttribute("morphNormal"+t)!==a[n]&&c.setAttribute("morphNormal"+t,a[n]),r[t]=i,l+=i):(s&&!0===c.hasAttribute("morphTarget"+t)&&c.deleteAttribute("morphTarget"+t),a&&!0===c.hasAttribute("morphNormal"+t)&&c.deleteAttribute("morphNormal"+t),r[t]=0)}const h=c.morphTargetsRelative?1:1-l;u.getUniforms().setValue(t,"morphTargetBaseInfluence",h),u.getUniforms().setValue(t,"morphTargetInfluences",r)}}}}function nr(t,e,n,i){let r=new WeakMap;function s(t){const e=t.target;e.removeEventListener("dispose",s),n.remove(e.instanceMatrix),null!==e.instanceColor&&n.remove(e.instanceColor)}return{update:function(t){const a=i.render.frame,o=t.geometry,l=e.get(t,o);return r.get(l)!==a&&(e.update(l),r.set(l,a)),t.isInstancedMesh&&(!1===t.hasEventListener("dispose",s)&&t.addEventListener("dispose",s),n.update(t.instanceMatrix,34962),null!==t.instanceColor&&n.update(t.instanceColor,34962)),l},dispose:function(){r=new WeakMap}}}Qi.prototype.isDataTexture2DArray=!0;class ir extends At{constructor(t=null,e=1,n=1,i=1){super(null),this.image={data:t,width:e,height:n,depth:i},this.magFilter=p,this.minFilter=p,this.wrapR=u,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1,this.needsUpdate=!0}}ir.prototype.isDataTexture3D=!0;const rr=new At,sr=new Qi,ar=new ir,or=new ti,lr=[],cr=[],hr=new Float32Array(16),ur=new Float32Array(9),dr=new Float32Array(4);function pr(t,e,n){const i=t[0];if(i<=0||i>0)return t;const r=e*n;let s=lr[r];if(void 0===s&&(s=new Float32Array(r),lr[r]=s),0!==e){i.toArray(s,0);for(let i=1,r=0;i!==e;++i)r+=n,t[i].toArray(s,r)}return s}function mr(t,e){if(t.length!==e.length)return!1;for(let n=0,i=t.length;n<i;n++)if(t[n]!==e[n])return!1;return!0}function fr(t,e){for(let n=0,i=e.length;n<i;n++)t[n]=e[n]}function gr(t,e){let n=cr[e];void 0===n&&(n=new Int32Array(e),cr[e]=n);for(let i=0;i!==e;++i)n[i]=t.allocateTextureUnit();return n}function vr(t,e){const n=this.cache;n[0]!==e&&(t.uniform1f(this.addr,e),n[0]=e)}function yr(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y||(t.uniform2f(this.addr,e.x,e.y),n[0]=e.x,n[1]=e.y);else{if(mr(n,e))return;t.uniform2fv(this.addr,e),fr(n,e)}}function xr(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y&&n[2]===e.z||(t.uniform3f(this.addr,e.x,e.y,e.z),n[0]=e.x,n[1]=e.y,n[2]=e.z);else if(void 0!==e.r)n[0]===e.r&&n[1]===e.g&&n[2]===e.b||(t.uniform3f(this.addr,e.r,e.g,e.b),n[0]=e.r,n[1]=e.g,n[2]=e.b);else{if(mr(n,e))return;t.uniform3fv(this.addr,e),fr(n,e)}}function _r(t,e){const n=this.cache;if(void 0!==e.x)n[0]===e.x&&n[1]===e.y&&n[2]===e.z&&n[3]===e.w||(t.uniform4f(this.addr,e.x,e.y,e.z,e.w),n[0]=e.x,n[1]=e.y,n[2]=e.z,n[3]=e.w);else{if(mr(n,e))return;t.uniform4fv(this.addr,e),fr(n,e)}}function br(t,e){const n=this.cache,i=e.elements;if(void 0===i){if(mr(n,e))return;t.uniformMatrix2fv(this.addr,!1,e),fr(n,e)}else{if(mr(n,i))return;dr.set(i),t.uniformMatrix2fv(this.addr,!1,dr),fr(n,i)}}function Mr(t,e){const n=this.cache,i=e.elements;if(void 0===i){if(mr(n,e))return;t.uniformMatrix3fv(this.addr,!1,e),fr(n,e)}else{if(mr(n,i))return;ur.set(i),t.uniformMatrix3fv(this.addr,!1,ur),fr(n,i)}}function wr(t,e){const n=this.cache,i=e.elements;if(void 0===i){if(mr(n,e))return;t.uniformMatrix4fv(this.addr,!1,e),fr(n,e)}else{if(mr(n,i))return;hr.set(i),t.uniformMatrix4fv(this.addr,!1,hr),fr(n,i)}}function Sr(t,e){const n=this.cache;n[0]!==e&&(t.uniform1i(this.addr,e),n[0]=e)}function Tr(t,e){const n=this.cache;mr(n,e)||(t.uniform2iv(this.addr,e),fr(n,e))}function Er(t,e){const n=this.cache;mr(n,e)||(t.uniform3iv(this.addr,e),fr(n,e))}function Ar(t,e){const n=this.cache;mr(n,e)||(t.uniform4iv(this.addr,e),fr(n,e))}function Lr(t,e){const n=this.cache;n[0]!==e&&(t.uniform1ui(this.addr,e),n[0]=e)}function Rr(t,e){const n=this.cache;mr(n,e)||(t.uniform2uiv(this.addr,e),fr(n,e))}function Cr(t,e){const n=this.cache;mr(n,e)||(t.uniform3uiv(this.addr,e),fr(n,e))}function Pr(t,e){const n=this.cache;mr(n,e)||(t.uniform4uiv(this.addr,e),fr(n,e))}function Ir(t,e,n){const i=this.cache,r=n.allocateTextureUnit();i[0]!==r&&(t.uniform1i(this.addr,r),i[0]=r),n.safeSetTexture2D(e||rr,r)}function Dr(t,e,n){const i=this.cache,r=n.allocateTextureUnit();i[0]!==r&&(t.uniform1i(this.addr,r),i[0]=r),n.setTexture3D(e||ar,r)}function Nr(t,e,n){const i=this.cache,r=n.allocateTextureUnit();i[0]!==r&&(t.uniform1i(this.addr,r),i[0]=r),n.safeSetTextureCube(e||or,r)}function zr(t,e,n){const i=this.cache,r=n.allocateTextureUnit();i[0]!==r&&(t.uniform1i(this.addr,r),i[0]=r),n.setTexture2DArray(e||sr,r)}function Br(t,e){t.uniform1fv(this.addr,e)}function Fr(t,e){const n=pr(e,this.size,2);t.uniform2fv(this.addr,n)}function Or(t,e){const n=pr(e,this.size,3);t.uniform3fv(this.addr,n)}function Ur(t,e){const n=pr(e,this.size,4);t.uniform4fv(this.addr,n)}function Hr(t,e){const n=pr(e,this.size,4);t.uniformMatrix2fv(this.addr,!1,n)}function Gr(t,e){const n=pr(e,this.size,9);t.uniformMatrix3fv(this.addr,!1,n)}function kr(t,e){const n=pr(e,this.size,16);t.uniformMatrix4fv(this.addr,!1,n)}function Vr(t,e){t.uniform1iv(this.addr,e)}function Wr(t,e){t.uniform2iv(this.addr,e)}function jr(t,e){t.uniform3iv(this.addr,e)}function qr(t,e){t.uniform4iv(this.addr,e)}function Xr(t,e){t.uniform1uiv(this.addr,e)}function Yr(t,e){t.uniform2uiv(this.addr,e)}function Jr(t,e){t.uniform3uiv(this.addr,e)}function Zr(t,e){t.uniform4uiv(this.addr,e)}function Qr(t,e,n){const i=e.length,r=gr(n,i);t.uniform1iv(this.addr,r);for(let t=0;t!==i;++t)n.safeSetTexture2D(e[t]||rr,r[t])}function Kr(t,e,n){const i=e.length,r=gr(n,i);t.uniform1iv(this.addr,r);for(let t=0;t!==i;++t)n.safeSetTextureCube(e[t]||or,r[t])}function $r(t,e,n){this.id=t,this.addr=n,this.cache=[],this.setValue=function(t){switch(t){case 5126:return vr;case 35664:return yr;case 35665:return xr;case 35666:return _r;case 35674:return br;case 35675:return Mr;case 35676:return wr;case 5124:case 35670:return Sr;case 35667:case 35671:return Tr;case 35668:case 35672:return Er;case 35669:case 35673:return Ar;case 5125:return Lr;case 36294:return Rr;case 36295:return Cr;case 36296:return Pr;case 35678:case 36198:case 36298:case 36306:case 35682:return Ir;case 35679:case 36299:case 36307:return Dr;case 35680:case 36300:case 36308:case 36293:return Nr;case 36289:case 36303:case 36311:case 36292:return zr}}(e.type)}function ts(t,e,n){this.id=t,this.addr=n,this.cache=[],this.size=e.size,this.setValue=function(t){switch(t){case 5126:return Br;case 35664:return Fr;case 35665:return Or;case 35666:return Ur;case 35674:return Hr;case 35675:return Gr;case 35676:return kr;case 5124:case 35670:return Vr;case 35667:case 35671:return Wr;case 35668:case 35672:return jr;case 35669:case 35673:return qr;case 5125:return Xr;case 36294:return Yr;case 36295:return Jr;case 36296:return Zr;case 35678:case 36198:case 36298:case 36306:case 35682:return Qr;case 35680:case 36300:case 36308:case 36293:return Kr}}(e.type)}function es(t){this.id=t,this.seq=[],this.map={}}ts.prototype.updateCache=function(t){const e=this.cache;t instanceof Float32Array&&e.length!==t.length&&(this.cache=new Float32Array(t.length)),fr(e,t)},es.prototype.setValue=function(t,e,n){const i=this.seq;for(let r=0,s=i.length;r!==s;++r){const s=i[r];s.setValue(t,e[s.id],n)}};const ns=/(\w+)(\])?(\[|\.)?/g;function is(t,e){t.seq.push(e),t.map[e.id]=e}function rs(t,e,n){const i=t.name,r=i.length;for(ns.lastIndex=0;;){const s=ns.exec(i),a=ns.lastIndex;let o=s[1];const l="]"===s[2],c=s[3];if(l&&(o|=0),void 0===c||"["===c&&a+2===r){is(n,void 0===c?new $r(o,t,e):new ts(o,t,e));break}{let t=n.map[o];void 0===t&&(t=new es(o),is(n,t)),n=t}}}function ss(t,e){this.seq=[],this.map={};const n=t.getProgramParameter(e,35718);for(let i=0;i<n;++i){const n=t.getActiveUniform(e,i);rs(n,t.getUniformLocation(e,n.name),this)}}function as(t,e,n){const i=t.createShader(e);return t.shaderSource(i,n),t.compileShader(i),i}ss.prototype.setValue=function(t,e,n,i){const r=this.map[e];void 0!==r&&r.setValue(t,n,i)},ss.prototype.setOptional=function(t,e,n){const i=e[n];void 0!==i&&this.setValue(t,n,i)},ss.upload=function(t,e,n,i){for(let r=0,s=e.length;r!==s;++r){const s=e[r],a=n[s.id];!1!==a.needsUpdate&&s.setValue(t,a.value,i)}},ss.seqWithValue=function(t,e){const n=[];for(let i=0,r=t.length;i!==r;++i){const r=t[i];r.id in e&&n.push(r)}return n};let os=0;function ls(t){switch(t){case X:return["Linear","( value )"];case Y:return["sRGB","( value )"];case Z:return["RGBE","( value )"];case Q:return["RGBM","( value, 7.0 )"];case K:return["RGBM","( value, 16.0 )"];case $:return["RGBD","( value, 256.0 )"];case J:return["Gamma","( value, float( GAMMA_FACTOR ) )"];case 3003:return["LogLuv","( value )"];default:return ("",t),["Linear","( value )"]}}function cs(t,e,n){const i=t.getShaderParameter(e,35713),r=t.getShaderInfoLog(e).trim();return i&&""===r?"":n.toUpperCase()+"\n\n"+r+"\n\n"+function(t){const e=t.split("\n");for(let t=0;t<e.length;t++)e[t]=t+1+": "+e[t];return e.join("\n")}(t.getShaderSource(e))}function hs(t,e){const n=ls(e);return"vec4 "+t+"( vec4 value ) { return "+n[0]+"ToLinear"+n[1]+"; }"}function us(t,e){const n=ls(e);return"vec4 "+t+"( vec4 value ) { return LinearTo"+n[0]+n[1]+"; }"}function ds(t,e){let n;switch(e){case 1:n="Linear";break;case 2:n="Reinhard";break;case 3:n="OptimizedCineon";break;case 4:n="ACESFilmic";break;case 5:n="Custom";break;default:("",e),n="Linear"}return"vec3 "+t+"( vec3 color ) { return "+n+"ToneMapping( color ); }"}function ps(t){return""!==t}function ms(t,e){return t.replace(/NUM_DIR_LIGHTS/g,e.numDirLights).replace(/NUM_SPOT_LIGHTS/g,e.numSpotLights).replace(/NUM_RECT_AREA_LIGHTS/g,e.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,e.numPointLights).replace(/NUM_HEMI_LIGHTS/g,e.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,e.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS/g,e.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,e.numPointLightShadows)}function fs(t,e){return t.replace(/NUM_CLIPPING_PLANES/g,e.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,e.numClippingPlanes-e.numClipIntersection)}const gs=/^[ \t]*#include +<([\w\d./]+)>/gm;function vs(t){return t.replace(gs,ys)}function ys(t,e){const n=di[e];if(void 0===n)throw new Error(""+e+">");return vs(n)}const xs=/#pragma unroll_loop[\s]+?for \( int i \= (\d+)\; i < (\d+)\; i \+\+ \) \{([\s\S]+?)(?=\})\}/g,_s=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function bs(t){return t.replace(_s,ws).replace(xs,Ms)}function Ms(t,e,n,i){return (""),ws(t,e,n,i)}function ws(t,e,n,i){let r="";for(let t=parseInt(e);t<parseInt(n);t++)r+=i.replace(/\[\s*i\s*\]/g,"[ "+t+" ]").replace(/UNROLLED_LOOP_INDEX/g,t);return r}function Ss(t){let e="precision "+t.precision+" float;\nprecision "+t.precision+" int;";return"highp"===t.precision?e+="\n#define HIGH_PRECISION":"mediump"===t.precision?e+="\n#define MEDIUM_PRECISION":"lowp"===t.precision&&(e+="\n#define LOW_PRECISION"),e}function Ts(t,e,n,i){const a=t.getContext(),o=n.defines;let h=n.vertexShader,u=n.fragmentShader;const d=function(t){let e="SHADOWMAP_TYPE_BASIC";return 1===t.shadowMapType?e="SHADOWMAP_TYPE_PCF":2===t.shadowMapType?e="SHADOWMAP_TYPE_PCF_SOFT":3===t.shadowMapType&&(e="SHADOWMAP_TYPE_VSM"),e}(n),p=function(t){let e="ENVMAP_TYPE_CUBE";if(t.envMap)switch(t.envMapMode){case r:case s:e="ENVMAP_TYPE_CUBE";break;case l:case c:e="ENVMAP_TYPE_CUBE_UV"}return e}(n),m=function(t){let e="ENVMAP_MODE_REFLECTION";if(t.envMap)switch(t.envMapMode){case s:case c:e="ENVMAP_MODE_REFRACTION"}return e}(n),f=function(t){let e="ENVMAP_BLENDING_NONE";if(t.envMap)switch(t.combine){case 0:e="ENVMAP_BLENDING_MULTIPLY";break;case 1:e="ENVMAP_BLENDING_MIX";break;case 2:e="ENVMAP_BLENDING_ADD"}return e}(n),g=t.gammaFactor>0?t.gammaFactor:1,v=n.isWebGL2?"":function(t){return[t.extensionDerivatives||t.envMapCubeUV||t.bumpMap||t.tangentSpaceNormalMap||t.clearcoatNormalMap||t.flatShading||"physical"===t.shaderID?"#extension GL_OES_standard_derivatives : enable":"",(t.extensionFragDepth||t.logarithmicDepthBuffer)&&t.rendererExtensionFragDepth?"#extension GL_EXT_frag_depth : enable":"",t.extensionDrawBuffers&&t.rendererExtensionDrawBuffers?"#extension GL_EXT_draw_buffers : require":"",(t.extensionShaderTextureLOD||t.envMap||t.transmission)&&t.rendererExtensionShaderTextureLod?"#extension GL_EXT_shader_texture_lod : enable":""].filter(ps).join("\n")}(n),y=function(t){const e=[];for(const n in t){const i=t[n];!1!==i&&e.push("#define "+n+" "+i)}return e.join("\n")}(o),x=a.createProgram();let _,b,M=n.glslVersion?"#version "+n.glslVersion+"\n":"";n.isRawShaderMaterial?(_=[y].filter(ps).join("\n"),_.length>0&&(_+="\n"),b=[v,y].filter(ps).join("\n"),b.length>0&&(b+="\n")):(_=[Ss(n),"#define SHADER_NAME "+n.shaderName,y,n.instancing?"#define USE_INSTANCING":"",n.instancingColor?"#define USE_INSTANCING_COLOR":"",n.supportsVertexTextures?"#define VERTEX_TEXTURES":"","#define GAMMA_FACTOR "+g,"#define MAX_BONES "+n.maxBones,n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+m:"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMap&&n.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",n.normalMap&&n.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.displacementMap&&n.supportsVertexTextures?"#define USE_DISPLACEMENTMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularIntensityMap?"#define USE_SPECULARINTENSITYMAP":"",n.specularTintMap?"#define USE_SPECULARTINTMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.vertexTangents?"#define USE_TANGENT":"",n.vertexColors?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUvs?"#define USE_UV":"",n.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",n.flatShading?"#define FLAT_SHADED":"",n.skinning?"#define USE_SKINNING":"",n.useVertexTexture?"#define BONE_TEXTURE":"",n.morphTargets?"#define USE_MORPHTARGETS":"",n.morphNormals&&!1===n.flatShading?"#define USE_MORPHNORMALS":"",n.morphTargets&&n.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",n.morphTargets&&n.isWebGL2?"#define MORPHTARGETS_COUNT "+n.morphTargetsCount:"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+d:"",n.sizeAttenuation?"#define USE_SIZEATTENUATION":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING","\tattribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR","\tattribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )","\tattribute vec4 color;","#elif defined( USE_COLOR )","\tattribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;","\t\tattribute vec3 morphNormal2;","\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter(ps).join("\n"),b=[v,Ss(n),"#define SHADER_NAME "+n.shaderName,y,"#define GAMMA_FACTOR "+g,n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.matcap?"#define USE_MATCAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+p:"",n.envMap?"#define "+m:"",n.envMap?"#define "+f:"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMap&&n.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",n.normalMap&&n.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",n.clearcoat?"#define USE_CLEARCOAT":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularIntensityMap?"#define USE_SPECULARINTENSITYMAP":"",n.specularTintMap?"#define USE_SPECULARTINTMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.alphaTest?"#define USE_ALPHATEST":"",n.sheen?"#define USE_SHEEN":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.vertexTangents?"#define USE_TANGENT":"",n.vertexColors||n.instancingColor?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUvs?"#define USE_UV":"",n.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",n.gradientMap?"#define USE_GRADIENTMAP":"",n.flatShading?"#define FLAT_SHADED":"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+d:"",n.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",n.physicallyCorrectLights?"#define PHYSICALLY_CORRECT_LIGHTS":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"",(n.extensionShaderTextureLOD||n.envMap)&&n.rendererExtensionShaderTextureLod?"#define TEXTURE_LOD_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",0!==n.toneMapping?"#define TONE_MAPPING":"",0!==n.toneMapping?di.tonemapping_pars_fragment:"",0!==n.toneMapping?ds("toneMapping",n.toneMapping):"",n.dithering?"#define DITHERING":"",n.format===T?"#define OPAQUE":"",di.encodings_pars_fragment,n.map?hs("mapTexelToLinear",n.mapEncoding):"",n.matcap?hs("matcapTexelToLinear",n.matcapEncoding):"",n.envMap?hs("envMapTexelToLinear",n.envMapEncoding):"",n.emissiveMap?hs("emissiveMapTexelToLinear",n.emissiveMapEncoding):"",n.specularTintMap?hs("specularTintMapTexelToLinear",n.specularTintMapEncoding):"",n.lightMap?hs("lightMapTexelToLinear",n.lightMapEncoding):"",us("linearToOutputTexel",n.outputEncoding),n.depthPacking?"#define DEPTH_PACKING "+n.depthPacking:"","\n"].filter(ps).join("\n")),h=vs(h),h=ms(h,n),h=fs(h,n),u=vs(u),u=ms(u,n),u=fs(u,n),h=bs(h),u=bs(u),n.isWebGL2&&!0!==n.isRawShaderMaterial&&(M="#version 300 es\n",_=["precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join("\n")+"\n"+_,b=["#define varying in",n.glslVersion===it?"":"out highp vec4 pc_fragColor;",n.glslVersion===it?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join("\n")+"\n"+b);const w=M+b+u,S=as(a,35633,M+_+h),E=as(a,35632,w);if(a.attachShader(x,S),a.attachShader(x,E),void 0!==n.index0AttributeName?a.bindAttribLocation(x,0,n.index0AttributeName):!0===n.morphTargets&&a.bindAttribLocation(x,0,"position"),a.linkProgram(x),t.debug.checkShaderErrors){const t=a.getProgramInfoLog(x).trim(),e=a.getShaderInfoLog(S).trim(),n=a.getShaderInfoLog(E).trim();let i=!0,r=!0;if(!1===a.getProgramParameter(x,35714)){i=!1;const e=cs(a,S,"vertex"),n=cs(a,E,"fragment");(""+a.getError()+" - VALIDATE_STATUS "+a.getProgramParameter(x,35715)+"\n\nProgram Info Log: "+t+"\n"+e+"\n"+n)}else""!==t?("",t):""!==e&&""!==n||(r=!1);r&&(this.diagnostics={runnable:i,programLog:t,vertexShader:{log:e,prefix:_},fragmentShader:{log:n,prefix:b}})}let A,L;return a.deleteShader(S),a.deleteShader(E),this.getUniforms=function(){return void 0===A&&(A=new ss(a,x)),A},this.getAttributes=function(){return void 0===L&&(L=function(t,e){const n={},i=t.getProgramParameter(e,35721);for(let r=0;r<i;r++){const i=t.getActiveAttrib(e,r),s=i.name;let a=1;35674===i.type&&(a=2),35675===i.type&&(a=3),35676===i.type&&(a=4),n[s]={type:i.type,location:t.getAttribLocation(e,s),locationSize:a}}return n}(a,x)),L},this.destroy=function(){i.releaseStatesOfProgram(this),a.deleteProgram(x),this.program=void 0},this.name=n.shaderName,this.id=os++,this.cacheKey=e,this.usedTimes=1,this.program=x,this.vertexShader=S,this.fragmentShader=E,this}function Es(t,e,n,i,r,s,a){const o=[],h=r.isWebGL2,u=r.logarithmicDepthBuffer,d=r.floatVertexTextures,p=r.maxVertexUniforms,m=r.vertexTextures;let f=r.precision;const g={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"},v=["precision","isWebGL2","supportsVertexTextures","outputEncoding","instancing","instancingColor","map","mapEncoding","matcap","matcapEncoding","envMap","envMapMode","envMapEncoding","envMapCubeUV","lightMap","lightMapEncoding","aoMap","emissiveMap","emissiveMapEncoding","bumpMap","normalMap","objectSpaceNormalMap","tangentSpaceNormalMap","clearcoat","clearcoatMap","clearcoatRoughnessMap","clearcoatNormalMap","displacementMap","specularMap","specularIntensityMap","specularTintMap","specularTintMapEncoding","roughnessMap","metalnessMap","gradientMap","alphaMap","alphaTest","combine","vertexColors","vertexAlphas","vertexTangents","vertexUvs","uvsVertexOnly","fog","useFog","fogExp2","flatShading","sizeAttenuation","logarithmicDepthBuffer","skinning","maxBones","useVertexTexture","morphTargets","morphNormals","morphTargetsCount","premultipliedAlpha","numDirLights","numPointLights","numSpotLights","numHemiLights","numRectAreaLights","numDirLightShadows","numPointLightShadows","numSpotLightShadows","shadowMapEnabled","shadowMapType","toneMapping","physicallyCorrectLights","doubleSided","flipSided","numClippingPlanes","numClipIntersection","depthPacking","dithering","format","sheen","transmission","transmissionMap","thicknessMap"];function y(t){let e;return t&&t.isTexture?e=t.encoding:t&&t.isWebGLRenderTarget?((""),e=t.texture.encoding):e=X,h&&t&&t.isTexture&&t.format===E&&t.type===x&&t.encoding===Y&&(e=X),e}return{getParameters:function(s,o,v,x,_){const b=x.fog,M=s.isMeshStandardMaterial?x.environment:null,w=(s.isMeshStandardMaterial?n:e).get(s.envMap||M),S=g[s.type],T=_.isSkinnedMesh?function(t){const e=t.skeleton.bones;if(d)return 1024;{const t=p,n=Math.floor((t-20)/4),i=Math.min(n,e.length);return i<e.length?((""+e.length+" bones. This GPU supports "+i+"."),0):i}}(_):0;let E,A;if(null!==s.precision&&(f=r.getMaxPrecision(s.precision),f!==s.precision&&("",s.precision,"not supported, using",f,"instead.")),S){const t=mi[S];E=t.vertexShader,A=t.fragmentShader}else E=s.vertexShader,A=s.fragmentShader;const L=t.getRenderTarget(),R=s.alphaTest>0,C=s.clearcoat>0;return{isWebGL2:h,shaderID:S,shaderName:s.type,vertexShader:E,fragmentShader:A,defines:s.defines,isRawShaderMaterial:!0===s.isRawShaderMaterial,glslVersion:s.glslVersion,precision:f,instancing:!0===_.isInstancedMesh,instancingColor:!0===_.isInstancedMesh&&null!==_.instanceColor,supportsVertexTextures:m,outputEncoding:null!==L?y(L.texture):t.outputEncoding,map:!!s.map,mapEncoding:y(s.map),matcap:!!s.matcap,matcapEncoding:y(s.matcap),envMap:!!w,envMapMode:w&&w.mapping,envMapEncoding:y(w),envMapCubeUV:!!w&&(w.mapping===l||w.mapping===c),lightMap:!!s.lightMap,lightMapEncoding:y(s.lightMap),aoMap:!!s.aoMap,emissiveMap:!!s.emissiveMap,emissiveMapEncoding:y(s.emissiveMap),bumpMap:!!s.bumpMap,normalMap:!!s.normalMap,objectSpaceNormalMap:1===s.normalMapType,tangentSpaceNormalMap:0===s.normalMapType,clearcoat:C,clearcoatMap:C&&!!s.clearcoatMap,clearcoatRoughnessMap:C&&!!s.clearcoatRoughnessMap,clearcoatNormalMap:C&&!!s.clearcoatNormalMap,displacementMap:!!s.displacementMap,roughnessMap:!!s.roughnessMap,metalnessMap:!!s.metalnessMap,specularMap:!!s.specularMap,specularIntensityMap:!!s.specularIntensityMap,specularTintMap:!!s.specularTintMap,specularTintMapEncoding:y(s.specularTintMap),alphaMap:!!s.alphaMap,alphaTest:R,gradientMap:!!s.gradientMap,sheen:s.sheen>0,transmission:s.transmission>0,transmissionMap:!!s.transmissionMap,thicknessMap:!!s.thicknessMap,combine:s.combine,vertexTangents:!!s.normalMap&&!!_.geometry&&!!_.geometry.attributes.tangent,vertexColors:s.vertexColors,vertexAlphas:!0===s.vertexColors&&!!_.geometry&&!!_.geometry.attributes.color&&4===_.geometry.attributes.color.itemSize,vertexUvs:!!(s.map||s.bumpMap||s.normalMap||s.specularMap||s.alphaMap||s.emissiveMap||s.roughnessMap||s.metalnessMap||s.clearcoatMap||s.clearcoatRoughnessMap||s.clearcoatNormalMap||s.displacementMap||s.transmissionMap||s.thicknessMap||s.specularIntensityMap||s.specularTintMap),uvsVertexOnly:!(s.map||s.bumpMap||s.normalMap||s.specularMap||s.alphaMap||s.emissiveMap||s.roughnessMap||s.metalnessMap||s.clearcoatNormalMap||s.transmission>0||s.transmissionMap||s.thicknessMap||s.specularIntensityMap||s.specularTintMap||!s.displacementMap),fog:!!b,useFog:s.fog,fogExp2:b&&b.isFogExp2,flatShading:!!s.flatShading,sizeAttenuation:s.sizeAttenuation,logarithmicDepthBuffer:u,skinning:!0===_.isSkinnedMesh&&T>0,maxBones:T,useVertexTexture:d,morphTargets:!!_.geometry&&!!_.geometry.morphAttributes.position,morphNormals:!!_.geometry&&!!_.geometry.morphAttributes.normal,morphTargetsCount:_.geometry&&_.geometry.morphAttributes.position?_.geometry.morphAttributes.position.length:0,numDirLights:o.directional.length,numPointLights:o.point.length,numSpotLights:o.spot.length,numRectAreaLights:o.rectArea.length,numHemiLights:o.hemi.length,numDirLightShadows:o.directionalShadowMap.length,numPointLightShadows:o.pointShadowMap.length,numSpotLightShadows:o.spotShadowMap.length,numClippingPlanes:a.numPlanes,numClipIntersection:a.numIntersection,format:s.format,dithering:s.dithering,shadowMapEnabled:t.shadowMap.enabled&&v.length>0,shadowMapType:t.shadowMap.type,toneMapping:s.toneMapped?t.toneMapping:0,physicallyCorrectLights:t.physicallyCorrectLights,premultipliedAlpha:s.premultipliedAlpha,doubleSided:2===s.side,flipSided:1===s.side,depthPacking:void 0!==s.depthPacking&&s.depthPacking,index0AttributeName:s.index0AttributeName,extensionDerivatives:s.extensions&&s.extensions.derivatives,extensionFragDepth:s.extensions&&s.extensions.fragDepth,extensionDrawBuffers:s.extensions&&s.extensions.drawBuffers,extensionShaderTextureLOD:s.extensions&&s.extensions.shaderTextureLOD,rendererExtensionFragDepth:h||i.has("EXT_frag_depth"),rendererExtensionDrawBuffers:h||i.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:h||i.has("EXT_shader_texture_lod"),customProgramCacheKey:s.customProgramCacheKey()}},getProgramCacheKey:function(e){const n=[];if(e.shaderID?n.push(e.shaderID):(n.push(e.fragmentShader),n.push(e.vertexShader)),void 0!==e.defines)for(const t in e.defines)n.push(t),n.push(e.defines[t]);if(!1===e.isRawShaderMaterial){for(let t=0;t<v.length;t++)n.push(e[v[t]]);n.push(t.outputEncoding),n.push(t.gammaFactor)}return n.push(e.customProgramCacheKey),n.join()},getUniforms:function(t){const e=g[t.type];let n;if(e){const t=mi[e];n=Yn.clone(t.uniforms)}else n=t.uniforms;return n},acquireProgram:function(e,n){let i;for(let t=0,e=o.length;t<e;t++){const e=o[t];if(e.cacheKey===n){i=e,++i.usedTimes;break}}return void 0===i&&(i=new Ts(t,n,e,s),o.push(i)),i},releaseProgram:function(t){if(0==--t.usedTimes){const e=o.indexOf(t);o[e]=o[o.length-1],o.pop(),t.destroy()}},programs:o}}function As(){let t=new WeakMap;return{get:function(e){let n=t.get(e);return void 0===n&&(n={},t.set(e,n)),n},remove:function(e){t.delete(e)},update:function(e,n,i){t.get(e)[n]=i},dispose:function(){t=new WeakMap}}}function Ls(t,e){return t.groupOrder!==e.groupOrder?t.groupOrder-e.groupOrder:t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.program!==e.program?t.program.id-e.program.id:t.material.id!==e.material.id?t.material.id-e.material.id:t.z!==e.z?t.z-e.z:t.id-e.id}function Rs(t,e){return t.groupOrder!==e.groupOrder?t.groupOrder-e.groupOrder:t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.z!==e.z?e.z-t.z:t.id-e.id}function Cs(t){const e=[];let n=0;const i=[],r=[],s=[],a={id:-1};function o(i,r,s,o,l,c){let h=e[n];const u=t.get(s);return void 0===h?(h={id:i.id,object:i,geometry:r,material:s,program:u.program||a,groupOrder:o,renderOrder:i.renderOrder,z:l,group:c},e[n]=h):(h.id=i.id,h.object=i,h.geometry=r,h.material=s,h.program=u.program||a,h.groupOrder=o,h.renderOrder=i.renderOrder,h.z=l,h.group=c),n++,h}return{opaque:i,transmissive:r,transparent:s,init:function(){n=0,i.length=0,r.length=0,s.length=0},push:function(t,e,n,a,l,c){const h=o(t,e,n,a,l,c);n.transmission>0?r.push(h):!0===n.transparent?s.push(h):i.push(h)},unshift:function(t,e,n,a,l,c){const h=o(t,e,n,a,l,c);n.transmission>0?r.unshift(h):!0===n.transparent?s.unshift(h):i.unshift(h)},finish:function(){for(let t=n,i=e.length;t<i;t++){const n=e[t];if(null===n.id)break;n.id=null,n.object=null,n.geometry=null,n.material=null,n.program=null,n.group=null}},sort:function(t,e){i.length>1&&i.sort(t||Ls),r.length>1&&r.sort(e||Rs),s.length>1&&s.sort(e||Rs)}}}function Ps(t){let e=new WeakMap;return{get:function(n,i){let r;return!1===e.has(n)?(r=new Cs(t),e.set(n,[r])):i>=e.get(n).length?(r=new Cs(t),e.get(n).push(r)):r=e.get(n)[i],r},dispose:function(){e=new WeakMap}}}function Is(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case"DirectionalLight":n={direction:new Nt,color:new nn};break;case"SpotLight":n={position:new Nt,direction:new Nt,color:new nn,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":n={position:new Nt,color:new nn,distance:0,decay:0};break;case"HemisphereLight":n={direction:new Nt,skyColor:new nn,groundColor:new nn};break;case"RectAreaLight":n={color:new nn,position:new Nt,halfWidth:new Nt,halfHeight:new Nt}}return t[e.id]=n,n}}}let Ds=0;function Ns(t,e){return(e.castShadow?1:0)-(t.castShadow?1:0)}function zs(t,e){const n=new Is,i=function(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case"DirectionalLight":case"SpotLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new yt};break;case"PointLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new yt,shadowCameraNear:1,shadowCameraFar:1e3}}return t[e.id]=n,n}}}(),r={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotShadow:[],spotShadowMap:[],spotShadowMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[]};for(let t=0;t<9;t++)r.probe.push(new Nt);const s=new Nt,a=new ue,o=new ue;return{setup:function(s,a){let o=0,l=0,c=0;for(let t=0;t<9;t++)r.probe[t].set(0,0,0);let h=0,u=0,d=0,p=0,m=0,f=0,g=0,v=0;s.sort(Ns);const y=!0!==a?Math.PI:1;for(let t=0,e=s.length;t<e;t++){const e=s[t],a=e.color,x=e.intensity,_=e.distance,b=e.shadow&&e.shadow.map?e.shadow.map.texture:null;if(e.isAmbientLight)o+=a.r*x*y,l+=a.g*x*y,c+=a.b*x*y;else if(e.isLightProbe)for(let t=0;t<9;t++)r.probe[t].addScaledVector(e.sh.coefficients[t],x);else if(e.isDirectionalLight){const t=n.get(e);if(t.color.copy(e.color).multiplyScalar(e.intensity*y),e.castShadow){const t=e.shadow,n=i.get(e);n.shadowBias=t.bias,n.shadowNormalBias=t.normalBias,n.shadowRadius=t.radius,n.shadowMapSize=t.mapSize,r.directionalShadow[h]=n,r.directionalShadowMap[h]=b,r.directionalShadowMatrix[h]=e.shadow.matrix,f++}r.directional[h]=t,h++}else if(e.isSpotLight){const t=n.get(e);if(t.position.setFromMatrixPosition(e.matrixWorld),t.color.copy(a).multiplyScalar(x*y),t.distance=_,t.coneCos=Math.cos(e.angle),t.penumbraCos=Math.cos(e.angle*(1-e.penumbra)),t.decay=e.decay,e.castShadow){const t=e.shadow,n=i.get(e);n.shadowBias=t.bias,n.shadowNormalBias=t.normalBias,n.shadowRadius=t.radius,n.shadowMapSize=t.mapSize,r.spotShadow[d]=n,r.spotShadowMap[d]=b,r.spotShadowMatrix[d]=e.shadow.matrix,v++}r.spot[d]=t,d++}else if(e.isRectAreaLight){const t=n.get(e);t.color.copy(a).multiplyScalar(x),t.halfWidth.set(.5*e.width,0,0),t.halfHeight.set(0,.5*e.height,0),r.rectArea[p]=t,p++}else if(e.isPointLight){const t=n.get(e);if(t.color.copy(e.color).multiplyScalar(e.intensity*y),t.distance=e.distance,t.decay=e.decay,e.castShadow){const t=e.shadow,n=i.get(e);n.shadowBias=t.bias,n.shadowNormalBias=t.normalBias,n.shadowRadius=t.radius,n.shadowMapSize=t.mapSize,n.shadowCameraNear=t.camera.near,n.shadowCameraFar=t.camera.far,r.pointShadow[u]=n,r.pointShadowMap[u]=b,r.pointShadowMatrix[u]=e.shadow.matrix,g++}r.point[u]=t,u++}else if(e.isHemisphereLight){const t=n.get(e);t.skyColor.copy(e.color).multiplyScalar(x*y),t.groundColor.copy(e.groundColor).multiplyScalar(x*y),r.hemi[m]=t,m++}}p>0&&(e.isWebGL2||!0===t.has("OES_texture_float_linear")?(r.rectAreaLTC1=pi.LTC_FLOAT_1,r.rectAreaLTC2=pi.LTC_FLOAT_2):!0===t.has("OES_texture_half_float_linear")?(r.rectAreaLTC1=pi.LTC_HALF_1,r.rectAreaLTC2=pi.LTC_HALF_2):("")),r.ambient[0]=o,r.ambient[1]=l,r.ambient[2]=c;const x=r.hash;x.directionalLength===h&&x.pointLength===u&&x.spotLength===d&&x.rectAreaLength===p&&x.hemiLength===m&&x.numDirectionalShadows===f&&x.numPointShadows===g&&x.numSpotShadows===v||(r.directional.length=h,r.spot.length=d,r.rectArea.length=p,r.point.length=u,r.hemi.length=m,r.directionalShadow.length=f,r.directionalShadowMap.length=f,r.pointShadow.length=g,r.pointShadowMap.length=g,r.spotShadow.length=v,r.spotShadowMap.length=v,r.directionalShadowMatrix.length=f,r.pointShadowMatrix.length=g,r.spotShadowMatrix.length=v,x.directionalLength=h,x.pointLength=u,x.spotLength=d,x.rectAreaLength=p,x.hemiLength=m,x.numDirectionalShadows=f,x.numPointShadows=g,x.numSpotShadows=v,r.version=Ds++)},setupView:function(t,e){let n=0,i=0,l=0,c=0,h=0;const u=e.matrixWorldInverse;for(let e=0,d=t.length;e<d;e++){const d=t[e];if(d.isDirectionalLight){const t=r.directional[n];t.direction.setFromMatrixPosition(d.matrixWorld),s.setFromMatrixPosition(d.target.matrixWorld),t.direction.sub(s),t.direction.transformDirection(u),n++}else if(d.isSpotLight){const t=r.spot[l];t.position.setFromMatrixPosition(d.matrixWorld),t.position.applyMatrix4(u),t.direction.setFromMatrixPosition(d.matrixWorld),s.setFromMatrixPosition(d.target.matrixWorld),t.direction.sub(s),t.direction.transformDirection(u),l++}else if(d.isRectAreaLight){const t=r.rectArea[c];t.position.setFromMatrixPosition(d.matrixWorld),t.position.applyMatrix4(u),o.identity(),a.copy(d.matrixWorld),a.premultiply(u),o.extractRotation(a),t.halfWidth.set(.5*d.width,0,0),t.halfHeight.set(0,.5*d.height,0),t.halfWidth.applyMatrix4(o),t.halfHeight.applyMatrix4(o),c++}else if(d.isPointLight){const t=r.point[i];t.position.setFromMatrixPosition(d.matrixWorld),t.position.applyMatrix4(u),i++}else if(d.isHemisphereLight){const t=r.hemi[h];t.direction.setFromMatrixPosition(d.matrixWorld),t.direction.transformDirection(u),t.direction.normalize(),h++}}},state:r}}function Bs(t,e){const n=new zs(t,e),i=[],r=[];return{init:function(){i.length=0,r.length=0},state:{lightsArray:i,shadowsArray:r,lights:n},setupLights:function(t){n.setup(i,t)},setupLightsView:function(t){n.setupView(i,t)},pushLight:function(t){i.push(t)},pushShadow:function(t){r.push(t)}}}function Fs(t,e){let n=new WeakMap;return{get:function(i,r=0){let s;return!1===n.has(i)?(s=new Bs(t,e),n.set(i,[s])):r>=n.get(i).length?(s=new Bs(t,e),n.get(i).push(s)):s=n.get(i)[r],s},dispose:function(){n=new WeakMap}}}class Os extends Je{constructor(t){super(),this.type="MeshDepthMaterial",this.depthPacking=3200,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.setValues(t)}copy(t){return super.copy(t),this.depthPacking=t.depthPacking,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this}}Os.prototype.isMeshDepthMaterial=!0;class Us extends Je{constructor(t){super(),this.type="MeshDistanceMaterial",this.referencePosition=new Nt,this.nearDistance=1,this.farDistance=1e3,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.fog=!1,this.setValues(t)}copy(t){return super.copy(t),this.referencePosition.copy(t.referencePosition),this.nearDistance=t.nearDistance,this.farDistance=t.farDistance,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this}}Us.prototype.isMeshDistanceMaterial=!0;function Hs(t,e,n){let i=new li;const r=new yt,s=new yt,a=new Rt,o=new Os({depthPacking:3201}),l=new Us,c={},h=n.maxTextureSize,u={0:1,1:0,2:2},d=new Jn({uniforms:{shadow_pass:{value:null},resolution:{value:new yt},radius:{value:4},samples:{value:8}},vertexShader:"void main() {\n\tgl_Position = vec4( position, 1.0 );\n}",fragmentShader:"uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\nuniform float samples;\n#include <packing>\nvoid main() {\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\n\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\n\tfor ( float i = 0.0; i < samples; i ++ ) {\n\t\tfloat uvOffset = uvStart + i * uvStride;\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\n\t\t\tmean += distribution.x;\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n\t\t#else\n\t\t\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean / samples;\n\tsquared_mean = squared_mean / samples;\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}"}),m=d.clone();m.defines.HORIZONTAL_PASS=1;const f=new Tn;f.setAttribute("position",new on(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const v=new Vn(f,d),y=this;function x(n,i){const r=e.update(v);d.uniforms.shadow_pass.value=n.map.texture,d.uniforms.resolution.value=n.mapSize,d.uniforms.radius.value=n.radius,d.uniforms.samples.value=n.blurSamples,t.setRenderTarget(n.mapPass),t.clear(),t.renderBufferDirect(i,null,r,d,v,null),m.uniforms.shadow_pass.value=n.mapPass.texture,m.uniforms.resolution.value=n.mapSize,m.uniforms.radius.value=n.radius,m.uniforms.samples.value=n.blurSamples,t.setRenderTarget(n.map),t.clear(),t.renderBufferDirect(i,null,r,m,v,null)}function _(e,n,i,r,s,a,h){let d=null;const p=!0===r.isPointLight?e.customDistanceMaterial:e.customDepthMaterial;if(d=void 0!==p?p:!0===r.isPointLight?l:o,t.localClippingEnabled&&!0===i.clipShadows&&0!==i.clippingPlanes.length||i.displacementMap&&0!==i.displacementScale||i.alphaMap&&i.alphaTest>0){const t=d.uuid,e=i.uuid;let n=c[t];void 0===n&&(n={},c[t]=n);let r=n[e];void 0===r&&(r=d.clone(),n[e]=r),d=r}return d.visible=i.visible,d.wireframe=i.wireframe,d.side=3===h?null!==i.shadowSide?i.shadowSide:i.side:null!==i.shadowSide?i.shadowSide:u[i.side],d.alphaMap=i.alphaMap,d.alphaTest=i.alphaTest,d.clipShadows=i.clipShadows,d.clippingPlanes=i.clippingPlanes,d.clipIntersection=i.clipIntersection,d.displacementMap=i.displacementMap,d.displacementScale=i.displacementScale,d.displacementBias=i.displacementBias,d.wireframeLinewidth=i.wireframeLinewidth,d.linewidth=i.linewidth,!0===r.isPointLight&&!0===d.isMeshDistanceMaterial&&(d.referencePosition.setFromMatrixPosition(r.matrixWorld),d.nearDistance=s,d.farDistance=a),d}function b(n,r,s,a,o){if(!1===n.visible)return;if(n.layers.test(r.layers)&&(n.isMesh||n.isLine||n.isPoints)&&(n.castShadow||n.receiveShadow&&3===o)&&(!n.frustumCulled||i.intersectsObject(n))){n.modelViewMatrix.multiplyMatrices(s.matrixWorldInverse,n.matrixWorld);const i=e.update(n),r=n.material;if(Array.isArray(r)){const e=i.groups;for(let l=0,c=e.length;l<c;l++){const c=e[l],h=r[c.materialIndex];if(h&&h.visible){const e=_(n,0,h,a,s.near,s.far,o);t.renderBufferDirect(s,null,i,e,n,c)}}}else if(r.visible){const e=_(n,0,r,a,s.near,s.far,o);t.renderBufferDirect(s,null,i,e,n,null)}}const l=n.children;for(let t=0,e=l.length;t<e;t++)b(l[t],r,s,a,o)}this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=1,this.render=function(e,n,o){if(!1===y.enabled)return;if(!1===y.autoUpdate&&!1===y.needsUpdate)return;if(0===e.length)return;const l=t.getRenderTarget(),c=t.getActiveCubeFace(),u=t.getActiveMipmapLevel(),d=t.state;d.setBlending(0),d.buffers.color.setClear(1,1,1,1),d.buffers.depth.setTest(!0),d.setScissorTest(!1);for(let l=0,c=e.length;l<c;l++){const c=e[l],u=c.shadow;if(void 0===u){("",c,"has no shadow.");continue}if(!1===u.autoUpdate&&!1===u.needsUpdate)continue;r.copy(u.mapSize);const m=u.getFrameExtents();if(r.multiply(m),s.copy(u.mapSize),(r.x>h||r.y>h)&&(r.x>h&&(s.x=Math.floor(h/m.x),r.x=s.x*m.x,u.mapSize.x=s.x),r.y>h&&(s.y=Math.floor(h/m.y),r.y=s.y*m.y,u.mapSize.y=s.y)),null===u.map&&!u.isPointLightShadow&&3===this.type){const t={minFilter:g,magFilter:g,format:E};u.map=new Ct(r.x,r.y,t),u.map.texture.name=c.name+".shadowMap",u.mapPass=new Ct(r.x,r.y,t),u.camera.updateProjectionMatrix()}if(null===u.map){const t={minFilter:p,magFilter:p,format:E};u.map=new Ct(r.x,r.y,t),u.map.texture.name=c.name+".shadowMap",u.camera.updateProjectionMatrix()}t.setRenderTarget(u.map),t.clear();const f=u.getViewportCount();for(let t=0;t<f;t++){const e=u.getViewport(t);a.set(s.x*e.x,s.y*e.y,s.x*e.z,s.y*e.w),d.viewport(a),u.updateMatrices(c,t),i=u.getFrustum(),b(n,o,u.camera,c,this.type)}u.isPointLightShadow||3!==this.type||x(u,o),u.needsUpdate=!1}y.needsUpdate=!1,t.setRenderTarget(l,c,u)}}function Gs(t,e,i){const r=i.isWebGL2;const s=new function(){let e=!1;const n=new Rt;let i=null;const r=new Rt(0,0,0,0);return{setMask:function(n){i===n||e||(t.colorMask(n,n,n,n),i=n)},setLocked:function(t){e=t},setClear:function(e,i,s,a,o){!0===o&&(e*=a,i*=a,s*=a),n.set(e,i,s,a),!1===r.equals(n)&&(t.clearColor(e,i,s,a),r.copy(n))},reset:function(){e=!1,i=null,r.set(-1,0,0,0)}}},a=new function(){let e=!1,n=null,i=null,r=null;return{setTest:function(t){t?O(2929):U(2929)},setMask:function(i){n===i||e||(t.depthMask(i),n=i)},setFunc:function(e){if(i!==e){if(e)switch(e){case 0:t.depthFunc(512);break;case 1:t.depthFunc(519);break;case 2:t.depthFunc(513);break;case 3:t.depthFunc(515);break;case 4:t.depthFunc(514);break;case 5:t.depthFunc(518);break;case 6:t.depthFunc(516);break;case 7:t.depthFunc(517);break;default:t.depthFunc(515)}else t.depthFunc(515);i=e}},setLocked:function(t){e=t},setClear:function(e){r!==e&&(t.clearDepth(e),r=e)},reset:function(){e=!1,n=null,i=null,r=null}}},o=new function(){let e=!1,n=null,i=null,r=null,s=null,a=null,o=null,l=null,c=null;return{setTest:function(t){e||(t?O(2960):U(2960))},setMask:function(i){n===i||e||(t.stencilMask(i),n=i)},setFunc:function(e,n,a){i===e&&r===n&&s===a||(t.stencilFunc(e,n,a),i=e,r=n,s=a)},setOp:function(e,n,i){a===e&&o===n&&l===i||(t.stencilOp(e,n,i),a=e,o=n,l=i)},setLocked:function(t){e=t},setClear:function(e){c!==e&&(t.clearStencil(e),c=e)},reset:function(){e=!1,n=null,i=null,r=null,s=null,a=null,o=null,l=null,c=null}}};let l={},c=null,h={},u=null,d=!1,p=null,m=null,f=null,g=null,v=null,y=null,x=null,_=!1,b=null,M=null,w=null,S=null,T=null;const E=t.getParameter(35661);let A=!1,L=0;const R=t.getParameter(7938);-1!==R.indexOf("WebGL")?(L=parseFloat(/^WebGL (\d)/.exec(R)[1]),A=L>=1):-1!==R.indexOf("OpenGL ES")&&(L=parseFloat(/^OpenGL ES (\d)/.exec(R)[1]),A=L>=2);let C=null,P={};const I=t.getParameter(3088),D=t.getParameter(2978),N=(new Rt).fromArray(I),z=(new Rt).fromArray(D);function B(e,n,i){const r=new Uint8Array(4),s=t.createTexture();t.bindTexture(e,s),t.texParameteri(e,10241,9728),t.texParameteri(e,10240,9728);for(let e=0;e<i;e++)t.texImage2D(n+e,0,6408,1,1,0,6408,5121,r);return s}const F={};function O(e){!0!==l[e]&&(t.enable(e),l[e]=!0)}function U(e){!1!==l[e]&&(t.disable(e),l[e]=!1)}F[3553]=B(3553,3553,1),F[34067]=B(34067,34069,6),s.setClear(0,0,0,1),a.setClear(1),o.setClear(0),O(2929),a.setFunc(3),V(!1),W(1),O(2884),k(0);const H={[n]:32774,101:32778,102:32779};if(r)H[103]=32775,H[104]=32776;else{const t=e.get("EXT_blend_minmax");null!==t&&(H[103]=t.MIN_EXT,H[104]=t.MAX_EXT)}const G={200:0,201:1,202:768,204:770,210:776,208:774,206:772,203:769,205:771,209:775,207:773};function k(e,i,r,s,a,o,l,c){if(0!==e){if(!1===d&&(O(3042),d=!0),5===e)a=a||i,o=o||r,l=l||s,i===m&&a===v||(t.blendEquationSeparate(H[i],H[a]),m=i,v=a),r===f&&s===g&&o===y&&l===x||(t.blendFuncSeparate(G[r],G[s],G[o],G[l]),f=r,g=s,y=o,x=l),p=e,_=null;else if(e!==p||c!==_){if(m===n&&v===n||(t.blendEquation(32774),m=n,v=n),c)switch(e){case 1:t.blendFuncSeparate(1,771,1,771);break;case 2:t.blendFunc(1,1);break;case 3:t.blendFuncSeparate(0,0,769,771);break;case 4:t.blendFuncSeparate(0,768,0,770);break;default:("",e)}else switch(e){case 1:t.blendFuncSeparate(770,771,1,771);break;case 2:t.blendFunc(770,1);break;case 3:t.blendFunc(0,769);break;case 4:t.blendFunc(0,768);break;default:("",e)}f=null,g=null,y=null,x=null,p=e,_=c}}else!0===d&&(U(3042),d=!1)}function V(e){b!==e&&(e?t.frontFace(2304):t.frontFace(2305),b=e)}function W(e){0!==e?(O(2884),e!==M&&(1===e?t.cullFace(1029):2===e?t.cullFace(1028):t.cullFace(1032))):U(2884),M=e}function j(e,n,i){e?(O(32823),S===n&&T===i||(t.polygonOffset(n,i),S=n,T=i)):U(32823)}function q(e){void 0===e&&(e=33984+E-1),C!==e&&(t.activeTexture(e),C=e)}return{buffers:{color:s,depth:a,stencil:o},enable:O,disable:U,bindFramebuffer:function(e,n){return null===n&&null!==c&&(n=c),h[e]!==n&&(t.bindFramebuffer(e,n),h[e]=n,r&&(36009===e&&(h[36160]=n),36160===e&&(h[36009]=n)),!0)},bindXRFramebuffer:function(e){e!==c&&(t.bindFramebuffer(36160,e),c=e)},useProgram:function(e){return u!==e&&(t.useProgram(e),u=e,!0)},setBlending:k,setMaterial:function(t,e){2===t.side?U(2884):O(2884);let n=1===t.side;e&&(n=!n),V(n),1===t.blending&&!1===t.transparent?k(0):k(t.blending,t.blendEquation,t.blendSrc,t.blendDst,t.blendEquationAlpha,t.blendSrcAlpha,t.blendDstAlpha,t.premultipliedAlpha),a.setFunc(t.depthFunc),a.setTest(t.depthTest),a.setMask(t.depthWrite),s.setMask(t.colorWrite);const i=t.stencilWrite;o.setTest(i),i&&(o.setMask(t.stencilWriteMask),o.setFunc(t.stencilFunc,t.stencilRef,t.stencilFuncMask),o.setOp(t.stencilFail,t.stencilZFail,t.stencilZPass)),j(t.polygonOffset,t.polygonOffsetFactor,t.polygonOffsetUnits),!0===t.alphaToCoverage?O(32926):U(32926)},setFlipSided:V,setCullFace:W,setLineWidth:function(e){e!==w&&(A&&t.lineWidth(e),w=e)},setPolygonOffset:j,setScissorTest:function(t){t?O(3089):U(3089)},activeTexture:q,bindTexture:function(e,n){null===C&&q();let i=P[C];void 0===i&&(i={type:void 0,texture:void 0},P[C]=i),i.type===e&&i.texture===n||(t.bindTexture(e,n||F[e]),i.type=e,i.texture=n)},unbindTexture:function(){const e=P[C];void 0!==e&&void 0!==e.type&&(t.bindTexture(e.type,null),e.type=void 0,e.texture=void 0)},compressedTexImage2D:function(){try{t.compressedTexImage2D.apply(t,arguments)}catch(t){("",t)}},texImage2D:function(){try{t.texImage2D.apply(t,arguments)}catch(t){("",t)}},texImage3D:function(){try{t.texImage3D.apply(t,arguments)}catch(t){("",t)}},scissor:function(e){!1===N.equals(e)&&(t.scissor(e.x,e.y,e.z,e.w),N.copy(e))},viewport:function(e){!1===z.equals(e)&&(t.viewport(e.x,e.y,e.z,e.w),z.copy(e))},reset:function(){t.disable(3042),t.disable(2884),t.disable(2929),t.disable(32823),t.disable(3089),t.disable(2960),t.disable(32926),t.blendEquation(32774),t.blendFunc(1,0),t.blendFuncSeparate(1,0,1,0),t.colorMask(!0,!0,!0,!0),t.clearColor(0,0,0,0),t.depthMask(!0),t.depthFunc(513),t.clearDepth(1),t.stencilMask(4294967295),t.stencilFunc(519,0,4294967295),t.stencilOp(7680,7680,7680),t.clearStencil(0),t.cullFace(1029),t.frontFace(2305),t.polygonOffset(0,0),t.activeTexture(33984),t.bindFramebuffer(36160,null),!0===r&&(t.bindFramebuffer(36009,null),t.bindFramebuffer(36008,null)),t.useProgram(null),t.lineWidth(1),t.scissor(0,0,t.canvas.width,t.canvas.height),t.viewport(0,0,t.canvas.width,t.canvas.height),l={},C=null,P={},c=null,h={},u=null,d=!1,p=null,m=null,f=null,g=null,v=null,y=null,x=null,_=!1,b=null,M=null,w=null,S=null,T=null,N.set(0,0,t.canvas.width,t.canvas.height),z.set(0,0,t.canvas.width,t.canvas.height),s.reset(),a.reset(),o.reset()}}}function ks(t,e,n,i,r,s,a){const o=r.isWebGL2,l=r.maxTextures,c=r.maxCubemapSize,x=r.maxTextureSize,R=r.maxSamples,C=new WeakMap;let P,I=!1;try{I="undefined"!=typeof OffscreenCanvas&&null!==new OffscreenCanvas(1,1).getContext("2d")}catch(t){}function D(t,e){return I?new OffscreenCanvas(t,e):wt("canvas")}function N(t,e,n,i){let r=1;if((t.width>i||t.height>i)&&(r=i/Math.max(t.width,t.height)),r<1||!0===e){if("undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap){const i=e?gt:Math.floor,s=i(r*t.width),a=i(r*t.height);void 0===P&&(P=D(s,a));const o=n?D(s,a):P;o.width=s,o.height=a;return o.getContext("2d").drawImage(t,0,0,s,a),(""+t.width+"x"+t.height+") to ("+s+"x"+a+")."),o}return"data"in t&&(""+t.width+"x"+t.height+")."),t}return t}function z(t){return mt(t.width)&&mt(t.height)}function B(t,e){return t.generateMipmaps&&e&&t.minFilter!==p&&t.minFilter!==g}function F(e,n,r,s,a=1){t.generateMipmap(e);i.get(n).__maxMipLevel=Math.log2(Math.max(r,s,a))}function O(n,i,r,s){if(!1===o)return i;if(null!==n){if(void 0!==t[n])return t[n];(""+n+"'")}let a=i;return 6403===i&&(5126===r&&(a=33326),5131===r&&(a=33325),5121===r&&(a=33321)),6407===i&&(5126===r&&(a=34837),5131===r&&(a=34843),5121===r&&(a=32849)),6408===i&&(5126===r&&(a=34836),5131===r&&(a=34842),5121===r&&(a=s===Y?35907:32856)),33325!==a&&33326!==a&&34842!==a&&34836!==a||e.get("EXT_color_buffer_float"),a}function U(t){return t===p||t===m||t===f?9728:9729}function H(e){const n=e.target;n.removeEventListener("dispose",H),function(e){const n=i.get(e);if(void 0===n.__webglInit)return;t.deleteTexture(n.__webglTexture),i.remove(e)}(n),n.isVideoTexture&&C.delete(n),a.memory.textures--}function G(e){const n=e.target;n.removeEventListener("dispose",G),function(e){const n=e.texture,r=i.get(e),s=i.get(n);if(!e)return;void 0!==s.__webglTexture&&(t.deleteTexture(s.__webglTexture),a.memory.textures--);e.depthTexture&&e.depthTexture.dispose();if(e.isWebGLCubeRenderTarget)for(let e=0;e<6;e++)t.deleteFramebuffer(r.__webglFramebuffer[e]),r.__webglDepthbuffer&&t.deleteRenderbuffer(r.__webglDepthbuffer[e]);else t.deleteFramebuffer(r.__webglFramebuffer),r.__webglDepthbuffer&&t.deleteRenderbuffer(r.__webglDepthbuffer),r.__webglMultisampledFramebuffer&&t.deleteFramebuffer(r.__webglMultisampledFramebuffer),r.__webglColorRenderbuffer&&t.deleteRenderbuffer(r.__webglColorRenderbuffer),r.__webglDepthRenderbuffer&&t.deleteRenderbuffer(r.__webglDepthRenderbuffer);if(e.isWebGLMultipleRenderTargets)for(let e=0,r=n.length;e<r;e++){const r=i.get(n[e]);r.__webglTexture&&(t.deleteTexture(r.__webglTexture),a.memory.textures--),i.remove(n[e])}i.remove(n),i.remove(e)}(n)}let k=0;function V(t,e){const r=i.get(t);if(t.isVideoTexture&&function(t){const e=a.render.frame;C.get(t)!==e&&(C.set(t,e),t.update())}(t),t.version>0&&r.__version!==t.version){const n=t.image;if(void 0===n)("");else{if(!1!==n.complete)return void Z(r,t,e);("")}}n.activeTexture(33984+e),n.bindTexture(3553,r.__webglTexture)}function W(e,r){const a=i.get(e);e.version>0&&a.__version!==e.version?function(e,i,r){if(6!==i.image.length)return;J(e,i),n.activeTexture(33984+r),n.bindTexture(34067,e.__webglTexture),t.pixelStorei(37440,i.flipY),t.pixelStorei(37441,i.premultiplyAlpha),t.pixelStorei(3317,i.unpackAlignment),t.pixelStorei(37443,0);const a=i&&(i.isCompressedTexture||i.image[0].isCompressedTexture),l=i.image[0]&&i.image[0].isDataTexture,h=[];for(let t=0;t<6;t++)h[t]=a||l?l?i.image[t].image:i.image[t]:N(i.image[t],!1,!0,c);const u=h[0],d=z(u)||o,p=s.convert(i.format),m=s.convert(i.type),f=O(i.internalFormat,p,m,i.encoding);let g;if(X(34067,i,d),a){for(let t=0;t<6;t++){g=h[t].mipmaps;for(let e=0;e<g.length;e++){const r=g[e];i.format!==E&&i.format!==T?null!==p?n.compressedTexImage2D(34069+t,e,f,r.width,r.height,0,r.data):(""):n.texImage2D(34069+t,e,f,r.width,r.height,0,p,m,r.data)}}e.__maxMipLevel=g.length-1}else{g=i.mipmaps;for(let t=0;t<6;t++)if(l){n.texImage2D(34069+t,0,f,h[t].width,h[t].height,0,p,m,h[t].data);for(let e=0;e<g.length;e++){const i=g[e].image[t].image;n.texImage2D(34069+t,e+1,f,i.width,i.height,0,p,m,i.data)}}else{n.texImage2D(34069+t,0,f,p,m,h[t]);for(let e=0;e<g.length;e++){const i=g[e];n.texImage2D(34069+t,e+1,f,p,m,i.image[t])}}e.__maxMipLevel=g.length}B(i,d)&&F(34067,i,u.width,u.height);e.__version=i.version,i.onUpdate&&i.onUpdate(i)}(a,e,r):(n.activeTexture(33984+r),n.bindTexture(34067,a.__webglTexture))}const j={[h]:10497,[u]:33071,[d]:33648},q={[p]:9728,[m]:9984,[f]:9986,[g]:9729,[v]:9985,[y]:9987};function X(n,s,a){if(a?(t.texParameteri(n,10242,j[s.wrapS]),t.texParameteri(n,10243,j[s.wrapT]),32879!==n&&35866!==n||t.texParameteri(n,32882,j[s.wrapR]),t.texParameteri(n,10240,q[s.magFilter]),t.texParameteri(n,10241,q[s.minFilter])):(t.texParameteri(n,10242,33071),t.texParameteri(n,10243,33071),32879!==n&&35866!==n||t.texParameteri(n,32882,33071),s.wrapS===u&&s.wrapT===u||(""),t.texParameteri(n,10240,U(s.magFilter)),t.texParameteri(n,10241,U(s.minFilter)),s.minFilter!==p&&s.minFilter!==g&&("")),!0===e.has("EXT_texture_filter_anisotropic")){const a=e.get("EXT_texture_filter_anisotropic");if(s.type===M&&!1===e.has("OES_texture_float_linear"))return;if(!1===o&&s.type===w&&!1===e.has("OES_texture_half_float_linear"))return;(s.anisotropy>1||i.get(s).__currentAnisotropy)&&(t.texParameterf(n,a.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(s.anisotropy,r.getMaxAnisotropy())),i.get(s).__currentAnisotropy=s.anisotropy)}}function J(e,n){void 0===e.__webglInit&&(e.__webglInit=!0,n.addEventListener("dispose",H),e.__webglTexture=t.createTexture(),a.memory.textures++)}function Z(e,i,r){let a=3553;i.isDataTexture2DArray&&(a=35866),i.isDataTexture3D&&(a=32879),J(e,i),n.activeTexture(33984+r),n.bindTexture(a,e.__webglTexture),t.pixelStorei(37440,i.flipY),t.pixelStorei(37441,i.premultiplyAlpha),t.pixelStorei(3317,i.unpackAlignment),t.pixelStorei(37443,0);const l=function(t){return!o&&(t.wrapS!==u||t.wrapT!==u||t.minFilter!==p&&t.minFilter!==g)}(i)&&!1===z(i.image),c=N(i.image,l,!1,x),h=z(c)||o,d=s.convert(i.format);let m,f=s.convert(i.type),v=O(i.internalFormat,d,f,i.encoding);X(a,i,h);const y=i.mipmaps;if(i.isDepthTexture)v=6402,o?v=i.type===M?36012:i.type===b?33190:i.type===S?35056:33189:i.type===M&&(""),i.format===A&&6402===v&&i.type!==_&&i.type!==b&&((""),i.type=_,f=s.convert(i.type)),i.format===L&&6402===v&&(v=34041,i.type!==S&&((""),i.type=S,f=s.convert(i.type))),n.texImage2D(3553,0,v,c.width,c.height,0,d,f,null);else if(i.isDataTexture)if(y.length>0&&h){for(let t=0,e=y.length;t<e;t++)m=y[t],n.texImage2D(3553,t,v,m.width,m.height,0,d,f,m.data);i.generateMipmaps=!1,e.__maxMipLevel=y.length-1}else n.texImage2D(3553,0,v,c.width,c.height,0,d,f,c.data),e.__maxMipLevel=0;else if(i.isCompressedTexture){for(let t=0,e=y.length;t<e;t++)m=y[t],i.format!==E&&i.format!==T?null!==d?n.compressedTexImage2D(3553,t,v,m.width,m.height,0,m.data):(""):n.texImage2D(3553,t,v,m.width,m.height,0,d,f,m.data);e.__maxMipLevel=y.length-1}else if(i.isDataTexture2DArray)n.texImage3D(35866,0,v,c.width,c.height,c.depth,0,d,f,c.data),e.__maxMipLevel=0;else if(i.isDataTexture3D)n.texImage3D(32879,0,v,c.width,c.height,c.depth,0,d,f,c.data),e.__maxMipLevel=0;else if(y.length>0&&h){for(let t=0,e=y.length;t<e;t++)m=y[t],n.texImage2D(3553,t,v,d,f,m);i.generateMipmaps=!1,e.__maxMipLevel=y.length-1}else n.texImage2D(3553,0,v,d,f,c),e.__maxMipLevel=0;B(i,h)&&F(a,i,c.width,c.height),e.__version=i.version,i.onUpdate&&i.onUpdate(i)}function Q(e,r,a,o,l){const c=s.convert(a.format),h=s.convert(a.type),u=O(a.internalFormat,c,h,a.encoding);32879===l||35866===l?n.texImage3D(l,0,u,r.width,r.height,r.depth,0,c,h,null):n.texImage2D(l,0,u,r.width,r.height,0,c,h,null),n.bindFramebuffer(36160,e),t.framebufferTexture2D(36160,o,l,i.get(a).__webglTexture,0),n.bindFramebuffer(36160,null)}function K(e,n,i){if(t.bindRenderbuffer(36161,e),n.depthBuffer&&!n.stencilBuffer){let r=33189;if(i){const e=n.depthTexture;e&&e.isDepthTexture&&(e.type===M?r=36012:e.type===b&&(r=33190));const i=tt(n);t.renderbufferStorageMultisample(36161,i,r,n.width,n.height)}else t.renderbufferStorage(36161,r,n.width,n.height);t.framebufferRenderbuffer(36160,36096,36161,e)}else if(n.depthBuffer&&n.stencilBuffer){if(i){const e=tt(n);t.renderbufferStorageMultisample(36161,e,35056,n.width,n.height)}else t.renderbufferStorage(36161,34041,n.width,n.height);t.framebufferRenderbuffer(36160,33306,36161,e)}else{const e=!0===n.isWebGLMultipleRenderTargets?n.texture[0]:n.texture,r=s.convert(e.format),a=s.convert(e.type),o=O(e.internalFormat,r,a,e.encoding);if(i){const e=tt(n);t.renderbufferStorageMultisample(36161,e,o,n.width,n.height)}else t.renderbufferStorage(36161,o,n.width,n.height)}t.bindRenderbuffer(36161,null)}function $(e){const r=i.get(e),s=!0===e.isWebGLCubeRenderTarget;if(e.depthTexture){if(s)throw new Error("");!function(e,r){if(r&&r.isWebGLCubeRenderTarget)throw new Error("");if(n.bindFramebuffer(36160,e),!r.depthTexture||!r.depthTexture.isDepthTexture)throw new Error("");i.get(r.depthTexture).__webglTexture&&r.depthTexture.image.width===r.width&&r.depthTexture.image.height===r.height||(r.depthTexture.image.width=r.width,r.depthTexture.image.height=r.height,r.depthTexture.needsUpdate=!0),V(r.depthTexture,0);const s=i.get(r.depthTexture).__webglTexture;if(r.depthTexture.format===A)t.framebufferTexture2D(36160,36096,3553,s,0);else{if(r.depthTexture.format!==L)throw new Error("");t.framebufferTexture2D(36160,33306,3553,s,0)}}(r.__webglFramebuffer,e)}else if(s){r.__webglDepthbuffer=[];for(let i=0;i<6;i++)n.bindFramebuffer(36160,r.__webglFramebuffer[i]),r.__webglDepthbuffer[i]=t.createRenderbuffer(),K(r.__webglDepthbuffer[i],e,!1)}else n.bindFramebuffer(36160,r.__webglFramebuffer),r.__webglDepthbuffer=t.createRenderbuffer(),K(r.__webglDepthbuffer,e,!1);n.bindFramebuffer(36160,null)}function tt(t){return o&&t.isWebGLMultisampleRenderTarget?Math.min(R,t.samples):0}let et=!1,nt=!1;this.allocateTextureUnit=function(){const t=k;return t>=l&&(""+t+" texture units while this GPU supports only "+l),k+=1,t},this.resetTextureUnits=function(){k=0},this.setTexture2D=V,this.setTexture2DArray=function(t,e){const r=i.get(t);t.version>0&&r.__version!==t.version?Z(r,t,e):(n.activeTexture(33984+e),n.bindTexture(35866,r.__webglTexture))},this.setTexture3D=function(t,e){const r=i.get(t);t.version>0&&r.__version!==t.version?Z(r,t,e):(n.activeTexture(33984+e),n.bindTexture(32879,r.__webglTexture))},this.setTextureCube=W,this.setupRenderTarget=function(e){const l=e.texture,c=i.get(e),h=i.get(l);e.addEventListener("dispose",G),!0!==e.isWebGLMultipleRenderTargets&&(h.__webglTexture=t.createTexture(),h.__version=l.version,a.memory.textures++);const u=!0===e.isWebGLCubeRenderTarget,d=!0===e.isWebGLMultipleRenderTargets,p=!0===e.isWebGLMultisampleRenderTarget,m=l.isDataTexture3D||l.isDataTexture2DArray,f=z(e)||o;if(!o||l.format!==T||l.type!==M&&l.type!==w||(l.format=E,("")),u){c.__webglFramebuffer=[];for(let e=0;e<6;e++)c.__webglFramebuffer[e]=t.createFramebuffer()}else if(c.__webglFramebuffer=t.createFramebuffer(),d)if(r.drawBuffers){const n=e.texture;for(let e=0,r=n.length;e<r;e++){const r=i.get(n[e]);void 0===r.__webglTexture&&(r.__webglTexture=t.createTexture(),a.memory.textures++)}}else ("");else if(p)if(o){c.__webglMultisampledFramebuffer=t.createFramebuffer(),c.__webglColorRenderbuffer=t.createRenderbuffer(),t.bindRenderbuffer(36161,c.__webglColorRenderbuffer);const i=s.convert(l.format),r=s.convert(l.type),a=O(l.internalFormat,i,r,l.encoding),o=tt(e);t.renderbufferStorageMultisample(36161,o,a,e.width,e.height),n.bindFramebuffer(36160,c.__webglMultisampledFramebuffer),t.framebufferRenderbuffer(36160,36064,36161,c.__webglColorRenderbuffer),t.bindRenderbuffer(36161,null),e.depthBuffer&&(c.__webglDepthRenderbuffer=t.createRenderbuffer(),K(c.__webglDepthRenderbuffer,e,!0)),n.bindFramebuffer(36160,null)}else ("");if(u){n.bindTexture(34067,h.__webglTexture),X(34067,l,f);for(let t=0;t<6;t++)Q(c.__webglFramebuffer[t],e,l,36064,34069+t);B(l,f)&&F(34067,l,e.width,e.height),n.unbindTexture()}else if(d){const t=e.texture;for(let r=0,s=t.length;r<s;r++){const s=t[r],a=i.get(s);n.bindTexture(3553,a.__webglTexture),X(3553,s,f),Q(c.__webglFramebuffer,e,s,36064+r,3553),B(s,f)&&F(3553,s,e.width,e.height)}n.unbindTexture()}else{let t=3553;if(m)if(o){t=l.isDataTexture3D?32879:35866}else ("");n.bindTexture(t,h.__webglTexture),X(t,l,f),Q(c.__webglFramebuffer,e,l,36064,t),B(l,f)&&F(t,l,e.width,e.height,e.depth),n.unbindTexture()}e.depthBuffer&&$(e)},this.updateRenderTargetMipmap=function(t){const e=z(t)||o,r=!0===t.isWebGLMultipleRenderTargets?t.texture:[t.texture];for(let s=0,a=r.length;s<a;s++){const a=r[s];if(B(a,e)){const e=t.isWebGLCubeRenderTarget?34067:3553,r=i.get(a).__webglTexture;n.bindTexture(e,r),F(e,a,t.width,t.height),n.unbindTexture()}}},this.updateMultisampleRenderTarget=function(e){if(e.isWebGLMultisampleRenderTarget)if(o){const r=e.width,s=e.height;let a=16384;e.depthBuffer&&(a|=256),e.stencilBuffer&&(a|=1024);const o=i.get(e);n.bindFramebuffer(36008,o.__webglMultisampledFramebuffer),n.bindFramebuffer(36009,o.__webglFramebuffer),t.blitFramebuffer(0,0,r,s,0,0,r,s,a,9728),n.bindFramebuffer(36008,null),n.bindFramebuffer(36009,o.__webglMultisampledFramebuffer)}else ("")},this.safeSetTexture2D=function(t,e){t&&t.isWebGLRenderTarget&&(!1===et&&((""),et=!0),t=t.texture),V(t,e)},this.safeSetTextureCube=function(t,e){t&&t.isWebGLCubeRenderTarget&&(!1===nt&&((""),nt=!0),t=t.texture),W(t,e)}}function Vs(t,e,n){const i=n.isWebGL2;return{convert:function(t){let n;if(t===x)return 5121;if(1017===t)return 32819;if(1018===t)return 32820;if(1019===t)return 33635;if(1010===t)return 5120;if(1011===t)return 5122;if(t===_)return 5123;if(1013===t)return 5124;if(t===b)return 5125;if(t===M)return 5126;if(t===w)return i?5131:(n=e.get("OES_texture_half_float"),null!==n?n.HALF_FLOAT_OES:null);if(1021===t)return 6406;if(t===T)return 6407;if(t===E)return 6408;if(1024===t)return 6409;if(1025===t)return 6410;if(t===A)return 6402;if(t===L)return 34041;if(1028===t)return 6403;if(1029===t)return 36244;if(1030===t)return 33319;if(1031===t)return 33320;if(1032===t)return 36248;if(1033===t)return 36249;if(t===R||t===C||t===P||t===I){if(n=e.get("WEBGL_compressed_texture_s3tc"),null===n)return null;if(t===R)return n.COMPRESSED_RGB_S3TC_DXT1_EXT;if(t===C)return n.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(t===P)return n.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(t===I)return n.COMPRESSED_RGBA_S3TC_DXT5_EXT}if(t===D||t===N||t===z||t===B){if(n=e.get("WEBGL_compressed_texture_pvrtc"),null===n)return null;if(t===D)return n.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(t===N)return n.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(t===z)return n.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(t===B)return n.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(36196===t)return n=e.get("WEBGL_compressed_texture_etc1"),null!==n?n.COMPRESSED_RGB_ETC1_WEBGL:null;if((t===F||t===O)&&(n=e.get("WEBGL_compressed_texture_etc"),null!==n)){if(t===F)return n.COMPRESSED_RGB8_ETC2;if(t===O)return n.COMPRESSED_RGBA8_ETC2_EAC}return 37808===t||37809===t||37810===t||37811===t||37812===t||37813===t||37814===t||37815===t||37816===t||37817===t||37818===t||37819===t||37820===t||37821===t||37840===t||37841===t||37842===t||37843===t||37844===t||37845===t||37846===t||37847===t||37848===t||37849===t||37850===t||37851===t||37852===t||37853===t?(n=e.get("WEBGL_compressed_texture_astc"),null!==n?t:null):36492===t?(n=e.get("EXT_texture_compression_bptc"),null!==n?t:null):t===S?i?34042:(n=e.get("WEBGL_depth_texture"),null!==n?n.UNSIGNED_INT_24_8_WEBGL:null):void 0}}}class Ws extends Qn{constructor(t=[]){super(),this.cameras=t}}Ws.prototype.isArrayCamera=!0;class js extends Be{constructor(){super(),this.type="Group"}}js.prototype.isGroup=!0;const qs={type:"move"};class Xs{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return null===this._hand&&(this._hand=new js,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return null===this._targetRay&&(this._targetRay=new js,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new Nt,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new Nt),this._targetRay}getGripSpace(){return null===this._grip&&(this._grip=new js,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new Nt,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new Nt),this._grip}dispatchEvent(t){return null!==this._targetRay&&this._targetRay.dispatchEvent(t),null!==this._grip&&this._grip.dispatchEvent(t),null!==this._hand&&this._hand.dispatchEvent(t),this}disconnect(t){return this.dispatchEvent({type:"disconnected",data:t}),null!==this._targetRay&&(this._targetRay.visible=!1),null!==this._grip&&(this._grip.visible=!1),null!==this._hand&&(this._hand.visible=!1),this}update(t,e,n){let i=null,r=null,s=null;const a=this._targetRay,o=this._grip,l=this._hand;if(t&&"visible-blurred"!==e.session.visibilityState)if(null!==a&&(i=e.getPose(t.targetRaySpace,n),null!==i&&(a.matrix.fromArray(i.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),i.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(i.linearVelocity)):a.hasLinearVelocity=!1,i.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(i.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(qs))),l&&t.hand){s=!0;for(const i of t.hand.values()){const t=e.getJointPose(i,n);if(void 0===l.joints[i.jointName]){const t=new js;t.matrixAutoUpdate=!1,t.visible=!1,l.joints[i.jointName]=t,l.add(t)}const r=l.joints[i.jointName];null!==t&&(r.matrix.fromArray(t.transform.matrix),r.matrix.decompose(r.position,r.rotation,r.scale),r.jointRadius=t.radius),r.visible=null!==t}const i=l.joints["index-finger-tip"],r=l.joints["thumb-tip"],a=i.position.distanceTo(r.position),o=.02,c=.005;l.inputState.pinching&&a>o+c?(l.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:t.handedness,target:this})):!l.inputState.pinching&&a<=o-c&&(l.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:t.handedness,target:this}))}else null!==o&&t.gripSpace&&(r=e.getPose(t.gripSpace,n),null!==r&&(o.matrix.fromArray(r.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),r.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(r.linearVelocity)):o.hasLinearVelocity=!1,r.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(r.angularVelocity)):o.hasAngularVelocity=!1));return null!==a&&(a.visible=null!==i),null!==o&&(o.visible=null!==r),null!==l&&(l.visible=null!==s),this}}class Ys extends rt{constructor(t,e){super();const n=this,i=t.state;let r=null,s=1,a=null,o="local-floor",l=null,c=null,h=null,u=null,d=null,p=!1,m=null,f=null,g=null,v=null,y=null,x=null;const _=[],b=new Map,M=new Qn;M.layers.enable(1),M.viewport=new Rt;const w=new Qn;w.layers.enable(2),w.viewport=new Rt;const S=[M,w],T=new Ws;T.layers.enable(1),T.layers.enable(2);let E=null,A=null;function L(t){const e=b.get(t.inputSource);e&&e.dispatchEvent({type:t.type,data:t.inputSource})}function R(){b.forEach((function(t,e){t.disconnect(e)})),b.clear(),E=null,A=null,i.bindXRFramebuffer(null),t.setRenderTarget(t.getRenderTarget()),h&&e.deleteFramebuffer(h),m&&e.deleteFramebuffer(m),f&&e.deleteRenderbuffer(f),g&&e.deleteRenderbuffer(g),h=null,m=null,f=null,g=null,d=null,u=null,c=null,r=null,z.stop(),n.isPresenting=!1,n.dispatchEvent({type:"sessionend"})}function C(t){const e=r.inputSources;for(let t=0;t<_.length;t++)b.set(e[t],_[t]);for(let e=0;e<t.removed.length;e++){const n=t.removed[e],i=b.get(n);i&&(i.dispatchEvent({type:"disconnected",data:n}),b.delete(n))}for(let e=0;e<t.added.length;e++){const n=t.added[e],i=b.get(n);i&&i.dispatchEvent({type:"connected",data:n})}}this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(t){let e=_[t];return void 0===e&&(e=new Xs,_[t]=e),e.getTargetRaySpace()},this.getControllerGrip=function(t){let e=_[t];return void 0===e&&(e=new Xs,_[t]=e),e.getGripSpace()},this.getHand=function(t){let e=_[t];return void 0===e&&(e=new Xs,_[t]=e),e.getHandSpace()},this.setFramebufferScaleFactor=function(t){s=t,!0===n.isPresenting&&("")},this.setReferenceSpaceType=function(t){o=t,!0===n.isPresenting&&("")},this.getReferenceSpace=function(){return a},this.getBaseLayer=function(){return null!==u?u:d},this.getBinding=function(){return c},this.getFrame=function(){return v},this.getSession=function(){return r},this.setSession=async function(t){if(r=t,null!==r){r.addEventListener("select",L),r.addEventListener("selectstart",L),r.addEventListener("selectend",L),r.addEventListener("squeeze",L),r.addEventListener("squeezestart",L),r.addEventListener("squeezeend",L),r.addEventListener("end",R),r.addEventListener("inputsourceschange",C);const t=e.getContextAttributes();if(!0!==t.xrCompatible&&await e.makeXRCompatible(),void 0===r.renderState.layers){const n={antialias:t.antialias,alpha:t.alpha,depth:t.depth,stencil:t.stencil,framebufferScaleFactor:s};d=new XRWebGLLayer(r,e,n),r.updateRenderState({baseLayer:d})}else if(e instanceof WebGLRenderingContext){const n={antialias:!0,alpha:t.alpha,depth:t.depth,stencil:t.stencil,framebufferScaleFactor:s};d=new XRWebGLLayer(r,e,n),r.updateRenderState({layers:[d]})}else{p=t.antialias;let n=null;t.depth&&(x=256,t.stencil&&(x|=1024),y=t.stencil?33306:36096,n=t.stencil?35056:33190);const a={colorFormat:t.alpha?32856:32849,depthFormat:n,scaleFactor:s};c=new XRWebGLBinding(r,e),u=c.createProjectionLayer(a),h=e.createFramebuffer(),r.updateRenderState({layers:[u]}),p&&(m=e.createFramebuffer(),f=e.createRenderbuffer(),e.bindRenderbuffer(36161,f),e.renderbufferStorageMultisample(36161,4,32856,u.textureWidth,u.textureHeight),i.bindFramebuffer(36160,m),e.framebufferRenderbuffer(36160,36064,36161,f),e.bindRenderbuffer(36161,null),null!==n&&(g=e.createRenderbuffer(),e.bindRenderbuffer(36161,g),e.renderbufferStorageMultisample(36161,4,n,u.textureWidth,u.textureHeight),e.framebufferRenderbuffer(36160,y,36161,g),e.bindRenderbuffer(36161,null)),i.bindFramebuffer(36160,null))}a=await r.requestReferenceSpace(o),z.setContext(r),z.start(),n.isPresenting=!0,n.dispatchEvent({type:"sessionstart"})}};const P=new Nt,I=new Nt;function D(t,e){null===e?t.matrixWorld.copy(t.matrix):t.matrixWorld.multiplyMatrices(e.matrixWorld,t.matrix),t.matrixWorldInverse.copy(t.matrixWorld).invert()}this.updateCamera=function(t){if(null===r)return;T.near=w.near=M.near=t.near,T.far=w.far=M.far=t.far,E===T.near&&A===T.far||(r.updateRenderState({depthNear:T.near,depthFar:T.far}),E=T.near,A=T.far);const e=t.parent,n=T.cameras;D(T,e);for(let t=0;t<n.length;t++)D(n[t],e);T.matrixWorld.decompose(T.position,T.quaternion,T.scale),t.position.copy(T.position),t.quaternion.copy(T.quaternion),t.scale.copy(T.scale),t.matrix.copy(T.matrix),t.matrixWorld.copy(T.matrixWorld);const i=t.children;for(let t=0,e=i.length;t<e;t++)i[t].updateMatrixWorld(!0);2===n.length?function(t,e,n){P.setFromMatrixPosition(e.matrixWorld),I.setFromMatrixPosition(n.matrixWorld);const i=P.distanceTo(I),r=e.projectionMatrix.elements,s=n.projectionMatrix.elements,a=r[14]/(r[10]-1),o=r[14]/(r[10]+1),l=(r[9]+1)/r[5],c=(r[9]-1)/r[5],h=(r[8]-1)/r[0],u=(s[8]+1)/s[0],d=a*h,p=a*u,m=i/(-h+u),f=m*-h;e.matrixWorld.decompose(t.position,t.quaternion,t.scale),t.translateX(f),t.translateZ(m),t.matrixWorld.compose(t.position,t.quaternion,t.scale),t.matrixWorldInverse.copy(t.matrixWorld).invert();const g=a+m,v=o+m,y=d-f,x=p+(i-f),_=l*o/v*g,b=c*o/v*g;t.projectionMatrix.makePerspective(y,x,_,b,g,v)}(T,M,w):T.projectionMatrix.copy(M.projectionMatrix)},this.getCamera=function(){return T},this.getFoveation=function(){return null!==u?u.fixedFoveation:null!==d?d.fixedFoveation:void 0},this.setFoveation=function(t){null!==u&&(u.fixedFoveation=t),null!==d&&void 0!==d.fixedFoveation&&(d.fixedFoveation=t)};let N=null;const z=new ci;z.setAnimationLoop((function(t,n){if(l=n.getViewerPose(a),v=n,null!==l){const t=l.views;null!==d&&i.bindXRFramebuffer(d.framebuffer);let n=!1;t.length!==T.cameras.length&&(T.cameras.length=0,n=!0);for(let r=0;r<t.length;r++){const s=t[r];let a=null;if(null!==d)a=d.getViewport(s);else{const t=c.getViewSubImage(u,s);i.bindXRFramebuffer(h),void 0!==t.depthStencilTexture&&e.framebufferTexture2D(36160,y,3553,t.depthStencilTexture,0),e.framebufferTexture2D(36160,36064,3553,t.colorTexture,0),a=t.viewport}const o=S[r];o.matrix.fromArray(s.transform.matrix),o.projectionMatrix.fromArray(s.projectionMatrix),o.viewport.set(a.x,a.y,a.width,a.height),0===r&&T.matrix.copy(o.matrix),!0===n&&T.cameras.push(o)}p&&(i.bindXRFramebuffer(m),null!==x&&e.clear(x))}const s=r.inputSources;for(let t=0;t<_.length;t++){const e=_[t],i=s[t];e.update(i,n,a)}if(N&&N(t,n),p){const t=u.textureWidth,n=u.textureHeight;i.bindFramebuffer(36008,m),i.bindFramebuffer(36009,h),e.invalidateFramebuffer(36008,[y]),e.invalidateFramebuffer(36009,[y]),e.blitFramebuffer(0,0,t,n,0,0,t,n,16384,9728),e.invalidateFramebuffer(36008,[36064]),i.bindFramebuffer(36008,null),i.bindFramebuffer(36009,null),i.bindFramebuffer(36160,m)}v=null})),this.setAnimationLoop=function(t){N=t},this.dispose=function(){}}}function Js(t){function e(e,n){e.opacity.value=n.opacity,n.color&&e.diffuse.value.copy(n.color),n.emissive&&e.emissive.value.copy(n.emissive).multiplyScalar(n.emissiveIntensity),n.map&&(e.map.value=n.map),n.alphaMap&&(e.alphaMap.value=n.alphaMap),n.specularMap&&(e.specularMap.value=n.specularMap),n.alphaTest>0&&(e.alphaTest.value=n.alphaTest);const i=t.get(n).envMap;if(i){e.envMap.value=i,e.flipEnvMap.value=i.isCubeTexture&&!1===i.isRenderTargetTexture?-1:1,e.reflectivity.value=n.reflectivity,e.ior.value=n.ior,e.refractionRatio.value=n.refractionRatio;const r=t.get(i).__maxMipLevel;void 0!==r&&(e.maxMipLevel.value=r)}let r,s;n.lightMap&&(e.lightMap.value=n.lightMap,e.lightMapIntensity.value=n.lightMapIntensity),n.aoMap&&(e.aoMap.value=n.aoMap,e.aoMapIntensity.value=n.aoMapIntensity),n.map?r=n.map:n.specularMap?r=n.specularMap:n.displacementMap?r=n.displacementMap:n.normalMap?r=n.normalMap:n.bumpMap?r=n.bumpMap:n.roughnessMap?r=n.roughnessMap:n.metalnessMap?r=n.metalnessMap:n.alphaMap?r=n.alphaMap:n.emissiveMap?r=n.emissiveMap:n.clearcoatMap?r=n.clearcoatMap:n.clearcoatNormalMap?r=n.clearcoatNormalMap:n.clearcoatRoughnessMap?r=n.clearcoatRoughnessMap:n.specularIntensityMap?r=n.specularIntensityMap:n.specularTintMap?r=n.specularTintMap:n.transmissionMap?r=n.transmissionMap:n.thicknessMap&&(r=n.thicknessMap),void 0!==r&&(r.isWebGLRenderTarget&&(r=r.texture),!0===r.matrixAutoUpdate&&r.updateMatrix(),e.uvTransform.value.copy(r.matrix)),n.aoMap?s=n.aoMap:n.lightMap&&(s=n.lightMap),void 0!==s&&(s.isWebGLRenderTarget&&(s=s.texture),!0===s.matrixAutoUpdate&&s.updateMatrix(),e.uv2Transform.value.copy(s.matrix))}function n(e,n){e.roughness.value=n.roughness,e.metalness.value=n.metalness,n.roughnessMap&&(e.roughnessMap.value=n.roughnessMap),n.metalnessMap&&(e.metalnessMap.value=n.metalnessMap),n.emissiveMap&&(e.emissiveMap.value=n.emissiveMap),n.bumpMap&&(e.bumpMap.value=n.bumpMap,e.bumpScale.value=n.bumpScale,1===n.side&&(e.bumpScale.value*=-1)),n.normalMap&&(e.normalMap.value=n.normalMap,e.normalScale.value.copy(n.normalScale),1===n.side&&e.normalScale.value.negate()),n.displacementMap&&(e.displacementMap.value=n.displacementMap,e.displacementScale.value=n.displacementScale,e.displacementBias.value=n.displacementBias);t.get(n).envMap&&(e.envMapIntensity.value=n.envMapIntensity)}return{refreshFogUniforms:function(t,e){t.fogColor.value.copy(e.color),e.isFog?(t.fogNear.value=e.near,t.fogFar.value=e.far):e.isFogExp2&&(t.fogDensity.value=e.density)},refreshMaterialUniforms:function(t,i,r,s,a){i.isMeshBasicMaterial?e(t,i):i.isMeshLambertMaterial?(e(t,i),function(t,e){e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap)}(t,i)):i.isMeshToonMaterial?(e(t,i),function(t,e){e.gradientMap&&(t.gradientMap.value=e.gradientMap);e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap);e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1));e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate());e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,i)):i.isMeshPhongMaterial?(e(t,i),function(t,e){t.specular.value.copy(e.specular),t.shininess.value=Math.max(e.shininess,1e-4),e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap);e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1));e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate());e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,i)):i.isMeshStandardMaterial?(e(t,i),i.isMeshPhysicalMaterial?function(t,e,i){n(t,e),t.ior.value=e.ior,e.sheen>0&&(t.sheenTint.value.copy(e.sheenTint).multiplyScalar(e.sheen),t.sheenRoughness.value=e.sheenRoughness);e.clearcoat>0&&(t.clearcoat.value=e.clearcoat,t.clearcoatRoughness.value=e.clearcoatRoughness,e.clearcoatMap&&(t.clearcoatMap.value=e.clearcoatMap),e.clearcoatRoughnessMap&&(t.clearcoatRoughnessMap.value=e.clearcoatRoughnessMap),e.clearcoatNormalMap&&(t.clearcoatNormalScale.value.copy(e.clearcoatNormalScale),t.clearcoatNormalMap.value=e.clearcoatNormalMap,1===e.side&&t.clearcoatNormalScale.value.negate()));e.transmission>0&&(t.transmission.value=e.transmission,t.transmissionSamplerMap.value=i.texture,t.transmissionSamplerSize.value.set(i.width,i.height),e.transmissionMap&&(t.transmissionMap.value=e.transmissionMap),t.thickness.value=e.thickness,e.thicknessMap&&(t.thicknessMap.value=e.thicknessMap),t.attenuationDistance.value=e.attenuationDistance,t.attenuationTint.value.copy(e.attenuationTint));t.specularIntensity.value=e.specularIntensity,t.specularTint.value.copy(e.specularTint),e.specularIntensityMap&&(t.specularIntensityMap.value=e.specularIntensityMap);e.specularTintMap&&(t.specularTintMap.value=e.specularTintMap)}(t,i,a):n(t,i)):i.isMeshMatcapMaterial?(e(t,i),function(t,e){e.matcap&&(t.matcap.value=e.matcap);e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1));e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate());e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,i)):i.isMeshDepthMaterial?(e(t,i),function(t,e){e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,i)):i.isMeshDistanceMaterial?(e(t,i),function(t,e){e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias);t.referencePosition.value.copy(e.referencePosition),t.nearDistance.value=e.nearDistance,t.farDistance.value=e.farDistance}(t,i)):i.isMeshNormalMaterial?(e(t,i),function(t,e){e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1));e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate());e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(t,i)):i.isLineBasicMaterial?(function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity}(t,i),i.isLineDashedMaterial&&function(t,e){t.dashSize.value=e.dashSize,t.totalSize.value=e.dashSize+e.gapSize,t.scale.value=e.scale}(t,i)):i.isPointsMaterial?function(t,e,n,i){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.size.value=e.size*n,t.scale.value=.5*i,e.map&&(t.map.value=e.map);e.alphaMap&&(t.alphaMap.value=e.alphaMap);e.alphaTest>0&&(t.alphaTest.value=e.alphaTest);let r;e.map?r=e.map:e.alphaMap&&(r=e.alphaMap);void 0!==r&&(!0===r.matrixAutoUpdate&&r.updateMatrix(),t.uvTransform.value.copy(r.matrix))}(t,i,r,s):i.isSpriteMaterial?function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.rotation.value=e.rotation,e.map&&(t.map.value=e.map);e.alphaMap&&(t.alphaMap.value=e.alphaMap);e.alphaTest>0&&(t.alphaTest.value=e.alphaTest);let n;e.map?n=e.map:e.alphaMap&&(n=e.alphaMap);void 0!==n&&(!0===n.matrixAutoUpdate&&n.updateMatrix(),t.uvTransform.value.copy(n.matrix))}(t,i):i.isShadowMaterial?(t.color.value.copy(i.color),t.opacity.value=i.opacity):i.isShaderMaterial&&(i.uniformsNeedUpdate=!1)}}}function Zs(t={}){const e=void 0!==t.canvas?t.canvas:function(){const t=wt("canvas");return t.style.display="block",t}(),n=void 0!==t.context?t.context:null,i=void 0!==t.alpha&&t.alpha,r=void 0===t.depth||t.depth,s=void 0===t.stencil||t.stencil,a=void 0!==t.antialias&&t.antialias,o=void 0===t.premultipliedAlpha||t.premultipliedAlpha,l=void 0!==t.preserveDrawingBuffer&&t.preserveDrawingBuffer,c=void 0!==t.powerPreference?t.powerPreference:"default",h=void 0!==t.failIfMajorPerformanceCaveat&&t.failIfMajorPerformanceCaveat;let d=null,m=null;const f=[],g=[];this.domElement=e,this.debug={checkShaderErrors:!0},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.gammaFactor=2,this.outputEncoding=X,this.physicallyCorrectLights=!1,this.toneMapping=0,this.toneMappingExposure=1;const v=this;let _=!1,b=0,S=0,T=null,A=-1,L=null;const R=new Rt,C=new Rt;let P=null,I=e.width,D=e.height,N=1,z=null,B=null;const F=new Rt(0,0,I,D),O=new Rt(0,0,I,D);let U=!1;const H=[],G=new li;let k=!1,V=!1,W=null;const j=new ue,q=new Nt,Y={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function J(){return null===T?N:1}let Z,Q,K,$,tt,et,nt,it,rt,st,at,ot,lt,ct,ht,ut,dt,pt,mt,ft,gt,vt,yt,xt=n;function _t(t,n){for(let i=0;i<t.length;i++){const r=t[i],s=e.getContext(r,n);if(null!==s)return s}return null}try{const t={alpha:i,depth:r,stencil:s,antialias:a,premultipliedAlpha:o,preserveDrawingBuffer:l,powerPreference:c,failIfMajorPerformanceCaveat:h};if(e.addEventListener("webglcontextlost",St,!1),e.addEventListener("webglcontextrestored",Tt,!1),null===xt){const e=["webgl2","webgl","experimental-webgl"];if(!0===v.isWebGL1Renderer&&e.shift(),xt=_t(e,t),null===xt)throw _t(e)?new Error("Error creating WebGL context with your selected attributes."):new Error("Error creating WebGL context.")}void 0===xt.getShaderPrecisionFormat&&(xt.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}})}catch(t){throw (""+t.message),t}function bt(){Z=new Xi(xt),Q=new yi(xt,Z,t),Z.init(Q),vt=new Vs(xt,Z,Q),K=new Gs(xt,Z,Q),H[0]=1029,$=new Zi(xt),tt=new As,et=new ks(xt,Z,K,tt,Q,vt,$),nt=new _i(v),it=new qi(v),rt=new hi(xt,Q),yt=new gi(xt,Z,rt,Q),st=new Yi(xt,rt,$,yt),at=new nr(xt,st,rt,$),mt=new er(xt,Q,et),ut=new xi(tt),ot=new Es(v,nt,it,Z,Q,yt,ut),lt=new Js(tt),ct=new Ps(tt),ht=new Fs(Z,Q),pt=new fi(v,nt,K,at,o),dt=new Hs(v,at,Q),ft=new vi(xt,Z,$,Q),gt=new Ji(xt,Z,$,Q),$.programs=ot.programs,v.capabilities=Q,v.extensions=Z,v.properties=tt,v.renderLists=ct,v.shadowMap=dt,v.state=K,v.info=$}bt();const Mt=new Ys(v,xt);function St(t){t.preventDefault(),(""),_=!0}function Tt(){(""),_=!1;const t=$.autoReset,e=dt.enabled,n=dt.autoUpdate,i=dt.needsUpdate,r=dt.type;bt(),$.autoReset=t,dt.enabled=e,dt.autoUpdate=n,dt.needsUpdate=i,dt.type=r}function Et(t){const e=t.target;e.removeEventListener("dispose",Et),function(t){(function(t){const e=tt.get(t).programs;void 0!==e&&e.forEach((function(t){ot.releaseProgram(t)}))})(t),tt.remove(t)}(e)}this.xr=Mt,this.getContext=function(){return xt},this.getContextAttributes=function(){return xt.getContextAttributes()},this.forceContextLoss=function(){const t=Z.get("WEBGL_lose_context");t&&t.loseContext()},this.forceContextRestore=function(){const t=Z.get("WEBGL_lose_context");t&&t.restoreContext()},this.getPixelRatio=function(){return N},this.setPixelRatio=function(t){void 0!==t&&(N=t,this.setSize(I,D,!1))},this.getSize=function(t){return t.set(I,D)},this.setSize=function(t,n,i){Mt.isPresenting?(""):(I=t,D=n,e.width=Math.floor(t*N),e.height=Math.floor(n*N),!1!==i&&(e.style.width=t+"px",e.style.height=n+"px"),this.setViewport(0,0,t,n))},this.getDrawingBufferSize=function(t){return t.set(I*N,D*N).floor()},this.setDrawingBufferSize=function(t,n,i){I=t,D=n,N=i,e.width=Math.floor(t*i),e.height=Math.floor(n*i),this.setViewport(0,0,t,n)},this.getCurrentViewport=function(t){return t.copy(R)},this.getViewport=function(t){return t.copy(F)},this.setViewport=function(t,e,n,i){t.isVector4?F.set(t.x,t.y,t.z,t.w):F.set(t,e,n,i),K.viewport(R.copy(F).multiplyScalar(N).floor())},this.getScissor=function(t){return t.copy(O)},this.setScissor=function(t,e,n,i){t.isVector4?O.set(t.x,t.y,t.z,t.w):O.set(t,e,n,i),K.scissor(C.copy(O).multiplyScalar(N).floor())},this.getScissorTest=function(){return U},this.setScissorTest=function(t){K.setScissorTest(U=t)},this.setOpaqueSort=function(t){z=t},this.setTransparentSort=function(t){B=t},this.getClearColor=function(t){return t.copy(pt.getClearColor())},this.setClearColor=function(){pt.setClearColor.apply(pt,arguments)},this.getClearAlpha=function(){return pt.getClearAlpha()},this.setClearAlpha=function(){pt.setClearAlpha.apply(pt,arguments)},this.clear=function(t,e,n){let i=0;(void 0===t||t)&&(i|=16384),(void 0===e||e)&&(i|=256),(void 0===n||n)&&(i|=1024),xt.clear(i)},this.clearColor=function(){this.clear(!0,!1,!1)},this.clearDepth=function(){this.clear(!1,!0,!1)},this.clearStencil=function(){this.clear(!1,!1,!0)},this.dispose=function(){e.removeEventListener("webglcontextlost",St,!1),e.removeEventListener("webglcontextrestored",Tt,!1),ct.dispose(),ht.dispose(),tt.dispose(),nt.dispose(),it.dispose(),at.dispose(),yt.dispose(),Mt.dispose(),Mt.removeEventListener("sessionstart",Lt),Mt.removeEventListener("sessionend",Pt),W&&(W.dispose(),W=null),Dt.stop()},this.renderBufferImmediate=function(t,e){yt.initAttributes();const n=tt.get(t);t.hasPositions&&!n.position&&(n.position=xt.createBuffer()),t.hasNormals&&!n.normal&&(n.normal=xt.createBuffer()),t.hasUvs&&!n.uv&&(n.uv=xt.createBuffer()),t.hasColors&&!n.color&&(n.color=xt.createBuffer());const i=e.getAttributes();t.hasPositions&&(xt.bindBuffer(34962,n.position),xt.bufferData(34962,t.positionArray,35048),yt.enableAttribute(i.position.location),xt.vertexAttribPointer(i.position.location,3,5126,!1,0,0)),t.hasNormals&&(xt.bindBuffer(34962,n.normal),xt.bufferData(34962,t.normalArray,35048),yt.enableAttribute(i.normal.location),xt.vertexAttribPointer(i.normal.location,3,5126,!1,0,0)),t.hasUvs&&(xt.bindBuffer(34962,n.uv),xt.bufferData(34962,t.uvArray,35048),yt.enableAttribute(i.uv.location),xt.vertexAttribPointer(i.uv.location,2,5126,!1,0,0)),t.hasColors&&(xt.bindBuffer(34962,n.color),xt.bufferData(34962,t.colorArray,35048),yt.enableAttribute(i.color.location),xt.vertexAttribPointer(i.color.location,3,5126,!1,0,0)),yt.disableUnusedAttributes(),xt.drawArrays(4,0,t.count),t.count=0},this.renderBufferDirect=function(t,e,n,i,r,s){null===e&&(e=Y);const a=r.isMesh&&r.matrixWorld.determinant()<0,o=Gt(t,e,n,i,r);K.setMaterial(i,a);let l=n.index;const c=n.attributes.position;if(null===l){if(void 0===c||0===c.count)return}else if(0===l.count)return;let h,u=1;!0===i.wireframe&&(l=st.getWireframeAttribute(n),u=2),yt.setup(r,i,o,n,l);let d=ft;null!==l&&(h=rt.get(l),d=gt,d.setIndex(h));const p=null!==l?l.count:c.count,m=n.drawRange.start*u,f=n.drawRange.count*u,g=null!==s?s.start*u:0,v=null!==s?s.count*u:1/0,y=Math.max(m,g),x=Math.min(p,m+f,g+v)-1,_=Math.max(0,x-y+1);if(0!==_){if(r.isMesh)!0===i.wireframe?(K.setLineWidth(i.wireframeLinewidth*J()),d.setMode(1)):d.setMode(4);else if(r.isLine){let t=i.linewidth;void 0===t&&(t=1),K.setLineWidth(t*J()),r.isLineSegments?d.setMode(1):r.isLineLoop?d.setMode(2):d.setMode(3)}else r.isPoints?d.setMode(0):r.isSprite&&d.setMode(4);if(r.isInstancedMesh)d.renderInstances(y,_,r.count);else if(n.isInstancedBufferGeometry){const t=Math.min(n.instanceCount,n._maxInstanceCount);d.renderInstances(y,_,t)}else d.render(y,_)}},this.compile=function(t,e){m=ht.get(t),m.init(),g.push(m),t.traverseVisible((function(t){t.isLight&&t.layers.test(e.layers)&&(m.pushLight(t),t.castShadow&&m.pushShadow(t))})),m.setupLights(v.physicallyCorrectLights),t.traverse((function(e){const n=e.material;if(n)if(Array.isArray(n))for(let i=0;i<n.length;i++){Ut(n[i],t,e)}else Ut(n,t,e)})),g.pop(),m=null};let At=null;function Lt(){Dt.stop()}function Pt(){Dt.start()}const Dt=new ci;function zt(t,e,n,i){if(!1===t.visible)return;if(t.layers.test(e.layers))if(t.isGroup)n=t.renderOrder;else if(t.isLOD)!0===t.autoUpdate&&t.update(e);else if(t.isLight)m.pushLight(t),t.castShadow&&m.pushShadow(t);else if(t.isSprite){if(!t.frustumCulled||G.intersectsSprite(t)){i&&q.setFromMatrixPosition(t.matrixWorld).applyMatrix4(j);const e=at.update(t),r=t.material;r.visible&&d.push(t,e,r,n,q.z,null)}}else if(t.isImmediateRenderObject)i&&q.setFromMatrixPosition(t.matrixWorld).applyMatrix4(j),d.push(t,null,t.material,n,q.z,null);else if((t.isMesh||t.isLine||t.isPoints)&&(t.isSkinnedMesh&&t.skeleton.frame!==$.render.frame&&(t.skeleton.update(),t.skeleton.frame=$.render.frame),!t.frustumCulled||G.intersectsObject(t))){i&&q.setFromMatrixPosition(t.matrixWorld).applyMatrix4(j);const e=at.update(t),r=t.material;if(Array.isArray(r)){const i=e.groups;for(let s=0,a=i.length;s<a;s++){const a=i[s],o=r[a.materialIndex];o&&o.visible&&d.push(t,e,o,n,q.z,a)}}else r.visible&&d.push(t,e,r,n,q.z,null)}const r=t.children;for(let t=0,s=r.length;t<s;t++)zt(r[t],e,n,i)}function Bt(t,e,n,i){const r=t.opaque,s=t.transmissive,o=t.transparent;m.setupLightsView(n),s.length>0&&function(t,e,n){if(null===W){const t=!0===a&&!0===Q.isWebGL2;W=new(t?It:Ct)(1024,1024,{generateMipmaps:!0,type:null!==vt.convert(w)?w:x,minFilter:y,magFilter:p,wrapS:u,wrapT:u})}const i=v.getRenderTarget();v.setRenderTarget(W),v.clear();const r=v.toneMapping;v.toneMapping=0,Ft(t,e,n),v.toneMapping=r,et.updateMultisampleRenderTarget(W),et.updateRenderTargetMipmap(W),v.setRenderTarget(i)}(r,e,n),i&&K.viewport(R.copy(i)),r.length>0&&Ft(r,e,n),s.length>0&&Ft(s,e,n),o.length>0&&Ft(o,e,n)}function Ft(t,e,n){const i=!0===e.isScene?e.overrideMaterial:null;for(let r=0,s=t.length;r<s;r++){const s=t[r],a=s.object,o=s.geometry,l=null===i?s.material:i,c=s.group;a.layers.test(n.layers)&&Ot(a,e,n,o,l,c)}}function Ot(t,e,n,i,r,s){if(t.onBeforeRender(v,e,n,i,r,s),t.modelViewMatrix.multiplyMatrices(n.matrixWorldInverse,t.matrixWorld),t.normalMatrix.getNormalMatrix(t.modelViewMatrix),r.onBeforeRender(v,e,n,i,t,s),t.isImmediateRenderObject){const s=Gt(n,e,i,r,t);K.setMaterial(r),yt.reset(),function(t,e){t.render((function(t){v.renderBufferImmediate(t,e)}))}(t,s)}else!0===r.transparent&&2===r.side?(r.side=1,r.needsUpdate=!0,v.renderBufferDirect(n,e,i,r,t,s),r.side=0,r.needsUpdate=!0,v.renderBufferDirect(n,e,i,r,t,s),r.side=2):v.renderBufferDirect(n,e,i,r,t,s);t.onAfterRender(v,e,n,i,r,s)}function Ut(t,e,n){!0!==e.isScene&&(e=Y);const i=tt.get(t),r=m.state.lights,s=m.state.shadowsArray,a=r.state.version,o=ot.getParameters(t,r.state,s,e,n),l=ot.getProgramCacheKey(o);let c=i.programs;i.environment=t.isMeshStandardMaterial?e.environment:null,i.fog=e.fog,i.envMap=(t.isMeshStandardMaterial?it:nt).get(t.envMap||i.environment),void 0===c&&(t.addEventListener("dispose",Et),c=new Map,i.programs=c);let h=c.get(l);if(void 0!==h){if(i.currentProgram===h&&i.lightsStateVersion===a)return Ht(t,o),h}else o.uniforms=ot.getUniforms(t),t.onBuild(o,v),t.onBeforeCompile(o,v),h=ot.acquireProgram(o,l),c.set(l,h),i.uniforms=o.uniforms;const u=i.uniforms;(t.isShaderMaterial||t.isRawShaderMaterial)&&!0!==t.clipping||(u.clippingPlanes=ut.uniform),Ht(t,o),i.needsLights=function(t){return t.isMeshLambertMaterial||t.isMeshToonMaterial||t.isMeshPhongMaterial||t.isMeshStandardMaterial||t.isShadowMaterial||t.isShaderMaterial&&!0===t.lights}(t),i.lightsStateVersion=a,i.needsLights&&(u.ambientLightColor.value=r.state.ambient,u.lightProbe.value=r.state.probe,u.directionalLights.value=r.state.directional,u.directionalLightShadows.value=r.state.directionalShadow,u.spotLights.value=r.state.spot,u.spotLightShadows.value=r.state.spotShadow,u.rectAreaLights.value=r.state.rectArea,u.ltc_1.value=r.state.rectAreaLTC1,u.ltc_2.value=r.state.rectAreaLTC2,u.pointLights.value=r.state.point,u.pointLightShadows.value=r.state.pointShadow,u.hemisphereLights.value=r.state.hemi,u.directionalShadowMap.value=r.state.directionalShadowMap,u.directionalShadowMatrix.value=r.state.directionalShadowMatrix,u.spotShadowMap.value=r.state.spotShadowMap,u.spotShadowMatrix.value=r.state.spotShadowMatrix,u.pointShadowMap.value=r.state.pointShadowMap,u.pointShadowMatrix.value=r.state.pointShadowMatrix);const d=h.getUniforms(),p=ss.seqWithValue(d.seq,u);return i.currentProgram=h,i.uniformsList=p,h}function Ht(t,e){const n=tt.get(t);n.outputEncoding=e.outputEncoding,n.instancing=e.instancing,n.skinning=e.skinning,n.morphTargets=e.morphTargets,n.morphNormals=e.morphNormals,n.morphTargetsCount=e.morphTargetsCount,n.numClippingPlanes=e.numClippingPlanes,n.numIntersection=e.numClipIntersection,n.vertexAlphas=e.vertexAlphas,n.vertexTangents=e.vertexTangents}function Gt(t,e,n,i,r){!0!==e.isScene&&(e=Y),et.resetTextureUnits();const s=e.fog,a=i.isMeshStandardMaterial?e.environment:null,o=null===T?v.outputEncoding:T.texture.encoding,l=(i.isMeshStandardMaterial?it:nt).get(i.envMap||a),c=!0===i.vertexColors&&!!n&&!!n.attributes.color&&4===n.attributes.color.itemSize,h=!!i.normalMap&&!!n&&!!n.attributes.tangent,u=!!n&&!!n.morphAttributes.position,d=!!n&&!!n.morphAttributes.normal,p=n&&n.morphAttributes.position?n.morphAttributes.position.length:0,f=tt.get(i),g=m.state.lights;if(!0===k&&(!0===V||t!==L)){const e=t===L&&i.id===A;ut.setState(i,t,e)}let y=!1;i.version===f.__version?f.needsLights&&f.lightsStateVersion!==g.state.version||f.outputEncoding!==o||r.isInstancedMesh&&!1===f.instancing?y=!0:r.isInstancedMesh||!0!==f.instancing?r.isSkinnedMesh&&!1===f.skinning?y=!0:r.isSkinnedMesh||!0!==f.skinning?f.envMap!==l||i.fog&&f.fog!==s?y=!0:void 0===f.numClippingPlanes||f.numClippingPlanes===ut.numPlanes&&f.numIntersection===ut.numIntersection?(f.vertexAlphas!==c||f.vertexTangents!==h||f.morphTargets!==u||f.morphNormals!==d||!0===Q.isWebGL2&&f.morphTargetsCount!==p)&&(y=!0):y=!0:y=!0:y=!0:(y=!0,f.__version=i.version);let x=f.currentProgram;!0===y&&(x=Ut(i,e,r));let _=!1,b=!1,M=!1;const w=x.getUniforms(),S=f.uniforms;if(K.useProgram(x.program)&&(_=!0,b=!0,M=!0),i.id!==A&&(A=i.id,b=!0),_||L!==t){if(w.setValue(xt,"projectionMatrix",t.projectionMatrix),Q.logarithmicDepthBuffer&&w.setValue(xt,"logDepthBufFC",2/(Math.log(t.far+1)/Math.LN2)),L!==t&&(L=t,b=!0,M=!0),i.isShaderMaterial||i.isMeshPhongMaterial||i.isMeshToonMaterial||i.isMeshStandardMaterial||i.envMap){const e=w.map.cameraPosition;void 0!==e&&e.setValue(xt,q.setFromMatrixPosition(t.matrixWorld))}(i.isMeshPhongMaterial||i.isMeshToonMaterial||i.isMeshLambertMaterial||i.isMeshBasicMaterial||i.isMeshStandardMaterial||i.isShaderMaterial)&&w.setValue(xt,"isOrthographic",!0===t.isOrthographicCamera),(i.isMeshPhongMaterial||i.isMeshToonMaterial||i.isMeshLambertMaterial||i.isMeshBasicMaterial||i.isMeshStandardMaterial||i.isShaderMaterial||i.isShadowMaterial||r.isSkinnedMesh)&&w.setValue(xt,"viewMatrix",t.matrixWorldInverse)}if(r.isSkinnedMesh){w.setOptional(xt,r,"bindMatrix"),w.setOptional(xt,r,"bindMatrixInverse");const t=r.skeleton;t&&(Q.floatVertexTextures?(null===t.boneTexture&&t.computeBoneTexture(),w.setValue(xt,"boneTexture",t.boneTexture,et),w.setValue(xt,"boneTextureSize",t.boneTextureSize)):w.setOptional(xt,t,"boneMatrices"))}var E,R;return!n||void 0===n.morphAttributes.position&&void 0===n.morphAttributes.normal||mt.update(r,n,i,x),(b||f.receiveShadow!==r.receiveShadow)&&(f.receiveShadow=r.receiveShadow,w.setValue(xt,"receiveShadow",r.receiveShadow)),b&&(w.setValue(xt,"toneMappingExposure",v.toneMappingExposure),f.needsLights&&(R=M,(E=S).ambientLightColor.needsUpdate=R,E.lightProbe.needsUpdate=R,E.directionalLights.needsUpdate=R,E.directionalLightShadows.needsUpdate=R,E.pointLights.needsUpdate=R,E.pointLightShadows.needsUpdate=R,E.spotLights.needsUpdate=R,E.spotLightShadows.needsUpdate=R,E.rectAreaLights.needsUpdate=R,E.hemisphereLights.needsUpdate=R),s&&i.fog&&lt.refreshFogUniforms(S,s),lt.refreshMaterialUniforms(S,i,N,D,W),ss.upload(xt,f.uniformsList,S,et)),i.isShaderMaterial&&!0===i.uniformsNeedUpdate&&(ss.upload(xt,f.uniformsList,S,et),i.uniformsNeedUpdate=!1),i.isSpriteMaterial&&w.setValue(xt,"center",r.center),w.setValue(xt,"modelViewMatrix",r.modelViewMatrix),w.setValue(xt,"normalMatrix",r.normalMatrix),w.setValue(xt,"modelMatrix",r.matrixWorld),x}Dt.setAnimationLoop((function(t){At&&At(t)})),"undefined"!=typeof window&&Dt.setContext(window),this.setAnimationLoop=function(t){At=t,Mt.setAnimationLoop(t),null===t?Dt.stop():Dt.start()},Mt.addEventListener("sessionstart",Lt),Mt.addEventListener("sessionend",Pt),this.render=function(t,e){if(void 0!==e&&!0!==e.isCamera)return void ("");if(!0===_)return;!0===t.autoUpdate&&t.updateMatrixWorld(),null===e.parent&&e.updateMatrixWorld(),!0===Mt.enabled&&!0===Mt.isPresenting&&(!0===Mt.cameraAutoUpdate&&Mt.updateCamera(e),e=Mt.getCamera()),!0===t.isScene&&t.onBeforeRender(v,t,e,T),m=ht.get(t,g.length),m.init(),g.push(m),j.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),G.setFromProjectionMatrix(j),V=this.localClippingEnabled,k=ut.init(this.clippingPlanes,V,e),d=ct.get(t,f.length),d.init(),f.push(d),zt(t,e,0,v.sortObjects),d.finish(),!0===v.sortObjects&&d.sort(z,B),!0===k&&ut.beginShadows();const n=m.state.shadowsArray;if(dt.render(n,t,e),!0===k&&ut.endShadows(),!0===this.info.autoReset&&this.info.reset(),pt.render(d,t),m.setupLights(v.physicallyCorrectLights),e.isArrayCamera){const n=e.cameras;for(let e=0,i=n.length;e<i;e++){const i=n[e];Bt(d,t,i,i.viewport)}}else Bt(d,t,e);null!==T&&(et.updateMultisampleRenderTarget(T),et.updateRenderTargetMipmap(T)),!0===t.isScene&&t.onAfterRender(v,t,e),K.buffers.depth.setTest(!0),K.buffers.depth.setMask(!0),K.buffers.color.setMask(!0),K.setPolygonOffset(!1),yt.resetDefaultState(),A=-1,L=null,g.pop(),m=g.length>0?g[g.length-1]:null,f.pop(),d=f.length>0?f[f.length-1]:null},this.getActiveCubeFace=function(){return b},this.getActiveMipmapLevel=function(){return S},this.getRenderTarget=function(){return T},this.setRenderTarget=function(t,e=0,n=0){T=t,b=e,S=n,t&&void 0===tt.get(t).__webglFramebuffer&&et.setupRenderTarget(t);let i=null,r=!1,s=!1;if(t){const n=t.texture;(n.isDataTexture3D||n.isDataTexture2DArray)&&(s=!0);const a=tt.get(t).__webglFramebuffer;t.isWebGLCubeRenderTarget?(i=a[e],r=!0):i=t.isWebGLMultisampleRenderTarget?tt.get(t).__webglMultisampledFramebuffer:a,R.copy(t.viewport),C.copy(t.scissor),P=t.scissorTest}else R.copy(F).multiplyScalar(N).floor(),C.copy(O).multiplyScalar(N).floor(),P=U;if(K.bindFramebuffer(36160,i)&&Q.drawBuffers){let e=!1;if(t)if(t.isWebGLMultipleRenderTargets){const n=t.texture;if(H.length!==n.length||36064!==H[0]){for(let t=0,e=n.length;t<e;t++)H[t]=36064+t;H.length=n.length,e=!0}}else 1===H.length&&36064===H[0]||(H[0]=36064,H.length=1,e=!0);else 1===H.length&&1029===H[0]||(H[0]=1029,H.length=1,e=!0);e&&(Q.isWebGL2?xt.drawBuffers(H):Z.get("WEBGL_draw_buffers").drawBuffersWEBGL(H))}if(K.viewport(R),K.scissor(C),K.setScissorTest(P),r){const i=tt.get(t.texture);xt.framebufferTexture2D(36160,36064,34069+e,i.__webglTexture,n)}else if(s){const i=tt.get(t.texture),r=e||0;xt.framebufferTextureLayer(36160,36064,i.__webglTexture,n||0,r)}A=-1},this.readRenderTargetPixels=function(t,e,n,i,r,s,a){if(!t||!t.isWebGLRenderTarget)return void ("");let o=tt.get(t).__webglFramebuffer;if(t.isWebGLCubeRenderTarget&&void 0!==a&&(o=o[a]),o){K.bindFramebuffer(36160,o);try{const a=t.texture,o=a.format,l=a.type;if(o!==E&&vt.convert(o)!==xt.getParameter(35739))return void ("");const c=l===w&&(Z.has("EXT_color_buffer_half_float")||Q.isWebGL2&&Z.has("EXT_color_buffer_float"));if(!(l===x||vt.convert(l)===xt.getParameter(35738)||l===M&&(Q.isWebGL2||Z.has("OES_texture_float")||Z.has("WEBGL_color_buffer_float"))||c))return void ("");36053===xt.checkFramebufferStatus(36160)?e>=0&&e<=t.width-i&&n>=0&&n<=t.height-r&&xt.readPixels(e,n,i,r,vt.convert(o),vt.convert(l),s):("")}finally{const t=null!==T?tt.get(T).__webglFramebuffer:null;K.bindFramebuffer(36160,t)}}},this.copyFramebufferToTexture=function(t,e,n=0){const i=Math.pow(2,-n),r=Math.floor(e.image.width*i),s=Math.floor(e.image.height*i);let a=vt.convert(e.format);Q.isWebGL2&&(6407===a&&(a=32849),6408===a&&(a=32856)),et.setTexture2D(e,0),xt.copyTexImage2D(3553,n,a,t.x,t.y,r,s,0),K.unbindTexture()},this.copyTextureToTexture=function(t,e,n,i=0){const r=e.image.width,s=e.image.height,a=vt.convert(n.format),o=vt.convert(n.type);et.setTexture2D(n,0),xt.pixelStorei(37440,n.flipY),xt.pixelStorei(37441,n.premultiplyAlpha),xt.pixelStorei(3317,n.unpackAlignment),e.isDataTexture?xt.texSubImage2D(3553,i,t.x,t.y,r,s,a,o,e.image.data):e.isCompressedTexture?xt.compressedTexSubImage2D(3553,i,t.x,t.y,e.mipmaps[0].width,e.mipmaps[0].height,a,e.mipmaps[0].data):xt.texSubImage2D(3553,i,t.x,t.y,a,o,e.image),0===i&&n.generateMipmaps&&xt.generateMipmap(3553),K.unbindTexture()},this.copyTextureToTexture3D=function(t,e,n,i,r=0){if(v.isWebGL1Renderer)return void ("");const s=t.max.x-t.min.x+1,a=t.max.y-t.min.y+1,o=t.max.z-t.min.z+1,l=vt.convert(i.format),c=vt.convert(i.type);let h;if(i.isDataTexture3D)et.setTexture3D(i,0),h=32879;else{if(!i.isDataTexture2DArray)return void ("");et.setTexture2DArray(i,0),h=35866}xt.pixelStorei(37440,i.flipY),xt.pixelStorei(37441,i.premultiplyAlpha),xt.pixelStorei(3317,i.unpackAlignment);const u=xt.getParameter(3314),d=xt.getParameter(32878),p=xt.getParameter(3316),m=xt.getParameter(3315),f=xt.getParameter(32877),g=n.isCompressedTexture?n.mipmaps[0]:n.image;xt.pixelStorei(3314,g.width),xt.pixelStorei(32878,g.height),xt.pixelStorei(3316,t.min.x),xt.pixelStorei(3315,t.min.y),xt.pixelStorei(32877,t.min.z),n.isDataTexture||n.isDataTexture3D?xt.texSubImage3D(h,r,e.x,e.y,e.z,s,a,o,l,c,g.data):n.isCompressedTexture?((""),xt.compressedTexSubImage3D(h,r,e.x,e.y,e.z,s,a,o,l,g.data)):xt.texSubImage3D(h,r,e.x,e.y,e.z,s,a,o,l,c,g),xt.pixelStorei(3314,u),xt.pixelStorei(32878,d),xt.pixelStorei(3316,p),xt.pixelStorei(3315,m),xt.pixelStorei(32877,f),0===r&&i.generateMipmaps&&xt.generateMipmap(h),K.unbindTexture()},this.initTexture=function(t){et.setTexture2D(t,0),K.unbindTexture()},this.resetState=function(){b=0,S=0,T=null,K.reset(),yt.reset()},"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}class Qs extends Zs{}Qs.prototype.isWebGL1Renderer=!0;class Ks{constructor(t,e=25e-5){this.name="",this.color=new nn(t),this.density=e}clone(){return new Ks(this.color,this.density)}toJSON(){return{type:"FogExp2",color:this.color.getHex(),density:this.density}}}Ks.prototype.isFogExp2=!0;class $s{constructor(t,e=1,n=1e3){this.name="",this.color=new nn(t),this.near=e,this.far=n}clone(){return new $s(this.color,this.near,this.far)}toJSON(){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}}}$s.prototype.isFog=!0;class ta extends Be{constructor(){super(),this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.overrideMaterial=null,this.autoUpdate=!0,"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(t,e){return super.copy(t,e),null!==t.background&&(this.background=t.background.clone()),null!==t.environment&&(this.environment=t.environment.clone()),null!==t.fog&&(this.fog=t.fog.clone()),null!==t.overrideMaterial&&(this.overrideMaterial=t.overrideMaterial.clone()),this.autoUpdate=t.autoUpdate,this.matrixAutoUpdate=t.matrixAutoUpdate,this}toJSON(t){const e=super.toJSON(t);return null!==this.fog&&(e.object.fog=this.fog.toJSON()),e}}ta.prototype.isScene=!0;class ea{constructor(t,e){this.array=t,this.stride=e,this.count=void 0!==t?t.length/e:0,this.usage=et,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=ht()}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}setUsage(t){return this.usage=t,this}copy(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.usage=t.usage,this}copyAt(t,e,n){t*=this.stride,n*=e.stride;for(let i=0,r=this.stride;i<r;i++)this.array[t+i]=e.array[n+i];return this}set(t,e=0){return this.array.set(t,e),this}clone(t){void 0===t.arrayBuffers&&(t.arrayBuffers={}),void 0===this.array.buffer._uuid&&(this.array.buffer._uuid=ht()),void 0===t.arrayBuffers[this.array.buffer._uuid]&&(t.arrayBuffers[this.array.buffer._uuid]=this.array.slice(0).buffer);const e=new this.array.constructor(t.arrayBuffers[this.array.buffer._uuid]),n=new this.constructor(e,this.stride);return n.setUsage(this.usage),n}onUpload(t){return this.onUploadCallback=t,this}toJSON(t){return void 0===t.arrayBuffers&&(t.arrayBuffers={}),void 0===this.array.buffer._uuid&&(this.array.buffer._uuid=ht()),void 0===t.arrayBuffers[this.array.buffer._uuid]&&(t.arrayBuffers[this.array.buffer._uuid]=Array.prototype.slice.call(new Uint32Array(this.array.buffer))),{uuid:this.uuid,buffer:this.array.buffer._uuid,type:this.array.constructor.name,stride:this.stride}}}ea.prototype.isInterleavedBuffer=!0;const na=new Nt;class ia{constructor(t,e,n,i=!1){this.name="",this.data=t,this.itemSize=e,this.offset=n,this.normalized=!0===i}get count(){return this.data.count}get array(){return this.data.array}set needsUpdate(t){this.data.needsUpdate=t}applyMatrix4(t){for(let e=0,n=this.data.count;e<n;e++)na.x=this.getX(e),na.y=this.getY(e),na.z=this.getZ(e),na.applyMatrix4(t),this.setXYZ(e,na.x,na.y,na.z);return this}applyNormalMatrix(t){for(let e=0,n=this.count;e<n;e++)na.x=this.getX(e),na.y=this.getY(e),na.z=this.getZ(e),na.applyNormalMatrix(t),this.setXYZ(e,na.x,na.y,na.z);return this}transformDirection(t){for(let e=0,n=this.count;e<n;e++)na.x=this.getX(e),na.y=this.getY(e),na.z=this.getZ(e),na.transformDirection(t),this.setXYZ(e,na.x,na.y,na.z);return this}setX(t,e){return this.data.array[t*this.data.stride+this.offset]=e,this}setY(t,e){return this.data.array[t*this.data.stride+this.offset+1]=e,this}setZ(t,e){return this.data.array[t*this.data.stride+this.offset+2]=e,this}setW(t,e){return this.data.array[t*this.data.stride+this.offset+3]=e,this}getX(t){return this.data.array[t*this.data.stride+this.offset]}getY(t){return this.data.array[t*this.data.stride+this.offset+1]}getZ(t){return this.data.array[t*this.data.stride+this.offset+2]}getW(t){return this.data.array[t*this.data.stride+this.offset+3]}setXY(t,e,n){return t=t*this.data.stride+this.offset,this.data.array[t+0]=e,this.data.array[t+1]=n,this}setXYZ(t,e,n,i){return t=t*this.data.stride+this.offset,this.data.array[t+0]=e,this.data.array[t+1]=n,this.data.array[t+2]=i,this}setXYZW(t,e,n,i,r){return t=t*this.data.stride+this.offset,this.data.array[t+0]=e,this.data.array[t+1]=n,this.data.array[t+2]=i,this.data.array[t+3]=r,this}clone(t){if(void 0===t){("");const t=[];for(let e=0;e<this.count;e++){const n=e*this.data.stride+this.offset;for(let e=0;e<this.itemSize;e++)t.push(this.data.array[n+e])}return new on(new this.array.constructor(t),this.itemSize,this.normalized)}return void 0===t.interleavedBuffers&&(t.interleavedBuffers={}),void 0===t.interleavedBuffers[this.data.uuid]&&(t.interleavedBuffers[this.data.uuid]=this.data.clone(t)),new ia(t.interleavedBuffers[this.data.uuid],this.itemSize,this.offset,this.normalized)}toJSON(t){if(void 0===t){("");const t=[];for(let e=0;e<this.count;e++){const n=e*this.data.stride+this.offset;for(let e=0;e<this.itemSize;e++)t.push(this.data.array[n+e])}return{itemSize:this.itemSize,type:this.array.constructor.name,array:t,normalized:this.normalized}}return void 0===t.interleavedBuffers&&(t.interleavedBuffers={}),void 0===t.interleavedBuffers[this.data.uuid]&&(t.interleavedBuffers[this.data.uuid]=this.data.toJSON(t)),{isInterleavedBufferAttribute:!0,itemSize:this.itemSize,data:this.data.uuid,offset:this.offset,normalized:this.normalized}}}ia.prototype.isInterleavedBufferAttribute=!0;class ra extends Je{constructor(t){super(),this.type="SpriteMaterial",this.color=new nn(16777215),this.map=null,this.alphaMap=null,this.rotation=0,this.sizeAttenuation=!0,this.transparent=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.alphaMap=t.alphaMap,this.rotation=t.rotation,this.sizeAttenuation=t.sizeAttenuation,this}}let sa;ra.prototype.isSpriteMaterial=!0;const aa=new Nt,oa=new Nt,la=new Nt,ca=new yt,ha=new yt,ua=new ue,da=new Nt,pa=new Nt,ma=new Nt,fa=new yt,ga=new yt,va=new yt;class ya extends Be{constructor(t){if(super(),this.type="Sprite",void 0===sa){sa=new Tn;const t=new Float32Array([-.5,-.5,0,0,0,.5,-.5,0,1,0,.5,.5,0,1,1,-.5,.5,0,0,1]),e=new ea(t,5);sa.setIndex([0,1,2,0,2,3]),sa.setAttribute("position",new ia(e,3,0,!1)),sa.setAttribute("uv",new ia(e,2,3,!1))}this.geometry=sa,this.material=void 0!==t?t:new ra,this.center=new yt(.5,.5)}raycast(t,e){null===t.camera&&(''),oa.setFromMatrixScale(this.matrixWorld),ua.copy(t.camera.matrixWorld),this.modelViewMatrix.multiplyMatrices(t.camera.matrixWorldInverse,this.matrixWorld),la.setFromMatrixPosition(this.modelViewMatrix),t.camera.isPerspectiveCamera&&!1===this.material.sizeAttenuation&&oa.multiplyScalar(-la.z);const n=this.material.rotation;let i,r;0!==n&&(r=Math.cos(n),i=Math.sin(n));const s=this.center;xa(da.set(-.5,-.5,0),la,s,oa,i,r),xa(pa.set(.5,-.5,0),la,s,oa,i,r),xa(ma.set(.5,.5,0),la,s,oa,i,r),fa.set(0,0),ga.set(1,0),va.set(1,1);let a=t.ray.intersectTriangle(da,pa,ma,!1,aa);if(null===a&&(xa(pa.set(-.5,.5,0),la,s,oa,i,r),ga.set(0,1),a=t.ray.intersectTriangle(da,ma,pa,!1,aa),null===a))return;const o=t.ray.origin.distanceTo(aa);o<t.near||o>t.far||e.push({distance:o,point:aa.clone(),uv:Xe.getUV(aa,da,pa,ma,fa,ga,va,new yt),face:null,object:this})}copy(t){return super.copy(t),void 0!==t.center&&this.center.copy(t.center),this.material=t.material,this}}function xa(t,e,n,i,r,s){ca.subVectors(t,n).addScalar(.5).multiply(i),void 0!==r?(ha.x=s*ca.x-r*ca.y,ha.y=r*ca.x+s*ca.y):ha.copy(ca),t.copy(e),t.x+=ha.x,t.y+=ha.y,t.applyMatrix4(ua)}ya.prototype.isSprite=!0;const _a=new Nt,ba=new Nt;class Ma extends Be{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(t){super.copy(t,!1);const e=t.levels;for(let t=0,n=e.length;t<n;t++){const n=e[t];this.addLevel(n.object.clone(),n.distance)}return this.autoUpdate=t.autoUpdate,this}addLevel(t,e=0){e=Math.abs(e);const n=this.levels;let i;for(i=0;i<n.length&&!(e<n[i].distance);i++);return n.splice(i,0,{distance:e,object:t}),this.add(t),this}getCurrentLevel(){return this._currentLevel}getObjectForDistance(t){const e=this.levels;if(e.length>0){let n,i;for(n=1,i=e.length;n<i&&!(t<e[n].distance);n++);return e[n-1].object}return null}raycast(t,e){if(this.levels.length>0){_a.setFromMatrixPosition(this.matrixWorld);const n=t.ray.origin.distanceTo(_a);this.getObjectForDistance(n).raycast(t,e)}}update(t){const e=this.levels;if(e.length>1){_a.setFromMatrixPosition(t.matrixWorld),ba.setFromMatrixPosition(this.matrixWorld);const n=_a.distanceTo(ba)/t.zoom;let i,r;for(e[0].object.visible=!0,i=1,r=e.length;i<r&&n>=e[i].distance;i++)e[i-1].object.visible=!1,e[i].object.visible=!0;for(this._currentLevel=i-1;i<r;i++)e[i].object.visible=!1}}toJSON(t){const e=super.toJSON(t);!1===this.autoUpdate&&(e.object.autoUpdate=!1),e.object.levels=[];const n=this.levels;for(let t=0,i=n.length;t<i;t++){const i=n[t];e.object.levels.push({object:i.object.uuid,distance:i.distance})}return e}}const wa=new Nt,Sa=new Rt,Ta=new Rt,Ea=new Nt,Aa=new ue;class La extends Vn{constructor(t,e){super(t,e),this.type="SkinnedMesh",this.bindMode="attached",this.bindMatrix=new ue,this.bindMatrixInverse=new ue}copy(t){return super.copy(t),this.bindMode=t.bindMode,this.bindMatrix.copy(t.bindMatrix),this.bindMatrixInverse.copy(t.bindMatrixInverse),this.skeleton=t.skeleton,this}bind(t,e){this.skeleton=t,void 0===e&&(this.updateMatrixWorld(!0),this.skeleton.calculateInverses(),e=this.matrixWorld),this.bindMatrix.copy(e),this.bindMatrixInverse.copy(e).invert()}pose(){this.skeleton.pose()}normalizeSkinWeights(){const t=new Rt,e=this.geometry.attributes.skinWeight;for(let n=0,i=e.count;n<i;n++){t.x=e.getX(n),t.y=e.getY(n),t.z=e.getZ(n),t.w=e.getW(n);const i=1/t.manhattanLength();i!==1/0?t.multiplyScalar(i):t.set(1,0,0,0),e.setXYZW(n,t.x,t.y,t.z,t.w)}}updateMatrixWorld(t){super.updateMatrixWorld(t),"attached"===this.bindMode?this.bindMatrixInverse.copy(this.matrixWorld).invert():"detached"===this.bindMode?this.bindMatrixInverse.copy(this.bindMatrix).invert():(""+this.bindMode)}boneTransform(t,e){const n=this.skeleton,i=this.geometry;Sa.fromBufferAttribute(i.attributes.skinIndex,t),Ta.fromBufferAttribute(i.attributes.skinWeight,t),wa.copy(e).applyMatrix4(this.bindMatrix),e.set(0,0,0);for(let t=0;t<4;t++){const i=Ta.getComponent(t);if(0!==i){const r=Sa.getComponent(t);Aa.multiplyMatrices(n.bones[r].matrixWorld,n.boneInverses[r]),e.addScaledVector(Ea.copy(wa).applyMatrix4(Aa),i)}}return e.applyMatrix4(this.bindMatrixInverse)}}La.prototype.isSkinnedMesh=!0;class Ra extends Be{constructor(){super(),this.type="Bone"}}Ra.prototype.isBone=!0;class Ca extends At{constructor(t=null,e=1,n=1,i,r,s,a,o,l=1003,c=1003,h,u){super(null,s,a,o,l,c,i,r,h,u),this.image={data:t,width:e,height:n},this.magFilter=l,this.minFilter=c,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1,this.needsUpdate=!0}}Ca.prototype.isDataTexture=!0;const Pa=new ue,Ia=new ue;class Da{constructor(t=[],e=[]){this.uuid=ht(),this.bones=t.slice(0),this.boneInverses=e,this.boneMatrices=null,this.boneTexture=null,this.boneTextureSize=0,this.frame=-1,this.init()}init(){const t=this.bones,e=this.boneInverses;if(this.boneMatrices=new Float32Array(16*t.length),0===e.length)this.calculateInverses();else if(t.length!==e.length){(""),this.boneInverses=[];for(let t=0,e=this.bones.length;t<e;t++)this.boneInverses.push(new ue)}}calculateInverses(){this.boneInverses.length=0;for(let t=0,e=this.bones.length;t<e;t++){const e=new ue;this.bones[t]&&e.copy(this.bones[t].matrixWorld).invert(),this.boneInverses.push(e)}}pose(){for(let t=0,e=this.bones.length;t<e;t++){const e=this.bones[t];e&&e.matrixWorld.copy(this.boneInverses[t]).invert()}for(let t=0,e=this.bones.length;t<e;t++){const e=this.bones[t];e&&(e.parent&&e.parent.isBone?(e.matrix.copy(e.parent.matrixWorld).invert(),e.matrix.multiply(e.matrixWorld)):e.matrix.copy(e.matrixWorld),e.matrix.decompose(e.position,e.quaternion,e.scale))}}update(){const t=this.bones,e=this.boneInverses,n=this.boneMatrices,i=this.boneTexture;for(let i=0,r=t.length;i<r;i++){const r=t[i]?t[i].matrixWorld:Ia;Pa.multiplyMatrices(r,e[i]),Pa.toArray(n,16*i)}null!==i&&(i.needsUpdate=!0)}clone(){return new Da(this.bones,this.boneInverses)}computeBoneTexture(){let t=Math.sqrt(4*this.bones.length);t=ft(t),t=Math.max(t,4);const e=new Float32Array(t*t*4);e.set(this.boneMatrices);const n=new Ca(e,t,t,E,M);return this.boneMatrices=e,this.boneTexture=n,this.boneTextureSize=t,this}getBoneByName(t){for(let e=0,n=this.bones.length;e<n;e++){const n=this.bones[e];if(n.name===t)return n}}dispose(){null!==this.boneTexture&&(this.boneTexture.dispose(),this.boneTexture=null)}fromJSON(t,e){this.uuid=t.uuid;for(let n=0,i=t.bones.length;n<i;n++){const i=t.bones[n];let r=e[i];void 0===r&&(("",i),r=new Ra),this.bones.push(r),this.boneInverses.push((new ue).fromArray(t.boneInverses[n]))}return this.init(),this}toJSON(){const t={metadata:{version:4.5,type:"Skeleton",generator:"Skeleton.toJSON"},bones:[],boneInverses:[]};t.uuid=this.uuid;const e=this.bones,n=this.boneInverses;for(let i=0,r=e.length;i<r;i++){const r=e[i];t.bones.push(r.uuid);const s=n[i];t.boneInverses.push(s.toArray())}return t}}class Na extends on{constructor(t,e,n,i=1){"number"==typeof n&&(i=n,n=!1,("")),super(t,e,n),this.meshPerAttribute=i}copy(t){return super.copy(t),this.meshPerAttribute=t.meshPerAttribute,this}toJSON(){const t=super.toJSON();return t.meshPerAttribute=this.meshPerAttribute,t.isInstancedBufferAttribute=!0,t}}Na.prototype.isInstancedBufferAttribute=!0;const za=new ue,Ba=new ue,Fa=[],Oa=new Vn;class Ua extends Vn{constructor(t,e,n){super(t,e),this.instanceMatrix=new Na(new Float32Array(16*n),16),this.instanceColor=null,this.count=n,this.frustumCulled=!1}copy(t){return super.copy(t),this.instanceMatrix.copy(t.instanceMatrix),null!==t.instanceColor&&(this.instanceColor=t.instanceColor.clone()),this.count=t.count,this}getColorAt(t,e){e.fromArray(this.instanceColor.array,3*t)}getMatrixAt(t,e){e.fromArray(this.instanceMatrix.array,16*t)}raycast(t,e){const n=this.matrixWorld,i=this.count;if(Oa.geometry=this.geometry,Oa.material=this.material,void 0!==Oa.material)for(let r=0;r<i;r++){this.getMatrixAt(r,za),Ba.multiplyMatrices(n,za),Oa.matrixWorld=Ba,Oa.raycast(t,Fa);for(let t=0,n=Fa.length;t<n;t++){const n=Fa[t];n.instanceId=r,n.object=this,e.push(n)}Fa.length=0}}setColorAt(t,e){null===this.instanceColor&&(this.instanceColor=new Na(new Float32Array(3*this.instanceMatrix.count),3)),e.toArray(this.instanceColor.array,3*t)}setMatrixAt(t,e){e.toArray(this.instanceMatrix.array,16*t)}updateMorphTargets(){}dispose(){this.dispatchEvent({type:"dispose"})}}Ua.prototype.isInstancedMesh=!0;class Ha extends Je{constructor(t){super(),this.type="LineBasicMaterial",this.color=new nn(16777215),this.linewidth=1,this.linecap="round",this.linejoin="round",this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.linewidth=t.linewidth,this.linecap=t.linecap,this.linejoin=t.linejoin,this}}Ha.prototype.isLineBasicMaterial=!0;const Ga=new Nt,ka=new Nt,Va=new ue,Wa=new he,ja=new ne;class qa extends Be{constructor(t=new Tn,e=new Ha){super(),this.type="Line",this.geometry=t,this.material=e,this.updateMorphTargets()}copy(t){return super.copy(t),this.material=t.material,this.geometry=t.geometry,this}computeLineDistances(){const t=this.geometry;if(t.isBufferGeometry)if(null===t.index){const e=t.attributes.position,n=[0];for(let t=1,i=e.count;t<i;t++)Ga.fromBufferAttribute(e,t-1),ka.fromBufferAttribute(e,t),n[t]=n[t-1],n[t]+=Ga.distanceTo(ka);t.setAttribute("lineDistance",new gn(n,1))}else ("");else t.isGeometry&&("");return this}raycast(t,e){const n=this.geometry,i=this.matrixWorld,r=t.params.Line.threshold,s=n.drawRange;if(null===n.boundingSphere&&n.computeBoundingSphere(),ja.copy(n.boundingSphere),ja.applyMatrix4(i),ja.radius+=r,!1===t.ray.intersectsSphere(ja))return;Va.copy(i).invert(),Wa.copy(t.ray).applyMatrix4(Va);const a=r/((this.scale.x+this.scale.y+this.scale.z)/3),o=a*a,l=new Nt,c=new Nt,h=new Nt,u=new Nt,d=this.isLineSegments?2:1;if(n.isBufferGeometry){const i=n.index,r=n.attributes.position;if(null!==i){for(let n=Math.max(0,s.start),a=Math.min(i.count,s.start+s.count)-1;n<a;n+=d){const s=i.getX(n),a=i.getX(n+1);l.fromBufferAttribute(r,s),c.fromBufferAttribute(r,a);if(Wa.distanceSqToSegment(l,c,u,h)>o)continue;u.applyMatrix4(this.matrixWorld);const d=t.ray.origin.distanceTo(u);d<t.near||d>t.far||e.push({distance:d,point:h.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}else{for(let n=Math.max(0,s.start),i=Math.min(r.count,s.start+s.count)-1;n<i;n+=d){l.fromBufferAttribute(r,n),c.fromBufferAttribute(r,n+1);if(Wa.distanceSqToSegment(l,c,u,h)>o)continue;u.applyMatrix4(this.matrixWorld);const i=t.ray.origin.distanceTo(u);i<t.near||i>t.far||e.push({distance:i,point:h.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}}else n.isGeometry&&("")}updateMorphTargets(){const t=this.geometry;if(t.isBufferGeometry){const e=t.morphAttributes,n=Object.keys(e);if(n.length>0){const t=e[n[0]];if(void 0!==t){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,n=t.length;e<n;e++){const n=t[e].name||String(e);this.morphTargetInfluences.push(0),this.morphTargetDictionary[n]=e}}}}else{const e=t.morphTargets;void 0!==e&&e.length>0&&("")}}}qa.prototype.isLine=!0;const Xa=new Nt,Ya=new Nt;class Ja extends qa{constructor(t,e){super(t,e),this.type="LineSegments"}computeLineDistances(){const t=this.geometry;if(t.isBufferGeometry)if(null===t.index){const e=t.attributes.position,n=[];for(let t=0,i=e.count;t<i;t+=2)Xa.fromBufferAttribute(e,t),Ya.fromBufferAttribute(e,t+1),n[t]=0===t?0:n[t-1],n[t+1]=n[t]+Xa.distanceTo(Ya);t.setAttribute("lineDistance",new gn(n,1))}else ("");else t.isGeometry&&("");return this}}Ja.prototype.isLineSegments=!0;class Za extends qa{constructor(t,e){super(t,e),this.type="LineLoop"}}Za.prototype.isLineLoop=!0;class Qa extends Je{constructor(t){super(),this.type="PointsMaterial",this.color=new nn(16777215),this.map=null,this.alphaMap=null,this.size=1,this.sizeAttenuation=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.alphaMap=t.alphaMap,this.size=t.size,this.sizeAttenuation=t.sizeAttenuation,this}}Qa.prototype.isPointsMaterial=!0;const Ka=new ue,$a=new he,to=new ne,eo=new Nt;class no extends Be{constructor(t=new Tn,e=new Qa){super(),this.type="Points",this.geometry=t,this.material=e,this.updateMorphTargets()}copy(t){return super.copy(t),this.material=t.material,this.geometry=t.geometry,this}raycast(t,e){const n=this.geometry,i=this.matrixWorld,r=t.params.Points.threshold,s=n.drawRange;if(null===n.boundingSphere&&n.computeBoundingSphere(),to.copy(n.boundingSphere),to.applyMatrix4(i),to.radius+=r,!1===t.ray.intersectsSphere(to))return;Ka.copy(i).invert(),$a.copy(t.ray).applyMatrix4(Ka);const a=r/((this.scale.x+this.scale.y+this.scale.z)/3),o=a*a;if(n.isBufferGeometry){const r=n.index,a=n.attributes.position;if(null!==r){for(let n=Math.max(0,s.start),l=Math.min(r.count,s.start+s.count);n<l;n++){const s=r.getX(n);eo.fromBufferAttribute(a,s),io(eo,s,o,i,t,e,this)}}else{for(let n=Math.max(0,s.start),r=Math.min(a.count,s.start+s.count);n<r;n++)eo.fromBufferAttribute(a,n),io(eo,n,o,i,t,e,this)}}else ("")}updateMorphTargets(){const t=this.geometry;if(t.isBufferGeometry){const e=t.morphAttributes,n=Object.keys(e);if(n.length>0){const t=e[n[0]];if(void 0!==t){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,n=t.length;e<n;e++){const n=t[e].name||String(e);this.morphTargetInfluences.push(0),this.morphTargetDictionary[n]=e}}}}else{const e=t.morphTargets;void 0!==e&&e.length>0&&("")}}}function io(t,e,n,i,r,s,a){const o=$a.distanceSqToPoint(t);if(o<n){const n=new Nt;$a.closestPointToPoint(t,n),n.applyMatrix4(i);const l=r.ray.origin.distanceTo(n);if(l<r.near||l>r.far)return;s.push({distance:l,distanceToRay:Math.sqrt(o),point:n,index:e,face:null,object:a})}}no.prototype.isPoints=!0;class ro extends At{constructor(t,e,n,i,r,s,a,o,l){super(t,e,n,i,r,s,a,o,l),this.format=void 0!==a?a:T,this.minFilter=void 0!==s?s:g,this.magFilter=void 0!==r?r:g,this.generateMipmaps=!1;const c=this;"requestVideoFrameCallback"in t&&t.requestVideoFrameCallback((function e(){c.needsUpdate=!0,t.requestVideoFrameCallback(e)}))}clone(){return new this.constructor(this.image).copy(this)}update(){const t=this.image;!1==="requestVideoFrameCallback"in t&&t.readyState>=t.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}ro.prototype.isVideoTexture=!0;class so extends At{constructor(t,e,n,i,r,s,a,o,l,c,h,u){super(null,s,a,o,l,c,i,r,h,u),this.image={width:e,height:n},this.mipmaps=t,this.flipY=!1,this.generateMipmaps=!1}}so.prototype.isCompressedTexture=!0;class ao extends At{constructor(t,e,n,i,r,s,a,o,l){super(t,e,n,i,r,s,a,o,l),this.needsUpdate=!0}}ao.prototype.isCanvasTexture=!0;class oo extends At{constructor(t,e,n,i,r,s,a,o,l,c){if((c=void 0!==c?c:A)!==A&&c!==L)throw new Error("");void 0===n&&c===A&&(n=_),void 0===n&&c===L&&(n=S),super(null,i,r,s,a,o,c,n,l),this.image={width:t,height:e},this.magFilter=void 0!==a?a:p,this.minFilter=void 0!==o?o:p,this.flipY=!1,this.generateMipmaps=!1}}oo.prototype.isDepthTexture=!0;class lo extends Tn{constructor(t=1,e=8,n=0,i=2*Math.PI){super(),this.type="CircleGeometry",this.parameters={radius:t,segments:e,thetaStart:n,thetaLength:i},e=Math.max(3,e);const r=[],s=[],a=[],o=[],l=new Nt,c=new yt;s.push(0,0,0),a.push(0,0,1),o.push(.5,.5);for(let r=0,h=3;r<=e;r++,h+=3){const u=n+r/e*i;l.x=t*Math.cos(u),l.y=t*Math.sin(u),s.push(l.x,l.y,l.z),a.push(0,0,1),c.x=(s[h]/t+1)/2,c.y=(s[h+1]/t+1)/2,o.push(c.x,c.y)}for(let t=1;t<=e;t++)r.push(t,t+1,0);this.setIndex(r),this.setAttribute("position",new gn(s,3)),this.setAttribute("normal",new gn(a,3)),this.setAttribute("uv",new gn(o,2))}static fromJSON(t){return new lo(t.radius,t.segments,t.thetaStart,t.thetaLength)}}class co extends Tn{constructor(t=1,e=1,n=1,i=8,r=1,s=!1,a=0,o=2*Math.PI){super(),this.type="CylinderGeometry",this.parameters={radiusTop:t,radiusBottom:e,height:n,radialSegments:i,heightSegments:r,openEnded:s,thetaStart:a,thetaLength:o};const l=this;i=Math.floor(i),r=Math.floor(r);const c=[],h=[],u=[],d=[];let p=0;const m=[],f=n/2;let g=0;function v(n){const r=p,s=new yt,m=new Nt;let v=0;const y=!0===n?t:e,x=!0===n?1:-1;for(let t=1;t<=i;t++)h.push(0,f*x,0),u.push(0,x,0),d.push(.5,.5),p++;const _=p;for(let t=0;t<=i;t++){const e=t/i*o+a,n=Math.cos(e),r=Math.sin(e);m.x=y*r,m.y=f*x,m.z=y*n,h.push(m.x,m.y,m.z),u.push(0,x,0),s.x=.5*n+.5,s.y=.5*r*x+.5,d.push(s.x,s.y),p++}for(let t=0;t<i;t++){const e=r+t,i=_+t;!0===n?c.push(i,i+1,e):c.push(i+1,i,e),v+=3}l.addGroup(g,v,!0===n?1:2),g+=v}!function(){const s=new Nt,v=new Nt;let y=0;const x=(e-t)/n;for(let l=0;l<=r;l++){const c=[],g=l/r,y=g*(e-t)+t;for(let t=0;t<=i;t++){const e=t/i,r=e*o+a,l=Math.sin(r),m=Math.cos(r);v.x=y*l,v.y=-g*n+f,v.z=y*m,h.push(v.x,v.y,v.z),s.set(l,x,m).normalize(),u.push(s.x,s.y,s.z),d.push(e,1-g),c.push(p++)}m.push(c)}for(let t=0;t<i;t++)for(let e=0;e<r;e++){const n=m[e][t],i=m[e+1][t],r=m[e+1][t+1],s=m[e][t+1];c.push(n,i,s),c.push(i,r,s),y+=6}l.addGroup(g,y,0),g+=y}(),!1===s&&(t>0&&v(!0),e>0&&v(!1)),this.setIndex(c),this.setAttribute("position",new gn(h,3)),this.setAttribute("normal",new gn(u,3)),this.setAttribute("uv",new gn(d,2))}static fromJSON(t){return new co(t.radiusTop,t.radiusBottom,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}class ho extends co{constructor(t=1,e=1,n=8,i=1,r=!1,s=0,a=2*Math.PI){super(0,t,e,n,i,r,s,a),this.type="ConeGeometry",this.parameters={radius:t,height:e,radialSegments:n,heightSegments:i,openEnded:r,thetaStart:s,thetaLength:a}}static fromJSON(t){return new ho(t.radius,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}}class uo extends Tn{constructor(t=[],e=[],n=1,i=0){super(),this.type="PolyhedronGeometry",this.parameters={vertices:t,indices:e,radius:n,detail:i};const r=[],s=[];function a(t,e,n,i){const r=i+1,s=[];for(let i=0;i<=r;i++){s[i]=[];const a=t.clone().lerp(n,i/r),o=e.clone().lerp(n,i/r),l=r-i;for(let t=0;t<=l;t++)s[i][t]=0===t&&i===r?a:a.clone().lerp(o,t/l)}for(let t=0;t<r;t++)for(let e=0;e<2*(r-t)-1;e++){const n=Math.floor(e/2);e%2==0?(o(s[t][n+1]),o(s[t+1][n]),o(s[t][n])):(o(s[t][n+1]),o(s[t+1][n+1]),o(s[t+1][n]))}}function o(t){r.push(t.x,t.y,t.z)}function l(e,n){const i=3*e;n.x=t[i+0],n.y=t[i+1],n.z=t[i+2]}function c(t,e,n,i){i<0&&1===t.x&&(s[e]=t.x-1),0===n.x&&0===n.z&&(s[e]=i/2/Math.PI+.5)}function h(t){return Math.atan2(t.z,-t.x)}!function(t){const n=new Nt,i=new Nt,r=new Nt;for(let s=0;s<e.length;s+=3)l(e[s+0],n),l(e[s+1],i),l(e[s+2],r),a(n,i,r,t)}(i),function(t){const e=new Nt;for(let n=0;n<r.length;n+=3)e.x=r[n+0],e.y=r[n+1],e.z=r[n+2],e.normalize().multiplyScalar(t),r[n+0]=e.x,r[n+1]=e.y,r[n+2]=e.z}(n),function(){const t=new Nt;for(let n=0;n<r.length;n+=3){t.x=r[n+0],t.y=r[n+1],t.z=r[n+2];const i=h(t)/2/Math.PI+.5,a=(e=t,Math.atan2(-e.y,Math.sqrt(e.x*e.x+e.z*e.z))/Math.PI+.5);s.push(i,1-a)}var e;(function(){const t=new Nt,e=new Nt,n=new Nt,i=new Nt,a=new yt,o=new yt,l=new yt;for(let u=0,d=0;u<r.length;u+=9,d+=6){t.set(r[u+0],r[u+1],r[u+2]),e.set(r[u+3],r[u+4],r[u+5]),n.set(r[u+6],r[u+7],r[u+8]),a.set(s[d+0],s[d+1]),o.set(s[d+2],s[d+3]),l.set(s[d+4],s[d+5]),i.copy(t).add(e).add(n).divideScalar(3);const p=h(i);c(a,d+0,t,p),c(o,d+2,e,p),c(l,d+4,n,p)}})(),function(){for(let t=0;t<s.length;t+=6){const e=s[t+0],n=s[t+2],i=s[t+4],r=Math.max(e,n,i),a=Math.min(e,n,i);r>.9&&a<.1&&(e<.2&&(s[t+0]+=1),n<.2&&(s[t+2]+=1),i<.2&&(s[t+4]+=1))}}()}(),this.setAttribute("position",new gn(r,3)),this.setAttribute("normal",new gn(r.slice(),3)),this.setAttribute("uv",new gn(s,2)),0===i?this.computeVertexNormals():this.normalizeNormals()}static fromJSON(t){return new uo(t.vertices,t.indices,t.radius,t.details)}}class po extends uo{constructor(t=1,e=0){const n=(1+Math.sqrt(5))/2,i=1/n;super([-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-i,-n,0,-i,n,0,i,-n,0,i,n,-i,-n,0,-i,n,0,i,-n,0,i,n,0,-n,0,-i,n,0,-i,-n,0,i,n,0,i],[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],t,e),this.type="DodecahedronGeometry",this.parameters={radius:t,detail:e}}static fromJSON(t){return new po(t.radius,t.detail)}}const mo=new Nt,fo=new Nt,go=new Nt,vo=new Xe;class yo extends Tn{constructor(t=null,e=1){if(super(),this.type="EdgesGeometry",this.parameters={geometry:t,thresholdAngle:e},null!==t){const n=4,i=Math.pow(10,n),r=Math.cos(at*e),s=t.getIndex(),a=t.getAttribute("position"),o=s?s.count:a.count,l=[0,0,0],c=["a","b","c"],h=new Array(3),u={},d=[];for(let t=0;t<o;t+=3){s?(l[0]=s.getX(t),l[1]=s.getX(t+1),l[2]=s.getX(t+2)):(l[0]=t,l[1]=t+1,l[2]=t+2);const{a:e,b:n,c:o}=vo;if(e.fromBufferAttribute(a,l[0]),n.fromBufferAttribute(a,l[1]),o.fromBufferAttribute(a,l[2]),vo.getNormal(go),h[0]=`${Math.round(e.x*i)},${Math.round(e.y*i)},${Math.round(e.z*i)}`,h[1]=`${Math.round(n.x*i)},${Math.round(n.y*i)},${Math.round(n.z*i)}`,h[2]=`${Math.round(o.x*i)},${Math.round(o.y*i)},${Math.round(o.z*i)}`,h[0]!==h[1]&&h[1]!==h[2]&&h[2]!==h[0])for(let t=0;t<3;t++){const e=(t+1)%3,n=h[t],i=h[e],s=vo[c[t]],a=vo[c[e]],o=`${n}_${i}`,p=`${i}_${n}`;p in u&&u[p]?(go.dot(u[p].normal)<=r&&(d.push(s.x,s.y,s.z),d.push(a.x,a.y,a.z)),u[p]=null):o in u||(u[o]={index0:l[t],index1:l[e],normal:go.clone()})}}for(const t in u)if(u[t]){const{index0:e,index1:n}=u[t];mo.fromBufferAttribute(a,e),fo.fromBufferAttribute(a,n),d.push(mo.x,mo.y,mo.z),d.push(fo.x,fo.y,fo.z)}this.setAttribute("position",new gn(d,3))}}}class xo{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return (""),null}getPointAt(t,e){const n=this.getUtoTmapping(t);return this.getPoint(n,e)}getPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPoint(n/t));return e}getSpacedPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPointAt(n/t));return e}getLength(){const t=this.getLengths();return t[t.length-1]}getLengths(t=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===t+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const e=[];let n,i=this.getPoint(0),r=0;e.push(0);for(let s=1;s<=t;s++)n=this.getPoint(s/t),r+=n.distanceTo(i),e.push(r),i=n;return this.cacheArcLengths=e,e}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(t,e){const n=this.getLengths();let i=0;const r=n.length;let s;s=e||t*n[r-1];let a,o=0,l=r-1;for(;o<=l;)if(i=Math.floor(o+(l-o)/2),a=n[i]-s,a<0)o=i+1;else{if(!(a>0)){l=i;break}l=i-1}if(i=l,n[i]===s)return i/(r-1);const c=n[i];return(i+(s-c)/(n[i+1]-c))/(r-1)}getTangent(t,e){const n=1e-4;let i=t-n,r=t+n;i<0&&(i=0),r>1&&(r=1);const s=this.getPoint(i),a=this.getPoint(r),o=e||(s.isVector2?new yt:new Nt);return o.copy(a).sub(s).normalize(),o}getTangentAt(t,e){const n=this.getUtoTmapping(t);return this.getTangent(n,e)}computeFrenetFrames(t,e){const n=new Nt,i=[],r=[],s=[],a=new Nt,o=new ue;for(let e=0;e<=t;e++){const n=e/t;i[e]=this.getTangentAt(n,new Nt)}r[0]=new Nt,s[0]=new Nt;let l=Number.MAX_VALUE;const c=Math.abs(i[0].x),h=Math.abs(i[0].y),u=Math.abs(i[0].z);c<=l&&(l=c,n.set(1,0,0)),h<=l&&(l=h,n.set(0,1,0)),u<=l&&n.set(0,0,1),a.crossVectors(i[0],n).normalize(),r[0].crossVectors(i[0],a),s[0].crossVectors(i[0],r[0]);for(let e=1;e<=t;e++){if(r[e]=r[e-1].clone(),s[e]=s[e-1].clone(),a.crossVectors(i[e-1],i[e]),a.length()>Number.EPSILON){a.normalize();const t=Math.acos(ut(i[e-1].dot(i[e]),-1,1));r[e].applyMatrix4(o.makeRotationAxis(a,t))}s[e].crossVectors(i[e],r[e])}if(!0===e){let e=Math.acos(ut(r[0].dot(r[t]),-1,1));e/=t,i[0].dot(a.crossVectors(r[0],r[t]))>0&&(e=-e);for(let n=1;n<=t;n++)r[n].applyMatrix4(o.makeRotationAxis(i[n],e*n)),s[n].crossVectors(i[n],r[n])}return{tangents:i,normals:r,binormals:s}}clone(){return(new this.constructor).copy(this)}copy(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}toJSON(){const t={metadata:{version:4.5,type:"Curve",generator:"Curve.toJSON"}};return t.arcLengthDivisions=this.arcLengthDivisions,t.type=this.type,t}fromJSON(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}}class _o extends xo{constructor(t=0,e=0,n=1,i=1,r=0,s=2*Math.PI,a=!1,o=0){super(),this.type="EllipseCurve",this.aX=t,this.aY=e,this.xRadius=n,this.yRadius=i,this.aStartAngle=r,this.aEndAngle=s,this.aClockwise=a,this.aRotation=o}getPoint(t,e){const n=e||new yt,i=2*Math.PI;let r=this.aEndAngle-this.aStartAngle;const s=Math.abs(r)<Number.EPSILON;for(;r<0;)r+=i;for(;r>i;)r-=i;r<Number.EPSILON&&(r=s?0:i),!0!==this.aClockwise||s||(r===i?r=-i:r-=i);const a=this.aStartAngle+t*r;let o=this.aX+this.xRadius*Math.cos(a),l=this.aY+this.yRadius*Math.sin(a);if(0!==this.aRotation){const t=Math.cos(this.aRotation),e=Math.sin(this.aRotation),n=o-this.aX,i=l-this.aY;o=n*t-i*e+this.aX,l=n*e+i*t+this.aY}return n.set(o,l)}copy(t){return super.copy(t),this.aX=t.aX,this.aY=t.aY,this.xRadius=t.xRadius,this.yRadius=t.yRadius,this.aStartAngle=t.aStartAngle,this.aEndAngle=t.aEndAngle,this.aClockwise=t.aClockwise,this.aRotation=t.aRotation,this}toJSON(){const t=super.toJSON();return t.aX=this.aX,t.aY=this.aY,t.xRadius=this.xRadius,t.yRadius=this.yRadius,t.aStartAngle=this.aStartAngle,t.aEndAngle=this.aEndAngle,t.aClockwise=this.aClockwise,t.aRotation=this.aRotation,t}fromJSON(t){return super.fromJSON(t),this.aX=t.aX,this.aY=t.aY,this.xRadius=t.xRadius,this.yRadius=t.yRadius,this.aStartAngle=t.aStartAngle,this.aEndAngle=t.aEndAngle,this.aClockwise=t.aClockwise,this.aRotation=t.aRotation,this}}_o.prototype.isEllipseCurve=!0;class bo extends _o{constructor(t,e,n,i,r,s){super(t,e,n,n,i,r,s),this.type="ArcCurve"}}function Mo(){let t=0,e=0,n=0,i=0;function r(r,s,a,o){t=r,e=a,n=-3*r+3*s-2*a-o,i=2*r-2*s+a+o}return{initCatmullRom:function(t,e,n,i,s){r(e,n,s*(n-t),s*(i-e))},initNonuniformCatmullRom:function(t,e,n,i,s,a,o){let l=(e-t)/s-(n-t)/(s+a)+(n-e)/a,c=(n-e)/a-(i-e)/(a+o)+(i-n)/o;l*=a,c*=a,r(e,n,l,c)},calc:function(r){const s=r*r;return t+e*r+n*s+i*(s*r)}}}bo.prototype.isArcCurve=!0;const wo=new Nt,So=new Mo,To=new Mo,Eo=new Mo;class Ao extends xo{constructor(t=[],e=!1,n="centripetal",i=.5){super(),this.type="CatmullRomCurve3",this.points=t,this.closed=e,this.curveType=n,this.tension=i}getPoint(t,e=new Nt){const n=e,i=this.points,r=i.length,s=(r-(this.closed?0:1))*t;let a,o,l=Math.floor(s),c=s-l;this.closed?l+=l>0?0:(Math.floor(Math.abs(l)/r)+1)*r:0===c&&l===r-1&&(l=r-2,c=1),this.closed||l>0?a=i[(l-1)%r]:(wo.subVectors(i[0],i[1]).add(i[0]),a=wo);const h=i[l%r],u=i[(l+1)%r];if(this.closed||l+2<r?o=i[(l+2)%r]:(wo.subVectors(i[r-1],i[r-2]).add(i[r-1]),o=wo),"centripetal"===this.curveType||"chordal"===this.curveType){const t="chordal"===this.curveType?.5:.25;let e=Math.pow(a.distanceToSquared(h),t),n=Math.pow(h.distanceToSquared(u),t),i=Math.pow(u.distanceToSquared(o),t);n<1e-4&&(n=1),e<1e-4&&(e=n),i<1e-4&&(i=n),So.initNonuniformCatmullRom(a.x,h.x,u.x,o.x,e,n,i),To.initNonuniformCatmullRom(a.y,h.y,u.y,o.y,e,n,i),Eo.initNonuniformCatmullRom(a.z,h.z,u.z,o.z,e,n,i)}else"catmullrom"===this.curveType&&(So.initCatmullRom(a.x,h.x,u.x,o.x,this.tension),To.initCatmullRom(a.y,h.y,u.y,o.y,this.tension),Eo.initCatmullRom(a.z,h.z,u.z,o.z,this.tension));return n.set(So.calc(c),To.calc(c),Eo.calc(c)),n}copy(t){super.copy(t),this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push(n.clone())}return this.closed=t.closed,this.curveType=t.curveType,this.tension=t.tension,this}toJSON(){const t=super.toJSON();t.points=[];for(let e=0,n=this.points.length;e<n;e++){const n=this.points[e];t.points.push(n.toArray())}return t.closed=this.closed,t.curveType=this.curveType,t.tension=this.tension,t}fromJSON(t){super.fromJSON(t),this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push((new Nt).fromArray(n))}return this.closed=t.closed,this.curveType=t.curveType,this.tension=t.tension,this}}function Lo(t,e,n,i,r){const s=.5*(i-e),a=.5*(r-n),o=t*t;return(2*n-2*i+s+a)*(t*o)+(-3*n+3*i-2*s-a)*o+s*t+n}function Ro(t,e,n,i){return function(t,e){const n=1-t;return n*n*e}(t,e)+function(t,e){return 2*(1-t)*t*e}(t,n)+function(t,e){return t*t*e}(t,i)}function Co(t,e,n,i,r){return function(t,e){const n=1-t;return n*n*n*e}(t,e)+function(t,e){const n=1-t;return 3*n*n*t*e}(t,n)+function(t,e){return 3*(1-t)*t*t*e}(t,i)+function(t,e){return t*t*t*e}(t,r)}Ao.prototype.isCatmullRomCurve3=!0;class Po extends xo{constructor(t=new yt,e=new yt,n=new yt,i=new yt){super(),this.type="CubicBezierCurve",this.v0=t,this.v1=e,this.v2=n,this.v3=i}getPoint(t,e=new yt){const n=e,i=this.v0,r=this.v1,s=this.v2,a=this.v3;return n.set(Co(t,i.x,r.x,s.x,a.x),Co(t,i.y,r.y,s.y,a.y)),n}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this.v3.copy(t.v3),this}toJSON(){const t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t.v3=this.v3.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this.v3.fromArray(t.v3),this}}Po.prototype.isCubicBezierCurve=!0;class Io extends xo{constructor(t=new Nt,e=new Nt,n=new Nt,i=new Nt){super(),this.type="CubicBezierCurve3",this.v0=t,this.v1=e,this.v2=n,this.v3=i}getPoint(t,e=new Nt){const n=e,i=this.v0,r=this.v1,s=this.v2,a=this.v3;return n.set(Co(t,i.x,r.x,s.x,a.x),Co(t,i.y,r.y,s.y,a.y),Co(t,i.z,r.z,s.z,a.z)),n}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this.v3.copy(t.v3),this}toJSON(){const t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t.v3=this.v3.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this.v3.fromArray(t.v3),this}}Io.prototype.isCubicBezierCurve3=!0;class Do extends xo{constructor(t=new yt,e=new yt){super(),this.type="LineCurve",this.v1=t,this.v2=e}getPoint(t,e=new yt){const n=e;return 1===t?n.copy(this.v2):(n.copy(this.v2).sub(this.v1),n.multiplyScalar(t).add(this.v1)),n}getPointAt(t,e){return this.getPoint(t,e)}getTangent(t,e){const n=e||new yt;return n.copy(this.v2).sub(this.v1).normalize(),n}copy(t){return super.copy(t),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){const t=super.toJSON();return t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}}Do.prototype.isLineCurve=!0;class No extends xo{constructor(t=new Nt,e=new Nt){super(),this.type="LineCurve3",this.isLineCurve3=!0,this.v1=t,this.v2=e}getPoint(t,e=new Nt){const n=e;return 1===t?n.copy(this.v2):(n.copy(this.v2).sub(this.v1),n.multiplyScalar(t).add(this.v1)),n}getPointAt(t,e){return this.getPoint(t,e)}copy(t){return super.copy(t),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){const t=super.toJSON();return t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}}class zo extends xo{constructor(t=new yt,e=new yt,n=new yt){super(),this.type="QuadraticBezierCurve",this.v0=t,this.v1=e,this.v2=n}getPoint(t,e=new yt){const n=e,i=this.v0,r=this.v1,s=this.v2;return n.set(Ro(t,i.x,r.x,s.x),Ro(t,i.y,r.y,s.y)),n}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){const t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}}zo.prototype.isQuadraticBezierCurve=!0;class Bo extends xo{constructor(t=new Nt,e=new Nt,n=new Nt){super(),this.type="QuadraticBezierCurve3",this.v0=t,this.v1=e,this.v2=n}getPoint(t,e=new Nt){const n=e,i=this.v0,r=this.v1,s=this.v2;return n.set(Ro(t,i.x,r.x,s.x),Ro(t,i.y,r.y,s.y),Ro(t,i.z,r.z,s.z)),n}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){const t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}}Bo.prototype.isQuadraticBezierCurve3=!0;class Fo extends xo{constructor(t=[]){super(),this.type="SplineCurve",this.points=t}getPoint(t,e=new yt){const n=e,i=this.points,r=(i.length-1)*t,s=Math.floor(r),a=r-s,o=i[0===s?s:s-1],l=i[s],c=i[s>i.length-2?i.length-1:s+1],h=i[s>i.length-3?i.length-1:s+2];return n.set(Lo(a,o.x,l.x,c.x,h.x),Lo(a,o.y,l.y,c.y,h.y)),n}copy(t){super.copy(t),this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push(n.clone())}return this}toJSON(){const t=super.toJSON();t.points=[];for(let e=0,n=this.points.length;e<n;e++){const n=this.points[e];t.points.push(n.toArray())}return t}fromJSON(t){super.fromJSON(t),this.points=[];for(let e=0,n=t.points.length;e<n;e++){const n=t.points[e];this.points.push((new yt).fromArray(n))}return this}}Fo.prototype.isSplineCurve=!0;var Oo=Object.freeze({__proto__:null,ArcCurve:bo,CatmullRomCurve3:Ao,CubicBezierCurve:Po,CubicBezierCurve3:Io,EllipseCurve:_o,LineCurve:Do,LineCurve3:No,QuadraticBezierCurve:zo,QuadraticBezierCurve3:Bo,SplineCurve:Fo});class Uo extends xo{constructor(){super(),this.type="CurvePath",this.curves=[],this.autoClose=!1}add(t){this.curves.push(t)}closePath(){const t=this.curves[0].getPoint(0),e=this.curves[this.curves.length-1].getPoint(1);t.equals(e)||this.curves.push(new Do(e,t))}getPoint(t,e){const n=t*this.getLength(),i=this.getCurveLengths();let r=0;for(;r<i.length;){if(i[r]>=n){const t=i[r]-n,s=this.curves[r],a=s.getLength(),o=0===a?0:1-t/a;return s.getPointAt(o,e)}r++}return null}getLength(){const t=this.getCurveLengths();return t[t.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const t=[];let e=0;for(let n=0,i=this.curves.length;n<i;n++)e+=this.curves[n].getLength(),t.push(e);return this.cacheLengths=t,t}getSpacedPoints(t=40){const e=[];for(let n=0;n<=t;n++)e.push(this.getPoint(n/t));return this.autoClose&&e.push(e[0]),e}getPoints(t=12){const e=[];let n;for(let i=0,r=this.curves;i<r.length;i++){const s=r[i],a=s&&s.isEllipseCurve?2*t:s&&(s.isLineCurve||s.isLineCurve3)?1:s&&s.isSplineCurve?t*s.points.length:t,o=s.getPoints(a);for(let t=0;t<o.length;t++){const i=o[t];n&&n.equals(i)||(e.push(i),n=i)}}return this.autoClose&&e.length>1&&!e[e.length-1].equals(e[0])&&e.push(e[0]),e}copy(t){super.copy(t),this.curves=[];for(let e=0,n=t.curves.length;e<n;e++){const n=t.curves[e];this.curves.push(n.clone())}return this.autoClose=t.autoClose,this}toJSON(){const t=super.toJSON();t.autoClose=this.autoClose,t.curves=[];for(let e=0,n=this.curves.length;e<n;e++){const n=this.curves[e];t.curves.push(n.toJSON())}return t}fromJSON(t){super.fromJSON(t),this.autoClose=t.autoClose,this.curves=[];for(let e=0,n=t.curves.length;e<n;e++){const n=t.curves[e];this.curves.push((new Oo[n.type]).fromJSON(n))}return this}}class Ho extends Uo{constructor(t){super(),this.type="Path",this.currentPoint=new yt,t&&this.setFromPoints(t)}setFromPoints(t){this.moveTo(t[0].x,t[0].y);for(let e=1,n=t.length;e<n;e++)this.lineTo(t[e].x,t[e].y);return this}moveTo(t,e){return this.currentPoint.set(t,e),this}lineTo(t,e){const n=new Do(this.currentPoint.clone(),new yt(t,e));return this.curves.push(n),this.currentPoint.set(t,e),this}quadraticCurveTo(t,e,n,i){const r=new zo(this.currentPoint.clone(),new yt(t,e),new yt(n,i));return this.curves.push(r),this.currentPoint.set(n,i),this}bezierCurveTo(t,e,n,i,r,s){const a=new Po(this.currentPoint.clone(),new yt(t,e),new yt(n,i),new yt(r,s));return this.curves.push(a),this.currentPoint.set(r,s),this}splineThru(t){const e=[this.currentPoint.clone()].concat(t),n=new Fo(e);return this.curves.push(n),this.currentPoint.copy(t[t.length-1]),this}arc(t,e,n,i,r,s){const a=this.currentPoint.x,o=this.currentPoint.y;return this.absarc(t+a,e+o,n,i,r,s),this}absarc(t,e,n,i,r,s){return this.absellipse(t,e,n,n,i,r,s),this}ellipse(t,e,n,i,r,s,a,o){const l=this.currentPoint.x,c=this.currentPoint.y;return this.absellipse(t+l,e+c,n,i,r,s,a,o),this}absellipse(t,e,n,i,r,s,a,o){const l=new _o(t,e,n,i,r,s,a,o);if(this.curves.length>0){const t=l.getPoint(0);t.equals(this.currentPoint)||this.lineTo(t.x,t.y)}this.curves.push(l);const c=l.getPoint(1);return this.currentPoint.copy(c),this}copy(t){return super.copy(t),this.currentPoint.copy(t.currentPoint),this}toJSON(){const t=super.toJSON();return t.currentPoint=this.currentPoint.toArray(),t}fromJSON(t){return super.fromJSON(t),this.currentPoint.fromArray(t.currentPoint),this}}class Go extends Ho{constructor(t){super(t),this.uuid=ht(),this.type="Shape",this.holes=[]}getPointsHoles(t){const e=[];for(let n=0,i=this.holes.length;n<i;n++)e[n]=this.holes[n].getPoints(t);return e}extractPoints(t){return{shape:this.getPoints(t),holes:this.getPointsHoles(t)}}copy(t){super.copy(t),this.holes=[];for(let e=0,n=t.holes.length;e<n;e++){const n=t.holes[e];this.holes.push(n.clone())}return this}toJSON(){const t=super.toJSON();t.uuid=this.uuid,t.holes=[];for(let e=0,n=this.holes.length;e<n;e++){const n=this.holes[e];t.holes.push(n.toJSON())}return t}fromJSON(t){super.fromJSON(t),this.uuid=t.uuid,this.holes=[];for(let e=0,n=t.holes.length;e<n;e++){const n=t.holes[e];this.holes.push((new Ho).fromJSON(n))}return this}}const ko=function(t,e,n=2){const i=e&&e.length,r=i?e[0]*n:t.length;let s=Vo(t,0,r,n,!0);const a=[];if(!s||s.next===s.prev)return a;let o,l,c,h,u,d,p;if(i&&(s=function(t,e,n,i){const r=[];let s,a,o,l,c;for(s=0,a=e.length;s<a;s++)o=e[s]*i,l=s<a-1?e[s+1]*i:t.length,c=Vo(t,o,l,i,!1),c===c.next&&(c.steiner=!0),r.push(tl(c));for(r.sort(Zo),s=0;s<r.length;s++)Qo(r[s],n),n=Wo(n,n.next);return n}(t,e,s,n)),t.length>80*n){o=c=t[0],l=h=t[1];for(let e=n;e<r;e+=n)u=t[e],d=t[e+1],u<o&&(o=u),d<l&&(l=d),u>c&&(c=u),d>h&&(h=d);p=Math.max(c-o,h-l),p=0!==p?1/p:0}return jo(s,a,n,o,l,p),a};function Vo(t,e,n,i,r){let s,a;if(r===function(t,e,n,i){let r=0;for(let s=e,a=n-i;s<n;s+=i)r+=(t[a]-t[s])*(t[s+1]+t[a+1]),a=s;return r}(t,e,n,i)>0)for(s=e;s<n;s+=i)a=hl(s,t[s],t[s+1],a);else for(s=n-i;s>=e;s-=i)a=hl(s,t[s],t[s+1],a);return a&&rl(a,a.next)&&(ul(a),a=a.next),a}function Wo(t,e){if(!t)return t;e||(e=t);let n,i=t;do{if(n=!1,i.steiner||!rl(i,i.next)&&0!==il(i.prev,i,i.next))i=i.next;else{if(ul(i),i=e=i.prev,i===i.next)break;n=!0}}while(n||i!==e);return e}function jo(t,e,n,i,r,s,a){if(!t)return;!a&&s&&function(t,e,n,i){let r=t;do{null===r.z&&(r.z=$o(r.x,r.y,e,n,i)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next}while(r!==t);r.prevZ.nextZ=null,r.prevZ=null,function(t){let e,n,i,r,s,a,o,l,c=1;do{for(n=t,t=null,s=null,a=0;n;){for(a++,i=n,o=0,e=0;e<c&&(o++,i=i.nextZ,i);e++);for(l=c;o>0||l>0&&i;)0!==o&&(0===l||!i||n.z<=i.z)?(r=n,n=n.nextZ,o--):(r=i,i=i.nextZ,l--),s?s.nextZ=r:t=r,r.prevZ=s,s=r;n=i}s.nextZ=null,c*=2}while(a>1)}(r)}(t,i,r,s);let o,l,c=t;for(;t.prev!==t.next;)if(o=t.prev,l=t.next,s?Xo(t,i,r,s):qo(t))e.push(o.i/n),e.push(t.i/n),e.push(l.i/n),ul(t),t=l.next,c=l.next;else if((t=l)===c){a?1===a?jo(t=Yo(Wo(t),e,n),e,n,i,r,s,2):2===a&&Jo(t,e,n,i,r,s):jo(Wo(t),e,n,i,r,s,1);break}}function qo(t){const e=t.prev,n=t,i=t.next;if(il(e,n,i)>=0)return!1;let r=t.next.next;for(;r!==t.prev;){if(el(e.x,e.y,n.x,n.y,i.x,i.y,r.x,r.y)&&il(r.prev,r,r.next)>=0)return!1;r=r.next}return!0}function Xo(t,e,n,i){const r=t.prev,s=t,a=t.next;if(il(r,s,a)>=0)return!1;const o=r.x<s.x?r.x<a.x?r.x:a.x:s.x<a.x?s.x:a.x,l=r.y<s.y?r.y<a.y?r.y:a.y:s.y<a.y?s.y:a.y,c=r.x>s.x?r.x>a.x?r.x:a.x:s.x>a.x?s.x:a.x,h=r.y>s.y?r.y>a.y?r.y:a.y:s.y>a.y?s.y:a.y,u=$o(o,l,e,n,i),d=$o(c,h,e,n,i);let p=t.prevZ,m=t.nextZ;for(;p&&p.z>=u&&m&&m.z<=d;){if(p!==t.prev&&p!==t.next&&el(r.x,r.y,s.x,s.y,a.x,a.y,p.x,p.y)&&il(p.prev,p,p.next)>=0)return!1;if(p=p.prevZ,m!==t.prev&&m!==t.next&&el(r.x,r.y,s.x,s.y,a.x,a.y,m.x,m.y)&&il(m.prev,m,m.next)>=0)return!1;m=m.nextZ}for(;p&&p.z>=u;){if(p!==t.prev&&p!==t.next&&el(r.x,r.y,s.x,s.y,a.x,a.y,p.x,p.y)&&il(p.prev,p,p.next)>=0)return!1;p=p.prevZ}for(;m&&m.z<=d;){if(m!==t.prev&&m!==t.next&&el(r.x,r.y,s.x,s.y,a.x,a.y,m.x,m.y)&&il(m.prev,m,m.next)>=0)return!1;m=m.nextZ}return!0}function Yo(t,e,n){let i=t;do{const r=i.prev,s=i.next.next;!rl(r,s)&&sl(r,i,i.next,s)&&ll(r,s)&&ll(s,r)&&(e.push(r.i/n),e.push(i.i/n),e.push(s.i/n),ul(i),ul(i.next),i=t=s),i=i.next}while(i!==t);return Wo(i)}function Jo(t,e,n,i,r,s){let a=t;do{let t=a.next.next;for(;t!==a.prev;){if(a.i!==t.i&&nl(a,t)){let o=cl(a,t);return a=Wo(a,a.next),o=Wo(o,o.next),jo(a,e,n,i,r,s),void jo(o,e,n,i,r,s)}t=t.next}a=a.next}while(a!==t)}function Zo(t,e){return t.x-e.x}function Qo(t,e){if(e=function(t,e){let n=e;const i=t.x,r=t.y;let s,a=-1/0;do{if(r<=n.y&&r>=n.next.y&&n.next.y!==n.y){const t=n.x+(r-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(t<=i&&t>a){if(a=t,t===i){if(r===n.y)return n;if(r===n.next.y)return n.next}s=n.x<n.next.x?n:n.next}}n=n.next}while(n!==e);if(!s)return null;if(i===a)return s;const o=s,l=s.x,c=s.y;let h,u=1/0;n=s;do{i>=n.x&&n.x>=l&&i!==n.x&&el(r<c?i:a,r,l,c,r<c?a:i,r,n.x,n.y)&&(h=Math.abs(r-n.y)/(i-n.x),ll(n,t)&&(h<u||h===u&&(n.x>s.x||n.x===s.x&&Ko(s,n)))&&(s=n,u=h)),n=n.next}while(n!==o);return s}(t,e)){const n=cl(e,t);Wo(e,e.next),Wo(n,n.next)}}function Ko(t,e){return il(t.prev,t,e.prev)<0&&il(e.next,t,t.next)<0}function $o(t,e,n,i,r){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-n)*r)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-i)*r)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function tl(t){let e=t,n=t;do{(e.x<n.x||e.x===n.x&&e.y<n.y)&&(n=e),e=e.next}while(e!==t);return n}function el(t,e,n,i,r,s,a,o){return(r-a)*(e-o)-(t-a)*(s-o)>=0&&(t-a)*(i-o)-(n-a)*(e-o)>=0&&(n-a)*(s-o)-(r-a)*(i-o)>=0}function nl(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){let n=t;do{if(n.i!==t.i&&n.next.i!==t.i&&n.i!==e.i&&n.next.i!==e.i&&sl(n,n.next,t,e))return!0;n=n.next}while(n!==t);return!1}(t,e)&&(ll(t,e)&&ll(e,t)&&function(t,e){let n=t,i=!1;const r=(t.x+e.x)/2,s=(t.y+e.y)/2;do{n.y>s!=n.next.y>s&&n.next.y!==n.y&&r<(n.next.x-n.x)*(s-n.y)/(n.next.y-n.y)+n.x&&(i=!i),n=n.next}while(n!==t);return i}(t,e)&&(il(t.prev,t,e.prev)||il(t,e.prev,e))||rl(t,e)&&il(t.prev,t,t.next)>0&&il(e.prev,e,e.next)>0)}function il(t,e,n){return(e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y)}function rl(t,e){return t.x===e.x&&t.y===e.y}function sl(t,e,n,i){const r=ol(il(t,e,n)),s=ol(il(t,e,i)),a=ol(il(n,i,t)),o=ol(il(n,i,e));return r!==s&&a!==o||(!(0!==r||!al(t,n,e))||(!(0!==s||!al(t,i,e))||(!(0!==a||!al(n,t,i))||!(0!==o||!al(n,e,i)))))}function al(t,e,n){return e.x<=Math.max(t.x,n.x)&&e.x>=Math.min(t.x,n.x)&&e.y<=Math.max(t.y,n.y)&&e.y>=Math.min(t.y,n.y)}function ol(t){return t>0?1:t<0?-1:0}function ll(t,e){return il(t.prev,t,t.next)<0?il(t,e,t.next)>=0&&il(t,t.prev,e)>=0:il(t,e,t.prev)<0||il(t,t.next,e)<0}function cl(t,e){const n=new dl(t.i,t.x,t.y),i=new dl(e.i,e.x,e.y),r=t.next,s=e.prev;return t.next=e,e.prev=t,n.next=r,r.prev=n,i.next=n,n.prev=i,s.next=i,i.prev=s,i}function hl(t,e,n,i){const r=new dl(t,e,n);return i?(r.next=i.next,r.prev=i,i.next.prev=r,i.next=r):(r.prev=r,r.next=r),r}function ul(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function dl(t,e,n){this.i=t,this.x=e,this.y=n,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}class pl{static area(t){const e=t.length;let n=0;for(let i=e-1,r=0;r<e;i=r++)n+=t[i].x*t[r].y-t[r].x*t[i].y;return.5*n}static isClockWise(t){return pl.area(t)<0}static triangulateShape(t,e){const n=[],i=[],r=[];ml(t),fl(n,t);let s=t.length;e.forEach(ml);for(let t=0;t<e.length;t++)i.push(s),s+=e[t].length,fl(n,e[t]);const a=ko(n,i);for(let t=0;t<a.length;t+=3)r.push(a.slice(t,t+3));return r}}function ml(t){const e=t.length;e>2&&t[e-1].equals(t[0])&&t.pop()}function fl(t,e){for(let n=0;n<e.length;n++)t.push(e[n].x),t.push(e[n].y)}class gl extends Tn{constructor(t=new Go([new yt(.5,.5),new yt(-.5,.5),new yt(-.5,-.5),new yt(.5,-.5)]),e={}){super(),this.type="ExtrudeGeometry",this.parameters={shapes:t,options:e},t=Array.isArray(t)?t:[t];const n=this,i=[],r=[];for(let e=0,n=t.length;e<n;e++){s(t[e])}function s(t){const s=[],a=void 0!==e.curveSegments?e.curveSegments:12,o=void 0!==e.steps?e.steps:1;let l=void 0!==e.depth?e.depth:1,c=void 0===e.bevelEnabled||e.bevelEnabled,h=void 0!==e.bevelThickness?e.bevelThickness:.2,u=void 0!==e.bevelSize?e.bevelSize:h-.1,d=void 0!==e.bevelOffset?e.bevelOffset:0,p=void 0!==e.bevelSegments?e.bevelSegments:3;const m=e.extrudePath,f=void 0!==e.UVGenerator?e.UVGenerator:vl;void 0!==e.amount&&((""),l=e.amount);let g,v,y,x,_,b=!1;m&&(g=m.getSpacedPoints(o),b=!0,c=!1,v=m.computeFrenetFrames(o,!1),y=new Nt,x=new Nt,_=new Nt),c||(p=0,h=0,u=0,d=0);const M=t.extractPoints(a);let w=M.shape;const S=M.holes;if(!pl.isClockWise(w)){w=w.reverse();for(let t=0,e=S.length;t<e;t++){const e=S[t];pl.isClockWise(e)&&(S[t]=e.reverse())}}const T=pl.triangulateShape(w,S),E=w;for(let t=0,e=S.length;t<e;t++){const e=S[t];w=w.concat(e)}function A(t,e,n){return e||(""),e.clone().multiplyScalar(n).add(t)}const L=w.length,R=T.length;function C(t,e,n){let i,r,s;const a=t.x-e.x,o=t.y-e.y,l=n.x-t.x,c=n.y-t.y,h=a*a+o*o,u=a*c-o*l;if(Math.abs(u)>Number.EPSILON){const u=Math.sqrt(h),d=Math.sqrt(l*l+c*c),p=e.x-o/u,m=e.y+a/u,f=((n.x-c/d-p)*c-(n.y+l/d-m)*l)/(a*c-o*l);i=p+a*f-t.x,r=m+o*f-t.y;const g=i*i+r*r;if(g<=2)return new yt(i,r);s=Math.sqrt(g/2)}else{let t=!1;a>Number.EPSILON?l>Number.EPSILON&&(t=!0):a<-Number.EPSILON?l<-Number.EPSILON&&(t=!0):Math.sign(o)===Math.sign(c)&&(t=!0),t?(i=-o,r=a,s=Math.sqrt(h)):(i=a,r=o,s=Math.sqrt(h/2))}return new yt(i/s,r/s)}const P=[];for(let t=0,e=E.length,n=e-1,i=t+1;t<e;t++,n++,i++)n===e&&(n=0),i===e&&(i=0),P[t]=C(E[t],E[n],E[i]);const I=[];let D,N=P.concat();for(let t=0,e=S.length;t<e;t++){const e=S[t];D=[];for(let t=0,n=e.length,i=n-1,r=t+1;t<n;t++,i++,r++)i===n&&(i=0),r===n&&(r=0),D[t]=C(e[t],e[i],e[r]);I.push(D),N=N.concat(D)}for(let t=0;t<p;t++){const e=t/p,n=h*Math.cos(e*Math.PI/2),i=u*Math.sin(e*Math.PI/2)+d;for(let t=0,e=E.length;t<e;t++){const e=A(E[t],P[t],i);F(e.x,e.y,-n)}for(let t=0,e=S.length;t<e;t++){const e=S[t];D=I[t];for(let t=0,r=e.length;t<r;t++){const r=A(e[t],D[t],i);F(r.x,r.y,-n)}}}const z=u+d;for(let t=0;t<L;t++){const e=c?A(w[t],N[t],z):w[t];b?(x.copy(v.normals[0]).multiplyScalar(e.x),y.copy(v.binormals[0]).multiplyScalar(e.y),_.copy(g[0]).add(x).add(y),F(_.x,_.y,_.z)):F(e.x,e.y,0)}for(let t=1;t<=o;t++)for(let e=0;e<L;e++){const n=c?A(w[e],N[e],z):w[e];b?(x.copy(v.normals[t]).multiplyScalar(n.x),y.copy(v.binormals[t]).multiplyScalar(n.y),_.copy(g[t]).add(x).add(y),F(_.x,_.y,_.z)):F(n.x,n.y,l/o*t)}for(let t=p-1;t>=0;t--){const e=t/p,n=h*Math.cos(e*Math.PI/2),i=u*Math.sin(e*Math.PI/2)+d;for(let t=0,e=E.length;t<e;t++){const e=A(E[t],P[t],i);F(e.x,e.y,l+n)}for(let t=0,e=S.length;t<e;t++){const e=S[t];D=I[t];for(let t=0,r=e.length;t<r;t++){const r=A(e[t],D[t],i);b?F(r.x,r.y+g[o-1].y,g[o-1].x+n):F(r.x,r.y,l+n)}}}function B(t,e){let n=t.length;for(;--n>=0;){const i=n;let r=n-1;r<0&&(r=t.length-1);for(let t=0,n=o+2*p;t<n;t++){const n=L*t,s=L*(t+1);U(e+i+n,e+r+n,e+r+s,e+i+s)}}}function F(t,e,n){s.push(t),s.push(e),s.push(n)}function O(t,e,r){H(t),H(e),H(r);const s=i.length/3,a=f.generateTopUV(n,i,s-3,s-2,s-1);G(a[0]),G(a[1]),G(a[2])}function U(t,e,r,s){H(t),H(e),H(s),H(e),H(r),H(s);const a=i.length/3,o=f.generateSideWallUV(n,i,a-6,a-3,a-2,a-1);G(o[0]),G(o[1]),G(o[3]),G(o[1]),G(o[2]),G(o[3])}function H(t){i.push(s[3*t+0]),i.push(s[3*t+1]),i.push(s[3*t+2])}function G(t){r.push(t.x),r.push(t.y)}!function(){const t=i.length/3;if(c){let t=0,e=L*t;for(let t=0;t<R;t++){const n=T[t];O(n[2]+e,n[1]+e,n[0]+e)}t=o+2*p,e=L*t;for(let t=0;t<R;t++){const n=T[t];O(n[0]+e,n[1]+e,n[2]+e)}}else{for(let t=0;t<R;t++){const e=T[t];O(e[2],e[1],e[0])}for(let t=0;t<R;t++){const e=T[t];O(e[0]+L*o,e[1]+L*o,e[2]+L*o)}}n.addGroup(t,i.length/3-t,0)}(),function(){const t=i.length/3;let e=0;B(E,e),e+=E.length;for(let t=0,n=S.length;t<n;t++){const n=S[t];B(n,e),e+=n.length}n.addGroup(t,i.length/3-t,1)}()}this.setAttribute("position",new gn(i,3)),this.setAttribute("uv",new gn(r,2)),this.computeVertexNormals()}toJSON(){const t=super.toJSON();return function(t,e,n){if(n.shapes=[],Array.isArray(t))for(let e=0,i=t.length;e<i;e++){const i=t[e];n.shapes.push(i.uuid)}else n.shapes.push(t.uuid);void 0!==e.extrudePath&&(n.options.extrudePath=e.extrudePath.toJSON());return n}(this.parameters.shapes,this.parameters.options,t)}static fromJSON(t,e){const n=[];for(let i=0,r=t.shapes.length;i<r;i++){const r=e[t.shapes[i]];n.push(r)}const i=t.options.extrudePath;return void 0!==i&&(t.options.extrudePath=(new Oo[i.type]).fromJSON(i)),new gl(n,t.options)}}const vl={generateTopUV:function(t,e,n,i,r){const s=e[3*n],a=e[3*n+1],o=e[3*i],l=e[3*i+1],c=e[3*r],h=e[3*r+1];return[new yt(s,a),new yt(o,l),new yt(c,h)]},generateSideWallUV:function(t,e,n,i,r,s){const a=e[3*n],o=e[3*n+1],l=e[3*n+2],c=e[3*i],h=e[3*i+1],u=e[3*i+2],d=e[3*r],p=e[3*r+1],m=e[3*r+2],f=e[3*s],g=e[3*s+1],v=e[3*s+2];return Math.abs(o-h)<Math.abs(a-c)?[new yt(a,1-l),new yt(c,1-u),new yt(d,1-m),new yt(f,1-v)]:[new yt(o,1-l),new yt(h,1-u),new yt(p,1-m),new yt(g,1-v)]}};class yl extends uo{constructor(t=1,e=0){const n=(1+Math.sqrt(5))/2;super([-1,n,0,1,n,0,-1,-n,0,1,-n,0,0,-1,n,0,1,n,0,-1,-n,0,1,-n,n,0,-1,n,0,1,-n,0,-1,-n,0,1],[0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1],t,e),this.type="IcosahedronGeometry",this.parameters={radius:t,detail:e}}static fromJSON(t){return new yl(t.radius,t.detail)}}class xl extends Tn{constructor(t=[new yt(0,.5),new yt(.5,0),new yt(0,-.5)],e=12,n=0,i=2*Math.PI){super(),this.type="LatheGeometry",this.parameters={points:t,segments:e,phiStart:n,phiLength:i},e=Math.floor(e),i=ut(i,0,2*Math.PI);const r=[],s=[],a=[],o=1/e,l=new Nt,c=new yt;for(let r=0;r<=e;r++){const h=n+r*o*i,u=Math.sin(h),d=Math.cos(h);for(let n=0;n<=t.length-1;n++)l.x=t[n].x*u,l.y=t[n].y,l.z=t[n].x*d,s.push(l.x,l.y,l.z),c.x=r/e,c.y=n/(t.length-1),a.push(c.x,c.y)}for(let n=0;n<e;n++)for(let e=0;e<t.length-1;e++){const i=e+n*t.length,s=i,a=i+t.length,o=i+t.length+1,l=i+1;r.push(s,a,l),r.push(a,o,l)}if(this.setIndex(r),this.setAttribute("position",new gn(s,3)),this.setAttribute("uv",new gn(a,2)),this.computeVertexNormals(),i===2*Math.PI){const n=this.attributes.normal.array,i=new Nt,r=new Nt,s=new Nt,a=e*t.length*3;for(let e=0,o=0;e<t.length;e++,o+=3)i.x=n[o+0],i.y=n[o+1],i.z=n[o+2],r.x=n[a+o+0],r.y=n[a+o+1],r.z=n[a+o+2],s.addVectors(i,r).normalize(),n[o+0]=n[a+o+0]=s.x,n[o+1]=n[a+o+1]=s.y,n[o+2]=n[a+o+2]=s.z}}static fromJSON(t){return new xl(t.points,t.segments,t.phiStart,t.phiLength)}}class _l extends uo{constructor(t=1,e=0){super([1,0,0,-1,0,0,0,1,0,0,-1,0,0,0,1,0,0,-1],[0,2,4,0,4,3,0,3,5,0,5,2,1,2,5,1,5,3,1,3,4,1,4,2],t,e),this.type="OctahedronGeometry",this.parameters={radius:t,detail:e}}static fromJSON(t){return new _l(t.radius,t.detail)}}class bl extends Tn{constructor(t=.5,e=1,n=8,i=1,r=0,s=2*Math.PI){super(),this.type="RingGeometry",this.parameters={innerRadius:t,outerRadius:e,thetaSegments:n,phiSegments:i,thetaStart:r,thetaLength:s},n=Math.max(3,n);const a=[],o=[],l=[],c=[];let h=t;const u=(e-t)/(i=Math.max(1,i)),d=new Nt,p=new yt;for(let t=0;t<=i;t++){for(let t=0;t<=n;t++){const i=r+t/n*s;d.x=h*Math.cos(i),d.y=h*Math.sin(i),o.push(d.x,d.y,d.z),l.push(0,0,1),p.x=(d.x/e+1)/2,p.y=(d.y/e+1)/2,c.push(p.x,p.y)}h+=u}for(let t=0;t<i;t++){const e=t*(n+1);for(let t=0;t<n;t++){const i=t+e,r=i,s=i+n+1,o=i+n+2,l=i+1;a.push(r,s,l),a.push(s,o,l)}}this.setIndex(a),this.setAttribute("position",new gn(o,3)),this.setAttribute("normal",new gn(l,3)),this.setAttribute("uv",new gn(c,2))}static fromJSON(t){return new bl(t.innerRadius,t.outerRadius,t.thetaSegments,t.phiSegments,t.thetaStart,t.thetaLength)}}class Ml extends Tn{constructor(t=new Go([new yt(0,.5),new yt(-.5,-.5),new yt(.5,-.5)]),e=12){super(),this.type="ShapeGeometry",this.parameters={shapes:t,curveSegments:e};const n=[],i=[],r=[],s=[];let a=0,o=0;if(!1===Array.isArray(t))l(t);else for(let e=0;e<t.length;e++)l(t[e]),this.addGroup(a,o,e),a+=o,o=0;function l(t){const a=i.length/3,l=t.extractPoints(e);let c=l.shape;const h=l.holes;!1===pl.isClockWise(c)&&(c=c.reverse());for(let t=0,e=h.length;t<e;t++){const e=h[t];!0===pl.isClockWise(e)&&(h[t]=e.reverse())}const u=pl.triangulateShape(c,h);for(let t=0,e=h.length;t<e;t++){const e=h[t];c=c.concat(e)}for(let t=0,e=c.length;t<e;t++){const e=c[t];i.push(e.x,e.y,0),r.push(0,0,1),s.push(e.x,e.y)}for(let t=0,e=u.length;t<e;t++){const e=u[t],i=e[0]+a,r=e[1]+a,s=e[2]+a;n.push(i,r,s),o+=3}}this.setIndex(n),this.setAttribute("position",new gn(i,3)),this.setAttribute("normal",new gn(r,3)),this.setAttribute("uv",new gn(s,2))}toJSON(){const t=super.toJSON();return function(t,e){if(e.shapes=[],Array.isArray(t))for(let n=0,i=t.length;n<i;n++){const i=t[n];e.shapes.push(i.uuid)}else e.shapes.push(t.uuid);return e}(this.parameters.shapes,t)}static fromJSON(t,e){const n=[];for(let i=0,r=t.shapes.length;i<r;i++){const r=e[t.shapes[i]];n.push(r)}return new Ml(n,t.curveSegments)}}class wl extends Tn{constructor(t=1,e=32,n=16,i=0,r=2*Math.PI,s=0,a=Math.PI){super(),this.type="SphereGeometry",this.parameters={radius:t,widthSegments:e,heightSegments:n,phiStart:i,phiLength:r,thetaStart:s,thetaLength:a},e=Math.max(3,Math.floor(e)),n=Math.max(2,Math.floor(n));const o=Math.min(s+a,Math.PI);let l=0;const c=[],h=new Nt,u=new Nt,d=[],p=[],m=[],f=[];for(let d=0;d<=n;d++){const g=[],v=d/n;let y=0;0==d&&0==s?y=.5/e:d==n&&o==Math.PI&&(y=-.5/e);for(let n=0;n<=e;n++){const o=n/e;h.x=-t*Math.cos(i+o*r)*Math.sin(s+v*a),h.y=t*Math.cos(s+v*a),h.z=t*Math.sin(i+o*r)*Math.sin(s+v*a),p.push(h.x,h.y,h.z),u.copy(h).normalize(),m.push(u.x,u.y,u.z),f.push(o+y,1-v),g.push(l++)}c.push(g)}for(let t=0;t<n;t++)for(let i=0;i<e;i++){const e=c[t][i+1],r=c[t][i],a=c[t+1][i],l=c[t+1][i+1];(0!==t||s>0)&&d.push(e,r,l),(t!==n-1||o<Math.PI)&&d.push(r,a,l)}this.setIndex(d),this.setAttribute("position",new gn(p,3)),this.setAttribute("normal",new gn(m,3)),this.setAttribute("uv",new gn(f,2))}static fromJSON(t){return new wl(t.radius,t.widthSegments,t.heightSegments,t.phiStart,t.phiLength,t.thetaStart,t.thetaLength)}}class Sl extends uo{constructor(t=1,e=0){super([1,1,1,-1,-1,1,-1,1,-1,1,-1,-1],[2,1,0,0,3,2,1,3,0,2,3,1],t,e),this.type="TetrahedronGeometry",this.parameters={radius:t,detail:e}}static fromJSON(t){return new Sl(t.radius,t.detail)}}class Tl extends Tn{constructor(t=1,e=.4,n=8,i=6,r=2*Math.PI){super(),this.type="TorusGeometry",this.parameters={radius:t,tube:e,radialSegments:n,tubularSegments:i,arc:r},n=Math.floor(n),i=Math.floor(i);const s=[],a=[],o=[],l=[],c=new Nt,h=new Nt,u=new Nt;for(let s=0;s<=n;s++)for(let d=0;d<=i;d++){const p=d/i*r,m=s/n*Math.PI*2;h.x=(t+e*Math.cos(m))*Math.cos(p),h.y=(t+e*Math.cos(m))*Math.sin(p),h.z=e*Math.sin(m),a.push(h.x,h.y,h.z),c.x=t*Math.cos(p),c.y=t*Math.sin(p),u.subVectors(h,c).normalize(),o.push(u.x,u.y,u.z),l.push(d/i),l.push(s/n)}for(let t=1;t<=n;t++)for(let e=1;e<=i;e++){const n=(i+1)*t+e-1,r=(i+1)*(t-1)+e-1,a=(i+1)*(t-1)+e,o=(i+1)*t+e;s.push(n,r,o),s.push(r,a,o)}this.setIndex(s),this.setAttribute("position",new gn(a,3)),this.setAttribute("normal",new gn(o,3)),this.setAttribute("uv",new gn(l,2))}static fromJSON(t){return new Tl(t.radius,t.tube,t.radialSegments,t.tubularSegments,t.arc)}}class El extends Tn{constructor(t=1,e=.4,n=64,i=8,r=2,s=3){super(),this.type="TorusKnotGeometry",this.parameters={radius:t,tube:e,tubularSegments:n,radialSegments:i,p:r,q:s},n=Math.floor(n),i=Math.floor(i);const a=[],o=[],l=[],c=[],h=new Nt,u=new Nt,d=new Nt,p=new Nt,m=new Nt,f=new Nt,g=new Nt;for(let a=0;a<=n;++a){const y=a/n*r*Math.PI*2;v(y,r,s,t,d),v(y+.01,r,s,t,p),f.subVectors(p,d),g.addVectors(p,d),m.crossVectors(f,g),g.crossVectors(m,f),m.normalize(),g.normalize();for(let t=0;t<=i;++t){const r=t/i*Math.PI*2,s=-e*Math.cos(r),p=e*Math.sin(r);h.x=d.x+(s*g.x+p*m.x),h.y=d.y+(s*g.y+p*m.y),h.z=d.z+(s*g.z+p*m.z),o.push(h.x,h.y,h.z),u.subVectors(h,d).normalize(),l.push(u.x,u.y,u.z),c.push(a/n),c.push(t/i)}}for(let t=1;t<=n;t++)for(let e=1;e<=i;e++){const n=(i+1)*(t-1)+(e-1),r=(i+1)*t+(e-1),s=(i+1)*t+e,o=(i+1)*(t-1)+e;a.push(n,r,o),a.push(r,s,o)}function v(t,e,n,i,r){const s=Math.cos(t),a=Math.sin(t),o=n/e*t,l=Math.cos(o);r.x=i*(2+l)*.5*s,r.y=i*(2+l)*a*.5,r.z=i*Math.sin(o)*.5}this.setIndex(a),this.setAttribute("position",new gn(o,3)),this.setAttribute("normal",new gn(l,3)),this.setAttribute("uv",new gn(c,2))}static fromJSON(t){return new El(t.radius,t.tube,t.tubularSegments,t.radialSegments,t.p,t.q)}}class Al extends Tn{constructor(t=new Bo(new Nt(-1,-1,0),new Nt(-1,1,0),new Nt(1,1,0)),e=64,n=1,i=8,r=!1){super(),this.type="TubeGeometry",this.parameters={path:t,tubularSegments:e,radius:n,radialSegments:i,closed:r};const s=t.computeFrenetFrames(e,r);this.tangents=s.tangents,this.normals=s.normals,this.binormals=s.binormals;const a=new Nt,o=new Nt,l=new yt;let c=new Nt;const h=[],u=[],d=[],p=[];function m(r){c=t.getPointAt(r/e,c);const l=s.normals[r],d=s.binormals[r];for(let t=0;t<=i;t++){const e=t/i*Math.PI*2,r=Math.sin(e),s=-Math.cos(e);o.x=s*l.x+r*d.x,o.y=s*l.y+r*d.y,o.z=s*l.z+r*d.z,o.normalize(),u.push(o.x,o.y,o.z),a.x=c.x+n*o.x,a.y=c.y+n*o.y,a.z=c.z+n*o.z,h.push(a.x,a.y,a.z)}}!function(){for(let t=0;t<e;t++)m(t);m(!1===r?e:0),function(){for(let t=0;t<=e;t++)for(let n=0;n<=i;n++)l.x=t/e,l.y=n/i,d.push(l.x,l.y)}(),function(){for(let t=1;t<=e;t++)for(let e=1;e<=i;e++){const n=(i+1)*(t-1)+(e-1),r=(i+1)*t+(e-1),s=(i+1)*t+e,a=(i+1)*(t-1)+e;p.push(n,r,a),p.push(r,s,a)}}()}(),this.setIndex(p),this.setAttribute("position",new gn(h,3)),this.setAttribute("normal",new gn(u,3)),this.setAttribute("uv",new gn(d,2))}toJSON(){const t=super.toJSON();return t.path=this.parameters.path.toJSON(),t}static fromJSON(t){return new Al((new Oo[t.path.type]).fromJSON(t.path),t.tubularSegments,t.radius,t.radialSegments,t.closed)}}class Ll extends Tn{constructor(t=null){if(super(),this.type="WireframeGeometry",this.parameters={geometry:t},null!==t){const e=[],n=new Set,i=new Nt,r=new Nt;if(null!==t.index){const s=t.attributes.position,a=t.index;let o=t.groups;0===o.length&&(o=[{start:0,count:a.count,materialIndex:0}]);for(let t=0,l=o.length;t<l;++t){const l=o[t],c=l.start;for(let t=c,o=c+l.count;t<o;t+=3)for(let o=0;o<3;o++){const l=a.getX(t+o),c=a.getX(t+(o+1)%3);i.fromBufferAttribute(s,l),r.fromBufferAttribute(s,c),!0===Rl(i,r,n)&&(e.push(i.x,i.y,i.z),e.push(r.x,r.y,r.z))}}}else{const s=t.attributes.position;for(let t=0,a=s.count/3;t<a;t++)for(let a=0;a<3;a++){const o=3*t+a,l=3*t+(a+1)%3;i.fromBufferAttribute(s,o),r.fromBufferAttribute(s,l),!0===Rl(i,r,n)&&(e.push(i.x,i.y,i.z),e.push(r.x,r.y,r.z))}}this.setAttribute("position",new gn(e,3))}}}function Rl(t,e,n){const i=`${t.x},${t.y},${t.z}-${e.x},${e.y},${e.z}`,r=`${e.x},${e.y},${e.z}-${t.x},${t.y},${t.z}`;return!0!==n.has(i)&&!0!==n.has(r)&&(n.add(i,r),!0)}var Cl=Object.freeze({__proto__:null,BoxGeometry:jn,BoxBufferGeometry:jn,CircleGeometry:lo,CircleBufferGeometry:lo,ConeGeometry:ho,ConeBufferGeometry:ho,CylinderGeometry:co,CylinderBufferGeometry:co,DodecahedronGeometry:po,DodecahedronBufferGeometry:po,EdgesGeometry:yo,ExtrudeGeometry:gl,ExtrudeBufferGeometry:gl,IcosahedronGeometry:yl,IcosahedronBufferGeometry:yl,LatheGeometry:xl,LatheBufferGeometry:xl,OctahedronGeometry:_l,OctahedronBufferGeometry:_l,PlaneGeometry:ui,PlaneBufferGeometry:ui,PolyhedronGeometry:uo,PolyhedronBufferGeometry:uo,RingGeometry:bl,RingBufferGeometry:bl,ShapeGeometry:Ml,ShapeBufferGeometry:Ml,SphereGeometry:wl,SphereBufferGeometry:wl,TetrahedronGeometry:Sl,TetrahedronBufferGeometry:Sl,TorusGeometry:Tl,TorusBufferGeometry:Tl,TorusKnotGeometry:El,TorusKnotBufferGeometry:El,TubeGeometry:Al,TubeBufferGeometry:Al,WireframeGeometry:Ll});class Pl extends Je{constructor(t){super(),this.type="ShadowMaterial",this.color=new nn(0),this.transparent=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this}}Pl.prototype.isShadowMaterial=!0;class Il extends Je{constructor(t){super(),this.defines={STANDARD:""},this.type="MeshStandardMaterial",this.color=new nn(16777215),this.roughness=1,this.metalness=0,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new nn(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new yt(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.roughnessMap=null,this.metalnessMap=null,this.alphaMap=null,this.envMap=null,this.envMapIntensity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.setValues(t)}copy(t){return super.copy(t),this.defines={STANDARD:""},this.color.copy(t.color),this.roughness=t.roughness,this.metalness=t.metalness,this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.roughnessMap=t.roughnessMap,this.metalnessMap=t.metalnessMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.envMapIntensity=t.envMapIntensity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.flatShading=t.flatShading,this}}Il.prototype.isMeshStandardMaterial=!0;class Dl extends Il{constructor(t){super(),this.defines={STANDARD:"",PHYSICAL:""},this.type="MeshPhysicalMaterial",this.clearcoatMap=null,this.clearcoatRoughness=0,this.clearcoatRoughnessMap=null,this.clearcoatNormalScale=new yt(1,1),this.clearcoatNormalMap=null,this.ior=1.5,Object.defineProperty(this,"reflectivity",{get:function(){return ut(2.5*(this.ior-1)/(this.ior+1),0,1)},set:function(t){this.ior=(1+.4*t)/(1-.4*t)}}),this.sheenTint=new nn(0),this.sheenRoughness=1,this.transmissionMap=null,this.thickness=.01,this.thicknessMap=null,this.attenuationDistance=0,this.attenuationTint=new nn(1,1,1),this.specularIntensity=1,this.specularIntensityMap=null,this.specularTint=new nn(1,1,1),this.specularTintMap=null,this._sheen=0,this._clearcoat=0,this._transmission=0,this.setValues(t)}get sheen(){return this._sheen}set sheen(t){this._sheen>0!=t>0&&this.version++,this._sheen=t}get clearcoat(){return this._clearcoat}set clearcoat(t){this._clearcoat>0!=t>0&&this.version++,this._clearcoat=t}get transmission(){return this._transmission}set transmission(t){this._transmission>0!=t>0&&this.version++,this._transmission=t}copy(t){return super.copy(t),this.defines={STANDARD:"",PHYSICAL:""},this.clearcoat=t.clearcoat,this.clearcoatMap=t.clearcoatMap,this.clearcoatRoughness=t.clearcoatRoughness,this.clearcoatRoughnessMap=t.clearcoatRoughnessMap,this.clearcoatNormalMap=t.clearcoatNormalMap,this.clearcoatNormalScale.copy(t.clearcoatNormalScale),this.ior=t.ior,this.sheen=t.sheen,this.sheenTint.copy(t.sheenTint),this.sheenRoughness=t.sheenRoughness,this.transmission=t.transmission,this.transmissionMap=t.transmissionMap,this.thickness=t.thickness,this.thicknessMap=t.thicknessMap,this.attenuationDistance=t.attenuationDistance,this.attenuationTint.copy(t.attenuationTint),this.specularIntensity=t.specularIntensity,this.specularIntensityMap=t.specularIntensityMap,this.specularTint.copy(t.specularTint),this.specularTintMap=t.specularTintMap,this}}Dl.prototype.isMeshPhysicalMaterial=!0;class Nl extends Je{constructor(t){super(),this.type="MeshPhongMaterial",this.color=new nn(16777215),this.specular=new nn(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new nn(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new yt(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.specular.copy(t.specular),this.shininess=t.shininess,this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.flatShading=t.flatShading,this}}Nl.prototype.isMeshPhongMaterial=!0;class zl extends Je{constructor(t){super(),this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new nn(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new nn(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new yt(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.gradientMap=t.gradientMap,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this}}zl.prototype.isMeshToonMaterial=!0;class Bl extends Je{constructor(t){super(),this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new yt(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.flatShading=!1,this.setValues(t)}copy(t){return super.copy(t),this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.flatShading=t.flatShading,this}}Bl.prototype.isMeshNormalMaterial=!0;class Fl extends Je{constructor(t){super(),this.type="MeshLambertMaterial",this.color=new nn(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new nn(0),this.emissiveIntensity=1,this.emissiveMap=null,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this}}Fl.prototype.isMeshLambertMaterial=!0;class Ol extends Je{constructor(t){super(),this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new nn(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new yt(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.setValues(t)}copy(t){return super.copy(t),this.defines={MATCAP:""},this.color.copy(t.color),this.matcap=t.matcap,this.map=t.map,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.flatShading=t.flatShading,this}}Ol.prototype.isMeshMatcapMaterial=!0;class Ul extends Ha{constructor(t){super(),this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(t)}copy(t){return super.copy(t),this.scale=t.scale,this.dashSize=t.dashSize,this.gapSize=t.gapSize,this}}Ul.prototype.isLineDashedMaterial=!0;var Hl=Object.freeze({__proto__:null,ShadowMaterial:Pl,SpriteMaterial:ra,RawShaderMaterial:Mi,ShaderMaterial:Jn,PointsMaterial:Qa,MeshPhysicalMaterial:Dl,MeshStandardMaterial:Il,MeshPhongMaterial:Nl,MeshToonMaterial:zl,MeshNormalMaterial:Bl,MeshLambertMaterial:Fl,MeshDepthMaterial:Os,MeshDistanceMaterial:Us,MeshBasicMaterial:rn,MeshMatcapMaterial:Ol,LineDashedMaterial:Ul,LineBasicMaterial:Ha,Material:Je});const Gl={arraySlice:function(t,e,n){return Gl.isTypedArray(t)?new t.constructor(t.subarray(e,void 0!==n?n:t.length)):t.slice(e,n)},convertArray:function(t,e,n){return!t||!n&&t.constructor===e?t:"number"==typeof e.BYTES_PER_ELEMENT?new e(t):Array.prototype.slice.call(t)},isTypedArray:function(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)},getKeyframeOrder:function(t){const e=t.length,n=new Array(e);for(let t=0;t!==e;++t)n[t]=t;return n.sort((function(e,n){return t[e]-t[n]})),n},sortedArray:function(t,e,n){const i=t.length,r=new t.constructor(i);for(let s=0,a=0;a!==i;++s){const i=n[s]*e;for(let n=0;n!==e;++n)r[a++]=t[i+n]}return r},flattenJSON:function(t,e,n,i){let r=1,s=t[0];for(;void 0!==s&&void 0===s[i];)s=t[r++];if(void 0===s)return;let a=s[i];if(void 0!==a)if(Array.isArray(a))do{a=s[i],void 0!==a&&(e.push(s.time),n.push.apply(n,a)),s=t[r++]}while(void 0!==s);else if(void 0!==a.toArray)do{a=s[i],void 0!==a&&(e.push(s.time),a.toArray(n,n.length)),s=t[r++]}while(void 0!==s);else do{a=s[i],void 0!==a&&(e.push(s.time),n.push(a)),s=t[r++]}while(void 0!==s)},subclip:function(t,e,n,i,r=30){const s=t.clone();s.name=e;const a=[];for(let t=0;t<s.tracks.length;++t){const e=s.tracks[t],o=e.getValueSize(),l=[],c=[];for(let t=0;t<e.times.length;++t){const s=e.times[t]*r;if(!(s<n||s>=i)){l.push(e.times[t]);for(let n=0;n<o;++n)c.push(e.values[t*o+n])}}0!==l.length&&(e.times=Gl.convertArray(l,e.times.constructor),e.values=Gl.convertArray(c,e.values.constructor),a.push(e))}s.tracks=a;let o=1/0;for(let t=0;t<s.tracks.length;++t)o>s.tracks[t].times[0]&&(o=s.tracks[t].times[0]);for(let t=0;t<s.tracks.length;++t)s.tracks[t].shift(-1*o);return s.resetDuration(),s},makeClipAdditive:function(t,e=0,n=t,i=30){i<=0&&(i=30);const r=n.tracks.length,s=e/i;for(let e=0;e<r;++e){const i=n.tracks[e],r=i.ValueTypeName;if("bool"===r||"string"===r)continue;const a=t.tracks.find((function(t){return t.name===i.name&&t.ValueTypeName===r}));if(void 0===a)continue;let o=0;const l=i.getValueSize();i.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(o=l/3);let c=0;const h=a.getValueSize();a.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(c=h/3);const u=i.times.length-1;let d;if(s<=i.times[0]){const t=o,e=l-o;d=Gl.arraySlice(i.values,t,e)}else if(s>=i.times[u]){const t=u*l+o,e=t+l-o;d=Gl.arraySlice(i.values,t,e)}else{const t=i.createInterpolant(),e=o,n=l-o;t.evaluate(s),d=Gl.arraySlice(t.resultBuffer,e,n)}if("quaternion"===r){(new Dt).fromArray(d).normalize().conjugate().toArray(d)}const p=a.times.length;for(let t=0;t<p;++t){const e=t*h+c;if("quaternion"===r)Dt.multiplyQuaternionsFlat(a.values,e,d,0,a.values,e);else{const t=h-2*c;for(let n=0;n<t;++n)a.values[e+n]-=d[n]}}}return t.blendMode=q,t}};class kl{constructor(t,e,n,i){this.parameterPositions=t,this._cachedIndex=0,this.resultBuffer=void 0!==i?i:new e.constructor(n),this.sampleValues=e,this.valueSize=n,this.settings=null,this.DefaultSettings_={}}evaluate(t){const e=this.parameterPositions;let n=this._cachedIndex,i=e[n],r=e[n-1];t:{e:{let s;n:{i:if(!(t<i)){for(let s=n+2;;){if(void 0===i){if(t<r)break i;return n=e.length,this._cachedIndex=n,this.afterEnd_(n-1,t,r)}if(n===s)break;if(r=i,i=e[++n],t<i)break e}s=e.length;break n}if(t>=r)break t;{const a=e[1];t<a&&(n=2,r=a);for(let s=n-2;;){if(void 0===r)return this._cachedIndex=0,this.beforeStart_(0,t,i);if(n===s)break;if(i=r,r=e[--n-1],t>=r)break e}s=n,n=0}}for(;n<s;){const i=n+s>>>1;t<e[i]?s=i:n=i+1}if(i=e[n],r=e[n-1],void 0===r)return this._cachedIndex=0,this.beforeStart_(0,t,i);if(void 0===i)return n=e.length,this._cachedIndex=n,this.afterEnd_(n-1,r,t)}this._cachedIndex=n,this.intervalChanged_(n,r,i)}return this.interpolate_(n,r,t,i)}getSettings_(){return this.settings||this.DefaultSettings_}copySampleValue_(t){const e=this.resultBuffer,n=this.sampleValues,i=this.valueSize,r=t*i;for(let t=0;t!==i;++t)e[t]=n[r+t];return e}interpolate_(){throw new Error("")}intervalChanged_(){}}kl.prototype.beforeStart_=kl.prototype.copySampleValue_,kl.prototype.afterEnd_=kl.prototype.copySampleValue_;class Vl extends kl{constructor(t,e,n,i){super(t,e,n,i),this._weightPrev=-0,this._offsetPrev=-0,this._weightNext=-0,this._offsetNext=-0,this.DefaultSettings_={endingStart:k,endingEnd:k}}intervalChanged_(t,e,n){const i=this.parameterPositions;let r=t-2,s=t+1,a=i[r],o=i[s];if(void 0===a)switch(this.getSettings_().endingStart){case V:r=t,a=2*e-n;break;case W:r=i.length-2,a=e+i[r]-i[r+1];break;default:r=t,a=n}if(void 0===o)switch(this.getSettings_().endingEnd){case V:s=t,o=2*n-e;break;case W:s=1,o=n+i[1]-i[0];break;default:s=t-1,o=e}const l=.5*(n-e),c=this.valueSize;this._weightPrev=l/(e-a),this._weightNext=l/(o-n),this._offsetPrev=r*c,this._offsetNext=s*c}interpolate_(t,e,n,i){const r=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=t*a,l=o-a,c=this._offsetPrev,h=this._offsetNext,u=this._weightPrev,d=this._weightNext,p=(n-e)/(i-e),m=p*p,f=m*p,g=-u*f+2*u*m-u*p,v=(1+u)*f+(-1.5-2*u)*m+(-.5+u)*p+1,y=(-1-d)*f+(1.5+d)*m+.5*p,x=d*f-d*m;for(let t=0;t!==a;++t)r[t]=g*s[c+t]+v*s[l+t]+y*s[o+t]+x*s[h+t];return r}}class Wl extends kl{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t,e,n,i){const r=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=t*a,l=o-a,c=(n-e)/(i-e),h=1-c;for(let t=0;t!==a;++t)r[t]=s[l+t]*h+s[o+t]*c;return r}}class jl extends kl{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t){return this.copySampleValue_(t-1)}}class ql{constructor(t,e,n,i){if(void 0===t)throw new Error("");if(void 0===e||0===e.length)throw new Error(""+t);this.name=t,this.times=Gl.convertArray(e,this.TimeBufferType),this.values=Gl.convertArray(n,this.ValueBufferType),this.setInterpolation(i||this.DefaultInterpolation)}static toJSON(t){const e=t.constructor;let n;if(e.toJSON!==this.toJSON)n=e.toJSON(t);else{n={name:t.name,times:Gl.convertArray(t.times,Array),values:Gl.convertArray(t.values,Array)};const e=t.getInterpolation();e!==t.DefaultInterpolation&&(n.interpolation=e)}return n.type=t.ValueTypeName,n}InterpolantFactoryMethodDiscrete(t){return new jl(this.times,this.values,this.getValueSize(),t)}InterpolantFactoryMethodLinear(t){return new Wl(this.times,this.values,this.getValueSize(),t)}InterpolantFactoryMethodSmooth(t){return new Vl(this.times,this.values,this.getValueSize(),t)}setInterpolation(t){let e;switch(t){case U:e=this.InterpolantFactoryMethodDiscrete;break;case H:e=this.InterpolantFactoryMethodLinear;break;case G:e=this.InterpolantFactoryMethodSmooth}if(void 0===e){const e="unsupported interpolation for "+this.ValueTypeName+" keyframe track named "+this.name;if(void 0===this.createInterpolant){if(t===this.DefaultInterpolation)throw new Error(e);this.setInterpolation(this.DefaultInterpolation)}return ("",e),this}return this.createInterpolant=e,this}getInterpolation(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return U;case this.InterpolantFactoryMethodLinear:return H;case this.InterpolantFactoryMethodSmooth:return G}}getValueSize(){return this.values.length/this.times.length}shift(t){if(0!==t){const e=this.times;for(let n=0,i=e.length;n!==i;++n)e[n]+=t}return this}scale(t){if(1!==t){const e=this.times;for(let n=0,i=e.length;n!==i;++n)e[n]*=t}return this}trim(t,e){const n=this.times,i=n.length;let r=0,s=i-1;for(;r!==i&&n[r]<t;)++r;for(;-1!==s&&n[s]>e;)--s;if(++s,0!==r||s!==i){r>=s&&(s=Math.max(s,1),r=s-1);const t=this.getValueSize();this.times=Gl.arraySlice(n,r,s),this.values=Gl.arraySlice(this.values,r*t,s*t)}return this}validate(){let t=!0;const e=this.getValueSize();e-Math.floor(e)!=0&&(("",this),t=!1);const n=this.times,i=this.values,r=n.length;0===r&&(("",this),t=!1);let s=null;for(let e=0;e!==r;e++){const i=n[e];if("number"==typeof i&&isNaN(i)){("",this,e,i),t=!1;break}if(null!==s&&s>i){("",this,e,i,s),t=!1;break}s=i}if(void 0!==i&&Gl.isTypedArray(i))for(let e=0,n=i.length;e!==n;++e){const n=i[e];if(isNaN(n)){("",this,e,n),t=!1;break}}return t}optimize(){const t=Gl.arraySlice(this.times),e=Gl.arraySlice(this.values),n=this.getValueSize(),i=this.getInterpolation()===G,r=t.length-1;let s=1;for(let a=1;a<r;++a){let r=!1;const o=t[a];if(o!==t[a+1]&&(1!==a||o!==t[0]))if(i)r=!0;else{const t=a*n,i=t-n,s=t+n;for(let a=0;a!==n;++a){const n=e[t+a];if(n!==e[i+a]||n!==e[s+a]){r=!0;break}}}if(r){if(a!==s){t[s]=t[a];const i=a*n,r=s*n;for(let t=0;t!==n;++t)e[r+t]=e[i+t]}++s}}if(r>0){t[s]=t[r];for(let t=r*n,i=s*n,a=0;a!==n;++a)e[i+a]=e[t+a];++s}return s!==t.length?(this.times=Gl.arraySlice(t,0,s),this.values=Gl.arraySlice(e,0,s*n)):(this.times=t,this.values=e),this}clone(){const t=Gl.arraySlice(this.times,0),e=Gl.arraySlice(this.values,0),n=new(0,this.constructor)(this.name,t,e);return n.createInterpolant=this.createInterpolant,n}}ql.prototype.TimeBufferType=Float32Array,ql.prototype.ValueBufferType=Float32Array,ql.prototype.DefaultInterpolation=H;class Xl extends ql{}Xl.prototype.ValueTypeName="bool",Xl.prototype.ValueBufferType=Array,Xl.prototype.DefaultInterpolation=U,Xl.prototype.InterpolantFactoryMethodLinear=void 0,Xl.prototype.InterpolantFactoryMethodSmooth=void 0;class Yl extends ql{}Yl.prototype.ValueTypeName="color";class Jl extends ql{}Jl.prototype.ValueTypeName="number";class Zl extends kl{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t,e,n,i){const r=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=(n-e)/(i-e);let l=t*a;for(let t=l+a;l!==t;l+=4)Dt.slerpFlat(r,0,s,l-a,s,l,o);return r}}class Ql extends ql{InterpolantFactoryMethodLinear(t){return new Zl(this.times,this.values,this.getValueSize(),t)}}Ql.prototype.ValueTypeName="quaternion",Ql.prototype.DefaultInterpolation=H,Ql.prototype.InterpolantFactoryMethodSmooth=void 0;class Kl extends ql{}Kl.prototype.ValueTypeName="string",Kl.prototype.ValueBufferType=Array,Kl.prototype.DefaultInterpolation=U,Kl.prototype.InterpolantFactoryMethodLinear=void 0,Kl.prototype.InterpolantFactoryMethodSmooth=void 0;class $l extends ql{}$l.prototype.ValueTypeName="vector";class tc{constructor(t,e=-1,n,i=2500){this.name=t,this.tracks=n,this.duration=e,this.blendMode=i,this.uuid=ht(),this.duration<0&&this.resetDuration()}static parse(t){const e=[],n=t.tracks,i=1/(t.fps||1);for(let t=0,r=n.length;t!==r;++t)e.push(ec(n[t]).scale(i));const r=new this(t.name,t.duration,e,t.blendMode);return r.uuid=t.uuid,r}static toJSON(t){const e=[],n=t.tracks,i={name:t.name,duration:t.duration,tracks:e,uuid:t.uuid,blendMode:t.blendMode};for(let t=0,i=n.length;t!==i;++t)e.push(ql.toJSON(n[t]));return i}static CreateFromMorphTargetSequence(t,e,n,i){const r=e.length,s=[];for(let t=0;t<r;t++){let a=[],o=[];a.push((t+r-1)%r,t,(t+1)%r),o.push(0,1,0);const l=Gl.getKeyframeOrder(a);a=Gl.sortedArray(a,1,l),o=Gl.sortedArray(o,1,l),i||0!==a[0]||(a.push(r),o.push(o[0])),s.push(new Jl(".morphTargetInfluences["+e[t].name+"]",a,o).scale(1/n))}return new this(t,-1,s)}static findByName(t,e){let n=t;if(!Array.isArray(t)){const e=t;n=e.geometry&&e.geometry.animations||e.animations}for(let t=0;t<n.length;t++)if(n[t].name===e)return n[t];return null}static CreateClipsFromMorphTargetSequences(t,e,n){const i={},r=/^([\w-]*?)([\d]+)$/;for(let e=0,n=t.length;e<n;e++){const n=t[e],s=n.name.match(r);if(s&&s.length>1){const t=s[1];let e=i[t];e||(i[t]=e=[]),e.push(n)}}const s=[];for(const t in i)s.push(this.CreateFromMorphTargetSequence(t,i[t],e,n));return s}static parseAnimation(t,e){if(!t)return (""),null;const n=function(t,e,n,i,r){if(0!==n.length){const s=[],a=[];Gl.flattenJSON(n,s,a,i),0!==s.length&&r.push(new t(e,s,a))}},i=[],r=t.name||"default",s=t.fps||30,a=t.blendMode;let o=t.length||-1;const l=t.hierarchy||[];for(let t=0;t<l.length;t++){const r=l[t].keys;if(r&&0!==r.length)if(r[0].morphTargets){const t={};let e;for(e=0;e<r.length;e++)if(r[e].morphTargets)for(let n=0;n<r[e].morphTargets.length;n++)t[r[e].morphTargets[n]]=-1;for(const n in t){const t=[],s=[];for(let i=0;i!==r[e].morphTargets.length;++i){const i=r[e];t.push(i.time),s.push(i.morphTarget===n?1:0)}i.push(new Jl(".morphTargetInfluence["+n+"]",t,s))}o=t.length*(s||1)}else{const s=".bones["+e[t].name+"]";n($l,s+".position",r,"pos",i),n(Ql,s+".quaternion",r,"rot",i),n($l,s+".scale",r,"scl",i)}}if(0===i.length)return null;return new this(r,o,i,a)}resetDuration(){let t=0;for(let e=0,n=this.tracks.length;e!==n;++e){const n=this.tracks[e];t=Math.max(t,n.times[n.times.length-1])}return this.duration=t,this}trim(){for(let t=0;t<this.tracks.length;t++)this.tracks[t].trim(0,this.duration);return this}validate(){let t=!0;for(let e=0;e<this.tracks.length;e++)t=t&&this.tracks[e].validate();return t}optimize(){for(let t=0;t<this.tracks.length;t++)this.tracks[t].optimize();return this}clone(){const t=[];for(let e=0;e<this.tracks.length;e++)t.push(this.tracks[e].clone());return new this.constructor(this.name,this.duration,t,this.blendMode)}toJSON(){return this.constructor.toJSON(this)}}function ec(t){if(void 0===t.type)throw new Error("");const e=function(t){switch(t.toLowerCase()){case"scalar":case"double":case"float":case"number":case"integer":return Jl;case"vector":case"vector2":case"vector3":case"vector4":return $l;case"color":return Yl;case"quaternion":return Ql;case"bool":case"boolean":return Xl;case"string":return Kl}throw new Error(""+t)}(t.type);if(void 0===t.times){const e=[],n=[];Gl.flattenJSON(t.keys,e,n,"value"),t.times=e,t.values=n}return void 0!==e.parse?e.parse(t):new e(t.name,t.times,t.values,t.interpolation)}const nc={enabled:!1,files:{},add:function(t,e){!1!==this.enabled&&(this.files[t]=e)},get:function(t){if(!1!==this.enabled)return this.files[t]},remove:function(t){delete this.files[t]},clear:function(){this.files={}}};class ic{constructor(t,e,n){const i=this;let r,s=!1,a=0,o=0;const l=[];this.onStart=void 0,this.onLoad=t,this.onProgress=e,this.onError=n,this.itemStart=function(t){o++,!1===s&&void 0!==i.onStart&&i.onStart(t,a,o),s=!0},this.itemEnd=function(t){a++,void 0!==i.onProgress&&i.onProgress(t,a,o),a===o&&(s=!1,void 0!==i.onLoad&&i.onLoad())},this.itemError=function(t){void 0!==i.onError&&i.onError(t)},this.resolveURL=function(t){return r?r(t):t},this.setURLModifier=function(t){return r=t,this},this.addHandler=function(t,e){return l.push(t,e),this},this.removeHandler=function(t){const e=l.indexOf(t);return-1!==e&&l.splice(e,2),this},this.getHandler=function(t){for(let e=0,n=l.length;e<n;e+=2){const n=l[e],i=l[e+1];if(n.global&&(n.lastIndex=0),n.test(t))return i}return null}}}const rc=new ic;class sc{constructor(t){this.manager=void 0!==t?t:rc,this.crossOrigin="anonymous",this.withCredentials=!1,this.path="",this.resourcePath="",this.requestHeader={}}load(){}loadAsync(t,e){const n=this;return new Promise((function(i,r){n.load(t,i,e,r)}))}parse(){}setCrossOrigin(t){return this.crossOrigin=t,this}setWithCredentials(t){return this.withCredentials=t,this}setPath(t){return this.path=t,this}setResourcePath(t){return this.resourcePath=t,this}setRequestHeader(t){return this.requestHeader=t,this}}const ac={};class oc extends sc{constructor(t){super(t)}load(t,e,n,i){void 0===t&&(t=""),void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const r=this,s=nc.get(t);if(void 0!==s)return r.manager.itemStart(t),setTimeout((function(){e&&e(s),r.manager.itemEnd(t)}),0),s;if(void 0!==ac[t])return void ac[t].push({onLoad:e,onProgress:n,onError:i});const a=t.match(/^data:(.*?)(;base64)?,(.*)$/);let o;if(a){const n=a[1],s=!!a[2];let o=a[3];o=decodeURIComponent(o),s&&(o=atob(o));try{let i;const s=(this.responseType||"").toLowerCase();switch(s){case"arraybuffer":case"blob":const t=new Uint8Array(o.length);for(let e=0;e<o.length;e++)t[e]=o.charCodeAt(e);i="blob"===s?new Blob([t.buffer],{type:n}):t.buffer;break;case"document":const e=new DOMParser;i=e.parseFromString(o,n);break;case"json":i=JSON.parse(o);break;default:i=o}setTimeout((function(){e&&e(i),r.manager.itemEnd(t)}),0)}catch(e){setTimeout((function(){i&&i(e),r.manager.itemError(t),r.manager.itemEnd(t)}),0)}}else{ac[t]=[],ac[t].push({onLoad:e,onProgress:n,onError:i}),o=new XMLHttpRequest,o.open("GET",t,!0),o.addEventListener("load",(function(e){const n=this.response,i=ac[t];if(delete ac[t],200===this.status||0===this.status){0===this.status&&(""),nc.add(t,n);for(let t=0,e=i.length;t<e;t++){const e=i[t];e.onLoad&&e.onLoad(n)}r.manager.itemEnd(t)}else{for(let t=0,n=i.length;t<n;t++){const n=i[t];n.onError&&n.onError(e)}r.manager.itemError(t),r.manager.itemEnd(t)}}),!1),o.addEventListener("progress",(function(e){const n=ac[t];for(let t=0,i=n.length;t<i;t++){const i=n[t];i.onProgress&&i.onProgress(e)}}),!1),o.addEventListener("error",(function(e){const n=ac[t];delete ac[t];for(let t=0,i=n.length;t<i;t++){const i=n[t];i.onError&&i.onError(e)}r.manager.itemError(t),r.manager.itemEnd(t)}),!1),o.addEventListener("abort",(function(e){const n=ac[t];delete ac[t];for(let t=0,i=n.length;t<i;t++){const i=n[t];i.onError&&i.onError(e)}r.manager.itemError(t),r.manager.itemEnd(t)}),!1),void 0!==this.responseType&&(o.responseType=this.responseType),void 0!==this.withCredentials&&(o.withCredentials=this.withCredentials),o.overrideMimeType&&o.overrideMimeType(void 0!==this.mimeType?this.mimeType:"text/plain");for(const t in this.requestHeader)o.setRequestHeader(t,this.requestHeader[t]);o.send(null)}return r.manager.itemStart(t),o}setResponseType(t){return this.responseType=t,this}setMimeType(t){return this.mimeType=t,this}}class lc extends sc{constructor(t){super(t)}load(t,e,n,i){void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const r=this,s=nc.get(t);if(void 0!==s)return r.manager.itemStart(t),setTimeout((function(){e&&e(s),r.manager.itemEnd(t)}),0),s;const a=wt("img");function o(){a.removeEventListener("load",o,!1),a.removeEventListener("error",l,!1),nc.add(t,this),e&&e(this),r.manager.itemEnd(t)}function l(e){a.removeEventListener("load",o,!1),a.removeEventListener("error",l,!1),i&&i(e),r.manager.itemError(t),r.manager.itemEnd(t)}return a.addEventListener("load",o,!1),a.addEventListener("error",l,!1),"data:"!==t.substr(0,5)&&void 0!==this.crossOrigin&&(a.crossOrigin=this.crossOrigin),r.manager.itemStart(t),a.src=t,a}}class cc extends sc{constructor(t){super(t)}load(t,e,n,i){const r=new ti,s=new lc(this.manager);s.setCrossOrigin(this.crossOrigin),s.setPath(this.path);let a=0;function o(n){s.load(t[n],(function(t){r.images[n]=t,a++,6===a&&(r.needsUpdate=!0,e&&e(r))}),void 0,i)}for(let e=0;e<t.length;++e)o(e);return r}}class hc extends sc{constructor(t){super(t)}load(t,e,n,i){const r=this,s=new Ca,a=new oc(this.manager);return a.setResponseType("arraybuffer"),a.setRequestHeader(this.requestHeader),a.setPath(this.path),a.setWithCredentials(r.withCredentials),a.load(t,(function(t){const n=r.parse(t);n&&(void 0!==n.image?s.image=n.image:void 0!==n.data&&(s.image.width=n.width,s.image.height=n.height,s.image.data=n.data),s.wrapS=void 0!==n.wrapS?n.wrapS:u,s.wrapT=void 0!==n.wrapT?n.wrapT:u,s.magFilter=void 0!==n.magFilter?n.magFilter:g,s.minFilter=void 0!==n.minFilter?n.minFilter:g,s.anisotropy=void 0!==n.anisotropy?n.anisotropy:1,void 0!==n.encoding&&(s.encoding=n.encoding),void 0!==n.flipY&&(s.flipY=n.flipY),void 0!==n.format&&(s.format=n.format),void 0!==n.type&&(s.type=n.type),void 0!==n.mipmaps&&(s.mipmaps=n.mipmaps,s.minFilter=y),1===n.mipmapCount&&(s.minFilter=g),void 0!==n.generateMipmaps&&(s.generateMipmaps=n.generateMipmaps),s.needsUpdate=!0,e&&e(s,n))}),n,i),s}}class uc extends sc{constructor(t){super(t)}load(t,e,n,i){const r=new At,s=new lc(this.manager);return s.setCrossOrigin(this.crossOrigin),s.setPath(this.path),s.load(t,(function(t){r.image=t,r.needsUpdate=!0,void 0!==e&&e(r)}),n,i),r}}class dc extends Be{constructor(t,e=1){super(),this.type="Light",this.color=new nn(t),this.intensity=e}dispose(){}copy(t){return super.copy(t),this.color.copy(t.color),this.intensity=t.intensity,this}toJSON(t){const e=super.toJSON(t);return e.object.color=this.color.getHex(),e.object.intensity=this.intensity,void 0!==this.groundColor&&(e.object.groundColor=this.groundColor.getHex()),void 0!==this.distance&&(e.object.distance=this.distance),void 0!==this.angle&&(e.object.angle=this.angle),void 0!==this.decay&&(e.object.decay=this.decay),void 0!==this.penumbra&&(e.object.penumbra=this.penumbra),void 0!==this.shadow&&(e.object.shadow=this.shadow.toJSON()),e}}dc.prototype.isLight=!0;class pc extends dc{constructor(t,e,n){super(t,n),this.type="HemisphereLight",this.position.copy(Be.DefaultUp),this.updateMatrix(),this.groundColor=new nn(e)}copy(t){return dc.prototype.copy.call(this,t),this.groundColor.copy(t.groundColor),this}}pc.prototype.isHemisphereLight=!0;const mc=new ue,fc=new Nt,gc=new Nt;class vc{constructor(t){this.camera=t,this.bias=0,this.normalBias=0,this.radius=1,this.blurSamples=8,this.mapSize=new yt(512,512),this.map=null,this.mapPass=null,this.matrix=new ue,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new li,this._frameExtents=new yt(1,1),this._viewportCount=1,this._viewports=[new Rt(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(t){const e=this.camera,n=this.matrix;fc.setFromMatrixPosition(t.matrixWorld),e.position.copy(fc),gc.setFromMatrixPosition(t.target.matrixWorld),e.lookAt(gc),e.updateMatrixWorld(),mc.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),this._frustum.setFromProjectionMatrix(mc),n.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),n.multiply(e.projectionMatrix),n.multiply(e.matrixWorldInverse)}getViewport(t){return this._viewports[t]}getFrameExtents(){return this._frameExtents}dispose(){this.map&&this.map.dispose(),this.mapPass&&this.mapPass.dispose()}copy(t){return this.camera=t.camera.clone(),this.bias=t.bias,this.radius=t.radius,this.mapSize.copy(t.mapSize),this}clone(){return(new this.constructor).copy(this)}toJSON(){const t={};return 0!==this.bias&&(t.bias=this.bias),0!==this.normalBias&&(t.normalBias=this.normalBias),1!==this.radius&&(t.radius=this.radius),512===this.mapSize.x&&512===this.mapSize.y||(t.mapSize=this.mapSize.toArray()),t.camera=this.camera.toJSON(!1).object,delete t.camera.matrix,t}}class yc extends vc{constructor(){super(new Qn(50,1,.5,500)),this.focus=1}updateMatrices(t){const e=this.camera,n=2*ot*t.angle*this.focus,i=this.mapSize.width/this.mapSize.height,r=t.distance||e.far;n===e.fov&&i===e.aspect&&r===e.far||(e.fov=n,e.aspect=i,e.far=r,e.updateProjectionMatrix()),super.updateMatrices(t)}copy(t){return super.copy(t),this.focus=t.focus,this}}yc.prototype.isSpotLightShadow=!0;class xc extends dc{constructor(t,e,n=0,i=Math.PI/3,r=0,s=1){super(t,e),this.type="SpotLight",this.position.copy(Be.DefaultUp),this.updateMatrix(),this.target=new Be,this.distance=n,this.angle=i,this.penumbra=r,this.decay=s,this.shadow=new yc}get power(){return this.intensity*Math.PI}set power(t){this.intensity=t/Math.PI}dispose(){this.shadow.dispose()}copy(t){return super.copy(t),this.distance=t.distance,this.angle=t.angle,this.penumbra=t.penumbra,this.decay=t.decay,this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}xc.prototype.isSpotLight=!0;const _c=new ue,bc=new Nt,Mc=new Nt;class wc extends vc{constructor(){super(new Qn(90,1,.5,500)),this._frameExtents=new yt(4,2),this._viewportCount=6,this._viewports=[new Rt(2,1,1,1),new Rt(0,1,1,1),new Rt(3,1,1,1),new Rt(1,1,1,1),new Rt(3,0,1,1),new Rt(1,0,1,1)],this._cubeDirections=[new Nt(1,0,0),new Nt(-1,0,0),new Nt(0,0,1),new Nt(0,0,-1),new Nt(0,1,0),new Nt(0,-1,0)],this._cubeUps=[new Nt(0,1,0),new Nt(0,1,0),new Nt(0,1,0),new Nt(0,1,0),new Nt(0,0,1),new Nt(0,0,-1)]}updateMatrices(t,e=0){const n=this.camera,i=this.matrix,r=t.distance||n.far;r!==n.far&&(n.far=r,n.updateProjectionMatrix()),bc.setFromMatrixPosition(t.matrixWorld),n.position.copy(bc),Mc.copy(n.position),Mc.add(this._cubeDirections[e]),n.up.copy(this._cubeUps[e]),n.lookAt(Mc),n.updateMatrixWorld(),i.makeTranslation(-bc.x,-bc.y,-bc.z),_c.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse),this._frustum.setFromProjectionMatrix(_c)}}wc.prototype.isPointLightShadow=!0;class Sc extends dc{constructor(t,e,n=0,i=1){super(t,e),this.type="PointLight",this.distance=n,this.decay=i,this.shadow=new wc}get power(){return 4*this.intensity*Math.PI}set power(t){this.intensity=t/(4*Math.PI)}dispose(){this.shadow.dispose()}copy(t){return super.copy(t),this.distance=t.distance,this.decay=t.decay,this.shadow=t.shadow.clone(),this}}Sc.prototype.isPointLight=!0;class Tc extends vc{constructor(){super(new bi(-5,5,5,-5,.5,500))}}Tc.prototype.isDirectionalLightShadow=!0;class Ec extends dc{constructor(t,e){super(t,e),this.type="DirectionalLight",this.position.copy(Be.DefaultUp),this.updateMatrix(),this.target=new Be,this.shadow=new Tc}dispose(){this.shadow.dispose()}copy(t){return super.copy(t),this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}Ec.prototype.isDirectionalLight=!0;class Ac extends dc{constructor(t,e){super(t,e),this.type="AmbientLight"}}Ac.prototype.isAmbientLight=!0;class Lc extends dc{constructor(t,e,n=10,i=10){super(t,e),this.type="RectAreaLight",this.width=n,this.height=i}get power(){return this.intensity*this.width*this.height*Math.PI}set power(t){this.intensity=t/(this.width*this.height*Math.PI)}copy(t){return super.copy(t),this.width=t.width,this.height=t.height,this}toJSON(t){const e=super.toJSON(t);return e.object.width=this.width,e.object.height=this.height,e}}Lc.prototype.isRectAreaLight=!0;class Rc{constructor(){this.coefficients=[];for(let t=0;t<9;t++)this.coefficients.push(new Nt)}set(t){for(let e=0;e<9;e++)this.coefficients[e].copy(t[e]);return this}zero(){for(let t=0;t<9;t++)this.coefficients[t].set(0,0,0);return this}getAt(t,e){const n=t.x,i=t.y,r=t.z,s=this.coefficients;return e.copy(s[0]).multiplyScalar(.282095),e.addScaledVector(s[1],.488603*i),e.addScaledVector(s[2],.488603*r),e.addScaledVector(s[3],.488603*n),e.addScaledVector(s[4],n*i*1.092548),e.addScaledVector(s[5],i*r*1.092548),e.addScaledVector(s[6],.315392*(3*r*r-1)),e.addScaledVector(s[7],n*r*1.092548),e.addScaledVector(s[8],.546274*(n*n-i*i)),e}getIrradianceAt(t,e){const n=t.x,i=t.y,r=t.z,s=this.coefficients;return e.copy(s[0]).multiplyScalar(.886227),e.addScaledVector(s[1],1.023328*i),e.addScaledVector(s[2],1.023328*r),e.addScaledVector(s[3],1.023328*n),e.addScaledVector(s[4],.858086*n*i),e.addScaledVector(s[5],.858086*i*r),e.addScaledVector(s[6],.743125*r*r-.247708),e.addScaledVector(s[7],.858086*n*r),e.addScaledVector(s[8],.429043*(n*n-i*i)),e}add(t){for(let e=0;e<9;e++)this.coefficients[e].add(t.coefficients[e]);return this}addScaledSH(t,e){for(let n=0;n<9;n++)this.coefficients[n].addScaledVector(t.coefficients[n],e);return this}scale(t){for(let e=0;e<9;e++)this.coefficients[e].multiplyScalar(t);return this}lerp(t,e){for(let n=0;n<9;n++)this.coefficients[n].lerp(t.coefficients[n],e);return this}equals(t){for(let e=0;e<9;e++)if(!this.coefficients[e].equals(t.coefficients[e]))return!1;return!0}copy(t){return this.set(t.coefficients)}clone(){return(new this.constructor).copy(this)}fromArray(t,e=0){const n=this.coefficients;for(let i=0;i<9;i++)n[i].fromArray(t,e+3*i);return this}toArray(t=[],e=0){const n=this.coefficients;for(let i=0;i<9;i++)n[i].toArray(t,e+3*i);return t}static getBasisAt(t,e){const n=t.x,i=t.y,r=t.z;e[0]=.282095,e[1]=.488603*i,e[2]=.488603*r,e[3]=.488603*n,e[4]=1.092548*n*i,e[5]=1.092548*i*r,e[6]=.315392*(3*r*r-1),e[7]=1.092548*n*r,e[8]=.546274*(n*n-i*i)}}Rc.prototype.isSphericalHarmonics3=!0;class Cc extends dc{constructor(t=new Rc,e=1){super(void 0,e),this.sh=t}copy(t){return super.copy(t),this.sh.copy(t.sh),this}fromJSON(t){return this.intensity=t.intensity,this.sh.fromArray(t.sh),this}toJSON(t){const e=super.toJSON(t);return e.object.sh=this.sh.toArray(),e}}Cc.prototype.isLightProbe=!0;class Pc extends sc{constructor(t){super(t),this.textures={}}load(t,e,n,i){const r=this,s=new oc(r.manager);s.setPath(r.path),s.setRequestHeader(r.requestHeader),s.setWithCredentials(r.withCredentials),s.load(t,(function(n){try{e(r.parse(JSON.parse(n)))}catch(e){i?i(e):(e),r.manager.itemError(t)}}),n,i)}parse(t){const e=this.textures;function n(t){return void 0===e[t]&&("",t),e[t]}const i=new Hl[t.type];if(void 0!==t.uuid&&(i.uuid=t.uuid),void 0!==t.name&&(i.name=t.name),void 0!==t.color&&void 0!==i.color&&i.color.setHex(t.color),void 0!==t.roughness&&(i.roughness=t.roughness),void 0!==t.metalness&&(i.metalness=t.metalness),void 0!==t.sheen&&(i.sheen=t.sheen),void 0!==t.sheenTint&&(i.sheenTint=(new nn).setHex(t.sheenTint)),void 0!==t.sheenRoughness&&(i.sheenRoughness=t.sheenRoughness),void 0!==t.emissive&&void 0!==i.emissive&&i.emissive.setHex(t.emissive),void 0!==t.specular&&void 0!==i.specular&&i.specular.setHex(t.specular),void 0!==t.specularIntensity&&(i.specularIntensity=t.specularIntensity),void 0!==t.specularTint&&void 0!==i.specularTint&&i.specularTint.setHex(t.specularTint),void 0!==t.shininess&&(i.shininess=t.shininess),void 0!==t.clearcoat&&(i.clearcoat=t.clearcoat),void 0!==t.clearcoatRoughness&&(i.clearcoatRoughness=t.clearcoatRoughness),void 0!==t.transmission&&(i.transmission=t.transmission),void 0!==t.thickness&&(i.thickness=t.thickness),void 0!==t.attenuationDistance&&(i.attenuationDistance=t.attenuationDistance),void 0!==t.attenuationTint&&void 0!==i.attenuationTint&&i.attenuationTint.setHex(t.attenuationTint),void 0!==t.fog&&(i.fog=t.fog),void 0!==t.flatShading&&(i.flatShading=t.flatShading),void 0!==t.blending&&(i.blending=t.blending),void 0!==t.combine&&(i.combine=t.combine),void 0!==t.side&&(i.side=t.side),void 0!==t.shadowSide&&(i.shadowSide=t.shadowSide),void 0!==t.opacity&&(i.opacity=t.opacity),void 0!==t.format&&(i.format=t.format),void 0!==t.transparent&&(i.transparent=t.transparent),void 0!==t.alphaTest&&(i.alphaTest=t.alphaTest),void 0!==t.depthTest&&(i.depthTest=t.depthTest),void 0!==t.depthWrite&&(i.depthWrite=t.depthWrite),void 0!==t.colorWrite&&(i.colorWrite=t.colorWrite),void 0!==t.stencilWrite&&(i.stencilWrite=t.stencilWrite),void 0!==t.stencilWriteMask&&(i.stencilWriteMask=t.stencilWriteMask),void 0!==t.stencilFunc&&(i.stencilFunc=t.stencilFunc),void 0!==t.stencilRef&&(i.stencilRef=t.stencilRef),void 0!==t.stencilFuncMask&&(i.stencilFuncMask=t.stencilFuncMask),void 0!==t.stencilFail&&(i.stencilFail=t.stencilFail),void 0!==t.stencilZFail&&(i.stencilZFail=t.stencilZFail),void 0!==t.stencilZPass&&(i.stencilZPass=t.stencilZPass),void 0!==t.wireframe&&(i.wireframe=t.wireframe),void 0!==t.wireframeLinewidth&&(i.wireframeLinewidth=t.wireframeLinewidth),void 0!==t.wireframeLinecap&&(i.wireframeLinecap=t.wireframeLinecap),void 0!==t.wireframeLinejoin&&(i.wireframeLinejoin=t.wireframeLinejoin),void 0!==t.rotation&&(i.rotation=t.rotation),1!==t.linewidth&&(i.linewidth=t.linewidth),void 0!==t.dashSize&&(i.dashSize=t.dashSize),void 0!==t.gapSize&&(i.gapSize=t.gapSize),void 0!==t.scale&&(i.scale=t.scale),void 0!==t.polygonOffset&&(i.polygonOffset=t.polygonOffset),void 0!==t.polygonOffsetFactor&&(i.polygonOffsetFactor=t.polygonOffsetFactor),void 0!==t.polygonOffsetUnits&&(i.polygonOffsetUnits=t.polygonOffsetUnits),void 0!==t.dithering&&(i.dithering=t.dithering),void 0!==t.alphaToCoverage&&(i.alphaToCoverage=t.alphaToCoverage),void 0!==t.premultipliedAlpha&&(i.premultipliedAlpha=t.premultipliedAlpha),void 0!==t.visible&&(i.visible=t.visible),void 0!==t.toneMapped&&(i.toneMapped=t.toneMapped),void 0!==t.userData&&(i.userData=t.userData),void 0!==t.vertexColors&&("number"==typeof t.vertexColors?i.vertexColors=t.vertexColors>0:i.vertexColors=t.vertexColors),void 0!==t.uniforms)for(const e in t.uniforms){const r=t.uniforms[e];switch(i.uniforms[e]={},r.type){case"t":i.uniforms[e].value=n(r.value);break;case"c":i.uniforms[e].value=(new nn).setHex(r.value);break;case"v2":i.uniforms[e].value=(new yt).fromArray(r.value);break;case"v3":i.uniforms[e].value=(new Nt).fromArray(r.value);break;case"v4":i.uniforms[e].value=(new Rt).fromArray(r.value);break;case"m3":i.uniforms[e].value=(new xt).fromArray(r.value);break;case"m4":i.uniforms[e].value=(new ue).fromArray(r.value);break;default:i.uniforms[e].value=r.value}}if(void 0!==t.defines&&(i.defines=t.defines),void 0!==t.vertexShader&&(i.vertexShader=t.vertexShader),void 0!==t.fragmentShader&&(i.fragmentShader=t.fragmentShader),void 0!==t.extensions)for(const e in t.extensions)i.extensions[e]=t.extensions[e];if(void 0!==t.shading&&(i.flatShading=1===t.shading),void 0!==t.size&&(i.size=t.size),void 0!==t.sizeAttenuation&&(i.sizeAttenuation=t.sizeAttenuation),void 0!==t.map&&(i.map=n(t.map)),void 0!==t.matcap&&(i.matcap=n(t.matcap)),void 0!==t.alphaMap&&(i.alphaMap=n(t.alphaMap)),void 0!==t.bumpMap&&(i.bumpMap=n(t.bumpMap)),void 0!==t.bumpScale&&(i.bumpScale=t.bumpScale),void 0!==t.normalMap&&(i.normalMap=n(t.normalMap)),void 0!==t.normalMapType&&(i.normalMapType=t.normalMapType),void 0!==t.normalScale){let e=t.normalScale;!1===Array.isArray(e)&&(e=[e,e]),i.normalScale=(new yt).fromArray(e)}return void 0!==t.displacementMap&&(i.displacementMap=n(t.displacementMap)),void 0!==t.displacementScale&&(i.displacementScale=t.displacementScale),void 0!==t.displacementBias&&(i.displacementBias=t.displacementBias),void 0!==t.roughnessMap&&(i.roughnessMap=n(t.roughnessMap)),void 0!==t.metalnessMap&&(i.metalnessMap=n(t.metalnessMap)),void 0!==t.emissiveMap&&(i.emissiveMap=n(t.emissiveMap)),void 0!==t.emissiveIntensity&&(i.emissiveIntensity=t.emissiveIntensity),void 0!==t.specularMap&&(i.specularMap=n(t.specularMap)),void 0!==t.specularIntensityMap&&(i.specularIntensityMap=n(t.specularIntensityMap)),void 0!==t.specularTintMap&&(i.specularTintMap=n(t.specularTintMap)),void 0!==t.envMap&&(i.envMap=n(t.envMap)),void 0!==t.envMapIntensity&&(i.envMapIntensity=t.envMapIntensity),void 0!==t.reflectivity&&(i.reflectivity=t.reflectivity),void 0!==t.refractionRatio&&(i.refractionRatio=t.refractionRatio),void 0!==t.lightMap&&(i.lightMap=n(t.lightMap)),void 0!==t.lightMapIntensity&&(i.lightMapIntensity=t.lightMapIntensity),void 0!==t.aoMap&&(i.aoMap=n(t.aoMap)),void 0!==t.aoMapIntensity&&(i.aoMapIntensity=t.aoMapIntensity),void 0!==t.gradientMap&&(i.gradientMap=n(t.gradientMap)),void 0!==t.clearcoatMap&&(i.clearcoatMap=n(t.clearcoatMap)),void 0!==t.clearcoatRoughnessMap&&(i.clearcoatRoughnessMap=n(t.clearcoatRoughnessMap)),void 0!==t.clearcoatNormalMap&&(i.clearcoatNormalMap=n(t.clearcoatNormalMap)),void 0!==t.clearcoatNormalScale&&(i.clearcoatNormalScale=(new yt).fromArray(t.clearcoatNormalScale)),void 0!==t.transmissionMap&&(i.transmissionMap=n(t.transmissionMap)),void 0!==t.thicknessMap&&(i.thicknessMap=n(t.thicknessMap)),i}setTextures(t){return this.textures=t,this}}class Ic{static decodeText(t){if("undefined"!=typeof TextDecoder)return(new TextDecoder).decode(t);let e="";for(let n=0,i=t.length;n<i;n++)e+=String.fromCharCode(t[n]);try{return decodeURIComponent(escape(e))}catch(t){return e}}static extractUrlBase(t){const e=t.lastIndexOf("/");return-1===e?"./":t.substr(0,e+1)}}class Dc extends Tn{constructor(){super(),this.type="InstancedBufferGeometry",this.instanceCount=1/0}copy(t){return super.copy(t),this.instanceCount=t.instanceCount,this}clone(){return(new this.constructor).copy(this)}toJSON(){const t=super.toJSON(this);return t.instanceCount=this.instanceCount,t.isInstancedBufferGeometry=!0,t}}Dc.prototype.isInstancedBufferGeometry=!0;class Nc extends sc{constructor(t){super(t)}load(t,e,n,i){const r=this,s=new oc(r.manager);s.setPath(r.path),s.setRequestHeader(r.requestHeader),s.setWithCredentials(r.withCredentials),s.load(t,(function(n){try{e(r.parse(JSON.parse(n)))}catch(e){i?i(e):(e),r.manager.itemError(t)}}),n,i)}parse(t){const e={},n={};function i(t,i){if(void 0!==e[i])return e[i];const r=t.interleavedBuffers[i],s=function(t,e){if(void 0!==n[e])return n[e];const i=t.arrayBuffers[e],r=new Uint32Array(i).buffer;return n[e]=r,r}(t,r.buffer),a=Mt(r.type,s),o=new ea(a,r.stride);return o.uuid=r.uuid,e[i]=o,o}const r=t.isInstancedBufferGeometry?new Dc:new Tn,s=t.data.index;if(void 0!==s){const t=Mt(s.type,s.array);r.setIndex(new on(t,1))}const a=t.data.attributes;for(const e in a){const n=a[e];let s;if(n.isInterleavedBufferAttribute){const e=i(t.data,n.data);s=new ia(e,n.itemSize,n.offset,n.normalized)}else{const t=Mt(n.type,n.array);s=new(n.isInstancedBufferAttribute?Na:on)(t,n.itemSize,n.normalized)}void 0!==n.name&&(s.name=n.name),void 0!==n.usage&&s.setUsage(n.usage),void 0!==n.updateRange&&(s.updateRange.offset=n.updateRange.offset,s.updateRange.count=n.updateRange.count),r.setAttribute(e,s)}const o=t.data.morphAttributes;if(o)for(const e in o){const n=o[e],s=[];for(let e=0,r=n.length;e<r;e++){const r=n[e];let a;if(r.isInterleavedBufferAttribute){const e=i(t.data,r.data);a=new ia(e,r.itemSize,r.offset,r.normalized)}else{const t=Mt(r.type,r.array);a=new on(t,r.itemSize,r.normalized)}void 0!==r.name&&(a.name=r.name),s.push(a)}r.morphAttributes[e]=s}t.data.morphTargetsRelative&&(r.morphTargetsRelative=!0);const l=t.data.groups||t.data.drawcalls||t.data.offsets;if(void 0!==l)for(let t=0,e=l.length;t!==e;++t){const e=l[t];r.addGroup(e.start,e.count,e.materialIndex)}const c=t.data.boundingSphere;if(void 0!==c){const t=new Nt;void 0!==c.center&&t.fromArray(c.center),r.boundingSphere=new ne(t,c.radius)}return t.name&&(r.name=t.name),t.userData&&(r.userData=t.userData),r}}const zc={UVMapping:i,CubeReflectionMapping:r,CubeRefractionMapping:s,EquirectangularReflectionMapping:a,EquirectangularRefractionMapping:o,CubeUVReflectionMapping:l,CubeUVRefractionMapping:c},Bc={RepeatWrapping:h,ClampToEdgeWrapping:u,MirroredRepeatWrapping:d},Fc={NearestFilter:p,NearestMipmapNearestFilter:m,NearestMipmapLinearFilter:f,LinearFilter:g,LinearMipmapNearestFilter:v,LinearMipmapLinearFilter:y};class Oc extends sc{constructor(t){super(t),"undefined"==typeof createImageBitmap&&(""),"undefined"==typeof fetch&&(""),this.options={premultiplyAlpha:"none"}}setOptions(t){return this.options=t,this}load(t,e,n,i){void 0===t&&(t=""),void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);const r=this,s=nc.get(t);if(void 0!==s)return r.manager.itemStart(t),setTimeout((function(){e&&e(s),r.manager.itemEnd(t)}),0),s;const a={};a.credentials="anonymous"===this.crossOrigin?"same-origin":"include",a.headers=this.requestHeader,fetch(t,a).then((function(t){return t.blob()})).then((function(t){return createImageBitmap(t,Object.assign(r.options,{colorSpaceConversion:"none"}))})).then((function(n){nc.add(t,n),e&&e(n),r.manager.itemEnd(t)})).catch((function(e){i&&i(e),r.manager.itemError(t),r.manager.itemEnd(t)})),r.manager.itemStart(t)}}let Uc;Oc.prototype.isImageBitmapLoader=!0;const Hc={getContext:function(){return void 0===Uc&&(Uc=new(window.AudioContext||window.webkitAudioContext)),Uc},setContext:function(t){Uc=t}};class Gc extends sc{constructor(t){super(t)}load(t,e,n,i){const r=this,s=new oc(this.manager);s.setResponseType("arraybuffer"),s.setPath(this.path),s.setRequestHeader(this.requestHeader),s.setWithCredentials(this.withCredentials),s.load(t,(function(n){try{const t=n.slice(0);Hc.getContext().decodeAudioData(t,(function(t){e(t)}))}catch(e){i?i(e):(e),r.manager.itemError(t)}}),n,i)}}class kc extends Cc{constructor(t,e,n=1){super(void 0,n);const i=(new nn).set(t),r=(new nn).set(e),s=new Nt(i.r,i.g,i.b),a=new Nt(r.r,r.g,r.b),o=Math.sqrt(Math.PI),l=o*Math.sqrt(.75);this.sh.coefficients[0].copy(s).add(a).multiplyScalar(o),this.sh.coefficients[1].copy(s).sub(a).multiplyScalar(l)}}kc.prototype.isHemisphereLightProbe=!0;class Vc extends Cc{constructor(t,e=1){super(void 0,e);const n=(new nn).set(t);this.sh.coefficients[0].set(n.r,n.g,n.b).multiplyScalar(2*Math.sqrt(Math.PI))}}Vc.prototype.isAmbientLightProbe=!0;const Wc=new ue,jc=new ue;class qc{constructor(t=!0){this.autoStart=t,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=Xc(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let t=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const e=Xc();t=(e-this.oldTime)/1e3,this.oldTime=e,this.elapsedTime+=t}return t}}function Xc(){return("undefined"==typeof performance?Date:performance).now()}const Yc=new Nt,Jc=new Dt,Zc=new Nt,Qc=new Nt;class Kc extends Be{constructor(t){super(),this.type="Audio",this.listener=t,this.context=t.context,this.gain=this.context.createGain(),this.gain.connect(t.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType="empty",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(t){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=t,this.connect(),this}setMediaElementSource(t){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(t),this.connect(),this}setMediaStreamSource(t){return this.hasPlaybackControl=!1,this.sourceType="mediaStreamNode",this.source=this.context.createMediaStreamSource(t),this.connect(),this}setBuffer(t){return this.buffer=t,this.sourceType="buffer",this.autoplay&&this.play(),this}play(t=0){if(!0===this.isPlaying)return void ("");if(!1===this.hasPlaybackControl)return void ("");this._startedAt=this.context.currentTime+t;const e=this.context.createBufferSource();return e.buffer=this.buffer,e.loop=this.loop,e.loopStart=this.loopStart,e.loopEnd=this.loopEnd,e.onended=this.onEnded.bind(this),e.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=e,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(!1!==this.hasPlaybackControl)return!0===this.isPlaying&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,!0===this.loop&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this;("")}stop(){if(!1!==this.hasPlaybackControl)return this._progress=0,this.source.stop(),this.source.onended=null,this.isPlaying=!1,this;("")}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let t=1,e=this.filters.length;t<e;t++)this.filters[t-1].connect(this.filters[t]);this.filters[this.filters.length-1].connect(this.getOutput())}else this.source.connect(this.getOutput());return this._connected=!0,this}disconnect(){if(this.filters.length>0){this.source.disconnect(this.filters[0]);for(let t=1,e=this.filters.length;t<e;t++)this.filters[t-1].disconnect(this.filters[t]);this.filters[this.filters.length-1].disconnect(this.getOutput())}else this.source.disconnect(this.getOutput());return this._connected=!1,this}getFilters(){return this.filters}setFilters(t){return t||(t=[]),!0===this._connected?(this.disconnect(),this.filters=t.slice(),this.connect()):this.filters=t.slice(),this}setDetune(t){if(this.detune=t,void 0!==this.source.detune)return!0===this.isPlaying&&this.source.detune.setTargetAtTime(this.detune,this.context.currentTime,.01),this}getDetune(){return this.detune}getFilter(){return this.getFilters()[0]}setFilter(t){return this.setFilters(t?[t]:[])}setPlaybackRate(t){if(!1!==this.hasPlaybackControl)return this.playbackRate=t,!0===this.isPlaying&&this.source.playbackRate.setTargetAtTime(this.playbackRate,this.context.currentTime,.01),this;("")}getPlaybackRate(){return this.playbackRate}onEnded(){this.isPlaying=!1}getLoop(){return!1===this.hasPlaybackControl?((""),!1):this.loop}setLoop(t){if(!1!==this.hasPlaybackControl)return this.loop=t,!0===this.isPlaying&&(this.source.loop=this.loop),this;("")}setLoopStart(t){return this.loopStart=t,this}setLoopEnd(t){return this.loopEnd=t,this}getVolume(){return this.gain.gain.value}setVolume(t){return this.gain.gain.setTargetAtTime(t,this.context.currentTime,.01),this}}const $c=new Nt,th=new Dt,eh=new Nt,nh=new Nt;class ih{constructor(t,e=2048){this.analyser=t.context.createAnalyser(),this.analyser.fftSize=e,this.data=new Uint8Array(this.analyser.frequencyBinCount),t.getOutput().connect(this.analyser)}getFrequencyData(){return this.analyser.getByteFrequencyData(this.data),this.data}getAverageFrequency(){let t=0;const e=this.getFrequencyData();for(let n=0;n<e.length;n++)t+=e[n];return t/e.length}}class rh{constructor(t,e,n){let i,r,s;switch(this.binding=t,this.valueSize=n,e){case"quaternion":i=this._slerp,r=this._slerpAdditive,s=this._setAdditiveIdentityQuaternion,this.buffer=new Float64Array(6*n),this._workIndex=5;break;case"string":case"bool":i=this._select,r=this._select,s=this._setAdditiveIdentityOther,this.buffer=new Array(5*n);break;default:i=this._lerp,r=this._lerpAdditive,s=this._setAdditiveIdentityNumeric,this.buffer=new Float64Array(5*n)}this._mixBufferRegion=i,this._mixBufferRegionAdditive=r,this._setIdentity=s,this._origIndex=3,this._addIndex=4,this.cumulativeWeight=0,this.cumulativeWeightAdditive=0,this.useCount=0,this.referenceCount=0}accumulate(t,e){const n=this.buffer,i=this.valueSize,r=t*i+i;let s=this.cumulativeWeight;if(0===s){for(let t=0;t!==i;++t)n[r+t]=n[t];s=e}else{s+=e;const t=e/s;this._mixBufferRegion(n,r,0,t,i)}this.cumulativeWeight=s}accumulateAdditive(t){const e=this.buffer,n=this.valueSize,i=n*this._addIndex;0===this.cumulativeWeightAdditive&&this._setIdentity(),this._mixBufferRegionAdditive(e,i,0,t,n),this.cumulativeWeightAdditive+=t}apply(t){const e=this.valueSize,n=this.buffer,i=t*e+e,r=this.cumulativeWeight,s=this.cumulativeWeightAdditive,a=this.binding;if(this.cumulativeWeight=0,this.cumulativeWeightAdditive=0,r<1){const t=e*this._origIndex;this._mixBufferRegion(n,i,t,1-r,e)}s>0&&this._mixBufferRegionAdditive(n,i,this._addIndex*e,1,e);for(let t=e,r=e+e;t!==r;++t)if(n[t]!==n[t+e]){a.setValue(n,i);break}}saveOriginalState(){const t=this.binding,e=this.buffer,n=this.valueSize,i=n*this._origIndex;t.getValue(e,i);for(let t=n,r=i;t!==r;++t)e[t]=e[i+t%n];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const t=3*this.valueSize;this.binding.setValue(this.buffer,t)}_setAdditiveIdentityNumeric(){const t=this._addIndex*this.valueSize,e=t+this.valueSize;for(let n=t;n<e;n++)this.buffer[n]=0}_setAdditiveIdentityQuaternion(){this._setAdditiveIdentityNumeric(),this.buffer[this._addIndex*this.valueSize+3]=1}_setAdditiveIdentityOther(){const t=this._origIndex*this.valueSize,e=this._addIndex*this.valueSize;for(let n=0;n<this.valueSize;n++)this.buffer[e+n]=this.buffer[t+n]}_select(t,e,n,i,r){if(i>=.5)for(let i=0;i!==r;++i)t[e+i]=t[n+i]}_slerp(t,e,n,i){Dt.slerpFlat(t,e,t,e,t,n,i)}_slerpAdditive(t,e,n,i,r){const s=this._workIndex*r;Dt.multiplyQuaternionsFlat(t,s,t,e,t,n),Dt.slerpFlat(t,e,t,e,t,s,i)}_lerp(t,e,n,i,r){const s=1-i;for(let a=0;a!==r;++a){const r=e+a;t[r]=t[r]*s+t[n+a]*i}}_lerpAdditive(t,e,n,i,r){for(let s=0;s!==r;++s){const r=e+s;t[r]=t[r]+t[n+s]*i}}}const sh="\\[\\]\\.:\\/",ah=new RegExp("[\\[\\]\\.:\\/]","g"),oh="[^\\[\\]\\.:\\/]",lh="[^"+sh.replace("\\.","")+"]",ch=/((?:WC+[\/:])*)/.source.replace("WC",oh),hh=/(WCOD+)?/.source.replace("WCOD",lh),uh=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",oh),dh=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",oh),ph=new RegExp("^"+ch+hh+uh+dh+"$"),mh=["material","materials","bones"];class fh{constructor(t,e,n){this.path=e,this.parsedPath=n||fh.parseTrackName(e),this.node=fh.findNode(t,this.parsedPath.nodeName)||t,this.rootNode=t,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(t,e,n){return t&&t.isAnimationObjectGroup?new fh.Composite(t,e,n):new fh(t,e,n)}static sanitizeNodeName(t){return t.replace(/\s/g,"_").replace(ah,"")}static parseTrackName(t){const e=ph.exec(t);if(!e)throw new Error(""+t);const n={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]},i=n.nodeName&&n.nodeName.lastIndexOf(".");if(void 0!==i&&-1!==i){const t=n.nodeName.substring(i+1);-1!==mh.indexOf(t)&&(n.nodeName=n.nodeName.substring(0,i),n.objectName=t)}if(null===n.propertyName||0===n.propertyName.length)throw new Error(""+t);return n}static findNode(t,e){if(!e||""===e||"."===e||-1===e||e===t.name||e===t.uuid)return t;if(t.skeleton){const n=t.skeleton.getBoneByName(e);if(void 0!==n)return n}if(t.children){const n=function(t){for(let i=0;i<t.length;i++){const r=t[i];if(r.name===e||r.uuid===e)return r;const s=n(r.children);if(s)return s}return null},i=n(t.children);if(i)return i}return null}_getValue_unavailable(){}_setValue_unavailable(){}_getValue_direct(t,e){t[e]=this.targetObject[this.propertyName]}_getValue_array(t,e){const n=this.resolvedProperty;for(let i=0,r=n.length;i!==r;++i)t[e++]=n[i]}_getValue_arrayElement(t,e){t[e]=this.resolvedProperty[this.propertyIndex]}_getValue_toArray(t,e){this.resolvedProperty.toArray(t,e)}_setValue_direct(t,e){this.targetObject[this.propertyName]=t[e]}_setValue_direct_setNeedsUpdate(t,e){this.targetObject[this.propertyName]=t[e],this.targetObject.needsUpdate=!0}_setValue_direct_setMatrixWorldNeedsUpdate(t,e){this.targetObject[this.propertyName]=t[e],this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_array(t,e){const n=this.resolvedProperty;for(let i=0,r=n.length;i!==r;++i)n[i]=t[e++]}_setValue_array_setNeedsUpdate(t,e){const n=this.resolvedProperty;for(let i=0,r=n.length;i!==r;++i)n[i]=t[e++];this.targetObject.needsUpdate=!0}_setValue_array_setMatrixWorldNeedsUpdate(t,e){const n=this.resolvedProperty;for(let i=0,r=n.length;i!==r;++i)n[i]=t[e++];this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_arrayElement(t,e){this.resolvedProperty[this.propertyIndex]=t[e]}_setValue_arrayElement_setNeedsUpdate(t,e){this.resolvedProperty[this.propertyIndex]=t[e],this.targetObject.needsUpdate=!0}_setValue_arrayElement_setMatrixWorldNeedsUpdate(t,e){this.resolvedProperty[this.propertyIndex]=t[e],this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_fromArray(t,e){this.resolvedProperty.fromArray(t,e)}_setValue_fromArray_setNeedsUpdate(t,e){this.resolvedProperty.fromArray(t,e),this.targetObject.needsUpdate=!0}_setValue_fromArray_setMatrixWorldNeedsUpdate(t,e){this.resolvedProperty.fromArray(t,e),this.targetObject.matrixWorldNeedsUpdate=!0}_getValue_unbound(t,e){this.bind(),this.getValue(t,e)}_setValue_unbound(t,e){this.bind(),this.setValue(t,e)}bind(){let t=this.node;const e=this.parsedPath,n=e.objectName,i=e.propertyName;let r=e.propertyIndex;if(t||(t=fh.findNode(this.rootNode,e.nodeName)||this.rootNode,this.node=t),this.getValue=this._getValue_unavailable,this.setValue=this._setValue_unavailable,!t)return void (""+this.path+" but it wasn't found.");if(n){let i=e.objectIndex;switch(n){case"materials":if(!t.material)return void ("",this);if(!t.material.materials)return void ("",this);t=t.material.materials;break;case"bones":if(!t.skeleton)return void ("",this);t=t.skeleton.bones;for(let e=0;e<t.length;e++)if(t[e].name===i){i=e;break}break;default:if(void 0===t[n])return void ("",this);t=t[n]}if(void 0!==i){if(void 0===t[i])return void ("",this,t);t=t[i]}}const s=t[i];if(void 0===s){const n=e.nodeName;return void (""+n+"."+i+" but it wasn't found.",t)}let a=this.Versioning.None;this.targetObject=t,void 0!==t.needsUpdate?a=this.Versioning.NeedsUpdate:void 0!==t.matrixWorldNeedsUpdate&&(a=this.Versioning.MatrixWorldNeedsUpdate);let o=this.BindingType.Direct;if(void 0!==r){if("morphTargetInfluences"===i){if(!t.geometry)return void ("",this);if(!t.geometry.isBufferGeometry)return void ("",this);if(!t.geometry.morphAttributes)return void ("",this);void 0!==t.morphTargetDictionary[r]&&(r=t.morphTargetDictionary[r])}o=this.BindingType.ArrayElement,this.resolvedProperty=s,this.propertyIndex=r}else void 0!==s.fromArray&&void 0!==s.toArray?(o=this.BindingType.HasFromToArray,this.resolvedProperty=s):Array.isArray(s)?(o=this.BindingType.EntireArray,this.resolvedProperty=s):this.propertyName=i;this.getValue=this.GetterByBindingType[o],this.setValue=this.SetterByBindingTypeAndVersioning[o][a]}unbind(){this.node=null,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}}fh.Composite=class{constructor(t,e,n){const i=n||fh.parseTrackName(e);this._targetGroup=t,this._bindings=t.subscribe_(e,i)}getValue(t,e){this.bind();const n=this._targetGroup.nCachedObjects_,i=this._bindings[n];void 0!==i&&i.getValue(t,e)}setValue(t,e){const n=this._bindings;for(let i=this._targetGroup.nCachedObjects_,r=n.length;i!==r;++i)n[i].setValue(t,e)}bind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].bind()}unbind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].unbind()}},fh.prototype.BindingType={Direct:0,EntireArray:1,ArrayElement:2,HasFromToArray:3},fh.prototype.Versioning={None:0,NeedsUpdate:1,MatrixWorldNeedsUpdate:2},fh.prototype.GetterByBindingType=[fh.prototype._getValue_direct,fh.prototype._getValue_array,fh.prototype._getValue_arrayElement,fh.prototype._getValue_toArray],fh.prototype.SetterByBindingTypeAndVersioning=[[fh.prototype._setValue_direct,fh.prototype._setValue_direct_setNeedsUpdate,fh.prototype._setValue_direct_setMatrixWorldNeedsUpdate],[fh.prototype._setValue_array,fh.prototype._setValue_array_setNeedsUpdate,fh.prototype._setValue_array_setMatrixWorldNeedsUpdate],[fh.prototype._setValue_arrayElement,fh.prototype._setValue_arrayElement_setNeedsUpdate,fh.prototype._setValue_arrayElement_setMatrixWorldNeedsUpdate],[fh.prototype._setValue_fromArray,fh.prototype._setValue_fromArray_setNeedsUpdate,fh.prototype._setValue_fromArray_setMatrixWorldNeedsUpdate]];class gh{constructor(){this.uuid=ht(),this._objects=Array.prototype.slice.call(arguments),this.nCachedObjects_=0;const t={};this._indicesByUUID=t;for(let e=0,n=arguments.length;e!==n;++e)t[arguments[e].uuid]=e;this._paths=[],this._parsedPaths=[],this._bindings=[],this._bindingsIndicesByPath={};const e=this;this.stats={objects:{get total(){return e._objects.length},get inUse(){return this.total-e.nCachedObjects_}},get bindingsPerObject(){return e._bindings.length}}}add(){const t=this._objects,e=this._indicesByUUID,n=this._paths,i=this._parsedPaths,r=this._bindings,s=r.length;let a,o=t.length,l=this.nCachedObjects_;for(let c=0,h=arguments.length;c!==h;++c){const h=arguments[c],u=h.uuid;let d=e[u];if(void 0===d){d=o++,e[u]=d,t.push(h);for(let t=0,e=s;t!==e;++t)r[t].push(new fh(h,n[t],i[t]))}else if(d<l){a=t[d];const o=--l,c=t[o];e[c.uuid]=d,t[d]=c,e[u]=o,t[o]=h;for(let t=0,e=s;t!==e;++t){const e=r[t],s=e[o];let a=e[d];e[d]=s,void 0===a&&(a=new fh(h,n[t],i[t])),e[o]=a}}else t[d]!==a&&("")}this.nCachedObjects_=l}remove(){const t=this._objects,e=this._indicesByUUID,n=this._bindings,i=n.length;let r=this.nCachedObjects_;for(let s=0,a=arguments.length;s!==a;++s){const a=arguments[s],o=a.uuid,l=e[o];if(void 0!==l&&l>=r){const s=r++,c=t[s];e[c.uuid]=l,t[l]=c,e[o]=s,t[s]=a;for(let t=0,e=i;t!==e;++t){const e=n[t],i=e[s],r=e[l];e[l]=i,e[s]=r}}}this.nCachedObjects_=r}uncache(){const t=this._objects,e=this._indicesByUUID,n=this._bindings,i=n.length;let r=this.nCachedObjects_,s=t.length;for(let a=0,o=arguments.length;a!==o;++a){const o=arguments[a].uuid,l=e[o];if(void 0!==l)if(delete e[o],l<r){const a=--r,o=t[a],c=--s,h=t[c];e[o.uuid]=l,t[l]=o,e[h.uuid]=a,t[a]=h,t.pop();for(let t=0,e=i;t!==e;++t){const e=n[t],i=e[a],r=e[c];e[l]=i,e[a]=r,e.pop()}}else{const r=--s,a=t[r];r>0&&(e[a.uuid]=l),t[l]=a,t.pop();for(let t=0,e=i;t!==e;++t){const e=n[t];e[l]=e[r],e.pop()}}}this.nCachedObjects_=r}subscribe_(t,e){const n=this._bindingsIndicesByPath;let i=n[t];const r=this._bindings;if(void 0!==i)return r[i];const s=this._paths,a=this._parsedPaths,o=this._objects,l=o.length,c=this.nCachedObjects_,h=new Array(l);i=r.length,n[t]=i,s.push(t),a.push(e),r.push(h);for(let n=c,i=o.length;n!==i;++n){const i=o[n];h[n]=new fh(i,t,e)}return h}unsubscribe_(t){const e=this._bindingsIndicesByPath,n=e[t];if(void 0!==n){const i=this._paths,r=this._parsedPaths,s=this._bindings,a=s.length-1,o=s[a];e[t[a]]=n,s[n]=o,s.pop(),r[n]=r[a],r.pop(),i[n]=i[a],i.pop()}}}gh.prototype.isAnimationObjectGroup=!0;class vh{constructor(t,e,n=null,i=e.blendMode){this._mixer=t,this._clip=e,this._localRoot=n,this.blendMode=i;const r=e.tracks,s=r.length,a=new Array(s),o={endingStart:k,endingEnd:k};for(let t=0;t!==s;++t){const e=r[t].createInterpolant(null);a[t]=e,e.settings=o}this._interpolantSettings=o,this._interpolants=a,this._propertyBindings=new Array(s),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=2201,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&0!==this.timeScale&&null===this._startTime&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(t){return this._startTime=t,this}setLoop(t,e){return this.loop=t,this.repetitions=e,this}setEffectiveWeight(t){return this.weight=t,this._effectiveWeight=this.enabled?t:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(t){return this._scheduleFading(t,0,1)}fadeOut(t){return this._scheduleFading(t,1,0)}crossFadeFrom(t,e,n){if(t.fadeOut(e),this.fadeIn(e),n){const n=this._clip.duration,i=t._clip.duration,r=i/n,s=n/i;t.warp(1,r,e),this.warp(s,1,e)}return this}crossFadeTo(t,e,n){return t.crossFadeFrom(this,e,n)}stopFading(){const t=this._weightInterpolant;return null!==t&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this}setEffectiveTimeScale(t){return this.timeScale=t,this._effectiveTimeScale=this.paused?0:t,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(t){return this.timeScale=this._clip.duration/t,this.stopWarping()}syncWith(t){return this.time=t.time,this.timeScale=t.timeScale,this.stopWarping()}halt(t){return this.warp(this._effectiveTimeScale,0,t)}warp(t,e,n){const i=this._mixer,r=i.time,s=this.timeScale;let a=this._timeScaleInterpolant;null===a&&(a=i._lendControlInterpolant(),this._timeScaleInterpolant=a);const o=a.parameterPositions,l=a.sampleValues;return o[0]=r,o[1]=r+n,l[0]=t/s,l[1]=e/s,this}stopWarping(){const t=this._timeScaleInterpolant;return null!==t&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(t,e,n,i){if(!this.enabled)return void this._updateWeight(t);const r=this._startTime;if(null!==r){const i=(t-r)*n;if(i<0||0===n)return;this._startTime=null,e=n*i}e*=this._updateTimeScale(t);const s=this._updateTime(e),a=this._updateWeight(t);if(a>0){const t=this._interpolants,e=this._propertyBindings;switch(this.blendMode){case q:for(let n=0,i=t.length;n!==i;++n)t[n].evaluate(s),e[n].accumulateAdditive(a);break;case j:default:for(let n=0,r=t.length;n!==r;++n)t[n].evaluate(s),e[n].accumulate(i,a)}}}_updateWeight(t){let e=0;if(this.enabled){e=this.weight;const n=this._weightInterpolant;if(null!==n){const i=n.evaluate(t)[0];e*=i,t>n.parameterPositions[1]&&(this.stopFading(),0===i&&(this.enabled=!1))}}return this._effectiveWeight=e,e}_updateTimeScale(t){let e=0;if(!this.paused){e=this.timeScale;const n=this._timeScaleInterpolant;if(null!==n){e*=n.evaluate(t)[0],t>n.parameterPositions[1]&&(this.stopWarping(),0===e?this.paused=!0:this.timeScale=e)}}return this._effectiveTimeScale=e,e}_updateTime(t){const e=this._clip.duration,n=this.loop;let i=this.time+t,r=this._loopCount;const s=2202===n;if(0===t)return-1===r?i:s&&1==(1&r)?e-i:i;if(2200===n){-1===r&&(this._loopCount=0,this._setEndings(!0,!0,!1));t:{if(i>=e)i=e;else{if(!(i<0)){this.time=i;break t}i=0}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:t<0?-1:1})}}else{if(-1===r&&(t>=0?(r=0,this._setEndings(!0,0===this.repetitions,s)):this._setEndings(0===this.repetitions,!0,s)),i>=e||i<0){const n=Math.floor(i/e);i-=e*n,r+=Math.abs(n);const a=this.repetitions-r;if(a<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,i=t>0?e:0,this.time=i,this._mixer.dispatchEvent({type:"finished",action:this,direction:t>0?1:-1});else{if(1===a){const e=t<0;this._setEndings(e,!e,s)}else this._setEndings(!1,!1,s);this._loopCount=r,this.time=i,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:n})}}else this.time=i;if(s&&1==(1&r))return e-i}return i}_setEndings(t,e,n){const i=this._interpolantSettings;n?(i.endingStart=V,i.endingEnd=V):(i.endingStart=t?this.zeroSlopeAtStart?V:k:W,i.endingEnd=e?this.zeroSlopeAtEnd?V:k:W)}_scheduleFading(t,e,n){const i=this._mixer,r=i.time;let s=this._weightInterpolant;null===s&&(s=i._lendControlInterpolant(),this._weightInterpolant=s);const a=s.parameterPositions,o=s.sampleValues;return a[0]=r,o[0]=e,a[1]=r+t,o[1]=n,this}}class yh extends rt{constructor(t){super(),this._root=t,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(t,e){const n=t._localRoot||this._root,i=t._clip.tracks,r=i.length,s=t._propertyBindings,a=t._interpolants,o=n.uuid,l=this._bindingsByRootAndName;let c=l[o];void 0===c&&(c={},l[o]=c);for(let t=0;t!==r;++t){const r=i[t],l=r.name;let h=c[l];if(void 0!==h)s[t]=h;else{if(h=s[t],void 0!==h){null===h._cacheIndex&&(++h.referenceCount,this._addInactiveBinding(h,o,l));continue}const i=e&&e._propertyBindings[t].binding.parsedPath;h=new rh(fh.create(n,l,i),r.ValueTypeName,r.getValueSize()),++h.referenceCount,this._addInactiveBinding(h,o,l),s[t]=h}a[t].resultBuffer=h.buffer}}_activateAction(t){if(!this._isActiveAction(t)){if(null===t._cacheIndex){const e=(t._localRoot||this._root).uuid,n=t._clip.uuid,i=this._actionsByClip[n];this._bindAction(t,i&&i.knownActions[0]),this._addInactiveAction(t,n,e)}const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0==n.useCount++&&(this._lendBinding(n),n.saveOriginalState())}this._lendAction(t)}}_deactivateAction(t){if(this._isActiveAction(t)){const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0==--n.useCount&&(n.restoreOriginalState(),this._takeBackBinding(n))}this._takeBackAction(t)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const t=this;this.stats={actions:{get total(){return t._actions.length},get inUse(){return t._nActiveActions}},bindings:{get total(){return t._bindings.length},get inUse(){return t._nActiveBindings}},controlInterpolants:{get total(){return t._controlInterpolants.length},get inUse(){return t._nActiveControlInterpolants}}}}_isActiveAction(t){const e=t._cacheIndex;return null!==e&&e<this._nActiveActions}_addInactiveAction(t,e,n){const i=this._actions,r=this._actionsByClip;let s=r[e];if(void 0===s)s={knownActions:[t],actionByRoot:{}},t._byClipCacheIndex=0,r[e]=s;else{const e=s.knownActions;t._byClipCacheIndex=e.length,e.push(t)}t._cacheIndex=i.length,i.push(t),s.actionByRoot[n]=t}_removeInactiveAction(t){const e=this._actions,n=e[e.length-1],i=t._cacheIndex;n._cacheIndex=i,e[i]=n,e.pop(),t._cacheIndex=null;const r=t._clip.uuid,s=this._actionsByClip,a=s[r],o=a.knownActions,l=o[o.length-1],c=t._byClipCacheIndex;l._byClipCacheIndex=c,o[c]=l,o.pop(),t._byClipCacheIndex=null;delete a.actionByRoot[(t._localRoot||this._root).uuid],0===o.length&&delete s[r],this._removeInactiveBindingsForAction(t)}_removeInactiveBindingsForAction(t){const e=t._propertyBindings;for(let t=0,n=e.length;t!==n;++t){const n=e[t];0==--n.referenceCount&&this._removeInactiveBinding(n)}}_lendAction(t){const e=this._actions,n=t._cacheIndex,i=this._nActiveActions++,r=e[i];t._cacheIndex=i,e[i]=t,r._cacheIndex=n,e[n]=r}_takeBackAction(t){const e=this._actions,n=t._cacheIndex,i=--this._nActiveActions,r=e[i];t._cacheIndex=i,e[i]=t,r._cacheIndex=n,e[n]=r}_addInactiveBinding(t,e,n){const i=this._bindingsByRootAndName,r=this._bindings;let s=i[e];void 0===s&&(s={},i[e]=s),s[n]=t,t._cacheIndex=r.length,r.push(t)}_removeInactiveBinding(t){const e=this._bindings,n=t.binding,i=n.rootNode.uuid,r=n.path,s=this._bindingsByRootAndName,a=s[i],o=e[e.length-1],l=t._cacheIndex;o._cacheIndex=l,e[l]=o,e.pop(),delete a[r],0===Object.keys(a).length&&delete s[i]}_lendBinding(t){const e=this._bindings,n=t._cacheIndex,i=this._nActiveBindings++,r=e[i];t._cacheIndex=i,e[i]=t,r._cacheIndex=n,e[n]=r}_takeBackBinding(t){const e=this._bindings,n=t._cacheIndex,i=--this._nActiveBindings,r=e[i];t._cacheIndex=i,e[i]=t,r._cacheIndex=n,e[n]=r}_lendControlInterpolant(){const t=this._controlInterpolants,e=this._nActiveControlInterpolants++;let n=t[e];return void 0===n&&(n=new Wl(new Float32Array(2),new Float32Array(2),1,this._controlInterpolantsResultBuffer),n.__cacheIndex=e,t[e]=n),n}_takeBackControlInterpolant(t){const e=this._controlInterpolants,n=t.__cacheIndex,i=--this._nActiveControlInterpolants,r=e[i];t.__cacheIndex=i,e[i]=t,r.__cacheIndex=n,e[n]=r}clipAction(t,e,n){const i=e||this._root,r=i.uuid;let s="string"==typeof t?tc.findByName(i,t):t;const a=null!==s?s.uuid:t,o=this._actionsByClip[a];let l=null;if(void 0===n&&(n=null!==s?s.blendMode:j),void 0!==o){const t=o.actionByRoot[r];if(void 0!==t&&t.blendMode===n)return t;l=o.knownActions[0],null===s&&(s=l._clip)}if(null===s)return null;const c=new vh(this,s,e,n);return this._bindAction(c,l),this._addInactiveAction(c,a,r),c}existingAction(t,e){const n=e||this._root,i=n.uuid,r="string"==typeof t?tc.findByName(n,t):t,s=r?r.uuid:t,a=this._actionsByClip[s];return void 0!==a&&a.actionByRoot[i]||null}stopAllAction(){const t=this._actions;for(let e=this._nActiveActions-1;e>=0;--e)t[e].stop();return this}update(t){t*=this.timeScale;const e=this._actions,n=this._nActiveActions,i=this.time+=t,r=Math.sign(t),s=this._accuIndex^=1;for(let a=0;a!==n;++a){e[a]._update(i,t,r,s)}const a=this._bindings,o=this._nActiveBindings;for(let t=0;t!==o;++t)a[t].apply(s);return this}setTime(t){this.time=0;for(let t=0;t<this._actions.length;t++)this._actions[t].time=0;return this.update(t)}getRoot(){return this._root}uncacheClip(t){const e=this._actions,n=t.uuid,i=this._actionsByClip,r=i[n];if(void 0!==r){const t=r.knownActions;for(let n=0,i=t.length;n!==i;++n){const i=t[n];this._deactivateAction(i);const r=i._cacheIndex,s=e[e.length-1];i._cacheIndex=null,i._byClipCacheIndex=null,s._cacheIndex=r,e[r]=s,e.pop(),this._removeInactiveBindingsForAction(i)}delete i[n]}}uncacheRoot(t){const e=t.uuid,n=this._actionsByClip;for(const t in n){const i=n[t].actionByRoot[e];void 0!==i&&(this._deactivateAction(i),this._removeInactiveAction(i))}const i=this._bindingsByRootAndName[e];if(void 0!==i)for(const t in i){const e=i[t];e.restoreOriginalState(),this._removeInactiveBinding(e)}}uncacheAction(t,e){const n=this.existingAction(t,e);null!==n&&(this._deactivateAction(n),this._removeInactiveAction(n))}}yh.prototype._controlInterpolantsResultBuffer=new Float32Array(1);class xh{constructor(t){"string"==typeof t&&((""),t=arguments[1]),this.value=t}clone(){return new xh(void 0===this.value.clone?this.value:this.value.clone())}}class _h extends ea{constructor(t,e,n=1){super(t,e),this.meshPerAttribute=n}copy(t){return super.copy(t),this.meshPerAttribute=t.meshPerAttribute,this}clone(t){const e=super.clone(t);return e.meshPerAttribute=this.meshPerAttribute,e}toJSON(t){const e=super.toJSON(t);return e.isInstancedInterleavedBuffer=!0,e.meshPerAttribute=this.meshPerAttribute,e}}_h.prototype.isInstancedInterleavedBuffer=!0;class bh{constructor(t,e,n,i,r){this.buffer=t,this.type=e,this.itemSize=n,this.elementSize=i,this.count=r,this.version=0}set needsUpdate(t){!0===t&&this.version++}setBuffer(t){return this.buffer=t,this}setType(t,e){return this.type=t,this.elementSize=e,this}setItemSize(t){return this.itemSize=t,this}setCount(t){return this.count=t,this}}bh.prototype.isGLBufferAttribute=!0;function Mh(t,e){return t.distance-e.distance}function wh(t,e,n,i){if(t.layers.test(e.layers)&&t.raycast(e,n),!0===i){const i=t.children;for(let t=0,r=i.length;t<r;t++)wh(i[t],e,n,!0)}}const Sh=new yt;class Th{constructor(t=new yt(1/0,1/0),e=new yt(-1/0,-1/0)){this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromPoints(t){this.makeEmpty();for(let e=0,n=t.length;e<n;e++)this.expandByPoint(t[e]);return this}setFromCenterAndSize(t,e){const n=Sh.copy(e).multiplyScalar(.5);return this.min.copy(t).sub(n),this.max.copy(t).add(n),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.min.copy(t.min),this.max.copy(t.max),this}makeEmpty(){return this.min.x=this.min.y=1/0,this.max.x=this.max.y=-1/0,this}isEmpty(){return this.max.x<this.min.x||this.max.y<this.min.y}getCenter(t){return this.isEmpty()?t.set(0,0):t.addVectors(this.min,this.max).multiplyScalar(.5)}getSize(t){return this.isEmpty()?t.set(0,0):t.subVectors(this.max,this.min)}expandByPoint(t){return this.min.min(t),this.max.max(t),this}expandByVector(t){return this.min.sub(t),this.max.add(t),this}expandByScalar(t){return this.min.addScalar(-t),this.max.addScalar(t),this}containsPoint(t){return!(t.x<this.min.x||t.x>this.max.x||t.y<this.min.y||t.y>this.max.y)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(t){return!(t.max.x<this.min.x||t.min.x>this.max.x||t.max.y<this.min.y||t.min.y>this.max.y)}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return Sh.copy(t).clamp(this.min,this.max).sub(t).length()}intersect(t){return this.min.max(t.min),this.max.min(t.max),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}Th.prototype.isBox2=!0;const Eh=new Nt,Ah=new Nt;class Lh{constructor(t=new Nt,e=new Nt){this.start=t,this.end=e}set(t,e){return this.start.copy(t),this.end.copy(e),this}copy(t){return this.start.copy(t.start),this.end.copy(t.end),this}getCenter(t){return t.addVectors(this.start,this.end).multiplyScalar(.5)}delta(t){return t.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(t,e){return this.delta(e).multiplyScalar(t).add(this.start)}closestPointToPointParameter(t,e){Eh.subVectors(t,this.start),Ah.subVectors(this.end,this.start);const n=Ah.dot(Ah);let i=Ah.dot(Eh)/n;return e&&(i=ut(i,0,1)),i}closestPointToPoint(t,e,n){const i=this.closestPointToPointParameter(t,e);return this.delta(n).multiplyScalar(i).add(this.start)}applyMatrix4(t){return this.start.applyMatrix4(t),this.end.applyMatrix4(t),this}equals(t){return t.start.equals(this.start)&&t.end.equals(this.end)}clone(){return(new this.constructor).copy(this)}}class Rh extends Be{constructor(t){super(),this.material=t,this.render=function(){},this.hasPositions=!1,this.hasNormals=!1,this.hasColors=!1,this.hasUvs=!1,this.positionArray=null,this.normalArray=null,this.colorArray=null,this.uvArray=null,this.count=0}}Rh.prototype.isImmediateRenderObject=!0;const Ch=new Nt;const Ph=new Nt,Ih=new ue,Dh=new ue;class Nh extends Ja{constructor(t){const e=zh(t),n=new Tn,i=[],r=[],s=new nn(0,0,1),a=new nn(0,1,0);for(let t=0;t<e.length;t++){const n=e[t];n.parent&&n.parent.isBone&&(i.push(0,0,0),i.push(0,0,0),r.push(s.r,s.g,s.b),r.push(a.r,a.g,a.b))}n.setAttribute("position",new gn(i,3)),n.setAttribute("color",new gn(r,3));super(n,new Ha({vertexColors:!0,depthTest:!1,depthWrite:!1,toneMapped:!1,transparent:!0})),this.type="SkeletonHelper",this.isSkeletonHelper=!0,this.root=t,this.bones=e,this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1}updateMatrixWorld(t){const e=this.bones,n=this.geometry,i=n.getAttribute("position");Dh.copy(this.root.matrixWorld).invert();for(let t=0,n=0;t<e.length;t++){const r=e[t];r.parent&&r.parent.isBone&&(Ih.multiplyMatrices(Dh,r.matrixWorld),Ph.setFromMatrixPosition(Ih),i.setXYZ(n,Ph.x,Ph.y,Ph.z),Ih.multiplyMatrices(Dh,r.parent.matrixWorld),Ph.setFromMatrixPosition(Ih),i.setXYZ(n+1,Ph.x,Ph.y,Ph.z),n+=2)}n.getAttribute("position").needsUpdate=!0,super.updateMatrixWorld(t)}}function zh(t){const e=[];t&&t.isBone&&e.push(t);for(let n=0;n<t.children.length;n++)e.push.apply(e,zh(t.children[n]));return e}const Bh=new Nt,Fh=new nn,Oh=new nn;class Uh extends Ja{constructor(t=10,e=10,n=4473924,i=8947848){n=new nn(n),i=new nn(i);const r=e/2,s=t/e,a=t/2,o=[],l=[];for(let t=0,c=0,h=-a;t<=e;t++,h+=s){o.push(-a,0,h,a,0,h),o.push(h,0,-a,h,0,a);const e=t===r?n:i;e.toArray(l,c),c+=3,e.toArray(l,c),c+=3,e.toArray(l,c),c+=3,e.toArray(l,c),c+=3}const c=new Tn;c.setAttribute("position",new gn(o,3)),c.setAttribute("color",new gn(l,3));super(c,new Ha({vertexColors:!0,toneMapped:!1})),this.type="GridHelper"}}const Hh=new Nt,Gh=new Nt,kh=new Nt;const Vh=new Nt,Wh=new Zn;function jh(t,e,n,i,r,s,a){Vh.set(r,s,a).unproject(i);const o=e[t];if(void 0!==o){const t=n.getAttribute("position");for(let e=0,n=o.length;e<n;e++)t.setXYZ(o[e],Vh.x,Vh.y,Vh.z)}}const qh=new Ft;class Xh extends Ja{constructor(t,e=16776960){const n=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),i=new Float32Array(24),r=new Tn;r.setIndex(new on(n,1)),r.setAttribute("position",new on(i,3)),super(r,new Ha({color:e,toneMapped:!1})),this.object=t,this.type="BoxHelper",this.matrixAutoUpdate=!1,this.update()}update(t){if(void 0!==t&&(""),void 0!==this.object&&qh.setFromObject(this.object),qh.isEmpty())return;const e=qh.min,n=qh.max,i=this.geometry.attributes.position,r=i.array;r[0]=n.x,r[1]=n.y,r[2]=n.z,r[3]=e.x,r[4]=n.y,r[5]=n.z,r[6]=e.x,r[7]=e.y,r[8]=n.z,r[9]=n.x,r[10]=e.y,r[11]=n.z,r[12]=n.x,r[13]=n.y,r[14]=e.z,r[15]=e.x,r[16]=n.y,r[17]=e.z,r[18]=e.x,r[19]=e.y,r[20]=e.z,r[21]=n.x,r[22]=e.y,r[23]=e.z,i.needsUpdate=!0,this.geometry.computeBoundingSphere()}setFromObject(t){return this.object=t,this.update(),this}copy(t){return Ja.prototype.copy.call(this,t),this.object=t.object,this}}const Yh=new Nt;let Jh,Zh;class Qh extends Ja{constructor(t=1){const e=[0,0,0,t,0,0,0,0,0,0,t,0,0,0,0,0,0,t],n=new Tn;n.setAttribute("position",new gn(e,3)),n.setAttribute("color",new gn([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3));super(n,new Ha({vertexColors:!0,toneMapped:!1})),this.type="AxesHelper"}setColors(t,e,n){const i=new nn,r=this.geometry.attributes.color.array;return i.set(t),i.toArray(r,0),i.toArray(r,3),i.set(e),i.toArray(r,6),i.toArray(r,9),i.set(n),i.toArray(r,12),i.toArray(r,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}const Kh=new Float32Array(1),$h=new Int32Array(Kh.buffer);xo.create=function(t,e){return (""),t.prototype=Object.create(xo.prototype),t.prototype.constructor=t,t.prototype.getPoint=e,t},Ho.prototype.fromPoints=function(t){return (""),this.setFromPoints(t)},Uh.prototype.setColors=function(){("")},Nh.prototype.update=function(){("")},sc.prototype.extractUrlBase=function(t){return (""),Ic.extractUrlBase(t)},sc.Handlers={add:function(){("")},get:function(){("")}},Th.prototype.center=function(t){return (""),this.getCenter(t)},Th.prototype.empty=function(){return (""),this.isEmpty()},Th.prototype.isIntersectionBox=function(t){return (""),this.intersectsBox(t)},Th.prototype.size=function(t){return (""),this.getSize(t)},Ft.prototype.center=function(t){return (""),this.getCenter(t)},Ft.prototype.empty=function(){return (""),this.isEmpty()},Ft.prototype.isIntersectionBox=function(t){return (""),this.intersectsBox(t)},Ft.prototype.isIntersectionSphere=function(t){return (""),this.intersectsSphere(t)},Ft.prototype.size=function(t){return (""),this.getSize(t)},ne.prototype.empty=function(){return (""),this.isEmpty()},li.prototype.setFromMatrix=function(t){return (""),this.setFromProjectionMatrix(t)},Lh.prototype.center=function(t){return (""),this.getCenter(t)},xt.prototype.flattenToArrayOffset=function(t,e){return (""),this.toArray(t,e)},xt.prototype.multiplyVector3=function(t){return (""),t.applyMatrix3(this)},xt.prototype.multiplyVector3Array=function(){("")},xt.prototype.applyToBufferAttribute=function(t){return (""),t.applyMatrix3(this)},xt.prototype.applyToVector3Array=function(){("")},xt.prototype.getInverse=function(t){return (""),this.copy(t).invert()},ue.prototype.extractPosition=function(t){return (""),this.copyPosition(t)},ue.prototype.flattenToArrayOffset=function(t,e){return (""),this.toArray(t,e)},ue.prototype.getPosition=function(){return (""),(new Nt).setFromMatrixColumn(this,3)},ue.prototype.setRotationFromQuaternion=function(t){return (""),this.makeRotationFromQuaternion(t)},ue.prototype.multiplyToArray=function(){("")},ue.prototype.multiplyVector3=function(t){return (""),t.applyMatrix4(this)},ue.prototype.multiplyVector4=function(t){return (""),t.applyMatrix4(this)},ue.prototype.multiplyVector3Array=function(){("")},ue.prototype.rotateAxis=function(t){(""),t.transformDirection(this)},ue.prototype.crossVector=function(t){return (""),t.applyMatrix4(this)},ue.prototype.translate=function(){("")},ue.prototype.rotateX=function(){("")},ue.prototype.rotateY=function(){("")},ue.prototype.rotateZ=function(){("")},ue.prototype.rotateByAxis=function(){("")},ue.prototype.applyToBufferAttribute=function(t){return (""),t.applyMatrix4(this)},ue.prototype.applyToVector3Array=function(){("")},ue.prototype.makeFrustum=function(t,e,n,i,r,s){return (""),this.makePerspective(t,e,i,n,r,s)},ue.prototype.getInverse=function(t){return (""),this.copy(t).invert()},si.prototype.isIntersectionLine=function(t){return (""),this.intersectsLine(t)},Dt.prototype.multiplyVector3=function(t){return (""),t.applyQuaternion(this)},Dt.prototype.inverse=function(){return (""),this.invert()},he.prototype.isIntersectionBox=function(t){return (""),this.intersectsBox(t)},he.prototype.isIntersectionPlane=function(t){return (""),this.intersectsPlane(t)},he.prototype.isIntersectionSphere=function(t){return (""),this.intersectsSphere(t)},Xe.prototype.area=function(){return (""),this.getArea()},Xe.prototype.barycoordFromPoint=function(t,e){return (""),this.getBarycoord(t,e)},Xe.prototype.midpoint=function(t){return (""),this.getMidpoint(t)},Xe.prototypenormal=function(t){return (""),this.getNormal(t)},Xe.prototype.plane=function(t){return (""),this.getPlane(t)},Xe.barycoordFromPoint=function(t,e,n,i,r){return (""),Xe.getBarycoord(t,e,n,i,r)},Xe.normal=function(t,e,n,i){return (""),Xe.getNormal(t,e,n,i)},Go.prototype.extractAllPoints=function(t){return (""),this.extractPoints(t)},Go.prototype.extrude=function(t){return (""),new gl(this,t)},Go.prototype.makeGeometry=function(t){return (""),new Ml(this,t)},yt.prototype.fromAttribute=function(t,e,n){return (""),this.fromBufferAttribute(t,e,n)},yt.prototype.distanceToManhattan=function(t){return (""),this.manhattanDistanceTo(t)},yt.prototype.lengthManhattan=function(){return (""),this.manhattanLength()},Nt.prototype.setEulerFromRotationMatrix=function(){("")},Nt.prototype.setEulerFromQuaternion=function(){("")},Nt.prototype.getPositionFromMatrix=function(t){return (""),this.setFromMatrixPosition(t)},Nt.prototype.getScaleFromMatrix=function(t){return (""),this.setFromMatrixScale(t)},Nt.prototype.getColumnFromMatrix=function(t,e){return (""),this.setFromMatrixColumn(e,t)},Nt.prototype.applyProjection=function(t){return (""),this.applyMatrix4(t)},Nt.prototype.fromAttribute=function(t,e,n){return (""),this.fromBufferAttribute(t,e,n)},Nt.prototype.distanceToManhattan=function(t){return (""),this.manhattanDistanceTo(t)},Nt.prototype.lengthManhattan=function(){return (""),this.manhattanLength()},Rt.prototype.fromAttribute=function(t,e,n){return (""),this.fromBufferAttribute(t,e,n)},Rt.prototype.lengthManhattan=function(){return (""),this.manhattanLength()},Be.prototype.getChildByName=function(t){return (""),this.getObjectByName(t)},Be.prototype.renderDepth=function(){("")},Be.prototype.translate=function(t,e){return (""),this.translateOnAxis(e,t)},Be.prototype.getWorldRotation=function(){("")},Be.prototype.applyMatrix=function(t){return (""),this.applyMatrix4(t)},Object.defineProperties(Be.prototype,{eulerOrder:{get:function(){return (""),this.rotation.order},set:function(t){(""),this.rotation.order=t}},useQuaternion:{get:function(){("")},set:function(){("")}}}),Vn.prototype.setDrawMode=function(){("")},Object.defineProperties(Vn.prototype,{drawMode:{get:function(){return (""),0},set:function(){("")}}}),La.prototype.initBones=function(){("")},Qn.prototype.setLens=function(t,e){(""),void 0!==e&&(this.filmGauge=e),this.setFocalLength(t)},Object.defineProperties(dc.prototype,{onlyShadow:{set:function(){("")}},shadowCameraFov:{set:function(t){(""),this.shadow.camera.fov=t}},shadowCameraLeft:{set:function(t){(""),this.shadow.camera.left=t}},shadowCameraRight:{set:function(t){(""),this.shadow.camera.right=t}},shadowCameraTop:{set:function(t){(""),this.shadow.camera.top=t}},shadowCameraBottom:{set:function(t){(""),this.shadow.camera.bottom=t}},shadowCameraNear:{set:function(t){(""),this.shadow.camera.near=t}},shadowCameraFar:{set:function(t){(""),this.shadow.camera.far=t}},shadowCameraVisible:{set:function(){("")}},shadowBias:{set:function(t){(""),this.shadow.bias=t}},shadowDarkness:{set:function(){("")}},shadowMapWidth:{set:function(t){(""),this.shadow.mapSize.width=t}},shadowMapHeight:{set:function(t){(""),this.shadow.mapSize.height=t}}}),Object.defineProperties(on.prototype,{length:{get:function(){return (""),this.array.length}},dynamic:{get:function(){return (""),this.usage===nt},set:function(){(""),this.setUsage(nt)}}}),on.prototype.setDynamic=function(t){return (""),this.setUsage(!0===t?nt:et),this},on.prototype.copyIndicesArray=function(){("")},on.prototype.setArray=function(){("")},Tn.prototype.addIndex=function(t){(""),this.setIndex(t)},Tn.prototype.addAttribute=function(t,e){return (""),e&&e.isBufferAttribute||e&&e.isInterleavedBufferAttribute?"index"===t?((""),this.setIndex(e),this):this.setAttribute(t,e):((""),this.setAttribute(t,new on(arguments[1],arguments[2])))},Tn.prototype.addDrawCall=function(t,e,n){void 0!==n&&(""),(""),this.addGroup(t,e)},Tn.prototype.clearDrawCalls=function(){(""),this.clearGroups()},Tn.prototype.computeOffsets=function(){("")},Tn.prototype.removeAttribute=function(t){return (""),this.deleteAttribute(t)},Tn.prototype.applyMatrix=function(t){return (""),this.applyMatrix4(t)},Object.defineProperties(Tn.prototype,{drawcalls:{get:function(){return (""),this.groups}},offsets:{get:function(){return (""),this.groups}}}),ea.prototype.setDynamic=function(t){return (""),this.setUsage(!0===t?nt:et),this},ea.prototype.setArray=function(){("")},gl.prototype.getArrays=function(){("")},gl.prototype.addShapeList=function(){("")},gl.prototype.addShape=function(){("")},ta.prototype.dispose=function(){("")},xh.prototype.onUpdate=function(){return (""),this},Object.defineProperties(Je.prototype,{wrapAround:{get:function(){("")},set:function(){("")}},overdraw:{get:function(){("")},set:function(){("")}},wrapRGB:{get:function(){return (""),new nn}},shading:{get:function(){(""+this.type+": .shading has been removed. Use the boolean .flatShading instead.")},set:function(t){(""+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=1===t}},stencilMask:{get:function(){return (""+this.type+": .stencilMask has been removed. Use .stencilFuncMask instead."),this.stencilFuncMask},set:function(t){(""+this.type+": .stencilMask has been removed. Use .stencilFuncMask instead."),this.stencilFuncMask=t}},vertexTangents:{get:function(){(""+this.type+": .vertexTangents has been removed.")},set:function(){(""+this.type+": .vertexTangents has been removed.")}}}),Object.defineProperties(Jn.prototype,{derivatives:{get:function(){return (""),this.extensions.derivatives},set:function(t){(""),this.extensions.derivatives=t}}}),Zs.prototype.clearTarget=function(t,e,n,i){(""),this.setRenderTarget(t),this.clear(e,n,i)},Zs.prototype.animate=function(t){(""),this.setAnimationLoop(t)},Zs.prototype.getCurrentRenderTarget=function(){return (""),this.getRenderTarget()},Zs.prototype.getMaxAnisotropy=function(){return (""),this.capabilities.getMaxAnisotropy()},Zs.prototype.getPrecision=function(){return (""),this.capabilities.precision},Zs.prototype.resetGLState=function(){return (""),this.state.reset()},Zs.prototype.supportsFloatTextures=function(){return (""),this.extensions.get("OES_texture_float")},Zs.prototype.supportsHalfFloatTextures=function(){return (""),this.extensions.get("OES_texture_half_float")},Zs.prototype.supportsStandardDerivatives=function(){return (""),this.extensions.get("OES_standard_derivatives")},Zs.prototype.supportsCompressedTextureS3TC=function(){return (""),this.extensions.get("WEBGL_compressed_texture_s3tc")},Zs.prototype.supportsCompressedTexturePVRTC=function(){return (""),this.extensions.get("WEBGL_compressed_texture_pvrtc")},Zs.prototype.supportsBlendMinMax=function(){return (""),this.extensions.get("EXT_blend_minmax")},Zs.prototype.supportsVertexTextures=function(){return (""),this.capabilities.vertexTextures},Zs.prototype.supportsInstancedArrays=function(){return (""),this.extensions.get("ANGLE_instanced_arrays")},Zs.prototype.enableScissorTest=function(t){(""),this.setScissorTest(t)},Zs.prototype.initMaterial=function(){("")},Zs.prototype.addPrePlugin=function(){("")},Zs.prototype.addPostPlugin=function(){("")},Zs.prototype.updateShadowMap=function(){("")},Zs.prototype.setFaceCulling=function(){("")},Zs.prototype.allocTextureUnit=function(){("")},Zs.prototype.setTexture=function(){("")},Zs.prototype.setTexture2D=function(){("")},Zs.prototype.setTextureCube=function(){("")},Zs.prototype.getActiveMipMapLevel=function(){return (""),this.getActiveMipmapLevel()},Object.defineProperties(Zs.prototype,{shadowMapEnabled:{get:function(){return this.shadowMap.enabled},set:function(t){(""),this.shadowMap.enabled=t}},shadowMapType:{get:function(){return this.shadowMap.type},set:function(t){(""),this.shadowMap.type=t}},shadowMapCullFace:{get:function(){("")},set:function(){("")}},context:{get:function(){return (""),this.getContext()}},vr:{get:function(){return (""),this.xr}},gammaInput:{get:function(){return (""),!1},set:function(){("")}},gammaOutput:{get:function(){return (""),!1},set:function(t){(""),this.outputEncoding=!0===t?Y:X}},toneMappingWhitePoint:{get:function(){return (""),1},set:function(){("")}}}),Object.defineProperties(Hs.prototype,{cullFace:{get:function(){("")},set:function(){("")}},renderReverseSided:{get:function(){("")},set:function(){("")}},renderSingleSided:{get:function(){("")},set:function(){("")}}}),Object.defineProperties(Ct.prototype,{wrapS:{get:function(){return (""),this.texture.wrapS},set:function(t){(""),this.texture.wrapS=t}},wrapT:{get:function(){return (""),this.texture.wrapT},set:function(t){(""),this.texture.wrapT=t}},magFilter:{get:function(){return (""),this.texture.magFilter},set:function(t){(""),this.texture.magFilter=t}},minFilter:{get:function(){return (""),this.texture.minFilter},set:function(t){(""),this.texture.minFilter=t}},anisotropy:{get:function(){return (""),this.texture.anisotropy},set:function(t){(""),this.texture.anisotropy=t}},offset:{get:function(){return (""),this.texture.offset},set:function(t){(""),this.texture.offset=t}},repeat:{get:function(){return (""),this.texture.repeat},set:function(t){(""),this.texture.repeat=t}},format:{get:function(){return (""),this.texture.format},set:function(t){(""),this.texture.format=t}},type:{get:function(){return (""),this.texture.type},set:function(t){(""),this.texture.type=t}},generateMipmaps:{get:function(){return (""),this.texture.generateMipmaps},set:function(t){(""),this.texture.generateMipmaps=t}}}),Kc.prototype.load=function(t){("");const e=this;return(new Gc).load(t,(function(t){e.setBuffer(t)})),this},ih.prototype.getData=function(){return (""),this.getFrequencyData()},$n.prototype.updateCubeMap=function(t,e){return (""),this.update(t,e)},$n.prototype.clear=function(t,e,n,i){return (""),this.renderTarget.clear(t,e,n,i)},Tt.crossOrigin=void 0,Tt.loadTexture=function(t,e,n,i){("");const r=new uc;r.setCrossOrigin(this.crossOrigin);const s=r.load(t,n,void 0,i);return e&&(s.mapping=e),s},Tt.loadTextureCube=function(t,e,n,i){("");const r=new cc;r.setCrossOrigin(this.crossOrigin);const s=r.load(t,n,void 0,i);return e&&(s.mapping=e),s},Tt.loadCompressedTexture=function(){("")},Tt.loadCompressedTextureCube=function(){("")};const tu={createMultiMaterialObject:function(){("")},detach:function(){("")},attach:function(){("")}};"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:e}})),"undefined"!=typeof window&&(window.__THREE__?(""):window.__THREE__=e),t.ACESFilmicToneMapping=4,t.AddEquation=n,t.AddOperation=2,t.AdditiveAnimationBlendMode=q,t.AdditiveBlending=2,t.AlphaFormat=1021,t.AlwaysDepth=1,t.AlwaysStencilFunc=519,t.AmbientLight=Ac,t.AmbientLightProbe=Vc,t.AnimationClip=tc,t.AnimationLoader=class extends sc{constructor(t){super(t)}load(t,e,n,i){const r=this,s=new oc(this.manager);s.setPath(this.path),s.setRequestHeader(this.requestHeader),s.setWithCredentials(this.withCredentials),s.load(t,(function(n){try{e(r.parse(JSON.parse(n)))}catch(e){i?i(e):(e),r.manager.itemError(t)}}),n,i)}parse(t){const e=[];for(let n=0;n<t.length;n++){const i=tc.parse(t[n]);e.push(i)}return e}},t.AnimationMixer=yh,t.AnimationObjectGroup=gh,t.AnimationUtils=Gl,t.ArcCurve=bo,t.ArrayCamera=Ws,t.ArrowHelper=class extends Be{constructor(t=new Nt(0,0,1),e=new Nt(0,0,0),n=1,i=16776960,r=.2*n,s=.2*r){super(),this.type="ArrowHelper",void 0===Jh&&(Jh=new Tn,Jh.setAttribute("position",new gn([0,0,0,0,1,0],3)),Zh=new co(0,.5,1,5,1),Zh.translate(0,-.5,0)),this.position.copy(e),this.line=new qa(Jh,new Ha({color:i,toneMapped:!1})),this.line.matrixAutoUpdate=!1,this.add(this.line),this.cone=new Vn(Zh,new rn({color:i,toneMapped:!1})),this.cone.matrixAutoUpdate=!1,this.add(this.cone),this.setDirection(t),this.setLength(n,r,s)}setDirection(t){if(t.y>.99999)this.quaternion.set(0,0,0,1);else if(t.y<-.99999)this.quaternion.set(1,0,0,0);else{Yh.set(t.z,0,-t.x).normalize();const e=Math.acos(t.y);this.quaternion.setFromAxisAngle(Yh,e)}}setLength(t,e=.2*t,n=.2*e){this.line.scale.set(1,Math.max(1e-4,t-e),1),this.line.updateMatrix(),this.cone.scale.set(n,e,n),this.cone.position.y=t,this.cone.updateMatrix()}setColor(t){this.line.material.color.set(t),this.cone.material.color.set(t)}copy(t){return super.copy(t,!1),this.line.copy(t.line),this.cone.copy(t.cone),this}},t.Audio=Kc,t.AudioAnalyser=ih,t.AudioContext=Hc,t.AudioListener=class extends Be{constructor(){super(),this.type="AudioListener",this.context=Hc.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._clock=new qc}getInput(){return this.gain}removeFilter(){return null!==this.filter&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(t){return null!==this.filter?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=t,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(t){return this.gain.gain.setTargetAtTime(t,this.context.currentTime,.01),this}updateMatrixWorld(t){super.updateMatrixWorld(t);const e=this.context.listener,n=this.up;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(Yc,Jc,Zc),Qc.set(0,0,-1).applyQuaternion(Jc),e.positionX){const t=this.context.currentTime+this.timeDelta;e.positionX.linearRampToValueAtTime(Yc.x,t),e.positionY.linearRampToValueAtTime(Yc.y,t),e.positionZ.linearRampToValueAtTime(Yc.z,t),e.forwardX.linearRampToValueAtTime(Qc.x,t),e.forwardY.linearRampToValueAtTime(Qc.y,t),e.forwardZ.linearRampToValueAtTime(Qc.z,t),e.upX.linearRampToValueAtTime(n.x,t),e.upY.linearRampToValueAtTime(n.y,t),e.upZ.linearRampToValueAtTime(n.z,t)}else e.setPosition(Yc.x,Yc.y,Yc.z),e.setOrientation(Qc.x,Qc.y,Qc.z,n.x,n.y,n.z)}},t.AudioLoader=Gc,t.AxesHelper=Qh,t.AxisHelper=function(t){return (""),new Qh(t)},t.BackSide=1,t.BasicDepthPacking=3200,t.BasicShadowMap=0,t.BinaryTextureLoader=function(t){return (""),new hc(t)},t.Bone=Ra,t.BooleanKeyframeTrack=Xl,t.BoundingBoxHelper=function(t,e){return (""),new Xh(t,e)},t.Box2=Th,t.Box3=Ft,t.Box3Helper=class extends Ja{constructor(t,e=16776960){const n=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),i=new Tn;i.setIndex(new on(n,1)),i.setAttribute("position",new gn([1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1],3)),super(i,new Ha({color:e,toneMapped:!1})),this.box=t,this.type="Box3Helper",this.geometry.computeBoundingSphere()}updateMatrixWorld(t){const e=this.box;e.isEmpty()||(e.getCenter(this.position),e.getSize(this.scale),this.scale.multiplyScalar(.5),super.updateMatrixWorld(t))}},t.BoxBufferGeometry=jn,t.BoxGeometry=jn,t.BoxHelper=Xh,t.BufferAttribute=on,t.BufferGeometry=Tn,t.BufferGeometryLoader=Nc,t.ByteType=1010,t.Cache=nc,t.Camera=Zn,t.CameraHelper=class extends Ja{constructor(t){const e=new Tn,n=new Ha({color:16777215,vertexColors:!0,toneMapped:!1}),i=[],r=[],s={},a=new nn(16755200),o=new nn(16711680),l=new nn(43775),c=new nn(16777215),h=new nn(3355443);function u(t,e,n){d(t,n),d(e,n)}function d(t,e){i.push(0,0,0),r.push(e.r,e.g,e.b),void 0===s[t]&&(s[t]=[]),s[t].push(i.length/3-1)}u("n1","n2",a),u("n2","n4",a),u("n4","n3",a),u("n3","n1",a),u("f1","f2",a),u("f2","f4",a),u("f4","f3",a),u("f3","f1",a),u("n1","f1",a),u("n2","f2",a),u("n3","f3",a),u("n4","f4",a),u("p","n1",o),u("p","n2",o),u("p","n3",o),u("p","n4",o),u("u1","u2",l),u("u2","u3",l),u("u3","u1",l),u("c","t",c),u("p","c",h),u("cn1","cn2",h),u("cn3","cn4",h),u("cf1","cf2",h),u("cf3","cf4",h),e.setAttribute("position",new gn(i,3)),e.setAttribute("color",new gn(r,3)),super(e,n),this.type="CameraHelper",this.camera=t,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=s,this.update()}update(){const t=this.geometry,e=this.pointMap;Wh.projectionMatrixInverse.copy(this.camera.projectionMatrixInverse),jh("c",e,t,Wh,0,0,-1),jh("t",e,t,Wh,0,0,1),jh("n1",e,t,Wh,-1,-1,-1),jh("n2",e,t,Wh,1,-1,-1),jh("n3",e,t,Wh,-1,1,-1),jh("n4",e,t,Wh,1,1,-1),jh("f1",e,t,Wh,-1,-1,1),jh("f2",e,t,Wh,1,-1,1),jh("f3",e,t,Wh,-1,1,1),jh("f4",e,t,Wh,1,1,1),jh("u1",e,t,Wh,.7,1.1,-1),jh("u2",e,t,Wh,-.7,1.1,-1),jh("u3",e,t,Wh,0,2,-1),jh("cf1",e,t,Wh,-1,0,1),jh("cf2",e,t,Wh,1,0,1),jh("cf3",e,t,Wh,0,-1,1),jh("cf4",e,t,Wh,0,1,1),jh("cn1",e,t,Wh,-1,0,-1),jh("cn2",e,t,Wh,1,0,-1),jh("cn3",e,t,Wh,0,-1,-1),jh("cn4",e,t,Wh,0,1,-1),t.getAttribute("position").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}},t.CanvasRenderer=function(){("")},t.CanvasTexture=ao,t.CatmullRomCurve3=Ao,t.CineonToneMapping=3,t.CircleBufferGeometry=lo,t.CircleGeometry=lo,t.ClampToEdgeWrapping=u,t.Clock=qc,t.Color=nn,t.ColorKeyframeTrack=Yl,t.CompressedTexture=so,t.CompressedTextureLoader=class extends sc{constructor(t){super(t)}load(t,e,n,i){const r=this,s=[],a=new so,o=new oc(this.manager);o.setPath(this.path),o.setResponseType("arraybuffer"),o.setRequestHeader(this.requestHeader),o.setWithCredentials(r.withCredentials);let l=0;function c(c){o.load(t[c],(function(t){const n=r.parse(t,!0);s[c]={width:n.width,height:n.height,format:n.format,mipmaps:n.mipmaps},l+=1,6===l&&(1===n.mipmapCount&&(a.minFilter=g),a.image=s,a.format=n.format,a.needsUpdate=!0,e&&e(a))}),n,i)}if(Array.isArray(t))for(let e=0,n=t.length;e<n;++e)c(e);else o.load(t,(function(t){const n=r.parse(t,!0);if(n.isCubemap){const t=n.mipmaps.length/n.mipmapCount;for(let e=0;e<t;e++){s[e]={mipmaps:[]};for(let t=0;t<n.mipmapCount;t++)s[e].mipmaps.push(n.mipmaps[e*n.mipmapCount+t]),s[e].format=n.format,s[e].width=n.width,s[e].height=n.height}a.image=s}else a.image.width=n.width,a.image.height=n.height,a.mipmaps=n.mipmaps;1===n.mipmapCount&&(a.minFilter=g),a.format=n.format,a.needsUpdate=!0,e&&e(a)}),n,i);return a}},t.ConeBufferGeometry=ho,t.ConeGeometry=ho,t.CubeCamera=$n,t.CubeReflectionMapping=r,t.CubeRefractionMapping=s,t.CubeTexture=ti,t.CubeTextureLoader=cc,t.CubeUVReflectionMapping=l,t.CubeUVRefractionMapping=c,t.CubicBezierCurve=Po,t.CubicBezierCurve3=Io,t.CubicInterpolant=Vl,t.CullFaceBack=1,t.CullFaceFront=2,t.CullFaceFrontBack=3,t.CullFaceNone=0,t.Curve=xo,t.CurvePath=Uo,t.CustomBlending=5,t.CustomToneMapping=5,t.CylinderBufferGeometry=co,t.CylinderGeometry=co,t.Cylindrical=class{constructor(t=1,e=0,n=0){return this.radius=t,this.theta=e,this.y=n,this}set(t,e,n){return this.radius=t,this.theta=e,this.y=n,this}copy(t){return this.radius=t.radius,this.theta=t.theta,this.y=t.y,this}setFromVector3(t){return this.setFromCartesianCoords(t.x,t.y,t.z)}setFromCartesianCoords(t,e,n){return this.radius=Math.sqrt(t*t+n*n),this.theta=Math.atan2(t,n),this.y=e,this}clone(){return(new this.constructor).copy(this)}},t.DataTexture=Ca,t.DataTexture2DArray=Qi,t.DataTexture3D=ir,t.DataTextureLoader=hc,t.DataUtils=class{static toHalfFloat(t){t>65504&&((""),t=65504),Kh[0]=t;const e=$h[0];let n=e>>16&32768,i=e>>12&2047;const r=e>>23&255;return r<103?n:r>142?(n|=31744,n|=(255==r?0:1)&&8388607&e,n):r<113?(i|=2048,n|=(i>>114-r)+(i>>113-r&1),n):(n|=r-112<<10|i>>1,n+=1&i,n)}},t.DecrementStencilOp=7683,t.DecrementWrapStencilOp=34056,t.DefaultLoadingManager=rc,t.DepthFormat=A,t.DepthStencilFormat=L,t.DepthTexture=oo,t.DirectionalLight=Ec,t.DirectionalLightHelper=class extends Be{constructor(t,e,n){super(),this.light=t,this.light.updateMatrixWorld(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.color=n,void 0===e&&(e=1);let i=new Tn;i.setAttribute("position",new gn([-e,e,0,e,e,0,e,-e,0,-e,-e,0,-e,e,0],3));const r=new Ha({fog:!1,toneMapped:!1});this.lightPlane=new qa(i,r),this.add(this.lightPlane),i=new Tn,i.setAttribute("position",new gn([0,0,0,0,0,1],3)),this.targetLine=new qa(i,r),this.add(this.targetLine),this.update()}dispose(){this.lightPlane.geometry.dispose(),this.lightPlane.material.dispose(),this.targetLine.geometry.dispose(),this.targetLine.material.dispose()}update(){Hh.setFromMatrixPosition(this.light.matrixWorld),Gh.setFromMatrixPosition(this.light.target.matrixWorld),kh.subVectors(Gh,Hh),this.lightPlane.lookAt(Gh),void 0!==this.color?(this.lightPlane.material.color.set(this.color),this.targetLine.material.color.set(this.color)):(this.lightPlane.material.color.copy(this.light.color),this.targetLine.material.color.copy(this.light.color)),this.targetLine.lookAt(Gh),this.targetLine.scale.z=kh.length()}},t.DiscreteInterpolant=jl,t.DodecahedronBufferGeometry=po,t.DodecahedronGeometry=po,t.DoubleSide=2,t.DstAlphaFactor=206,t.DstColorFactor=208,t.DynamicBufferAttribute=function(t,e){return (""),new on(t,e).setUsage(nt)},t.DynamicCopyUsage=35050,t.DynamicDrawUsage=nt,t.DynamicReadUsage=35049,t.EdgesGeometry=yo,t.EdgesHelper=function(t,e){return (""),new Ja(new yo(t.geometry),new Ha({color:void 0!==e?e:16777215}))},t.EllipseCurve=_o,t.EqualDepth=4,t.EqualStencilFunc=514,t.EquirectangularReflectionMapping=a,t.EquirectangularRefractionMapping=o,t.Euler=be,t.EventDispatcher=rt,t.ExtrudeBufferGeometry=gl,t.ExtrudeGeometry=gl,t.FaceColors=1,t.FileLoader=oc,t.FlatShading=1,t.Float16BufferAttribute=fn,t.Float32Attribute=function(t,e){return (""),new gn(t,e)},t.Float32BufferAttribute=gn,t.Float64Attribute=function(t,e){return (""),new vn(t,e)},t.Float64BufferAttribute=vn,t.FloatType=M,t.Fog=$s,t.FogExp2=Ks,t.Font=function(){("")},t.FontLoader=function(){("")},t.FrontSide=0,t.Frustum=li,t.GLBufferAttribute=bh,t.GLSL1="100",t.GLSL3=it,t.GammaEncoding=J,t.GreaterDepth=6,t.GreaterEqualDepth=5,t.GreaterEqualStencilFunc=518,t.GreaterStencilFunc=516,t.GridHelper=Uh,t.Group=js,t.HalfFloatType=w,t.HemisphereLight=pc,t.HemisphereLightHelper=class extends Be{constructor(t,e,n){super(),this.light=t,this.light.updateMatrixWorld(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.color=n;const i=new _l(e);i.rotateY(.5*Math.PI),this.material=new rn({wireframe:!0,fog:!1,toneMapped:!1}),void 0===this.color&&(this.material.vertexColors=!0);const r=i.getAttribute("position"),s=new Float32Array(3*r.count);i.setAttribute("color",new on(s,3)),this.add(new Vn(i,this.material)),this.update()}dispose(){this.children[0].geometry.dispose(),this.children[0].material.dispose()}update(){const t=this.children[0];if(void 0!==this.color)this.material.color.set(this.color);else{const e=t.geometry.getAttribute("color");Fh.copy(this.light.color),Oh.copy(this.light.groundColor);for(let t=0,n=e.count;t<n;t++){const i=t<n/2?Fh:Oh;e.setXYZ(t,i.r,i.g,i.b)}e.needsUpdate=!0}t.lookAt(Bh.setFromMatrixPosition(this.light.matrixWorld).negate())}},t.HemisphereLightProbe=kc,t.IcosahedronBufferGeometry=yl,t.IcosahedronGeometry=yl,t.ImageBitmapLoader=Oc,t.ImageLoader=lc,t.ImageUtils=Tt,t.ImmediateRenderObject=Rh,t.IncrementStencilOp=7682,t.IncrementWrapStencilOp=34055,t.InstancedBufferAttribute=Na,t.InstancedBufferGeometry=Dc,t.InstancedInterleavedBuffer=_h,t.InstancedMesh=Ua,t.Int16Attribute=function(t,e){return (""),new un(t,e)},t.Int16BufferAttribute=un,t.Int32Attribute=function(t,e){return (""),new pn(t,e)},t.Int32BufferAttribute=pn,t.Int8Attribute=function(t,e){return (""),new ln(t,e)},t.Int8BufferAttribute=ln,t.IntType=1013,t.InterleavedBuffer=ea,t.InterleavedBufferAttribute=ia,t.Interpolant=kl,t.InterpolateDiscrete=U,t.InterpolateLinear=H,t.InterpolateSmooth=G,t.InvertStencilOp=5386,t.JSONLoader=function(){("")},t.KeepStencilOp=tt,t.KeyframeTrack=ql,t.LOD=Ma,t.LatheBufferGeometry=xl,t.LatheGeometry=xl,t.Layers=Me,t.LensFlare=function(){("")},t.LessDepth=2,t.LessEqualDepth=3,t.LessEqualStencilFunc=515,t.LessStencilFunc=513,t.Light=dc,t.LightProbe=Cc,t.Line=qa,t.Line3=Lh,t.LineBasicMaterial=Ha,t.LineCurve=Do,t.LineCurve3=No,t.LineDashedMaterial=Ul,t.LineLoop=Za,t.LinePieces=1,t.LineSegments=Ja,t.LineStrip=0,t.LinearEncoding=X,t.LinearFilter=g,t.LinearInterpolant=Wl,t.LinearMipMapLinearFilter=1008,t.LinearMipMapNearestFilter=1007,t.LinearMipmapLinearFilter=y,t.LinearMipmapNearestFilter=v,t.LinearToneMapping=1,t.Loader=sc,t.LoaderUtils=Ic,t.LoadingManager=ic,t.LogLuvEncoding=3003,t.LoopOnce=2200,t.LoopPingPong=2202,t.LoopRepeat=2201,t.LuminanceAlphaFormat=1025,t.LuminanceFormat=1024,t.MOUSE={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},t.Material=Je,t.MaterialLoader=Pc,t.Math=vt,t.MathUtils=vt,t.Matrix3=xt,t.Matrix4=ue,t.MaxEquation=104,t.Mesh=Vn,t.MeshBasicMaterial=rn,t.MeshDepthMaterial=Os,t.MeshDistanceMaterial=Us,t.MeshFaceMaterial=function(t){return (""),t},t.MeshLambertMaterial=Fl,t.MeshMatcapMaterial=Ol,t.MeshNormalMaterial=Bl,t.MeshPhongMaterial=Nl,t.MeshPhysicalMaterial=Dl,t.MeshStandardMaterial=Il,t.MeshToonMaterial=zl,t.MinEquation=103,t.MirroredRepeatWrapping=d,t.MixOperation=1,t.MultiMaterial=function(t=[]){return (""),t.isMultiMaterial=!0,t.materials=t,t.clone=function(){return t.slice()},t},t.MultiplyBlending=4,t.MultiplyOperation=0,t.NearestFilter=p,t.NearestMipMapLinearFilter=1005,t.NearestMipMapNearestFilter=1004,t.NearestMipmapLinearFilter=f,t.NearestMipmapNearestFilter=m,t.NeverDepth=0,t.NeverStencilFunc=512,t.NoBlending=0,t.NoColors=0,t.NoToneMapping=0,t.NormalAnimationBlendMode=j,t.NormalBlending=1,t.NotEqualDepth=7,t.NotEqualStencilFunc=517,t.NumberKeyframeTrack=Jl,t.Object3D=Be,t.ObjectLoader=class extends sc{constructor(t){super(t)}load(t,e,n,i){const r=this,s=""===this.path?Ic.extractUrlBase(t):this.path;this.resourcePath=this.resourcePath||s;const a=new oc(this.manager);a.setPath(this.path),a.setRequestHeader(this.requestHeader),a.setWithCredentials(this.withCredentials),a.load(t,(function(n){let s=null;try{s=JSON.parse(n)}catch(e){return void 0!==i&&i(e),void (""+t+".",e.message)}const a=s.metadata;void 0!==a&&void 0!==a.type&&"geometry"!==a.type.toLowerCase()?r.parse(s,e):(""+t)}),n,i)}async loadAsync(t,e){const n=""===this.path?Ic.extractUrlBase(t):this.path;this.resourcePath=this.resourcePath||n;const i=new oc(this.manager);i.setPath(this.path),i.setRequestHeader(this.requestHeader),i.setWithCredentials(this.withCredentials);const r=await i.loadAsync(t,e),s=JSON.parse(r),a=s.metadata;if(void 0===a||void 0===a.type||"geometry"===a.type.toLowerCase())throw new Error(""+t);return await this.parseAsync(s)}parse(t,e){const n=this.parseAnimations(t.animations),i=this.parseShapes(t.shapes),r=this.parseGeometries(t.geometries,i),s=this.parseImages(t.images,(function(){void 0!==e&&e(l)})),a=this.parseTextures(t.textures,s),o=this.parseMaterials(t.materials,a),l=this.parseObject(t.object,r,o,a,n),c=this.parseSkeletons(t.skeletons,l);if(this.bindSkeletons(l,c),void 0!==e){let t=!1;for(const e in s)if(s[e]instanceof HTMLImageElement){t=!0;break}!1===t&&e(l)}return l}async parseAsync(t){const e=this.parseAnimations(t.animations),n=this.parseShapes(t.shapes),i=this.parseGeometries(t.geometries,n),r=await this.parseImagesAsync(t.images),s=this.parseTextures(t.textures,r),a=this.parseMaterials(t.materials,s),o=this.parseObject(t.object,i,a,s,e),l=this.parseSkeletons(t.skeletons,o);return this.bindSkeletons(o,l),o}parseShapes(t){const e={};if(void 0!==t)for(let n=0,i=t.length;n<i;n++){const i=(new Go).fromJSON(t[n]);e[i.uuid]=i}return e}parseSkeletons(t,e){const n={},i={};if(e.traverse((function(t){t.isBone&&(i[t.uuid]=t)})),void 0!==t)for(let e=0,r=t.length;e<r;e++){const r=(new Da).fromJSON(t[e],i);n[r.uuid]=r}return n}parseGeometries(t,e){const n={};if(void 0!==t){const i=new Nc;for(let r=0,s=t.length;r<s;r++){let s;const a=t[r];switch(a.type){case"BufferGeometry":case"InstancedBufferGeometry":s=i.parse(a);break;case"Geometry":("");break;default:a.type in Cl?s=Cl[a.type].fromJSON(a,e):(`THREE.ObjectLoader: Unsupported geometry type "${a.type}"`)}s.uuid=a.uuid,void 0!==a.name&&(s.name=a.name),!0===s.isBufferGeometry&&void 0!==a.userData&&(s.userData=a.userData),n[a.uuid]=s}}return n}parseMaterials(t,e){const n={},i={};if(void 0!==t){const r=new Pc;r.setTextures(e);for(let e=0,s=t.length;e<s;e++){const s=t[e];if("MultiMaterial"===s.type){const t=[];for(let e=0;e<s.materials.length;e++){const i=s.materials[e];void 0===n[i.uuid]&&(n[i.uuid]=r.parse(i)),t.push(n[i.uuid])}i[s.uuid]=t}else void 0===n[s.uuid]&&(n[s.uuid]=r.parse(s)),i[s.uuid]=n[s.uuid]}}return i}parseAnimations(t){const e={};if(void 0!==t)for(let n=0;n<t.length;n++){const i=t[n],r=tc.parse(i);e[r.uuid]=r}return e}parseImages(t,e){const n=this,i={};let r;function s(t){if("string"==typeof t){const e=t;return function(t){return n.manager.itemStart(t),r.load(t,(function(){n.manager.itemEnd(t)}),void 0,(function(){n.manager.itemError(t),n.manager.itemEnd(t)}))}(/^(\/\/)|([a-z]+:(\/\/)?)/i.test(e)?e:n.resourcePath+e)}return t.data?{data:Mt(t.type,t.data),width:t.width,height:t.height}:null}if(void 0!==t&&t.length>0){const n=new ic(e);r=new lc(n),r.setCrossOrigin(this.crossOrigin);for(let e=0,n=t.length;e<n;e++){const n=t[e],r=n.url;if(Array.isArray(r)){i[n.uuid]=[];for(let t=0,e=r.length;t<e;t++){const e=s(r[t]);null!==e&&(e instanceof HTMLImageElement?i[n.uuid].push(e):i[n.uuid].push(new Ca(e.data,e.width,e.height)))}}else{const t=s(n.url);null!==t&&(i[n.uuid]=t)}}}return i}async parseImagesAsync(t){const e=this,n={};let i;async function r(t){if("string"==typeof t){const n=t,r=/^(\/\/)|([a-z]+:(\/\/)?)/i.test(n)?n:e.resourcePath+n;return await i.loadAsync(r)}return t.data?{data:Mt(t.type,t.data),width:t.width,height:t.height}:null}if(void 0!==t&&t.length>0){i=new lc(this.manager),i.setCrossOrigin(this.crossOrigin);for(let e=0,i=t.length;e<i;e++){const i=t[e],s=i.url;if(Array.isArray(s)){n[i.uuid]=[];for(let t=0,e=s.length;t<e;t++){const e=s[t],a=await r(e);null!==a&&(a instanceof HTMLImageElement?n[i.uuid].push(a):n[i.uuid].push(new Ca(a.data,a.width,a.height)))}}else{const t=await r(i.url);null!==t&&(n[i.uuid]=t)}}}return n}parseTextures(t,e){function n(t,e){return"number"==typeof t?t:(("",t),e[t])}const i={};if(void 0!==t)for(let r=0,s=t.length;r<s;r++){const s=t[r];let a;void 0===s.image&&('',s.uuid),void 0===e[s.image]&&("",s.image);const o=e[s.image];Array.isArray(o)?(a=new ti(o),6===o.length&&(a.needsUpdate=!0)):(a=o&&o.data?new Ca(o.data,o.width,o.height):new At(o),o&&(a.needsUpdate=!0)),a.uuid=s.uuid,void 0!==s.name&&(a.name=s.name),void 0!==s.mapping&&(a.mapping=n(s.mapping,zc)),void 0!==s.offset&&a.offset.fromArray(s.offset),void 0!==s.repeat&&a.repeat.fromArray(s.repeat),void 0!==s.center&&a.center.fromArray(s.center),void 0!==s.rotation&&(a.rotation=s.rotation),void 0!==s.wrap&&(a.wrapS=n(s.wrap[0],Bc),a.wrapT=n(s.wrap[1],Bc)),void 0!==s.format&&(a.format=s.format),void 0!==s.type&&(a.type=s.type),void 0!==s.encoding&&(a.encoding=s.encoding),void 0!==s.minFilter&&(a.minFilter=n(s.minFilter,Fc)),void 0!==s.magFilter&&(a.magFilter=n(s.magFilter,Fc)),void 0!==s.anisotropy&&(a.anisotropy=s.anisotropy),void 0!==s.flipY&&(a.flipY=s.flipY),void 0!==s.premultiplyAlpha&&(a.premultiplyAlpha=s.premultiplyAlpha),void 0!==s.unpackAlignment&&(a.unpackAlignment=s.unpackAlignment),i[s.uuid]=a}return i}parseObject(t,e,n,i,r){let s,a,o;function l(t){return void 0===e[t]&&("",t),e[t]}function c(t){if(void 0!==t){if(Array.isArray(t)){const e=[];for(let i=0,r=t.length;i<r;i++){const r=t[i];void 0===n[r]&&("",r),e.push(n[r])}return e}return void 0===n[t]&&("",t),n[t]}}function h(t){return void 0===i[t]&&("",t),i[t]}switch(t.type){case"Scene":s=new ta,void 0!==t.background&&(Number.isInteger(t.background)?s.background=new nn(t.background):s.background=h(t.background)),void 0!==t.environment&&(s.environment=h(t.environment)),void 0!==t.fog&&("Fog"===t.fog.type?s.fog=new $s(t.fog.color,t.fog.near,t.fog.far):"FogExp2"===t.fog.type&&(s.fog=new Ks(t.fog.color,t.fog.density)));break;case"PerspectiveCamera":s=new Qn(t.fov,t.aspect,t.near,t.far),void 0!==t.focus&&(s.focus=t.focus),void 0!==t.zoom&&(s.zoom=t.zoom),void 0!==t.filmGauge&&(s.filmGauge=t.filmGauge),void 0!==t.filmOffset&&(s.filmOffset=t.filmOffset),void 0!==t.view&&(s.view=Object.assign({},t.view));break;case"OrthographicCamera":s=new bi(t.left,t.right,t.top,t.bottom,t.near,t.far),void 0!==t.zoom&&(s.zoom=t.zoom),void 0!==t.view&&(s.view=Object.assign({},t.view));break;case"AmbientLight":s=new Ac(t.color,t.intensity);break;case"DirectionalLight":s=new Ec(t.color,t.intensity);break;case"PointLight":s=new Sc(t.color,t.intensity,t.distance,t.decay);break;case"RectAreaLight":s=new Lc(t.color,t.intensity,t.width,t.height);break;case"SpotLight":s=new xc(t.color,t.intensity,t.distance,t.angle,t.penumbra,t.decay);break;case"HemisphereLight":s=new pc(t.color,t.groundColor,t.intensity);break;case"LightProbe":s=(new Cc).fromJSON(t);break;case"SkinnedMesh":a=l(t.geometry),o=c(t.material),s=new La(a,o),void 0!==t.bindMode&&(s.bindMode=t.bindMode),void 0!==t.bindMatrix&&s.bindMatrix.fromArray(t.bindMatrix),void 0!==t.skeleton&&(s.skeleton=t.skeleton);break;case"Mesh":a=l(t.geometry),o=c(t.material),s=new Vn(a,o);break;case"InstancedMesh":a=l(t.geometry),o=c(t.material);const e=t.count,n=t.instanceMatrix,i=t.instanceColor;s=new Ua(a,o,e),s.instanceMatrix=new Na(new Float32Array(n.array),16),void 0!==i&&(s.instanceColor=new Na(new Float32Array(i.array),i.itemSize));break;case"LOD":s=new Ma;break;case"Line":s=new qa(l(t.geometry),c(t.material));break;case"LineLoop":s=new Za(l(t.geometry),c(t.material));break;case"LineSegments":s=new Ja(l(t.geometry),c(t.material));break;case"PointCloud":case"Points":s=new no(l(t.geometry),c(t.material));break;case"Sprite":s=new ya(c(t.material));break;case"Group":s=new js;break;case"Bone":s=new Ra;break;default:s=new Be}if(s.uuid=t.uuid,void 0!==t.name&&(s.name=t.name),void 0!==t.matrix?(s.matrix.fromArray(t.matrix),void 0!==t.matrixAutoUpdate&&(s.matrixAutoUpdate=t.matrixAutoUpdate),s.matrixAutoUpdate&&s.matrix.decompose(s.position,s.quaternion,s.scale)):(void 0!==t.position&&s.position.fromArray(t.position),void 0!==t.rotation&&s.rotation.fromArray(t.rotation),void 0!==t.quaternion&&s.quaternion.fromArray(t.quaternion),void 0!==t.scale&&s.scale.fromArray(t.scale)),void 0!==t.castShadow&&(s.castShadow=t.castShadow),void 0!==t.receiveShadow&&(s.receiveShadow=t.receiveShadow),t.shadow&&(void 0!==t.shadow.bias&&(s.shadow.bias=t.shadow.bias),void 0!==t.shadow.normalBias&&(s.shadow.normalBias=t.shadow.normalBias),void 0!==t.shadow.radius&&(s.shadow.radius=t.shadow.radius),void 0!==t.shadow.mapSize&&s.shadow.mapSize.fromArray(t.shadow.mapSize),void 0!==t.shadow.camera&&(s.shadow.camera=this.parseObject(t.shadow.camera))),void 0!==t.visible&&(s.visible=t.visible),void 0!==t.frustumCulled&&(s.frustumCulled=t.frustumCulled),void 0!==t.renderOrder&&(s.renderOrder=t.renderOrder),void 0!==t.userData&&(s.userData=t.userData),void 0!==t.layers&&(s.layers.mask=t.layers),void 0!==t.children){const a=t.children;for(let t=0;t<a.length;t++)s.add(this.parseObject(a[t],e,n,i,r))}if(void 0!==t.animations){const e=t.animations;for(let t=0;t<e.length;t++){const n=e[t];s.animations.push(r[n])}}if("LOD"===t.type){void 0!==t.autoUpdate&&(s.autoUpdate=t.autoUpdate);const e=t.levels;for(let t=0;t<e.length;t++){const n=e[t],i=s.getObjectByProperty("uuid",n.object);void 0!==i&&s.addLevel(i,n.distance)}}return s}bindSkeletons(t,e){0!==Object.keys(e).length&&t.traverse((function(t){if(!0===t.isSkinnedMesh&&void 0!==t.skeleton){const n=e[t.skeleton];void 0===n?("",t.skeleton):t.bind(n,t.bindMatrix)}}))}setTexturePath(t){return (""),this.setResourcePath(t)}},t.ObjectSpaceNormalMap=1,t.OctahedronBufferGeometry=_l,t.OctahedronGeometry=_l,t.OneFactor=201,t.OneMinusDstAlphaFactor=207,t.OneMinusDstColorFactor=209,t.OneMinusSrcAlphaFactor=205,t.OneMinusSrcColorFactor=203,t.OrthographicCamera=bi,t.PCFShadowMap=1,t.PCFSoftShadowMap=2,t.PMREMGenerator=Fi,t.ParametricGeometry=function(){return (""),new Tn},t.Particle=function(t){return (""),new ya(t)},t.ParticleBasicMaterial=function(t){return (""),new Qa(t)},t.ParticleSystem=function(t,e){return (""),new no(t,e)},t.ParticleSystemMaterial=function(t){return (""),new Qa(t)},t.Path=Ho,t.PerspectiveCamera=Qn,t.Plane=si,t.PlaneBufferGeometry=ui,t.PlaneGeometry=ui,t.PlaneHelper=class extends qa{constructor(t,e=1,n=16776960){const i=n,r=new Tn;r.setAttribute("position",new gn([1,-1,1,-1,1,1,-1,-1,1,1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,1,0,0,1,0,0,0],3)),r.computeBoundingSphere(),super(r,new Ha({color:i,toneMapped:!1})),this.type="PlaneHelper",this.plane=t,this.size=e;const s=new Tn;s.setAttribute("position",new gn([1,1,1,-1,1,1,-1,-1,1,1,1,1,-1,-1,1,1,-1,1],3)),s.computeBoundingSphere(),this.add(new Vn(s,new rn({color:i,opacity:.2,transparent:!0,depthWrite:!1,toneMapped:!1})))}updateMatrixWorld(t){let e=-this.plane.constant;Math.abs(e)<1e-8&&(e=1e-8),this.scale.set(.5*this.size,.5*this.size,e),this.children[0].material.side=e<0?1:0,this.lookAt(this.plane.normal),super.updateMatrixWorld(t)}},t.PointCloud=function(t,e){return (""),new no(t,e)},t.PointCloudMaterial=function(t){return (""),new Qa(t)},t.PointLight=Sc,t.PointLightHelper=class extends Vn{constructor(t,e,n){super(new wl(e,4,2),new rn({wireframe:!0,fog:!1,toneMapped:!1})),this.light=t,this.light.updateMatrixWorld(),this.color=n,this.type="PointLightHelper",this.matrix=this.light.matrixWorld,this.matrixAutoUpdate=!1,this.update()}dispose(){this.geometry.dispose(),this.material.dispose()}update(){void 0!==this.color?this.material.color.set(this.color):this.material.color.copy(this.light.color)}},t.Points=no,t.PointsMaterial=Qa,t.PolarGridHelper=class extends Ja{constructor(t=10,e=16,n=8,i=64,r=4473924,s=8947848){r=new nn(r),s=new nn(s);const a=[],o=[];for(let n=0;n<=e;n++){const i=n/e*(2*Math.PI),l=Math.sin(i)*t,c=Math.cos(i)*t;a.push(0,0,0),a.push(l,0,c);const h=1&n?r:s;o.push(h.r,h.g,h.b),o.push(h.r,h.g,h.b)}for(let e=0;e<=n;e++){const l=1&e?r:s,c=t-t/n*e;for(let t=0;t<i;t++){let e=t/i*(2*Math.PI),n=Math.sin(e)*c,r=Math.cos(e)*c;a.push(n,0,r),o.push(l.r,l.g,l.b),e=(t+1)/i*(2*Math.PI),n=Math.sin(e)*c,r=Math.cos(e)*c,a.push(n,0,r),o.push(l.r,l.g,l.b)}}const l=new Tn;l.setAttribute("position",new gn(a,3)),l.setAttribute("color",new gn(o,3));super(l,new Ha({vertexColors:!0,toneMapped:!1})),this.type="PolarGridHelper"}},t.PolyhedronBufferGeometry=uo,t.PolyhedronGeometry=uo,t.PositionalAudio=class extends Kc{constructor(t){super(t),this.panner=this.context.createPanner(),this.panner.panningModel="HRTF",this.panner.connect(this.gain)}getOutput(){return this.panner}getRefDistance(){return this.panner.refDistance}setRefDistance(t){return this.panner.refDistance=t,this}getRolloffFactor(){return this.panner.rolloffFactor}setRolloffFactor(t){return this.panner.rolloffFactor=t,this}getDistanceModel(){return this.panner.distanceModel}setDistanceModel(t){return this.panner.distanceModel=t,this}getMaxDistance(){return this.panner.maxDistance}setMaxDistance(t){return this.panner.maxDistance=t,this}setDirectionalCone(t,e,n){return this.panner.coneInnerAngle=t,this.panner.coneOuterAngle=e,this.panner.coneOuterGain=n,this}updateMatrixWorld(t){if(super.updateMatrixWorld(t),!0===this.hasPlaybackControl&&!1===this.isPlaying)return;this.matrixWorld.decompose($c,th,eh),nh.set(0,0,1).applyQuaternion(th);const e=this.panner;if(e.positionX){const t=this.context.currentTime+this.listener.timeDelta;e.positionX.linearRampToValueAtTime($c.x,t),e.positionY.linearRampToValueAtTime($c.y,t),e.positionZ.linearRampToValueAtTime($c.z,t),e.orientationX.linearRampToValueAtTime(nh.x,t),e.orientationY.linearRampToValueAtTime(nh.y,t),e.orientationZ.linearRampToValueAtTime(nh.z,t)}else e.setPosition($c.x,$c.y,$c.z),e.setOrientation(nh.x,nh.y,nh.z)}},t.PropertyBinding=fh,t.PropertyMixer=rh,t.QuadraticBezierCurve=zo,t.QuadraticBezierCurve3=Bo,t.Quaternion=Dt,t.QuaternionKeyframeTrack=Ql,t.QuaternionLinearInterpolant=Zl,t.REVISION=e,t.RGBADepthPacking=3201,t.RGBAFormat=E,t.RGBAIntegerFormat=1033,t.RGBA_ASTC_10x10_Format=37819,t.RGBA_ASTC_10x5_Format=37816,t.RGBA_ASTC_10x6_Format=37817,t.RGBA_ASTC_10x8_Format=37818,t.RGBA_ASTC_12x10_Format=37820,t.RGBA_ASTC_12x12_Format=37821,t.RGBA_ASTC_4x4_Format=37808,t.RGBA_ASTC_5x4_Format=37809,t.RGBA_ASTC_5x5_Format=37810,t.RGBA_ASTC_6x5_Format=37811,t.RGBA_ASTC_6x6_Format=37812,t.RGBA_ASTC_8x5_Format=37813,t.RGBA_ASTC_8x6_Format=37814,t.RGBA_ASTC_8x8_Format=37815,t.RGBA_BPTC_Format=36492,t.RGBA_ETC2_EAC_Format=O,t.RGBA_PVRTC_2BPPV1_Format=B,t.RGBA_PVRTC_4BPPV1_Format=z,t.RGBA_S3TC_DXT1_Format=C,t.RGBA_S3TC_DXT3_Format=P,t.RGBA_S3TC_DXT5_Format=I,t.RGBDEncoding=$,t.RGBEEncoding=Z,t.RGBEFormat=1023,t.RGBFormat=T,t.RGBIntegerFormat=1032,t.RGBM16Encoding=K,t.RGBM7Encoding=Q,t.RGB_ETC1_Format=36196,t.RGB_ETC2_Format=F,t.RGB_PVRTC_2BPPV1_Format=N,t.RGB_PVRTC_4BPPV1_Format=D,t.RGB_S3TC_DXT1_Format=R,t.RGFormat=1030,t.RGIntegerFormat=1031,t.RawShaderMaterial=Mi,t.Ray=he,t.Raycaster=class{constructor(t,e,n=0,i=1/0){this.ray=new he(t,e),this.near=n,this.far=i,this.camera=null,this.layers=new Me,this.params={Mesh:{},Line:{threshold:1},LOD:{},Points:{threshold:1},Sprite:{}}}set(t,e){this.ray.set(t,e)}setFromCamera(t,e){e&&e.isPerspectiveCamera?(this.ray.origin.setFromMatrixPosition(e.matrixWorld),this.ray.direction.set(t.x,t.y,.5).unproject(e).sub(this.ray.origin).normalize(),this.camera=e):e&&e.isOrthographicCamera?(this.ray.origin.set(t.x,t.y,(e.near+e.far)/(e.near-e.far)).unproject(e),this.ray.direction.set(0,0,-1).transformDirection(e.matrixWorld),this.camera=e):(""+e.type)}intersectObject(t,e=!0,n=[]){return wh(t,this,n,e),n.sort(Mh),n}intersectObjects(t,e=!0,n=[]){for(let i=0,r=t.length;i<r;i++)wh(t[i],this,n,e);return n.sort(Mh),n}},t.RectAreaLight=Lc,t.RedFormat=1028,t.RedIntegerFormat=1029,t.ReinhardToneMapping=2,t.RepeatWrapping=h,t.ReplaceStencilOp=7681,t.ReverseSubtractEquation=102,t.RingBufferGeometry=bl,t.RingGeometry=bl,t.SRGB8_ALPHA8_ASTC_10x10_Format=37851,t.SRGB8_ALPHA8_ASTC_10x5_Format=37848,t.SRGB8_ALPHA8_ASTC_10x6_Format=37849,t.SRGB8_ALPHA8_ASTC_10x8_Format=37850,t.SRGB8_ALPHA8_ASTC_12x10_Format=37852,t.SRGB8_ALPHA8_ASTC_12x12_Format=37853,t.SRGB8_ALPHA8_ASTC_4x4_Format=37840,t.SRGB8_ALPHA8_ASTC_5x4_Format=37841,t.SRGB8_ALPHA8_ASTC_5x5_Format=37842,t.SRGB8_ALPHA8_ASTC_6x5_Format=37843,t.SRGB8_ALPHA8_ASTC_6x6_Format=37844,t.SRGB8_ALPHA8_ASTC_8x5_Format=37845,t.SRGB8_ALPHA8_ASTC_8x6_Format=37846,t.SRGB8_ALPHA8_ASTC_8x8_Format=37847,t.Scene=ta,t.SceneUtils=tu,t.ShaderChunk=di,t.ShaderLib=mi,t.ShaderMaterial=Jn,t.ShadowMaterial=Pl,t.Shape=Go,t.ShapeBufferGeometry=Ml,t.ShapeGeometry=Ml,t.ShapePath=class{constructor(){this.type="ShapePath",this.color=new nn,this.subPaths=[],this.currentPath=null}moveTo(t,e){return this.currentPath=new Ho,this.subPaths.push(this.currentPath),this.currentPath.moveTo(t,e),this}lineTo(t,e){return this.currentPath.lineTo(t,e),this}quadraticCurveTo(t,e,n,i){return this.currentPath.quadraticCurveTo(t,e,n,i),this}bezierCurveTo(t,e,n,i,r,s){return this.currentPath.bezierCurveTo(t,e,n,i,r,s),this}splineThru(t){return this.currentPath.splineThru(t),this}toShapes(t,e){function n(t){const e=[];for(let n=0,i=t.length;n<i;n++){const i=t[n],r=new Go;r.curves=i.curves,e.push(r)}return e}function i(t,e){const n=e.length;let i=!1;for(let r=n-1,s=0;s<n;r=s++){let n=e[r],a=e[s],o=a.x-n.x,l=a.y-n.y;if(Math.abs(l)>Number.EPSILON){if(l<0&&(n=e[s],o=-o,a=e[r],l=-l),t.y<n.y||t.y>a.y)continue;if(t.y===n.y){if(t.x===n.x)return!0}else{const e=l*(t.x-n.x)-o*(t.y-n.y);if(0===e)return!0;if(e<0)continue;i=!i}}else{if(t.y!==n.y)continue;if(a.x<=t.x&&t.x<=n.x||n.x<=t.x&&t.x<=a.x)return!0}}return i}const r=pl.isClockWise,s=this.subPaths;if(0===s.length)return[];if(!0===e)return n(s);let a,o,l;const c=[];if(1===s.length)return o=s[0],l=new Go,l.curves=o.curves,c.push(l),c;let h=!r(s[0].getPoints());h=t?!h:h;const u=[],d=[];let p,m,f=[],g=0;d[g]=void 0,f[g]=[];for(let e=0,n=s.length;e<n;e++)o=s[e],p=o.getPoints(),a=r(p),a=t?!a:a,a?(!h&&d[g]&&g++,d[g]={s:new Go,p:p},d[g].s.curves=o.curves,h&&g++,f[g]=[]):f[g].push({h:o,p:p[0]});if(!d[0])return n(s);if(d.length>1){let t=!1;const e=[];for(let t=0,e=d.length;t<e;t++)u[t]=[];for(let n=0,r=d.length;n<r;n++){const r=f[n];for(let s=0;s<r.length;s++){const a=r[s];let o=!0;for(let r=0;r<d.length;r++)i(a.p,d[r].p)&&(n!==r&&e.push({froms:n,tos:r,hole:s}),o?(o=!1,u[r].push(a)):t=!0);o&&u[n].push(a)}}e.length>0&&(t||(f=u))}for(let t=0,e=d.length;t<e;t++){l=d[t].s,c.push(l),m=f[t];for(let t=0,e=m.length;t<e;t++)l.holes.push(m[t].h)}return c}},t.ShapeUtils=pl,t.ShortType=1011,t.Skeleton=Da,t.SkeletonHelper=Nh,t.SkinnedMesh=La,t.SmoothShading=2,t.Sphere=ne,t.SphereBufferGeometry=wl,t.SphereGeometry=wl,t.Spherical=class{constructor(t=1,e=0,n=0){return this.radius=t,this.phi=e,this.theta=n,this}set(t,e,n){return this.radius=t,this.phi=e,this.theta=n,this}copy(t){return this.radius=t.radius,this.phi=t.phi,this.theta=t.theta,this}makeSafe(){const t=1e-6;return this.phi=Math.max(t,Math.min(Math.PI-t,this.phi)),this}setFromVector3(t){return this.setFromCartesianCoords(t.x,t.y,t.z)}setFromCartesianCoords(t,e,n){return this.radius=Math.sqrt(t*t+e*e+n*n),0===this.radius?(this.theta=0,this.phi=0):(this.theta=Math.atan2(t,n),this.phi=Math.acos(ut(e/this.radius,-1,1))),this}clone(){return(new this.constructor).copy(this)}},t.SphericalHarmonics3=Rc,t.SplineCurve=Fo,t.SpotLight=xc,t.SpotLightHelper=class extends Be{constructor(t,e){super(),this.light=t,this.light.updateMatrixWorld(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.color=e;const n=new Tn,i=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let t=0,e=1,n=32;t<n;t++,e++){const r=t/n*Math.PI*2,s=e/n*Math.PI*2;i.push(Math.cos(r),Math.sin(r),1,Math.cos(s),Math.sin(s),1)}n.setAttribute("position",new gn(i,3));const r=new Ha({fog:!1,toneMapped:!1});this.cone=new Ja(n,r),this.add(this.cone),this.update()}dispose(){this.cone.geometry.dispose(),this.cone.material.dispose()}update(){this.light.updateMatrixWorld();const t=this.light.distance?this.light.distance:1e3,e=t*Math.tan(this.light.angle);this.cone.scale.set(e,e,t),Ch.setFromMatrixPosition(this.light.target.matrixWorld),this.cone.lookAt(Ch),void 0!==this.color?this.cone.material.color.set(this.color):this.cone.material.color.copy(this.light.color)}},t.Sprite=ya,t.SpriteMaterial=ra,t.SrcAlphaFactor=204,t.SrcAlphaSaturateFactor=210,t.SrcColorFactor=202,t.StaticCopyUsage=35046,t.StaticDrawUsage=et,t.StaticReadUsage=35045,t.StereoCamera=class{constructor(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new Qn,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new Qn,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1,this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}update(t){const e=this._cache;if(e.focus!==t.focus||e.fov!==t.fov||e.aspect!==t.aspect*this.aspect||e.near!==t.near||e.far!==t.far||e.zoom!==t.zoom||e.eyeSep!==this.eyeSep){e.focus=t.focus,e.fov=t.fov,e.aspect=t.aspect*this.aspect,e.near=t.near,e.far=t.far,e.zoom=t.zoom,e.eyeSep=this.eyeSep;const n=t.projectionMatrix.clone(),i=e.eyeSep/2,r=i*e.near/e.focus,s=e.near*Math.tan(at*e.fov*.5)/e.zoom;let a,o;jc.elements[12]=-i,Wc.elements[12]=i,a=-s*e.aspect+r,o=s*e.aspect+r,n.elements[0]=2*e.near/(o-a),n.elements[8]=(o+a)/(o-a),this.cameraL.projectionMatrix.copy(n),a=-s*e.aspect-r,o=s*e.aspect-r,n.elements[0]=2*e.near/(o-a),n.elements[8]=(o+a)/(o-a),this.cameraR.projectionMatrix.copy(n)}this.cameraL.matrixWorld.copy(t.matrixWorld).multiply(jc),this.cameraR.matrixWorld.copy(t.matrixWorld).multiply(Wc)}},t.StreamCopyUsage=35042,t.StreamDrawUsage=35040,t.StreamReadUsage=35041,t.StringKeyframeTrack=Kl,t.SubtractEquation=101,t.SubtractiveBlending=3,t.TOUCH={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},t.TangentSpaceNormalMap=0,t.TetrahedronBufferGeometry=Sl,t.TetrahedronGeometry=Sl,t.TextGeometry=function(){return (""),new Tn},t.Texture=At,t.TextureLoader=uc,t.TorusBufferGeometry=Tl,t.TorusGeometry=Tl,t.TorusKnotBufferGeometry=El,t.TorusKnotGeometry=El,t.Triangle=Xe,t.TriangleFanDrawMode=2,t.TriangleStripDrawMode=1,t.TrianglesDrawMode=0,t.TubeBufferGeometry=Al,t.TubeGeometry=Al,t.UVMapping=i,t.Uint16Attribute=function(t,e){return (""),new dn(t,e)},t.Uint16BufferAttribute=dn,t.Uint32Attribute=function(t,e){return (""),new mn(t,e)},t.Uint32BufferAttribute=mn,t.Uint8Attribute=function(t,e){return (""),new cn(t,e)},t.Uint8BufferAttribute=cn,t.Uint8ClampedAttribute=function(t,e){return (""),new hn(t,e)},t.Uint8ClampedBufferAttribute=hn,t.Uniform=xh,t.UniformsLib=pi,t.UniformsUtils=Yn,t.UnsignedByteType=x,t.UnsignedInt248Type=S,t.UnsignedIntType=b,t.UnsignedShort4444Type=1017,t.UnsignedShort5551Type=1018,t.UnsignedShort565Type=1019,t.UnsignedShortType=_,t.VSMShadowMap=3,t.Vector2=yt,t.Vector3=Nt,t.Vector4=Rt,t.VectorKeyframeTrack=$l,t.Vertex=function(t,e,n){return (""),new Nt(t,e,n)},t.VertexColors=2,t.VideoTexture=ro,t.WebGL1Renderer=Qs,t.WebGLCubeRenderTarget=ei,t.WebGLMultipleRenderTargets=Pt,t.WebGLMultisampleRenderTarget=It,t.WebGLRenderTarget=Ct,t.WebGLRenderTargetCube=function(t,e,n){return (""),new ei(t,n)},t.WebGLRenderer=Zs,t.WebGLUtils=Vs,t.WireframeGeometry=Ll,t.WireframeHelper=function(t,e){return (""),new Ja(new Ll(t.geometry),new Ha({color:void 0!==e?e:16777215}))},t.WrapAroundEnding=W,t.XHRLoader=function(t){return (""),new oc(t)},t.ZeroCurvatureEnding=k,t.ZeroFactor=200,t.ZeroSlopeEnding=V,t.ZeroStencilOp=0,t.sRGBEncoding=Y,Object.defineProperty(t,"__esModule",{value:!0})}));function Earth(element,options){if(typeof element=="string"){element=document.getElementById(element)}
if(!element){return!1}
if(!Earth.isSupported(options.legacySupportIE11)){element.classList.add("earth-show-fallback");return!1}
var fallback=element.querySelector(".earth-fallback");if(fallback)fallback.style.display="none";if(!Earth.cssAdded&&Earth.css){Earth.addCss();Earth.cssAdded=!0}
if(!Earth.meshesAdded&&Earth.markerObj){Earth.addMesh(Earth.markerObj);Earth.meshesAdded=!0}
element.classList.add("earth-container");element.earth=this;this.element=element;var defaults={isEarth:!0,quality:this.getQuality(),location:{lat:0,lng:0},mapLandColor:'#F4F4F4',mapSeaColor:'#0099FF',mapBorderColor:'',mapBorderWidth:0.3,mapStyles:'',mapSvg:'',mapImage:'',draggable:!0,grabCursor:!0,dragMomentum:!0,dragDamping:0.7,dragPolarLimit:0.3,polarLimit:0.3,autoRotate:!1,autoRotateSpeed:1,autoRotateSpeedUp:0,autoRotateDelay:1000,autoRotateStart:1000,autoRotateEasing:'in-quad',zoom:1,zoomable:!1,zoomMin:0.5,zoomMax:1.25,zoomSpeed:1,light:'simple',lightAmbience:(options.light=='none')?1:0.5,lightIntensity:0.5,lightColor:'#FFFFFF',lightGroundColor:'#999999',sunLocation:{lat:0,lng:0},sunDirection:!1,shadows:(options.light=='sun'),shininess:0.1,transparent:!1,innerOpacity:1,innerColor:'#FFFFFF',paused:!1,showHotspots:!1,mapHitTest:!1,};this.options=Object.assign(defaults,options);this.animations=[];this.overlays=[];this.occludables=[];this.ready=!1;this.deltaTime=0;this.goAnimation=null;this.zoomAnimation=null;this.dragging=!1;this.autoRotating=!1;this.autoRotateTime=0;this.mouseOver=!1;this.mouseOverEarth=!1;this.mouseOverObject=null;this.docMousePosition=!1;this.lastDocMousePosition=!1;this.mousePosition=!1;this.lastMousePosition=!1;this.lastMouseTime=0;this.mouseVelocity=new THREE.Vector2();this.momentum=new THREE.Vector2();this.elementSize=new THREE.Vector2();this.elementCenter=new THREE.Vector2();this.bounds={left:0,top:0,bottom:0,right:0,width:1,height:1};this.radius=0;this.init();return this}
Earth.ClassicEventDispatcher=function(){};Object.assign(Earth.ClassicEventDispatcher.prototype,{addEventListener:function(type,listener){if(this._listeners===undefined)this._listeners={};const listeners=this._listeners;if(listeners[type]===undefined){listeners[type]=[]}
if(listeners[type].indexOf(listener)===-1){listeners[type].push(listener)}},hasEventListener:function(type,listener){if(this._listeners===undefined)return!1;const listeners=this._listeners;return listeners[type]!==undefined&&listeners[type].indexOf(listener)!==-1},removeEventListener:function(type,listener){if(this._listeners===undefined)return;const listeners=this._listeners;const listenerArray=listeners[type];if(listenerArray!==undefined){const index=listenerArray.indexOf(listener);if(index!==-1){listenerArray.splice(index,1)}}},dispatchEvent:function(event){if(this._listeners===undefined)return;const listeners=this._listeners;const listenerArray=listeners[event.type];if(listenerArray!==undefined){event.target=this;const array=listenerArray.slice(0);for(let i=0,l=array.length;i<l;i ++){array[i].call(this,event)}}}});Object.assign(Earth.prototype,Earth.ClassicEventDispatcher.prototype);Earth.prototype.init=function(){this.clock=new THREE.Clock();this.raycaster=new THREE.Raycaster();this.scene=new THREE.Scene();this.camera=new THREE.PerspectiveCamera(50,1,1,2000);this.camera.position.z=Earth.camDistance;this.scene.add(this.camera);this.renderer=new THREE.WebGLRenderer({alpha:!0,antialias:!0,preserveDrawingBuffer:(this.options.preserveDrawingBuffer)?!0:!1});if(this.options.shadows){this.renderer.shadowMap.enabled=!0;this.renderer.shadowMap.type=THREE.PCFSoftShadowMap}
this.renderer.setPixelRatio(window.devicePixelRatio);this.canvas=this.renderer.domElement;this.element.appendChild(this.canvas);if(!Earth.capabilitiesChecked)Earth.checkCapabilities(this.renderer);this.sphere=new THREE.Mesh(new THREE.SphereBufferGeometry(Earth.earthRadius,this.options.quality*16,this.options.quality*12),new THREE.MeshBasicMaterial({visible:!1}));this.sphere.renderOrder=-2;if(this.options.shadows){this.sphere.receiveShadow=!0;this.sphere.castShadow=!0}
this.scene.add(this.sphere);if(this.options.transparent){this.innerSphere=new THREE.Mesh(new THREE.SphereBufferGeometry(Earth.earthRadius,this.options.quality*16,this.options.quality*12),new THREE.MeshBasicMaterial({visible:!1}));this.innerSphere.renderOrder=-3;this.sphere.add(this.innerSphere)}
this.loadTexture();this.ambientLight=new THREE.AmbientLight(0xFFFFFF,this.options.lightAmbience);this.scene.add(this.ambientLight);if(this.options.light=='simple'){this.primaryLight=new THREE.HemisphereLight(new THREE.Color(this.options.lightColor),new THREE.Color(this.options.lightGroundColor),this.options.lightIntensity);this.scene.add(this.primaryLight)}else if(this.options.light=='sun'){this.primaryLight=new THREE.DirectionalLight(new THREE.Color(this.options.lightColor),this.options.lightIntensity);if(this.options.shadows){this.primaryLight.castShadow=!0;this.primaryLight.shadow.mapSize.width=this.primaryLight.shadow.mapSize.height=Earth.shadowSize[this.options.quality];var d=25;this.primaryLight.shadow.camera.left=-d;this.primaryLight.shadow.camera.right=d;this.primaryLight.shadow.camera.top=d;this.primaryLight.shadow.camera.bottom=-d;this.primaryLight.shadow.camera.far=3000;this.primaryLight.shadow.bias=0.0001}
this.scene.add(this.primaryLight)}
var dragStartMousePosition;var ignoreClicks=!1;var lastTouchStart;var clickHandler=(function(event){if(this.paused)return;if(ignoreClicks&&event.type=='click')return;var touchEndClick=!1;if(event.type=='touchstart'||event.type=='touchend'){if(event.touches.length>1)return;var x=event.changedTouches[0].clientX,y=event.changedTouches[0].clientY;if(event.type=='touchstart'){var type='mousedown';lastTouchStart=new THREE.Vector2(x,y)}else if(event.type=='touchend'){var type='mouseup';touchEndClick=!ignoreClicks&&lastTouchStart&&lastTouchStart.distanceTo(new THREE.Vector2(x,y))<Earth.maxClickDistance}}else{var type=event.type;var x=event.clientX,y=event.clientY}
var mouse=Earth.normalizeMouse(this,x,y);var intersects=this.raycast(mouse);var intersect_sphere=!1;for(var i=0;i<intersects.length;i++){if(intersects[i].object==this.sphere){var uv=intersects[i].uv;intersects[i].object.material.map.transformUv(uv);var mouseEvent={type:type,x:mouse.x,y:mouse.y,location:Earth.uvToLatLng(uv),originalEvent:event};if(this.mapHitTest){mouseEvent.id=this.hitTestMap(uv)}
this.dispatchEvent(mouseEvent);if(touchEndClick){mouseEvent.type='click';this.dispatchEvent(mouseEvent)}
intersect_sphere=!0}else if(intersects[i].object.userData.marker&&intersects[i].object.userData.marker.hotspot){if(!intersect_sphere||(intersects[i].object.userData.marker.isSprite&&!intersects[i].object.userData.marker.occluded)){if(type=='mousedown'&&Earth.hasEvent(intersects[i].object.userData.marker,['mousedown'])){intersects[i].object.userData.marker.dispatchEvent({type:"mousedown",originalEvent:event});event.stopImmediatePropagation();event.preventDefault();break}else if(type=='mouseup'&&Earth.hasEvent(intersects[i].object.userData.marker,['mouseup'])){intersects[i].object.userData.marker.dispatchEvent({type:"mouseup"});if(touchEndClick){intersects[i].object.userData.marker.dispatchEvent({type:"click",originalEvent:event})}
event.stopImmediatePropagation();event.preventDefault();break}else if((type=='click'||touchEndClick)&&Earth.hasEvent(intersects[i].object.userData.marker,['click'])){intersects[i].object.userData.marker.dispatchEvent({type:"click",originalEvent:event});event.stopImmediatePropagation();event.preventDefault();break}}}}}).bind(this);this.canvas.addEventListener('click',clickHandler);this.canvas.addEventListener('mousedown',clickHandler);this.canvas.addEventListener('mouseup',clickHandler);this.canvas.addEventListener('touchstart',clickHandler);this.canvas.addEventListener('touchend',clickHandler);this.canvas.addEventListener('mouseover',(function(event){if(this.paused)return;this.mouseOver=!0}).bind(this));this.canvas.addEventListener('mouseout',(function(event){if(this.paused)return;this.mouseOver=!1;this.mouseOverEarth=!1;if(this.mouseOverObject){this.mouseOverObject.dispatchEvent({type:"mouseout",originalEvent:event});this.mouseOverObject=null}}).bind(this));this.canvas.addEventListener('mousemove',(function(event){if(this.paused)return;this.mousePosition=Earth.normalizeMouse(this,event.clientX,event.clientY)}).bind(this));this.canvas.addEventListener('touchmove',(function(event){if(this.paused)return;this.mousePosition=Earth.normalizeMouse(this,event.touches[0].clientX,event.touches[0].clientY)}).bind(this));document.addEventListener('mousemove',(function(event){if(this.paused)return;this.docMousePosition=Earth.getEventPosition(event)}).bind(this));document.body.addEventListener('touchmove',(function(event){if(this.paused)return;this.docMousePosition=Earth.getEventPosition(event)}).bind(this));this.orbit=new Earth.Orbit(this.camera,this);this.orbit.addEventListener("start",(function(){this.dragging=!0;if(this.grabCursor)document.documentElement.classList.add('earth-dragging');if(this.goAnimation){this.goAnimation.stop()}
if(this.ready)this.dispatchEvent({type:'dragstart'});dragStartMousePosition=this.docMousePosition}).bind(this));this.orbit.addEventListener("change",(function(event){if(this.ready)this.dispatchEvent({type:'change'});this.radius=this.getRadius();if(this.dragging&&!ignoreClicks){ignoreClicks=dragStartMousePosition&&dragStartMousePosition.distanceTo(this.docMousePosition)>Earth.maxClickDistance}}).bind(this));this.orbit.addEventListener("end",(function(){this.momentum.copy(this.mouseVelocity);this.mouseVelocity.set(0,0);this.lastDocMousePosition=!1;document.documentElement.classList.remove('earth-dragging');if(this.dragging){this.dragging=!1;if(this.ready)this.dispatchEvent({type:'dragend'})}
if(ignoreClicks){setTimeout(function(){ignoreClicks=!1},1)}}).bind(this));Object.assign(this,this.options);this.update();setTimeout((function(){this.ready=!0;this.element.classList.add('earth-ready');this.dispatchEvent({type:'ready'});this.dispatchEvent({type:'change'})}).bind(this),1)};Object.defineProperties(Earth.prototype,{location:{get:function(){return Earth.worldToLatLng(this.camera.position)},set:function(v){var latlng=Object.assign({},v);latlng=Earth.formatLatLng(latlng);if(!this.goAnimation){latlng.lat=Math.min(this.maxLat(),Math.max(this.minLat(),latlng.lat))}
this.orbit.setPosition(Earth.latLngToWorld(latlng,this.camera.position.length()));this.resetAutoRotate()}},paused:{get:function(){return this.options.paused},set:function(v){if(v){this.options.paused=!0}else if(this.options.paused){this.options.paused=!1;if(this.ready){this.update()}}}},mapLandColor:{get:function(){return this.options.mapLandColor},set:function(v){this.options.mapLandColor=v}},mapSeaColor:{get:function(){return this.options.mapSeaColor},set:function(v){this.options.mapSeaColor=v}},mapBorderColor:{get:function(){return this.options.mapBorderColor},set:function(v){this.options.mapBorderColor=v}},mapBorderWidth:{get:function(){return this.options.mapBorderWidth},set:function(v){this.options.mapBorderWidth=v}},mapStyles:{get:function(){return this.options.mapStyles},set:function(v){this.options.mapStyles=v}},mapSvg:{get:function(){return this.options.mapSvg},set:function(v){this.options.mapSvg=v;this.removeHitTester()}},mapImage:{get:function(){return this.options.mapImage},set:function(v){this.options.mapImage=v}},draggable:{get:function(){return this.orbit.enableRotate},set:function(v){this.orbit.enableRotate=v;if(!v&&this.dragging){this.orbit.cancel()}}},dragPolarLimit:{get:function(){return this.options.dragPolarLimit},set:function(v){this.options.dragPolarLimit=Math.max(0,Math.min(1,v));this.orbit.minPolarAngle=this.options.dragPolarLimit/2*Math.PI;this.orbit.maxPolarAngle=(1-this.options.dragPolarLimit/2)*Math.PI}},polarLimit:{get:function(){return this.options.polarLimit},set:function(v){this.options.polarLimit=Math.max(0,Math.min(1,v))}},autoRotate:{get:function(){return this.options.autoRotate},set:function(v){this.options.autoRotate=v;if(!v){this.resetAutoRotate()}}},zoom:{get:function(){return Earth.camDistance/this.camera.position.length()},set:function(v){this.orbit.setPosition(this.camera.position.normalize().multiplyScalar(Earth.camDistance/v))}},zoomable:{get:function(){return this.orbit.enableZoom},set:function(v){this.orbit.enableZoom=v}},zoomMin:{get:function(){return 1/(this.orbit.maxDistance/Earth.camDistance)},set:function(v){this.orbit.maxDistance=Earth.camDistance*(1/v)}},zoomMax:{get:function(){return 1/(this.orbit.minDistance/Earth.camDistance)},set:function(v){this.orbit.minDistance=Earth.camDistance*(1/v)}},zoomSpeed:{get:function(){return this.orbit.zoomSpeed},set:function(v){this.orbit.zoomSpeed=v}},lightAmbience:{get:function(){return this.ambientLight.intensity},set:function(v){this.ambientLight.intensity=v}},lightIntensity:{get:function(){if(!this.primaryLight)return 1;return this.primaryLight.intensity},set:function(v){if(!this.primaryLight)return;this.primaryLight.intensity=v}},lightColor:{get:function(){if(!this.primaryLight)return'#FFFFFF';return'#'+this.primaryLight.color.getHexString()},set:function(v){if(!this.primaryLight)return;this.primaryLight.color=new THREE.Color(v)}},lightGroundColor:{get:function(){if(!this.primaryLight||!this.primaryLight.isHemisphereLight)return'#FFFFFF';return'#'+this.primaryLight.groundColor.getHexString()},set:function(v){if(!this.primaryLight||!this.primaryLight.isHemisphereLight)return;this.primaryLight.groundColor=new THREE.Color(v)}},sunLocation:{get:function(){if(!this.primaryLight||!this.primaryLight.isDirectionalLight)return{lat:0,lng:0};return Earth.worldToLatLng(this.primaryLight.position)},set:function(v){if(!this.primaryLight||!this.primaryLight.isDirectionalLight)return;this.primaryLight.position.copy(Earth.latLngToWorld(Earth.formatLatLng(v),Earth.camDistance))}},sunDirection:{get:function(){if(!this.primaryLight||!this.primaryLight.isDirectionalLight)return!1;return this.options.sunDirection},set:function(v){if(!this.primaryLight||!this.primaryLight.isDirectionalLight)return;if(!v||typeof v.x=='undefined')return;if(this.primaryLight.parent!==this.camera){this.camera.add(this.primaryLight)}
this.primaryLight.position.set(v.x*50,v.y*50,0)}},});Earth.prototype.getQuality=function(){return(this.element.offsetWidth>=720)?4:3};Earth.prototype.minLat=function(){return(1-this.options.polarLimit)*-90};Earth.prototype.maxLat=function(){return(1-this.options.polarLimit)*90};Earth.prototype.updateAutoRotate=function(){this.autoRotateTime+=this.deltaTime;if(this.autoRotateTime>this.autoRotateDelay){if(!this.autoRotate){this.dispatchEvent({type:'autorotate'});this.autoRotate=!0}
var t=(this.autoRotateTime-this.autoRotateDelay)/this.autoRotateStart;if(t>1){this.orbit.autoRotateSpeed=this.autoRotateSpeed;this.orbit.autoRotateSpeedUp=this.autoRotateSpeedUp}else{this.orbit.autoRotateSpeed=THREE.Math.lerp(0,this.autoRotateSpeed,Earth.Animation.Easing[this.autoRotateEasing](t));this.orbit.autoRotateSpeedUp=THREE.Math.lerp(0,this.autoRotateSpeedUp,Earth.Animation.Easing[this.autoRotateEasing](t))}}else{this.orbit.autoRotateSpeed=0;this.orbit.autoRotateSpeedUp=0}};Earth.prototype.startAutoRotate=function(easeIn){this.autoRotateTime=this.autoRotateDelay+((easeIn)?0:this.autoRotateStart);this.autoRotate=!0;this.autoRotating=!0};Earth.prototype.resetAutoRotate=function(){this.autoRotateTime=0;this.autoRotating=!1};Earth.prototype.updateMomentum=function(){if(this.dragging){this.resetAutoRotate();this.orbit.autoRotateSpeed=0;this.orbit.autoRotateSpeedUp=0;this.momentum.set(0,0);return}
if(this.momentum.equals(Earth.zeroMomentum)){if(this.autoRotate){this.updateAutoRotate()}else{this.orbit.autoRotateSpeed=0;this.orbit.autoRotateSpeedUp=0}
return}
this.resetAutoRotate();this.orbit.autoRotateSpeed=this.momentum.x*10000;this.orbit.autoRotateSpeedUp=this.momentum.y*10000;this.momentum.set(THREE.Math.lerp(this.momentum.x,0,this.deltaTime/(2000-(this.dragDamping*1999))),THREE.Math.lerp(this.momentum.y,0,this.deltaTime/(2000-(this.dragDamping*1999))));if(Math.abs(this.momentum.x)<0.00005){this.momentum.x=0}
if(Math.abs(this.momentum.y)<0.00005){this.momentum.y=0}};Earth.prototype.updatePointerVelocity=function(){if(this.dragging&&this.dragMomentum&&this.docMousePosition&&this.lastDocMousePosition){var moveVelocity=this.docMousePosition.clone().sub(this.lastDocMousePosition).multiplyScalar(0.00005);var max_velocity_x=0.002;var max_velocity_y=0.0015;if(moveVelocity.x<-max_velocity_x)moveVelocity.x=-max_velocity_x;else if(moveVelocity.x>max_velocity_x)moveVelocity.x=max_velocity_x;if(moveVelocity.y<-max_velocity_y)moveVelocity.y=-max_velocity_y;else if(moveVelocity.y>max_velocity_y)moveVelocity.y=max_velocity_y;this.mouseVelocity.copy(moveVelocity)}else{this.mouseVelocity.set(0,0)}
this.lastDocMousePosition=(this.docMousePosition)?this.docMousePosition.clone():!1};Earth.prototype.updatePointer=function(){var overObject=!1;this.mouseOverEarth=!1;if(this.mouseOver&&!this.dragging){var intersects=this.raycast(this.mousePosition);var intersect_sphere=!1;for(var i=0;i<intersects.length;i++){var obj=intersects[i].object;if(obj==this.sphere){this.mouseOverEarth=!0;intersect_sphere=!0}else if(!overObject&&obj.userData.marker&&obj.userData.marker.hotspot&&Earth.hasEvent(obj.userData.marker,['click','mousedown','mouseup','mouseover','mouseout'])){if(!intersect_sphere||(intersects[i].object.userData.marker.isSprite&&!intersects[i].object.userData.marker.occluded)){overObject=intersects[i].object.userData.marker}}}}
if(overObject){if(this.mouseOverObject&&this.mouseOverObject!=overObject){this.mouseOverObject.dispatchEvent({type:"mouseout"})}
this.mouseOverObject=overObject;this.mouseOverObject.dispatchEvent({type:"mouseover"})}else if(this.mouseOverObject){this.mouseOverObject.dispatchEvent({type:"mouseout"});this.mouseOverObject=null}
if(this.mouseOverObject&&Earth.hasEvent(this.mouseOverObject,['click'])){this.element.classList.add('earth-clickable')}else{this.element.classList.remove('earth-clickable')}
if(this.draggable&&this.grabCursor&&this.mouseOverEarth){this.element.classList.add('earth-draggable')}else{this.element.classList.remove('earth-draggable')}};Earth.prototype.hitTest=function(latlng){return this.hitTestMap(Earth.latLngToUv(latlng))};Earth.prototype.hitTestMap=function(uv){if(!this.mapSvg)return'';if(!this.hitTester){this.hitTester=document.createElement('div');document.body.appendChild(this.hitTester);this.hitTester.className='earth-hittest';this.hitTester.innerHTML=String(this.mapSvg).replace(/\sid\s*=/gi,' data-id=')}
var svgElement=this.hitTester.querySelector('svg');if(!svgElement)return'';this.hitTester.style.display='block';var rect=svgElement.getBoundingClientRect();var elem=document.elementFromPoint(uv.x*rect.width,uv.y*rect.height);this.hitTester.style.display='none';if(elem&&elem.dataset&&elem.dataset.id){return elem.dataset.id}else{return''}};Earth.prototype.removeHitTester=function(){if(this.hitTester){this.hitTester.remove();this.hitTester=null}};Earth.prototype.raycast=function(mouse){this.raycaster.setFromCamera(Earth.normalizeRaycast(mouse),this.camera);return this.raycaster.intersectObjects(this.scene.children)};Earth.prototype.redrawMap=function(){this.loadTexture()};Earth.prototype.updateMap=function(){if(this.mapTexture)this.mapTexture.needsUpdate=!0};Earth.prototype.mapImageIsSvg=function(url){return String(url).toLowerCase().indexOf('.svg')!=-1};Earth.prototype.loadTexture=function(useMapSvg,isDefaultMap){if(useMapSvg){var svg=this.mapSvg;if(isDefaultMap){var style='<style type="text/css">';style+='#SEA { fill:'+this.options.mapSeaColor+'; }';style+='path { fill:'+this.options.mapLandColor+'; ';style+='stroke:'+(this.options.mapBorderColor?this.options.mapBorderColor:this.options.mapLandColor)+'; ';style+='stroke-width:'+this.options.mapBorderWidth+'; stroke-miterlimit:1; }';style+=this.options.mapStyles;style+='</style>';svg=svg.replace(/(<svg[^>]+>)/i,'$1 '+style)}
this.mapImageElem=document.createElement("img");this.mapImageElem.setAttribute("src","data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(svg))));this.mapImageElem.onload=this.drawTexture.bind(this)}else if(this.options.legacySupportIE11&&Earth.isIE11()&&this.options.fallbackMapUrlIE11){this.mapImageElem=document.createElement("img");this.mapImageElem.setAttribute("src",this.options.fallbackMapUrlIE11);this.mapImageElem.onload=this.drawTexture.bind(this)}else if(this.options.mapImage&&!this.mapImageIsSvg(this.options.mapImage)){this.mapImageElem=document.createElement("img");this.mapImageElem.setAttribute("src",this.options.mapImage);this.mapImageElem.onload=this.drawTexture.bind(this)}else if(this.options.mapImage){var thisEarth=this;var ajax=new XMLHttpRequest();ajax.onreadystatechange=function(){if(this.readyState==4){thisEarth.mapSvg=Earth.fixSvgNamespace(this.responseText);thisEarth.loadTexture(!0,!1)}};ajax.open("GET",this.options.mapImage,!0);ajax.send()}else if(Earth.mapSvg){this.mapSvg=Earth.fixSvgNamespace(Earth.mapSvg);this.loadTexture(!0,!0)}else{setTimeout(this.drawTexture.bind(this),1)}};Earth.prototype.drawTexture=function(){if(!this.mapCanvas){this.mapCanvas=document.createElement("canvas");this.mapCanvas.width=Earth.textureSize[this.quality];this.mapCanvas.height=Earth.textureSize[this.quality]/2;this.mapContext=this.mapCanvas.getContext("2d")}else{this.mapContext.clearRect(0,0,this.mapCanvas.width,this.mapCanvas.height)}
if(this.mapImageElem){this.mapContext.drawImage(this.mapImageElem,0,0,this.mapImageElem.width,this.mapImageElem.height,0,0,this.mapCanvas.width,this.mapCanvas.height)}
this.dispatchEvent({type:'drawtexture',canvas:this.mapCanvas,context:this.mapContext});if(!this.mapTexture){this.mapTexture=new THREE.CanvasTexture(this.mapCanvas);this.mapTexture.wrapS=THREE.RepeatWrapping;this.mapTexture.anisotropy=Earth.anisotropy[this.quality];this.mapTexture.offset=new THREE.Vector2(-0.25,0);var earthMaterial={map:this.mapTexture,shininess:this.shininess*100,dithering:(this.light!='none')};if(this.transparent){earthMaterial.transparent=!0;earthMaterial.depthWrite=!1;this.innerSphere.material=new THREE.MeshBasicMaterial({dithering:(this.light!='none'),transparent:!0,color:this.innerColor,opacity:this.innerOpacity,side:THREE.BackSide,depthWrite:!1,map:this.mapTexture})}
this.sphere.material=new THREE.MeshPhongMaterial(earthMaterial)}else{this.mapTexture.needsUpdate=!0}};Earth.prototype.updateBounds=function(){this.bounds=this.element.getBoundingClientRect();this.outOfView=this.bounds.right<0||this.bounds.bottom<0||this.bounds.left>window.innerWidth||this.bounds.top>window.innerHeight;this.isVisible=this.bounds.width&&this.bounds.height;if(this.elementSize.x==this.bounds.width&&this.elementSize.y==this.bounds.height)return;this.elementSize.set(this.bounds.width,this.bounds.height);this.elementCenter.set(this.bounds.width/2,this.bounds.height/2);this.containerScale=Math.min(this.elementSize.x,this.elementSize.y)/1000;this.camera.aspect=this.bounds.width/this.bounds.height;this.camera.updateProjectionMatrix();this.renderer.setSize(this.bounds.width,this.bounds.height);this.radius=this.getRadius()};Earth.prototype.update=function(){if(this.paused)return;requestAnimationFrame(this.update.bind(this));if(!this.ready)return;this.deltaTime=Math.min(100,this.clock.getDelta()*1000);this.updateBounds();this.updatePointerVelocity();this.updatePointer();this.updateMomentum();this.orbit.update();this.updateAnimations();this.dispatchEvent({type:"update"});if(!this.outOfView&&this.isVisible){this.renderer.render(this.scene,this.camera);this.updateOccludables();this.updateOverlays()}};Earth.prototype.addMarker=function(options){return new Earth.Marker(options,this)};Earth.prototype.addImage=function(options){return new Earth.Image(options,this)};Earth.prototype.addSprite=function(options){return new Earth.Sprite(options,this)};Earth.prototype.addPoints=function(options){return new Earth.Points(options,this)};Earth.prototype.addLine=function(options){return new Earth.Line(options,this)};Earth.prototype.addOverlay=function(options){return new Earth.Overlay(options,this)};Earth.prototype.updateOverlays=function(){var updateOrder=!1;var camDistance=this.camera.position.length();for(var i=0;i<this.overlays.length;i++){var overlay=this.overlays[i];updateOrder=!0;overlay.updatePositions();if(overlay.elementPosition.y<overlay.earth.elementSize.y/2){overlay.element.classList.add('earth-overlay-top')}else{overlay.element.classList.remove('earth-overlay-top')}
if(overlay.elementPosition.x<overlay.earth.elementSize.x/2){overlay.element.classList.add('earth-overlay-left')}else{overlay.element.classList.remove('earth-overlay-left')}
overlay.updateOcclusion();if(overlay.occluded){overlay.element.classList.add('earth-occluded')}else{overlay.element.classList.remove('earth-occluded')}
if(!overlay.visible)continue;var scale=1;if(overlay.depthScale){scale*=Math.max(0,1-overlay.depthScale+(camDistance-overlay.distance)/Earth.earthRadius*overlay.depthScale)}
if(overlay.zoomScale){scale*=THREE.Math.lerp(1,this.zoom,overlay.zoomScale)}
if(overlay.containerScale){scale*=THREE.Math.lerp(1,this.containerScale,overlay.containerScale)}
scale=Math.max(0,scale);var scaleTransform=(scale!=1)?' scale('+scale+')':'';overlay.element.style.transform='translate('+overlay.elementPosition.x+'px, '+overlay.elementPosition.y+'px)'+scaleTransform;if(!overlay.ready){overlay.ready=!0;overlay.visible=!0}}
if(updateOrder){this.overlays.sort(function(a,b){return b.distance-a.distance});for(var i=0;i<this.overlays.length;i++){this.overlays[i].element.style.zIndex=((this.overlays[i].occluded&&this.overlays[i].occlude)?10:1010)+i}}};Earth.prototype.updateOccludables=function(){for(var i=0;i<this.occludables.length;i++){var occludable=this.occludables[i];occludable.updatePositions();occludable.updateOcclusion()}};Earth.prototype.updateAnimations=function(){var complete_animations=[];for(var i in this.animations){var ani=this.animations[i];if(ani.paused)continue;if(ani.target.removed){complete_animations.push(ani);continue}
ani.time+=this.deltaTime;var p=ani.time/ani.duration;ani.step(Math.min(p,1));if(p>=1){if(ani.loop){if(ani.oscillate){ani.time=Math.max(0,ani.duration-ani.time);var current=ani.to;ani.to=ani.from;ani.from=current}else{ani.time=Math.max(0,ani.duration-ani.time)}
ani.dispatchEvents(!0)}else{complete_animations.push(ani)}}}
for(var i in complete_animations){complete_animations[i].stop(!0)}};Earth.prototype.goTo=function(location,options){if(!options)options={};if(options.approachAngle){var toPos=Earth.latLngToWorld(location,Earth.earthRadius);var camPos=this.camera.position.clone().normalize().multiplyScalar(Earth.earthRadius);if(THREE.Math.radToDeg(toPos.angleTo(camPos))>options.approachAngle){for(var i=1;i<=32;i++){var midPos=new THREE.Vector3().lerpVectors(camPos,toPos,i/32).normalize().multiplyScalar(Earth.earthRadius);if(THREE.Math.radToDeg(toPos.angleTo(midPos))<=options.approachAngle){location=Earth.worldToLatLng(midPos);break}}}else{return!1}}
if(this.goAnimation){this.goAnimation.stop()}
var to=Object.assign({},location);to.lat=Math.min(this.maxLat(),to.lat);to.lat=Math.max(this.minLat(),to.lat);var ani={_end:function(){this.goAnimation=null;if(this.zoomAnimation)this.zoomAnimation.stop();this.zoomAnimation=null},lerpLatLng:!0};Object.assign(ani,options);this.goAnimation=this.animate('location',to,ani);if(options.zoom){this.zoomAnimation=this.animate('zoom',options.zoom,{duration:this.goAnimation.duration})}
return this.goAnimation};Earth.prototype.getPoint=function(location,offset){if(!offset)offset=0;var worldPos=Earth.latLngToWorld(location,Earth.earthRadius+offset);return Earth.worldToElement(worldPos,this.elementSize,this.camera)};Earth.prototype.getLocation=function(point){var mouse=Earth.normalizeMouse(this,point.x,point.y);this.raycaster.setFromCamera(Earth.normalizeRaycast(mouse),this.camera);var intersects=this.raycaster.intersectObjects([this.sphere]);for(var i=0;i<intersects.length;i++){var uv=intersects[i].uv;intersects[i].object.material.map.transformUv(uv);return Earth.uvToLatLng(uv)}
return!1};Earth.prototype.getRadius=function(){return this.elementSize.y/2*0.758*Math.pow(this.zoom,(this.zoom>1)?1.158:THREE.Math.lerp(1.01,1.11,this.zoom))};Earth.earthRadius=8;Earth.camDistance=24;Earth.textureSize=[0,512,1024,2048,4096,8192,16384];Earth.shadowSize=[0,512,512,1024,2048,4096,8192];Earth.anisotropy=[1,1,2,4,8,8,16];Earth.defaultImage='data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgdmlld0JveD0iMCAwIDMyIDMyIj48Y2lyY2xlIGZpbGw9IiNmZmYiIGN4PSIxNiIgY3k9IjE2IiByPSIxNiIvPjwvc3ZnPg';Earth.spriteHotspot='data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB3aWR0aD0iNjRweCIgaGVpZ2h0PSI2NHB4IiB2aWV3Qm94PSIwIDAgNjQgNjQiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDY0IDY0OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBhdGggZmlsbD0iIzAwRkYwMCIgZD0iTTEsMXY2Mmg2MlYxSDF6IE02Miw2MkgyVjJoNjBWNjJ6Ii8+PC9zdmc+';Earth.invisibleMaterial=new THREE.MeshBasicMaterial({visible:!1});Earth.hotspotMaterial=new THREE.MeshBasicMaterial({color:0x00ff00,wireframe:!0});Earth.up=new THREE.Vector3(0,1,0);Earth.left=new THREE.Vector3(1,0,0);Earth.back=new THREE.Vector3(0,0,1);Earth.zero=new THREE.Vector3(0,0,0);Earth.zeroMomentum=new THREE.Vector2();Earth.maxClickDistance=10;Earth.capabilitiesChecked=!1;Earth.cssAdded=!1;Earth.meshesAdded=!1;Earth.meshes={};Earth.textures={};Earth.fixSvgNamespace=function(svg){return String(svg).replace('xmlns="https://www.w3.org/2000/svg"','xmlns="ht'+'tp://www.w3.org/2000/svg"')};Earth.formatLatLng=function(latlng){if(typeof latlng!="object"){return{lat:0,lng:0}}else{latlng.lat=Number(latlng.lat);latlng.lng=Number(latlng.lng);return latlng}};Earth.hash=function(str){var hash=0;if(str.length==0)return hash;for(var i=0;i<str.length;i++){hash=((hash<<5)-hash)+str.charCodeAt(i);hash=hash&hash}
return hash};Earth.getTexture=function(src,resolution,alphaOnly){var key=Earth.hash(src)+'#'+resolution+((alphaOnly)?'#a':'');if(Earth.textures[key])return Earth.textures[key];var canvas=document.createElement("canvas");canvas.width=resolution;canvas.height=resolution;Earth.textures[key]=new THREE.CanvasTexture(canvas);Earth.textures[key].needsUpdate=!1;var img=new Image();img.onload=function(){var ratio=img.naturalHeight/img.naturalWidth;var x=0,y=0,w=canvas.width,h=canvas.height;if(ratio<1){h=Math.round(w*ratio);y=Math.round(canvas.height/2-h/2)}else{w=Math.round(h*(1/ratio));x=Math.round(canvas.width/2-w/2)}
var ctx=canvas.getContext("2d");ctx.globalAlpha=1/256;ctx.fillStyle="#999999";ctx.fillRect(0,0,canvas.width,canvas.height);ctx.globalAlpha=1;ctx.globalCompositeOperation="source-over";ctx.drawImage(img,x,y,w,h);ctx.globalCompositeOperation="source-atop";if(alphaOnly){ctx.fillStyle="white";ctx.fillRect(0,0,canvas.width,canvas.height)}else{var offset=[-1,-1,0,-1,1,-1,-1,0,1,0,-1,1,0,1,1,1];var s=2;for(var i=0;i<offset.length;i+=2)ctx.drawImage(img,x+offset[i]*s,y+offset[i+1]*s,w,h);ctx.drawImage(img,x,y,w,h)}
Earth.textures[key].needsUpdate=!0};img.src=src;return Earth.textures[key]};Earth.checkCapabilities=function(renderer){var maxTex=renderer.capabilities.maxTextureSize;var maxAni=renderer.capabilities.getMaxAnisotropy();for(var i=0;i<Earth.textureSize.length;i++){if(Earth.textureSize[i]>maxTex)Earth.textureSize[i]=maxTex;if(Earth.shadowSize[i]>maxTex)Earth.shadowSize[i]=maxTex;if(Earth.anisotropy[i]>maxAni)Earth.anisotropy[i]=maxAni}
Earth.capabilitiesChecked=!0};Earth.dispatchLoadEvent=function(){if(typeof window.CustomEvent==="function"){var loadedEvent=new CustomEvent("earthjsload")}else{var loadedEvent=document.createEvent("CustomEvent");loadedEvent.initCustomEvent("earthjsload",!1,!1,undefined)}
window.dispatchEvent(loadedEvent)};Earth.addCss=function(){Earth.styleElement=document.createElement('style');if(Earth.styleElement.styleSheet){Earth.styleElement.styleSheet.cssText=Earth.css}else{Earth.styleElement.appendChild(document.createTextNode(Earth.css))}
document.getElementsByTagName("head")[0].appendChild(Earth.styleElement)};Earth.addMesh=function(objString){var lib=new Earth.ObjParser().parse(objString);lib.traverse(function(child){if(!child.name)return;Earth.meshes[child.name.split('_')[0]]=child;child.material=new THREE.MeshPhongMaterial({color:0xFF0000,shininess:0.3,flatShading:!1})})};Earth.dispose=function(obj){while(obj.children.length>0){Earth.dispose(obj.children[0]);obj.remove(obj.children[0])}
if(obj.geometry)obj.geometry.dispose();if(obj.material)obj.material.dispose()};Earth.prototype.destroy=function(){this.paused=!0;Earth.dispose(this.scene);this.renderer.forceContextLoss();this.renderer.dispose();this.renderer.context=null;this.renderer.domElement.remove();this.renderer.domElement=null;this.orbit.dispose();this.removeHitTester();this.overlays=null;this.occludables=null;this.animations=null;this.element.earth=null;this.element=null;this.canvas=null};Earth.isSupported=function(supportIE11){try{if(!supportIE11&&Earth.isIE11())return!1;var canvas=document.createElement('canvas');return window.WebGLRenderingContext&&(canvas.getContext('webgl')||canvas.getContext('experimental-webgl'))}catch(e){return!1}};Earth.isIE11=function(){return!!window.MSInputMethodContext&&!!document.documentMode};Earth.getPathPoints=function(fromPos,toPos,subdevisions,offset,offsetFlow,offsetEasing){offset+=Earth.earthRadius;var points=[fromPos,toPos];for(var i=0;i<subdevisions;i++){points=Earth.subdividePath(points,offset)}
if(offsetFlow){for(var i=0;i<points.length;i++){points[i].multiplyScalar(1+Earth.Animation.Easing[offsetEasing](i/(points.length-1))*offsetFlow/10)}}
return points};Earth.subdividePath=function(points,offset){if(points.length<2)return[];var new_points=[];new_points.push(points[0]);var fromPoint=points[0];for(var i=1;i<points.length;i++){toPoint=points[i];new_points.push(new THREE.Vector3().lerpVectors(fromPoint,toPoint,0.5).normalize().multiplyScalar(offset));new_points.push(toPoint);fromPoint=toPoint}
return new_points};Earth.mouseCenterOffset=function(mouse,earth,radius){var relMouse=new THREE.Vector2(mouse.x-earth.bounds.left-earth.bounds.width/2,mouse.y-earth.bounds.top-earth.bounds.height/2);return Math.min(1,relMouse.length()/radius)};Earth.normalizeMouse=function(earth,x,y){return new THREE.Vector2((x-earth.bounds.left)/earth.bounds.width,(y-earth.bounds.top)/earth.bounds.height)};Earth.normalizeElement=function(v2,element){return new THREE.Vector2(v2.x/element.x,v2.y/element.y)};Earth.normalizeRaycast=function(v2){return new THREE.Vector2((v2.x*2)-1,-(v2.y*2)+1)};Earth.latLngToWorld=function(location,radius){var phi=THREE.Math.degToRad(-location.lat+90);var theta=THREE.Math.degToRad(location.lng+180);return new THREE.Vector3().setFromSphericalCoords(radius,phi,theta)};Earth.worldToLatLng=function(pos){var s=new THREE.Spherical().setFromVector3(pos);var loc={lat:THREE.Math.radToDeg(-s.phi)+90,lng:THREE.Math.radToDeg(s.theta)+180};Earth.wrapLatLng(loc);return loc};Earth.uvToLatLng=function(uv){return{lat:(0.5-uv.y)*180,lng:(uv.x-0.5)*360}};Earth.latLngToUv=function(latlng){latlng=Earth.wrapLatLng(Earth.formatLatLng(latlng));return new THREE.Vector2(1-(latlng.lng/-360+0.5),0.5+latlng.lat/-180)};Earth.wrapLatLng=function(latlng){latlng.lat=Earth.wrap(latlng.lat,-90,90);latlng.lng=Earth.wrap(latlng.lng,-180,180);return latlng};Earth.wrapLngForLerp=function(fromLng,toLng){if(Math.abs(toLng-fromLng)>180){toLng=(toLng<0)?toLng+360:toLng-360}
return toLng};Earth.worldToElement=function(position,element,camera){var w=element.x/2;var h=element.y/2;var pos=position.clone().project(camera);return new THREE.Vector2((pos.x*w)+w,-(pos.y*h)+h)};Earth.getLineDistance=function(points){var distance=0;var from=points[0];for(var i=1;i<points.length;i++){var to=points[i];distance+=from.distanceTo(to);from=to}
return distance};Earth.lerpAngle=function(fromA,toA,t){var fullA=Math.PI*2;var a=(toA-fromA)%fullA;return fromA+(2*a%fullA-a)*t};Earth.wrap=function(val,min,max){var range=max-min;return min+((((val-min)%range)+range)%range)};Earth.getDistance=function(from,to){from=Earth.formatLatLng(from);to=Earth.formatLatLng(to);var degLat=THREE.Math.degToRad(to.lat-from.lat);var degLng=THREE.Math.degToRad(to.lng-from.lng);var a=Math.sin(degLat/2)*Math.sin(degLat/2)+Math.cos(THREE.Math.degToRad(from.lat))*Math.cos(THREE.Math.degToRad(to.lat))*Math.sin(degLng/2)*Math.sin(degLng/2);var c=2*Math.atan2(Math.sqrt(a),Math.sqrt(1-a));return 6378.137*c};Earth.getAngle=function(from,to){from=Earth.formatLatLng(from);to=Earth.formatLatLng(to);var fromPos=Earth.latLngToWorld(from,Earth.earthRadius);var toPos=Earth.latLngToWorld(to,Earth.earthRadius);return THREE.Math.radToDeg(fromPos.angleTo(toPos))};Earth.lerp=function(from,to,t,lerpLatLng){from=Earth.formatLatLng(from);to=Earth.formatLatLng(to);if(lerpLatLng){return Earth.wrapLatLng({lat:THREE.Math.lerp(from.lat,to.lat,t),lng:THREE.Math.lerp(from.lng,Earth.wrapLngForLerp(from.lng,to.lng),t)})}else{return Earth.worldToLatLng(Earth.latLngToWorld(from,Earth.earthRadius).lerp(Earth.latLngToWorld(to,Earth.earthRadius),t))}};Earth.hasEvent=function(obj,types){if(!obj._listeners)return!1;for(var i=0;i<types.length;i++){if(obj._listeners[types[i]]&&obj._listeners[types[i]].length)return!0}
return!1};Earth.getEventPosition=function(event){if(event.type=='touchstart'||event.type=='touchmove'){return new THREE.Vector2(event.touches[0].clientX,event.touches[0].clientY)}else if(event.type=='touchend'){return new THREE.Vector2(event.changedTouches[0].clientX,event.changedTouches[0].clientY)}else{return new THREE.Vector2(event.clientX,event.clientY)}};Earth.Marker=function(initOptions,thisEarth){this.init(initOptions,thisEarth)};Earth.Marker.prototype.init=function(initOptions,thisEarth){var defaults={isMarker:!0,earth:thisEarth,location:{lat:0,lng:0},offset:0,mesh:["Pin","Needle"],color:'#FF0000',color2:'#AAAAAA',color3:'#AAAAAA',color4:'#AAAAAA',color5:'#AAAAAA',color6:'#AAAAAA',color7:'#AAAAAA',color8:'#AAAAAA',scale:1,scaleX:1,scaleY:1,scaleZ:1,visible:!0,hotspot:!1,hotspotRadius:0.5,hotspotHeight:1.5,align:!0,rotationX:0,rotationY:0,rotationZ:0,lookAt:!1,lookAngle:0,shininess:0.3,flatShading:!1,castShadow:thisEarth.shadows,receiveShadow:!1,transparent:(typeof initOptions.opacity!='undefined'),};this.options=Object.assign(defaults,initOptions);this.createObject();this.addMeshes();Object.assign(this,this.options);this.ready=!0;this.update();this.updateScale();thisEarth.occludables.push(this);if(this.options.transparent){this.addEventListener('occlusion',function(){for(var i=0;i<this.object3d.children.length;i++){this.object3d.children[i].renderOrder=(this.occluded)?-4:0}})}
return this};Earth.Marker.prototype.createObject=function(){if(this.options.hotspot){if(this.options.hotspotGeometry=='sprite'){this.object3d=new THREE.Sprite(new THREE.SpriteMaterial({map:(this.options.earth.showHotspots)?Earth.getTexture(Earth.spriteHotspot,64,!1):null,opacity:(this.options.earth.showHotspots)?1:0,}))}else if(this.options.hotspotGeometry=='circle'){var geometry=new THREE.CircleGeometry(this.options.hotspotRadius*1.2,8);geometry.rotateX(THREE.Math.degToRad(-90));geometry.translate(0,0.01,0);this.object3d=new THREE.Mesh(geometry,(this.options.earth.showHotspots)?Earth.hotspotMaterial:Earth.invisibleMaterial)}else{var geometry=new THREE.CylinderBufferGeometry(this.options.hotspotRadius,this.options.hotspotRadius*0.75,this.options.hotspotHeight,5);geometry.translate(0,this.options.hotspotHeight/2,0);this.object3d=new THREE.Mesh(geometry,(this.options.earth.showHotspots)?Earth.hotspotMaterial:Earth.invisibleMaterial)}}else{this.object3d=new THREE.Object3D()}
this.object3d.userData.marker=this;this.options.earth.scene.add(this.object3d)};Earth.Marker.prototype.addMeshes=function(){if(typeof this.options.mesh=="string"){var meshes=(this.options.mesh)?[this.options.mesh]:[]}else{var meshes=this.options.mesh}
for(var i=0;i<meshes.length;i++){var meshClone=Earth.meshes[meshes[i]].clone();meshClone.material=meshClone.material.clone();this.object3d.add(meshClone)}};Object.assign(Earth.Marker.prototype,Earth.ClassicEventDispatcher.prototype);Earth.sharedObjectProperties={color:{get:function(){if(!this.object3d.children[0])return'#FFFFFF';return'#'+this.object3d.children[0].material.color.getHexString()},set:function(v){if(!this.object3d.children[0])return;this.object3d.children[0].material.color.set(v)}},opacity:{get:function(){if(!this.object3d.children[0])return 1;return this.object3d.children[0].material.opacity},set:function(v){for(var i=0;i<this.object3d.children.length;i++){this.object3d.children[i].material.opacity=v}}},visible:{get:function(){return this.object3d.visible},set:function(v){this.object3d.visible=v}},scale:{get:function(){return this.options.scale},set:function(v){this.options.scale=v;if(this.ready)this.updateScale()}},scaleX:{get:function(){return this.options.scaleX},set:function(v){this.options.scaleX=v;if(this.ready)this.updateScale()}},scaleY:{get:function(){return this.options.scaleY},set:function(v){this.options.scaleY=v;if(this.ready)this.updateScale()}},scaleZ:{get:function(){return this.options.scaleZ},set:function(v){this.options.scaleZ=v;if(this.ready)this.updateScale()}},align:{get:function(){return this.options.align},set:function(v){this.options.align=v;if(this.ready)this.update()}},rotationX:{get:function(){return this.options.rotationX},set:function(v){this.options.rotationX=v;if(this.ready)this.update()}},rotationY:{get:function(){return this.options.rotationY},set:function(v){this.options.rotationY=v;if(this.ready)this.update()}},rotationZ:{get:function(){return this.options.rotationZ},set:function(v){this.options.rotationZ=v;if(this.ready)this.update()}},lookAt:{get:function(){return this.options.lookAt},set:function(v){this.options.lookAt=(!v)?!1:Earth.formatLatLng(v);if(this.ready)this.update()}},lookAngle:{get:function(){return this.options.lookAngle},set:function(v){this.options.lookAngle=v;if(this.ready)this.update(!0)}},offset:{get:function(){return this.options.offset},set:function(v){this.options.offset=v;if(this.ready)this.update()}},location:{get:function(){return this.options.location},set:function(v){this.options.location=Earth.formatLatLng(v);if(this.ready)this.update()}}};Object.defineProperties(Earth.Marker.prototype,Earth.sharedObjectProperties);Object.defineProperties(Earth.Marker.prototype,{color2:{get:function(){if(!this.object3d.children[1])return'#FFFFFF';return'#'+this.object3d.children[1].material.color.getHexString()},set:function(v){if(!this.object3d.children[1])return;this.object3d.children[1].material.color.set(v)}},color3:{get:function(){if(!this.object3d.children[2])return'#FFFFFF';return'#'+this.object3d.children[2].material.color.getHexString()},set:function(v){if(!this.object3d.children[2])return;this.object3d.children[2].material.color.set(v)}},color4:{get:function(){if(!this.object3d.children[3])return'#FFFFFF';return'#'+this.object3d.children[3].material.color.getHexString()},set:function(v){if(!this.object3d.children[3])return;this.object3d.children[3].material.color.set(v)}},color5:{get:function(){if(!this.object3d.children[4])return'#FFFFFF';return'#'+this.object3d.children[4].material.color.getHexString()},set:function(v){if(!this.object3d.children[4])return;this.object3d.children[4].material.color.set(v)}},color6:{get:function(){if(!this.object3d.children[5])return'#FFFFFF';return'#'+this.object3d.children[5].material.color.getHexString()},set:function(v){if(!this.object3d.children[5])return;this.object3d.children[5].material.color.set(v)}},color7:{get:function(){if(!this.object3d.children[6])return'#FFFFFF';return'#'+this.object3d.children[6].material.color.getHexString()},set:function(v){if(!this.object3d.children[6])return;this.object3d.children[6].material.color.set(v)}},color8:{get:function(){if(!this.object3d.children[7])return'#FFFFFF';return'#'+this.object3d.children[7].material.color.getHexString()},set:function(v){if(!this.object3d.children[7])return;this.object3d.children[7].material.color.set(v)}},shininess:{get:function(){if(!this.object3d.children[0])return 0.3;return this.object3d.children[0].material.shininess/100},set:function(v){for(var i=0;i<this.object3d.children.length;i++){this.object3d.children[i].material.shininess=v*100}}},flatShading:{get:function(){if(!this.object3d.children[0])return 0.3;return this.object3d.children[0].material.flatShading},set:function(v){for(var i=0;i<this.object3d.children.length;i++){this.object3d.children[i].material.flatShading=v}}},castShadow:{get:function(){if(!this.object3d.children[0])return!1;return this.object3d.children[0].castShadow},set:function(v){for(var i=0;i<this.object3d.children.length;i++){this.object3d.children[i].castShadow=v}}},receiveShadow:{get:function(){if(!this.object3d.children[0])return!1;return this.object3d.children[0].receiveShadow},set:function(v){for(var i=0;i<this.object3d.children.length;i++){this.object3d.children[i].receiveShadow=v}}},transparent:{get:function(){if(!this.object3d.children[0])return!1;return this.object3d.children[0].material.transparent},set:function(v){for(var i=0;i<this.object3d.children.length;i++){this.object3d.children[i].material.transparent=v}}},});Earth.Marker.prototype.remove=function(){this.stopAllAnimations();if(this==this.earth.mouseOverObject){this.earth.mouseOverObject.dispatchEvent({type:"mouseout"});this.earth.mouseOverObject=null}
Earth.dispose(this.object3d);this.earth.scene.remove(this.object3d);this.removed=!0;var objIndex=this.earth.occludables.indexOf(this);if(objIndex==-1)return;this.earth.occludables.splice(objIndex,1)};Earth.Marker.prototype.updateScale=function(){if(this.isSprite){this.object3d.scale.set(this.options.scaleX*this.options.scale*(this.options.hotspotRadius*2),this.options.scaleY*this.options.scale*(this.options.hotspotRadius*2),1);var reverse_scale=1/(this.options.hotspotRadius*2);this.object3d.children[0].scale.set(reverse_scale,reverse_scale,1)}else{this.object3d.scale.set(this.options.scaleX*this.options.scale,this.options.scaleY*this.options.scale,this.options.scaleZ*this.options.scale)}};Earth.Marker.prototype.getQuaternion=function(){if(this.align){var qt=new THREE.Quaternion().setFromRotationMatrix(new THREE.Matrix4().lookAt(this.object3d.position,Earth.zero,Earth.up));qt.multiply(new THREE.Quaternion().setFromAxisAngle(Earth.left,1.5707963267948966))}else{var qt=new THREE.Quaternion()}
return qt};Earth.Marker.prototype.update=function(fixLookAngle){var p=Earth.latLngToWorld(this.location,Earth.earthRadius+this.offset);if(this.isSprite){this.object3d.center=new THREE.Vector2(this.anchorX,this.anchorY);this.object3d.children[0].center=new THREE.Vector2(this.anchorX,this.anchorY)}
this.object3d.position.copy(p);var qt=this.getQuaternion();if(this.lookAt){if(!fixLookAngle){if(Math.abs(this.location.lat-this.lookAt.lat)>0.000001||Math.abs(this.location.lng-this.lookAt.lng)>0.000001){this.options.lookAngle=this.getLocalAngle(p,qt,Earth.latLngToWorld(this.lookAt,Earth.earthRadius))}}
qt.multiply(new THREE.Quaternion().setFromAxisAngle(Earth.up,this.options.lookAngle))}
if(this.rotationX){qt.multiply(new THREE.Quaternion().setFromAxisAngle(Earth.left,THREE.Math.degToRad(this.rotationX)))}
if(this.rotationY){qt.multiply(new THREE.Quaternion().setFromAxisAngle(Earth.up,THREE.Math.degToRad(this.rotationY)))}
if(this.rotationZ){qt.multiply(new THREE.Quaternion().setFromAxisAngle(Earth.back,THREE.Math.degToRad(this.rotationZ)))}
this.object3d.setRotationFromQuaternion(qt)};Earth.Marker.prototype.getLocalAngle=function(p,qt,lookP){var startAngle=0;var angle=Math.PI/2;var tests=9;var testPoint=new THREE.Vector3(0.01,0,0);var distP,distM,prevDist;for(var i=0;i<tests;i++){var rotP=p.clone().add(testPoint.clone().applyQuaternion(qt.clone().multiply(new THREE.Quaternion().setFromAxisAngle(Earth.up,startAngle+angle))));distP=lookP.distanceToSquared(rotP);var rotM=p.clone().add(testPoint.clone().applyQuaternion(qt.clone().multiply(new THREE.Quaternion().setFromAxisAngle(Earth.up,startAngle-angle))));distM=lookP.distanceToSquared(rotM);if(!prevDist||distP<prevDist||distM<prevDist){if(distP<distM){startAngle+=angle;prevDist=distP}else{startAngle-=angle;prevDist=distM}}
angle/=2}
return startAngle};Earth.Image=function(initOptions,thisEarth){this.init(initOptions,thisEarth)};Object.assign(Earth.Image.prototype,Earth.Marker.prototype);Object.defineProperties(Earth.Image.prototype,Earth.sharedObjectProperties);Earth.Image.prototype.init=function(initOptions,thisEarth){var defaults={isImage:!0,earth:thisEarth,location:{lat:0,lng:0},offset:0,image:Earth.defaultImage,imageResolution:128,imageAlphaOnly:!1,color:'#FFFFFF',scale:1,scaleX:1,scaleY:1,scaleZ:1,visible:!0,hotspot:!1,hotspotRadius:0.5,hotspotGeometry:'circle',align:!0,rotationX:0,rotationY:0,rotationZ:0,lookAt:!1,lookAngle:0,shininess:0.3,flatShading:!1,castShadow:!1,receiveShadow:!1,transparent:!0,opacity:1};this.options=Object.assign(defaults,initOptions);this.createObject();this.createImage();Object.assign(this,this.options);this.ready=!0;this.update();this.updateScale();thisEarth.occludables.push(this);if(this.options.transparent){this.addEventListener('occlusion',function(){this.object3d.children[0].renderOrder=(this.occluded)?-4:0})}
return this};Earth.Image.prototype.createImage=function(){var geometry=new THREE.PlaneGeometry();geometry.rotateX(THREE.Math.degToRad(-90));geometry.translate(0,0.01,0);var material=new THREE.MeshBasicMaterial({alphaTest:2/256,color:this.options.color,opacity:this.options.opacity,transparent:!0,map:(this.options.image)?Earth.getTexture(this.options.image,this.options.imageResolution,this.options.imageAlphaOnly):null,side:THREE.DoubleSide});material.map.anisotropy=Earth.anisotropy[this.options.earth.quality];var sprite=new THREE.Mesh(geometry,material);this.object3d.add(sprite)};Earth.Sprite=function(initOptions,thisEarth){this.init(initOptions,thisEarth)};Object.assign(Earth.Sprite.prototype,Earth.Marker.prototype);Object.defineProperties(Earth.Sprite.prototype,Earth.sharedObjectProperties);Earth.Sprite.prototype.init=function(initOptions,thisEarth){var defaults={isSprite:!0,earth:thisEarth,location:{lat:0,lng:0},image:Earth.defaultImage,imageResolution:128,imageAlphaOnly:!1,offset:0,anchorX:0.5,anchorY:0.5,color:'#FFFFFF',scale:1,scaleX:1,scaleY:1,scaleZ:1,visible:!0,hotspot:!1,hotspotRadius:0.5,hotspotGeometry:'sprite',rotation:0,rotationX:0,rotationY:0,rotationZ:0,opacity:1,occlude:!0};this.options=Object.assign(defaults,initOptions);this.createObject();this.createSprite();Object.assign(this,this.options);this.ready=!0;this.update();this.updateScale();thisEarth.occludables.push(this);this.addEventListener('occlusion',function(){var back=this.occlude&&this.occluded;if(this.object3d.material){this.object3d.material.depthTest=back;this.object3d.material.depthWrite=!back;this.object3d.renderOrder=(back)?-5:5}
this.object3d.children[0].material.depthTest=back;this.object3d.children[0].material.depthWrite=!back;this.object3d.children[0].renderOrder=(back)?-5:5});return this};Earth.Sprite.prototype.createSprite=function(){var material=new THREE.SpriteMaterial({alphaTest:2/256,color:this.options.color,opacity:this.options.opacity,map:(this.options.image)?Earth.getTexture(this.options.image,this.options.imageResolution,this.options.imageAlphaOnly):null});var sprite=new THREE.Sprite(material);this.object3d.add(sprite)};Object.defineProperties(Earth.Sprite.prototype,{rotation:{get:function(){return THREE.Math.radToDeg(this.object3d.material.rotation)},set:function(v){if(this.object3d.material)this.object3d.material.rotation=THREE.Math.degToRad(v);this.object3d.children[0].material.rotation=THREE.Math.degToRad(v)}}});Earth.Points=function(initOptions,thisEarth){this.init(initOptions,thisEarth)};Object.assign(Earth.Points.prototype,Earth.Marker.prototype);Earth.Points.prototype.init=function(initOptions,thisEarth){var defaults={isPoints:!0,earth:thisEarth,points:[],image:Earth.defaultImage,imageResolution:128,imageAlphaOnly:!1,color:'#FFFFFF',scale:1,opacity:1,clip:1,visible:!0,};this.options=Object.assign(defaults,initOptions);this.createObject();Object.assign(this,this.options);this.createPoints();var thisPoints=this;this.sortOnce=function(){thisPoints.sort();thisEarth.removeEventListener('update',this.sortOnce)};this.sort=function(){var vector=new THREE.Vector3();var matrix=new THREE.Matrix4();matrix.multiplyMatrices(thisEarth.camera.projectionMatrix,thisEarth.camera.matrixWorldInverse);matrix.multiply(thisPoints.object3d.matrixWorld);var geometry=thisPoints.object3d.children[0].geometry;var index=geometry.getIndex();var positions=geometry.getAttribute('position').array;var length=positions.length/3;if(index===null){var array=new Uint16Array(length);for(var i=0;i<length;i ++){array[i]=i}
index=new THREE.BufferAttribute(array,1);geometry.setIndex(index)}
var sortArray=[];for(var i=0;i<length;i ++){vector.fromArray(positions,i*3);vector.applyMatrix4(matrix);sortArray.push([vector.z,i])}
function numericalSort(a,b){return b[0]-a[0]}
sortArray.sort(numericalSort);var indices=index.array;for(var i=0;i<length;i ++){indices[i]=sortArray[i][1]}
geometry.index.needsUpdate=!0};this.removeEvents=function(){thisEarth.removeEventListener('update',this.sortOnce);thisEarth.removeEventListener('change',this.sort)};thisEarth.addEventListener('update',this.sortOnce);thisEarth.addEventListener('change',this.sort);this.ready=!0;return this};Earth.Points.prototype.createPointsMaterial=function(){var vertexShaderSource=['attribute float size;','attribute vec3 customColor;','attribute float opacity;','varying float vAlpha;','varying vec3 vColor;','uniform float usize;','void main() {',' vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );',' vColor = customColor;',' vAlpha = opacity;',' gl_PointSize = usize * size * ( 200.0 / -mvPosition.z );',' gl_Position = projectionMatrix * mvPosition;','}'];var fragmentShaderSource=['uniform vec3 ucolor;','uniform float ualpha;','uniform sampler2D pointTexture;','varying float vAlpha;','varying vec3 vColor;','void main() {',' gl_FragColor = vec4( ucolor * vColor, ualpha * vAlpha ) * texture2D( pointTexture, vec2(gl_PointCoord.x, 1.0 - gl_PointCoord.y) );','}'];return new THREE.ShaderMaterial({uniforms:{ucolor:{value:new THREE.Color(this.options.color)},ualpha:{value:this.options.opacity},usize:{value:this.options.scale},pointTexture:{value:(this.options.image)?Earth.getTexture(this.options.image,this.options.imageResolution,this.options.imageAlphaOnly):null}},vertexShader:vertexShaderSource.join('\r\n'),fragmentShader:fragmentShaderSource.join('\r\n'),transparent:!0,depthWrite:!1})};Earth.Points.prototype.createPoints=function(){var geometry=new THREE.BufferGeometry();var data_pos=[];var data_scale=[];var data_color=[];var data_opacity=[];for(var i=0;i<this.points.length;i++){if(!this.points[i].location||typeof this.points[i].location.lat=='undefined')this.points[i].location={lat:0,lng:0};var p=Earth.latLngToWorld(this.points[i].location,Earth.earthRadius+((typeof this.points[i].offset!='undefined')?this.points[i].offset:0.1));data_pos.push(p.x,p.y,p.z);data_scale.push((typeof this.points[i].scale!='undefined')?this.points[i].scale:1);var c=new THREE.Color(this.points[i].color||0xFFFFFF);data_color.push(c.r,c.g,c.b);data_opacity.push((typeof this.points[i].opacity!='undefined')?this.points[i].opacity:1)}
geometry.setAttribute("position",new THREE.Float32BufferAttribute(data_pos,3));geometry.setAttribute("customColor",new THREE.Float32BufferAttribute(data_color,3));geometry.setAttribute("size",new THREE.Float32BufferAttribute(data_scale,1));geometry.setAttribute("opacity",new THREE.Float32BufferAttribute(data_opacity,1));var material=this.createPointsMaterial();this.object3d.add(new THREE.Points(geometry,material))};Object.defineProperties(Earth.Points.prototype,{visible:{get:function(){return this.object3d.visible},set:function(v){this.object3d.visible=v}},scale:{get:function(){return this.options.scale},set:function(v){this.options.scale=v;if(this.ready)this.object3d.children[0].material.uniforms.usize.value=v}},opacity:{get:function(){return this.options.opacity},set:function(v){this.options.opacity=v;if(this.ready)this.object3d.children[0].material.uniforms.ualpha.value=v}},color:{get:function(){return this.options.color},set:function(v){this.options.color=v;if(this.ready)this.object3d.children[0].material.uniforms.ucolor.value=new THREE.Color(v)}}});Earth.Points.prototype.remove=function(){this.stopAllAnimations();this.removeEvents();Earth.dispose(this.object3d);this.earth.scene.remove(this.object3d);this.removed=!0};Earth.Line=function(initOptions,thisEarth){var defaults={isLine:!0,earth:thisEarth,locations:[],offset:0.01,offsetFlow:0,offsetEasing:'arc',hairline:!1,width:1,endWidth:-1,clip:1,dashed:!1,dashSize:0.5,dashRatio:0.5,dashOffset:0,color:'#FF0000',opacity:1,visible:!0,alwaysBehind:!1,alwaysOnTop:!1,transparent:((!initOptions.hairline&&initOptions.dashed)||typeof initOptions.opacity!='undefined'),};this.options=Object.assign(defaults,initOptions);this.lineLength=0;if(this.options.hairline){this.object3d=new THREE.Line();this.object3d.material=new THREE[(this.options.dashed)?'LineDashedMaterial':'LineBasicMaterial']()}else{this.object3d=new THREE.Mesh();this.meshLine=new Earth.MeshLine();this.object3d.geometry=this.meshLine.geometry;this.lineGeometry=new THREE.BufferGeometry();this.object3d.material=new Earth.MeshLineMat()}
thisEarth.scene.add(this.object3d);Object.assign(this,this.options);this.ready=!0;this.updatePoints();return this};Object.defineProperties(Earth.Line.prototype,{width:{get:function(){return this.options.width},set:function(v){this.options.width=v;if(!this.options.hairline){this.object3d.material.uniforms.lineWidth.value=v/10;if(this.ready)this.updateGeometry()}}},endWidth:{get:function(){return(this.options.endWidth==-1)?this.options.width:this.options.endWidth},set:function(v){this.options.endWidth=v;if(!this.options.hairline){if(this.ready)this.updateGeometry()}}},dashSize:{get:function(){return this.options.dashSize},set:function(v){this.options.dashSize=v;if(this.options.hairline){this.object3d.material.dashSize=v}else{if(this.ready)this.updateDash()}}},dashRatio:{get:function(){return this.options.dashRatio},set:function(v){this.options.dashRatio=Math.min(1,Math.max(0,v));if(this.options.hairline){this.object3d.material.gapSize=this.options.dashSize*v*2}else{this.object3d.material.uniforms.dashRatio.value=v}}},dashOffset:{get:function(){return this.options.dashOffset},set:function(v){this.options.dashOffset=v;if(!this.options.hairline){this.object3d.material.uniforms.dashOffset.value=v}}},color:{get:function(){return this.options.color},set:function(v){this.options.color=v;if(this.options.hairline){this.object3d.material.color=new THREE.Color(v)}else{this.object3d.material.uniforms.color.value=new THREE.Color(v)}}},opacity:{get:function(){return this.options.opacity},set:function(v){this.options.opacity=v;if(this.options.hairline){this.object3d.material.opacity=v}else{this.object3d.material.uniforms.opacity.value=v}}},visible:{get:function(){return this.object3d.visible},set:function(v){this.object3d.visible=v}},alwaysBehind:{get:function(){return!this.object3d.material.depthWrite},set:function(v){this.object3d.material.depthWrite=!v;this.object3d.renderOrder=(v)?-1:0}},transparent:{get:function(){return this.object3d.material.transparent},set:function(v){this.object3d.material.transparent=v}},clip:{get:function(){return this.options.clip},set:function(v){this.options.clip=Math.min(1,Math.max(0,v));if(this.ready)this.updateClip()}},offset:{get:function(){return this.options.offset},set:function(v){this.options.offset=v;if(this.ready)this.updatePoints()}},offsetFlow:{get:function(){return this.options.offsetFlow},set:function(v){this.options.offsetFlow=v;if(this.ready)this.updatePoints()}},locations:{get:function(){return this.options.locations},set:function(v){for(var i=0;i<v.length;i++){v[i]=Earth.formatLatLng(v[i])}
this.options.locations=v;if(this.ready)this.updatePoints()}},});Earth.Line.prototype.updatePoints=function(){this.points=[];if(this.locations.length){var fromPos=Earth.latLngToWorld(this.locations[0],Earth.earthRadius+this.offset);for(var i=1;i<this.locations.length;i++){var toPos=Earth.latLngToWorld(this.locations[i],Earth.earthRadius+this.offset);var subdevisions=Math.ceil(Math.sqrt((1+fromPos.distanceTo(toPos))*this.earth.quality));this.points.pop();this.points=this.points.concat(Earth.getPathPoints(fromPos,toPos,subdevisions,this.offset,this.offsetFlow,this.offsetEasing));fromPos=toPos}}
this.updateGeometry()};Earth.Line.prototype.updateGeometry=function(){if(this.hairline){this.object3d.geometry.setFromPoints(this.points)}else{this.lineGeometry.vertices=this.points;var thisLine=this;this.meshLine.setGeometry(this.lineGeometry,function(p){if(thisLine.endWidth==-1)return 1;p*=thisLine.clip;return THREE.Math.lerp(thisLine.width,thisLine.endWidth,p)/thisLine.width});if(this.dashed)this.lineLength=Earth.getLineDistance(this.points)}
this.updateClip();this.updateDash()};Earth.Line.prototype.updateClip=function(){if(this.clip<1){this.object3d.geometry.setDrawRange(0,Math.round(this.points.length*this.clip)*(this.hairline?1:6))}else{this.object3d.geometry.setDrawRange(0,Infinity)}};Earth.Line.prototype.updateDash=function(options){if(!this.dashed)return;if(this.hairline){this.object3d.computeLineDistances()}else{this.object3d.material.uniforms.useDash.value=1;this.object3d.material.uniforms.dashArray.value=1/this.lineLength*this.dashSize*3}};Earth.Line.prototype.remove=function(){this.stopAllAnimations();Earth.dispose(this.object3d);this.earth.scene.remove(this.object3d);this.removed=!0};Earth.Overlay=function(initOptions,thisEarth){var defaults={isOverlay:!0,earth:thisEarth,location:{lat:0,lng:0},offset:0,content:'',className:'',visible:!0,occlude:!0,containerScale:0,zoomScale:1,depthScale:0};this.options=Object.assign(defaults,initOptions);this.ready=!1;var div=document.createElement('div');thisEarth.element.appendChild(div);div.overlay=this;this.element=div;this.element.className='earth-overlay';this.element.appendChild(document.createElement('div'));thisEarth.overlays.push(this);Object.assign(this,this.options);return this};Object.assign(Earth.Overlay.prototype,Earth.ClassicEventDispatcher.prototype);Object.defineProperties(Earth.Overlay.prototype,{location:{get:function(){return this.options.location},set:function(v){this.options.location=Earth.formatLatLng(v)}},content:{get:function(){return this.element.firstChild.innerHTML},set:function(v){this.element.firstChild.innerHTML=v}},className:{get:function(){return this.element.firstChild.className},set:function(v){this.element.firstChild.className=v}},visible:{get:function(){return this.options.visible},set:function(v){this.options.visible=v;this.element.style.display=(v&&this.ready)?'block':'none'}},occlude:{get:function(){return this.options.occlude},set:function(v){this.options.occlude=v}}});Earth.Overlay.prototype.remove=function(){this.stopAllAnimations();this.earth.element.removeChild(this.element);this.removed=!0;var objIndex=this.earth.overlays.indexOf(this);if(objIndex==-1)return;this.earth.overlays.splice(objIndex,1)};Earth.Occludable=function(){};Earth.Occludable.prototype.updatePositions=function(){if(this.isOverlay){var world_pos=Earth.latLngToWorld(this.location,Earth.earthRadius+this.offset)}else{var world_pos=this.object3d.position}
this.elementPosition=Earth.worldToElement(world_pos,this.earth.elementSize,this.earth.camera);this.distance=this.earth.camera.position.distanceTo(world_pos)};Earth.Occludable.prototype.updateOcclusion=function(){if(this.distance<this.earth.camera.position.length()){var occluded=!1}else{var occluded=this.earth.elementCenter.distanceTo(this.elementPosition)<this.earth.radius}
if(typeof this.occluded=='undefined'||this.occluded!=occluded){this.occluded=occluded;this.dispatchEvent({type:'occlusion'})}};Object.assign(Earth.Marker.prototype,Earth.Occludable.prototype);Object.assign(Earth.Image.prototype,Earth.Occludable.prototype);Object.assign(Earth.Sprite.prototype,Earth.Occludable.prototype);Object.assign(Earth.Overlay.prototype,Earth.Occludable.prototype);Earth.Animation=function(options){Object.assign(this,options);this.earth.animations.push(this);return this};Earth.Animation.prototype.stop=function(dispatchComplete,jumpToEnd){if(jumpToEnd){this.time=this.duration;this.step(1)}
this.dispatchEvents(dispatchComplete);var aniIndex=this.earth.animations.indexOf(this);if(aniIndex==-1)return;this.earth.animations.splice(aniIndex,1)};Earth.Animation.prototype.dispatchEvents=function(dispatchComplete){if(this._end){this._end.bind(this.target)(this)}
if(typeof this.end=='function'){this.end.bind(this.target)(this)}
if(typeof this.complete=='function'&&dispatchComplete&&!this.target.removed){this.complete.bind(this.target)(this)}};Earth.Animation.Easing={'linear':function(t){return t},'in-quad':function(t){return t*t},'out-quad':function(t){return t*(2-t)},'in-out-quad':function(t){return t<.5?2*t*t:-1+(4-2*t)*t},'in-cubic':function(t){return t*t*t},'out-cubic':function(t){return(--t)*t*t+1},'in-out-cubic':function(t){return t<.5?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1},'in-quart':function(t){return t*t*t*t},'out-quart':function(t){return 1-(--t)*t*t*t},'in-out-quart':function(t){return t<.5?8*t*t*t*t:1-8*(--t)*t*t*t},'in-back':function(t){return t*t*(2.70158*t-1.70158)},'out-back':function(t){return(t=t-1)*t*(2.70158*t+1.70158)+1},'in-out-back':function(t){var s=1.70158;if((t/=0.5)<1)return 0.5*(t*t*(((s*=(1.525))+1)*t-s));return 0.5*((t-=2)*t*(((s*=(1.525))+1)*t+s)+2)},'elastic':function(t){var p=.3;if(t==0)return 0;if(t==1)return 1;var s=p/(2*Math.PI)*Math.asin(1);return Math.pow(2,-10*t)*Math.sin((t-s)*(2*Math.PI)/p)+1},'bounce':function(t){if(t<(1/2.75)){return(7.5625*t*t)}else if(t<(2/2.75)){return(7.5625*(t-=(1.5/2.75))*t+.75)}else if(t<(2.5/2.75)){return(7.5625*(t-=(2.25/2.75))*t+.9375)}else{return(7.5625*(t-=(2.625/2.75))*t+.984375)}},'arc':function(t){return t<.5?this['out-quad'](t*2):this['out-quad'](2-t*2)}};Earth.Animatable=function(){};Earth.Animatable.colorProp=['color','color2','color3','color4','color5','color6','color7','color8','lightColor','lightGroundColor'];Earth.Animatable.latlngProp=['location','sunLocation'];Earth.Animatable.angleProp=['lookAt'];Earth.Animatable.prototype.animate=function(prop,val,options){var ani={target:this,earth:(this.isEarth)?this:this.earth,prop:prop,val:val,time:0,duration:400,relativeDuration:0,easing:'in-out-quad',lerpLatLng:!1,loop:!1,oscillate:!1,paused:!1};Object.assign(ani,options);if(Earth.Animatable.colorProp.indexOf(ani.prop)!=-1){ani.type='color';ani.from=new THREE.Color(this[ani.prop]);ani.to=new THREE.Color(ani.val)}else if(Earth.Animatable.latlngProp.indexOf(ani.prop)!=-1){ani.type='latlng';ani.from=Earth.formatLatLng(Object.assign({},this[ani.prop]));ani.to=Earth.formatLatLng(Object.assign({},ani.val))}else if(Earth.Animatable.angleProp.indexOf(ani.prop)!=-1){this.options.lookAt=Earth.formatLatLng(Object.assign({},ani.val));ani.type='angle';ani.from=this.lookAngle;ani.to=this.getLocalAngle(this.object3d.position,this.getQuaternion(),Earth.latLngToWorld(this.options.lookAt,Earth.earthRadius));ani.prop='lookAngle'}else{ani.type='number';ani.from=this[ani.prop];ani.to=ani.val}
if(ani.relativeDuration){if(ani.type=='number'){ani.duration+=Math.abs(ani.from-ani.to)*ani.relativeDuration}else if(ani.type=='color'){ani.duration+=(Math.abs(ani.from.r-ani.to.r)+Math.abs(ani.from.g-ani.to.g)+Math.abs(ani.from.b-ani.to.b))/3*ani.relativeDuration}else if(ani.type=='latlng'){ani.duration+=Earth.getDistance(ani.from,ani.to)/1000*ani.relativeDuration}else if(ani.type=='angle'){ani.duration+=Math.abs(Earth.wrap(ani.from,0,2*Math.PI)-Earth.wrap(ani.to,0,2*Math.PI))*ani.relativeDuration}}
ani.step=function(t){t=Earth.Animation.Easing[this.easing](t);if(this.type=='number'){ani.target[this.prop]=THREE.Math.lerp(this.from,this.to,t)}else if(this.type=='color'){ani.target[this.prop]=this.from.clone().lerp(this.to,t)}else if(this.type=='latlng'){ani.target[this.prop]=Earth.lerp(this.from,this.to,t,ani.lerpLatLng)}else if(this.type=='angle'){ani.target[this.prop]=Earth.lerpAngle(this.from,this.to,t)}};return new Earth.Animation(ani)};Earth.Animatable.prototype.stopAllAnimations=function(dispatchComplete,jumpToEnd){var stop_animations=[];for(var i=0;i<this.earth.animations.length;i++){if(this.earth.animations[i].target==this)stop_animations.push(this.earth.animations[i])}
for(var i in stop_animations){stop_animations[i].stop(dispatchComplete,jumpToEnd)}};Object.assign(Earth.prototype,Earth.Animatable.prototype);Object.assign(Earth.Marker.prototype,Earth.Animatable.prototype);Object.assign(Earth.Image.prototype,Earth.Animatable.prototype);Object.assign(Earth.Sprite.prototype,Earth.Animatable.prototype);Object.assign(Earth.Points.prototype,Earth.Animatable.prototype);Object.assign(Earth.Line.prototype,Earth.Animatable.prototype);Object.assign(Earth.Overlay.prototype,Earth.Animatable.prototype);Earth.Orbit=function(camera,earth){this.camera=camera;this.earth=earth;this.enableRotate=!0;this.enableZoom=!0;this.zoomSpeed=1.0;this.minDistance=0;this.maxDistance=Infinity;this.minPolarAngle=0;this.maxPolarAngle=Math.PI;this.autoRotateSpeed=0;this.autoRotateSpeedUp=0;this.setPosition=function(pos){scope.camera.position.copy(pos);scope.camera.updateProjectionMatrix();scope.update();state=STATE.NONE;scope.dispatchEvent(changeEvent)};this.cancel=function(){onMouseUp()};this.update=function(){var offset=new THREE.Vector3();var quat=new THREE.Quaternion().setFromUnitVectors(camera.up,new THREE.Vector3(0,1,0));var quatInverse=quat.clone().invert();var lastPosition=new THREE.Vector3();var lastQuaternion=new THREE.Quaternion();return function update(){var position=scope.camera.position;offset.copy(position);offset.applyQuaternion(quat);spherical.setFromVector3(offset);if(state==STATE.NONE&&scope.autoRotateSpeed!=0){rotateLeft(getAutoRotationAngle()*earth.deltaTime/30)}
if(state==STATE.NONE&&scope.autoRotateSpeedUp!=0){rotateUp(getAutoRotationAngleY()*earth.deltaTime/30)}
spherical.theta+=sphericalDelta.theta;spherical.phi+=sphericalDelta.phi;spherical.phi=Math.max(scope.minPolarAngle,Math.min(scope.maxPolarAngle,spherical.phi));spherical.makeSafe();spherical.radius*=scale;spherical.radius=Math.max(scope.minDistance,Math.min(scope.maxDistance,spherical.radius));offset.setFromSpherical(spherical);offset.applyQuaternion(quatInverse);position.copy(offset);scope.camera.lookAt(0,0,0);sphericalDelta.set(0,0,0);scale=1;if(zoomChanged||lastPosition.distanceToSquared(scope.camera.position)>EPS||8*(1-lastQuaternion.dot(scope.camera.quaternion))>EPS){scope.dispatchEvent(changeEvent);lastPosition.copy(scope.camera.position);lastQuaternion.copy(scope.camera.quaternion);zoomChanged=!1;return!0}
return!1}}();this.dispose=function(){scope.earth.canvas.removeEventListener('mousedown',onMouseDown,!1);scope.earth.canvas.removeEventListener('wheel',onMouseWheel,!1);scope.earth.canvas.removeEventListener('touchstart',onTouchStart,!1);scope.earth.canvas.removeEventListener('touchend',onTouchEnd,!1);document.removeEventListener('touchmove',onTouchMove,!1);document.removeEventListener('mousemove',onMouseMove,!1);document.removeEventListener('mouseup',onMouseUp,!1)};var scope=this;var changeEvent={type:'change'};var startEvent={type:'start'};var endEvent={type:'end'};var STATE={NONE:-1,ROTATE:0,TOUCHZOOM:1};var state=STATE.NONE;var EPS=0.000001;var spherical=new THREE.Spherical();var sphericalDelta=new THREE.Spherical();var scale=1;var zoomChanged=!1;var rotateStart=new THREE.Vector2();var rotateEnd=new THREE.Vector2();var rotateDelta=new THREE.Vector2();var dollyStart=new THREE.Vector2();var dollyEnd=new THREE.Vector2();var dollyDelta=new THREE.Vector2();function getAutoRotationAngle(){return 2*Math.PI/60/60*scope.autoRotateSpeed}
function getAutoRotationAngleY(){return 2*Math.PI/60/60*scope.autoRotateSpeedUp}
function getZoomScale(){return Math.pow(0.95,scope.zoomSpeed)}
function rotateLeft(angle){sphericalDelta.theta-=angle}
function rotateUp(angle){sphericalDelta.phi-=angle}
function dollyIn(dollyScale){scale/=dollyScale}
function dollyOut(dollyScale){scale*=dollyScale}
function handleMouseDownRotate(event){rotateStart=Earth.getEventPosition(event)}
function handleMouseMoveRotate(event){rotateEnd=Earth.getEventPosition(event);var earthRadiusPx=scope.earth.elementSize.y/2*0.75*scope.earth.zoom;var mouseCenterOffset=Earth.mouseCenterOffset(rotateEnd,scope.earth,earthRadiusPx);mouseCenterOffset=Earth.Animation.Easing['in-cubic'](mouseCenterOffset);var speed=0.75/earthRadiusPx;speed*=1+mouseCenterOffset*0.85;rotateDelta.subVectors(rotateEnd,rotateStart).multiplyScalar(speed);rotateLeft(rotateDelta.x);rotateUp(rotateDelta.y);rotateStart.copy(rotateEnd);scope.update()}
function handleMouseWheel(event){if(event.deltaY<0){dollyOut(getZoomScale())}else if(event.deltaY>0){dollyIn(getZoomScale())}
scope.update()}
function handleTouchStartDollyPan(event){if(scope.enableZoom){var dx=event.touches[0].pageX-event.touches[1].pageX;var dy=event.touches[0].pageY-event.touches[1].pageY;var distance=Math.sqrt(dx*dx+dy*dy);dollyStart.set(0,distance)}}
function handleTouchMoveDollyPan(event){if(scope.enableZoom){var dx=event.touches[0].pageX-event.touches[1].pageX;var dy=event.touches[0].pageY-event.touches[1].pageY;var distance=Math.sqrt(dx*dx+dy*dy);dollyEnd.set(0,distance);dollyDelta.set(0,Math.pow(dollyEnd.y/dollyStart.y,scope.zoomSpeed));dollyIn(dollyDelta.y);dollyStart.copy(dollyEnd);scope.update()}}
function onMouseDown(event){event.preventDefault();switch(event.button){case THREE.MOUSE.LEFT:if(scope.enableRotate===!1)return;handleMouseDownRotate(event);state=STATE.ROTATE;break}
if(state!==STATE.NONE){document.addEventListener('mousemove',onMouseMove,!1);document.addEventListener('mouseup',onMouseUp,!1);scope.dispatchEvent(startEvent)}}
function onMouseMove(event){event.preventDefault();switch(state){case STATE.ROTATE:if(!scope.enableRotate)return;handleMouseMoveRotate(event);break}}
function onMouseUp(event){document.removeEventListener('mousemove',onMouseMove,!1);document.removeEventListener('mouseup',onMouseUp,!1);scope.dispatchEvent(endEvent);state=STATE.NONE}
function onMouseWheel(event){if(!scope.enableZoom)return;event.preventDefault();event.stopPropagation();handleMouseWheel(event)}
function onTouchStart(event){event.preventDefault();switch(event.touches.length){case 1:if(scope.enableRotate===!1)return;handleMouseDownRotate(event);state=STATE.ROTATE;break;case 2:if(scope.enableZoom===!1)return;handleTouchStartDollyPan(event);state=STATE.TOUCHZOOM;break;default:state=STATE.NONE}
if(state!==STATE.NONE){scope.dispatchEvent(startEvent)}}
function onTouchMove(event){event.stopPropagation();switch(event.touches.length){case 1:if(!scope.enableRotate)return;if(state!==STATE.ROTATE)return;handleMouseMoveRotate(event);break;case 2:if(!scope.enableZoom)return;if(state!==STATE.TOUCHZOOM)return;handleTouchMoveDollyPan(event);break;default:state=STATE.NONE}}
function onTouchEnd(event){scope.dispatchEvent(endEvent);state=STATE.NONE}
scope.earth.canvas.addEventListener('mousedown',onMouseDown,!1);scope.earth.canvas.addEventListener('wheel',onMouseWheel,!1);scope.earth.canvas.addEventListener('touchstart',onTouchStart,!1);scope.earth.canvas.addEventListener('touchend',onTouchEnd,!1);document.addEventListener('touchmove',onTouchMove,!1);this.update()};Object.assign(Earth.Orbit.prototype,Earth.ClassicEventDispatcher.prototype);Earth.MeshLine=function(){this.positions=[];this.previous=[];this.next=[];this.side=[];this.width=[];this.indices_array=[];this.uvs=[];this.counters=[];this.geometry=new THREE.BufferGeometry();this.widthCallback=null};Earth.MeshLine.prototype.setGeometry=function(g,c){this.widthCallback=c;this.positions=[];this.counters=[];if(g instanceof THREE.BufferGeometry){for(var j=0;j<g.vertices.length;j++){var v=g.vertices[j];var c=j/g.vertices.length;this.positions.push(v.x,v.y,v.z);this.positions.push(v.x,v.y,v.z);this.counters.push(c);this.counters.push(c)}}
if(g instanceof Float32Array||g instanceof Array){for(var j=0;j<g.length;j+=3){var c=j/g.length;this.positions.push(g[j],g[j+1],g[j+2]);this.positions.push(g[j],g[j+1],g[j+2]);this.counters.push(c);this.counters.push(c)}}
this.process()}
Earth.MeshLine.prototype.compareV3=function(a,b){var aa=a*6;var ab=b*6;return(this.positions[aa]===this.positions[ab])&&(this.positions[aa+1]===this.positions[ab+1])&&(this.positions[aa+2]===this.positions[ab+2])}
Earth.MeshLine.prototype.copyV3=function(a){var aa=a*6;return[this.positions[aa],this.positions[aa+1],this.positions[aa+2]]}
Earth.MeshLine.prototype.process=function(){var l=this.positions.length/6;this.previous=[];this.next=[];this.side=[];this.width=[];this.indices_array=[];this.uvs=[];for(var j=0;j<l;j++){this.side.push(1);this.side.push(-1)}
var w;for(var j=0;j<l;j++){if(this.widthCallback)w=this.widthCallback(j/(l-1));else w=1;this.width.push(w);this.width.push(w)}
for(var j=0;j<l;j++){this.uvs.push(j/(l-1),0);this.uvs.push(j/(l-1),1)}
var v;if(this.compareV3(0,l-1)){v=this.copyV3(l-2)}else{v=this.copyV3(0)}
this.previous.push(v[0],v[1],v[2]);this.previous.push(v[0],v[1],v[2]);for(var j=0;j<l-1;j++){v=this.copyV3(j);this.previous.push(v[0],v[1],v[2]);this.previous.push(v[0],v[1],v[2])}
for(var j=1;j<l;j++){v=this.copyV3(j);this.next.push(v[0],v[1],v[2]);this.next.push(v[0],v[1],v[2])}
if(this.compareV3(l-1,0)){v=this.copyV3(1)}else{v=this.copyV3(l-1)}
this.next.push(v[0],v[1],v[2]);this.next.push(v[0],v[1],v[2]);for(var j=0;j<l-1;j++){var n=j*2;this.indices_array.push(n,n+1,n+2);this.indices_array.push(n+2,n+1,n+3)}
this.attributes={position:new THREE.BufferAttribute(new Float32Array(this.positions),3),previous:new THREE.BufferAttribute(new Float32Array(this.previous),3),next:new THREE.BufferAttribute(new Float32Array(this.next),3),side:new THREE.BufferAttribute(new Float32Array(this.side),1),width:new THREE.BufferAttribute(new Float32Array(this.width),1),uv:new THREE.BufferAttribute(new Float32Array(this.uvs),2),index:new THREE.BufferAttribute(new Uint16Array(this.indices_array),1),counters:new THREE.BufferAttribute(new Float32Array(this.counters),1)};this.geometry.setAttribute('position',this.attributes.position);this.geometry.setAttribute('previous',this.attributes.previous);this.geometry.setAttribute('next',this.attributes.next);this.geometry.setAttribute('side',this.attributes.side);this.geometry.setAttribute('width',this.attributes.width);this.geometry.setAttribute('uv',this.attributes.uv);this.geometry.setIndex(this.attributes.index);this.geometry.setAttribute('counters',this.attributes.counters)}
Earth.MeshLineMat=function(parameters){var vertexShaderSource=['precision highp float;','','attribute vec3 position;','attribute vec3 previous;','attribute vec3 next;','attribute float side;','attribute float width;','attribute vec2 uv;','attribute float counters;','','uniform mat4 projectionMatrix;','uniform mat4 modelViewMatrix;','uniform vec2 resolution;','uniform float lineWidth;','uniform vec3 color;','uniform float opacity;','uniform float near;','uniform float far;','uniform float sizeAttenuation;','','varying vec2 vUV;','varying vec4 vColor;','varying float vCounters;','','vec2 fix( vec4 i, float aspect ) {','',' vec2 res = i.xy / i.w;',' res.x *= aspect;',' vCounters = counters;',' return res;','','}','','void main() {','',' float aspect = resolution.x / resolution.y;',' float pixelWidthRatio = 1. / (resolution.x * projectionMatrix[0][0]);','',' vColor = vec4( color, opacity );',' vUV = uv;','',' mat4 m = projectionMatrix * modelViewMatrix;',' vec4 finalPosition = m * vec4( position, 1.0 );',' vec4 prevPos = m * vec4( previous, 1.0 );',' vec4 nextPos = m * vec4( next, 1.0 );','',' vec2 currentP = fix( finalPosition, aspect );',' vec2 prevP = fix( prevPos, aspect );',' vec2 nextP = fix( nextPos, aspect );','',' float pixelWidth = finalPosition.w * pixelWidthRatio;',' float w = 1.8 * pixelWidth * lineWidth * width;','',' if( sizeAttenuation == 1. ) {',' w = 1.8 * lineWidth * width;',' }','',' vec2 dir;',' if( nextP == currentP ) dir = normalize( currentP - prevP );',' else if( prevP == currentP ) dir = normalize( nextP - currentP );',' else {',' vec2 dir1 = normalize( currentP - prevP );',' vec2 dir2 = normalize( nextP - currentP );',' dir = normalize( dir1 + dir2 );','',' vec2 perp = vec2( -dir1.y, dir1.x );',' vec2 miter = vec2( -dir.y, dir.x );',' //w = clamp( w / dot( miter, perp ), 0., 4. * lineWidth * width );','',' }','',' //vec2 normal = ( cross( vec3( dir, 0. ), vec3( 0., 0., 1. ) ) ).xy;',' vec2 normal = vec2( -dir.y, dir.x );',' normal.x /= aspect;',' normal *= .5 * w;','',' vec4 offset = vec4( normal * side, 0.0, 1.0 );',' finalPosition.xy += offset.xy;','',' gl_Position = finalPosition;','','}'];var fragmentShaderSource=['#extension GL_OES_standard_derivatives : enable','precision mediump float;','','uniform sampler2D map;','uniform sampler2D alphaMap;','uniform float useMap;','uniform float useAlphaMap;','uniform float useDash;','uniform float dashArray;','uniform float dashOffset;','uniform float dashRatio;','uniform float visibility;','uniform float alphaTest;','uniform vec2 repeat;','','varying vec2 vUV;','varying vec4 vColor;','varying float vCounters;','','void main() {','',' vec4 c = vColor;',' if( useMap == 1. ) c *= texture2D( map, vUV * repeat );',' if( useAlphaMap == 1. ) c.a *= texture2D( alphaMap, vUV * repeat ).a;',' if( c.a < alphaTest ) discard;',' if( useDash == 1. ){',' c.a *= ceil(mod(vCounters + dashOffset, dashArray) - (dashArray * dashRatio));',' }',' gl_FragColor = c;',' gl_FragColor.a *= step(vCounters, visibility);','}'];function check(v,d){if(v===undefined)return d;return v}
parameters=parameters||{};this.lineWidth=check(parameters.lineWidth,1);this.map=check(parameters.map,null);this.useMap=check(parameters.useMap,0);this.alphaMap=check(parameters.alphaMap,null);this.useAlphaMap=check(parameters.useAlphaMap,0);this.color=check(parameters.color,new THREE.Color(0xffffff));this.opacity=check(parameters.opacity,1);this.resolution=check(parameters.resolution,new THREE.Vector2(1,1));this.sizeAttenuation=check(parameters.sizeAttenuation,1);this.near=check(parameters.near,1);this.far=check(parameters.far,1);this.dashArray=check(parameters.dashArray,0);this.dashOffset=check(parameters.dashOffset,0);this.dashRatio=check(parameters.dashRatio,0.5);this.useDash=(this.dashArray!==0)?1:0;this.visibility=check(parameters.visibility,1);this.alphaTest=check(parameters.alphaTest,0);this.repeat=check(parameters.repeat,new THREE.Vector2(1,1));var material=new THREE.RawShaderMaterial({uniforms:{lineWidth:{type:'f',value:this.lineWidth},map:{type:'t',value:this.map},useMap:{type:'f',value:this.useMap},alphaMap:{type:'t',value:this.alphaMap},useAlphaMap:{type:'f',value:this.useAlphaMap},color:{type:'c',value:this.color},opacity:{type:'f',value:this.opacity},resolution:{type:'v2',value:this.resolution},sizeAttenuation:{type:'f',value:this.sizeAttenuation},near:{type:'f',value:this.near},far:{type:'f',value:this.far},dashArray:{type:'f',value:this.dashArray},dashOffset:{type:'f',value:this.dashOffset},dashRatio:{type:'f',value:this.dashRatio},useDash:{type:'f',value:this.useDash},visibility:{type:'f',value:this.visibility},alphaTest:{type:'f',value:this.alphaTest},repeat:{type:'v2',value:this.repeat}},vertexShader:vertexShaderSource.join('\r\n'),fragmentShader:fragmentShaderSource.join('\r\n')});material.type='MeshLineMaterial';material.setValues(parameters);return material};Earth.MeshLineMat.prototype=Object.create(THREE.Material.prototype);Earth.MeshLineMat.prototype.constructor=Earth.MeshLineMat;Earth.ObjParser=(function(){var object_pattern=/^[og]\s*(.+)?/;function ParserState(){var state={objects:[],object:{},vertices:[],normals:[],startObject:function(name,fromDeclaration){if(this.object&&this.object.fromDeclaration===!1){this.object.name=name;this.object.fromDeclaration=(fromDeclaration!==!1);return}
var previousMaterial=(this.object&&typeof this.object.currentMaterial==='function'?this.object.currentMaterial():undefined);if(this.object&&typeof this.object._finalize==='function'){this.object._finalize(!0)}
this.object={name:name||'',fromDeclaration:(fromDeclaration!==!1),geometry:{vertices:[],normals:[]},materials:[],smooth:!0,currentMaterial:function(){if(this.materials.length>0){return this.materials[this.materials.length-1]}
return undefined},_finalize:function(end){var lastMultiMaterial=this.currentMaterial();if(lastMultiMaterial&&lastMultiMaterial.groupEnd===-1){lastMultiMaterial.groupEnd=this.geometry.vertices.length/3;lastMultiMaterial.groupCount=lastMultiMaterial.groupEnd-lastMultiMaterial.groupStart;lastMultiMaterial.inherited=!1}
if(end&&this.materials.length>1){for(var mi=this.materials.length-1;mi>=0;mi --){if(this.materials[mi].groupCount<=0){this.materials.splice(mi,1)}}}
if(end&&this.materials.length===0){this.materials.push({name:'',smooth:this.smooth})}
return lastMultiMaterial}};if(previousMaterial&&previousMaterial.name&&typeof previousMaterial.clone==='function'){var declared=previousMaterial.clone(0);declared.inherited=!0;this.object.materials.push(declared)}
this.objects.push(this.object)},finalize:function(){if(this.object&&typeof this.object._finalize==='function'){this.object._finalize(!0)}},parseVertexIndex:function(value,len){var index=parseInt(value,10);return(index>=0?index-1:index+len/3)*3},parseNormalIndex:function(value,len){var index=parseInt(value,10);return(index>=0?index-1:index+len/3)*3},addVertex:function(a,b,c){var src=this.vertices;var dst=this.object.geometry.vertices;dst.push(src[a+0],src[a+1],src[a+2]);dst.push(src[b+0],src[b+1],src[b+2]);dst.push(src[c+0],src[c+1],src[c+2])},addNormal:function(a,b,c){var src=this.normals;var dst=this.object.geometry.normals;dst.push(src[a+0],src[a+1],src[a+2]);dst.push(src[b+0],src[b+1],src[b+2]);dst.push(src[c+0],src[c+1],src[c+2])},addFace:function(a,b,c,ua,ub,uc,na,nb,nc){var vLen=this.vertices.length;var ia=this.parseVertexIndex(a,vLen);var ib=this.parseVertexIndex(b,vLen);var ic=this.parseVertexIndex(c,vLen);this.addVertex(ia,ib,ic);if(na!==undefined&&na!==''){var nLen=this.normals.length;ia=this.parseNormalIndex(na,nLen);ib=na===nb?ia:this.parseNormalIndex(nb,nLen);ic=na===nc?ia:this.parseNormalIndex(nc,nLen);this.addNormal(ia,ib,ic)}},};state.startObject('',!1);return state}
function OBJLoader(manager){this.manager=(manager!==undefined)?manager:THREE.DefaultLoadingManager;this.materials=null}
OBJLoader.prototype={constructor:OBJLoader,parse:function(text){var state=new ParserState();if(text.indexOf('\r\n')!==-1){text=text.replace(/\r\n/g,'\n')}
if(text.indexOf('\\\n')!==-1){text=text.replace(/\\\n/g,'')}
var lines=text.split('\n');var line='',lineFirstChar='';var lineLength=0;var result=[];var trimLeft=(typeof ''.trimLeft==='function');for(var i=0,l=lines.length;i<l;i ++){line=lines[i];line=trimLeft?line.trimLeft():line.trim();lineLength=line.length;if(lineLength===0)continue;lineFirstChar=line.charAt(0);if(lineFirstChar==='#')continue;if(lineFirstChar==='v'){var data=line.split(/\s+/);switch(data[0]){case 'v':state.vertices.push(parseFloat(data[1]),parseFloat(data[2]),parseFloat(data[3]));break;case 'vn':state.normals.push(parseFloat(data[1]),parseFloat(data[2]),parseFloat(data[3]));break}}else if(lineFirstChar==='f'){var lineData=line.substr(1).trim();var vertexData=lineData.split(/\s+/);var faceVertices=[];for(var j=0,jl=vertexData.length;j<jl;j ++){var vertex=vertexData[j];if(vertex.length>0){var vertexParts=vertex.split('/');faceVertices.push(vertexParts)}}
var v1=faceVertices[0];for(var j=1,jl=faceVertices.length-1;j<jl;j ++){var v2=faceVertices[j];var v3=faceVertices[j+1];state.addFace(v1[0],v2[0],v3[0],v1[1],v2[1],v3[1],v1[2],v2[2],v3[2])}}else if((result=object_pattern.exec(line))!==null){var name=(" "+result[0].substr(1).trim()).substr(1);state.startObject(name)}else if(lineFirstChar==='s'){result=line.split(' ');if(result.length>1){var value=result[1].trim().toLowerCase();state.object.smooth=(value!=='0'&&value!=='off')}else{state.object.smooth=!0}
var material=state.object.currentMaterial();if(material)material.smooth=state.object.smooth}else{if(line==='\0')continue}}
state.finalize();var container=new THREE.Group();for(var i=0,l=state.objects.length;i<l;i ++){var object=state.objects[i];var geometry=object.geometry;if(geometry.vertices.length===0)continue;var buffergeometry=new THREE.BufferGeometry();buffergeometry.setAttribute('position',new THREE.Float32BufferAttribute(geometry.vertices,3));if(geometry.normals.length>0){buffergeometry.setAttribute('normal',new THREE.Float32BufferAttribute(geometry.normals,3))}else{buffergeometry.computeVertexNormals()}
var mesh=new THREE.Mesh(buffergeometry);mesh.name=object.name;container.add(mesh)}
return container}};return OBJLoader})();if(document.readyState=='loading'){document.addEventListener("DOMContentLoaded",function(){Earth.dispatchLoadEvent()})}else{setTimeout(function(){Earth.dispatchLoadEvent()},1)};
Earth.css='.earth-container{position:relative;z-index:1}.earth-container::before{content:"";display:block;padding-top:100%}.earth-container>canvas{position:absolute;top:0;left:0;z-index:1000;user-select:none}.earth-draggable{cursor:all-scroll;cursor:-webkit-grab;cursor:grab}.earth-dragging *{cursor:all-scroll;cursor:-webkit-grabbing!important;cursor:grabbing!important}.earth-clickable{cursor:pointer}.earth-overlay{position:absolute;top:0;left:0;user-select:none;pointer-events:none;transform-origin:0 0}.earth-overlay a,.earth-overlay input,.earth-overlay button{pointer-events:all}.earth-hittest{position:fixed;width:200vh;max-width:100%;top:0;left:0;z-index:999999}.earth-hittest svg{max-width:100%;height:auto;display:block;margin:0;opacity:0}';
Earth.markerObj='o X\nv -0.424 -0.100 -0.282\nv -0.424 0.100 -0.282\nv -0.282 -0.100 -0.424\nv -0.282 0.100 -0.424\nv 0.282 -0.100 0.424\nv 0.282 0.100 0.424\nv 0.424 -0.100 0.282\nv 0.424 0.100 0.282\nv -0.141 -0.100 0.000\nv 0.000 -0.100 0.141\nv 0.000 0.100 0.141\nv -0.141 0.100 0.000\nv 0.141 -0.100 0.000\nv 0.000 -0.100 -0.141\nv 0.000 0.100 -0.141\nv 0.141 0.100 0.000\nv -0.424 -0.100 0.282\nv -0.282 -0.100 0.424\nv -0.282 0.100 0.424\nv -0.424 0.100 0.282\nv 0.424 -0.100 -0.282\nv 0.282 -0.100 -0.424\nv 0.282 0.100 -0.424\nv 0.424 0.100 -0.282\nvn -0.70 0.00 -0.70\nvn 0.70 0.00 -0.70\nvn 0.70 0.00 0.70\nvn -0.70 0.00 0.70\nvn 0.00 -1.00 0.00\nvn 0.00 1.00 0.00\ns off\nf 2//1 3//1 1//1\nf 16//2 7//2 13//2\nf 8//3 5//3 7//3\nf 12//4 1//4 9//4\nf 13//5 10//5 9//5\nf 15//6 12//6 11//6\nf 6//4 10//4 5//4\nf 11//3 18//3 10//3\nf 4//2 14//2 3//2\nf 15//1 22//1 14//1\nf 19//4 17//4 18//4\nf 9//1 20//1 12//1\nf 12//6 19//6 11//6\nf 10//5 17//5 9//5\nf 23//2 21//2 22//2\nf 13//3 24//3 16//3\nf 16//6 23//6 15//6\nf 14//5 21//5 13//5\nf 2//1 4//1 3//1\nf 16//2 8//2 7//2\nf 8//3 6//3 5//3\nf 12//4 2//4 1//4\nf 1//5 3//5 14//5\nf 13//5 7//5 5//5\nf 1//5 14//5 9//5\nf 5//5 10//5 13//5\nf 9//5 14//5 13//5\nf 6//6 8//6 16//6\nf 15//6 4//6 2//6\nf 6//6 16//6 11//6\nf 2//6 12//6 15//6\nf 11//6 16//6 15//6\nf 6//4 11//4 10//4\nf 11//3 19//3 18//3\nf 4//2 15//2 14//2\nf 15//1 23//1 22//1\nf 19//4 20//4 17//4\nf 9//1 17//1 20//1\nf 12//6 20//6 19//6\nf 10//5 18//5 17//5\nf 23//2 24//2 21//2\nf 13//3 21//3 24//3\nf 16//6 24//6 23//6\nf 14//5 22//5 21//5\no Marker\nv 0.000 1.241 -0.159\nv 0.000 1.150 -0.294\nv 0.000 1.015 -0.384\nv 0.000 0.856 -0.416\nv 0.000 0.673 -0.364\nv -0.000 0.466 -0.216\nv 0.060 1.241 -0.147\nv 0.112 1.150 -0.271\nv 0.147 1.015 -0.355\nv 0.159 0.856 -0.384\nv 0.139 0.673 -0.336\nv 0.083 0.466 -0.200\nv 0.038 0.263 -0.092\nv -0.000 1.272 -0.000\nv 0.112 1.241 -0.112\nv 0.208 1.150 -0.208\nv 0.271 1.015 -0.271\nv 0.294 0.856 -0.294\nv 0.257 0.673 -0.257\nv 0.153 0.466 -0.153\nv 0.071 0.263 -0.071\nv 0.147 1.241 -0.060\nv 0.271 1.150 -0.112\nv 0.355 1.015 -0.147\nv 0.384 0.856 -0.159\nv 0.336 0.673 -0.139\nv 0.200 0.466 -0.083\nv 0.092 0.263 -0.038\nv 0.159 1.241 -0.000\nv 0.294 1.150 -0.000\nv 0.384 1.015 -0.000\nv 0.416 0.856 -0.000\nv 0.364 0.673 -0.000\nv 0.216 0.466 -0.000\nv 0.100 0.263 -0.000\nv 0.147 1.241 0.060\nv 0.271 1.150 0.112\nv 0.355 1.015 0.147\nv 0.384 0.856 0.159\nv 0.336 0.673 0.139\nv 0.200 0.466 0.083\nv 0.092 0.263 0.038\nv 0.112 1.241 0.112\nv 0.208 1.150 0.208\nv 0.271 1.015 0.271\nv 0.294 0.856 0.294\nv 0.257 0.673 0.257\nv 0.153 0.466 0.153\nv 0.071 0.263 0.071\nv 0.060 1.241 0.147\nv 0.112 1.150 0.271\nv 0.147 1.015 0.355\nv 0.159 0.856 0.384\nv 0.139 0.673 0.336\nv 0.083 0.466 0.200\nv 0.038 0.263 0.092\nv -0.000 1.241 0.159\nv -0.000 1.150 0.294\nv -0.000 1.015 0.384\nv -0.000 0.856 0.416\nv -0.000 0.673 0.364\nv -0.000 0.466 0.216\nv -0.000 0.263 0.100\nv -0.060 1.241 0.147\nv -0.112 1.150 0.271\nv -0.147 1.015 0.355\nv -0.159 0.856 0.384\nv -0.139 0.673 0.336\nv -0.083 0.466 0.200\nv -0.038 0.263 0.092\nv -0.112 1.241 0.112\nv -0.208 1.150 0.208\nv -0.271 1.015 0.271\nv -0.294 0.856 0.294\nv -0.257 0.673 0.257\nv -0.153 0.466 0.153\nv -0.071 0.263 0.071\nv -0.000 0.000 -0.000\nv -0.147 1.241 0.060\nv -0.271 1.150 0.112\nv -0.355 1.015 0.147\nv -0.384 0.856 0.159\nv -0.336 0.673 0.139\nv -0.200 0.466 0.083\nv -0.092 0.263 0.038\nv -0.159 1.241 -0.000\nv -0.294 1.150 -0.000\nv -0.384 1.015 -0.000\nv -0.416 0.856 -0.000\nv -0.364 0.673 -0.000\nv -0.216 0.466 -0.000\nv -0.100 0.263 -0.000\nv -0.147 1.241 -0.060\nv -0.271 1.150 -0.112\nv -0.355 1.015 -0.147\nv -0.384 0.856 -0.159\nv -0.336 0.673 -0.139\nv -0.200 0.466 -0.083\nv -0.092 0.263 -0.038\nv -0.112 1.241 -0.112\nv -0.208 1.150 -0.208\nv -0.271 1.015 -0.271\nv -0.294 0.856 -0.294\nv -0.257 0.673 -0.257\nv -0.153 0.466 -0.153\nv -0.071 0.263 -0.071\nv -0.060 1.241 -0.147\nv -0.112 1.150 -0.271\nv -0.147 1.015 -0.355\nv -0.159 0.856 -0.384\nv -0.139 0.673 -0.336\nv -0.083 0.466 -0.200\nv -0.038 0.263 -0.092\nv 0.000 0.263 -0.100\nvn 0.00 0.91 -0.40\nvn 0.27 0.69 -0.66\nvn 0.00 0.69 -0.71\nvn 0.00 -0.43 -0.90\nvn 0.32 -0.54 -0.77\nvn 0.34 -0.43 -0.83\nvn 0.00 -0.42 -0.90\nvn 0.38 -0.03 -0.92\nvn 0.34 -0.42 -0.83\nvn 0.35 0.37 -0.85\nvn 0.00 0.37 -0.92\nvn 0.00 1.00 0.00\nvn 0.15 0.91 -0.37\nvn 0.00 -1.00 0.00\nvn 0.00 -0.54 -0.84\nvn 0.00 -0.03 -0.99\nvn 0.70 -0.03 -0.70\nvn 0.64 -0.42 -0.64\nvn 0.65 0.37 -0.65\nvn 0.28 0.91 -0.28\nvn 0.63 -0.43 -0.63\nvn 0.59 -0.54 -0.59\nvn 0.50 0.69 -0.50\nvn 0.83 -0.43 -0.34\nvn 0.77 -0.54 -0.32\nvn 0.92 -0.03 -0.38\nvn 0.66 0.69 -0.27\nvn 0.83 -0.42 -0.34\nvn 0.85 0.37 -0.35\nvn 0.37 0.91 -0.15\nvn 0.99 -0.03 0.00\nvn 0.71 0.69 0.00\nvn 0.84 -0.54 0.00\nvn 0.90 -0.43 0.00\nvn 0.90 -0.42 0.00\nvn 0.92 0.37 0.00\nvn 0.40 0.91 0.00\nvn 0.83 -0.43 0.34\nvn 0.83 -0.42 0.34\nvn 0.66 0.69 0.27\nvn 0.85 0.37 0.35\nvn 0.37 0.91 0.15\nvn 0.77 -0.54 0.32\nvn 0.92 -0.03 0.38\nvn 0.50 0.69 0.50\nvn 0.65 0.37 0.65\nvn 0.28 0.91 0.28\nvn 0.63 -0.43 0.63\nvn 0.59 -0.54 0.59\nvn 0.70 -0.03 0.70\nvn 0.64 -0.42 0.64\nvn 0.34 -0.43 0.83\nvn 0.32 -0.54 0.77\nvn 0.38 -0.03 0.92\nvn 0.15 0.91 0.37\nvn 0.27 0.69 0.66\nvn 0.34 -0.42 0.83\nvn 0.35 0.37 0.85\nvn 0.00 0.69 0.71\nvn 0.00 -0.54 0.84\nvn 0.00 -0.43 0.90\nvn 0.00 -0.42 0.90\nvn 0.00 0.37 0.92\nvn 0.00 0.91 0.40\nvn 0.00 -0.03 0.99\nvn -0.34 -0.43 0.83\nvn -0.34 -0.42 0.83\nvn -0.35 0.37 0.85\nvn -0.15 0.91 0.37\nvn -0.32 -0.54 0.77\nvn -0.38 -0.03 0.92\nvn -0.27 0.69 0.66\nvn -0.28 0.91 0.28\nvn -0.63 -0.43 0.63\nvn -0.64 -0.42 0.64\nvn -0.59 -0.54 0.59\nvn -0.65 0.37 0.65\nvn -0.70 -0.03 0.70\nvn -0.50 0.69 0.50\nvn -0.77 -0.54 0.32\nvn -0.85 0.37 0.35\nvn -0.92 -0.03 0.38\nvn -0.37 0.91 0.15\nvn -0.66 0.69 0.27\nvn -0.83 -0.43 0.34\nvn -0.83 -0.42 0.34\nvn -0.90 -0.43 0.00\nvn -0.90 -0.42 0.00\nvn -0.92 0.37 0.00\nvn -0.40 0.91 0.00\nvn -0.84 -0.54 0.00\nvn -0.99 -0.03 0.00\nvn -0.71 0.69 0.00\nvn -0.92 -0.03 -0.38\nvn -0.83 -0.42 -0.34\nvn -0.85 0.37 -0.35\nvn -0.37 0.91 -0.15\nvn -0.83 -0.43 -0.34\nvn -0.77 -0.54 -0.32\nvn -0.66 0.69 -0.27\nvn -0.63 -0.43 -0.63\nvn -0.64 -0.42 -0.64\nvn -0.59 -0.54 -0.59\nvn -0.65 0.37 -0.65\nvn -0.70 -0.03 -0.70\nvn -0.50 0.69 -0.50\nvn -0.28 0.91 -0.28\nvn -0.35 0.37 -0.85\nvn -0.38 -0.03 -0.92\nvn -0.27 0.69 -0.66\nvn -0.32 -0.54 -0.77\nvn -0.34 -0.43 -0.83\nvn -0.34 -0.42 -0.83\nvn -0.15 0.91 -0.37\ns 1\nf 25//7 32//8 26//9\nf 138//10 36//11 37//12\nf 29//13 34//14 35//15\nf 26//9 33//16 27//17\nf 25//7 38//18 31//19\nf 102//20 138//10 37//12\nf 29//13 36//11 30//21\nf 28//22 33//16 34//14\nf 35//15 42//23 43//24\nf 32//8 41//25 33//16\nf 31//19 38//18 39//26\nf 102//20 37//12 45//27\nf 36//11 43//24 44//28\nf 33//16 42//23 34//14\nf 31//19 40//29 32//8\nf 36//11 45//27 37//12\nf 102//20 45//27 52//30\nf 43//24 51//31 44//28\nf 41//25 49//32 42//23\nf 39//26 47//33 40//29\nf 44//28 52//30 45//27\nf 42//23 50//34 43//24\nf 41//25 47//33 48//35\nf 39//26 38//18 46//36\nf 48//35 56//37 49//32\nf 46//36 54//38 47//33\nf 52//30 58//39 59//40\nf 49//32 57//41 50//34\nf 47//33 55//42 48//35\nf 46//36 38//18 53//43\nf 102//20 52//30 59//40\nf 50//34 58//39 51//31\nf 58//39 66//44 59//40\nf 56//37 64//45 57//41\nf 55//42 61//46 62//47\nf 53//43 38//18 60//48\nf 102//20 59//40 66//44\nf 57//41 65//49 58//39\nf 56//37 62//47 63//50\nf 53//43 61//46 54//38\nf 62//47 68//51 69//52\nf 60//48 38//18 67//53\nf 102//20 66//44 73//54\nf 64//45 72//55 65//49\nf 63//50 69//52 70//56\nf 60//48 68//51 61//46\nf 65//49 73//54 66//44\nf 63//50 71//57 64//45\nf 102//20 73//54 80//58\nf 71//57 79//59 72//55\nf 69//52 77//60 70//56\nf 68//51 74//61 75//62\nf 73//54 79//59 80//58\nf 71//57 77//60 78//63\nf 68//51 76//64 69//52\nf 67//53 38//18 74//61\nf 74//61 82//65 75//62\nf 80//58 86//66 87//67\nf 77//60 85//68 78//63\nf 75//62 83//69 76//64\nf 74//61 38//18 81//70\nf 102//20 80//58 87//67\nf 79//59 85//68 86//66\nf 77//60 83//69 84//71\nf 86//66 94//72 87//67\nf 84//71 92//73 85//68\nf 82//65 90//74 83//69\nf 81//70 38//18 88//75\nf 102//20 87//67 94//72\nf 85//68 93//76 86//66\nf 84//71 90//74 91//77\nf 82//65 88//75 89//78\nf 88//75 38//18 95//79\nf 102//20 94//72 101//80\nf 93//76 99//81 100//82\nf 91//77 97//83 98//84\nf 88//75 96//85 89//78\nf 93//76 101//80 94//72\nf 91//77 99//81 92//73\nf 89//78 97//83 90//74\nf 99//81 108//86 100//82\nf 98//84 105//87 106//88\nf 96//85 103//89 104//90\nf 100//82 109//91 101//80\nf 98//84 107//92 99//81\nf 96//85 105//87 97//83\nf 95//79 38//18 103//89\nf 102//20 101//80 109//91\nf 108//86 116//93 109//91\nf 106//88 114//94 107//92\nf 104//90 112//95 105//87\nf 103//89 38//18 110//96\nf 102//20 109//91 116//93\nf 107//92 115//97 108//86\nf 106//88 112//95 113//98\nf 103//89 111//99 104//90\nf 114//94 120//100 121//101\nf 111//99 119//102 112//95\nf 110//96 38//18 117//103\nf 102//20 116//93 123//104\nf 114//94 122//105 115//97\nf 113//98 119//102 120//100\nf 110//96 118//106 111//99\nf 116//93 122//105 123//104\nf 102//20 123//104 130//107\nf 122//105 128//108 129//109\nf 120//100 126//110 127//111\nf 117//103 125//112 118//106\nf 122//105 130//107 123//104\nf 120//100 128//108 121//101\nf 118//106 126//110 119//102\nf 117//103 38//18 124//113\nf 127//111 133//114 134//115\nf 124//113 132//116 125//112\nf 130//107 136//117 137//118\nf 127//111 135//119 128//108\nf 125//112 133//114 126//110\nf 124//113 38//18 131//120\nf 102//20 130//107 137//118\nf 128//108 136//117 129//109\nf 136//117 138//10 137//118\nf 134//115 29//13 135//119\nf 133//114 26//9 27//17\nf 131//120 38//18 25//7\nf 102//20 137//118 138//10\nf 135//119 30//21 136//117\nf 133//114 28//22 134//115\nf 132//116 25//7 26//9\nf 25//7 31//19 32//8\nf 138//10 30//21 36//11\nf 29//13 28//22 34//14\nf 26//9 32//8 33//16\nf 29//13 35//15 36//11\nf 28//22 27//17 33//16\nf 35//15 34//14 42//23\nf 32//8 40//29 41//25\nf 36//11 35//15 43//24\nf 33//16 41//25 42//23\nf 31//19 39//26 40//29\nf 36//11 44//28 45//27\nf 43//24 50//34 51//31\nf 41//25 48//35 49//32\nf 39//26 46//36 47//33\nf 44//28 51//31 52//30\nf 42//23 49//32 50//34\nf 41//25 40//29 47//33\nf 48//35 55//42 56//37\nf 46//36 53//43 54//38\nf 52//30 51//31 58//39\nf 49//32 56//37 57//41\nf 47//33 54//38 55//42\nf 50//34 57//41 58//39\nf 58//39 65//49 66//44\nf 56//37 63//50 64//45\nf 55//42 54//38 61//46\nf 57//41 64//45 65//49\nf 56//37 55//42 62//47\nf 53//43 60//48 61//46\nf 62//47 61//46 68//51\nf 64//45 71//57 72//55\nf 63//50 62//47 69//52\nf 60//48 67//53 68//51\nf 65//49 72//55 73//54\nf 63//50 70//56 71//57\nf 71//57 78//63 79//59\nf 69//52 76//64 77//60\nf 68//51 67//53 74//61\nf 73//54 72//55 79//59\nf 71//57 70//56 77//60\nf 68//51 75//62 76//64\nf 74//61 81//70 82//65\nf 80//58 79//59 86//66\nf 77//60 84//71 85//68\nf 75//62 82//65 83//69\nf 79//59 78//63 85//68\nf 77//60 76//64 83//69\nf 86//66 93//76 94//72\nf 84//71 91//77 92//73\nf 82//65 89//78 90//74\nf 85//68 92//73 93//76\nf 84//71 83//69 90//74\nf 82//65 81//70 88//75\nf 93//76 92//73 99//81\nf 91//77 90//74 97//83\nf 88//75 95//79 96//85\nf 93//76 100//82 101//80\nf 91//77 98//84 99//81\nf 89//78 96//85 97//83\nf 99//81 107//92 108//86\nf 98//84 97//83 105//87\nf 96//85 95//79 103//89\nf 100//82 108//86 109//91\nf 98//84 106//88 107//92\nf 96//85 104//90 105//87\nf 108//86 115//97 116//93\nf 106//88 113//98 114//94\nf 104//90 111//99 112//95\nf 107//92 114//94 115//97\nf 106//88 105//87 112//95\nf 103//89 110//96 111//99\nf 114//94 113//98 120//100\nf 111//99 118//106 119//102\nf 114//94 121//101 122//105\nf 113//98 112//95 119//102\nf 110//96 117//103 118//106\nf 116//93 115//97 122//105\nf 122//105 121//101 128//108\nf 120//100 119//102 126//110\nf 117//103 124//113 125//112\nf 122//105 129//109 130//107\nf 120//100 127//111 128//108\nf 118//106 125//112 126//110\nf 127//111 126//110 133//114\nf 124//113 131//120 132//116\nf 130//107 129//109 136//117\nf 127//111 134//115 135//119\nf 125//112 132//116 133//114\nf 128//108 135//119 136//117\nf 136//117 30//21 138//10\nf 134//115 28//22 29//13\nf 133//114 132//116 26//9\nf 135//119 29//13 30//21\nf 133//114 27//17 28//22\nf 132//116 131//120 25//7\no Cone\nv 0.000 1.100 -0.434\nv -0.166 1.100 -0.401\nv -0.307 1.100 -0.307\nv -0.401 1.100 -0.166\nv -0.434 1.100 0.000\nv -0.000 0.002 0.000\nv -0.401 1.100 0.166\nv -0.307 1.100 0.307\nv -0.166 1.100 0.401\nv -0.000 1.100 0.434\nv 0.166 1.100 0.401\nv 0.307 1.100 0.307\nv 0.401 1.100 0.166\nv 0.434 1.100 -0.000\nv 0.401 1.100 -0.166\nv 0.307 1.100 -0.307\nv 0.166 1.100 -0.401\nvn 0.00 0.51 -0.85\nvn 0.00 -1.00 0.00\nvn -0.32 0.51 -0.78\nvn -0.60 0.51 -0.60\nvn -0.78 0.51 -0.32\nvn -0.85 0.51 0.00\nvn -0.78 0.51 0.32\nvn -0.60 0.51 0.60\nvn -0.32 0.51 0.78\nvn 0.00 0.51 0.85\nvn 0.32 0.51 0.78\nvn 0.60 0.51 0.60\nvn 0.78 0.51 0.32\nvn 0.85 0.51 0.00\nvn 0.78 0.51 -0.32\nvn 0.60 0.51 -0.60\nvn 0.32 0.51 -0.78\ns 1\nf 139//121 144//122 140//123\nf 140//123 144//122 141//124\nf 141//124 144//122 142//125\nf 142//125 144//122 143//126\nf 143//126 144//122 145//127\nf 145//127 144//122 146//128\nf 146//128 144//122 147//129\nf 147//129 144//122 148//130\nf 148//130 144//122 149//131\nf 149//131 144//122 150//132\nf 150//132 144//122 151//133\nf 151//133 144//122 152//134\nf 152//134 144//122 153//135\nf 153//135 144//122 154//136\nf 154//136 144//122 155//137\nf 155//137 144//122 139//121\nf 147//129 153//135 155//137\nf 155//137 139//121 142//125\nf 140//123 141//124 142//125\nf 142//125 143//126 147//129\nf 145//127 146//128 147//129\nf 147//129 148//130 151//133\nf 149//131 150//132 151//133\nf 151//133 152//134 153//135\nf 153//135 154//136 155//137\nf 139//121 140//123 142//125\nf 143//126 145//127 147//129\nf 148//130 149//131 151//133\nf 151//133 153//135 147//129\nf 155//137 142//125 147//129\no Diamond\nv 0.000 0.000 0.000\nv 0.000 0.700 0.542\nv -0.542 0.700 0.000\nv 0.542 0.700 0.000\nv 0.000 0.700 -0.542\nv 0.000 1.400 0.000\nvn -0.62 -0.48 0.62\nvn -0.62 -0.48 -0.62\nvn 0.62 -0.48 -0.62\nvn 0.62 -0.48 0.62\nvn 0.62 0.48 -0.62\nvn -0.62 0.48 0.62\nvn 0.62 0.48 0.62\nvn -0.62 0.48 -0.62\ns off\nf 156//138 157//138 158//138\nf 156//139 158//139 160//139\nf 156//140 160//140 159//140\nf 156//141 159//141 157//141\nf 159//142 160//142 161//142\nf 158//143 157//143 161//143\nf 157//144 159//144 161//144\nf 160//145 158//145 161//145\no Pin3\nv -0.000 -0.003 -0.400\nv 0.203 -0.003 -0.347\nv 0.351 -0.003 -0.200\nv 0.406 -0.003 0.000\nv 0.351 -0.003 0.200\nv 0.203 -0.003 0.347\nv 0.000 -0.003 0.400\nv -0.203 -0.003 0.347\nv -0.351 -0.003 0.200\nv -0.406 -0.003 0.000\nv -0.351 -0.003 -0.200\nv -0.203 -0.003 -0.347\nv 0.126 0.097 -0.211\nv 0.180 0.056 -0.300\nv 0.218 0.097 -0.122\nv 0.312 0.056 -0.173\nv 0.252 0.097 0.000\nv 0.361 0.056 0.000\nv 0.218 0.097 0.122\nv 0.312 0.056 0.173\nv 0.126 0.097 0.211\nv 0.180 0.056 0.300\nv 0.000 0.097 0.244\nv 0.000 0.056 0.346\nv -0.126 0.097 0.211\nv -0.180 0.056 0.300\nv -0.218 0.097 0.122\nv -0.312 0.056 0.173\nv -0.252 0.097 0.000\nv -0.361 0.056 0.000\nv -0.218 0.097 -0.122\nv -0.312 0.056 -0.173\nv -0.126 0.097 -0.211\nv -0.180 0.056 -0.300\nv -0.000 0.056 -0.346\nv -0.000 0.097 -0.244\nv -0.000 0.125 0.000\nv 0.105 -0.003 -0.388\nv 0.288 -0.003 -0.284\nv 0.394 -0.003 -0.104\nv 0.394 -0.003 0.104\nv 0.288 -0.003 0.284\nv 0.105 -0.003 0.388\nv -0.105 -0.003 0.388\nv -0.288 -0.003 0.284\nv -0.394 -0.003 0.104\nv -0.394 -0.003 -0.104\nv -0.288 -0.003 -0.284\nv -0.105 -0.003 -0.388\nv 0.093 0.056 -0.336\nv 0.065 0.097 -0.237\nv 0.256 0.056 -0.246\nv 0.179 0.097 -0.173\nv 0.350 0.056 -0.090\nv 0.244 0.097 -0.063\nv 0.350 0.056 0.090\nv 0.244 0.097 0.063\nv 0.256 0.056 0.246\nv 0.179 0.097 0.173\nv 0.093 0.056 0.336\nv 0.065 0.097 0.237\nv -0.093 0.056 0.336\nv -0.065 0.097 0.237\nv -0.256 0.056 0.246\nv -0.179 0.097 0.173\nv -0.350 0.056 0.090\nv -0.244 0.097 0.063\nv -0.350 0.056 -0.090\nv -0.244 0.097 -0.063\nv -0.256 0.056 -0.246\nv -0.179 0.097 -0.173\nv -0.093 0.056 -0.336\nv -0.065 0.097 -0.237\nvn -0.45 -0.39 0.80\nvn -0.45 -0.39 -0.80\nvn 0.00 -0.38 -0.92\nvn 0.06 0.96 0.24\nvn 0.00 1.00 0.00\nvn 0.00 0.96 0.25\nvn 0.14 0.80 -0.56\nvn 0.45 -0.39 -0.80\nvn 0.23 -0.37 -0.89\nvn 0.21 0.96 -0.12\nvn 0.42 0.79 -0.43\nvn 0.17 0.96 -0.18\nvn 0.78 -0.41 -0.46\nvn 0.64 -0.39 -0.65\nvn 0.23 0.96 -0.06\nvn 0.61 0.78 0.00\nvn 0.59 0.78 -0.16\nvn 0.90 -0.42 0.00\nvn 0.87 -0.41 -0.24\nvn 0.23 0.96 0.06\nvn 0.52 0.79 0.30\nvn 0.59 0.78 0.16\nvn 0.87 -0.41 0.24\nvn 0.78 -0.41 0.46\nvn 0.17 0.96 0.18\nvn 0.29 0.80 0.51\nvn 0.42 0.79 0.43\nvn 0.64 -0.39 0.65\nvn 0.45 -0.39 0.80\nvn 0.00 0.81 0.58\nvn 0.14 0.80 0.56\nvn 0.23 -0.37 0.89\nvn 0.00 -0.38 0.92\nvn -0.12 0.96 0.21\nvn -0.14 0.80 0.56\nvn -0.06 0.96 0.24\nvn -0.23 -0.37 0.89\nvn -0.21 0.96 0.12\nvn -0.42 0.79 0.43\nvn -0.17 0.96 0.18\nvn -0.78 -0.41 0.46\nvn -0.64 -0.39 0.65\nvn -0.23 0.96 0.06\nvn -0.61 0.78 0.00\nvn -0.59 0.78 0.16\nvn -0.90 -0.42 0.00\nvn -0.87 -0.41 0.24\nvn -0.23 0.96 -0.06\nvn -0.52 0.79 -0.30\nvn -0.59 0.78 -0.16\nvn -0.87 -0.41 -0.24\nvn -0.78 -0.41 -0.46\nvn -0.17 0.96 -0.18\nvn -0.29 0.80 -0.51\nvn -0.42 0.79 -0.43\nvn -0.64 -0.39 -0.65\nvn -0.06 0.96 -0.24\nvn 0.00 0.81 -0.58\nvn -0.14 0.80 -0.56\nvn -0.23 -0.37 -0.89\nvn 0.12 0.96 0.21\nvn 0.21 0.96 0.12\nvn 0.00 0.96 -0.25\nvn 0.24 0.97 0.00\nvn -0.12 0.96 -0.21\nvn -0.21 0.96 -0.12\nvn 0.06 0.96 -0.24\nvn 0.12 0.96 -0.21\nvn -0.24 0.97 0.00\nvn 0.29 0.80 -0.51\nvn -0.52 0.79 0.30\nvn -0.29 0.80 0.51\nvn 0.52 0.79 -0.30\ns 1\nf 169//146 173//147 162//148\nf 222//149 198//150 184//151\nf 211//152 163//153 199//154\nf 176//155 213//156 214//157\nf 213//156 164//158 200//159\nf 216//160 179//161 215//162\nf 215//162 165//163 201//164\nf 218//165 181//166 217//167\nf 202//168 181//166 166//169\nf 220//170 183//171 219//172\nf 203//173 183//171 167//174\nf 222//149 185//175 221//176\nf 204//177 185//175 168//178\nf 186//179 223//180 224//181\nf 223//180 169//146 205//182\nf 188//183 225//184 226//185\nf 225//184 170//186 206//187\nf 228//188 191//189 227//190\nf 227//190 171//191 207//192\nf 230//193 193//194 229//195\nf 208//196 193//194 172//197\nf 232//198 195//199 231//200\nf 209//201 195//199 173//147\nf 234//202 196//203 233//204\nf 210//205 196//203 162//148\nf 220//170 198//150 182//206\nf 218//165 198//150 180//207\nf 234//202 198//150 197//208\nf 216//160 198//150 178//209\nf 232//198 198//150 194//210\nf 214//157 198//150 176//155\nf 230//193 198//150 192//211\nf 212//212 198//150 174//213\nf 228//188 198//150 190//214\nf 226//185 198//150 188//183\nf 224//181 198//150 186//179\nf 211//152 174//213 175//215\nf 196//203 212//212 211//152\nf 173//147 233//204 210//205\nf 194//210 233//204 195//199\nf 172//197 231//200 209//201\nf 192//211 231//200 193//194\nf 171//191 229//195 208//196\nf 230//193 191//189 190//214\nf 189//216 207//192 170//186\nf 228//188 189//216 188//183\nf 187//217 206//187 169//146\nf 226//185 187//217 186//179\nf 185//175 205//182 168//178\nf 224//181 185//175 184//151\nf 167//174 221//176 204//177\nf 182//206 221//176 183//171\nf 166//169 219//172 203//173\nf 180//207 219//172 181//166\nf 165//163 217//167 202//168\nf 218//165 179//161 178//209\nf 177//218 201//164 164//158\nf 216//160 177//218 176//155\nf 175//215 200//159 163//153\nf 214//157 175//215 174//213\nf 196//203 199//154 162//148\nf 210//205 162//148 173//147\nf 199//154 163//153 162//148\nf 200//159 164//158 163//153\nf 201//164 165//163 164//158\nf 202//168 166//169 165//163\nf 203//173 167//174 166//169\nf 204//177 168//178 167//174\nf 205//182 169//146 168//178\nf 206//187 170//186 169//146\nf 207//192 171//191 170//186\nf 208//196 172//197 171//191\nf 209//201 173//147 172//197\nf 162//148 163//153 167//174\nf 164//158 165//163 166//169\nf 166//169 163//153 164//158\nf 168//178 169//146 162//148\nf 170//186 171//191 172//197\nf 172//197 169//146 170//186\nf 163//153 166//169 167//174\nf 167//174 168//178 162//148\nf 172//197 173//147 169//146\nf 222//149 182//206 198//150\nf 211//152 175//215 163//153\nf 176//155 177//218 213//156\nf 213//156 177//218 164//158\nf 216//160 178//209 179//161\nf 215//162 179//161 165//163\nf 218//165 180//207 181//166\nf 202//168 217//167 181//166\nf 220//170 182//206 183//171\nf 203//173 219//172 183//171\nf 222//149 184//151 185//175\nf 204//177 221//176 185//175\nf 186//179 187//217 223//180\nf 223//180 187//217 169//146\nf 188//183 189//216 225//184\nf 225//184 189//216 170//186\nf 228//188 190//214 191//189\nf 227//190 191//189 171//191\nf 230//193 192//211 193//194\nf 208//196 229//195 193//194\nf 232//198 194//210 195//199\nf 209//201 231//200 195//199\nf 234//202 197//208 196//203\nf 210//205 233//204 196//203\nf 220//170 180//207 198//150\nf 218//165 178//209 198//150\nf 234//202 194//210 198//150\nf 216//160 176//155 198//150\nf 232//198 192//211 198//150\nf 214//157 174//213 198//150\nf 230//193 190//214 198//150\nf 212//212 197//208 198//150\nf 228//188 188//183 198//150\nf 226//185 186//179 198//150\nf 224//181 184//151 198//150\nf 211//152 212//212 174//213\nf 196//203 197//208 212//212\nf 173//147 195//199 233//204\nf 194//210 234//202 233//204\nf 172//197 193//194 231//200\nf 192//211 232//198 231//200\nf 171//191 191//189 229//195\nf 230//193 229//195 191//189\nf 189//216 227//190 207//192\nf 228//188 227//190 189//216\nf 187//217 225//184 206//187\nf 226//185 225//184 187//217\nf 185//175 223//180 205//182\nf 224//181 223//180 185//175\nf 167//174 183//171 221//176\nf 182//206 222//149 221//176\nf 166//169 181//166 219//172\nf 180//207 220//170 219//172\nf 165//163 179//161 217//167\nf 218//165 217//167 179//161\nf 177//218 215//162 201//164\nf 216//160 215//162 177//218\nf 175//215 213//156 200//159\nf 214//157 213//156 175//215\nf 196//203 211//152 199//154\no Flag3\nv -0.040 0.653 0.027\nv -0.040 1.205 0.027\nv -0.040 0.653 -0.027\nv -0.040 1.205 -0.027\nv 0.036 0.653 0.031\nv 0.036 1.205 0.031\nv 0.036 0.653 -0.031\nv 0.036 1.205 -0.031\nv -0.047 0.653 0.000\nv -0.047 1.205 0.000\nv -0.000 0.653 0.048\nv -0.000 1.205 0.048\nv -0.000 0.653 -0.048\nv -0.000 1.205 -0.048\nv 0.749 0.929 -0.031\nv 0.749 0.929 0.031\nvn -0.75 0.65 0.00\nvn -0.61 -0.62 -0.48\nvn -0.75 -0.65 0.00\nvn 0.26 -0.76 -0.58\nvn 0.26 0.76 -0.58\nvn 0.83 0.00 -0.54\nvn 0.83 0.00 0.54\nvn -0.02 0.61 0.78\nvn -0.61 -0.62 0.48\nvn -0.02 -0.61 0.78\nvn 0.26 -0.76 0.58\nvn -0.02 0.61 -0.78\nvn -0.61 0.62 0.48\nvn 0.26 0.76 0.58\nvn -0.61 0.62 -0.48\nvn -0.02 -0.61 -0.78\ns 1\nf 244//219 237//220 243//221\nf 241//222 242//223 249//224\nf 242//223 250//225 249//224\nf 246//226 235//227 245//228\nf 241//222 239//229 243//221\nf 248//230 244//219 242//223\nf 236//231 243//221 235//227\nf 239//229 250//225 240//232\nf 240//232 245//228 239//229\nf 238//233 247//234 237//220\nf 248//230 241//222 247//234\nf 241//222 250//225 239//229\nf 244//219 238//233 237//220\nf 242//223 240//232 250//225\nf 246//226 236//231 235//227\nf 243//221 237//220 247//234\nf 247//234 241//222 243//221\nf 239//229 245//228 243//221\nf 235//227 243//221 245//228\nf 240//232 242//223 244//219\nf 248//230 238//233 244//219\nf 244//219 236//231 246//226\nf 246//226 240//232 244//219\nf 236//231 244//219 243//221\nf 240//232 246//226 245//228\nf 238//233 248//230 247//234\nf 248//230 242//223 241//222\nf 241//222 249//224 250//225\no Flag2\nv -0.040 0.653 0.027\nv -0.040 1.205 0.027\nv -0.040 0.653 -0.027\nv -0.040 1.205 -0.027\nv 0.749 0.653 0.031\nv 0.749 1.205 0.031\nv 0.749 0.653 -0.031\nv 0.749 1.205 -0.031\nv -0.047 0.653 0.000\nv -0.047 1.205 0.000\nv -0.000 0.653 0.048\nv 0.036 0.653 0.031\nv 0.036 1.205 0.031\nv -0.000 1.205 0.048\nv 0.036 0.653 -0.031\nv -0.000 0.653 -0.048\nv -0.000 1.205 -0.048\nv 0.036 1.205 -0.031\nv 0.486 0.929 -0.031\nv 0.486 0.929 0.031\nvn -0.75 0.65 0.00\nvn -0.61 -0.62 -0.48\nvn -0.75 -0.65 0.00\nvn 0.13 0.75 -0.63\nvn 0.43 0.00 -0.89\nvn 0.13 -0.75 -0.63\nvn 0.76 0.32 -0.54\nvn 0.43 0.00 0.89\nvn -0.02 0.61 0.78\nvn -0.61 -0.62 0.48\nvn -0.02 -0.61 0.78\nvn 0.13 -0.75 0.63\nvn 0.13 0.75 0.63\nvn -0.61 0.62 0.48\nvn -0.61 0.62 -0.48\nvn -0.02 -0.61 -0.78\nvn -0.02 0.61 -0.78\nvn 0.76 -0.32 0.54\nvn 0.76 -0.32 -0.54\nvn 0.76 0.32 0.54\ns 1\nf 260//235 253//236 259//237\nf 268//238 269//239 265//240\nf 258//241 270//242 269//239\nf 264//243 251//244 261//245\nf 265//240 262//246 259//237\nf 260//235 264//243 263//247\nf 252//248 259//237 251//244\nf 270//242 263//247 262//246\nf 263//247 261//245 262//246\nf 254//249 266//250 253//236\nf 267//251 265//240 266//250\nf 269//239 255//252 257//253\nf 260//235 254//249 253//236\nf 257//253 265//240 269//239\nf 268//238 258//241 269//239\nf 258//241 256//254 270//242\nf 264//243 252//248 251//244\nf 259//237 253//236 266//250\nf 265//240 257//253 255//252\nf 259//237 266//250 265//240\nf 261//245 251//244 259//237\nf 265//240 255//252 262//246\nf 262//246 261//245 259//237\nf 256//254 258//241 263//247\nf 268//238 267//251 260//235\nf 254//249 260//235 267//251\nf 252//248 264//243 260//235\nf 263//247 258//241 268//238\nf 268//238 260//235 263//247\nf 252//248 260//235 259//237\nf 262//246 255//252 270//242\nf 270//242 256//254 263//247\nf 263//247 264//243 261//245\nf 254//249 267//251 266//250\nf 267//251 268//238 265//240\nf 269//239 270//242 255//252\no Flag\nv -0.040 0.653 0.027\nv -0.040 1.205 0.027\nv -0.040 0.653 -0.027\nv -0.040 1.205 -0.027\nv 0.749 0.653 0.031\nv 0.749 1.205 0.031\nv 0.749 0.653 -0.031\nv 0.749 1.205 -0.031\nv -0.047 0.653 0.000\nv -0.047 1.205 0.000\nv -0.000 0.653 0.048\nv 0.036 0.653 0.031\nv 0.036 1.205 0.031\nv -0.000 1.205 0.048\nv 0.036 0.653 -0.031\nv -0.000 0.653 -0.048\nv -0.000 1.205 -0.048\nv 0.036 1.205 -0.031\nvn -0.75 0.65 0.00\nvn -0.61 -0.62 -0.48\nvn -0.75 -0.65 0.00\nvn 0.13 0.75 -0.63\nvn 0.57 -0.57 -0.57\nvn 0.13 -0.75 -0.63\nvn 0.57 0.57 -0.57\nvn 0.57 -0.57 0.57\nvn -0.02 0.61 0.78\nvn -0.61 -0.62 0.48\nvn -0.02 -0.61 0.78\nvn 0.13 -0.75 0.63\nvn 0.13 0.75 0.63\nvn -0.61 0.62 0.48\nvn 0.57 0.57 0.57\nvn -0.61 0.62 -0.48\nvn -0.02 -0.61 -0.78\nvn -0.02 0.61 -0.78\ns 1\nf 280//255 273//256 279//257\nf 288//258 277//259 285//260\nf 278//261 275//262 277//259\nf 284//263 271//264 281//265\nf 285//260 282//266 279//257\nf 280//255 284//263 283//267\nf 272//268 279//257 271//264\nf 276//269 282//266 275//262\nf 283//267 281//265 282//266\nf 274//270 286//271 273//256\nf 287//272 285//260 286//271\nf 280//255 274//270 273//256\nf 288//258 278//261 277//259\nf 278//261 276//269 275//262\nf 284//263 272//268 271//264\nf 279//257 273//256 286//271\nf 285//260 277//259 275//262\nf 279//257 286//271 285//260\nf 281//265 271//264 279//257\nf 285//260 275//262 282//266\nf 282//266 281//265 279//257\nf 276//269 278//261 283//267\nf 288//258 287//272 280//255\nf 274//270 280//255 287//272\nf 272//268 284//263 280//255\nf 283//267 278//261 288//258\nf 288//258 280//255 283//267\nf 272//268 280//255 279//257\nf 276//269 283//267 282//266\nf 283//267 284//263 281//265\nf 274//270 287//272 286//271\nf 287//272 288//258 285//260\no Pin2\nv -0.000 0.414 -0.406\nv -0.000 1.274 -0.322\nv 0.203 0.414 -0.351\nv 0.161 1.274 -0.279\nv 0.351 0.414 -0.203\nv 0.279 1.274 -0.161\nv 0.406 0.414 0.000\nv 0.322 1.274 0.000\nv 0.351 0.414 0.203\nv 0.279 1.274 0.161\nv 0.203 0.414 0.351\nv 0.161 1.274 0.279\nv 0.000 0.414 0.406\nv 0.000 1.274 0.322\nv -0.203 0.414 0.351\nv -0.161 1.274 0.279\nv -0.351 0.414 0.203\nv -0.279 1.274 0.161\nv -0.406 0.414 0.000\nv -0.322 1.274 0.000\nv -0.351 0.414 -0.203\nv -0.279 1.274 -0.161\nv -0.203 0.414 -0.351\nv -0.161 1.274 -0.279\nv -0.000 1.134 -0.194\nv 0.097 1.134 -0.168\nv 0.168 1.134 -0.097\nv 0.194 1.134 0.000\nv 0.168 1.134 0.097\nv 0.097 1.134 0.168\nv 0.000 1.134 0.194\nv -0.097 1.134 0.168\nv -0.168 1.134 0.097\nv -0.194 1.134 0.000\nv -0.168 1.134 -0.097\nv -0.097 1.134 -0.168\nv 0.117 0.648 -0.204\nv 0.163 0.583 -0.282\nv 0.188 0.503 -0.326\nv 0.204 0.648 -0.117\nv 0.282 0.583 -0.163\nv 0.326 0.503 -0.188\nv 0.235 0.648 0.000\nv 0.326 0.583 0.000\nv 0.377 0.503 0.000\nv 0.204 0.648 0.117\nv 0.282 0.583 0.163\nv 0.326 0.503 0.188\nv 0.117 0.648 0.204\nv 0.163 0.583 0.282\nv 0.188 0.503 0.326\nv 0.000 0.648 0.235\nv 0.000 0.583 0.326\nv 0.000 0.503 0.377\nv -0.117 0.648 0.204\nv -0.163 0.583 0.282\nv -0.188 0.503 0.326\nv -0.204 0.648 0.117\nv -0.282 0.583 0.163\nv -0.326 0.503 0.188\nv -0.235 0.648 0.000\nv -0.326 0.583 0.000\nv -0.377 0.503 0.000\nv -0.204 0.648 -0.117\nv -0.282 0.583 -0.163\nv -0.326 0.503 -0.188\nv -0.117 0.648 -0.204\nv -0.163 0.583 -0.282\nv -0.188 0.503 -0.326\nv -0.000 0.503 -0.377\nv -0.000 0.583 -0.326\nv -0.000 0.648 -0.235\nv -0.000 1.201 -0.281\nv 0.140 1.201 -0.243\nv 0.243 1.201 -0.140\nv 0.281 1.201 0.000\nv 0.243 1.201 0.140\nv 0.140 1.201 0.243\nv 0.000 1.201 0.281\nv -0.140 1.201 0.243\nv -0.243 1.201 0.140\nv -0.281 1.201 0.000\nv -0.243 1.201 -0.140\nv -0.140 1.201 -0.243\nv 0.105 0.414 -0.394\nv 0.084 1.274 -0.313\nv 0.288 0.414 -0.288\nv 0.229 1.274 -0.229\nv 0.394 0.414 -0.105\nv 0.313 1.274 -0.084\nv 0.394 0.414 0.105\nv 0.313 1.274 0.084\nv 0.288 0.414 0.288\nv 0.229 1.274 0.229\nv 0.105 0.414 0.394\nv 0.084 1.274 0.313\nv -0.105 0.414 0.394\nv -0.084 1.274 0.313\nv -0.288 0.414 0.288\nv -0.229 1.274 0.229\nv -0.394 0.414 0.105\nv -0.313 1.274 0.084\nv -0.394 0.414 -0.105\nv -0.313 1.274 -0.084\nv -0.288 0.414 -0.288\nv -0.229 1.274 -0.229\nv -0.105 0.414 -0.394\nv -0.084 1.274 -0.313\nv -0.050 1.134 -0.189\nv -0.138 1.134 -0.138\nv -0.189 1.134 -0.050\nv -0.189 1.134 0.050\nv -0.138 1.134 0.138\nv -0.050 1.134 0.189\nv 0.050 1.134 0.189\nv 0.138 1.134 0.138\nv 0.189 1.134 0.050\nv 0.189 1.134 -0.050\nv 0.138 1.134 -0.138\nv 0.050 1.134 -0.189\nv 0.098 0.503 -0.366\nv 0.084 0.583 -0.316\nv 0.061 0.648 -0.229\nv 0.268 0.503 -0.268\nv 0.231 0.583 -0.231\nv 0.167 0.648 -0.167\nv 0.366 0.503 -0.098\nv 0.316 0.583 -0.084\nv 0.229 0.648 -0.061\nv 0.366 0.503 0.098\nv 0.316 0.583 0.084\nv 0.229 0.648 0.061\nv 0.268 0.503 0.268\nv 0.231 0.583 0.231\nv 0.167 0.648 0.167\nv 0.098 0.503 0.366\nv 0.084 0.583 0.316\nv 0.061 0.648 0.229\nv -0.098 0.503 0.366\nv -0.084 0.583 0.316\nv -0.061 0.648 0.229\nv -0.268 0.503 0.268\nv -0.231 0.583 0.231\nv -0.167 0.648 0.167\nv -0.366 0.503 0.098\nv -0.316 0.583 0.084\nv -0.229 0.648 0.061\nv -0.366 0.503 -0.098\nv -0.316 0.583 -0.084\nv -0.229 0.648 -0.061\nv -0.268 0.503 -0.268\nv -0.231 0.583 -0.231\nv -0.167 0.648 -0.167\nv -0.098 0.503 -0.366\nv -0.084 0.583 -0.316\nv -0.061 0.648 -0.229\nv -0.073 1.201 -0.273\nv -0.199 1.201 -0.199\nv -0.273 1.201 -0.073\nv -0.273 1.201 0.073\nv -0.199 1.201 0.199\nv -0.073 1.201 0.273\nv 0.073 1.201 0.273\nv 0.199 1.201 0.199\nv 0.273 1.201 0.073\nv 0.273 1.201 -0.073\nv 0.199 1.201 -0.199\nv 0.073 1.201 -0.273\nvn 0.19 -0.64 -0.73\nvn 0.43 0.47 -0.76\nvn 0.38 -0.64 -0.65\nvn 0.53 -0.64 -0.53\nvn 0.76 0.47 -0.43\nvn 0.65 -0.64 -0.38\nvn 0.73 -0.64 -0.19\nvn 0.87 0.47 0.00\nvn 0.76 -0.64 0.00\nvn 0.73 -0.64 0.19\nvn 0.76 0.47 0.43\nvn 0.65 -0.64 0.38\nvn 0.53 -0.64 0.53\nvn 0.43 0.47 0.76\nvn 0.38 -0.64 0.65\nvn 0.19 -0.64 0.73\nvn 0.00 0.47 0.87\nvn 0.00 -0.64 0.76\nvn -0.19 -0.64 0.73\nvn -0.43 0.47 0.76\nvn -0.38 -0.64 0.65\nvn -0.53 -0.64 0.53\nvn -0.76 0.47 0.43\nvn -0.65 -0.64 0.38\nvn -0.73 -0.64 0.19\nvn -0.87 0.47 0.00\nvn -0.76 -0.64 0.00\nvn -0.73 -0.64 -0.19\nvn -0.76 0.47 -0.43\nvn -0.65 -0.64 -0.38\nvn -0.53 -0.64 -0.53\nvn -0.43 0.47 -0.76\nvn -0.38 -0.64 -0.65\nvn -0.19 -0.64 -0.73\nvn 0.00 0.47 -0.87\nvn 0.00 -0.64 -0.76\nvn 0.41 -0.56 0.71\nvn -0.71 -0.56 -0.41\nvn 0.41 -0.56 -0.71\nvn -0.23 -0.42 -0.87\nvn 0.00 0.50 -0.86\nvn -0.22 0.51 -0.82\nvn -0.64 -0.42 -0.64\nvn -0.43 0.50 -0.74\nvn -0.60 0.51 -0.60\nvn -0.87 -0.42 -0.23\nvn -0.74 0.50 -0.43\nvn -0.82 0.51 -0.22\nvn -0.87 -0.42 0.23\nvn -0.86 0.50 0.00\nvn -0.82 0.51 0.22\nvn -0.64 -0.42 0.64\nvn -0.74 0.50 0.43\nvn -0.60 0.51 0.60\nvn -0.23 -0.42 0.87\nvn -0.43 0.50 0.74\nvn -0.22 0.51 0.82\nvn 0.23 -0.42 0.87\nvn 0.00 0.50 0.86\nvn 0.22 0.51 0.82\nvn 0.64 -0.42 0.64\nvn 0.43 0.50 0.74\nvn 0.60 0.51 0.60\nvn 0.87 -0.42 0.23\nvn 0.74 0.50 0.43\nvn 0.82 0.51 0.22\nvn 0.87 -0.42 -0.23\nvn 0.86 0.50 0.00\nvn 0.82 0.51 -0.22\nvn 0.64 -0.42 -0.64\nvn 0.74 0.50 -0.43\nvn 0.60 0.51 -0.60\nvn 0.23 -0.42 -0.87\nvn 0.43 0.50 -0.74\nvn 0.22 0.51 -0.82\nvn 0.23 0.42 -0.87\nvn 0.21 -0.55 -0.80\nvn 0.19 0.67 -0.70\nvn 0.45 0.42 -0.78\nvn 0.36 0.67 -0.63\nvn 0.64 0.42 -0.64\nvn 0.71 -0.56 -0.41\nvn 0.59 -0.55 -0.59\nvn 0.51 0.67 -0.51\nvn 0.78 0.42 -0.45\nvn 0.63 0.67 -0.36\nvn 0.87 0.42 -0.23\nvn 0.82 -0.56 0.00\nvn 0.80 -0.55 -0.21\nvn 0.70 0.67 -0.19\nvn 0.90 0.42 0.00\nvn 0.73 0.67 0.00\nvn 0.87 0.42 0.23\nvn 0.71 -0.56 0.41\nvn 0.80 -0.55 0.21\nvn 0.70 0.67 0.19\nvn 0.78 0.42 0.45\nvn 0.63 0.67 0.36\nvn 0.64 0.42 0.64\nvn 0.59 -0.55 0.59\nvn 0.51 0.67 0.51\nvn 0.45 0.42 0.78\nvn 0.36 0.67 0.63\nvn 0.23 0.42 0.87\nvn 0.00 -0.56 0.82\nvn 0.21 -0.55 0.80\nvn 0.19 0.67 0.70\nvn 0.00 0.42 0.90\nvn 0.00 0.67 0.73\nvn -0.23 0.42 0.87\nvn -0.41 -0.56 0.71\nvn -0.21 -0.55 0.80\nvn -0.19 0.67 0.70\nvn -0.45 0.42 0.78\nvn -0.36 0.67 0.63\nvn -0.64 0.42 0.64\nvn -0.71 -0.56 0.41\nvn -0.59 -0.55 0.59\nvn -0.51 0.67 0.51\nvn -0.78 0.42 0.45\nvn -0.63 0.67 0.36\nvn -0.87 0.42 0.23\nvn -0.82 -0.56 0.00\nvn -0.80 -0.55 0.21\nvn -0.70 0.67 0.19\nvn -0.90 0.42 0.00\nvn -0.73 0.67 0.00\nvn -0.87 0.42 -0.23\nvn -0.80 -0.55 -0.21\nvn -0.70 0.67 -0.19\nvn -0.78 0.42 -0.45\nvn -0.63 0.67 -0.36\nvn -0.64 0.42 -0.64\nvn -0.41 -0.56 -0.71\nvn -0.59 -0.55 -0.59\nvn -0.51 0.67 -0.51\nvn -0.45 0.42 -0.78\nvn -0.36 0.67 -0.63\nvn -0.23 0.42 -0.87\nvn 0.00 -0.56 -0.82\nvn -0.21 -0.55 -0.80\nvn -0.19 0.67 -0.70\nvn 0.00 0.42 -0.90\nvn 0.00 0.67 -0.73\nvn 0.00 -0.41 -0.91\nvn -0.45 -0.41 -0.78\nvn -0.78 -0.41 -0.45\nvn -0.91 -0.41 0.00\nvn -0.78 -0.41 0.45\nvn -0.45 -0.41 0.78\nvn 0.00 -0.41 0.91\nvn 0.45 -0.41 0.78\nvn 0.78 -0.41 0.45\nvn 0.91 -0.41 0.00\nvn 0.78 -0.41 -0.45\nvn 0.45 -0.41 -0.78\nvn 0.22 0.46 -0.85\nvn 0.62 0.46 -0.62\nvn 0.85 0.46 -0.22\nvn 0.85 0.46 0.22\nvn 0.62 0.46 0.62\nvn 0.22 0.46 0.85\nvn -0.22 0.46 0.85\nvn -0.62 0.46 0.62\nvn -0.85 0.46 0.22\nvn -0.85 0.46 -0.22\nvn -0.22 0.46 -0.85\nvn -0.62 0.46 -0.62\ns 1\nf 456//273 292//274 362//275\nf 455//276 294//277 363//278\nf 454//279 296//280 364//281\nf 453//282 298//283 365//284\nf 452//285 300//286 366//287\nf 451//288 302//289 367//290\nf 450//291 304//292 368//293\nf 449//294 306//295 369//296\nf 448//297 308//298 370//299\nf 447//300 310//301 371//302\nf 302//289 296//280 292//274\nf 446//303 312//304 372//305\nf 445//306 290//307 361//308\nf 299//309 309//310 291//311\nf 397//312 360//313 444//314\nf 398//315 355//316 441//317\nf 399//318 352//319 438//320\nf 400//321 349//322 435//323\nf 401//324 346//325 432//326\nf 402//327 343//328 429//329\nf 403//330 340//331 426//332\nf 404//333 337//334 423//335\nf 405//336 334//337 420//338\nf 406//339 331//340 417//341\nf 407//342 328//343 414//344\nf 408//345 325//346 411//347\nf 409//348 291//311 373//349\nf 410//350 327//351 409//348\nf 411//347 326//352 410//350\nf 412//353 293//354 375//355\nf 413//356 330//357 412//353\nf 414//344 329//358 413//356\nf 415//359 295//360 377//361\nf 416//362 333//363 415//359\nf 417//341 332//364 416//362\nf 418//365 297//366 379//367\nf 419//368 336//369 418//365\nf 420//338 335//370 419//368\nf 421//371 299//309 381//372\nf 422//373 339//374 421//371\nf 423//335 338//375 422//373\nf 424//376 301//377 383//378\nf 425//379 342//380 424//376\nf 426//332 341//381 425//379\nf 427//382 303//383 385//384\nf 428//385 345//386 427//382\nf 429//329 344//387 428//385\nf 430//388 305//389 387//390\nf 431//391 348//392 430//388\nf 432//326 347//393 431//391\nf 433//394 307//395 389//396\nf 434//397 351//398 433//394\nf 435//323 350//399 434//397\nf 436//400 309//310 391//401\nf 437//402 354//403 436//400\nf 438//320 353//404 437//402\nf 439//405 311//406 393//407\nf 440//408 357//409 439//405\nf 441//317 356//410 440//408\nf 442//411 289//412 395//413\nf 443//414 358//415 442//411\nf 444//314 359//416 443//414\nf 397//312 361//308 313//417\nf 398//315 372//305 324//418\nf 399//318 371//302 323//419\nf 400//321 370//299 322//420\nf 401//324 369//296 321//421\nf 402//327 368//293 320//422\nf 403//330 367//290 319//423\nf 404//333 366//287 318//424\nf 405//336 365//284 317//425\nf 406//339 364//281 316//426\nf 407//342 363//278 315//427\nf 408//345 362//275 314//428\nf 361//308 408//345 313//417\nf 362//275 407//342 314//428\nf 363//278 406//339 315//427\nf 364//281 405//336 316//426\nf 365//284 404//333 317//425\nf 366//287 403//330 318//424\nf 367//290 402//327 319//423\nf 368//293 401//324 320//422\nf 369//296 400//321 321//421\nf 370//299 399//318 322//420\nf 371//302 398//315 323//419\nf 372//305 397//312 324//418\nf 356//410 444//314 443//414\nf 357//409 443//414 442//411\nf 311//406 442//411 395//413\nf 353//404 441//317 440//408\nf 354//403 440//408 439//405\nf 309//310 439//405 393//407\nf 350//399 438//320 437//402\nf 351//398 437//402 436//400\nf 307//395 436//400 391//401\nf 347//393 435//323 434//397\nf 348//392 434//397 433//394\nf 305//389 433//394 389//396\nf 344//387 432//326 431//391\nf 345//386 431//391 430//388\nf 303//383 430//388 387//390\nf 341//381 429//329 428//385\nf 342//380 428//385 427//382\nf 301//377 427//382 385//384\nf 338//375 426//332 425//379\nf 339//374 425//379 424//376\nf 299//309 424//376 383//378\nf 335//370 423//335 422//373\nf 336//369 422//373 421//371\nf 297//366 421//371 381//372\nf 332//364 420//338 419//368\nf 333//363 419//368 418//365\nf 295//360 418//365 379//367\nf 329//358 417//341 416//362\nf 330//357 416//362 415//359\nf 293//354 415//359 377//361\nf 326//352 414//344 413//356\nf 327//351 413//356 412//353\nf 291//311 412//353 375//355\nf 359//416 411//347 410//350\nf 358//415 410//350 409//348\nf 289//412 409//348 373//349\nf 360//313 408//345 411//347\nf 325//346 407//342 414//344\nf 328//343 406//339 417//341\nf 331//340 405//336 420//338\nf 334//337 404//333 423//335\nf 337//334 403//330 426//332\nf 340//331 402//327 429//329\nf 343//328 401//324 432//326\nf 346//325 400//321 435//323\nf 349//322 399//318 438//320\nf 352//319 398//315 441//317\nf 355//316 397//312 444//314\nf 312//304 445//306 372//305\nf 310//301 446//303 371//302\nf 308//298 447//300 370//299\nf 306//295 448//297 369//296\nf 304//292 449//294 368//293\nf 302//289 450//291 367//290\nf 300//286 451//288 366//287\nf 298//283 452//285 365//284\nf 296//280 453//282 364//281\nf 294//277 454//279 363//278\nf 292//274 455//276 362//275\nf 290//307 456//273 361//308\nf 456//273 374//429 292//274\nf 455//276 376//430 294//277\nf 454//279 378//431 296//280\nf 453//282 380//432 298//283\nf 452//285 382//433 300//286\nf 451//288 384//434 302//289\nf 450//291 386//435 304//292\nf 449//294 388//436 306//295\nf 448//297 390//437 308//298\nf 447//300 392//438 310//301\nf 376//430 292//274 294//277\nf 374//429 290//307 292//274\nf 396//439 312//304 290//307\nf 394//440 310//301 312//304\nf 392//438 308//298 310//301\nf 390//437 306//295 308//298\nf 388//436 304//292 306//295\nf 386//435 302//289 304//292\nf 384//434 300//286 302//289\nf 382//433 298//283 300//286\nf 380//432 296//280 298//283\nf 378//431 294//277 296//280\nf 292//274 290//307 302//289\nf 312//304 310//301 290//307\nf 308//298 306//295 302//289\nf 304//292 302//289 306//295\nf 300//286 298//283 302//289\nf 296//280 294//277 292//274\nf 290//307 310//301 308//298\nf 308//298 302//289 290//307\nf 298//283 296//280 302//289\nf 446//303 394//440 312//304\nf 445//306 396//439 290//307\nf 395//413 289//412 311//406\nf 373//349 291//311 289//412\nf 375//355 293//354 291//311\nf 377//361 295//360 293//354\nf 379//367 297//366 295//360\nf 381//372 299//309 297//366\nf 383//378 301//377 299//309\nf 385//384 303//383 301//377\nf 387//390 305//389 303//383\nf 389//396 307//395 305//389\nf 391//401 309//310 307//395\nf 393//407 311//406 309//310\nf 289//412 291//311 311//406\nf 293//354 295//360 297//366\nf 297//366 299//309 291//311\nf 301//377 303//383 299//309\nf 305//389 307//395 303//383\nf 309//310 311//406 291//311\nf 291//311 293//354 297//366\nf 299//309 303//383 309//310\nf 307//395 309//310 303//383\nf 397//312 313//417 360//313\nf 398//315 324//418 355//316\nf 399//318 323//419 352//319\nf 400//321 322//420 349//322\nf 401//324 321//421 346//325\nf 402//327 320//422 343//328\nf 403//330 319//423 340//331\nf 404//333 318//424 337//334\nf 405//336 317//425 334//337\nf 406//339 316//426 331//340\nf 407//342 315//427 328//343\nf 408//345 314//428 325//346\nf 409//348 327//351 291//311\nf 410//350 326//352 327//351\nf 411//347 325//346 326//352\nf 412//353 330//357 293//354\nf 413//356 329//358 330//357\nf 414//344 328//343 329//358\nf 415//359 333//363 295//360\nf 416//362 332//364 333//363\nf 417//341 331//340 332//364\nf 418//365 336//369 297//366\nf 419//368 335//370 336//369\nf 420//338 334//337 335//370\nf 421//371 339//374 299//309\nf 422//373 338//375 339//374\nf 423//335 337//334 338//375\nf 424//376 342//380 301//377\nf 425//379 341//381 342//380\nf 426//332 340//331 341//381\nf 427//382 345//386 303//383\nf 428//385 344//387 345//386\nf 429//329 343//328 344//387\nf 430//388 348//392 305//389\nf 431//391 347//393 348//392\nf 432//326 346//325 347//393\nf 433//394 351//398 307//395\nf 434//397 350//399 351//398\nf 435//323 349//322 350//399\nf 436//400 354//403 309//310\nf 437//402 353//404 354//403\nf 438//320 352//319 353//404\nf 439//405 357//409 311//406\nf 440//408 356//410 357//409\nf 441//317 355//316 356//410\nf 442//411 358//415 289//412\nf 443//414 359//416 358//415\nf 444//314 360//313 359//416\nf 397//312 445//306 361//308\nf 398//315 446//303 372//305\nf 399//318 447//300 371//302\nf 400//321 448//297 370//299\nf 401//324 449//294 369//296\nf 402//327 450//291 368//293\nf 403//330 451//288 367//290\nf 404//333 452//285 366//287\nf 405//336 453//282 365//284\nf 406//339 454//279 364//281\nf 407//342 455//276 363//278\nf 408//345 456//273 362//275\nf 361//308 456//273 408//345\nf 362//275 455//276 407//342\nf 363//278 454//279 406//339\nf 364//281 453//282 405//336\nf 365//284 452//285 404//333\nf 366//287 451//288 403//330\nf 367//290 450//291 402//327\nf 368//293 449//294 401//324\nf 369//296 448//297 400//321\nf 370//299 447//300 399//318\nf 371//302 446//303 398//315\nf 372//305 445//306 397//312\nf 356//410 355//316 444//314\nf 357//409 356//410 443//414\nf 311//406 357//409 442//411\nf 353//404 352//319 441//317\nf 354//403 353//404 440//408\nf 309//310 354//403 439//405\nf 350//399 349//322 438//320\nf 351//398 350//399 437//402\nf 307//395 351//398 436//400\nf 347//393 346//325 435//323\nf 348//392 347//393 434//397\nf 305//389 348//392 433//394\nf 344//387 343//328 432//326\nf 345//386 344//387 431//391\nf 303//383 345//386 430//388\nf 341//381 340//331 429//329\nf 342//380 341//381 428//385\nf 301//377 342//380 427//382\nf 338//375 337//334 426//332\nf 339//374 338//375 425//379\nf 299//309 339//374 424//376\nf 335//370 334//337 423//335\nf 336//369 335//370 422//373\nf 297//366 336//369 421//371\nf 332//364 331//340 420//338\nf 333//363 332//364 419//368\nf 295//360 333//363 418//365\nf 329//358 328//343 417//341\nf 330//357 329//358 416//362\nf 293//354 330//357 415//359\nf 326//352 325//346 414//344\nf 327//351 326//352 413//356\nf 291//311 327//351 412//353\nf 359//416 360//313 411//347\nf 358//415 359//416 410//350\nf 289//412 358//415 409//348\nf 360//313 313//417 408//345\nf 325//346 314//428 407//342\nf 328//343 315//427 406//339\nf 331//340 316//426 405//336\nf 334//337 317//425 404//333\nf 337//334 318//424 403//330\nf 340//331 319//423 402//327\nf 343//328 320//422 401//324\nf 346//325 321//421 400//321\nf 349//322 322//420 399//318\nf 352//319 323//419 398//315\nf 355//316 324//418 397//312\nf 312//304 396//439 445//306\nf 310//301 394//440 446//303\nf 308//298 392//438 447//300\nf 306//295 390//437 448//297\nf 304//292 388//436 449//294\nf 302//289 386//435 450//291\nf 300//286 384//434 451//288\nf 298//283 382//433 452//285\nf 296//280 380//432 453//282\nf 294//277 378//431 454//279\nf 292//274 376//430 455//276\nf 290//307 374//429 456//273\no Needle\nv 0.000 0.000 0.042\nv 0.036 0.000 0.021\nv 0.036 0.000 -0.021\nv 0.000 0.000 -0.042\nv 0.000 -0.300 -0.000\nv -0.036 0.000 -0.021\nv -0.036 0.000 0.021\nv 0.000 1.200 0.042\nv 0.036 1.200 0.021\nv 0.036 1.200 -0.021\nv 0.000 1.200 -0.042\nv -0.036 1.200 -0.021\nv -0.036 1.200 0.021\nvn 0.00 -0.06 0.99\nvn 0.00 -1.00 0.00\nvn 0.86 -0.06 0.49\nvn 0.86 -0.06 -0.49\nvn 0.00 -0.06 -0.99\nvn -0.86 -0.06 -0.49\nvn -0.86 -0.06 0.49\nvn -0.68 0.61 0.39\nvn 0.00 0.60 0.79\nvn 0.68 0.61 -0.39\nvn 0.68 0.61 0.39\nvn -0.68 0.61 -0.39\nvn 0.00 0.60 -0.79\ns 1\nf 457//441 461//442 458//443\nf 458//443 461//442 459//444\nf 459//444 461//442 460//445\nf 460//445 461//442 462//446\nf 462//446 461//442 463//447\nf 463//447 461//442 457//441\nf 457//441 469//448 463//447\nf 458//443 464//449 457//441\nf 460//445 466//450 459//444\nf 459//444 465//451 458//443\nf 463//447 468//452 462//446\nf 462//446 467//453 460//445\nf 465//451 468//452 469//448\nf 457//441 464//449 469//448\nf 458//443 465//451 464//449\nf 460//445 467//453 466//450\nf 459//444 466//450 465//451\nf 463//447 469//448 468//452\nf 462//446 468//452 467//453\nf 469//448 464//449 465//451\nf 465//451 466//450 468//452\nf 467//453 468//452 466//450\no Pin\nv 0.000 1.423 -0.085\nv 0.000 1.375 -0.157\nv 0.000 1.059 -0.157\nv 0.000 1.011 -0.085\nv 0.042 1.423 -0.073\nv 0.078 1.375 -0.136\nv 0.103 1.302 -0.178\nv 0.111 1.217 -0.193\nv 0.103 1.132 -0.178\nv 0.078 1.059 -0.136\nv 0.042 1.011 -0.073\nv -0.000 1.440 -0.000\nv 0.073 1.423 -0.042\nv 0.136 1.375 -0.078\nv 0.178 1.302 -0.103\nv 0.193 1.217 -0.111\nv 0.178 1.132 -0.103\nv 0.136 1.059 -0.078\nv 0.073 1.011 -0.042\nv 0.085 1.423 -0.000\nv 0.157 1.375 -0.000\nv 0.206 1.302 -0.000\nv 0.223 1.217 -0.000\nv 0.206 1.132 -0.000\nv 0.157 1.059 -0.000\nv 0.085 1.011 -0.000\nv 0.073 1.423 0.042\nv 0.136 1.375 0.078\nv 0.178 1.302 0.103\nv 0.193 1.217 0.111\nv 0.178 1.132 0.103\nv 0.136 1.059 0.078\nv 0.073 1.011 0.042\nv 0.042 1.423 0.073\nv 0.078 1.375 0.136\nv 0.103 1.302 0.178\nv 0.111 1.217 0.193\nv 0.103 1.132 0.178\nv 0.078 1.059 0.136\nv 0.042 1.011 0.073\nv -0.000 1.423 0.085\nv 0.000 1.375 0.157\nv 0.000 1.302 0.206\nv -0.000 1.217 0.223\nv 0.000 1.132 0.206\nv 0.000 1.059 0.157\nv -0.000 1.011 0.085\nv -0.042 1.423 0.073\nv -0.078 1.375 0.136\nv -0.103 1.302 0.178\nv -0.111 1.217 0.193\nv -0.103 1.132 0.178\nv -0.078 1.059 0.136\nv -0.042 1.011 0.073\nv -0.073 1.423 0.042\nv -0.136 1.375 0.078\nv -0.178 1.302 0.103\nv -0.193 1.217 0.111\nv -0.178 1.132 0.103\nv -0.136 1.059 0.078\nv -0.073 1.011 0.042\nv 0.000 0.994 -0.000\nv -0.085 1.423 -0.000\nv -0.157 1.375 -0.000\nv -0.206 1.302 -0.000\nv -0.223 1.217 -0.000\nv -0.206 1.132 -0.000\nv -0.157 1.059 -0.000\nv -0.085 1.011 -0.000\nv -0.073 1.423 -0.042\nv -0.136 1.375 -0.078\nv -0.178 1.302 -0.103\nv -0.193 1.217 -0.111\nv -0.178 1.132 -0.103\nv -0.136 1.059 -0.078\nv -0.073 1.011 -0.042\nv -0.042 1.423 -0.073\nv -0.078 1.375 -0.136\nv -0.103 1.302 -0.178\nv -0.111 1.217 -0.193\nv -0.103 1.132 -0.178\nv -0.078 1.059 -0.136\nv -0.042 1.011 -0.073\nv 0.000 1.302 -0.206\nv 0.000 1.217 -0.223\nv 0.000 1.132 -0.206\nvn 0.00 -0.37 -0.92\nvn 0.36 -0.69 -0.62\nvn 0.00 -0.69 -0.72\nvn 0.00 0.37 -0.92\nvn 0.50 0.00 -0.86\nvn 0.00 0.00 -1.00\nvn 0.00 0.91 -0.40\nvn 0.36 0.69 -0.62\nvn 0.00 0.69 -0.72\nvn 0.20 -0.91 -0.35\nvn 0.00 -0.91 -0.40\nvn 0.46 -0.37 -0.80\nvn 0.46 0.37 -0.80\nvn 0.00 1.00 0.00\nvn 0.20 0.91 -0.35\nvn 0.00 -1.00 0.00\nvn 0.62 -0.69 -0.36\nvn 0.35 -0.91 -0.20\nvn 0.86 0.00 -0.50\nvn 0.80 -0.37 -0.46\nvn 0.80 0.37 -0.46\nvn 0.35 0.91 -0.20\nvn 0.62 0.69 -0.36\nvn 0.72 0.69 0.00\nvn 0.92 0.37 0.00\nvn 0.40 0.91 0.00\nvn 0.40 -0.91 0.00\nvn 0.92 -0.37 0.00\nvn 0.72 -0.69 0.00\nvn 1.00 0.00 0.00\nvn 0.35 -0.91 0.20\nvn 0.62 -0.69 0.36\nvn 0.80 0.37 0.46\nvn 0.86 0.00 0.50\nvn 0.35 0.91 0.20\nvn 0.62 0.69 0.36\nvn 0.80 -0.37 0.46\nvn 0.36 0.69 0.62\nvn 0.20 -0.91 0.35\nvn 0.46 -0.37 0.80\nvn 0.46 0.37 0.80\nvn 0.20 0.91 0.35\nvn 0.36 -0.69 0.62\nvn 0.50 0.00 0.86\nvn 0.00 -0.69 0.72\nvn 0.00 -0.91 0.40\nvn 0.00 -0.37 0.92\nvn 0.00 0.37 0.92\nvn 0.00 0.91 0.40\nvn 0.00 0.00 1.00\nvn 0.00 0.69 0.72\nvn -0.20 0.91 0.35\nvn -0.20 -0.91 0.35\nvn -0.46 -0.37 0.80\nvn -0.36 -0.69 0.62\nvn -0.46 0.37 0.80\nvn -0.50 0.00 0.86\nvn -0.36 0.69 0.62\nvn -0.62 -0.69 0.36\nvn -0.80 0.37 0.46\nvn -0.86 0.00 0.50\nvn -0.62 0.69 0.36\nvn -0.35 -0.91 0.20\nvn -0.80 -0.37 0.46\nvn -0.35 0.91 0.20\nvn -0.72 -0.69 0.00\nvn -0.40 -0.91 0.00\nvn -0.92 -0.37 0.00\nvn -0.92 0.37 0.00\nvn -0.40 0.91 0.00\nvn -1.00 0.00 0.00\nvn -0.72 0.69 0.00\nvn -0.80 -0.37 -0.46\nvn -0.80 0.37 -0.46\nvn -0.35 0.91 -0.20\nvn -0.35 -0.91 -0.20\nvn -0.62 -0.69 -0.36\nvn -0.86 0.00 -0.50\nvn -0.62 0.69 -0.36\nvn -0.20 -0.91 -0.35\nvn -0.46 -0.37 -0.80\nvn -0.36 -0.69 -0.62\nvn -0.50 0.00 -0.86\nvn -0.36 0.69 -0.62\nvn -0.46 0.37 -0.80\nvn -0.20 0.91 -0.35\ns 1\nf 555//454 479//455 472//456\nf 553//457 477//458 554//459\nf 470//460 475//461 471//462\nf 472//456 480//463 473//464\nf 554//459 478//465 555//454\nf 553//457 475//461 476//466\nf 470//460 481//467 474//468\nf 531//469 473//464 480//463\nf 480//463 487//470 488//471\nf 478//465 485//472 486//473\nf 475//461 484//474 476//466\nf 474//468 481//467 482//475\nf 531//469 480//463 488//471\nf 479//455 486//473 487//470\nf 476//466 485//472 477//458\nf 475//461 482//475 483//476\nf 484//474 490//477 491//478\nf 482//475 481//467 489//479\nf 531//469 488//471 495//480\nf 487//470 493//481 494//482\nf 485//472 491//478 492//483\nf 482//475 490//477 483//476\nf 488//471 494//482 495//480\nf 485//472 493//481 486//473\nf 531//469 495//480 502//484\nf 493//481 501//485 494//482\nf 492//483 498//486 499//487\nf 490//477 496//488 497//489\nf 494//482 502//484 495//480\nf 492//483 500//490 493//481\nf 490//477 498//486 491//478\nf 489//479 481//467 496//488\nf 496//488 504//491 497//489\nf 501//485 509//492 502//484\nf 499//487 507//493 500//490\nf 498//486 504//491 505//494\nf 496//488 481//467 503//495\nf 531//469 502//484 509//492\nf 501//485 507//493 508//496\nf 499//487 505//494 506//497\nf 509//492 515//498 516//499\nf 506//497 514//500 507//493\nf 504//491 512//501 505//494\nf 503//495 481//467 510//502\nf 531//469 509//492 516//499\nf 507//493 515//498 508//496\nf 505//494 513//503 506//497\nf 503//495 511//504 504//491\nf 510//502 481//467 517//505\nf 531//469 516//499 523//506\nf 515//498 521//507 522//508\nf 513//503 519//509 520//510\nf 510//502 518//511 511//504\nf 515//498 523//506 516//499\nf 513//503 521//507 514//500\nf 512//501 518//511 519//509\nf 521//507 529//512 522//508\nf 520//510 526//513 527//514\nf 517//505 525//515 518//511\nf 523//506 529//512 530//516\nf 520//510 528//517 521//507\nf 518//511 526//513 519//509\nf 517//505 481//467 524//518\nf 531//469 523//506 530//516\nf 530//516 537//519 538//520\nf 527//514 536//521 528//517\nf 525//515 534//522 526//513\nf 524//518 481//467 532//523\nf 531//469 530//516 538//520\nf 529//512 536//521 537//519\nf 527//514 534//522 535//524\nf 524//518 533//525 525//515\nf 535//524 543//526 536//521\nf 533//525 541//527 534//522\nf 532//523 481//467 539//528\nf 531//469 538//520 545//529\nf 536//521 544//530 537//519\nf 535//524 541//527 542//531\nf 532//523 540//532 533//525\nf 537//519 545//529 538//520\nf 531//469 545//529 552//533\nf 544//530 550//534 551//535\nf 541//527 549//536 542//531\nf 539//528 547//537 540//532\nf 544//530 552//533 545//529\nf 542//531 550//534 543//526\nf 540//532 548//538 541//527\nf 539//528 481//467 546//539\nf 549//536 553//457 554//459\nf 546//539 471//462 547//537\nf 551//535 473//464 552//533\nf 550//534 554//459 555//454\nf 548//538 471//462 553//457\nf 546//539 481//467 470//460\nf 531//469 552//533 473//464\nf 550//534 472//456 551//535\nf 555//454 478//465 479//455\nf 553//457 476//466 477//458\nf 470//460 474//468 475//461\nf 472//456 479//455 480//463\nf 554//459 477//458 478//465\nf 553//457 471//462 475//461\nf 480//463 479//455 487//470\nf 478//465 477//458 485//472\nf 475//461 483//476 484//474\nf 479//455 478//465 486//473\nf 476//466 484//474 485//472\nf 475//461 474//468 482//475\nf 484//474 483//476 490//477\nf 487//470 486//473 493//481\nf 485//472 484//474 491//478\nf 482//475 489//479 490//477\nf 488//471 487//470 494//482\nf 485//472 492//483 493//481\nf 493//481 500//490 501//485\nf 492//483 491//478 498//486\nf 490//477 489//479 496//488\nf 494//482 501//485 502//484\nf 492//483 499//487 500//490\nf 490//477 497//489 498//486\nf 496//488 503//495 504//491\nf 501//485 508//496 509//492\nf 499//487 506//497 507//493\nf 498//486 497//489 504//491\nf 501//485 500//490 507//493\nf 499//487 498//486 505//494\nf 509//492 508//496 515//498\nf 506//497 513//503 514//500\nf 504//491 511//504 512//501\nf 507//493 514//500 515//498\nf 505//494 512//501 513//503\nf 503//495 510//502 511//504\nf 515//498 514//500 521//507\nf 513//503 512//501 519//509\nf 510//502 517//505 518//511\nf 515//498 522//508 523//506\nf 513//503 520//510 521//507\nf 512//501 511//504 518//511\nf 521//507 528//517 529//512\nf 520//510 519//509 526//513\nf 517//505 524//518 525//515\nf 523//506 522//508 529//512\nf 520//510 527//514 528//517\nf 518//511 525//515 526//513\nf 530//516 529//512 537//519\nf 527//514 535//524 536//521\nf 525//515 533//525 534//522\nf 529//512 528//517 536//521\nf 527//514 526//513 534//522\nf 524//518 532//523 533//525\nf 535//524 542//531 543//526\nf 533//525 540//532 541//527\nf 536//521 543//526 544//530\nf 535//524 534//522 541//527\nf 532//523 539//528 540//532\nf 537//519 544//530 545//529\nf 544//530 543//526 550//534\nf 541//527 548//538 549//536\nf 539//528 546//539 547//537\nf 544//530 551//535 552//533\nf 542//531 549//536 550//534\nf 540//532 547//537 548//538\nf 549//536 548//538 553//457\nf 546//539 470//460 471//462\nf 551//535 472//456 473//464\nf 550//534 549//536 554//459\nf 548//538 547//537 471//462\nf 550//534 555//454 472//456\n';
Earth.mapSvg='<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="800px" height="400px" viewBox="0 0 800 400" style="enable-background:new 0 0 800 400;" xml:space="preserve"><rect id="SEA" x="-1" y="-1" width="802" height="402"/><path id="ME" d="M443.62,107.1c-0.59-0.06-0.65-0.71-1.19-0.89c-0.41-0.11-0.85-0.24-0.83-0.69c0.54-0.17-0.12-0.56,0.06-0.94c0.5-0.06,0.29-0.54,0.72-0.73c0.27-0.09,0.86,0.37,0.44-0.23c-0.2-0.46,0.57-0.18,0.78-0.02c0.41,0.2,0.62,0.66,1.12,0.7c0.37,0.01,0.58,0.42,1.02,0.45c0.31,0.39-0.61,0.22-0.72,0.44c0.57,0.21-0.1,0.69-0.5,0.42c-0.54-0.28-0.93,0.37-0.99,0.8C443.61,106.63,443.64,106.85,443.62,107.1L443.62,107.1z"/><path id="SI" d="M430.73,96.73c0.55-0.02,1.05,0.14,1.57,0.17c0.57,0.3,0.86-0.19,1.36-0.38c0.5-0.23,1.11,0.23,1.54-0.19c0.75,0.24,0.79,0,1.07-0.34c0.65-0.36,0.59,0.62,1.1,0.82c-0.55-0.46-0.55,0.31-0.93,0.16c-0.26,0.43-0.95,0.22-1.18,0.61c0.39,0.21,0.28,0.8-0.21,0.68c-0.57,0.1-0.35,0.29-0.44,0.58c0.16,0.45-0.51,0.24-0.74,0.14c-0.28,0.11-0.65,0.02-0.83-0.3c-0.2,0-0.49,0.52-0.92,0.32c-0.4-0.07-0.54,0.05-0.91,0.07c-0.93,0.03,0.05,0.05,0.09-0.47c-0.68-0.16-0.52-0.65-0.78-0.81c0.88-0.39-0.89-0.43,0.03-0.73C430.76,96.95,430.95,96.97,430.73,96.73L430.73,96.73z"/><path id="HR" d="M439.57,104.71c-0.45-0.28-0.94-0.58-1.32-0.91c-0.6,0.04-1.05-0.58-1.65-0.32c-0.56,0.24-0.68-0.7-1.28-0.75c-0.4-0.14-1.01-0.74-0.99-0.95c0.72,0.04,0.92,0.04,0.14-0.25c-0.47-0.24-0.96-0.7-0.68-1.28c-0.32-0.42-0.8-0.73-1.31-0.88c-0.2,0.5-0.38,0.82-0.75,1.1c-0.35,0.4-0.76-0.45-0.83-0.78c-0.41-0.64-0.15-0.59,0.42-0.63c0.34-0.02,0.51-0.06,0.91-0.06c0.46,0.34,0.65-0.6,0.89-0.22c0.21,0.39,0.6,0.19,0.91,0.24c0.28,0.23,0.81,0.11,0.55-0.29c0.06-0.23,0.11-0.44,0.65-0.49c0.63,0.02-0.03-0.6,0.11-0.78c0.35-0.17,0.85-0.13,1.1-0.48c0.38,0.15,0.37-0.62,0.93-0.16c0.71,0.55,1.67,0.7,2.39,1.27c0.74,0.49,1.74,0.31,2.54,0.06c0.6-0.07,0.14,0.74,0.47,0.75c0.38,0.07-0.28,0.46,0.38,0.6c0.52-0.04,0.74,0.35,0.11,0.14c-0.29,0.1-0.25,0.65-0.36,0.77c-0.56,0.2-0.54-0.28-0.83-0.46c-0.4,0.01-0.84-0.17-1.26-0.05c-0.38-0.09-0.73,0.11-1.17-0.06c-0.48-0.1-0.81-0.02-1.24-0.21c-0.37-0.04-0.82-0.02-1.2,0.06c-0.23,0.54-0.77,0.39-1.02-0.07c-0.72-0.28-0.41,0.62-0.61,0.85c0.24,0.32,0.74,0.4,0.88,0.87c0.13,0.39,0.16,0.52,0.54,0.87c0.6,0.03,0.65,0.67,1.14,0.85c0.35,0.36,0.87,0.4,0.96,0.9C439.27,104.13,440.35,104.6,439.57,104.71L439.57,104.71z M439.79,104.83c0.38-0.33,0.67,0.39,1.11,0.33c0.29,0.34,0.76,0.16,0.82,0.68c-0.2,0.14-0.8-0.47-1.14-0.63C440.32,105.09,440.05,104.96,439.79,104.83z"/><path id="RS" d="M451.01,101.72c-0.28,0.42-1.01,0.71-0.83,1.29c0.43,0.41,1.01,0.74,1.34,1.21c-0.09,0.69-1.4,0.49-1.3,1.31c0.2,0.6-0.46,0.49-0.81,0.54c-0.37,0.02-0.72,0.2-1.14,0.14c-0.36,0.38-0.39,0.26-0.81,0.16c-0.64-0.05-0.61,0.56-0.98,0.69c-0.45-0.36-0.8-1.08-1.34-1.4c0.23-0.44-0.41-0.66,0.38-0.59c0.56-0.13,0.17-0.48-0.25-0.47c-0.26-0.42-0.72-0.28-1.11-0.55c-0.07-0.4-1.12-0.49-0.7-0.76c0.32-0.04,0.77-0.16,0.31-0.59c-0.73-0.58-0.12-0.19,0.35-0.4c0.07-0.17-0.58-0.39-0.68-0.61c-0.54,0.06-0.4-0.6-0.1-0.8c0.48-0.37,0.15-0.86-0.36-0.54c-0.05,0.02,0.1-0.57,0.25-0.75c0.62,0.24,0.54-0.14-0.02-0.13c-0.6-0.14-0.2-0.46-0.36-0.61c-0.35,0.07-0.09-0.75-0.36-0.8c0.97-0.38,1.99-0.71,3.05-0.52c0.26,0.26,0.7,0.49,1.1,0.75c0.08,0.33,0.09,0.8,0.68,0.98c0.28,0.21,1.44,0.23,0.8,0.67c0.37,0.29,0.1,0.12-0.04,0.55c0.5,0.09,0.75,0.25,1.29,0.42c0.48,0.6,0.65-0.31,1.11-0.26c0.93,0.3,0.37,0.23,0.02,0.62C450.52,101.6,450.79,101.63,451.01,101.72L451.01,101.72z"/><path id="MK" d="M451.51,108.46c-0.57,0.13-1.05,0.55-1.66,0.35c-0.58-0.24-0.86,0.42-1.29,0.59c-0.52,0.08-1.2,0.4-1.58-0.11c-0.63-0.43-0.91-1.35-0.62-2.06c0.15-0.14,0.38-0.47,0.68-0.73c0.32-0.38,0.9,0.16,0.89-0.08c0.32-0.4,0.83-0.03,1.15-0.33c0.33-0.03,0.74-0.03,1.12-0.1c0.05,0.56,0.89,0.43,1.1,0.94c0.42,0.42,0.22,1.01,0.21,1.5V108.46 L451.51,108.46L451.51,108.46z"/><path id="BA" d="M439.79,104.83c-0.21-0.14,0.21-0.46-0.46-0.71c-0.46-0.21-0.35-0.76-0.95-0.82c-0.42-0.35-0.73-0.58-1.06-1c-0.44-0.08-0.82-0.48-0.76-0.77c-0.2-0.34-0.42-0.74-0.83-0.89c-0.15-0.16-0.19-0.85,0.15-1.05c0.44-0.12,0.82,0.9,1.15,0.29c0.26-0.5,0.84-0.07,1.18-0.32c0.45,0.23,0.75,0.15,1.19,0.26c0.44-0.05,0.86,0.27,1.24,0c0.38,0.11,0.84,0.03,1.2,0.1c0.52-0.08,0.34,0.54,0.81,0.53c0.32-0.06,1.16-0.39,0.87,0.22c-0.23,0.32-0.59,0.61-0.4,0.97c0.44-0.01,0.55,0.45,0.98,0.55c0.26,0.47-0.98-0.05-0.67,0.27c0.34,0.04,0.82,0.91,0.28,0.75c-0.19,0.26-1.05,0.01-0.92,0.38c0.46,0.58-0.11,0.22-0.41,0.26c-0.43,0.16-0.19,0.69-0.69,0.7c-0.28,0.36,0.49,0.8-0.1,0.96c-0.42-0.11-0.7-0.4-1.16-0.5C440.23,104.89,440.04,104.51,439.79,104.83L439.79,104.83z"/><path id="AL" d="M445.29,112.2c-0.13-0.55-0.5-0.97-1.02-1.21c-0.85-0.35-0.39-0.36-0.49-0.82c-0.59-0.37,0.49-0.8,0.03-1.2c0.38-0.46-0.47-1.04,0.35-1.23c0.26-0.67-0.78-0.39-0.57-1.07c-0.25-0.4,0.19-1.12,0.62-1.1c0.49,0.12,1.06-0.03,1.35,0.48c0.37,0.47,1.06,0.96,0.65,1.62c0,0.74,0.34,1.44,0.98,1.82c0.06,0.25-0.38,0.92-0.69,1.21C446,111.12,445.63,111.63,445.29,112.2z"/><path id="LT" d="M451.02,79.17c-0.42-0.49,0.65-0.88,0.04-1.15c-0.39-0.27-0.78-0.31-1.31-0.26c-0.42,0.01-0.95-0.16-1.39-0.31c-0.25-0.33-1,0.14-0.64-0.35c-0.4-0.42-0.52-0.94-0.49-1.51c0.03-0.06,0.65-0.43,1.07-0.54c0.68-0.16,1.36-0.44,2.06-0.26c0.47,0.14,1.02-0.23,1.37,0.12c0.48-0.2,0.99,0.12,1.48-0.04c0.54-0.07,0.99,0.29,1.51,0.12c0.42,0.21,1.01-0.56,1.23-0.1c0.43,0.69,1.43,0.16,1.95,0.71c0.5,0.15,0.88,0.48,1.29,0.73c0.83-0.15,0.18,0.6,0.22,0.79c0.78-0.06,0.51,0.29,0.12,0.5c-0.54-0.36-0.72,0.42-1.26,0.34c-0.63-0.08-0.51,0.67-0.67,0.94c-0.68,0.48,0.29,0.38,0.14,0.87c-0.52,0.35-0.47-0.63-0.92-0.2c-0.4,0.03-0.74,0.28-1.21,0.29c0.22,0.48-0.75,0.3-1.05,0.5c-0.36-0.27-0.88-0.01-1.33-0.07c-0.53,0.15-0.55-0.56-0.84-0.86C451.97,79.19,451.5,79.08,451.02,79.17L451.02,79.17z"/><path id="EE" d="M462.83,67.96c0.71,0.32-0.12,0.37-0.34,0.53c-0.13,0.55-0.78,0.54-1.03,0.95c0.19,0.5,0.23,0.93,0.14,1.32c0.24,0.23,0.8,0.68,0.53,0.8c-0.49,0-0.79,0.5-0.87,0.71c-0.47,0-0.88-0.31-1.3-0.15c-0.38,0.23-0.95,0.09-1.19-0.26c-0.39-0.26-0.8-0.35-1.27-0.45c-0.44-0.27-0.79-0.21-1.1-0.34c-0.55,0.21-1.21,0.16-1.72,0.44c0.3-0.35,0.42-1.25-0.25-0.83c-0.32,0.46-1.07,0-1.24-0.19c0.24-0.96-0.24-0.41-0.64-0.92c0.03-0.39-0.06-0.67,0.24-0.87c0.54-0.06,1.09-0.04,1.45-0.29c0.45-0.21,0.79-0.22,1.26-0.21c0.2-0.55,1.04,0.27,1.41-0.17c0.33-0.12,0.85,0,1.36-0.06c0.84-0.03,1.68,0.14,2.48,0.29C461.44,68.11,462.34,68.62,462.83,67.96z"/><path id="LV" d="M461.35,72.25c0.46-0.07,0.49,0.46,1.05,0.51c-0.13,0.42-0.23,0.46-0.38,0.89c0.07,0.09,0.61,0.13,0.71,0.5c0.22,0.34,0.5,0.51,0.44,1.02c-0.24,0.34-0.88,0.26-1.17,0.65c-0.12,0.61-0.79,0.19-1.22,0.24c-0.46-0.05-0.73,0.41-1.2,0.32c-0.57,0.1-0.76-0.49-1.26-0.59c-0.47-0.19-0.85-0.56-1.4-0.48c-0.56,0.14-0.87-0.48-1.21-0.57c-0.46,0.29-1.02,0.26-1.52,0.31c-0.64-0.35-1.34,0-2.01-0.23c-0.48,0.24-0.75-0.25-1.25-0.02c-0.67,0.03-1.31-0.2-1.95,0.07c-0.42,0.2-1.17,0.07-1.34,0.58c-0.81,0.28-0.54-0.55-0.5-1.05c0.06-0.55,1.06-0.44,0.83-1.12c0.02-0.42,0.58-0.77,0.94-0.93c0.61-0.05,1.2-0.28,1.79-0.32c0.08,0.53,0.85,0.55,1.17,0.87c0.2,0.85,1.25,0.9,1.94,0.68c0.48-0.05,1.04-0.37,0.81-0.93c-0.13-0.47-0.35-1.09,0.25-1.27c0.49-0.17,1.03-0.15,1.51-0.33c0.33,0.16,0.65,0.05,1.09,0.34c0.45,0.09,0.86,0.17,1.23,0.42c0.26,0.35,0.81,0.52,1.2,0.31c0.44-0.14,0.84,0.08,1.31,0.14C461.2,72.35,461.36,72.19,461.35,72.25z"/><path id="UA" d="M453,85.54c0.21-0.47,0.9,0.18,1.24-0.29c0.38-0.29,0.68-0.68,1.29-0.48c0.52,0,1.03-0.13,1.55-0.04c0.51-0.07,1.06-0.07,1.54,0.06c0.44,0.21,0.99,0.13,1.49,0.26c0.49,0.08,0.93-0.05,1.04,0.35c0.28,0.03,1.05-0.18,1.01,0.32c0.18-0.53,0.66,0.02,1.05-0.35c0.38,0.35,0.82,0.07,1.18,0.43c0.28-0.31,1-0.63,1.15-0.06c0.23,0.48,0.86-0.27,1.17,0.07c0.45-0.08,1.08-0.27,1.35,0.25c0.97,0.3,0.01-0.53,0.43-0.81c0.35-0.33,0.67-0.77,1.14-0.87c0.49,0.16,0.92-0.22,1.47-0.09c0.51,0.14,1.25,0.24,1.43-0.41c0.23-0.37,0.89,0.34,1.33-0.02c0.55-0.34,1.15,0.1,1.71-0.19c0.39,0.34,0.73,0.72,1.12,1.08c0.93,0.43-0.33,0.34-0.22,0.71c0.09,0.55,0.48,0.94,1.06,0.78c0.29,0.32,1.21-0.31,1.08,0.38c0.49-0.14,0.62,0.67,0.64,1.03c0.17,0.49,0.62,0.69,1.08,0.41c0.51-0.15,0.83,0.47,1.32,0.28c0.37,0.33,0.9-0.17,1.36-0.11c0.43-0.2,0.98-0.19,1.1,0.31c0.29,0.33,0.76,0.58,1.19,0.57c0.34-0.58,0.74,0.17,1.29,0.09c0.46,0.22,0.9,0.04,1.29,0.35c0.59-0.12,0.74,0.52,1.32,0.44c0.65-0.35,0.26,0.21,0.58,0.51c0.03,0.51-1.16,0.46-0.95,0.76c0.54,0.23,0.87,0.43,0.04,0.4c-0.45,0.4,0.36,0.51,0.34,1.01c0.09,0.37-0.14,1.08-0.56,1.18c-0.59-0.18-1.2-0.14-1.82-0.11c-0.07,0.56-0.82,0.42-1.21,0.6c-0.13,0.47,0.08,1.19-0.65,1.05c-0.61,0.1-1.3-0.06-1.73,0.5c-1.13,0.39-2.48,0.07-3.49,0.83c-0.54,0.29-0.99-0.67-1.19,0.2c-0.44,0.7-1.37,0.21-2.03,0.36c-0.91,0.01-0.66,0.31,0.05,0.54c0.59,0.35,1.32,0.58,1.83,1.01c-0.24,0.56,0.5,0.66,0.92,0.5c0.78-0.23,1.63-0.31,2.42-0.08c-0.26,0.43-0.58,0.78-1.15,0.76c-0.58,0.07-1.26-0.38-1.74,0.17c-0.57,0.53-1.55,0-2.08,0.65c-0.47,0.66-1.34,0.34-1.97,0.17c0.27-0.44,0.56-1.05,0.03-1.42c-0.57-0.27-1.22-0.43-1.85-0.27c-0.31-0.39,0.73-0.61,1.06-0.83c0.33-0.29,1.47-0.11,1.18-0.67c-0.27-0.53-1.04-0.19-1.53-0.24c-0.75,0.04-1.69,0.15-2.15-0.6c0.74-0.17,0.48-0.84-0.01-0.95c-0.35,0.51-1.04,0.2-1.56,0.4c-0.55,0.03-1.05,0.21-1.36,0.69c-0.6,0.56-1.17,1.23-2.05,1.3c-0.78,0.19,0.17,1.08-0.6,0.7c-0.48-0.16-0.89,0.36-1.39,0.21c-0.09,0.39-1.08,0.14-1.16-0.27c-0.38-0.14,0.88,0.12,0.48-0.46c0.47-0.08,0.44-0.62,0.85-0.63c0.3-0.19,0.27-0.64,0.06-0.98c0.34-0.41,0.69-0.21,0.84,0.05c0.08-0.46,0.59,0.2,0.82-0.02c0.31-0.18,0.36,0.27,0.88,0.06c0.19-0.2-0.63-0.27-0.23-0.66c0.06-0.52-0.89-0.39-0.82-0.78c-0.31-0.11,0.15-0.5-0.15-0.71c-0.27,0.18-0.94-0.27-0.83-0.55c0.17-0.42,0.26-0.56-0.03-0.87c-0.51,0.35-0.6-0.41-1.07-0.4c-0.49,0.06-0.7,0.15-0.72-0.18c-0.42,0.13-0.72-0.2-1.08-0.36c-0.36-0.19-0.74-0.07-1.13-0.08c-0.29,0.42-1.05-0.16-1.17,0.24c-0.26,0.11-0.97,0.04-1.13,0.45c-0.47,0.48-1.28,0.25-1.9,0.4c-0.48-0.12-0.85,0.73-1.28,0.3c-0.42-0.22-0.62-0.34-1.23-0.3c-0.67,0.07-1.33-0.33-1.96-0.14c-0.57-0.11-1.04,0.01-1.51-0.41c-0.42-0.15-1.14-0.43-1.34-0.56c0.33-0.47,0.66-0.93,1-1.4c1.01,0.18,0.24-0.19,0.27-0.81c-0.02-0.66,0.8-0.87,1.18-1.31c0.53-0.36,1.03-0.96,1.72-0.92c0.82-0.31-0.55-0.99,0.28-1.03c-0.33-0.21-0.76-0.69-1.1-1.03C453.18,85.76,453.18,85.66,453,85.54L453,85.54z"/><path id="BY" d="M452.87,80.27c0.49,0.1,1.03-0.08,1.51-0.02c0.34,0.26,0.94-0.15,1.29-0.18c-0.22-0.56,0.77-0.04,0.86-0.54c0.56-0.16,0.63,0.06,1.01,0.27c0.78-0.26-0.56-0.37-0.11-0.75c0.47-0.23,0.05-0.8,0.57-1.08c0.6,0.22,0.77-0.51,1.28-0.39c0.28,0.16,1.03-0.48,0.39-0.44c-0.62,0.16,0-0.71,0.16-0.79c0.45-0.05,0.78-0.46,1.29-0.26c0.58,0.24,0.79-0.11,1.12-0.49c0.43-0.29,0.89-0.22,1.31-0.11c0.5-0.37,0.75,0.44,1.2,0.18c0.3-0.09,1.24-0.07,1.08,0.23c-0.3,0.57,0.51,0.4,0.8,0.24c0.45-0.18,0.89-0.16,1.38-0.06c0.41,0.13,0.83,0.5,1.2,0.55c-0.38,0.5,0.11,0.76,0.11,1.2c-0.58,0.24-0.32,0.56,0.12,0.83c0.5-0.05,0.03,0.41,0.57,0.65c0.18,0.59,1.06,0.33,1.3,0.84c-0.47,0.65,0.41,0.3,0.76,0.44c0.82,0.03,0.26,0.39,0.84,0.63c0.79,0.23-0.3,0.43-0.56,0.68c-0.52,0.27-1.12,0.18-1.63-0.01c-0.57-0.21-0.9,0.58-0.28,0.77c0.3,0.29,0.2,0.58,0.31,1.07c0.19,0.39,0.64,0.65-0.22,0.56c-0.45,0.22-0.98-0.06-1.33,0.29c-0.31,0.28-0.96,0.63-0.87,1.05c0.61,0.57-0.41,0.59-0.65,0.13c-0.44-0.21-0.95,0.21-1.33-0.05c-0.51,0.33-0.87,0.16-1.12-0.31c-0.41-0.12-0.91,0.67-1.15,0.2c-0.53,0.03-0.78-0.31-1.31-0.09c-0.39-0.41-0.74,0.57-0.69-0.08c-0.44-0.21-1.04,0.19-1.15-0.22c-0.17-0.31-0.89-0.05-1.3-0.24c-0.52-0.04-0.97-0.18-1.46-0.25c-0.6-0.14-1.22,0.08-1.83-0.04c-0.54,0.19-1.15-0.05-1.66,0.14c-0.25,0.37-0.78,0.75-1.21,0.56c-0.63,0.1-0.7,0.13-0.38-0.55c0.29-0.52-0.45-0.9-0.9-0.9c-0.23-0.3,0.55-0.86,0.97-0.87c0.75,0.11,0.7-0.69,0.4-1.13C453.34,81.37,453.13,80.8,452.87,80.27L452.87,80.27z"/><path id="MD" d="M459.72,92.84c0.37-0.21,0.54-0.31,1.08-0.23c0.39,0.06,0.73-0.31,1.14-0.13c0.39-0.06,0.79,0.24,1.1,0.44c0.53-0.06,0.46,0.07,0.62,0.26c0.29-0.16,0.98-0.2,1.07,0.34c0.41-0.06,0.85,0.06,0.71,0.37c-0.01,0.34-0.41,0.81,0.27,0.92c0.27,0.27,0.73-0.04,0.49,0.54c-0.07,0.12,0.11,0.53,0.55,0.63c0.6,0.06,0.1,0.7,0.37,0.81c0.64,0.27-0.14,0.26-0.42,0.29c0.03-0.51-0.59,0.35-0.69-0.26c-0.48,0.09-0.44,0.29-0.68-0.15c-0.77,0.06-0.33,0.55-0.44,0.94c0.15,0.45-0.58,0.24-0.58,0.71c-0.6,0.02-0.21,0.76-0.76,0.64c-0.47,0.16-0.6-0.23-0.48-0.59c-0.36-0.8,0.61-1.58,0.08-2.35c-0.06-0.64-0.82-0.56-1.09-1.06c-0.61-0.57-1.06-1.26-1.5-1.96C460.28,92.94,460.01,92.75,459.72,92.84L459.72,92.84z"/><path id="IT" d="M420.18,113.47c-0.53-0.05-1.22-0.59-0.87-1.16c0.19-0.72,0.31-1.64-0.13-2.26c-0.58-0.25-0.53-0.95,0.17-0.77c0.75,0.17,1.32-0.35,1.91-0.72c0.46,0.45,1.07,0.97,1.07,1.65c-0.51,0.48-0.25,1.16-0.22,1.75c-0.1,0.39-0.28,1.37-0.79,0.98C420.72,112.71,420.56,113.18,420.18,113.47z M433.78,118.45c-0.64,0.05-1.12-0.34-1.61-0.69c-1.22-0.27-2.25-1.11-3.51-1.18c-0.76-0.23-0.15-1.21,0.41-1.17c0.55,0.4,0.97-0.51,1.41-0.06c0.89,0.7,2.07,0.23,3.08,0.13c0.39,0,1.36-0.57,1.34-0.01c-0.35,0.54-1.01,1.25-0.62,1.9c0.58,0.35-0.12,0.8-0.4,1.07C433.87,118.32,433.81,118.46,433.78,118.45 L433.78,118.45z M431.24,98.83c-0.34-0.65-0.81-0.03-1.31-0.34c-0.22,0.35-0.8,0.36-1.28,0.57c-0.43,0.15-0.73-0.07-1.02,0.52c0.24,0.19,0.76,0.62,0.66,0.99c-0.64,0.11-0.46,0.84-0.17,1.21c0.43,0.59,1.05,0.91,1.72,1.15c0.57,0.24,1.33,0.46,1.35,1.21c0.24,0.83,0.86,1.44,1.51,1.97c0.47,0.24,0.65,0.67,1.2,0.75c0.74,0.25,1.49,0.21,2.25,0.11c0.9,0.2-0.06,0.54-0.31,0.89c0.64,0.47,1.51,0.51,2.22,0.85c0.88,0.35,1.72,0.77,2.58,1.16c0.19,0.48,0.92,0.52,1.07,1.09c-0.12,0.41-0.3,1.1-0.79,0.52c-0.53-0.14-0.31-1-1.04-0.89c-0.55,0.07-1.07-0.22-1.17-0.53c-0.66-0.18-0.77,0.7-1.24,0.93c0.05,0.45-0.47,1,0.33,1.09c0.52,0.22,1.05,0.32,0.81,0.97c0.41,0.67-0.47,0.47-0.86,0.61c-0.79,0.11-0.04,0.98-0.65,1.13c-0.55,0.21-0.58,1.17-1.29,1.03c-0.57,0.14-0.76-0.85-0.14-0.85c0.55-0.43-0.21-0.96,0.62-0.94c0.72,0.01-0.11-0.71-0.06-1.09c-0.03-0.62-0.62-0.98-0.63-1.61c-0.22-0.75-0.85,0.19-1.27-0.42c-0.75-0.2-0.42-0.35-0.52-0.95c-0.31-0.61-1.1-0.04-1.34-0.18c0.73-0.25-0.23-0.75-0.56-0.34c-0.33-0.1-0.42-0.92-0.91-0.99c-0.72-0.27-1.55-0.14-2.21-0.61c-0.9-0.66-1.86-1.26-2.73-1.96c-1.28-0.4-2.14-1.54-2.54-2.78c-0.45-0.94-1.44-1.39-2.42-1.58c-0.63-0.26-1.33-0.25-1.85,0.22c-0.59,0.35-1.1,0.85-1.84,0.85c0.24-0.49,0.01-0.96-0.66-0.69c-0.43-0.06-1.15-0.38-1.03-0.89c0.6-0.34,0.37-0.76-0.3-0.83c-0.74-0.49,0.12-0.46,0.47-0.59c0.79-0.36,0.18-0.49,0.06-0.96c-0.87-0.25-0.21-0.69,0.36-0.62c0.54,0.1,1.03-0.35,1.56-0.01c0.64-0.11,0.45-0.81,0.86-0.96c0.64-0.58,0.35,0.42,1.01,0.54c0.27-0.01,0.62,1,0.89,0.24c0.03-0.47,0.43-0.92,0.68-1.13c0.23,0.31,0.58,0.63,1.04,0.29c0.42,0.33,0.83,0.13,0.46-0.32c0.04-0.67,1.12,0.37,0.78-0.41c-0.03-0.7,0.83-0.01,1.26-0.16c0.3-0.46,0.78-0.48,1.29-0.51c0.39,0.29,1.26-0.45,1.27,0.12c0.34,0.23,0.7,0.74,1.26,0.7c0.68,0.23,1.51,0.06,2.12,0.4c-0.12,0.35-0.89,0.51-0.02,0.7c-0.32,0.3-0.15,0.59,0.16,0.87C431.11,98.46,431.42,98.59,431.24,98.83L431.24,98.83z"/><path id="PL" d="M450.73,91.05c-0.42-0.28-1.11-0.22-1.36-0.65c-0.52-0.06-0.87-0.45-1.39-0.24c-0.56-0.23-0.9,0.59-1.41,0.02c-0.49,0.06-1.1-0.08-1.38,0.43c-0.55,0.2-0.59-0.22-0.87-0.42c-0.29-0.25-0.69-0.59-1.04-0.14c-0.46,0.37-0.76-0.17-1.01-0.47c-0.61-0.1-0.42-0.79-1.17-0.65c-0.31-0.46-1.04,0.31-1.09-0.27c-0.28-0.31-0.07-0.5-0.86-0.45c-0.25-0.13-1.31-0.62-0.93-0.06c0.33,0.23-0.8,0.75-0.95,0.2c-0.47-0.36-0.88-0.48-0.15-0.77c-0.33-0.44-0.94,0.11-1.15-0.22c-0.32-0.28-0.92-0.13-1.33-0.39c-0.01-0.43-0.93-0.55-0.73-0.04c-0.9,0.14,0.48-0.65-0.12-1.01c-0.5-0.33-0.48-0.54-0.78-0.98c0.34-0.27,0.44-0.91-0.09-1.07c0.07-0.5,0.09-0.78-0.56-1c-0.92-0.17,0.18-0.53,0.22-0.99c0.08-0.39-0.64-1.28,0.22-0.82c0.34-0.1-0.41-0.9,0.27-0.84c0.95-0.13,1.87-0.4,2.83-0.43c0.75-0.21,1.33-0.8,2.14-0.87c1.08-0.24,2.22-0.54,3.32-0.39c0.64,0.25,1.2,0.46,0.23,0.13c-0.46-0.2,0.13,0.82,0.46,0.84c0.85,0.23,1.65-0.19,2.43-0.45c-0.25,0.17-1.48,0.45-0.99,0.66c0.74-0.18,1.4-0.71,2.19-0.58c1.99,0.16,3.98,0.07,5.98-0.01c0.53,0.09,0.91,0.38,1.09,0.9c0.42,0.84,0.83,1.72,1.06,2.62c-0.14,0.59-1,0.26-1.35,0.7c-0.66,0.56-0.07,0.54,0.41,0.78c0.67,0.28,0,0.91,0.07,1.32c0.24,0.41,0.34,0.84,0.84,1.19c0.84,0.38-0.3,0.34,0.39,0.81c0.13,0.71-0.72,0.43-1.05,0.8c-0.72,0.49-1.46,1.04-2.06,1.65c-0.42,0.45,0.57,1.22,0.07,1.15C451,91.06,450.85,91.03,450.73,91.05L450.73,91.05z M431.84,80.27C432.29,80.22,432.19,80.81,431.84,80.27z M432.74,80.36C432.3,80.83,431.96,79.98,432.74,80.36L432.74,80.36z"/><path id="SK" d="M438.22,91.95c0.12-0.32,0.5-0.75,0.87-0.48c0.43,0,0.93,0.01,1.28-0.28c0.22-0.22,0.65-0.27,0.66-0.74c0.47,0.02,0.72-0.64,1.22-0.42c0.45-0.37,0.7,0.61,1.11-0.08c0.47-0.38,0.64,0.24,1.07,0.24c0.04,0.43,0.42,0.57,0.83,0.36c0.28-0.46,0.94-0.35,1.39-0.33c0.52,0.49,0.85-0.32,1.42-0.08c0.47-0.13,0.94,0.15,1.34,0.33c0.24,0.35,1.16,0.29,1.27,0.64c-0.38,0.45-0.65,1.07-1.08,1.41c-0.56,0.18-1.09-0.09-1.51-0.44c-0.63,0.08-1.35-0.08-1.92,0.19c-0.51,0.4-1.05,0.9-1.75,0.66c-0.56,0-1.22,0.11-1.71,0.25c-0.15,0.7-0.83,0.45-1.35,0.47c-0.69,0.02-1.39-0.06-2.02-0.38c-0.4,0.31-0.92-0.34-1.16-0.66C438.17,92.41,438.34,92.15,438.22,91.95z"/><path id="CZ" d="M431.57,91.96c-0.25-0.46-0.66-0.86-1.1-0.83c-0.41-0.22-0.84-0.6-1.21-0.79c-0.45,0.04-0.8-0.44-1.02-0.72c0.39-0.72-0.05-0.6-0.43-1.12c0.11-0.46,0.79-0.32,1.15-0.57c0.5-0.01,0.82-0.23,1.2-0.46c0.43-0.02,0.77-0.22,1.26-0.27c0.16-0.24,1.45-0.1,0.92-0.49c0.27-0.43,0.7,0.28,1.05,0.34c0.58-0.04,0.36-0.46,0.9-0.44c0.31,0.32,0.68,0.64,1.22,0.57c0.5,0.07,0.64,0.49,1.15,0.2c1.01,0.07-0.26,0.44,0.09,0.63c0.48,0.04,0.74,0.99,1.22,0.44c0.75,0.02-0.31-0.88,0.67-0.45c0.28,0.38,1.39-0.01,1.08,0.44c0.36-0.18,0.24,0.87,0.92,0.32c0.27,0.32,1.23,0.02,1.14,0.54c0.26,0.21,1.06,0.61,0.37,0.7c-0.45-0.13-0.65,0.48-1.1,0.43c-0.03,0.46-0.43,0.53-0.67,0.74c-0.26,0.22-0.71,0.35-1.06,0.26c-0.35-0.04-0.84-0.14-0.98,0.31c-0.16,0.36-0.81-0.36-1.24-0.03c-1.09,0.28-2.14-0.27-3.2-0.46c-0.42,0.46-0.9,1.09-1.61,0.88C432.04,92.14,431.82,91.97,431.57,91.96L431.57,91.96z"/><path id="HU" d="M442.39,98.11c-0.76,0.28-1.67,0.41-2.42,0.09c-0.75-0.54-1.63-0.84-2.44-1.25c-0.3-0.28-0.96-0.79-0.68-1.18c0.7-0.25-0.18-0.89,0.38-1.07c1.03-0.24-0.56-0.47,0.03-0.7c0.39,0,1.29,0.43,1.21-0.27c0.45-0.18,0.89-0.64,1.37-0.25c0.83,0.29,1.73,0.15,2.6,0.21c0.15-0.66,0.74-0.59,1.29-0.69c0.67-0.19,1.48,0.25,2.01-0.38c0.38-0.4,0.86-0.53,1.4-0.49c0.54-0.03,1.1-0.11,1.51,0.33c0.55,0.33,1.2-0.17,1.72,0.27c0.49,0.19,0.97,0.38,1.41,0.67c-0.56,0.61-1.52,0.35-2.08,0.96c-0.89,1.06-1.44,2.64-2.87,3.07c-0.61,0.01-1.17,0.23-1.78,0.09C444.08,97.43,443.24,97.83,442.39,98.11L442.39,98.11z"/><path id="RO" d="M445.72,97.57c0.6-0.17,1.33-0.01,1.81-0.52c1-0.67,1.4-1.91,2.21-2.75c0.58-0.57,1.53-0.33,2.09-0.96c0.54,0.08,1.07-0.04,1.61,0.08c0.63,0.12,1.28,0.18,1.91,0.11c0.11,0.32,0.72,0.58,1.12,0.27c0.33-0.44,1.02-0.2,1.51-0.34c0.64,0.15,0.93-0.42,1.36-0.59c0.56-0.14,1.29-0.06,1.51,0.56c0.45,0.72,1.01,1.41,1.67,1.92c0.55,0.12,0.72,0.76,0.78,1.24c-0.03,0.61-0.51,1.15-0.23,1.77c-0.17,0.49,0.17,0.52,0.44,0.91c0.56,0.36,0.94,0.1,1.4,0.02c0.48-0.16,0.95-0.36,1.47-0.13c0.5,0.27-0.14,0.93-0.43,1.11c-0.63-0.05-1.19,0.26-1.51,0.8c-0.41,0.5-0.39,1.19-0.51,1.79c-1.1-0.19-2.21-0.46-3.22-0.94c-0.86-0.53-1.78,0.25-2.61,0.49c-0.57,0.3-1.21,0.48-1.82,0.19c-0.56-0.22-1.15-0.24-1.69,0.07c-0.8,0.09-1.53-0.65-2.34-0.28c-0.79,0.39-0.64-0.16-0.68-0.43c-0.4-0.21-1.02-0.27-1.14-0.77c0.72-0.26,0.69-0.3-0.07-0.57c-0.41,0.24-0.64,0.79-1.1,0.24c-0.53-0.14-0.81-0.27-1.24-0.46c0.37-0.31,0.37-0.2,0.06-0.45c0.64-0.42-0.44-0.49-0.75-0.66c-0.56-0.2-0.68-0.61-0.7-1C446.4,97.96,445.67,98.06,445.72,97.57L445.72,97.57z"/><path id="BG" d="M450.2,106c-0.06-0.52,0.07-1.1,0.67-1.2c0.58-0.11,0.9-0.74,0.22-1c-0.29-0.37-1.06-0.59-0.93-1.12c0.29-0.28,0.65-1.08,1.08-0.82c0.91-0.04-0.11,0.74,0.59,0.67c0.7-0.27,1.45-0.23,2.12,0.1c0.67,0.37,1.3-0.47,1.99-0.09c0.63,0.19,1.31,0.41,1.91,0c0.86-0.26,1.66-0.9,2.59-0.75c1,0.57,2.14,0.83,3.26,1.05c0.53,0.06,0.01,1.01-0.48,0.69c-0.52,0.1-0.65,0.76-0.69,1.21c0.08,0.6-0.97,0.43-0.85,1.12c0.46-0.07,0.83,0.56,0.94,0.94c-0.68,0.02-1.37-0.02-2.04-0.1c-0.63-0.02-1.04,0.61-1.54,0.84c-0.8-0.23-0.34,0.68-0.78,0.82c-0.67,0.19-1.38,0.41-2.04,0.03c-0.78-0.26-1.59-0.7-2.4-0.28c-0.74,0.26-1.56,0.18-2.32,0.35c-0.03-0.48,0.22-1.03-0.16-1.47c-0.22-0.53-1.06-0.42-1.15-0.98L450.2,106L450.2,106L450.2,106z"/><path id="GR" d="M455.45,122.44c0.16-0.56-0.79-0.55-1.18-0.6c-0.5-0.07-1.06-0.04-1.51-0.21c-0.11-0.43,0.46-0.91,0.55-0.72c0.15,0.53,0.89-0.18,0.9,0.22c-0.23,0.08,0.51,0.49,0.82,0.3c0.52-0.13,1-0.1,1.41,0.11c0.35,0.25,1.28-0.21,1.22,0.2c-0.02,0.57,0.69-0.11,0.99,0.04c0.54-0.57,0.2,0.8-0.3,0.43C457.4,122.28,456.41,122.36,455.45,122.44L455.45,122.44z M445.29,112.2c0.37-0.72,0.98-1.25,1.52-1.82c0.2-0.52,0.48-0.98,1.12-0.85c0.53,0.01,0.94-0.25,1.27-0.63c0.55-0.3,1.23,0.21,1.75-0.25c1.05-0.44,2.25-0.18,3.3-0.67c0.9-0.18,1.71,0.42,2.56,0.62c0.54,0.11,1.08-0.18,1.62-0.27c-0.01-0.51,0.13-0.94,0.78-0.77c0.77,0.12,0.49,0.68-0.02,0.97c-0.32,0.25-0.63,1.07-0.82,1.1c-0.01-0.63-0.94-0.25-1.37-0.4c-0.58,0.05-0.88-0.46-1.38-0.06c-0.56,0.4-0.73-0.57-1.18,0.13c-0.38,0.52-1.07-0.02-1.36,0.27c0.17,0.55,0.66,0.61,1.07,0.94c0.74,0.52-0.06,0.25-0.32-0.05c-0.47-0.33-1.12,0.15-0.39,0.38c0.69,0.33-0.26,0.53-0.44-0.07c-0.42-0.31-1.05-0.19-0.44,0.25c0.73,0.25,0.4,0.4-0.23,0.26c0-0.46-0.52-0.75-0.95-0.94c-0.36-0.12,0.28-0.94-0.45-0.39c-0.48,0.1-0.2,0.6-0.37,1.05c0.24,0.44,0.67,0.66,0.78,1.14c0.27,0.21,1.18,0.76,0.61,1c-0.02,0.02-0.41-0.9-0.89-0.36c0.52,0.37,0.27,0.93-0.38,0.88c-0.13,0.12,0.87,0.24,1.05,0.49c0.4,0.07,0.88,0.38,1.16,0.65c0.25-0.01,1.25,0.23,0.78,0.56c0.12,0.26,0.33,1.33-0.22,0.82c-0.33-0.28-0.64-0.91-1.18-0.6c-0.7,0.15-0.84,0.14-0.49,0.65c0.05,0.51,0.88,0.13,0.74,0.6c-0.48,0.16-0.86,0.4-0.95-0.11c-0.59-0.19-0.92-0.14-0.5,0.5c0.32,0.35,0.45,0.87,0.55,1.4c-0.16,0.12-1.03-0.58-1.2,0.15c-0.3,0.2-0.51-0.85-1-0.96c-0.3,0.63-0.86,0.34-1.01-0.21c0.46-0.49,0-1-0.43-1.28c-0.55-0.28,0.04-1.06,0.41-1.05c0.55,0.22,0.93-0.51,1.47-0.02c0.59,0.14,1.26,0.8,1.81,0.24c0.62-0.33-0.61-0.26-0.84-0.54c-0.96-0.47-2.11-0.37-3.12-0.11c-0.39-0.14-0.64-0.77-0.98-1.09c0.46,0.04,1.25-0.39,0.44-0.54c-0.66,0.29-1.16-0.39-1.69-0.69C445.43,112.42,445.34,112.29,445.29,112.2L445.29,112.2z"/><path id="GB" d="M400.13,81.15c0.45,0.19,1.11,0.5,1.01,1.07c-0.67,0.41-0.47,0.8,0.24,0.68c0.62-0.59,1.61-0.37,2.33-0.12c0.45,0.23,0.76,0.9,0.5,1.34c-0.43,0.67-1.38,0.65-1.91,1.24c-0.18,0.29-1.64,0.33-0.8,0.43c0.6,0.08,1.23,0.22,1.81,0.08c0.73,0.19-0.01,0.9-0.53,0.84c-0.27,0.4-0.79,0.07-1.28,0.43c-0.68,0.47-1.46-0.2-2.19,0.11c-0.53,0.3-1.01-0.21-1.53-0.03c-0.6,0.11-1.22,0.12-1.83,0.19c0.39,0.68-0.78-0.19-1.03,0.29c-0.51-0.25-0.98-0.37-1.51-0.17c-0.8-0.2-0.56,0.53-1,0.88c-0.46,0.37-0.76-0.32-1.25-0.31c-0.4,0.24-1.03,0.03-1.5,0.36c-0.45,0.19-0.76,0.86-1.22,0.34c-1-0.06-0.4-0.27,0.22-0.49c0.49-0.17,0.75-0.7,1.3-0.74c0.54-0.35,0.39-0.89,1.07-0.93c-0.02-0.54,0.82-0.35,1.24-0.39c0.48,0.06,1.16,0.22,1.53,0.01c0.03-0.24,1.14-1.14,0.36-0.81c-0.77,0.49-1.66,0.22-2.43-0.09c-0.85-0.37-1.93,0.14-2.7-0.43c-0.08-0.47,0.87-0.51,1.28-0.61c0.54-0.12,1.27-0.39,1.16-1.07c0.25-0.75-0.53-0.52-0.98-0.55c-0.31-0.21,0.58-0.69,0.93-0.73c0.87-0.26,1.8-0.11,2.69-0.26c-0.43-0.42-0.29-1-0.02-1.46c0.48-0.79-0.53-0.36-0.91-0.57c-0.62-0.18-0.58-0.83-0.08-1.12c0.85-0.37,0.03-0.48-0.47-0.52c-0.59,0.31-1.27,0.48-1.89,0.16c-0.22,0.45-0.83,0.37-1.31,0.19c-0.54-0.23,0.35-0.79,0.53-1.1c0.75-0.45-0.47-0.54-0.25-1.13c0.67,0.08,0.75-0.95,0.1-0.72c-0.4,0.47-0.98,0.41-1.47,0.7c-0.56-0.03,0-0.94,0.3-1.22c0.65-0.4-0.42-1.04-0.59-0.42c-0.34,0.48-1.23,0.16-0.65-0.37c0.36-0.38,0.93-0.7,0.46-1.27c0.83-0.06,0.43-0.55-0.08-0.8c0.36-0.6,0.94-0.1,1.44-0.26c0.31-0.18-1.09-0.95-0.08-0.87c1.12,0.07-0.32-0.51,0.34-0.84c0.4-0.35,0.93,0.43,1.43,0.18c0.89-0.1,1.83-0.38,2.7-0.17c0.57,0.41-0.58,0.66-0.89,0.83c-0.57,0.28-1.39,0.38-1.58,1.08c0.51,0.41,1.27,0.13,1.88,0.13c0.93,0.03,1.85,0.1,2.78,0.01c0.75,0.31,0.15,0.68-0.12,1.13c0.13,0.45-0.67,0.77-0.91,1.16c-0.13,0.4-1.32,0.37-1.03,0.52c0.54,0.17,1.09,0.34,0.23,0.51c-0.55,0.07-1,0.35-1.6,0.22c-0.93-0.1,0.16,0.32,0.52,0.26c0.7,0.26,1.34-0.51,2.01-0.06c0.6,0.03,1,0.44,1.44,0.78c0.7,0.09,0.39,0.73,0.7,1.17c0.19,0.64,0.76,1.02,1.42,1.01c0.55,0.18,0.89,0.78,1.38,1.1C400.36,80.28,399.61,81,400.13,81.15L400.13,81.15L400.13,81.15z M387.92,77.13c-0.48-0.5,0.6-1.15,0.47-0.31C388.37,76.96,388.08,77.19,387.92,77.13z M386.79,80.18c-0.07-0.66-1.37,0.18-1.02-0.46c-0.45-0.1-0.93-0.9-1.21-0.15c-0.61,0.34-1.36,0.27-1.89-0.19c-0.63-0.54,1.19-0.4,0.49-0.71c-0.61-0.32,0.85,0.01,0.85-0.59c0.02-0.57,0.75-0.47,1.21-0.63c0.6-0.18,1.19,0.14,1.78,0.04c0.34,0.31,0.83,0.8,0.74,1.29c0.2,0.41,0.39,0.91-0.23,1.18C387.29,80.12,387.02,80.17,386.79,80.18 L386.79,80.18z"/><path id="IE" d="M386.79,80.18c-0.9-0.05-0.09,0.55,0.02,1.02c0.13,0.52,0.41,1.08,0.29,1.62c-0.47,0.27-0.58,0.89-0.83,1.25c-0.53-0.1-0.99,0.04-1.41,0.22c-0.91-0.03-1.77,0.23-2.55,0.68c-0.44,0.31-0.92,0.47-1.46,0.47c-0.66,0.29-1.37,0.3-2.07,0.34c0.21-0.62-0.11-1.02-0.74-0.74c-0.89-0.27,0.52-0.79,0.24-0.73c-0.43,0.11-1.54-0.15-0.59-0.24c0.46-0.02,1.23,0.23,1.23-0.47c0.23-0.53,1.2,0.01,1.37-0.55c-0.21-0.13-1.52,0.34-0.76-0.27c-0.18-0.34,0.36-0.9,0.92-0.74c0.73-0.28-0.18-0.32-0.51-0.36c-0.5,0-0.99-0.23-1.48-0.09c-0.66,0-0.14-0.58-0.24-0.6c0.59,0.09,0.68-0.57,0.67-0.71c-0.46-0.19-1.31,0.11-0.72-0.61c0.37-0.47,0.89-0.24,1.38-0.14c0.64-0.17,1.31,0.05,1.96,0.09c-0.61-0.63,0.67-0.34,0.78-0.86c-0.02-0.27-1.21,0.06-1.25-0.16c0.58-0.09,0.75-0.41,1-0.94c0.4-0.16,0.99-0.41,1.38-0.3c0.27,0.44,1.11,0.34,0.43,0.93c-0.31,0.33-1.4,0.11-0.44,0.5c-0.51,0.08-1.25,0.38-0.47,0.76c0.49,0.27,1.06,0.32,1.56,0.04c0.34-0.7,0.78-0.09,1.26,0.11c-0.32,0.64,0.9-0.15,1.03,0.42L386.79,80.18L386.79,80.18L386.79,80.18z"/><path id="IS" d="M346.76,54.46c0.5-0.62,1.39-0.17,2.06-0.42c-0.15-0.16-1.12-0.69-0.29-0.92c0.67,0.06,1.36,0.76,2.05,0.34c0.16-0.42-1.29-0.6-0.38-0.91c0.91,0.32,1.98,0.11,2.8,0.65c0.67,0.39,0.17,1.01-0.1,1.24c0.42,0.29,0.81,1.06,1.3,0.46c0.47-0.37,1.34-0.12,1.63-0.66c-0.23-0.48-0.11-1.25,0.52-0.94c0.43,0.37,0.97,0.94,1.57,0.82c-0.1-0.41-0.1-0.82,0.62-0.78c0.55-0.3,0.93,0.19,1.4,0.4c0.33,0.26,1.36,0.38,0.77-0.24c-0.39-0.51,0.79,0.02,1.11-0.08c0.8,0.04,1.68,0.19,2.39-0.28c-0.24-0.77,0.24-0.79,0.87-0.66c0.55-0.01,0.85,0.64,1.43,0.64c0.46,0.29,1.1,0.01,1.49,0.37c-0.19,0.51-0.1,0.8,0.61,0.91c0.57,0.09,1.21,0.03,1.73,0.23c0.45,0.61,0.07,1.76-0.78,1.66c-0.7-0.18-0.83,0.25-1.07,0.72c-0.44,0.52-1.23,0.54-1.8,0.25c-0.85,0.63-1.92,0.78-2.9,1.11c-0.91,0.25-2.03-0.17-2.76,0.57c-0.68,0.52-1.64,0.41-2.46,0.41c-1.14-0.07-2.25-0.33-3.29-0.81c-1.17-0.15-2.34,0.06-3.52-0.11c-0.31,0.04-1.61-0.13-0.83-0.41c0.66-0.24,1.38-0.34,1.85-0.91c-0.02-0.2-1,0.04-1.3-0.28c-0.31-0.51-0.83-0.41-1.33-0.33c-0.63-0.02-1.33,0.23-1.92,0.03c-0.54-0.39,0.66-0.51,0.98-0.55c0.89,0,1.78-0.15,2.65-0.27c0.64-0.13,0.51-0.93-0.12-0.91c-0.83-0.13-1.68-0.3-2.53-0.12c-0.64,0.25-1.34,0.33-1.99,0.06C346.97,54.71,346.85,54.64,346.76,54.46L346.76,54.46z"/><path id="ES" d="M381.01,107c-0.46-0.51,0.61-0.98,0.2-1.39c-0.26-0.52-0.64-0.76-1.18-0.86c-0.21-0.71,0.77-1.01,1.33-0.97c0.57,0.1,0.97-0.12,1.03-0.66c0.93-0.65,1.93,0.28,2.92,0.24c0.84,0.12,1.61-0.48,2.42-0.36c1.63,0.81,3.53,0.3,5.26,0.7c0.56-0.14,1.11-0.64,1.68-0.24c0.44,0.37,0.96,0.34,1.5,0.36c0.27,0.34,1.45,0.05,0.99,0.57c0.2,0.23,0.91,0.11,1.34,0.38c0.47-0.01,0.75,0.52,1.26,0.26c0.38,0.33,0.94,0.16,1.26,0.37c0.71,0.08,0.78-0.25,1.22-0.36c0.43,0.22,1.26,0.03,1.35,0.61c0.03,0.63,0.93-0.14,1.15,0.35c0.43,0.02,0.94-0.02,1.45,0.12c0.24-0.14,1.16-0.51,1.25,0c0.02,0.43,0.4,1.01-0.31,1.15c-0.61,0.41-1.49,0.43-1.93,1.05c-0.93,0.23-1.98,0.23-2.8,0.74c-0.56,0.35,0.42,0.76-0.51,0.78c-0.51,0.16-0.64,0.86-1.12,1.12c-0.56,0.34-0.78,0.95-1.07,1.49c0.22,0.55,0.4,1.21,1.08,1.33c0.47,0.38-0.63,0.54-0.89,0.77c-0.43,0.27-0.71,0.69-0.98,1.1c-0.45,0.4,0.18,1.08-0.63,0.96c-0.8-0.05-1.81,0.29-1.94,1.19c-0.23,0.46-0.74,0.78-1.16,0.46c-0.55,0.01-0.9,0.48-1.46,0.18c-1.02,0.05-2.09-0.04-3.09,0.09c-0.43,0.48-1.03,0.57-1.64,0.64c-0.36,0.55-0.5,0.62-0.6,0.76c-0.59,0.31-1.2-0.24-1.64-0.56c-0.03-0.57-0.73-0.67-0.5-1.12c-0.45-0.61-1.27-0.86-1.99-0.88c-0.64,0.17,0-0.79,0.09-1.1c0.08-0.46,1.32-0.67,0.82-1.03c-0.32-0.37-1.36,0-0.84-0.73c0.14-0.43,1.02-0.82,0.69-1.22c-0.15-0.39-1.04-0.87-0.78-1.12c0.4-0.12,1.22-0.08,1.1-0.71c-0.15-0.77,0.17-1.53,0.02-2.29c-0.09-0.63,0.73-0.57,1.11-0.83c0.71-0.12,0.55-0.73-0.06-0.87c-0.43-0.2-0.73-0.99-1.3-0.59c-0.65,0.3-1.42,0.04-2.11,0.1c-0.38-0.57-0.89-0.35-1.42-0.15C381.37,106.9,381.19,106.95,381.01,107 L381.01,107z"/><path id="PT" d="M383.93,117.4c-0.52,0.23-1.05,0.65-1.63,0.31c-0.5-0.02-1.02-0.21-1.48,0.09c-0.61,0.19,0.06-0.78,0.11-1.1c0.15-0.61-0.36-0.96,0.02-1.46c0.13-0.62-0.02-0.83-0.68-0.57c-0.74-0.18,0.05-0.5,0.44-0.68c-0.18-0.87-0.49,0.33-1.02,0.14c-0.71-0.02,0.09-0.81,0.01-1.22c-0.14-0.48,0.62-0.58,0.69-1.09c0.31-0.52,0.3-0.97,0.41-1.47c0.12-0.62,0.69-1.25,0.28-1.86c-0.11-0.45-0.42-1.07-0.13-1.42c0.45-0.26,1.03-0.29,1.51-0.52c0.37,0.5,0.94,0.48,1.51,0.46c0.56,0.14,1.05-0.13,1.55-0.21c0.49,0.17,0.72,0.74,1.27,0.9c0.6,0.44-0.48,0.69-0.81,0.85c-0.59,0.04-0.74,0.58-0.57,1.07c-0.04,0.67-0.17,1.35-0.06,2.03c-0.12,0.56-0.89,0.34-1.27,0.6c0.41,0.38,0.76,0.81,1.11,1.24c-0.4,0.45-0.86,0.88-1.02,1.48c0.35,0.01,1.5,0.2,1,0.59c-0.6,0.32-1.01,0.85-1.13,1.53C383.99,117.21,383.96,117.31,383.93,117.4L383.93,117.4z"/><path id="DK" d="M418.76,73.87c0.27-0.37,0.63-0.91,1.15-0.69c0.75-0.09,1.62,0.01,2.13-0.68c0.39-0.48,1.05-0.55,1.63-0.55c0.72-0.58-0.17,0.33,0.14,0.63c-0.02,0.43-0.45,0.96-0.97,0.85c-0.6,0.07-1.2,0.01-1.78-0.04c-0.6-0.17-0.9,0.19-1.17,0.65C419.39,74.4,419.21,74.23,418.76,73.87L418.76,73.87z M421.68,78c-0.65,0.03-1.3,0.12-1.95,0.11c0.15-0.56-0.06-1.08-0.58-1.25c-0.44,0.26-1.01-0.21-0.29-0.56c0.66-0.36-0.59-0.77-0.18-1.29c0.04-0.83,0.86-0.04,1.23-0.23c0.26-0.62,0.76-0.68,1.06-0.17c0.66,0.13,0-1.18,0.79-0.93c0.48,0.02,1.19-0.08,1.53,0.17c-0.14,0.68,0.45,0.88,1.01,0.8c0.78-0.17,0.33,0.93-0.17,0.87c-0.18-0.08-1.12-0.43-0.81,0.24c-0.21,0.49-0.56,0.78-1.1,0.76c0.17,0.25-0.58,0.4-0.49,0.94C421.82,77.69,421.28,77.92,421.68,78L421.68,78z M427.18,77.97c-0.28-0.55-0.77-0.49-1.3-0.5c-0.3,0.01-0.87-1.08-0.37-1.06c0.54-0.3,0.85-0.69,1.22,0.02c0.73,0.54,0.52-0.62,0.89-0.73c0.68-0.26,0.81,0.45,0.55,0.93c-0.94,0.34-0.03,0.55-0.12,0.79C427.74,77.57,427.52,77.88,427.18,77.97z"/><path id="GL" d="M341.05,41.07c0.71,0.13,1.48,0.12,2.15,0.34c0.69,0.5-0.6,0.35-0.93,0.56c-1.25,0.26-2.59-0.01-3.8,0.4c-0.42,0.21-0.73,0.96-0.88,1.19c1.48,0.7,3.15,0.56,4.74,0.58c1.9-0.3,3.9-0.46,5.75,0.2c1.08,0.02,2.18-0.02,3.26,0.09c-1.49,0.86-3.2,1.13-4.84,1.61c-0.59,0.09-1.24-0.37-1.69,0.18c-1.25,0.89-2.77,1.34-4.25,1.67c-0.95,0.04-1.9-0.01-2.83,0.19c-0.9-0.05-1.78,0.54-2.66,0.35c-0.43-0.19-1.1-0.62-1.37-0.01c-0.26,0.58-0.75,0.75-1.36,0.74c-0.79,0.02-1.56-0.23-2.15-0.76c-0.49-0.24-0.98-0.54-1.53-0.61c-0.02,0.5,0.68,0.87,0.66,1.31c-0.34,0.31-0.95,0.3-1.4,0.52c-1.46,0.36-2.25,1.8-3.44,2.62c-0.67,0.63-1.71,0.78-2.58,0.6c-0.73-0.44-0.71,0.17-1.04,0.65c-0.38,0.58-1.18,0.6-1.8,0.49c-0.71-0.1-1.35,0.24-1.99,0.47c0.31-0.57,0.63-1.15,0.94-1.72c-0.66,0.07-1.32-0.06-1.97-0.18c0.39,0.39,0.32,1-0.15,1.29c-1.25,0.79-2.79,0.45-4.18,0.64c0.37,0.25,0.95,0.83,0.5,1.22c-0.94,0.12-1.92-0.05-2.88-0.11c0.51,0.41,1.34,0.58,1.57,1.22c-0.16,0.55-0.97,0.24-1.42,0.34c-0.44,0.07-1.57,0.05-0.61,0.36c0.56,0.29,1.24,0.34,1.67,0.86c-0.37,0.37-0.82,0.73-1.37,0.49c-1.05-0.12,0.14,0.51-0.4,0.88c-0.25,0.61-1.08-0.13-1.33,0.19c0.36,0.41,0.3,1.13-0.39,0.84c-0.84-0.15-1.69,0.14-2.54,0.06c0.59,0.6,1.45,0.65,2.12,1.08c0.01,0.7-0.14,1.35-0.46,1.97c-0.3,0.29-1.6-0.26-1.02,0.31c0.34,0.38,0.35,0.93,0.34,1.4c-0.48,0.16-1.07,0-1.59,0.13c0.5,0.21,1.07,0.52,1.17,1.07c-0.01,0.72-0.83,0.22-1.24,0.16c-0.48-0.05-0.94-0.72-1.39-0.4c-0.49,0.17-0.62,1.18-1.08,0.39c-0.44-0.34,0.19-1.11-0.74-1.05c-0.47-0.09-1.2-0.12-1.42-0.54c0.52-0.41,0.23-0.87-0.35-1.03c-0.44,0.28-0.93,0.45-1.42,0.5c-0.63,0-1.32-0.05-1.9,0.18c-0.45,0.23-0.9,0.7-1.24,0.05c-0.17-0.96-1.41-0.78-2.05-1.24c-0.46-0.19-0.89-0.74-0.87-1.24c0.29-0.67-0.55-0.8-1.03-0.68c-0.41-0.16-1.21-0.1-1.22-0.68c-0.1-0.46,1.1-0.91,0.39-1.1c-0.51-0.05-1.46,0.05-1.4-0.7c0.04-0.69-0.93-0.17-1.23-0.48c-0.57-0.27-0.55-0.88,0.07-1.07c0.62-0.41,1.46-0.34,2.02-0.85c0.73,0.08,0.41-1.06-0.18-0.7c-0.76,0.1-1.58,0.05-2.17,0.62c-0.52-0.07-1.06,0.71-1.43,0.19c-0.14-0.43,0.01-1-0.16-1.48c-0.31-0.37-0.05-1.33-0.78-1.07c-0.66,0.09-1.2-0.47-1.68-0.85c-0.14-0.52,0.62-0.8,1.01-0.88c-0.12-0.19-1-0.19-1.44-0.13c-0.59-0.35,0.5-0.56,0.85-0.48c0.5-0.06,1.18,0.04,1.27-0.62c0.14-0.41-0.93-0.15-1.29-0.22c-0.36,0.11-1.33,0.02-1.05-0.5c0.18-0.34,1.37-0.28,0.56-0.55c-0.53,0.4-1.13-0.51-0.38-0.49c0.68-0.26,1.38-0.43,2.11-0.28c0.68,0.12,1.37,0.18,2.04,0.27c0.7,0.21,1.44,0.24,2.16,0.32c-0.14-0.52,0.63-1.1-0.29-1.16c-1.63-0.48-3.33-0.66-4.97-1.12c0.39-0.63,1.23-0.31,1.81-0.18c0.76,0.2,1.63,0.37,2.38,0.11c0-0.58,0.17-1.14,0.86-0.92c0.61,0.41,0.95-0.45,0.28-0.6c-0.68-0.03-0.91-0.55-0.29-0.93c0.63-0.47-0.5-0.63-0.88-0.63c-0.85-0.08-1.7,0.02-2.52-0.3c-1.13-0.35-2.27-0.71-3.47-0.68c-0.55-0.22-1.07-0.5-1.57-0.82c0.67-0.3,1.46-0.22,2.18-0.13c1.23,0.23,2.5,0.2,3.69,0.62c0.67,0.21,1.32,0.44,2.01,0.57c0.21-0.73-0.8-0.93-1.15-1.36c-0.14-0.58-0.76-0.87-1.31-0.89c-0.88-0.07-0.39-0.54,0.2-0.6c0.64-0.19-0.61-0.43-0.88-0.37c-0.83,0.05-1.63-0.17-2.41-0.42c-0.5,0.39-1.1,0.67-1.56,1.08c-0.78,0.3-1.65,0.24-2.44,0.07c-0.4-0.18-1.16-0.21-1.11-0.79c0.63-0.29,0.83-1.03,0.65-1.66c-0.35-0.72,0.48-0.67,0.94-0.49c0.48,0.3,1.12-0.42,0.47-0.69c-0.48-0.38-1.06-0.59-1.58-0.86c-1.19-0.87-2.03-2.11-3.08-3.12c-0.62-0.55-1.58-0.38-2.33-0.7c-0.58-0.1-0.96-0.49-0.84-1.09c-1.23-0.73-2.73-0.43-4.06-0.81c-2.64-0.65-5.36-0.91-8.07-0.88c-0.89,0.25-1.83,0.23-2.72,0.47c-1.32,0.28-2.64-0.07-3.93-0.33c0.32,0.51,0.45,1.06-0.35,0.83c-1.65-0.08-3.26-0.53-4.89-0.8c0.67-0.23,1.31-0.53,2-0.68c-0.27-0.62-1.12-0.33-1.67-0.41c-1.24-0.01-2.51,0.02-3.73-0.17c-0.64-0.23-1.27-0.45-1.94-0.58c0.77-0.53,1.76-0.3,2.64-0.31c2.69,0.11,5.4,0.32,8.07-0.07c0.37-0.05,1.42-0.19,0.89-0.66c-0.72-0.41-1.55-0.48-2.34-0.29c-1.21,0.34-2.48,0.36-3.72,0.18c-1.28,0.17-2.7,0.35-3.83-0.43c-0.77-0.26-1.58-0.24-2.38-0.22c-0.6-0.09-1.15-0.36-1.73-0.53c-0.19-0.61,0.49-0.94,1.02-0.9c2.1-0.21,4.21-0.35,6.3-0.53c1.66-0.87,3.56-0.69,5.37-0.71c1.03-0.19,2.1,0.02,3.12-0.11c0.36-0.33,1.11-0.2,1.23-0.69c-0.04-0.48,0.91-1.12,0.09-1.12c-0.86-0.21-1.79-0.15-2.67-0.11c-1.04,0.32-2.1-0.03-3.09-0.36c0.32-0.43,0.59-0.95,1.2-0.93c1.74-0.41,3.54-0.47,5.29-0.8c1.71-0.22,3.43-0.46,5.15-0.3c0.83-0.1,1.71,0,2.51-0.21c0.54-0.28-0.24-0.85-0.18-1.29c0.86-0.25,1.79-0.18,2.67-0.15c1.87,0.22,3.74,0.69,5.59,0.96c0.9-0.18,0.65-0.35-0.11-0.52c-0.57-0.12-1.07-0.38-1.51-0.77c1.64-0.16,3.31-0.21,4.95-0.45c1.49-0.13,3-0.36,4.49-0.09c0.57,0.02,0.25,0.95,0.45,1.35c-0.11,0.71,0.83,0.28,1.2,0.12c0.55-0.14,0.44-0.96,0.83-1.18c2.14,0,4.19,0.74,6.31,1.01c0.54-0.51-0.65-0.51-0.88-0.89c-0.24-0.36-1.33-0.42-1.14-0.77c0.39-0.35,1.03-0.04,1.53-0.13c1.42-0.06,2.8,0.37,4.21,0.49c1.61,0.25,3.2,0.61,4.83,0.8c1.1,0.14,2.21,0.37,3.31,0.34c0.65,0.02,0.85-0.53,1.1-1.02c0.51-0.5,0.25-0.9-0.41-0.93c-0.72-0.13-1.38-0.45-2.04-0.76c1.15-0.51,2.44-0.09,3.64-0.31c1.96-0.22,3.96-0.56,5.9-0.04c1.69,0.46,3.45,0.54,5.19,0.66c0.48-0.41-0.01-1.13,0.18-1.25c2.68-0.26,5.37-0.35,8.05-0.11c1.62,0.17,3.23-0.21,4.85-0.28c1.47-0.12,2.95-0.01,4.41,0.18c1.25-0.07,2.52-0.06,3.76,0.1c1.12-0.19,2.26,0.14,3.39,0.09c1.21,0.05,2.45,0,3.59,0.49c1.27,0.45,2.61,0.75,3.96,0.56c1.23,0.22,2.47,0.28,3.71,0.41c0.82,0.42-0.01,0.64-0.53,0.74c-1.89,0.17-3.78,0.25-5.67,0.4c-2.4-0.01-4.82-0.16-7.22-0.16c-2.75,0.4-5.57-0.09-8.29,0.58c-0.44,0.01-1.24,0.17-1.13,0.63c0.88,0.43,1.85,0.01,2.78-0.01c2.64-0.27,5.29,0.06,7.93-0.2c1.5,0.06,3.03-0.15,4.52,0.1c1.03,0.24,2.09,0.64,3.15,0.3c1.74-0.18,3.43-0.61,5.18-0.65c0.61,0.15,0.85,0.62,0.15,0.92c-1.51,0.48-3.14,0.72-4.47,1.66c-0.34,0.55,0.71,0.59,1.11,0.44c1.13-0.13,2.17-0.7,3.28-0.96c1.54-0.52,3.15-0.77,4.74-1.11c1.49-0.27,3,0.05,4.49,0.02c0.76-0.14,1.51-0.27,2.2-0.62c1.82-0.45,3.72-0.13,5.57-0.08c1.29,0.01,2.54,0.42,3.83,0.49c0.75,0.44-0.33,0.66-0.75,0.64c-1.2,0.23-2.47,0.08-3.57,0.67c-0.77,0.45-1.65,0.56-2.5,0.77c-1.01,0.41-2.07,0.71-3.17,0.58c-1.42,0.03-2.85,0.01-4.28,0.02c-0.89,0.16-2,0.06-2.54,0.93c0.16,0.64,0.94,0.07,1.39,0.13c1.37-0.25,2.77-0.14,4.16-0.06c0.18,0.65-0.74,0.63-1.18,0.68c-0.82,0.11-1.73-0.08-2.47,0.3c-0.31,0.41-0.34,1.01-0.75,1.4c-0.78,0.43-1.77-0.07-2.57,0.23c-0.62,0.76-1.46,1.38-1.9,2.25c0.31,0.36,0.93,0.6,1.26,0.09c0.83-0.76,2-0.55,3.02-0.42c0.57,0.14,1.35-0.06,1.72,0.51c-0.19,0.46-1.02,0.03-1.47,0.13c-0.37-0.07-1.54,0.03-0.89,0.52c0.79,0.16,1.65,0.17,2.44,0.35c0.76,0.03,1.65-0.37,2.29,0.15c0.47,0.48-0.12,1.04-0.67,0.76c-1.39-0.16-2.79-0.21-4.18-0.23c-0.82-0.08-1.55,0.36-2.32,0.51c-0.74-0.1-1.44-0.37-2.2-0.23c-0.79,0.39,0.21,0.61,0.61,0.8c1.53,0.61,3.22,0.45,4.82,0.66c0.73,0.08,1.38,0.82,1.27,1.57c-0.37,0.57-1.03,0.5-1.61,0.37c-0.56-0.02-1.15-0.3-1.69-0.07c-0.13,0.57,0.25,1.01,0.83,0.99c0.91,0.22,1.82,0.39,2.74,0.57c0.77,0.41-0.09,0.71-0.57,0.72c-1.71,0.37-3.48-0.01-5.21-0.03c-0.5,0.01-1.13,0.61-0.25,0.63c1.07,0.03,2.17,0.04,3.17,0.46c0.23,0.55,0.08,1.1-0.61,0.84c-0.81-0.01-1.68-0.06-2.4,0.35c-1.68,0.09-3.42-0.14-4.89-1c-0.9-0.17-1.75,0.44-2.62,0.58c-0.82-0.02-1.56,0.37-2.38,0.23c-0.95-0.04-1.93-0.2-2.84,0.17c-0.42,0.41,0.14,1.05,0.61,1.1c0.82,0.23,1.71,0.07,2.54,0.32c0.95,0.27,1.99-0.23,2.86,0.34c1.21,0.48,2.44,0.88,3.7,1.23c0.66,0.08,1.11,0.55,1.33,1.15c0.25,0.44,0.97-0.16,1.35-0.11c0.84,0.33,0.69,1.38,0.89,2.1c-0.52,0.69-1.38-0.04-2.07,0.11c-0.95,0.04-1.9,0.05-2.83-0.2c-0.61-0.12-0.97-0.66-1.3-1.13c-1.22-0.85-2.73-1.33-4.22-1.28C342,41.01,341.51,41.02,341.05,41.07 L341.05,41.07z M351.36,40.03c-1.08-0.45-2.23-0.69-3.36-0.99c-0.73-0.64,0.4-0.38,0.84-0.45c1.06,0.01,2.11,0.31,3.1,0.69C352.3,39.87,351.92,40.04,351.36,40.03z M281.57,46.13c-0.74-0.15-1.41-0.55-2.16-0.67c-0.49-0.18-0.57-0.97-0.28-1.33c0.41-0.4,1.06,0.1,1.57,0.01c1.31,0,2.51,0.56,3.77,0.8c0.36,0.05,1.37,0.5,0.61,0.68c-1.14,0.02-2.23,0.31-3.36,0.49C281.68,46.1,281.63,46.14,281.57,46.13L281.57,46.13z"/><path id="DE" d="M417.26,94.3c-0.27-0.42,0.15-0.88,0.07-1.31c0.49-0.3,0.22-0.99,0.77-1.23c0.6-0.35,0.72-0.69-0.08-0.71c-0.56,0.2-0.88-0.37-1.33-0.22c-0.55,0.02-0.93,0.06-1.38-0.31c-0.63-0.26-0.47-0.69-0.21-1.08c-0.34-0.04-1.22-0.41-0.8-0.85c0.6-0.31,0.15-1.14-0.37-1.27c0.29-0.49-0.46-0.64,0.39-0.89c-0.29-0.22,0.35-0.81-0.21-1.14c-0.74-0.23,0.37-0.67,0.67-0.36c0.59-0.02,1.01-0.32,1.27-0.76c0.67-0.34-0.07-0.71-0.52-0.69c-0.11-0.69,0.93,0,0.78-0.73c0.48-0.28,0.36-1.05-0.15-1.12c-0.17-0.53,0.54-0.74,0.99-0.68c0.46,0.07,1.14-0.32,1.35,0.24c-0.07,0.7,0.56,0.13,0.47-0.06c0.85,0.5,0.08-0.4,0.69-0.59c0.34,0.16,1.72,0.06,0.79-0.11c-0.36-0.28,0.05-0.4-0.26-0.68c0.5-0.27-1.27-0.05-0.23-0.35c0.86-0.05,0.25-0.55-0.11-0.87c-0.49-0.59,0.55-0.4,0.91-0.47c0.56-0.07,1.14-0.13,1.59,0.29c0.85,0.17-0.08,1.03,0.54,0.77c0.32,0.23,0.77,0.14,1.2,0.35c0.38,0.12,1.39-0.38,1.02,0.35c-0.63,0.15-0.82,0.64-0.02,0.46c0.41-0.04,0.93,0.38,1.22-0.28c0.85-0.02,1.63-0.35,2.42-0.64c0.53,0.03,0.79,0.04,1.24,0.43c0.34,0.48,1.11-0.22,1.21,0.39c-0.12,0.64,0.7,0.55,0.96,0.68c0.34,0.13,0.65,0.85,0.39,1.23c-0.42,0.33-0.78,0.7,0.02,0.86c0.86,0.13,0.05,0.72,0.57,0.98c0.5,0.33-0.07,0.8-0.01,1.14c0.17,0.48,0.5,0.53,0.83,1.04c-0.01,0.32-0.37,1.13-0.86,0.84c0.03-0.64-1.06-0.36-0.58-0.08c-0.48,0.15-0.94,0.24-1.37,0.38c-0.47,0.09-0.84,0.09-1.18,0.38c-0.41,0.2-0.83,0.23-1.33,0.45c-0.45-0.1-1.11,0.37-0.53,0.75c0.79-0.04-0.11,0.65,0.36,0.94c0.15,0.51,0.82,0.45,1.13,0.69c0.35,0.27,0.81,0.72,1.21,0.62c0.27,0.18,1.19,0.84,0.49,0.98c-0.49,0.27-1-0.3-1.08,0.48c-0.37,0.24-1.21,0.23-1.31,0.63c0.56,0.48,0.28,0.73,0.65,1.06c-0.18,0.75-0.59-0.2-0.87-0.13c-0.53-0.02-0.93-0.12-1.37,0.13c-0.54-0.06-0.98,0.09-1.43,0.21c-0.27,0.35-1.05,0.36-1.25-0.05c-0.6-0.14-0.87-0.07-1.08,0.38c-0.52,0.46-0.42-0.19-0.87-0.34c-0.39-0.29-0.86,0.14-1.34-0.22c-0.46-0.2-1-0.04-1.45-0.18c-0.48-0.4-0.55,0.36-0.9,0.27c-0.45-0.14-0.95,0.01-1.39,0.07C417.44,94.36,417.34,94.33,417.26,94.3L417.26,94.3z M432.01,80.47c-0.39,0.08-1.18-0.25-0.65-0.41C431.6,80.18,431.88,80.22,432.01,80.47z"/><path id="CH" d="M421.68,94.4c0.29,0.39-0.16,0.8,0.14,1.1c0.57-0.17,0.78,0.67,1.32,0.31c0.73-0.54,0.42,0.39,0.49,0.78c-0.29-0.23-1.24-0.13-0.62,0.29c-0.14,0.85-0.52-0.28-0.98,0.21c-0.48,0.38-0.62-0.86-0.98-0.25c-0.16,0.41-0.44,0.86-0.59,1.25c-0.56,0-0.38-0.58-1.02-0.7c-0.33-0.55-0.38-0.62-1.03-0.17c0.23,0.43-0.52,1.01-0.95,0.69c-0.45-0.12-1.07,0.39-1.45,0c-0.18-0.42-0.18-1.4-0.83-1.04c-0.54,0.06-0.83,0.95-1.41,0.6c0.53-0.3-0.12-1.07,0.64-1.2c0.38-0.31,0.45-0.64,0.95-0.89c0.64-0.47,0.39-0.43,0.59-0.89c0.46-0.03,0.86,0.34,1.26-0.17c0.44-0.01,0.9,0.06,1.37-0.11c0.79,0.3,0.32-0.2,1.02-0.27c0.32,0.03,0.83,0.27,1.36,0.18C421.21,94.18,421.46,94.31,421.68,94.4L421.68,94.4z"/><path id="AT" d="M421.68,94.4c0.45-0.04,0.91-0.14,1.17,0.27c0.08,0.4,0.74,0.37,0.82-0.21c0.15-0.14,1.06-0.23,1.13,0.27c0.55,0.06,0.98-0.17,1.38-0.34c0.34-0.33,1.14,0.14,1.4-0.29c0.44-0.02,0.94,0.01,1.35,0.14c-0.04,0.74,1.06-0.05,0.34-0.22c0.25-0.18-0.79-0.86-0.2-1.06c0.43-0.25,1.3-0.14,1.23-0.84c0.48,0.2,0.91-0.04,1.4-0.12c0.63,0.34,1.46,0.26,1.87-0.38c0.31-0.61,0.94-0.08,1.44-0.05c0.74,0.21,1.48,0.37,2.24,0.16c0.43-0.13,1.24,0.1,0.96,0.69c-0.24,0.57,0.83,0.78,0.8,1.07c-0.68,0.09-0.42,0.86-1.19,0.67c-0.46-0.32-1.11,0.12-0.29,0.21c0.2,0.41-1.04,0.43-0.32,0.95c-0.11,0.61-0.9,0.6-1.17,0.84c0.24,0.7-0.86-0.14-1.12,0.39c-0.7-0.12-1.48-0.12-1.98,0.46c-0.41-0.04-0.96-0.11-1.43-0.2c-1.16-0.1-2.31-0.26-3.46-0.49c-0.47-0.28-0.54-0.94-1-0.76c-0.48,0.14-0.98,0.11-1.44,0.06c-0.55,0.09-0.73,0.77-1.38,0.45c-0.61-0.06-0.66-0.71-1.27-0.13c-0.42-0.15-0.89-0.42-1.18-0.51C421.4,94.88,422.11,94.89,421.68,94.4z"/><path id="FR" d="M421.39,104.56c0.23,0.48,0.06,0.92,0.26,1.38c0.07,0.58-0.34,1-0.36,1.56c-0.05,0.59-0.52,0.88-0.85,0.43c-0.86-0.04,0.22-0.6-0.69-0.58c0.58-0.57-0.55-0.2,0.05-0.73c-0.48-0.25-0.03-0.47-0.21-0.8c0.31-0.39,0.88-0.42,1.21-0.63C421.52,105.55,420.9,104.59,421.39,104.56L421.39,104.56z M396.32,103.85c0.59-0.09,0.92-0.61,0.95-1.18c0.13-0.54,0.26-1.07,0.38-1.61c0.88-0.41-0.37,0.01,0.01-0.56c0.05-0.45,0.13-1.3,0.35-1.46c0.4,0.14,0.83,0.86,0.91,0.92c-0.13-0.64-0.69-0.97-1.12-1.41c0.18-0.51,0.57-0.91-0.02-1.38c-0.4-0.4-1.11-0.11-1.37-0.71c-0.73-0.32-0.22-0.75-0.53-1.11c-0.39-0.19-1.4-0.24-0.79-0.82c-0.4-0.39-0.9,0.26-1.31-0.24c-0.6-0.19-1.26-0.4-1.84-0.49c-0.35-0.45-1.1,0.32-1.29-0.34c-0.91-0.13-0.19-0.28,0.33-0.28c-0.45-0.55-0.68-0.11-0.08-0.64c-0.46,0.09-1.39,0.05-0.74-0.35c0.49-0.15,1.02-0.23,1.52-0.4c0.34,0.27,0.86,0.03,1.15-0.21c0.5-0.12,1.01-0.17,1.32,0.33c0.38,0.64,1-0.16,1.44,0.14c0.53-0.18,0.78-0.12,1.2-0.02c0.91,0.03,0-0.43,0.29-1c0.02-0.48-0.74-0.67-0.79-1.26c0.1-0.33,1,0.16,1.41-0.11c-0.03,0.34,0.16,1.02,0.76,0.67c0.59,0,1.17,0.16,1.73,0.21c0.28-0.02,1.55-0.36,0.75-0.43c-0.53-0.26,0.5-0.65,0.79-0.74c0.78-0.24,1.71-0.21,2.27-0.9c-0.03-0.53-0.21-1.37,0.48-1.51c0.51-0.33,1.15-0.16,1.67-0.41c0.16,0.46,0.64,1.2,1.16,0.72c0.5-0.24,0.4,1,1.08,0.67c0.31,0.38,0.9,0.22,1.4,0.44c0.11,0.19-0.18,1.02,0.54,0.75c0.47,0.28,1.05-0.82,0.95-0.19c-0.1,0.65,0.49,0.48,0.94,0.77c0.39,0.49,0.83,0.27,1.27,0.37c0.62,0.12,1.33-0.09,1.78,0.46c0.45,0.36,0.84,0.34,1.4,0.31c0.45-0.12,0.8,0.41,1.37,0.22c0.89,0.05,0.47,0.42-0.04,0.77c-0.5,0.24-0.22,0.91-0.7,1.18c0.08,0.42-0.33,0.89-0.07,1.31c-0.4,0.53-0.83,0.18-1.3,0.2c-0.24,0.46,0.08,0.42-0.58,0.88c-0.5,0.24-0.6,0.55-0.93,0.88c-0.76,0.12-0.19,0.85-0.63,1.18c0.29,0.4,0.83-0.3,1.18-0.51c0.66-0.41,0.8,0.22,0.95,0.75c0.26,0.6-1.08,0.58-0.02,0.98c0.1,0.47,0.78,0.59-0.03,0.96c-0.32,0.17-1.25,0.06-0.51,0.59c0.6,0.05,1,0.51,0.35,0.8c-0.21,0.5,0.55,0.83,0.95,0.93c0.6-0.21,1.06,0.06,0.68,0.69c-0.72,0.58-1.57,0.99-2.29,1.59c-0.9,0.13-1.91,0.56-2.73-0.07c-0.44-0.36-1-0.49-1.53-0.31c-0.67,0-1.27-0.62-1.94-0.24c-0.68,0.3-1.5,0.78-1.61,1.56c0.27,0.75,0.14,0.82-0.6,0.79c-0.42,0.26-0.87,0.17-1.35,0.02c-0.53,0.39-0.82-0.37-1.41-0.04c-0.48,0-0.31-0.86-1.03-0.7c-0.64-0.31-0.94-0.05-1.25,0.15c-0.55,0.06-0.84-0.12-1.42-0.04c-0.29-0.54-0.9-0.01-1.2-0.35c-0.39-0.34-0.97-0.23-1.47-0.48c-0.72,0.32,0.13-0.71-0.75-0.39C396.64,104.02,396.48,103.93,396.32,103.85L396.32,103.85z"/><path id="NL" d="M416.49,81.94c0.32,0.43-0.24,1.02-0.46,1.19c-0.73-0.24-0.57,0.73,0.07,0.42c0.61,0.45-0.38,0.58-0.36,1.07c-0.47,0.33-1.05,0.22-1.52,0.25c-0.87,0.14,0.07,0.4,0.11,0.87c-0.15,0.47,0.05,0.73-0.5,0.94c0.31,0.22,0.17,0.86-0.54,0.65c-0.16-0.35,0.62-0.97-0.25-1.09c-0.5-0.16-0.91,0.02-1.28-0.45c-0.43-0.01-0.75-0.04-1.29,0.04c-0.2,0.27-0.91,0.19-1.38,0.07c-0.51-0.3-0.91-0.54-0.08-0.82c0.69-0.41,1.38-0.91,1.62-1.72c0.09-0.55,0.65-0.82,1.14-0.7c0.85,0.4-0.07,0.58-0.04,0.88c-0.36,0.6,0.49,0.38,0.97,0.58c0.29-0.17,1.26-0.74,0.44-0.78c-0.46-0.32,0.24-0.66-0.71-0.58c-0.07-0.45,0.08-0.96,0.69-0.98c0.71-0.37,1.49-0.13,2.24-0.33C415.76,81.44,416.09,81.99,416.49,81.94L416.49,81.94z"/><path id="BE" d="M406.18,86.55c0.66-0.31,1.35-0.75,2.11-0.5c0.53-0.05,0.95-0.19,1.5-0.03c0.56-0.04,0.73-0.17,1.31-0.27c0.35,0.11,0.88-0.07,1.13,0.48c0.41-0.21,1.24,0.02,1.24,0.44c-0.46,0.56-0.14,0.77,0.51,0.7c0.53,0.16,0.86,0.99,0.25,1.26c-0.37-0.01-1.02,0.28-0.9,0.82c0.57,0.42,0.12,0.63-0.42,0.63c-0.39-0.01-0.75-0.67-1.28-0.6c-0.6,0.13-0.01-1.28-0.59-0.58c-0.2,0.26-1.09,0.38-1.21,0.07c0.17-0.52-0.07-0.78-0.71-0.74c-0.47-0.12-0.86-0.26-1.3-0.5c-0.11-0.87-0.67-0.17-1.11-0.38C406.46,87.14,406.31,86.86,406.18,86.55L406.18,86.55z"/><path id="LU" d="M413.52,90.07c0.35-0.45-0.61-0.71,0.02-1.2c0.57-0.56,0.62,0.24,1.08,0.46c0.9,0.01,0.03,0.46,0.25,0.88C414.45,90.07,413.96,90.17,413.52,90.07L413.52,90.07z"/><path id="SE" d="M453.8,53.87c-0.61-0.06-1.24,0.31-1.82,0.19c-0.53-0.13-1.05-0.74-1.58-0.29c-0.69,0.23-0.94,1.22-1.78,1.04c-0.62,0.05-0.92,0.44-0.29,0.79c-0.27,0.37-1.1,0.45-1.19,0.73c0.2,0.28,1.41,0.58,0.65,0.83c-0.78,0.22-0.96,1.21-1.78,1.34c-0.6,0.2-1.2,0.6-1.8,0.68c-0.54-0.46-0.93,0.21-1.33,0.47c-0.65,0.07-1.21,0.43-1.63,0.9c-0.49,0.07-1.26-0.19-0.82,0.54c-0.35,0.57-0.9,0.36-1.44,0.24c0.19,0.54,0.64,0.88,0.28,1.47c-0.03,0.5-1.15,0.21-0.68,0.96c0.02,0.5,0.17,1.07,0.38,1.36c-0.45,0.28,0.84,0.08,1.03,0.38c0.63-0.25,0.91,0.57,1.42,0.79c0.56,0.1,0.99,0.24,1.29,0.69c0.58,0.49-0.53,0.39-0.81,0.76c-0.65,0.18-1.38,0.67-2.02,0.29c-0.7-0.01-1.41-0.42-2.08-0.29c-0.59-0.21-1.06,0.42-0.15,0.18c0.45,0.12,0.99,0.26,1.41,0.42c0.46,0.22,0.85,0.05,1.34-0.02c0.42-0.2,1.03-0.07,1.31-0.25c0.56,0.43-0.94,0.04-0.4,0.57c-0.59-0.04-0.82,0.71-1.32,0.54c0.05-0.89-0.29-0.15-0.57,0.17c-0.52,0.31-0.85,0.21-1.25,0.4c-0.47,0.01-1.45-0.11-0.83,0.52c0.58,0.03,0.68,1.04,0.22,1.19c-0.88-0.14,0.04,0.45-0.21,0.73c0.55,0.36-0.56,0.74-0.37,1.31c-0.05,0.61-0.64,1.03-0.96,1.54c-0.28,0.8-0.76,0.16-1.27,0.29c-0.52,0.22-1.08,0.01-1.62,0.02c-0.08,0.5-0.99,0.17-1.1,0.88c0.3,0.33,0.2,1.05-0.52,0.73c-0.66-0.1-1.32,0.38-2,0.15c-0.74,0.08-0.38-0.41-0.08-0.75c-0.49-0.36-0.91-0.8-1.27-1.28c0.66-0.14,0.45-0.37,1.01-0.58c-0.32-0.26-0.67-0.5-1.08-0.75c-0.55-0.14-0.49-1.16-1.12-1.07c0.27-0.57-0.63-0.82-0.52-1.23c0.46-0.49,0.28-1.01-0.41-0.73c-0.22-0.33-0.76-0.24-0.65-1.01c-0.26-0.4-0.24-1.17,0.35-0.69c0.25,0.68,0.79-0.06,0.85-0.49c-0.34-0.64-0.1-0.89,0.33-1.23c0.12-0.46,1.05-0.24,1.26-0.74c0.05-0.57,0.44-0.97-0.15-1.43c-0.72-0.58-0.06-0.62,0.53-0.68c0.49-0.45,0.45-1-0.29-1.02c-0.54-0.11-1.1-0.49-0.7-1.06c0.45-0.6-0.31-0.93-0.46-1.39c0.23-0.56,0.33-1.17,0.45-1.74c0.66-1.02,1.95-1.42,3.11-1.25c0.43-0.02,1.22,0.02,1.31-0.47c0-0.54-0.74-0.76-0.88-0.97c0.68-0.81,1.85-1.46,1.75-2.67c-0.16-0.77,0.63-0.6,1.12-0.62c0.9-0.57,1.79-1.21,2.67-1.79c0.39-0.4-0.46-1.03,0.27-1.26c0.66-0.49,1.31-1.3,2.23-1.01c0.57,0.04,1.4,0.27,1.61-0.45c-0.16-0.68,0.27-1.03,0.88-0.69c0.99,0.23,2,0.41,3,0.52c0.54-0.41,0.49-1.18,0.72-1.76c0.72-0.06,1.51-0.13,2.03,0.46c1.1,0.74,2.4,1.1,3.72,1.2c0.64,0.02,1.13,0.48,1.63,0.83c-0.15,0.56-0.09,1.11,0.38,1.5c0.31,0.44,0.76,1.06,0.26,1.53c-0.45,0.39-0.13,0.98,0.27,1.27C453.71,53.71,453.74,53.83,453.8,53.87L453.8,53.87z"/><path id="NO" d="M449.4,22.79c-2.07-0.02-4.14-0.06-6.21,0.08c-0.63-0.1-1.26-0.2-1.88-0.3c0.51-0.38,1.11-0.53,1.71-0.67c0.57-0.38,1.2-0.68,1.81-0.99c0.72,0.36,1.4,0.83,2.24,0.78c0.95-0.03,1.99-0.23,2.83,0.35c0.57-0.15,1.05-0.44,1.48-0.81c0.71-0.37,0.92-0.25,0.5,0.47c-0.12,0.64,0.87,0.43,1.23,0.24c0.78-0.42,1.75-0.79,2.6-0.41c0.5,0.67,1.37,0.41,2.08,0.41c0.91-0.1,1.86-0.04,2.74,0.18c0.87,0.34,0.02,0.52-0.45,0.66c-1.47,0.48-2.98,0.93-4.54,0.97c-1.03,0.07-1.97,0.63-3.01,0.45c-1.76-0.03-3.53-0.05-5.29-0.08c-0.23-0.68,0.8-0.39,1.19-0.59C448.86,23.51,449.08,23.02,449.4,22.79z M430.03,22.75c-0.12,0.66,0.32,0.95,0.94,0.87c0.49-0.01,1.22,0.36,1.32-0.36c0.07-0.56,0.93-0.54,1.36-0.44c0.98,0.38,1.72,1.22,2.78,1.4c0.84-0.08,0.36-0.59-0.11-0.87c-0.57-0.49-0.29-0.9,0.36-1.02c0.6-0.2,1.25,0.11,1.84,0.2c0.57,0.02,1.15-0.05,1.69,0.19c-0.17,0.52-0.39,1.04,0.4,0.99c0.52-0.22,1.15-0.69,1.64-0.16c1.1,0.78,2.51,0.57,3.73,1.02c0.33,0.06,1.55,0.41,0.62,0.47c-1.16,0.37-2.45,0.13-3.55,0.7c-0.46,0.75-0.96,1.57-1.7,2.04c-0.62,0.06-1.28,0.01-1.74,0.52c-0.5,0.22-0.55,0.91-0.84,1.14c-1.12,0.42-2.26-0.16-3.36-0.37c-0.92-0.2-1.79-0.53-2.65-0.91c0.73-0.61,1.7-0.3,2.57-0.43c0.82-0.04,1.65-0.08,2.38-0.5c-0.88-0.47-1.88-0.07-2.83-0.08c-0.97,0.09-1.94,0.11-2.91,0.13c-0.74-0.53-0.31-0.6,0.38-0.57c1.72-0.29,3.48-0.39,5.14-0.98c-1.14-0.22-2.32-0.27-3.41-0.7c-0.9,0.1-1.48,0.92-2.4,1c-0.92,0.27-1.92,0.06-2.77-0.32c-0.74-0.3-1.57-0.4-2.22-0.89c0.57-0.13,1.13-0.26,1.7-0.4c-0.44-0.31-0.86-0.76-1.42-0.43c-0.55,0.19-1.23,0.29-1.63-0.24c-0.84-0.38-0.18-0.64,0.39-0.78c0.9-0.08,1.79-0.16,2.7-0.12C428.96,22.77,429.5,22.79,430.03,22.75L430.03,22.75z M425.42,68.82c-0.27-0.45-1.06,0.26-1.26-0.49c0.11-0.43-0.3-0.94-0.52-0.17c0.18,0.35-0.44,0.85-0.81,0.91c-0.53-0.09-1.01-0.08-1.49,0.25c-0.04,0.39-0.82,0.54-1.18,0.8c-0.46,0.28-1.07,0.43-1.44,0.78c-0.3,0.29-0.94,0.1-1.37,0.23c-0.49-0.06-1.19,0.37-1.5-0.11c-0.46-0.1-1.07,0.15-0.58-0.23c-0.78-0.09-1.43-0.61-2.22-0.61c-0.62-0.35-0.28-0.89-0.22-1.15c0.39,0.39,0.67,0.04,1.28,0.39c-0.75-0.39,1.03-0.48-0.05-0.41c-0.59,0.29-0.8-0.44-0.08-0.49c1.17-0.33-0.76,0.04-0.11-0.38c0.79-0.81-0.5,0.49-0.41-0.14c-0.4-0.38-0.11,0.64-0.87,0.37c-0.11-0.42-0.53,0.29-0.71-0.54c0.49-0.69,0.8,0.03,0.79-0.27c0.66,0.2,0.38-0.16,1.02-0.16c0.84-0.29,0.49-0.23-0.17-0.11c-0.9,0-0.41-0.29,0.01-0.6c0.36-0.57-0.78-0.26-1.13-0.25c-0.85-0.17-0.15-0.46,0.31-0.71c0.47-0.49-0.7-0.1-0.93-0.37c-0.47-0.44,0.67-0.83,0.67-0.93c-0.71-0.14-0.71-0.59-0.5-1.04c-0.3-0.72,0.61-0.52,1.04-0.62c0.95,0.14,0.15-0.29-0.29-0.42c-0.18-0.55,0.84-0.27,1.09-0.64c0.36-0.34,1.23,0.28,1.36-0.4c0.1-0.59,0.94-0.1,1.37-0.12c0.69,0.07,1.02-0.36,0.11-0.37c-0.78-0.09-0.47-0.76,0.21-0.52c0.68,0.1,1.39-0.25,2.01,0.15c-0.13-0.62,0.6-0.62,0.83-1.08c0.51-0.33,1.09,0.08,1.48-0.03c0.28-0.5,1.07-0.47,1.27-0.94c0.21-0.79,1.22-0.92,1.84-1.32c0.45-0.44,0.94-0.2,1.46-0.14c0.61-0.16-0.08-0.69,0.79-0.8c0.48-0.12,0.7-0.88,1.19-0.73c0.71,0.32,0.95-0.64,0.26-0.71c-0.11-0.2,0.66-0.7,0.82-1.08c0.74,0.27,0.82-0.17,1.16-0.53c0.78,0.08,0.87-0.32,0.13-0.53c-0.6-0.22,0.3-0.87,0.68-0.61c0.68,0.01,1.14-0.05,0.38-0.56c0.35-0.15,1-0.21,1.45-0.42c0.64-0.05,0.98-0.2,0.35-0.52c0.54-0.19,1.03-0.61,1.63-0.35c0.24-0.03,1.29-0.2,0.88-0.53c-0.58-0.24,0.54-0.59,0.76-0.71c0.39,0.36,0.95,0.52,1.33,0.02c-0.37-0.67-0.18-0.71,0.53-0.64c1.19-0.02-0.33-0.46,0.18-0.65c0.45-0.24,1.01-0.22,1.23-0.71c0.4-0.31,0.9-0.07,1.3-0.27c0.28-0.66,0.62-0.66,1.19-0.45c0.53-0.17,1.05-0.09,1.55,0.12c0.77,0.27,1.22-0.56,1.68-1.03c0.62-0.63,0.6,0.18,0.29,0.62c0.01,0.26,0.93-0.35,1.05-0.73c0.38-0.32,1.07-0.08,1.44-0.56c0.43-0.33,0.95,0.4,1.32,0.3c0.38-0.39,0.72-1.05,1.36-0.79c0.57-0.08,1.04,0.51,1.54,0.5c0.48-0.5,0.99-1.24,1.77-1.17c0.57,0.21,0.82-0.54,1.36-0.6c0.85-0.27,1.75-0.34,2.63-0.3c-0.51,0.38-1.3,0.52-1.59,1.12c-0.38,0.74,0.48,0.77,0.8,0.24c0.78-0.55,1.58-1.12,2.51-1.4c0.16,0.4-0.3,1.46,0.46,1.06c0.74-0.08,1.09-0.85,1.65-1.19c0.55,0,1.2-0.29,1.67,0.06c-0.61,0.24-0.63,0.65-0.92,1.1c0.26,0.19,1.07,0.31,1.17-0.32c0.45-0.32,0.91-0.83,1.5-0.5c0.98,0.34,1.97,0.72,3.03,0.63c0.65,0.06,1.03,0.66,0.16,0.7c-1.22,0.44-2.55,0.15-3.82,0.19c-0.35-0.01,0.73,0.47,1.02,0.5c0.57-0.02,0.89,0.61,1.46,0.44c0.84-0.11,1.72-0.25,2.5,0.16c-0.7,0.72-1.74,0.38-2.59,0.67c-0.95,0.35-1.69,1.08-2.64,1.43c-0.12-0.72,0.76-1.03,0.95-1.58c-0.17-0.44-0.91-0.48-1.35-0.6c-0.76-0.17-1.46-0.67-2.27-0.42c-1.08,0.14-2.28-0.11-3.21,0.6c-0.61,0.28-0.71,0.93-0.86,1.5c-0.16,0.52-0.92,0.45-1.34,0.72c-0.43,0.48-0.89,0.28-1.39,0.03c-0.5-0.27-1.03-0.35-1.58-0.19c-0.95,0.13-1.98,0.22-2.88-0.11c-0.74-0.44-1.39-1.14-2.27-1.24c-0.55,0.05-0.96,0.66-1.44,0.72c-0.42,0.01-1.26-0.26-1.38,0.24c-0.2,0.5-0.15,1.32-0.74,1.5c-1.21-0.15-2.42-0.39-3.61-0.67c-0.37,0.37,0.02,1.09-0.59,1.34c-0.89,0.12-1.95-0.45-2.66,0.34c-0.31,0.38-1.08,0.59-1.1,1.07c0.34,0.48,0.06,1-0.47,1.15c-0.77,0.45-1.45,1.09-2.25,1.45c-0.49-0.02-1.19-0.1-1.04,0.62c0.1,1.24-1.12,1.89-1.81,2.73c0.5,0.11,0.86,0.49,0.97,0.98c-0.85,0.79-2.16,0.05-3.14,0.58c-0.73,0.31-1.52,0.91-1.45,1.79c-0.11,0.52-0.61,1.12,0.01,1.49c0.56,0.37,0.01,0.99-0.04,1.5c0.4,0.41,0.98,0.42,1.43,0.69c0.32,0.36-0.4,1-0.89,0.9c-0.71,0.03,0.36,0.7,0.43,1.09c-0.13,0.38-0.07,1.13-0.68,1.24c-0.68,0.04-0.69,0.5-1.23,0.76c-0.16,0.37,0.33,1.01-0.13,1.44C425.97,69.76,425.82,68.84,425.42,68.82L425.42,68.82z"/><path id="FI" d="M464.35,47.43c-0.01,0.44-0.57,1.06,0,1.34c0.72,0.26,1.49,0.33,2.13,0.8c0.63,0.24,0.73,0.62,0.07,0.9c-0.49,0.33-1.06,0.55-1.48,0.98c0.79,0.77,1.61,1.52,2.13,2.51c0.03,0.48-0.63,0.8-0.74,1.29c-0.27,0.68,0.56,1.12,0.91,1.61c0.25,0.4,0.95,0.71,0.78,1.25c-0.32,0.35-1.29,0.59-0.44,0.93c0.83,0.4,1.85,0.48,2.51,1.17c0.46,0.71-0.45,1.32-0.9,1.77c-1.81,1.01-3.58,2.11-5.38,3.16c-0.24,0.53-0.98,0.38-1.46,0.55c-0.59-0.06-0.98,0.49-1.48,0.1c-0.5,0.1-0.81,0.41-1.35,0.16c-0.15-0.86-0.04,0.17-0.66,0.22c-0.61-0.19-0.89,0.46-1.28,0.17c-0.41-0.21-0.88,0.28-1.4,0.27c-0.32,0.07-1-0.04-1.35,0.32c-0.36,0.1-1-0.02-1.38,0.07c-0.5,0.17-1.1,0.23-1.59,0.09c-0.9-0.12,0.05-0.99-0.72-0.78c-0.63,0.07-0.92,0.22-1.03-0.17c-0.51,0.08-0.98-0.29-1.48-0.37c-0.67-0.28-0.65-1.17-0.39-1.72c0.25-0.56-0.09-1.02-0.55-1.36c-0.2-0.32,0.6-1.02-0.04-1.28c-0.74-0.01-0.34-0.76,0.15-0.89c0.78-0.04,0.18-1.01,0.98-0.8c0.48,0.15,1.09,0.24,1.37-0.29c0.25-0.43,0.32-1.26,0.85-0.62c0.59-0.11,1.05-0.66,1.59-0.93c0.81-0.48,1.62-0.98,2.41-1.47c0.55-0.28,1.12-0.4,1.73-0.31c0.23-0.57-0.79-0.53-0.25-1.15c0.2-0.63-0.81-0.51-1.22-0.58c-0.55-0.11-0.98-0.62-1.6-0.49c-0.18-0.4-0.88-0.82-0.51-1.3c0.4-0.41,0.47-0.99,0.06-1.42c-0.23-0.47-0.82-0.79-0.64-1.39c0.25-0.59-0.56-0.81-0.95-1.08c-0.89-0.32-1.9-0.23-2.79-0.58c-0.76-0.29-1.47-0.73-2.13-1.18c0.21-0.21,0.83-0.67,1.29-0.77c1.02,0.07,1.69,1.05,2.61,1.35c1.11,0.22,2.24,0.05,3.34-0.12c0.56,0.17,1.15,0.52,1.67,0.59c0.52-0.4,1.16-0.55,1.76-0.79c0.28-0.59,0.2-1.39,0.88-1.7c0.98-0.8,2.28-0.49,3.43-0.67c0.91-0.23,1.66,0.5,2.56,0.52c0.4,0.14,1.34,0.4,0.68,0.87C464.74,46.57,464.25,46.87,464.35,47.43L464.35,47.43z"/><path id="RU" d="M444.97,79.14c0.67-0.25,0.94-0.43,0.06-0.27c-0.43,0.18-0.52-0.41-0.05-0.67c0.85-0.03,1.72,0.17,2.57,0.01c0.21-0.49-0.17-0.77,0.4-0.93c0.29,0.12,0.79,0.35,1.25,0.39c0.44,0.17,0.93,0.06,1.44,0.07c0.23,0.25,1.02,0.43,0.4,0.8c0.02,0.69-0.23,0.7-0.91,0.66C448.41,79.34,446.7,79.17,444.97,79.14L444.97,79.14z M717.63,81.11c0.66,0.63,1.37,1.6,0.91,2.52c-0.54,1-0.38,2.27,0.38,3.11c0.57,0.98,0.95,2.07,1.57,3.03c0.39,0.68,0.86,1.31,1.28,1.97c-0.96-0.46-1.86-1.22-2.98-1.12c-0.51,0.01-0.92,0.35-1.02,0.86c-0.3,0.72-0.57,1.55-0.51,2.33c0.09,0.78,0.65,1.32,1.07,1.93c0.5,0.09,1.06,0.59,0.94,1.11c-0.13,0.53-0.23,1.4-0.54,0.44c-0.17-0.56-0.55-0.89-1.13-0.97c-0.75-0.14-0.96,0.82-1.37,1.26c-0.23,0.8-0.79,0.14-0.83-0.38c-0.32-0.65,0.27-1.16,0.52-1.73c-0.23-0.48-0.59-1.03-0.11-1.48c0.48-0.34,0.41-0.9,0.18-1.37c-0.2-0.44-0.75-1.06-0.04-1.31c0.58-1.38,0.22-2.89,0.51-4.33c0.03-0.75-0.35-1.38-0.92-1.84c-0.33-0.32-0.4-0.99-0.16-1.38c0.32-0.54,0.62-1.33,0.07-1.81c0.16-0.56,1-0.1,1.38-0.45C717.11,81.38,717.37,81.25,717.63,81.11L717.63,81.11z M471.16,84.28c-0.17-0.28-0.64-0.55-0.36-1c-0.31-0.36-0.09-0.63-0.69-0.94c-0.07-0.59,0.77-0.58,1.1-0.3c0.6,0.08,1.22-0.08,1.68-0.48c0.86-0.09-0.18-0.4-0.35-0.69c0.38-0.21-0.71-0.38-1-0.33c-0.71,0.22,0.15-0.73-0.6-0.71c-0.56-0.03-0.86-0.48-1.15-0.81c-0.1-0.33-0.13-0.34-0.59-0.65c-0.75-0.15,0.56-0.58,0.1-0.91c-0.62-0.2,0.4-1.05-0.4-0.94c-0.42-0.29-0.9-0.64-1.45-0.49c-0.4-0.11-0.93,0.05-1.27,0.3c-0.8,0.05,0.1-0.75-0.57-0.66c-0.41-0.27-1.02,0.25-1.29-0.08c-0.32-0.49-0.9,0.18-1.22-0.28c0.19-0.36,0.06-0.91-0.33-1.02c-0.23-0.32-0.22-0.77-0.82-0.54c0.34-0.42,0.11-0.56,0.46-0.89c-0.17-0.25-0.73-0.46-0.87-0.64c-0.55,0,0.11-0.6,0.4-0.65c0.62,0.02-0.05-0.54-0.29-0.74c-0.18-0.38,0.16-0.77-0.18-1.25c-0.09-0.58,0.83-0.47,0.94-1.01c0.02-0.4,1.07-0.1,0.54-0.57c-0.75-0.24-0.08-0.77,0.36-0.3c0.25-0.37,0.62-0.28,1.2-0.22c0.31-0.4,0.76-0.66,1.27-0.44c0.56,0.13,1.16,0.52,1.72,0.14c-0.46-0.63-1.24-0.88-1.99-0.71c-0.61,0.05-1.38,0.1-1.77-0.47c0.58-0.56-0.37-0.65,0.4-1.01c1.72-1,3.41-2.06,5.15-3.02c0.46-0.45,1.35-1.05,0.9-1.77c-0.77-0.84-2.1-0.73-2.93-1.49c0.36-0.25,1.22-0.58,0.77-1.11c-0.54-0.66-1.31-1.22-1.65-1.99c-0.08-0.68,0.79-1.06,0.8-1.65c-0.52-0.99-1.33-1.74-2.13-2.51c0.6-0.6,1.46-0.83,2.05-1.44c-0.72-0.57-1.55-0.98-2.46-1.12c-0.63-0.03-0.73-0.78-0.34-1.17c-0.01-0.57,0.86-0.47,1.16-0.88c0.91-0.68,2.01-1.1,3.16-1.01c0.56-0.12,0.94-0.65,1.56-0.54c0.56-0.14,1.12-0.27,1.64-0.49c0.19,0.92,1.29,1.09,2.09,1.1c0.85-0.27,0.41,1.05,1.08,0.52c0.58-0.26,1.26,0.02,1.88-0.04c1.22,0.06,2.46-0.06,3.64,0.31c1.58,0.33,3.26,0.44,4.65,1.36c1.5,1,3.4,0.71,5.03,1.36c0.46,0.21,1.21,0.19,1.4,0.7c-0.27,0.62,0.55,0.75,0.64,1.24c-0.62,0.86-1.72,1.26-2.7,1.59c-1.87,0.52-3.84,0.64-5.75,0.29c-1.79-0.16-3.61-0.25-5.34-0.77c-1.18-0.28-2.37-0.52-3.59-0.59c-0.69-0.71-1.71-0.88-2.64-0.66c0.22,0.14,0.83,0.56,1.21,0.8c1,0.33,1.86,1.06,2.95,1.12c0.61,0.08,1.47,0.41,1.35,1.15c-0.16,0.52-1.3,0.22-0.78,0.85c0.19,0.65,0.99,0.99,0.97,1.72c0.53,0.66,1.51,0.31,2.24,0.52c0.65-0.11,0.7,0.82,1.33,0.78c0.74,0.03,1.48,0.08,2.2,0.28c0.46-0.28,1.29,0.03,1.43-0.62c0.01-0.63-0.81-0.83-1.31-0.61c-0.82,0.06-1.42-0.54-1.99-1.03c0.37-0.36,0.77-0.92,1.35-0.6c1.43,0.69,3.04,0.84,4.57,1.18c0.6,0.12,1.2,0,1.78-0.05c0.48,0.36,1.24-0.07,0.83-0.62c-0.47-0.44-1.1-0.73-1.3-1.39c0.43-0.58,1.28-0.51,1.91-0.79c1.06-0.22,2.13-0.48,2.99-1.17c0.56-0.42,1.29,0.04,1.92,0.04c0.9,0,1.65,0.63,2.53,0.66c0.11-0.55,0.57-0.95,0.78-1.42c0.08-0.56-0.28-1.11-0.88-1.07c-0.87-0.05-0.47-0.58,0.04-0.88c0.49-0.27,0.72-0.76,0.37-1.25c-0.33-0.18-1.21-0.73-0.44-0.87c0.9,0.1,1.79,0.3,2.7,0.15c0.69-0.07,1.51-0.14,1.96,0.5c0.41,0.38,0.92,0.64,1.26,1.1c-1.16,0.13-2.41-0.07-3.49,0.41c-0.78,0.46-0.04,0.77,0.52,0.86c0.54,0.2,0.89,0.76,1.52,0.76c1.16,0.31,2.34-0.09,3.52-0.07c0.67-0.29,0.63-1.31,1.22-1.67c1.25-0.11,2.38-0.68,3.61-0.88c1.82-0.56,3.75-0.65,5.55-1.29c0.07,0.66,0.77,0.6,1.21,0.34c0.51-0.18,0.42-0.94,1.13-0.86c0.34-0.05,1.45-0.26,1.21,0.22c0,0.68-0.3,0.9-0.99,0.84c-0.58,0.43,0.52,0.64,0.86,0.5c0.59-0.03,1.27-0.32,1.82-0.12c0.41,0.46,0.96-0.23,1.17-0.6c1.04-0.39,2.22-0.41,3.32-0.3c0.91,0.28,1.92,0.3,2.74-0.26c1.03-0.47,2.29-0.64,3.32-0.11c-0.67,0.23-0.74,0.85,0.06,0.85c0.49,0.15,1.28,0.09,1.22-0.59c0.7-0.2,1.56,0.21,2.12-0.43c0.59-0.5-0.26-0.84-0.62-1.15c-0.87-0.39-0.15-0.54,0.35-0.82c0.81-0.36,1.76-0.06,2.63-0.12c1.3,0.04,2.59,0.31,3.88,0.48c1.27,0.21,2.49,0.68,3.79,0.73c1.46,0.34,2.93,0.65,4.28,1.31c0.8,0.27,1.53,0.78,2.37,0.9c0.61-0.36,1.14-0.91,1.61-1.45c-0.8,0.07-1.8,0.11-2.26-0.68c0.26-0.66-0.32-0.89-0.88-0.95c-0.61-0.09-1.32,0-1.86-0.21c-0.38-0.5,0.52-0.79,0.9-0.91c0.53-0.17,0.34-0.88,0.23-1.24c-0.39-0.48-1.27,0.1-1.55-0.53c0.2-0.49,0.61-0.86,1.16-0.83c1.28-0.33,2.67-0.7,3.51-1.81c0.42-0.54,0.42-1.4,1.15-1.66c0.5-0.11,1.1,0.11,1.64,0.1c1.5,0.07,3-0.29,4.5-0.12c0.58-0.02,1.5-0.2,1.77,0.44c-0.1,0.83-0.72,1.5-1.46,1.85c-0.36,0.18-1.31,0.77-0.47,0.94c0.69,0.38,1.6,0.8,1.69,1.68c0.39,0.63-0.86,0.62-0.62,1.16c0.28,0.75,0.13,1.54,0.18,2.3c0.17,0.77,0.94,1.01,1.62,1.13c0.71,0.32-0.4,0.72-0.42,1.2c-0.43,1.05-1.68,1.3-2.57,1.85c-0.35,0.18-1.46,0.24-0.99,0.76c0.28,0.46-0.83,0.34-1.17,0.52c-0.92,0.07-1.82-0.47-2.76-0.39c-0.36,0.08-1.55-0.12-1.25,0.37c0.95,0.69,2.25,0.66,3.39,0.81c0.83,0.07,1.66-0.04,2.49,0.14c0.54,0.01,1.1,0.03,1.45-0.46c0.43-0.6,1.33-0.39,1.92-0.76c0.59-0.19,1.14-0.48,1.39-1.08c0.32-0.41,1-0.36,1.35-0.78c0.58-0.2,0.57-0.8,0.27-1.24c-0.51-0.26-0.82-0.84-0.2-1.16c1.31-0.34,2.72-0.41,4.06-0.28c0.5,0.15,1.09,0.36,1.43,0.73c0.25,0.59-0.01,1.15-0.21,1.71c0.65,0.63,1.68,0.46,2.52,0.54c0.47,0.06,1.48-0.39,0.57-0.59c-0.62-0.28-1.29-0.12-1.92-0.28c-0.08-0.67,0.86-0.46,1.12-0.85c-0.1-0.39-0.54-0.87-0.74-1.33c-0.6-0.55-1.52-0.35-2.26-0.62c-1.07-0.14-2.16-0.49-3.22-0.14c-0.94,0.24-1.88-0.21-2.83-0.06c0.07-0.64-0.88-1.14-0.39-1.74c0.24-0.57,0.92-0.81,1.14-1.41c-0.57-0.75-1.31-1.39-2.17-1.78c-0.2-0.37,0.68-0.76,1.07-0.77c0.93-0.07,1.98-0.21,2.71-0.83c0.35-0.37,0.09-1.14,0.19-1.37c0.4,0.2,1.23-0.13,1.31,0.44c0.19,0.64-0.49,1.01-0.8,1.44c-0.3,0.51,0,1.09,0.53,1.28c0.69,0.4,1.56,0.22,2.33,0.39c0.9,0.17,1.87,0.05,2.75,0.26c0.52,0.4,1.16,0.37,1.78,0.31c-0.29-0.56-0.66-1.26-1.4-1.18c-1.03-0.12-2.14,0.04-3.12-0.35c-0.77-0.24-0.42-0.9,0.27-0.75c0.54-0.11,1.03,0.06,1.55,0.16c0.55,0.07,1.09,0.07,1.63-0.09c-0.29-0.68,0.12-0.9,0.76-0.87c1.47-0.24,2.94,0.12,4.32,0.59c1.28,0.73,2.77,0.97,4.22,0.9c0.44,0.18,1.18-0.52,1.27,0.17c-0.48,0.24-0.97,0.47-1.48,0.64c-0.22,0.56-0.32,1.15-0.38,1.74c0.54,0.39,0.72-0.57,1.15-0.76c0.37-0.46,0.97,0.16,1.12,0.48c-0.33,0.83,0.28,0.63,0.83,0.39c0.79-0.1,0.38-0.57,0.13-0.99c-0.25-0.39-1.08-0.78-0.44-1.18c0.59-0.44,0.62-0.79-0.13-1.02c-0.58-0.31-1.3-0.34-1.85-0.63c-0.21-0.57-0.94-0.23-1.38-0.49c-0.62-0.24-1.38-0.11-1.93-0.44c-0.39-0.33,0.16-1.11-0.49-1.36c-0.67-0.26-0.57-0.92,0.15-0.94c2.83-0.27,5.71-0.03,8.54-0.46c0.42,0.45,1.02,0.41,1.53,0.15c0.92-0.29,1.93-0.54,2.89-0.36c0.77,0.21-0.65,0.26-0.82,0.63c-0.59,0.46,0.75,0.02,1.07,0.05c0.75-0.11,1.62-0.24,2.16-0.82c-0.34-0.84-1.42-0.59-1.95-1.19c-0.03-0.57,0.47-0.93,1-1c1.5-0.41,3.01-0.83,4.5-1.29c2.41-0.34,4.84-0.3,7.25-0.63c1.44-0.13,2.87-0.37,4.25-0.82c0.99-0.31,2.05-0.03,3.08-0.11c1.09-0.17-0.05,0.72,0.65,0.62c1.7,0.26,3.37-0.18,5.04-0.38c1.02-0.17,2.06,0.48,3.05,0c0.02-0.48,0.16-0.89,0.81-0.87c0.8-0.1,1.62,0.11,2.38-0.27c0.96-0.12-0.62-0.47-0.1-0.97c1.71-0.7,3.56-1.03,5.39-1.25c1.11-0.08,2.24,0.02,3.35,0.03c0.47,0,1.28,0.53,0.39,0.62c-0.61,0.15-1.22,0.28-1.76,0.63c1,0.34,2.08-0.13,3.11,0.11c0.96,0.17,1.96-0.06,2.91,0.04c0.08,0.36-0.83,0.52-1.19,0.7c-0.85,0.31-0.35,0.52,0.32,0.4c0.74,0.02,1.54-0.06,2.23,0.03c0.53-0.29,1.05-0.63,1.68-0.51c1.08,0.04,2.17-0.2,3.23,0.03c1.66-0.03,3.36,0.06,4.94,0.56c0.54,0.09,0.95,0.46,1.37,0.72c0.51,0.07,1.1-0.14,1.55-0.01c0.74,0.48-0.14,0.7-0.54,0.99c-0.87,0.31,0.13,0.51,0.54,0.7c0.18,0.21-0.92,0.39-1.26,0.59c-1.03,0.48-2.17,0.58-3.28,0.73c-2.44,0.74-4.87,1.55-7.31,2.3c-1.56,0.22-3.14,0.5-4.63,1c-0.64,0.35-1.27,0.69-1.91,1.04c0.96,0.1,1.9-0.22,2.72-0.69c1.58-0.2,3.17-0.13,4.74-0.42c1.34-0.24,2.71-0.29,4.01-0.71c0.03-0.57-1.09-0.52-0.17-0.89c0.63-0.31,1.36,0.07,1.89,0.45c0.78,0.01,1.51,0.42,2.31,0.27c0.74,0.08,1.53-0.53,2.2-0.16c0.21,0.4,0.14,1.1,0.75,1.1c0.67-0.31,1.27-0.9,2.05-0.74c1.41,0,2.81-0.24,4.23-0.15c1.52,0.04,3.03,0.24,4.55,0.23c-0.34,0.47-0.28,1.17,0.44,1.1c1.93,0.06,3.84,0.58,5.78,0.33c1.14-0.08,2.3-0.18,3.4,0.22c0.52,0.08,0.92-0.53,1.4-0.73c0.45-0.23-0.44-1.06,0.5-0.97c0.9-0.29,1.85-0.5,2.79-0.21c0.94,0.19,1.82,0.67,2.8,0.55c1.5,0.08,3.07-0.34,4.49,0.3c0.46-0.04,1.21,0.69,0.43,0.73c-1.65,0.27-3.3,0.69-4.84,1.27c-0.34,0.4,0.88,0.21,1.21,0.3c1.37-0.16,2.5,0.73,3.78,1.03c1.16,0.73,2.3,1.5,3.59,1.97c0.73,0.24,1.54,0.53,2.31,0.37c1.21-0.44,1.9-1.64,2.96-2.3c0.63-0.56,0.66,0.46,1.23,0.49c1.39,0.45,2.92,0.78,4.35,0.32c1.22-0.38,2.51-0.49,3.74-0.13c0.81,0.15,1.54,0.63,2.33,0.78c0.35-0.04,1.22-0.4,0.99-0.67c0.11-0.44,0.91-0.58,1.33-0.48c0.68,0.46,1.51,0.43,2.3,0.44c0.35-0.51-0.17-0.98,0.17-1.5c0.23-0.69-0.84-0.06-1.25-0.19c-0.88,0.16-0.51-0.42,0.12-0.49c1.26-0.16,2.6,0.04,3.74-0.62c0.8-0.53,1.72-0.1,2.59-0.05c2.05,0.17,4.09,0.4,6.13,0.53c0.36,0.05,1.54-0.04,1.34,0.1c-0.52,0.19-1.04,0.38-1.56,0.57c0.65,0.11,1.32-0.03,1.96,0c0.62,0.26-0.49,0.68-0.84,0.65c-0.34,0.03-1.56,0.44-0.9,0.6c0.7,0.01,1.4-0.18,2.09-0.33c0.9-0.2,1.65-0.84,2.52-1.04c1.74,0.01,3.5-0.06,5.21,0.33c0.57,0.03,1.15,0.5,0.24,0.51c-0.55,0.14-1.1,0.29-1.65,0.43c1.58,0.44,3.23,0.46,4.84,0.72c0.68,0.11,1.33,0.42,1.75,0.96c0.87,0.73,2.06,0.38,3.09,0.38c2.64-0.22,5.27-0.8,7.94-0.57c1.71,0.11,3.5,0.02,5.09,0.75c0.59,0.1,1.32,0.42,1.52,0.98c-0.05,0.52-0.72,1.04,0.12,1.18c0.75,0.1,1.5,0.03,2.24,0.16c-0.15,0.49,0.15,1.29,0.75,1.02c0.56-0.09,0.88-0.67,1.48-0.71c0.92-0.42,1.94-0.14,2.92-0.23c0.82-0.05,1.72-0.52,2.5-0.15c0.78,0.71,1.92,0.36,2.87,0.46c1.27,0.03,2.6,0.2,3.79-0.4c0.62-0.41,1.16,0.3,1.71,0.52c0.76,0.53,1.87,0.38,2.55,1.01c0.44,0.65,1.37,0.29,2.03,0.29c0.67-0.1,1.42-0.17,2.02-0.42c0.23-0.47-0.58-0.82-0.82-1.21c-0.31-0.34-1.41-0.06-0.56-0.58c0.28-0.59,0.79-0.64,1.37-0.52c1.53,0.1,3.06,0.13,4.57,0.36c0.24,0.61,0.97,0.12,1.46,0.18c2.03-0.05,4.09-0.22,6.1,0.15c1.43,0.44,2.95,0.26,4.37,0.74c0.98,0.3,3.06,0.22,3.97,0.77c0.7,0.08,0.32,0.86,0.41,1.34c0,2.55,0,5.11,0,7.66c-0.58,0.24-2.2,0.4-2.81,0.45c-0.66,0.5-1.56,0.43-2.35,0.42c-0.41-0.19-1.18,0.19-1.23-0.44c-0.61-0.25-0.6-0.3-0.78-0.28c-0.62,0.26-1.38,0.42-1.96,0.03c-0.9-0.27,0.61,0.63-0.44,0.68c0.02,0.15,0.99,0.41,1.32,0.27c0.3-0.32,1.24-0.43,1.21,0.11c0,0.5,0.78,0.65,1.18,0.65c0.7-0.2,0.98-0.19,0.53,0.1c0.65-0.44,0.75,0.09,1.09,0.56c0.6,0.42-1.06,0.87-0.32,0.81c0.74-0.22,0.95,0.79,1.65,0.8c0.12,0.61-0.06,0.84,0.77,0.6c-0.06,0.54-0.26,0.97-0.87,1.04c-0.83,0.29-1.65-0.24-2.49-0.21c-0.47-0.09-0.98,0-1.42-0.24c0.35-0.51-0.87-0.38-0.99,0.03c-0.46,0.62-1.34,0.57-2.01,0.86c-0.92,0.32-1.88,0.53-2.84,0.62c-0.57,0.36-1.2,0.66-1.91,0.59c-0.8-0.14-1.17,0.88-1.97,0.74c-0.7-0.11-1.24,0.46-1.68,0.92c-0.58,0.22-1.3,0.22-1.79,0.59c-0.42,0.66-1.42,0.31-1.95,0.78c-0.03,0.51-0.42,0.89-0.98,0.81c-0.59-0.11-0.74-0.69-1.1-1.01c-0.84-0.45-1.86-0.24-2.78-0.2c-1.16,0.22-2.43,0.16-3.43,0.9c-0.45,0.15-0.95,0.75-1.39,0.58c-0.07-0.35,0.73-1.23,0.36-1.29c-0.54,0.04-1.01-0.06-1.44,0.41c-0.43,0.32-1.34,0.14-1.31,0.87c-0.35,0.33-1.1,0.27-1.2-0.34c-0.35-0.57-0.88-0.19-1.29,0.11c-0.31,0.29,0.05-0.24-0.73,0.08c-0.32,0.23-1.09,0.58-0.76,1.05c0.79,0.21-0.45,0.45-0.65,0.74c0.2,0.33,0.03,0.46-0.58,0.75c-0.59,0.4-1.34,0.75-1.65,1.4c-0.18,0.78,0.85,0.92,1.42,0.83c0.5,0,1.19-0.15,1.52,0.3c-0.37,0.5-1.1,0.59-1.37,1.15c0.21,0.42,0.35,1.12,0.96,1.01c0.61-0.08,0.66,0.94,0.31,1.24c-0.24,0.39-1.34,0.26-1.14-0.26c0.7-0.57-0.17-0.58-0.56-0.23c-0.71,0.6-1.55,1.17-1.81,2.12c0.11,0.58,0.57,0.8,1.02,1.06c0.24,0.47-0.59,0.76-0.97,0.87c-0.94,0.13-1.97-0.32-2.8,0.3c-0.55,0.31-1.2,0.66-1.4,1.29c0.02,0.43,1.08,0.75,0.42,1.09c-0.6,0.28-1.28,0.12-1.88,0.44c-0.41,0.22-1.35,0.21-1.17,0.85c0.07,0.75-0.35,1.42-0.94,1.87c-0.82,0.72-1.81,1.24-2.76,1.78c-0.49,0.11-0.52-0.85-0.66-1.23c-0.23-0.54-0.32-1.12-0.38-1.69c-0.21-0.63-0.75-1.06-0.78-1.74c-0.18-0.76-0.66-1.44-0.6-2.25c-0.11-0.66-0.35-1.26-0.52-1.9c-0.07-1,0.16-2.02,0.42-2.98c0.6-0.65,1.46-1.02,2.13-1.58c0.28-0.36,0.89-0.83,0.37-1.27c1.7-0.31,3.37-0.84,4.87-1.72c0.58-0.33,1.29-0.66,1.52-1.33c1.53-0.8,3.15-1.47,4.56-2.49c0.23-0.67,1.04-0.63,1.6-0.89c0.67-0.21,1.46-0.27,2.06-0.57c0.15-0.56,0.92-0.59,1.07-1.12c-0.93-0.1-0.2-0.6,0.15-1.01c0.12-0.44,0.04-1.15,0.75-1.16c0.77-0.12,1.56-0.05,2.34-0.18c-0.66-0.58-1.62-0.35-2.43-0.53c-0.9,0.05-1.8,0.22-2.67,0.45c0.25,0.57-0.74,0.92-0.53,1.4c-0.07,0.44-0.95,0.19-1.31,0.49c-1.25,0.5-2.39,1.25-3.63,1.76c-0.33,0.08-1.43,0.57-1.01-0.12c0.76-0.66-0.22-0.4-0.63-0.62c-0.27-0.48,0.47-0.85,0.67-1.26c0.35-0.68-0.74-0.3-1.04-0.11c-0.52,0.35-0.97,0.14-1.34-0.22c-0.88-0.25-1.82,0.08-2.73,0.08c-1.05,0.06-2.11,0.15-3.06,0.65c0.04,0.63-0.22,0.79-0.83,0.97c-0.57,0.13-0.96,0.48-0.79,0.94c-1.43,0.38-3.05,0.85-3.9,2.17c-0.16,0.64,0.72,0.61,1.15,0.62c0.38-0.22,1.43,0.44,0.63,0.46c-0.92,0.03-1.78,0.5-2.71,0.31c-0.65-0.14-1.37-0.25-1.94,0.21c-0.47,0.49-0.93-0.48-1.45-0.02c-0.7,0.24-1.52,0.58-2.21,0.15c0.13-0.57,0.94-0.32,1.38-0.49c0.91,0.06,0.03-0.54-0.32-0.76c-0.9-0.33-1.86-0.15-2.77-0.03c-0.62-0.09-1.08-0.68-1.75-0.53c-0.55-0.03-1.1,0.06-1.6,0.29c0.24,0.55-0.6,0.98-1.03,0.72c-1.18-0.57-2.5,0.12-3.73-0.21c-0.44-0.06-1.28-0.3-1.33,0.36c-0.09,0.43-1.25,0.33-1.09-0.25c-0.24-0.55-0.97-0.12-1.45-0.19c-1.48-0.15-2.96,0.08-4.45,0.02c-1.23,0.27-2.45,0.79-3.33,1.71c-0.85,0.29-1.85,0.43-2.36,1.26c-0.36,0.57-0.94,0.84-1.56,1.05c-1.82,0.66-3.31,1.89-4.85,3.01c-1.65,1.19-3.66,1.72-5.38,2.78c-0.49,0.4-0.02,1.01,0.51,0.96c0.95,0.16,1.89-0.19,2.84-0.07c-0.11,0.56-0.39,1.1-0.31,1.68c0.53,0.24,1.1-0.04,1.53-0.36c0.75-0.01,0.87,0.25,0.18,0.61c-0.22,0.52,0.88,0.21,1.24,0.28c0.67,0.1,1.53-0.2,1.63-0.94c-0.21-0.76,0.69-0.35,1.13-0.45c1.14-0.06,2.47,0.19,3.11,1.22c0.54,0.45,1.2,0.69,1.78,1.07c-0.6,0.49-0.64,0.44-0.09,0.97c-0.31,0.65-0.29,0.81,0.36,1.1c-0.2,0.82-1.19,1.29-1.47,2.14c-0.35,0.62-0.79,1.37-0.37,2.06c0.2,0.63-0.21,1.29-0.19,1.94c-0.22,0.64-0.32,1.37-0.62,1.96c-0.74,0.68-1.7,1.16-2.26,2c-0.08,0.77-0.92,0.98-1.41,1.48c-0.6,0.67-0.88,1.61-1.65,2.15c-1.03,0.91-2.19,1.7-3.09,2.73c-0.36,1.03-1.72,1.01-2.23,1.93c-0.91,1.21-2.3,1.99-3.79,2.24c-0.47,0-1.11,0.54-1.44,0.24c-0.24-0.65-1.19-0.03-1.43-0.73c-0.24-0.6-0.85,0.16-1.32,0.08c0.64-0.58,0.23-0.71-0.33-0.29c-0.74,0.74-1.6,1.33-2.42,1.96c-0.22-0.52-0.74-0.99,0.15-1.07c0.57-0.17,1.21-0.43,1.42-1.04c-0.16-0.46,0.12-0.99,0.01-1.51c0.06-0.72-0.54-1.31-0.34-2.02c0.59-0.31,1.14-0.76,1.75-0.97c0.78,0.05,1.52,0.64,2.29,0.54c1.18-0.92,1.83-2.33,2.47-3.65c0.26-0.66,0.3-1.57,1.08-1.83c0.53-0.23,0.9-0.66,0.6-1.24c0.02-0.67-0.71-0.49-1.15-0.48c-1.46,0.18-2.9,0.58-4.29,1.05c-0.97,0.04-1.93,0.05-2.9,0.1c-0.53-0.8-0.62-1.83-1.07-2.65c-0.98-0.4-2.03-0.71-3.05-0.98c-1.06-0.19-2.21-0.31-3.15-0.87c-0.69-0.63-0.85-1.64-1.37-2.4c-0.8-1.19-1.31-2.54-1.95-3.81c-0.47-0.66-1.08-1.46-1.99-1.37c-0.84,0.1-1.72,0.23-2.47-0.25c-1.55-0.85-3.35-0.36-5-0.21c-1.18,0.08-2.47,0.08-3.41,0.91c-0.23,0.17-1.21,0.71-0.77,0.81c0.61-0.08,1.52-0.21,1.78,0.52c0,0.62-0.29,1-0.9,1.12c-1.27,0.44-1.89,1.76-2.78,2.66c-0.22,0.43,0.84,0.83,0.19,1.24c-1.15,0.5-2.37,0.84-3.58,1.14c-0.74,0.03-1.33-0.62-2.05-0.78c-0.95-0.48-1.93,0.46-2.9,0.04c-0.72-0.12-1.18-0.84-1.95-0.81c-1.12-0.07-2.18,0.46-3.04,1.14c-1.08,0.97-2.66,0.74-3.99,1.02c-1.78,0.11-3.61,0.37-5.34-0.21c-0.74-0.11-1.46-0.29-2.13-0.63c-1.18-0.18-2.11-0.96-3.17-1.42c-1.02-0.35-2.13-0.12-3.19-0.24c-1.17,0.03-2.3,0.52-3.45,0.59c-0.78-0.15-1.58-0.38-2.28-0.72c-0.56-0.38-0.99-0.99-0.88-1.7c-0.33-0.44-1.04-0.26-1.5-0.54c-1.66-0.59-3.44-0.78-5.17-1.03c-0.58-0.34-0.98,0.19-1.43,0.5c-0.5,0.44-1.18,0.82-1.42,1.45c0.18,0.53,0.5,0.95,0.89,1.32c0.04,0.69-0.74,1.05-1.27,1.34c-0.67,0.39-1.45,0.3-2.12-0.03c-1.3-0.07-2.6-0.17-3.9-0.14c-0.6,0.03-0.99-0.34-1.33-0.78c-0.29-0.54-0.83-0.57-1.37-0.58c-1.25-0.01-2.48-0.29-3.73-0.35c-1.24,0.27-2.46,0.67-3.65,1.1c-1.12,0.53-2.05,1.64-3.4,1.54c-0.85-0.07-1.61,0.32-2.34,0.71c-0.51,0.19-1.03,0.09-1.44-0.03c-0.48,0.06-0.73-0.67-1.04-0.9c0.08-0.57-0.86,0.2-1.14,0.3c-0.61-0.08-1.29-0.02-1.85-0.2c-0.55-0.49-0.97-1.33-1.8-1.28c-0.61,0-0.57-0.88-1.17-1.05c-0.48-0.34-0.96-0.8-1.6-0.63c-1.02,0.08-1.98,0.6-3.02,0.46c-0.58,0.21-0.87-0.31-1.31-0.44c-0.47,0.1-0.29-0.95-1.02-0.7c-0.65-0.23-0.76,0.47-1.21,0.73c-0.54,0.57-0.84-0.03-1.16-0.48c-0.77-1.02-1.72-1.88-2.46-2.93c-0.94-1.29-2.21-2.36-3.75-2.84c-0.31-0.32-1.33-0.34-1-0.93c0.73,0.02,0.66-0.85-0.1-0.52c-0.54,0.15-1.1,0.35-1.63,0.54c-0.59,0.43-1.3,0.53-1.98,0.73c-0.51,0.1-0.82,0.85-1.33,0.58c-0.63-0.25-1.34,0.03-1.95,0.03c-0.63-0.3,0.45-0.66,0.6-0.92c-0.05-0.45-0.84,0.34-1.22-0.02c-0.36-0.46-0.97-0.32-1.29-0.08c-0.42-0.18-0.72-0.99-1.21-0.43c-0.48-0.03-0.96-0.02-1.41,0.08c-0.85,0.01-0.51-0.25-0.46-0.67c0.62-0.62-0.26-0.62-0.4-1.12c0.1-0.65-0.66-0.73-1.14-0.61c-0.51,0.16-1,0.08-1.48-0.14c-0.71-0.15-1.44-0.32-2.17-0.22c-0.12,0.62-1.27,0.12-1.21,0.71c-0.42,0.7-1.37,0.4-2.06,0.51c-1.36-0.02-2.64,0.58-4.01,0.47c-0.58,0.14-0.74,0.83-1.35,0.61c-1.27,0.1-2.54,0.25-3.81,0.33c-0.63,0.15-1.25,0.41-1.86,0.56c-0.76,0.06-1.52-0.08-2.26-0.14c-0.47,0.05-0.59,0.96-0.14,1.17c-0.41,0.21-0.08,0.67,0.58,0.55c0.35,0.12,1.37,0.09,1.12,0.57c-0.82,0.25-1.81-0.37-2.53,0.29c-0.72,0.26-0.24,0.74,0.14,1.09c-0.43,0.47-1.15,0.42-1.65,0.81c-0.99,0.06,0.12,0.38,0.28,0.56c0.13,0.43,1.03,0.04,1.23,0.56c0.42,0.24,1.29-0.04,1.43,0.54c-0.02,0.6-0.28,1.1-0.95,1.09c-0.61,0.19-1.31,0.34-1.91,0.13c-0.45-0.71-0.72,0.23-1.24,0.32c-0.43-0.03-0.96-0.23-1.43-0.31c-0.69,0.03-0.81-0.69-1.3-0.84c-0.51-0.13-1.03,0-1.55,0.04c-0.04,0.69-0.92,0.51-1.28,0.15c-0.49-0.19-1.07-0.09-1.6-0.18c-0.64,0.34-0.99,1.11-1.77,1.14c-0.42-0.27-1.08-0.2-1.44-0.6c-0.18-0.37-1.37-0.63-0.94,0.03c0.41,0.71-0.67,0.67-0.44-0.08c-0.45-0.46-1.18-0.63-1.79-0.88c0.1-0.61-0.89-0.46-1.31-0.47c-0.55,0.06-1.19,0.11-1.44-0.49c-0.69-0.33-1.36,0.56-2.04,0.36c-0.35-0.36-1-0.21-1.45-0.24c-0.78,0.48-1.56,1.03-2.49,1.11c-0.59,0.07-0.72,0.8-1.31,0.89c-0.42,0.22-1.15,0.3-0.78,0.92c0.32,0.42,0.03,1.07-0.52,1.01c-0.95,0.2-1.19-1.16-2.07-1.18c-0.6-0.06-0.41,0.99-1.03,0.96c-0.75-0.12-0.61,0.64-0.73,1.15c-0.12,0.41,1.03,0.67,0.15,0.99c-0.52,0.26-0.62,0.9-0.94,1.35c0.46,0.23,1.27,0.07,1.46,0.59c-0.19,0.34,0.54,1.34,0.59,0.61c0.46,0.3,1.04,0.08,1.51,0.26c0.35,0.45,1.01,0.47,1.22,1.04c0.25,0.42,0.89,0.86,0.94,1.25c-0.3,0.12-1.29-0.48-1.11,0.21c0.42,0.29,0.98,0.46,1.48,0.61c-0.17,0.52-1.06,0.39-1.07,0.83c-0.17,0.26-0.81-0.07-1.15,0.45c-0.47,0.06-0.98,0.35-1.43,0.06c-0.1,0.37-0.24,0.76-0.57,1.19c-0.29,0.46-0.59,0.87-1.09,1.1c-0.62,0.43,0.12,0.86,0.52,0.92c0.3,0.32,0.89,0.65,0.87,1.2c-0.21,0.93,0.03,0.14,0.34-0.21c0.18,0.3-0.62,0.93-0.11,1.29c-0.61,0.55,0.29,0.72,0.36,1.2c0.12,0.41,0.72,0.52,0.9,1.02c0.38,0.36,0.65,0.78,1.03,0.99c-0.23,0.7-1.09,0.64-1.43,1.23c-0.39,0.45-1.03-0.09-1.53-0.05c0.08-0.58-0.6-0.68-0.95-0.98c-0.36-0.35-0.7-0.12-1.02-0.51c-0.58,0.01-1.15-0.18-1.57-0.61c0.47-0.58-0.05-0.77-0.61-0.66c-0.34-0.24-0.82-0.52-1.21-0.43c-0.25,0.3-0.9-0.38-1.25,0.12c-0.26,0.25-1.02,0.4-1.15,0.01c0.33-0.34-0.7-0.42-1-0.52c-0.51-0.01-0.72-0.77-1.28-0.53c-0.48-0.09-0.98-0.29-1.48-0.09c-0.56,0.08-1.15-0.1-1.61-0.36c-0.7,0.13-1.23-0.53-1.94-0.41c-0.54-0.31-0.95,0.2-1.18,0.26c-1.12-0.72-2.1-1.7-3.37-2.15c-0.58,0.01-1.06-0.29-1.41-0.73c-0.49,0.04-1.05,0.24-1.25-0.46c-0.42-0.36-1.17-0.78-0.2-0.86c0.48,0.01,1.17,0.1,1.07-0.59c0.4-0.32,0.42-1.13,1.07-0.98c0.9,0.09,0.37-0.66-0.16-0.8c-0.54-0.13-1.1-0.72-0.2-0.64c0.95-0.02,1.73-0.62,2.64-0.85c0.39-0.44-0.53-0.58-0.92-0.4c-0.38-0.07-1.34,0.44-1.28-0.06c-0.12-0.63,0.26-0.91,0.84-0.91c0.46-0.22,0.56-0.59,1.17-0.46c0.49-0.11,0.98,0.31,1.43,0.01c0.11-0.48,0.45-0.91,0.11-1.38c-0.39-0.18-0.54-0.84,0.13-0.68c0.81-0.14-0.93-0.32-0.34-0.56c0.34-0.13,1.23-0.37,0.74-0.83c0.18-0.63-0.36-0.19-0.77-0.32c-0.36-0.4-0.84-0.28-1.28-0.57c-0.42,0.02-0.88-0.17-1.34-0.25c-0.54-0.46-0.76-0.03-1.26-0.03c-0.43-0.25-0.79-0.35-1.02-0.8c-0.3-0.48-0.85,0.03-1.3-0.04c-0.49,0.25-0.89,0.09-1.35,0.1c-0.42-0.3-1.06-0.52-1.51-0.1c-0.58-0.28-0.42-0.72-0.67-1.16c-0.12-0.54-0.44-0.58-0.78-0.82c-0.51,0.11-0.91-0.11-1.43-0.05c-0.27-0.26-0.8-1.1-0.11-1.07c0.7-0.14-0.44-0.47-0.52-0.84c-0.36-0.41-0.75-0.79-1.31-0.55c-0.72-0.32-1.45,0.46-2.13,0c-0.43-0.2-0.52,0.93-1.19,0.6C471.47,84.38,471.3,84.31,471.16,84.28 L471.16,84.28z M527.16,37.07c-1.29-0.34-2.61-0.58-3.94-0.41c-0.64-0.01-1.31,0.34-1.89-0.1c-0.86-0.24-0.61-0.46,0.12-0.66c0.92-0.43,1.93-0.56,2.94-0.49c0.84,0.09,0.39-0.66-0.2-0.69c0.6-0.63,1.54-0.32,2.3-0.62c-0.59-0.29-1.01-0.45-0.16-0.75c0.57-0.32,1.16-0.81,1.84-0.59c0.65,0.16,1.16-0.22,1.7-0.52c1.73-0.75,3.66-0.9,5.52-0.82c0.59,0,1.01-0.39,1.44-0.75c0.65,0.02,1.29-0.21,1.94,0.01c1.43,0.4,2.85-0.33,4.29-0.25c1.35-0.17,2.69-0.3,4.05-0.36c0.53-0.45,1.13-0.85,1.86-0.75c1.31-0.04,2.64-0.21,3.94-0.13c0.41,0.01,1.29,0.59,0.59,0.84c-1.25,0.73-2.75,0.79-4.14,1.07c-3.77,0.54-7.59,0.82-11.34,1.53c-1.03,0.16-2.14,0.14-3.11,0.51c-0.56,0.39,1.04,0.38-0.08,0.68c-1.06,0.59-2.28,0.28-3.43,0.3c-1.03,0.2,0.03,0.58-0.08,0.76c-0.44,0.26-0.99,0.48-1.48,0.55c-0.55-0.21-1.18-0.29-1.66,0.1c0.43,0.06,1.4,0.42,0.62,0.78C528.27,36.65,527.74,36.91,527.16,37.07L527.16,37.07z M517.49,38.44c0.74-0.17,1.38-0.62,2.07-0.88c0.93,0.05,1.84-0.09,2.74-0.27c1.25,0.01,2.52-0.28,3.73,0.16c0.23,0.25-0.49,0.91-0.88,0.91c-0.63-0.06-1.37,0.4-1.19,1.11c-0.02,0.55,0.27,1.11,0.58,1.53c0.77,0.82,1.79,1.28,2.86,1.58c0.9,0.26-0.01,0.57-0.51,0.39c-1.17-0.02-2.4-0.23-3.49,0.32c-0.6,0.32-0.94-0.31-1.45-0.42c-0.66-0.04-1.32,0.16-1.97-0.03c-0.21-0.65,0.8-0.44,1.17-0.68c0.61-0.36-0.53-0.42-0.83-0.57c-0.98-0.31-2.02-0.58-3.04-0.54c-0.69,0.33-1.71,0.39-2.2-0.27c-0.3-0.63,0.69-1.08,1.19-0.78c0.92,0.18,1.67-0.5,2.34-1.02c0.47-0.48-0.75-0.27-1.08-0.51 L517.49,38.44L517.49,38.44L517.49,38.44z M-1.13,56.09c0-3.05,0-6.1,0-9.15c1.81,0.33,4.38,0.58,5.86,1.21c1.71,0.35,3.41,0.8,5.08,1.3c0.57,0.12,0.95,0.43,1.26,0.88c0.31,0.38,0.79,0.93,0.39,1.4c0.57,0.46,1.13,0.95,1.89,1.03c0.37-0.11,0.5-0.65-0.18-0.82c-0.27-0.35-0.1-1.14,0.51-1c0.82-0.23,1.58,0.37,2.41,0.32c0.89,0.07,1.84-0.26,2.67,0.2c1.28,0.63,2.58,1.23,3.96,1.62c0.92,0.36-0.18,0.38-0.61,0.27c-0.58-0.2-0.96,0.24-1.31,0.63c-0.4,0.36-1.04-0.21-1.54-0.24c-0.42-0.01,0.68,0.47,0.86,0.67c-0.75-0.12-1.52-0.09-2.27-0.09c-0.6-0.19-1.19-0.42-1.83-0.46c0.37,0.54,1.27,0.45,1.35,1.21c0.3,0.71-0.54,0.55-0.99,0.6c-0.7-0.12-0.99,0.31-0.46,0.83c0.46,0.68-0.54,0.5-0.95,0.45c-0.55,0.11-1.21,0.03-1.71-0.17c-0.37-0.55-1.18-0.46-1.75-0.72c-0.45,0.04-0.81,0.27-1.34-0.12c-0.46-0.09-1.04-0.57-0.77-0.95c-0.52-0.74-1.58-0.79-2.41-0.72c-1.11,0.34-2.3,0.37-3.45,0.19c0.22-0.54-0.4-0.97-0.8-1.12c-0.57,0-1.15,0.18-1.39,0.76c-0.3,0.54-0.62,1.08-0.7,1.71C0.5,55.88-0.69,55.99-1.13,56.09z"/><path id="TR" d="M500.12,117.57c-0.58-0.27-0.78,0.76-1.32,0.39c0.04-0.48-0.48-1.02-0.9-0.58c-0.49,0.15-1.05-0.23-1.57-0.09c-0.38-0.5-1.08,0.39-1.28-0.05c-0.34-0.21-0.74,0.55-1.25,0.52c-0.84,0.23-1.71,0.25-2.56,0.05c-1.03,0.16-1.87,0.92-2.94,0.95c-1.04,0.33-2-0.52-3.03-0.46c-0.93,0.5-2.02,0.56-3.03,0.26c-0.67-0.21-0.38,0.73-0.14,1.05c-0.2,0.11-0.73,0.49-1,0.76c-0.43,0.15-1.05,0.01-1.21-0.53c-0.04-0.47,0.88-0.52,0.93-0.99c-0.24-0.76-0.74-0.21-1.19-0.06c-0.04,0.23-0.59,0.62-0.99,0.29c-0.56-0.34-1.33-0.66-1.86-0.09c-0.5,0.21-0.72,0.66-1,0.95c-0.39-0.35-0.98,0.23-1.47,0.22c-0.94,0.06-1.9-0.2-2.54-0.92c-0.72-0.57-1.68-0.82-2.59-0.9c-0.69-0.15-0.81,0.47-0.83,1.01c0.03,0.84-0.73,0.18-1.16,0.42c-0.63,0.22-1.54,0.26-1.76-0.52c-0.23-0.88-0.54-0.37-1.04-0.48c-0.42-0.4-1.03-0.39-1.42,0.06c-0.79,0.13,0.28-0.81-0.34-0.75c-0.43-0.11-1.18,0.2-1.41-0.19c0.41-0.16,0.77-0.69-0.08-0.78c-0.59-0.1,0.01-0.86-0.24-1.21c-0.51-0.03-0.88-0.66-1.39-0.39c-0.6-0.03-0.09-1.29,0.33-0.59c0.57,0.22,0.86-0.24,0.37-0.56c-0.94-0.32,0.86-0.29,0.31-0.72c-0.66-0.08-0.09-0.41-0.59-0.77c-0.66,0.01,1.12-0.68,0.3-0.7c-0.57,0.03-1.15,0.3-1.72,0.24c0.25-0.36,0-0.98,0.36-1.2c0.37-0.16,0.65-0.62,1.16-0.82c0.44,0.15,1.02-0.49,1.29,0.02c0.27,0.22,1.5,0.23,0.89-0.18c-0.09-0.31,0.9-0.03,0.49,0.18c0.82-0.09,1.64-0.12,2.45,0.05c0.52-0.43-1.26-0.25-0.25-0.64c0.69-0.12,1.42-0.06,2.09-0.27c-0.5-0.11-1.15,0.23-1.47-0.23c-0.77-0.1-0.25-1.05,0.3-0.75c0.68,0.09,1.43,0.19,2.08,0.03c0.72,0.25,1.57,0.47,2.28,0.13c0.13-0.43,0.59-0.57,1.09-0.77c1.51-0.82,3.26-1.39,4.99-1.03c0.71,0.12,1.46,0.23,2.07-0.24c0.15,0.37,0.5,0.89,1.03,0.91c0.49,0.18,1.18-0.46,1.36,0.25c0.2,0.53,0.8,0.74,1.29,0.44c0.74,0.01,1.2,0.84,1.98,0.66c1.06-0.02,2.13,0.48,3.18,0.04c1-0.36,2.01,0.25,3.03,0.08c0.79-0.17,1.58-0.46,2.29-0.83c0.4-0.44,1.06-0.09,1.58-0.13c0.71,0.3,1.37-0.8,2.01-0.17c0.66,0.54,1.45,1.02,1.95,1.69c-0.01,0.47-0.74,1.03-0.23,1.44c0.59,0.35,1.51-0.09,1.95,0.59c0.33,0.51-0.98,0.08-0.62,0.85c-0.66,0.08-0.74,0.63-0.39,1.12c-0.12,0.35-0.01,1.14,0.41,1.02c0.61,0.32-0.24,0.81-0.3,1.26c0.58,0.24,0.47,0.43,0.64,1.02C499.66,117.32,500.24,117.09,500.12,117.57L500.12,117.57z M462.62,106.8c0.38,0.28,0.15,0.97,0.8,1.08c0.54,0.35,1.26,0.29,1.79,0.64c-0.14,0.6-0.73,0.74-1.25,0.52c-0.54-0.27-1.06-0.13-1.57,0.02c-0.54-0.11-1.08,0.06-1.22,0.65c-0.65,0.24-1.34,0.45-1.83,0.93c-0.54,0.42-0.66,0.62-0.55-0.12c0.41-0.13,1.17-0.63,0.32-0.63c-0.71,0.11-0.8-0.37-0.33-0.81c0.19-0.49,0.84-0.79,0.97-1.19c-0.55-0.35-0.72-0.42-0.04-0.84c0.47-0.43,1.09-0.41,1.67-0.26C461.79,106.8,462.21,106.8,462.62,106.8L462.62,106.8z"/><path id="CY" d="M475.72,122.22c-0.12-0.18-0.42-0.28-0.36-0.51c0.05-0.19,0.22-0.19,0.37-0.22c0.08-0.22,0.35-0.26,0.53-0.36c0.19-0.1,0.3-0.29,0.52-0.33c0.12-0.02,0.13-0.22-0.02-0.09c-0.25,0.07-0.45,0.2-0.7,0.28c-0.17,0.01-0.31,0.21-0.51,0.24c-0.18,0.08-0.38,0.06-0.56,0.12c-0.22,0.12-0.48,0.13-0.72,0.14c-0.22-0.01-0.43-0.04-0.64-0.07c-0.15,0.11-0.36-0.14-0.44-0.04c0.09,0.18,0.03,0.52-0.22,0.53c-0.18-0.07-0.38-0.16-0.57-0.06c-0.14,0.06-0.24,0.38-0.47,0.27c-0.07-0.09-0.25-0.17-0.17,0.02c0.14,0.13,0.01,0.37,0.22,0.43c0.01,0.28,0.3,0.29,0.5,0.38c0.21,0.17,0.46-0.07,0.67,0.06c0.1,0.08,0.05,0.24,0.22,0.17c0.15,0.06-0.1-0.19,0.09-0.22c0.14-0.11,0.33-0.09,0.5-0.07c0.17-0.05,0.36-0.12,0.53-0.18c0.14-0.07,0.35-0.08,0.31-0.31c0.13-0.29,0.46,0.07,0.62-0.11C475.51,122.17,475.88,122.45,475.72,122.22L475.72,122.22z"/><path id="GE" d="M489.68,103.69c0.09-0.69,0.77-0.35,1.22-0.35c0.66-0.06,1.17,0.57,1.85,0.4c0.68,0.59,1.61,0.29,2.41,0.28c0.4,0.34,1.04-0.09,1.32,0.43c0.48,0.41,1.18,0.3,1.7,0.64c-0.49,0.45,0.53,0.41,0.81,0.31c0.28-0.41,0.93-0.46,1.29-0.12c0.29-0.49,0.84,0.02,1.21,0.15c0.26,0.26,1.3-0.08,0.84,0.55c-0.18,0.45,0.61,0.71,0.99,0.8c0.65-0.12,0.86,0.36,0.22,0.64c0.04,0.52,0.62,0.65,0.99,0.83c0.26,0.67-0.64,0.68-0.98,0.34c-0.51,0.09-1.01-0.11-1.37-0.46c-0.46-0.27-1.01-0.12-1.39,0.21c-0.63,0.2-1.3,0.17-1.94,0.21c-0.55,0.13-1.15,0.16-1.68,0.24c-0.58-0.34-1.02-1.05-1.74-1.06c-0.52,0.29-1.06,0.54-1.66,0.35c-0.49-0.08-1.37,0.13-0.74-0.52c0.35-0.71-0.09-1.53-0.3-2.23c-0.34-0.78-1.23-1.05-2.02-1.11C490.37,104.08,489.96,103.95,489.68,103.69L489.68,103.69z"/><path id="SY" d="M479.92,127.38c0.13-0.38-0.83-0.83-0.13-1.03c0.51-0.35,0.59-0.55,0.52-0.9c0.55-0.36,0.75-0.04,0.86-0.62c0.48-0.23,0.6-0.56,0.27-0.94c-0.59-0.11,0.04-0.68-0.75-0.44c-0.64,0.2-0.77-0.66-0.57-1.1c0.42-0.53-0.64-0.83-0.27-1.21c0.13-0.29,0.23-0.94,0.72-0.77c0.61,0.34,0.75-0.45,1.21-0.58c0.77,0.02-0.22-0.68,0.05-1.12c0.25-0.34,0.98,0.14,1.43,0.07c0.77,0.12,1.45-0.26,2.16-0.45c0.97,0.09,1.9,0.79,2.89,0.47c1.06-0.03,1.89-0.79,2.91-0.94c1.13,0.26,2.4,0.19,3.39-0.43c0.44-0.67,0.74,0.53,0.12,0.65c-0.5,0.46-0.97,1.03-1.71,1.03c-0.64,0.1-0.91,0.85-0.53,1.37c0.04,1.07-0.4,2.11-0.57,3.17c-3.16,1.67-6.4,3.21-9.52,4.98c-0.77-0.04-1.4-0.66-2.1-0.96C480.2,127.53,480.04,127.45,479.92,127.38z"/><path id="JO" d="M478.52,135.17c0.01-0.53-0.25-0.75,0.1-1.34c0.22-0.56-0.07-1.2,0.36-1.71c0.3-0.6,0.56-1.25,0.58-1.91c0.27-0.71,0.1-1.52,0.29-2.25c-0.31-0.84,0.46-0.46,0.85-0.17c0.58,0.24,1.1,0.78,1.74,0.76c1.39-0.82,2.83-1.54,4.26-2.27c0.44,0.77,0.82,1.62,1.26,2.37c-0.49,0.77-1.54,0.81-2.36,1.05c-0.85,0.22-1.72,0.36-2.54,0.68c0.63,0.72,1.27,1.44,1.84,2.21c-0.6,0.57-1.18,1.26-2.06,1.33c-0.63-0.01-0.87,0.51-1.25,0.89c-0.43,0.29-0.78,0.87-1.36,0.59C479.65,135.34,479.08,135.25,478.52,135.17L478.52,135.17z"/><path id="LB" d="M480.25,123.44c0.34,0.08,1.31-0.24,0.82,0.29c0.43,0.02,0.83,0.65,0.42,0.87c-0.68,0.2-0.13,0.83-0.78,0.66c-0.88,0.14,0.05,0.63-0.68,0.88c-0.27,0.35-0.81,0.34-0.86,0.78c-0.37-0.05-1.16,0.13-0.58-0.39c0.09-0.5,0.62-0.88,0.55-1.42c0.61-0.02,0.18-0.95,0.71-1.15C479.98,123.76,480.44,123.78,480.25,123.44z"/><path id="IL" d="M478.21,134.71c-0.66-1.29-1.21-2.64-1.75-3.98c0.96-0.8,1.31-2.06,1.55-3.25c0.39-0.03,0.22-1.02,0.86-0.55c0.49,0.2,0.47-0.94,0.79-0.08c0.5,0.29-0.03,0.66,0.18,1.11c-0.18,0.79-0.03,1.66-0.32,2.42c0.03,0.9-0.65,1.64-0.81,2.48C478.77,133.5,478.61,134.22,478.21,134.71L478.21,134.71z"/><path id="KW" d="M507.05,133.66c0.25,0.68,0.19,0.86-0.4,1.11c-0.62,0.51,0.45,0.42,0.75,0.26c0.39,0.25,0.42,0.98,0.66,1.42c0.5,0.67-0.53,0.42-0.93,0.45c-0.61,0.16-0.9-0.32-1.11-0.82c-0.62-0.23-1.42-0.24-2.1-0.38c0.53-0.55,1.04-1.15,1.33-1.87C505.84,133.64,506.45,133.71,507.05,133.66L507.05,133.66z"/><path id="SA" d="M495.75,163.82c-0.16-1.27-1.06-2.29-1.89-3.2c-0.86-0.51-1.28-1.43-1.64-2.32c-0.4-0.84-0.68-1.81-1.36-2.45c-0.79-0.62-1.9-0.83-2.44-1.73c-0.37-0.6-0.95-1.12-0.86-1.88c-0.17-0.96,0.12-2-0.45-2.86c-0.67-1.16-1.22-2.56-2.57-3.09c-0.61-0.02-0.93-0.57-1.29-0.99c0.28-0.65,0.03-1.29-0.36-1.82c-0.89-1.45-2.19-2.61-2.99-4.14c-0.34-0.63-0.82-1.24-1.38-1.64c-0.85,0.12-0.63-0.33-0.35-0.88c0.13-0.54,0.27-1.08,0.35-1.64c0.76,0.05,1.57,0.31,2.3,0.26c0.51-0.4,1.03-0.77,1.37-1.34c0.8-0.21,1.67-0.32,2.2-1.02c0.73-0.36,0.32-0.8-0.1-1.25c-0.4-0.49-0.83-0.96-1.24-1.44c1.41-0.54,2.96-0.65,4.35-1.21c0.37-0.46,0.73-0.6,1.24-0.22c1.05,0.36,2.09,0.76,3.09,1.26c1.35,0.61,2.77,1.12,4.05,1.85c0.26,0.48,0.58,0.93,1.21,0.71c0.77-0.15,0.28,0.77,0.39,1.19c-0.14,0.64,0.48,0.77,0.95,0.9c0.8,0.33,1.55,0.85,2.45,0.73c1.67,0.05,3.35,0.04,4.99,0.39c0.55,0.01,0.43,1.09,1.11,0.91c0.44,0.14,1.11-0.15,1.4,0.11c0.19,0.66,0.76,1.11,0.82,1.8c0.41,0.18,1.05,0.01,0.84,0.57c0.31,0.36,0.65,0.73,1.15,0.77c0.42-0.1,1.23,0.66,0.63,0.83c-0.39,0.35,0.45,0.75-0.04,1.23c-0.18,0.23,0.25,1.22,0.49,1.01c0.59,0.21,0.31,0.9,0.71,1.28c0.31,0.41,0.07,1.09,0.72,1.25c0.64-0.08,0.79,0.52,1.01,0.99c0.49,1.12,1.16,2.17,1.43,3.37c2.54,0.26,5.06,0.59,7.59,0.93c0.42-0.49,0.9-0.67,1.12,0.07c0.38,0.5,0.22,1.18,0.35,1.77c-3.24,1.77-6.42,3.71-9.81,5.17c-2.94,0.93-5.86,1.92-8.77,2.95c-0.5,0.22-0.75,0.77-1.15,1.15c-1.25,1.43-2.4,2.95-3.55,4.46c-0.83-1.72-1.66-3.44-2.51-5.15c-0.67-0.01-1.32,0.09-1.96-0.17c-0.7-0.3-0.92,0.64-0.8,1.15c0.11,0.59-0.24,1.02-0.72,1.3C495.85,163.82,495.76,163.78,495.75,163.82L495.75,163.82z"/><path id="AE" d="M514.18,145.87c0.49-0.2,0.49,0.69,1.05,0.45c-0.24,0.57,0.54,0.45,0.96,0.53c0.57-0.07,0.76-0.43,1.37-0.26c0.55,0.2,0.97-0.09,1.49,0.05c0.52,0.13,1.04,0.16,1.56,0c-0.2-0.55,0.75,0.25,0.89-0.45c0.45-0.26,0.6-0.78,0.92-1.19c0.51-0.42,0.95-0.92,1.39-1.41c0.44,0.19,0.81-0.56,1.21-0.76c0.42-0.75,0.57-0.21,0.19,0.29c-0.31,0.68,0.92,0.04,0.71,0.8c0.15,0.62-0.1,1.02-0.75,0.76c-0.45,0.13-0.14,1-0.19,1.43c0.14,0.7-0.94,0.93-0.72,1.64c0.04,0.92-0.06,1.86,0.09,2.76c-0.46,0.3-0.84,0.7-1.44,0.44c-2.29-0.31-4.58-0.6-6.88-0.84C515.64,148.62,514.79,147.29,514.18,145.87L514.18,145.87z"/><path id="QA" d="M514.55,145.84c-0.76,0.24-0.72-0.38-0.81-0.92c-0.15-0.53-0.33-1.34,0.2-1.69c-0.15-0.43,0.21-1.26,0.76-0.98c0.11,0.42,0.73,0.69,0.42,1.28c-0.15,0.54,0.34,1.09-0.08,1.56C514.87,145.33,514.71,145.59,514.55,145.84L514.55,145.84z"/><path id="YE" d="M518.4,163.08c-0.92,0.32-1.92,1.02-1.96,2.09c-0.49,0.57-1.33,0.77-2.01,1.08c-1.44,0.43-2.93,0.76-4.3,1.37c-0.54,0.42-0.83,1.22-1.63,1.23c-0.66-0.11-1.34-0.02-1.89,0.39c-1.08,0.7-2.33,1.21-3.64,1.06c-0.76-0.21-1.22,0.47-1.74,0.88c-0.4,0.35-0.96,0.46-1.44,0.46c-0.48,0.52-1.35,0.52-1.94,0.2c-0.57-0.34-1.31-0.96-0.92-1.7c0.23-0.76-0.46-1.31-0.54-2.03c-0.22-0.98-0.71-1.94-0.75-2.93c0.42-0.45-0.02-1.1,0.25-1.48c0.49-0.26,0.75-0.73,0.65-1.28c-0.13-0.52,0.13-1.44,0.82-1.11c0.63,0.26,1.28,0.15,1.94,0.16c0.85,1.71,1.69,3.43,2.51,5.15c1.39-1.82,2.77-3.65,4.33-5.34c0.38-0.47,1.15-0.5,1.7-0.76c2.61-0.89,5.24-1.77,7.85-2.63c0.07,1.53,1.31,2.6,1.98,3.89C517.61,162.28,518.17,162.68,518.4,163.08L518.4,163.08z"/><path id="OM" d="M525.37,142.38c0.4-0.76,0.57-0.51,0.55,0.23c-0.16,0.23-0.62,1.29-0.76,0.65C525.15,142.95,525.72,142.61,525.37,142.38z M525.92,144.71c0.15,0.89,0.95,1.54,1.65,2.08c0.92,0.47,1.83,1.27,2.93,1.05c0.67,0.17,0.99,0.91,1.46,1.36c0.37,0.57,0.93,0.94,1.57,1.16c0.02,0.5-0.48,0.9-0.7,1.34c-0.53,0.8-1.49,1.23-1.8,2.17c-0.23,0.4-0.38,1.18-1.01,0.92c-0.55-0.31-1.02,0.17-0.99,0.73c-0.03,0.75-0.13,1.53,0.09,2.26c-0.74,0.31-1.66,0.03-2.29,0.65c-0.63,0.41-0.35,1.45-1.17,1.67c-0.66,0.35-1.55-0.22-2.04,0.48c-0.51,0.45,0.01,1.4-0.76,1.63c-0.6,0.5-1.32-0.22-1.99,0.04c-0.85,0.17-1.64,0.56-2.46,0.82c-0.3-0.43-0.76-0.83-0.76-1.37c-0.68-1.24-1.87-2.31-1.94-3.81c3.22-1.49,6.28-3.29,9.39-5.01c-0.1-0.74-0.03-1.54-0.58-2.13c-0.43-0.64-0.13-1.48-0.24-2.2c0.05-0.57-0.22-1.26,0.35-1.64c0.73-0.57,0.09-1.53,0.41-2.26C525.33,144.76,525.62,144.75,525.92,144.71L525.92,144.71z"/><path id="IQ" d="M486.7,126.29c1.75-0.9,3.5-1.81,5.26-2.71c0.16-1.06,0.6-2.09,0.57-3.17c-0.35-0.49-0.14-1.19,0.45-1.35c0.96,0,1.51-0.84,2.18-1.41c-0.13-0.37,0.79-0.64,1.11-0.4c0.52-0.03,1.05,0.16,1.59,0.18c0.38-0.5,1.04-0.01,0.95,0.51c0.51,0.42,0.73-0.61,1.28-0.38c0.49,0.77,0.89,1.72,1.33,2.57c0.33,0.35,1.02,0.32,1.51,0.39c0.88-0.05-0.53,0.62-0.04,1.04c0.57,0.54,0.08,0.89-0.41,1.24c-0.69,0.46-0.67,1.42-0.77,2.17c0.37,0.52,1.02,0.87,1.33,1.39c-0.15,0.7,0.03,0.98,0.72,0.79c0.68,0.17,1.13,0.9,1.82,1.13c0.52,0.44,1.41,0.82,1.2,1.65c-0.18,0.49-0.3,1.01-0.22,1.53c0.57-0.15,1.03,0.11,0.93,0.74c-0.2,0.55,0.58,0.76,0.92,1.08c0.09,0.35-0.87,0.19-1.19,0.23c-0.51,0.37-1.28,0.03-1.88,0.31c-0.33,0.34-0.47,0.93-0.86,1.28c-0.31,0.52-0.76,0.73-1.35,0.59c-1.11-0.06-2.24-0.03-3.33-0.14c-0.75-0.33-1.49-0.7-2.29-0.94c-0.26-0.47-0.14-1.07-0.08-1.55c-0.09-0.68-1.07,0.13-1.31-0.45c-0.39-0.9-1.49-1-2.26-1.45c-1.4-0.59-2.77-1.25-4.17-1.82c-0.63-0.18-1.24-0.42-1.82-0.72C487.54,127.82,487.09,127.06,486.7,126.29L486.7,126.29z"/><path id="IR" d="M500.12,117.57c0.05-0.49-0.88-0.42-0.8-1.06c0.43-0.54-0.99-0.35-0.28-1.01c0.48-0.41,0.31-0.94-0.18-0.92c-0.39-0.46,0.05-0.97-0.33-1.45c-0.26-0.61,0.89-0.4,0.6-1.06c0.5-0.13,0.82-0.5,1.12,0.09c0.18,0.57,0.77,0.63,1.1,1.02c0.41,0.64,1.27,0.52,1.9,0.55c0.52,0.36,0.84-0.33,1.23-0.55c0.62,0.01,0.78-0.65,1.33-0.8c0.48-0.1,0.96-0.74,1.42-0.37c0.18,0.3,1.33,0.53,0.63,0.79c-1.07,0.07,0.32,0.39-0.17,0.72c-0.83,0.23-0.16,0.66,0.22,0.9c0.23,0.38,1,0.19,1.18,0.62c0.07,0.59-0.43,1.27,0.1,1.72c0.78,0.49,1.73,0.4,2.59,0.6c0.36,0.87,1.22,1.31,2.1,1.45c1.03,0.4,2.14,0.35,3.2,0.07c1.03-0.23,2.11-0.21,3.13-0.35c0.68-0.19,0.48-0.93,0.39-1.44c0.87,0.18,1.6-0.42,2.11-1.06c0.71-0.71,1.73-0.43,2.61-0.5c0.44-0.39,0.98-0.57,1.56-0.4c0.62-0.06,1.03,0.22,1.45,0.59c0.76,0.27,1.49,0.65,2.33,0.61c1.46,0.08,2.45,1.3,3.59,2.06c0.48,0.58,1.28,0.3,1.93,0.28c0.42,0.47,0.1,1.22,0.27,1.8c0.26,0.54,0.01,0.9-0.14,1.47c-0.27,0.7-0.4,1.54-0.93,2.08c-0.61,0.15-0.63,0.8-0.32,1.24c0.65,0.05,1.01,0.44,0.41,0.93c-0.58,0.48-0.14,1.16-0.07,1.76c0.16,0.71,0.04,1.57,0.48,2.17c0.6,0.21,1.37,0.17,1.85,0.58c0.34,0.52,0.02,1.04-0.4,1.39c-0.6,0.5-1.09,1.1-1.58,1.71c0.71,0.84,1.21,1.85,1.94,2.66c0.65,0.52,1.61,0.5,2.21,1.04c0.34,0.63,0.03,1.42,0.43,2.03c0.65-0.14,0.99,0.35,0.82,0.96c0.14,0.69-0.63,0.75-1.12,0.73c-0.77,0.11-1.61,0.47-2.07,1.13c-0.33,0.66-0.39,1.39-0.54,2.1c-0.57,0.02-1.22,0.03-1.72-0.24c-0.97-0.68-2.22-0.26-3.32-0.43c-0.61,0.31-0.91-0.35-1.42-0.44c-0.57-0.07-1.23,0.07-1.76-0.07c-0.35-0.33-0.96-0.25-1.38-0.49c0.03-0.57-0.42-0.8-0.59-1.35c-0.26-0.36,0.01-1.09-0.53-1.27c-0.26-0.25-0.85-0.35-1.33-0.31c-0.55-0.12-0.81,0.36-1.36,0.29c-0.36,0.29-0.83,0.45-1.21,0.81c-0.31,0.5-0.88,0.62-1.32,0.21c-0.51-0.36-1.09-0.48-1.7-0.5c-0.48-0.45-1.17-0.46-1.71-0.74c-0.4-0.38-0.73-0.87-1.17-1.18c-0.51-0.26-1.04-0.45-1.61-0.48c-0.88-0.55-1.14-1.63-1.7-2.45c-0.48-0.38-0.1-1.05-0.63-1.36c-0.44-0.29-0.66-0.91-1.05-1.15c-0.5,0.06-1.09,0.27-1.51-0.06c-0.69,0.02-0.09-1.23-0.86-0.78c-0.46,0.21-0.36,1.15-1.05,0.98c-0.15-0.43-1.06-0.57-1-1.06c0.09-0.5-0.11-1.13-0.73-0.91c-0.47-0.07-0.13-0.96-0.04-1.33c0.27-0.59-0.09-1.15-0.61-1.44c-0.67-0.52-1.43-0.88-2.07-1.44c-0.39-0.33-1.24,0.34-1.02-0.49c0.2-0.64-0.56-0.89-0.89-1.31c-0.53-0.3-0.45-0.84-0.32-1.34c0.07-0.61,0.33-1.14,0.87-1.46c0.74-0.32,0.35-0.78,0.12-1.31c0.25-0.56,0.73-0.91-0.23-0.83c-0.46-0.09-1.15-0.04-1.27-0.6C500.89,119.13,500.51,118.35,500.12,117.57L500.12,117.57z"/><path id="AM" d="M504.14,113.46c-0.35,0.6-0.93,0.33-1.05-0.26c0.06-0.49-0.64-0.59-0.5-1.01c-0.47-0.02-1.12,0.28-1.4-0.26c-0.31-0.43-0.88,0.03-1.35-0.18c-0.33-0.48-0.84-0.52-1.38-0.53c-0.61,0.14-1.13-0.47-0.68-0.98c0.49-0.49,0.1-0.93-0.36-1.23c-0.49-0.41,0.7-0.22,0.97-0.37c0.53-0.15,1.06-0.07,1.59-0.14c0.55-0.09,0.9-0.24,1.28,0.13c-0.38,0.51,0.83,0.15,0.86,0.7c-0.46,0.12-0.51,0.78,0.1,1c0.35,0.22,1.11,0.5,0.46,0.83c-0.86-0.17,0.03,0.46,0.31,0.61c0.19,0.46,1.21,0.18,1.11,0.57c-0.46,0.27,0.54,0.66-0.1,0.75C504.22,113.1,504.23,113.34,504.14,113.46L504.14,113.46z"/><path id="KZ" d="M578.94,106.22c-0.35-0.51-0.98-0.5-1.54-0.47c-0.41-0.31-0.53-0.95-1.14-0.71c-0.58-0.15-1.16-0.31-1.76-0.17c-0.89,0-1.8,0-2.64-0.34c-0.81,0.25-1.68,0.06-2.48,0.22c-0.52,0.45-1.21-0.03-1.81-0.07c-0.95-0.27-2.06-0.96-2.98-0.3c-0.51,0.23-0.42,1.11-0.56,1.35c-0.88-0.2-1.77-0.38-2.64-0.66c-0.76-0.24-1.52-0.06-2.28,0.07c-0.4,0.31-0.63,0.91-0.84,1.1c-0.38,0.45-0.8,0.17-1.23,0.5c-0.39,0.37-0.79,0.73-1.36,0.76c-0.57,0.25-1.36,0.34-1.51,1.05c-0.41,0.17-1.2,0.51-0.79,1.04c-0.25,0.42-1.12,0.18-1.21-0.24c0.21-0.61-0.58-0.94-1.07-0.77c-0.64,0.05-1.29,0.16-1.93,0.04c-0.21-0.62-0.41-1.25-0.57-1.89c-0.55,0-1.26,0.18-1.03-0.62c0.18-0.48,0.23-0.99,0.21-1.52c-0.4,0.23-0.9,0.28-1.1-0.42c-0.2-0.55-0.93-0.42-1.2-0.93c-0.33-0.64-0.94-0.04-1.43,0.06c-1.37-0.04-2.75-0.32-4.11,0c-0.54-0.02-1.21,0.41-1.6-0.11c-0.9-0.75-1.75-1.55-2.85-2c-1.51-0.79-3.03-1.58-4.54-2.37c-1.89,0.43-3.77,0.86-5.66,1.29c-0.02,2.72-0.04,5.45-0.06,8.17c-0.5,0.06-1.1,0.3-1.49-0.19c-0.43-0.34-0.62-0.88-0.99-1.24c-0.74-0.4-1.47-1.1-2.37-0.84c-1.11,0.11-2.21,0.5-3.01,1.31c0.18-0.5-0.24-0.87,0.29-1.24c0.12-0.45,0.57-0.99-0.16-1.11c-0.48-0.02-0.92-0.02-1.34-0.15c-0.28-0.43-0.66-0.82-1.21-0.65c-0.14-0.22,0.05-0.91-0.51-1.04c-0.34-0.35-0.43-0.95-0.71-1.27c-0.4-0.23-1.3,0.09-1.3-0.52c-0.02-0.65,0.88-0.4,1.3-0.38c0.5,0.15,0.96,0.4,1.46,0.14c-0.21-0.32-1.03-0.34-0.99-0.79c0.38-0.31,0.6-0.55,0.87-1.03c0.51,0,0.89-0.15,1.41-0.02c0.85-0.12,1.68,0.09,2.53,0.12c-0.28-0.33-1.22-0.22-0.94-0.76c0.37-0.3,0.76-0.63,0.76-1.16c0.17-0.44-0.35-0.85,0.12-1.14c-0.15-0.66-0.98-0.45-1.49-0.61c-0.49,0.34-1.31,0.46-1.76-0.07c-0.72-0.22-1.52-0.26-2.16,0.2c-0.71-0.04-1.18,0.66-1.88,0.78c-0.49,0.15-1.06-0.08-1.39,0.42c-0.48,0.09-1.03-0.32-1.51-0.48c-0.37-0.64,0.64-0.34,0.97-0.23c0.25-0.32-0.58-0.8-0.77-1.18c-0.22-0.58-0.8-0.67-1.2-1.06c-0.42-0.39-1.07,0.01-1.54-0.33c-0.06,0.57-0.85-0.06-0.63-0.51c-0.08-0.64-0.89-0.46-1.34-0.68c-0.26-0.2,0.37-0.93,0.56-1.25c0.63-0.18,0.7-0.71,0.03-0.88c0.2-0.44-0.1-1.37,0.56-1.36c0.63,0.11,0.71-0.65,1.01-0.95c0.89-0.25,1.2,0.93,1.92,1.14c0.47,0.08,1.13-0.09,1.04-0.69c-0.27-0.46-0.37-1.04,0.32-1.1c0.5-0.18,0.92-0.43,1.23-0.87c0.57-0.33,1.29-0.23,1.84-0.64c0.57-0.3,1.08-0.87,1.78-0.61c0.57-0.11,0.86,0.49,1.44,0.14c0.49-0.27,1.26-0.65,1.58,0.04c0.36,0.37,1.05,0.14,1.54,0.13c0.73-0.03,0.88,0.34,1.3,0.63c0.49,0.22,1.15,0.35,1.46,0.79c-0.23,0.76,0.88,0.69,0.43,0.03c-0.41-0.64,0.77-0.4,0.94-0.02c0.36,0.39,1.01,0.35,1.44,0.6c0.81-0.01,1.15-0.93,1.85-1.14c0.69,0.1,1.44-0.06,1.99,0.48c0.72,0.28,0.66-0.64,1.33-0.5c0.45-0.01,1.19-0.19,1.4,0.29c0.2,0.54,0.94,0.52,1.43,0.68c0.53,0.13,0.98,0.36,1.44-0.09c0.29-0.79,0.7,0.24,1.22,0.04c0.72,0.09,1.4-0.26,2.09-0.39c0.2-0.42,0.51-1.27-0.23-1.27c-0.59,0.05-0.98-0.29-1.44-0.47c-0.68,0.1-0.61-0.45-1.16-0.49c-0.77-0.31,0.43-0.33,0.71-0.62c0.35-0.17,1.44-0.3,0.86-0.79c-0.64-0.4-0.04-0.8,0.4-1.01c0.72-0.36,1.49,0.13,2.23-0.09c0.28-0.49-0.77-0.45-1.11-0.58c-0.64,0.12-1.04-0.31-0.58-0.54c-0.44-0.19-0.35-1.05,0.06-1.16c0.78,0,1.57,0.19,2.36,0.11c0.9-0.27,1.82-0.69,2.8-0.62c1.05-0.13,2.13-0.25,3.18-0.26c0.38-0.11,0.78-0.76,1.36-0.64c1.38,0.03,2.69-0.57,4.09-0.48c0.56-0.06,1.41,0.12,1.63-0.56c0.03-0.47,1.1-0.04,1.21-0.64c1.03-0.14,2.05,0.22,3.03,0.46c0.49-0.05,1.13-0.28,1.54,0c0.37,0.35,0.15,1,0.87,1.04c-0.11,0.58-0.46,0.92-0.36,1.17c0.46,0.18,0.94-0.03,1.41,0.01c0.47,0.09,0.95-0.44,1.31,0.02c0.34,0.69,0.73,0.14,1.24,0.18c0.43,0.18,0.94,0.64,1.4,0.21c0.89-0.11-0.12,0.42-0.34,0.67c-0.43,0.57,0.63,0.31,0.95,0.27c0.52-0.22,1.13,0.27,1.54,0.06c0.56-0.59,1.38-0.7,2.12-0.91c0.69-0.46,1.5-0.64,2.25-0.92c0.65-0.37,1.1,0.42,0.29,0.47c-0.56,0.49,0.5,0.67,0.83,0.93c1.2,0.4,2.29,1.09,3.14,2.04c0.93,1.11,1.79,2.29,2.81,3.33c0.35,0.35,0.63,1.02,1.02,1.18c0.49-0.18,0.88-0.54,1.13-0.99c0.47-0.01,1.25-0.13,1.29,0.51c0.15,0.23,0.78,0.38,1.1,0.63c1.08,0.08,2.14-0.09,3.17-0.44c0.54-0.02,1.1-0.14,1.52,0.3c0.52,0.35,1.07,0.7,1.28,1.32c0.57,0.05,1.13,0.13,1.47,0.63c0.39,0.35,0.66,0.92,1.26,0.81c0.6-0.03,1.32,0.34,1.77-0.22c0.78-0.49,0.48,0.09,1.03,0.42c-0.06,0.64,1.21,0.41,0.78,0.64c-0.5,0.01-1.32,0.13-1.21,0.8c0.1,0.78-0.9,0.67-1.42,0.73c-0.77-0.06-1.36,0.8-1.09,1.51c0.11,0.48,0.42,1.07-0.13,1.41c-0.71,0.6-1.76,0.31-2.62,0.31c-0.86-0.15-1.72-0.35-2.57-0.55c-0.7,0.73-0.91,1.77-1.45,2.61c-0.33,0.5-0.45,1.04,0.2,1.32c0.55,0.48-0.39,0.99-0.84,0.76c-0.68-0.05-1.3-0.52-1.98-0.26c-0.99,0.28-2.08,0.17-3.01,0.6c-0.55,0.48-0.04,0.79,0.49,0.69c0.62,0.09,0.2,0.97,0.34,1.42c0.18,0.56,0.81,1.03,0.7,1.64c-0.37,0.61-1.46,0.89-1.19,1.78C578.87,105.76,578.9,106,578.94,106.22 L578.94,106.22z"/><path id="UZ" d="M551.2,118c-0.23-0.55-0.75-0.71-1.3-0.64c-0.35-0.16-1.35,0.26-1.22-0.31c0.1-0.51-0.09-0.99,0.21-1.44c-0.73-0.03-1.31-0.76-2.07-0.5c-0.94-0.68-2.09-0.97-3.02-1.67c-0.51,0.13-1.04-0.29-1.44-0.57c-0.52-0.64-1.44-0.74-2.04-1.31c-0.46-0.29-0.89-0.53-0.91-1.09c-0.24-0.41-0.78-0.7-0.83-1.24c-0.01-0.65-0.61-0.83-1.14-0.93c-0.54,0.46-1.26-0.1-1.89,0.17c-0.35,0.02-1.33-0.24-1.15-0.65c-0.02-0.38,0.32-0.84-0.25-1.04c0.16-0.75-0.75-0.74-1.26-0.81c-0.42-0.26-0.86-0.43-1.35-0.7c-0.35-0.26-1.14-0.08-1.26,0.13c0.68,0.74,0.1,0.37-0.49,0.28c-0.27,0.4-0.63,0.74-1.18,0.6c-0.42,0.12-1.01,0.39-1.12,0.84c-0.29,0.46,0.72,1.14-0.12,1.18c-0.72,0.03-1.43,0.03-2.15-0.04c0.02-2.72,0.04-5.45,0.06-8.17c1.89-0.43,3.77-0.86,5.66-1.29c1.95,1.04,3.95,2,5.86,3.1c0.63,0.52,1.25,1.04,1.88,1.55c1.3-0.15,2.6-0.47,3.91-0.26c0.74,0.04,1.51,0.23,2.19-0.18c0.55-0.4,0.75,0.56,1.24,0.65c0.61,0.08,0.74,0.76,1.09,1.16c0.69-0.54,0.74-0.1,0.63,0.57c-0.09,0.36-0.43,1.19,0.02,1.31c0.65-0.15,1.02,0.08,1.04,0.77c0.23,0.43,0.12,1.28,0.8,1.17c0.72,0.06,1.48-0.21,2.18-0.07c0.68,0.17,0.12,0.91,0.72,1.1c0.54,0.3,1.05-0.06,0.79-0.58c0.33-0.44,1-0.43,1.1-1.04c0.62-0.47,1.46-0.53,2.11-0.87c0.37-0.25,0.75-0.93,1.25-0.57c0.27-0.38,0.87-0.63,1.28-0.4c0.5,0.31-0.81,0.31-0.82,0.7c-0.55,0.04-0.91,0.54-1.4,0.76c0.14,0.29,0.9,0.33,1.16,0.3c0.2,0.53,0.75,0.73,1.28,0.63c0.36-0.14,0.63-0.35,0.79-0.79c0.53,0.15,0.5,0.98,1.15,0.71c0.06,0.53,0.82,0.34,1.18,0.69c0.46,0.01,1.43,0.14,0.49,0.41c-0.22,0.52-1.14,0.06-1.11,0.39c-0.18,0.21-0.85,0.27-1.14,0.6c-0.42,0.34-0.78,0.01-1.26-0.11c-0.55,0.08-0.89,0.1-1.44,0.14c-0.4-0.19-1-0.54-0.25-0.82c0.67-0.31,0.12-0.71-0.26-0.99c-0.33,0.28-0.79,0.7-1.33,0.73c-0.37,0.5-0.81-0.55-1.12-0.11c-0.42,0.34,0.15,0.94-0.26,1.21c-0.4-0.15-1.25,0.04-1.37,0.15c0.53,0.16,1.08-0.02,0.38,0.36c-0.24,0.28-0.5,0.65-0.81,1.01c-0.59,0-1.21-0.18-1.77-0.17c-0.54,0.12-0.7,0.89-0.11,1.08c0.28,0.5,1.22,0.02,1.21,0.59c-0.26,0.49-0.07,1.15,0.48,1.34c0.4,0.58-0.63,0.65-0.71,1.16c-0.44,0.38-0.43,0.77-0.57,1.27C551.36,117.65,551.29,117.85,551.2,118L551.2,118z"/><path id="AZ" d="M509.08,114.96c-0.45-0.33-1.07-0.15-1.33-0.71c-0.73-0.1-0.47-0.67,0.05-0.84c-0.25-0.3-0.64-0.61,0.23-0.63c0.21-0.44-0.73-0.5-0.96-0.84c-0.48-0.09-0.99,0.43-1.49,0.56c-0.38,0.33-0.73,0.66-1.25,0.78c-0.16,0.44-0.58-0.52,0.03-0.38c-0.89-0.24,0.21-0.78-0.54-0.79c-0.51-0.06-0.96-0.33-1.26-0.73c-0.87-0.41,0.59,0.01,0.38-0.65c-0.36-0.21-0.96-0.46-1.23-0.91c0.23-0.39,0.68-0.73-0.14-0.87c-0.42-0.07-0.64-0.43-0.53-0.75c0.42-0.38,1.19-0.24,1.5,0.22c0.45,0.29,1-0.02,1.4,0.34c0.56,0.39,1.01-0.73,0.22-0.69c-0.41-0.04-0.87-0.71-0.32-0.9c0.41-0.26,0.75-0.06,1.14,0.24c0.42,0.22,0.84,0.52,0.9,0.92c0.52,0,1.23,0.53,1.56-0.1c0.33-0.46,1.07-0.41,1.27-1.02c0.41-0.11,0.63,0.64,1.01,0.82c0.47,0.33,0.24,1.05,0.8,1.32c0.35,0.34,0.7,0.69,1.29,0.54c0.36-0.09,1.22,0.68,0.74,0.67c-0.45-0.21-0.96-0.13-1.38,0.07c-0.71-0.01-0.36,0.8-0.66,1.19c-0.42,0.45,0.42,1.01-0.3,0.98c-0.01,1.02-0.37,0.05-0.68,0.4c-0.02,0.49-0.13,0.76-0.27,1.27C509.21,114.62,509.14,114.8,509.08,114.96z M499.84,111.74c0.46,0.23,1.04-0.27,1.35,0.18c0.25,0.52,0.88,0.27,1.33,0.26c-0.02,0.3,0.57,0.53,0.54,0.95c0.41,0.66,0.45,0.66-0.3,0.59c-0.61,0.03-1.28-0.18-1.56-0.76C500.44,112.85,500.4,112.1,499.84,111.74z"/><path id="TM" d="M536.63,121.02c-0.41-0.6-0.11-1.52-0.33-2.2c-0.38-0.32-1.04,0.06-1.54-0.08c-1.1-0.65-2.03-1.68-3.22-2.23c-0.88-0.3-1.86-0.1-2.68-0.6c-0.6-0.02-0.86-0.63-1.38-0.71c-0.69-0.04-1.47-0.32-2.02,0.24c-0.8,0.34-1.86-0.22-2.57,0.47c-0.6,0.5-1.12,1.3-2.01,1.2c-0.54-0.03-0.29-0.92-0.52-1.33c0.04-0.46,0.09-0.99,0.13-1.48c0.33-0.46,0.28-0.98-0.32-1.12c-0.27-0.38-0.67-0.64-1.13-0.54c-0.46,0.15,0.07-0.73,0.53-0.4c0.94,0.26,0.34-0.2-0.03-0.43c0.27-0.51,0.39-0.73-0.37-0.51c-0.54-0.1-0.96,0.23-1.12-0.43c-0.21-0.53,0.13-0.9,0.23-1.4c0.15-0.92,0.32-0.2,0.74,0.03c0.56,0.14,0.79-0.27,1.06-0.13c-0.02,0.71,0.72,0.28,1.09,0.26c0.75,0.52-0.06-0.83,0.53-0.31c0.51,0.29,1.02-0.32,0.48-0.69c-0.36-0.37-1.06-0.44-1.26-0.89c-0.12-0.44-0.24-0.9-0.46-1.22c-0.65-0.09-1.32,0.02-1.95,0.18c-0.46,0.42-0.03,0.89-0.29,1.39c0.17,0.99-0.02,0.13-0.45-0.2c-0.14-0.5-0.57-0.68,0.14-1.04c0.93-0.67,2.08-0.85,3.19-0.92c0.64,0.3,1.32,0.62,1.85,1.08c0.29,0.58,0.75,1.21,1.39,1.38c0.57-0.1,1.12-0.17,1.7-0.08c0.54,0.03,1.08-0.02,1.61-0.02c0.28-0.46-0.51-0.91-0.06-1.41c0.42-0.41,0.96-0.72,1.57-0.6c0.44-0.12,0.59-0.94,1.15-0.48c0.92,0.48-0.64-0.72,0.35-0.58c0.66-0.36,1.14,0.42,1.77,0.4c0.28,0.71,1.43,0.1,1.71,0.81c0.14,0.57,0.42,0.6,0.35,1.12c-0.32,0.49,0.12,0.69,0.67,0.89c0.5,0.13,1.09-0.2,1.62,0.07c0.53-0.15,0.95-0.24,1.5,0.03c0.38,0.47,0.32,1.21,0.85,1.6c0.54,0.25,0.2,1.01,0.83,1.17c0.66,0.56,1.47,0.9,2.2,1.33c0.32,0.47,0.91,0.71,1.41,0.86c0.56-0.09,0.94,0.59,1.5,0.68c0.64,0.23,1.23,0.68,1.83,0.93c0.73-0.21,1.28,0.5,1.99,0.51c-0.32,0.46-0.1,0.98-0.22,1.5c-0.14,0.43-1-0.09-1.43-0.04c-0.5-0.45-0.84-0.14-1.3,0.17c-0.49,0.31-1.35-0.01-1.52,0.68c-0.41,0.44-0.17,1.2-0.61,1.57c-0.96,0.44-1.97,0.75-2.98,1.05c-0.11,0.49-0.19,0.98-0.82,1.09c-1.09,0.37-2.11-0.44-3.2-0.52C536.76,121.1,536.66,121.06,536.63,121.02L536.63,121.02z"/><path id="TJ" d="M566.65,117.4c-0.49-0.11-1.04-0.29-1.49-0.29c-0.46,0.18-1.02,0.34-1.51,0.25c0.26-0.45-0.88-0.23-1.16-0.05c-0.56,0.17-0.86,0.81-1.51,0.69c-0.45,0.34-1.03,0.75-1.59,0.42c-0.2-0.49-0.5-0.97-0.17-1.46c0.09-0.46,0.29-1.4-0.49-1.05c0.2-0.42-0.06-0.93-0.62-1.09c-0.67-0.16-0.71,0.55-1.12,0.85c-0.26,0.41-0.04,1.16-0.79,1.17c-0.37-0.01-1.19-0.43-1.1,0.26c-0.09,0.56-0.85,0.75-1.3,0.43c-0.89-0.38-1.53,0.86-2.43,0.65c-0.43-0.39,0.45-0.89,0.15-1.39c0.43-0.37,0.58-1.01,1.16-1.25c0.5-0.52-0.6-0.63-0.54-1.16c-0.02-0.51,0.32-1.17-0.51-0.99c-0.37-0.09-1.14-0.41-0.95-0.9c0.13-0.57,0.8-0.5,1.25-0.36c0.44-0.01,1.27,0.33,1.3-0.37c0.38-0.27,0.42-0.66,0.93-0.77c-0.37-0.09-1.38-0.14-0.41-0.28c0.43-0.26,1.26,0.32,1.13-0.47c-0.34-0.33,0.12-1.15,0.55-0.74c0.34,0.49,0.76-0.07,1.24-0.07c0.45-0.35,0.78-0.82,1.19-0.16c0.44,0.32-0.39,0.71-0.66,0.88c0.35,0.41,0.74,0.61,1.32,0.51c-0.52-0.02-0.79,0.86-1.06,0.42c-0.55-0.24-1.14-0.45-1.73-0.2c-0.63-0.24-0.38,1-0.75,0.38c-0.49,0.25-0.25,1.16,0.33,0.94c0.62-0.03,1.27-0.01,1.85-0.01c0.58-0.36,0.8,0.36,1.26,0.39c0.4-0.08,0.58-0.46,1.19-0.42c0.44,0.06,0.65,0.68,0.98,0.53c0.52-0.36,0.61,0.62,1.08,0.08c0.63-0.29,1.29-0.1,1.95-0.13c0.4-0.31,1.11-0.41,0.88,0.32c0.17,0.55-0.48,0.96,0.11,1.39c0.41,0.32,0.87-0.26,1.37-0.01c0.67-0.09,0.98,0.64,0.92,1.2c0.21,0.21,0.25,0.8,0.17,1.16C567.46,116.79,566.92,117.4,566.65,117.4L566.65,117.4z"/><path id="KG" d="M558.52,110.65c0.34-0.11,0.95-0.16,1.38,0.05c0.4,0.32,0.8-0.17,1.18-0.36c0.63-0.06,0.53-0.48,0.96-0.42c0.44,0.13,1.1-0.4,1.24-0.55c-0.44-0.19-1.04,0-1.41-0.4c-0.63,0.01-0.58-0.53-1.22-0.43c-0.16-0.53-0.64-0.96-0.83-0.27c-0.28,0.15-0.55,0.52-1.2,0.34c-0.53-0.06-0.56-1-1.11-0.57c-0.4-0.24-1.09-0.26-0.32-0.62c0.4-0.34,0.91-0.48,1.25-0.75c0.61-0.1,1.01-0.61,0.18-0.54c-0.6,0.02,0.28-0.74,0.46-0.99c0.88-0.27,1.85-0.31,2.74,0.01c0.75,0.27,1.55,0.33,2.3,0.57c-0.12-0.73,0.3-1.62,1.12-1.62c1.09-0.14,2.04,0.62,3.12,0.71c0.55,0.31,0.94-0.16,1.46-0.15c0.72,0.01,1.44-0.04,2.13-0.13c1.11,0.44,2.33,0.28,3.47,0.29c0.44,0.28,1.16,0.01,1.44,0.32c0.26,0.41,0.67,0.72,1.21,0.6c0.41-0.02,1.18,0.45,0.78,0.87c-0.97,0.43-2.1,0.46-3.07,0.91c-0.65,0.47-1.08,1.29-1.97,1.37c-0.71,0.23-1.47-0.35-2.14-0.1c-0.64,0.4-0.68,1.54-1.57,1.5c-0.45-0.04-1.22,0.54-1.38-0.1c-0.04-0.71-0.81-0.22-1.17-0.08c-0.96,0.43-2,0.79-2.82,1.42c-0.21,0.52-0.08,0.98-0.76,0.9c-0.65,0.43-1.46-0.11-2.15,0.26c-0.54,0.49-0.62-0.19-1.14-0.09c-0.42,0.34-0.51-0.37-0.93-0.47c-0.57-0.07-0.94,0.23-1.24,0.41c-0.51,0.09-0.62-0.69-1.18-0.43c-0.49,0.12-1.03-0.01-1.56,0.05c-0.47,0.06-1.15,0.08-1.03-0.57c0.24-0.62,0.59,0.16,0.6-0.68c0.6-0.07,1.21-0.33,1.79,0.01c0.58,0.42,0.56,0.2,1.07-0.12C558.29,110.76,558.41,110.7,558.52,110.65L558.52,110.65z"/><path id="AF" d="M535.73,133.79c0.55-0.79,1.3-1.39,1.92-2.11c0.42-0.39,0.14-1.25-0.47-1.26c-0.49-0.19-1.16-0.09-1.51-0.51c-0.22-1.04-0.26-2.12-0.56-3.14c0.03-0.46,0.89-0.91,0.58-1.3c-0.61-0.03-0.93-0.46-0.86-1.06c0.37-0.31,0.9-0.58,0.98-1.15c0.35-0.72,0.46-1.54,0.81-2.24c0.68,0.28,1.45,0.33,2.13,0.65c0.68,0.18,1.45,0.07,1.96-0.45c-0.21-0.68,0.45-0.78,0.94-0.91c0.77-0.33,1.69-0.44,2.34-0.97c0.11-0.63,0.24-1.39,0.72-1.82c0.69-0.1,1.41-0.2,1.91-0.75c0.76,0.46,1.69,0.5,2.56,0.56c0.65,0.1,1.58-0.22,1.92,0.54c0.36,0.73,1.18,0.09,1.65-0.17c0.44-0.36,0.99-0.26,1.46-0.01c0.57,0.1,0.95-0.43,0.95-0.93c0.48-0.21,1.08,0.34,1.52-0.14c0.23-0.44,0.15-1.03,0.66-1.35c0.13-0.66,1.03-0.52,1.35-0.07c0.14,0.6-0.02,0.65,0.65,0.81c-0.02,0.53-0.17,1.08-0.28,1.56c0.18,0.44,0.28,1.13,0.92,0.95c0.57-0.02,0.91-0.69,1.54-0.58c0.62-0.48,1.43-1.06,2.27-0.76c-0.26,0.45,0.85,0.08,1.15,0.02c0.47-0.27,0.98,0.1,1.5,0.14c0.67,0.26-1.18,0.08-0.36,0.42c0.21,0.3-0.73,0.27-0.94,0.53c-0.5,0.19-0.96,0.1-1.49,0.03c-1.06,0.02-2.26-0.07-3.1,0.69c-0.42,0.39-0.96,0.33-1.32,0.83c-0.38,0.46,0.41,0.79,0.51,1.2c-0.27,0.49,0.35,1.01-0.23,1.4c-0.39,0.32-1.34,0.68-0.91,1.3c0.4,0.62-0.55,1.01-1.05,0.92c-0.57,0.04-1.16-0.29-1.7-0.01c0.42,0.4,1.03,0.91,0.88,1.53c-0.41,0.58-1.45,0.07-1.76,0.83c-0.43,0.73-0.49,1.58-0.59,2.4c-0.3,0.65-0.91,0.4-1.41,0.16c-0.76-0.29-1.72,0.19-1.91,0.99c-0.31,0.45-0.98,0-1.45,0.1c-0.58,0.15-1.12,0.62-1.44,1.11c-0.31,0.65-0.28,1.39-0.46,2.07c-1.09,0.54-2.37,0.54-3.55,0.8c-0.81,0.16-1.61,0.04-2.42-0.02c-1.12,0.24-2.31,0.33-3.41-0.08C537.44,134.38,536.57,134.13,535.73,133.79L535.73,133.79z"/><path id="PK" d="M551.79,147.28c-0.8,0-1.75-0.43-1.76-1.34c0.04-0.59-0.49-0.85-1.01-0.83c-0.72,0,0.01-0.82-0.35-1.16c-0.21-0.53-0.8-0.63-1.26-0.34c-0.88,0.4-1.88,0.23-2.81,0.47c-0.58,0.05-1.36,0.21-1.67-0.44c-0.53,0.06-1.06,0.13-1.46,0.53c-1.12,0.03-2.24-0.07-3.34,0.22c-0.71,0.25-0.85-0.09-0.59-0.72c0.1-0.83,0.43-1.75,1.29-2.06c0.62-0.44,1.39-0.34,2.09-0.51c0.3-0.4,0.32-1.1,0.04-1.51c-0.66,0.16-0.94-0.39-0.88-0.98c-0.01-0.57-0.04-1.31-0.73-1.44c-0.9-0.27-1.88-0.59-2.3-1.51c-0.41-0.64-0.86-1.25-1.32-1.86c1.22,0.47,2.51,0.8,3.79,1.02c1.07,0.2,2.1-0.39,3.17-0.09c1.32,0.06,2.64-0.3,3.94-0.51c0.5-0.12,1.28-0.19,1.16-0.9c0.07-0.87,0.26-1.85,1.11-2.29c0.52-0.63,1.35-0.18,1.99-0.29c0.31-0.32,0.38-0.95,0.93-1.06c0.63-0.4,1.34,0.01,1.96,0.23c0.93-0.28,0.51-1.42,0.85-2.1c0.14-0.63,0.53-1.33,1.28-1.28c0.55,0.09,1.08-0.38,0.72-0.91c0-0.42-1.12-0.86-0.56-1.03c0.85-0.07,1.93,0.45,2.6-0.35c-0.09-0.51-0.46-1.06,0.21-1.36c0.34-0.28,1.15-0.63,0.77-1.16c0.02-0.51-0.03-0.94-0.41-1.29c-0.58-0.35,0.28-0.92,0.61-1.06c0.68-0.14,1.18-0.96,1.96-0.92c0.89-0.12,1.82-0.2,2.7,0.04c0.48-0.15,0.9-0.39,1.39-0.47c0.44-0.17,0.74,0.12,1.23-0.05c0.79-0.13,0.3,0.83,1.02,0.44c0.49-0.13,1.05,0.35,1.04,0.83c-0.18,0.62-0.38,0.74,0.25,1.1c0.3,0.48,0.94-0.34,1.21,0.3c0.37,0.4,0.84,0.54,1.38,0.51c0.35-0.06,1.43,0.22,0.63,0.45c-0.48,0.27-1.15,0.45-1.12,1.12c-0.02,0.78-0.65-0.02-1.11,0.16c-0.5,0.28-0.77,0.32-1.29,0.48c-0.79,0.13-1.63-0.28-2.44-0.36c-0.57-0.16-1.14-0.21-1.69,0.05c-0.44,0.22-0.68,0.93-0.07,0.9c-0.47,0.75,0.48,0.33,0.53,0.82c-0.65,0.18-0.42,0.65-0.18,1c-0.47,0.55-0.04,0.76,0.41,1.07c-0.33,0.87,1.11,0.02,0.74,0.87c0.3,0.5,1.04-0.02,1.43,0.5c0.45,0.43-0.46,0.73-0.82,0.82c-0.44,0.12-1.2,0.31-0.79,0.89c0.16,0.45-0.01,1.12-0.38,1.45c-0.42,0.42-0.84,0.83-1.26,1.25c0.61,0.48-0.28,0.76-0.7,0.79c-0.71,0.72-0.65,2.09-1.75,2.4c-0.57,0.14-0.95,0.45-1.14,1c-0.28,0.4-0.7,0.76-0.82,1.19c-0.61,0.38-1.33,0.07-1.95,0.42c-0.66,0.41-0.67-0.37-1.03-0.64c-0.52,0.04-0.99,0.47-1.08,0.99c-0.5,0.47-1.14,0.86-1.22,1.61c-0.14,0.65,0.69,0.63,1.13,0.73c0.77-0.17,0.19,0.8,0.2,1.22c-0.09,0.52,0.68,0.87,1.13,0.64c0.27,0.21,0.31,0.89,0.58,1.25c0.27,0.48,0.52,0.97,0.35,1.32c0.32,0.4-0.45,0.67-0.86,0.7c-0.07-0.64-0.84-0.3-1.15-0.11c-0.22,0.54-0.9,0.03-1.3,0c-0.58-0.05-1.18,0.03-1.75-0.08c0.22,0.74-0.22,0.83-0.85,0.74C552.27,147.1,552.17,147.32,551.79,147.28L551.79,147.28z"/><path id="IN" d="M606.16,150.95c-0.09-1.2-0.64-2.32-0.73-3.52c-0.67-0.11-0.84,0.48-0.97,1c-0.1,0.8-0.6,0.63-0.98,0.09c-0.47-0.32-0.39-0.92-0.33-1.4c0.32-0.64,1.23-0.49,1.66-1.03c0.52-0.29,0.81-0.8,0.69-1.39c0.02-0.67-0.89-0.35-1.32-0.49c-1.02-0.15-2.04-0.08-3.06-0.07c-0.51-0.01-1.12-0.1-0.97-0.77c-0.03-0.47-0.04-1.21-0.71-1.04c-0.65,0.23-0.97-0.66-1.63-0.61c-0.54-0.27-1.01-0.13-1.36,0.36c-0.66,0.47,0.11,0.75,0.5,1c0.32,0.36,1.08,0.57,1.09,1.04c-0.68,0.1-1.31,0.4-1.7,0.99c-0.28,0.45,0.7,0.63,1.03,0.81c0.7,0.15,0.3,0.83-0.01,1.16c-0.36,0.5,0.5,0.84,0.4,1.4c0.26,1.06,0.46,2.14,0.75,3.2c0.03,0.52-0.66,0.86-0.83,0.26c0.01-0.85-0.61-0.34-0.72,0.18c-0.5,0.29-0.47-1.22-0.88-0.59c-0.58,0.88-1.83,0.82-2.58,1.46c-0.24,0.48,0.5,1,0.04,1.4c-0.42,0.38-0.42,0.91-0.95,1.17c-0.49,0.5-1.12,0.74-1.8,0.82c-1.01,0.12-1.46,1.08-2.15,1.7c-0.6,0.71-1.15,1.57-2.11,1.82c-0.52,0.83-1.36,1.35-2.24,1.75c-0.63,0.22-0.97,0.79-0.99,1.44c-0.39,0.62-1.23,0.9-1.92,0.67c-0.49,0.34-0.38,1.09-0.9,1.39c-0.57-0.48-1.47-0.11-1.68,0.56c-0.65,1.14,0.16,2.48-0.15,3.67c-0.43,0.55,0.62,0.85,0.39,1.43c-0.25,1.36-1.19,2.54-1.34,3.93c-0.01,0.86,0.32,1.73,0.17,2.56c-0.49,0.07-1.31-0.26-1.38,0.47c-0.01,0.49-0.64,0.98-0.44,1.4c0.86,0.33-0.22,0.6-0.65,0.64c-0.54,0.11-1.18,0.39-1.16,1.05c0.01,0.84-0.97,0.96-1.5,1.39c-0.59-0.04-0.86-0.75-1.31-1.07c-0.49-0.34-0.53-0.95-0.81-1.44c-0.4-1.91-1.22-3.72-2.19-5.41c-0.52-0.7-0.92-1.46-1.12-2.32c-0.4-1.28-0.69-2.6-1.34-3.79c-0.81-1.47-1.73-2.9-2.16-4.54c-0.72-2.66-1.28-5.36-1.55-8.1c0.02-0.67,0.79-1.11,0.77-1.78c-0.59-0.3-0.91-0.88-0.9-1.53c-0.23-0.39,0.18-1.27-0.2-1.36c-0.54-0.13-1.01,0.2-1.08,0.75c0.34,0.32,0.5,0.87,0.08,1.26c-0.65,0.78-1.73,0.91-2.62,1.25c-1.19,0.03-2.03-0.94-2.8-1.71c-0.64-0.61-1.38-1.14-1.84-1.91c0.76-0.09,1.55,0.25,2.28-0.11c0.48-0.15,0.78-0.55,1.09-0.92c-0.15-0.46-0.97,0.15-1.43-0.07c-1.39-0.06-2.78-0.66-3.62-1.81c-0.5-0.41,0.43-0.54,0.64-0.84c0.87,0.35,0.51-0.61,0.85-0.71c0.68,0.11,1.46-0.12,2.07,0.21c0.65,0.33,0.76-0.35,1.36-0.39c0.56-0.29,0.53,0.65,1.14,0.24c0.58-0.32,0.2-0.6,0.42-1.01c-0.33-0.73-0.78-1.41-0.94-2.2c-0.48,0.22-1.13-0.01-1.25-0.5c-0.03-0.41,0.54-1.34-0.02-1.35c-0.47-0.1-1.28,0-1.32-0.63c0.1-0.56,0.38-1.03,0.86-1.35c0.5-0.3,0.45-0.95,1-1.21c0.68-0.53,0.62,0.5,1.09,0.58c0.53-0.03,1.04-0.42,1.62-0.28c0.61,0,0.86-0.37,1.08-0.83c0.44-0.33,0.59-0.91,0.92-1.29c0.7-0.26,1.5-0.54,1.73-1.34c0.27-0.59,0.45-1.48,1.25-1.47c0.83-0.15-0.15-0.71,0.5-0.99c0.51-0.6,1.33-1.02,1.36-1.88c0.2-0.43-0.56-1.11,0.25-1.22c0.47-0.28,1.43-0.2,1.45-0.88c-0.36-0.44-0.98-0.37-1.43-0.43c0.06-0.77-0.61-0.45-0.88-0.78c0.23-0.59-1.18-0.59-0.46-1.12c0.3-0.47-0.79-0.84,0.1-1.1c0.7-0.54-1.06-0.2-0.37-0.71c-0.2-0.43-0.72-0.47-0.1-1.08c0.54-0.23,1.11-0.33,1.68-0.12c0.83,0.11,1.67,0.44,2.5,0.42c0.54-0.21,0.85-0.19,1.35-0.51c0.46-0.22,1.06,0.61,1.12-0.13c-0.02-0.58,0.45-0.84,0.91-1.05c0.36-0.17,1.29-0.79,1.08,0.01c0.16,0.55,0.45,1.08,0.66,1.62c0.55,0,1.05,0.17,1.37,0.65c-0.06,0.29-0.64,0.7-0.32,1.29c-0.12,0.62,0.6,0.66,1.04,0.69c0.18,0.51,1.07,0.11,0.75,0.85c0.57,0.58,0.05,0.83-0.47,1.14c-0.46,0.49-0.93-0.17-0.99-0.44c-0.68-0.03-0.83,0.41-0.48,0.93c0.64,0.3,0.29,0.85,0.63,1.26c-0.28,0.3-0.02,1.16,0.51,0.55c0.48-0.08,0.8,0.61,1.15,0.9c0.43,0.02,0.96,0.19,1.41,0.51c-0.07,0.47,0.49,0.7,1.01,0.67c0.56,0.31,1.03,0.63,0.24,1.01c-0.41,0.37-0.86,0.52-0.92,1.07c-0.03,0.49-0.34,0.88-0.59,1.35c0.07,0.55,0.79,0.64,1.21,0.6c0.35,0.41,0.92,0.45,1.34,0.65c0.23,0.65,0.98,0.77,1.5,1.13c0.43-0.41,0.88,0.43,1.35,0.42c0.62-0.25,0.63,0.63,1.33,0.48c0.53,0.5,0.68-0.29,1.26-0.01c0.47,0.58,0.91-0.48,1.37,0.1c0.45,0.09,1.17,0.13,0.8,0.8c0.54,0.01,0.87,0.44,1.35,0.62c0.33,0.24,1.23-0.63,1.07,0.21c0.39,0.46,0.88-0.21,1.41,0.16c0.49,0.26,0.98,0.49,1.45,0.07c0.22,0.65,0.83,0.33,1.28,0.43c0.49-0.2,1.18,0.14,1.26-0.56c0.23-0.5-0.56-0.92-0.3-1.48c0.05-0.46,0.16-1.17,0.57-1.31c0.46-0.28,1.15-0.08,0.91,0.56c-0.04,0.55,0.13,1.05,0.25,1.51c0.28,0.44,0.99,0.31,1.45,0.48c0.62,0.23,1.33,0.27,1.86-0.19c1.14,0.36,2.36,0.23,3.53,0.12c0.29-0.44,0.33-1.17-0.37-1.17c-0.69-0.34-0.2-1.02,0.42-0.81c1.17,0.03,1.82-1.05,2.63-1.7c0.57-0.46,1.36-0.45,1.89-0.97c0.51-0.28,1.13-0.94,1.71-0.48c0.56,0.22,1.23,0.47,1.72-0.03c0.45-0.21,0.94-0.87,1.33-0.21c0.32,0.37,1.15,0.82,0.65,1.35c-0.62,0.51-0.03,0.7,0.51,0.68c0.53,0.07,1.03,0.26,1.57,0.29c0.12,0.59-0.33,0.98-0.73,1.33c-0.24,0.4,0.47,1.27-0.35,1.01c-0.64-0.18-1.4-0.46-1.91,0.13c-0.58,0.5-1.39,0.73-1.89,1.29c-0.26,0.47,0.16,1.15-0.36,1.55c-0.26,0.46-1.1,0.88-0.66,1.46c0.16,0.67-0.48,1.22-0.69,1.83c-0.24,0.38-0.37,1.17-0.99,0.92c-0.43,0.01-1.21-0.77-1.24-0.03c-0.03,0.62,0.34,1.32-0.05,1.86c-0.74,0.05-0.64,0.68-0.49,1.21c0.06,0.47,0,1.06-0.53,1.23C606.75,151.07,606.41,151.06,606.16,150.95L606.16,150.95z"/><path id="LK" d="M579.61,186.91c-0.99,0.03-1.15-1.13-1.39-1.85c-0.49-1.18,0.07-2.51-0.48-3.67c0.55-0.41-0.5-1.02,0.14-1.13c0.62,0.07,0.55-0.74,0.83-1.09c-0.22-0.87,0.06-0.37,0.57-0.04c0.71,0.24,0.93,1.01,1.37,1.54c0.07,0.54,0.11,0.89,0.68,1.15c0.2,0.95,1.09,1.64,1.15,2.61C582.24,185.79,581.03,186.97,579.61,186.91L579.61,186.91z"/><path id="NP" d="M580.63,132.87c0.13,0.73,0.92,0.45,0.9-0.18c0.25-0.29,0.87-0.27,1.38-0.12c0.39,0.2,0.27,0.95,1.02,0.86c0.53,0.15,0.9,0.89,1.45,0.81c0.46-0.09,0.8,0.58,1.1,0.89c0.25,0.11,1-0.47,1.29,0.07c0.02,0.59,0.35,0.83,0.9,1.09c0.39,0.61,0.98,0.02,1.24,0.23c-0.5,0.7,0.42,0.65,0.9,0.63c0.49-0.14,0.89,0.48,0.96,0.91c0.27-0.66,0.46-0.18,1.08-0.14c0.15-0.56,0.78-0.34,1.22-0.08c0.27,0.65,0.94,0.14,1.42,0.38c0.21-0.22,1.28-0.38,1.02,0.18c-0.32,0.63-0.42,1.43,0.04,2.02c0.21,0.52-0.25,1.05-0.81,0.89c-0.51,0.01-0.96,0.17-1.45,0.01c-0.24-0.79-0.83,0.26-1.28-0.24c-0.48-0.18-1.1-0.53-1.54-0.11c-0.37-0.38-0.39-0.93-1.07-0.41c-0.53,0.12-0.85-0.55-1.35-0.57c-0.58,0.03,0.07-1.02-0.8-0.79c-0.5-0.28-0.89-0.28-1.35-0.01c-0.47-0.51-0.94,0.02-1.29-0.04c-0.46-0.23-1.08-0.17-1.26-0.65c-0.57,0.21-0.99-0.33-1.48-0.54c-0.43,0.37-0.94-0.36-1.4-0.47c-0.21-0.57-0.72-0.62-1.23-0.82c-0.37-0.55-0.94-0.13-1.37-0.52c-0.62-0.24-0.01-0.91,0.24-1.23c0-0.46,0.07-1.02,0.52-1.2C579.96,133.44,580.3,133.15,580.63,132.87L580.63,132.87z"/><path id="BT" d="M597.92,139.68c0.75-0.86,1.38-1.95,2.45-2.43c0.54-0.08,0.86,0.66,1.47,0.5c0.66,0.12,1.54-0.2,2.03,0.37c0.4,0.42,0.04,1.15,0.76,1.27c0.62,0.06,0.45,1.06,0.02,1.15c-1.12,0.11-2.28,0.2-3.36-0.14c-0.58,0.52-1.35,0.38-2.03,0.15c-0.54-0.11-1.31-0.06-1.43-0.74C597.8,139.76,597.91,139.73,597.92,139.68L597.92,139.68z"/><path id="BD" d="M605.3,153.43c-0.56-0.81-0.43-1.84-0.9-2.68c-0.2-0.37-0.39-1.31-0.93-1.04c-0.41,0.29-0.96,0.37-1.2-0.13c-0.17-0.67-0.77-0.62-0.61,0.11c0.17,0.41,0.69,1.11,0.14,1.4c-0.55-0.19-0.58,1.18-1,0.48c-0.28-0.61-0.65-0.83-0.67,0.01c-0.49,0.87-0.66-0.66-0.97,0.04c-0.25,0.7-0.8,0.01-0.78-0.44c-0.27-1.08-0.45-2.2-0.78-3.25c-0.58-0.41-0.18-0.96,0.15-1.38c0.21-0.61-0.69-0.65-1.05-0.88c-0.75-0.23-0.25-0.72,0.14-1.04c0.24-0.45,1.28-0.21,1.19-0.69c-0.58-0.47-1.2-0.94-1.82-1.31c-0.01-0.44,0.58-0.9,0.96-1.03c0.65,0.14,1.31,0.26,1.79,0.75c0.42,0.09,1.21-0.19,1.14,0.55c0.12,0.43-0.12,1.23,0.56,1.19c1.08,0.19,2.19-0.09,3.27,0.11c0.5,0.13,1.21-0.1,1.56,0.29c0.09,0.57,0.02,1.23-0.56,1.51c-0.44,0.56-1.25,0.49-1.71,1c-0.13,0.43-0.22,1.05,0.15,1.39c0.32,0.31,0.86,1.08,1.03,0.28c0.22-0.48,0.2-1.3,0.91-1.22c0.31,0.19,0.2,1.01,0.42,1.42c0.38,1.2,0.5,2.44,0.64,3.69C605.98,152.83,605.52,153,605.3,153.43L605.3,153.43z"/><path id="KH" d="M634.04,168.44c0.64,0.4,1.46,0.33,2.08,0.78c0.91-0.13-0.47-0.89,0.16-1.14c0.43-0.43,1.08-0.31,1.42,0.17c0.51,0.03,1.04-0.37,1.53-0.57c-0.26,0.76-0.32,1.6,0.14,2.3c0.26,0.49-0.13,1.07,0.03,1.61c0.18,0.69-0.29,1.39-1,1.47c-0.91,0.4-1.88,0.77-2.66,1.38c-0.46,0.49,0.21,0.94,0.59,1.2c0.12,0.77-0.68,0.22-1.09,0.27c-0.89,0.03-1.53,0.81-2.39,0.98c-0.4,0.72-0.69-0.46-1.24-0.18c-0.35,0.18-1.33,0.2-0.78-0.38c0.37-0.38-0.31-1.14-0.7-0.62c-0.63,0.55-0.69-0.31-0.73-0.8c-0.18-0.53-0.45-1.04-0.66-1.57c0.35-0.44-0.29-0.97-0.5-1.37c-0.39-0.81-0.33-1.82,0.35-2.46c0.44-0.65,1.01-1.41,1.89-1.31c0.76-0.11,1.51,0.06,2.26-0.05C633.18,168.18,633.67,168.2,634.04,168.44L634.04,168.44z"/><path id="MM" d="M606.16,150.95c0.48,0.08,1.05,0.54,1.31-0.12c0.19-0.53-0.01-1.14-0.08-1.69c0.43-0.26,1.02-0.49,0.78-1.13c0.04-0.43-0.32-1.22,0.11-1.4c0.5,0.13,1.11,0.63,1.6,0.28c0.37-0.78,0.85-1.54,1.15-2.34c-0.15-0.5-0.29-0.97,0.25-1.33c0.45-0.44,0.83-1,0.63-1.66c0.06-0.73,0.99-0.87,1.48-1.28c0.54-0.32,1.05-0.94,1.75-0.65c0.39,0.1,1.44,0.51,1.04-0.27c-0.37-0.77,0.93-0.97,0.72-1.75c-0.09-0.54,0.61-0.88,0.98-0.45c0.7,0.33,0.53,1.2,0.97,1.71c0.51,0.01,1.14-0.06,1,0.68c0.1,0.94,0.35,1.96-0.18,2.82c-0.3,0.74-0.93,1.24-1.6,1.62c-0.31,0.44-0.91,0.86-0.67,1.45c0.3,0.54-0.01,1.02-0.06,1.55c0.68,0.21,1.17-0.63,1.88-0.52c0.57-0.19,1.07,0.03,0.97,0.7c0.12,0.49,0.04,1.06,0.38,1.47c0.38-0.09,1.37-0.18,1.03,0.45c-0.19,0.5-0.55,1-0.63,1.51c0.1,0.68,0.99,0.18,1.36,0.39c0.43,0.46,0.45,1.29,1.2,1.4c0.49,0.11,1.11-0.71,1.32-0.4c0.5,0.57-0.32,0.68-0.58,1.14c-0.41,0.53-0.83,1.04-1.39,1.43c-0.39,0.43-1.1,0.13-1.53,0.55c-0.56,0.17-0.56,0.97-1.2,0.97c-0.56,0.21-1.16,0.27-1.75,0.13c-0.71,0.5-0.42,1.4-0.65,2.11c0.49,0.78-0.8,0.59-0.66,0.92c0.41,0.44,0.83,0.9,0.77,1.55c0.1,0.49,0.77,0.69,1.09,1.1c0.49,0.42,0.68,1.1,1.08,1.62c0.54,0.6-0.64,0.61-0.59,1.12c0.02,0.49,0.5,1.22-0.19,1.42c-0.8,0.14-0.43,0.66-0.19,1.18c0.2,0.59,0.46,1.13,1,1.48c0.74,0.52,0.96,1.47,0.75,2.32c0.15,0.94,0.7,1.79,1.08,2.66c-0.35,0.95-1.09,1.71-1.54,2.62c-0.29,0.37-0.53,1.04-0.73,1.27c-0.48-0.17-0.45-0.99-0.1-1.31c0.54-0.57,0.28-1.46,0.79-2.04c-0.69,0.18-0.73-0.45-0.43-0.9c-0.09-1.15-0.26-2.32-0.93-3.29c-0.38-0.87-0.73-1.77-1.02-2.67c-0.25-1.25-0.29-2.55-0.5-3.8c-0.81-0.02-0.54-1.06-1.07-1.45c-0.26-0.61-0.93-0.72-0.77,0.1c0.08,0.95-0.88,1.37-1.61,1.67c-0.56,0.13-0.86,0.53-1.11,1.01c-0.5,0.81-0.63-0.2-0.85-0.33c-0.2,0.51-1.13,0.43-0.76-0.21c0.19-0.53-0.87-0.04-1.03,0.23c-0.6,0.27-0.47-0.68-0.25-1.01c0.5-1.1,0.66-2.32,0.46-3.51c-0.18-0.85-0.57-1.67-0.94-2.46c-0.2,0.04-0.64,0.66-1.14-0.04c0.04-0.28,1.1-0.1,0.54-0.81c-0.17-0.45-0.61-0.88-0.99-1.15c-0.43,0.17-1.12-0.04-0.8-0.62c-0.22-0.4-0.9-0.14-1.18-0.68c-0.29-0.36-0.94-0.88-0.29-1.24c0.59-0.25,0.87-0.64,0.63-1.27C606.22,151.5,606.19,151.23,606.16,150.95L606.16,150.95z"/><path id="VN" d="M627.17,150.01c0.57-0.33,1.34-0.56,1.86-0.01c0.57,0.43,0.95-0.56,1.58-0.39c1.04-0.06,2.26,0.11,3.03-0.76c0.38-0.25,0.94-0.83,1.29-0.24c0.64,0.64,1.66,0.58,2.5,0.51c0.59,0.35,0.08,0.95-0.18,1.34c-0.01,0.84,0.84,1.24,1.48,1.55c0.49,0.23,1.12,0.05,1.56,0.37c-0.34,0.35-1.27,0.41-0.92,1.05c-0.26,0.49-0.98,0.11-1.44,0.19c-0.17,0.4-0.16,0.9-0.59,1.26c-0.24,0.57-0.83,0.72-1.3,1.02c-0.5,0.68-0.58,1.56-0.96,2.3c0.62,0.61,1.19,1.28,1.85,1.86c-0.02,0.63,0.16,1.26,0.71,1.62c0.96,0.6,1.64,1.51,2.5,2.22c0.57-0.09,1.02,0.31,1.07,0.88c0.12,0.72,0.53,1.33,1.1,1.77c0.69,1.53,0.8,3.23,1.16,4.85c-0.38,0.47-0.65,1.03-0.49,1.64c-0.18,0.46,0.1,1.01-0.16,1.43c-0.32,0.6-0.87,1.06-1.56,1.1c-0.95,0.24-1.32,1.43-2.33,1.51c-0.46,0.08-1.02-0.94-1.19-0.4c-0.16,0.5,0.19,1.04-0.11,1.53c-0.07,0.63-0.79,0.63-1.09,0.79c-0.25,0.87-1.43,0.59-1.81,1.35c-0.32,0.45-0.78,1.03-1.41,0.84c0.17-0.93-0.04-1.97,0.44-2.81c0.38-0.54-0.41-1.01-0.9-1.09c-0.78-0.19,0.39-0.6,0.69-0.7c0.72-0.46,1.58-0.98,2.45-0.56c0.66,0.04,0.15-0.75-0.25-0.85c-0.47-0.48,0.09-0.99,0.56-1.16c0.84-0.49,1.77-0.84,2.65-1.22c0.82-0.53,0.21-1.59,0.49-2.36c0.06-0.6-0.58-1.1-0.44-1.74c0.08-1,0.77-2.23-0.05-3.09c-0.64-0.27-0.34-0.81-0.3-1.25c-0.25-0.7-1.19-0.74-1.54-1.39c-1.04-1.63-2.28-3.14-3.64-4.51c-0.62-0.52-1.34-0.89-2.03-1.32c-0.22-0.56,0.32-1.15,0.9-0.91c0.74,0.14,1.32-0.95,0.62-1.39c-0.44-0.38-0.71-0.95-1.09-1.34c-0.65-0.25-0.95,0.99-1.61,0.55c-0.75-0.24-1.11-0.93-1.32-1.63c-0.24-1.01-1.39-1.42-1.76-2.37l-0.04-0.06L627.17,150.01L627.17,150.01z"/><path id="MY" d="M627.41,186.41c0.72,0.01,1.03,0.74,1.5,1.19c0.47,0.64,1.08,1.25,1.34,1.99c0.2,1.05-0.24,2.09-0.03,3.14c-0.21,0.76,0.09,1.57,0.75,2c0.49,0.69,0.73,1.52,1.1,2.27c-0.58-0.13-1.2-0.15-1.74-0.01c-1.03-0.86-2.23-1.49-3.4-2.14c-0.5-0.41-1.31-0.69-1.25-1.46c-0.03-0.92-0.92-1.43-1.43-2.06c-0.37-0.66,0.15-1.47-0.4-2.06c-0.48-0.8-0.37-1.82-0.69-2.7c-0.3-0.61,0.4-0.82,0.88-0.75c0.12,0.42,0.66,0.51,0.96,0.91c0.14,0.32-0.36,1.29,0.28,0.92c0.17-0.62,0.92-0.6,0.79,0.12c0.8,0.19,0.55-0.59,1.04-0.87C627.34,186.8,627.35,186.62,627.41,186.41L627.41,186.41z M643.95,196.04c0.33,0.38,0.75,0.68,1.3,0.64c0.84-0.1,1.43,0.97,2.26,0.59c-0.53-0.32-0.58-0.84-0.2-1.31c0.38-0.5,0.46-1.21,0.84-1.67c1.07-0.58,2.47-0.41,3.43-1.2c0.28-0.51,0.44-1.13,1.05-1.34c0.47-0.53,0.79-1.23,1.45-1.54c0.12,0.53,0.44,0.59,0.8,1.01c0.45-0.4,1.07-0.47,1.62-0.69c-0.36-0.32-0.08-0.86-0.43-1.24c0.25,0.02,1.15,0.19,1.01-0.48c-0.6-0.26-0.51-1,0.23-0.89c0.7,0.27,0.36-0.77,0.98-0.88c0.34-0.67,0.98-1.12,1.2-1.86c0.17-0.98,0.51,0.58,0.94,0.02c0.32-0.64,0.51,0.56,1.02,0.58c0.63,0.22,0.08,0.89-0.1,1.27c0.09,0.55,1.03-0.35,1.22,0.1c-0.49,0.66-0.06,0.58,0.6,0.42c0.71-0.14,1.17,0.67,1.83,0.81c0.29,0.62-0.66,0.87-1.14,0.83c-0.41-0.06-1.36-0.17-1.09,0.48c0.26,0.32,1.24,0.62,0.65,1.04c-0.47,0.34-1.25,0.1-1.61,0.53c-0.64-0.37-1.36-0.47-2.09-0.41c-0.66-0.01-1.43-0.36-2.02,0.02c-0.53,0.62-0.55,1.43-0.39,2.19c-0.11,0.62-1.05,0.4-1.08,1.06c0.26,0.78-0.39,1.4-0.67,2.08c-0.3,1-1.57,0.59-2.19,1.23c-0.61,0.43-1.35-0.19-1.96-0.39c-0.68-0.42-1.44,0.01-1.81,0.62c-0.41,0.54-1.17,0.96-1.82,0.58c-0.52-0.38-1.05,0.08-1.55,0.26c-0.47-0.29-0.98-0.45-1.32-0.92C644.42,197.15,644.1,196.68,643.95,196.04L643.95,196.04z"/><path id="TH" d="M627.41,186.41c-0.15,0.5-0.72,0.78-0.78,1.27c-0.77,0.5-0.43-0.81-1.04-0.44c-0.19,0.63-0.97,0.61-0.55-0.09c0.22-0.56-0.47-0.78-0.78-0.96c0.09-0.76-0.94-0.15-1.09-0.28c0.39-0.82-0.47-0.08-0.79-0.42c-0.53-0.29-0.32-0.9-0.46-1.36c-0.17-0.57-0.92-0.12-0.98-0.86c-0.2-0.5-0.44-1.02-0.98-1.22c-0.32-0.72-1.02,0.26-1.17-0.48c-0.13-1.28,0.55-2.47,0.88-3.68c0.02-0.42,0.13-0.88,0.46-1.29c0.51-0.97,1.22-1.84,1.7-2.82c-0.09-0.66-0.6-1.26-0.79-1.92c-0.33-0.49-0.24-1.04-0.18-1.59c0.05-0.97-0.77-1.56-1.43-2.13c-0.26-0.6-0.49-1.22-0.78-1.82c0.41-0.25,1.23-0.42,0.9-1.06c-0.25-0.57-0.12-1.08,0.49-1.27c0.3-0.43-0.39-0.91-0.54-1.34c-0.28-0.7-0.95-1.13-1.53-1.57c-0.3-0.35-0.03-1.07-0.51-1.38c-0.68-0.55-0.35-0.7,0.27-0.83c-0.01-0.53,0.11-1.06,0.13-1.61c-0.02-0.45,0.32-1.23,0.87-1c0.64,0.08,1.33-0.1,1.87-0.39c0.34-0.73,1.17-1.11,1.95-1.09c0.35-0.3,1.08,0.03,1.19,0.45c0.12,0.54-0.37,1.27,0.15,1.66c0.45,0.19,1.17-0.58,1.39-0.05c0.13,0.69,0.37,1.39,0.01,2.05c-0.18,0.78-0.78,1.62-0.39,2.4c0.58,0.39,0.82-0.36,1.23-0.65c0.42-0.37,0.83-1.14,1.47-0.69c0.52,0.13,1.04,0.71,1.56,0.29c0.55-0.1,0.4-0.97,0.88-1.13c0.5,0.03,1.04,0.09,1.47,0.35c0.09,1.1,1.63,1.48,1.48,2.64c-0.06,0.82,0.13,1.65,0.72,2.24c0.65,0.82,1.42,1.74,1.23,2.87c0.08,0.63-0.53,0.88-0.93,1.22c-0.89-0.53-1.95-0.15-2.92-0.3c-0.74,0.05-1.58,0.01-2.04,0.7c-0.5,0.71-1.29,1.41-1.07,2.37c0.04,0.75,0.72,1.23,0.87,1.95c-0.23,0.21-0.95-0.16-1.23-0.47c-0.4-0.52-1.09-1-1.73-0.58c-0.36,0.01-1.22-0.07-1.18-0.49c-0.04-0.45,0.42-1.17-0.01-1.43c-0.68-0.04-1.54-0.35-2.01,0.33c0,0.43,0.25,0.98-0.15,1.43c-0.34,0.55,0.26,1.24-0.21,1.78c-0.66,1.46-1.54,2.9-1.6,4.54c0.08,0.49-0.06,1.33,0.58,1.45c0.45,0.03,1.15-0.51,1.24,0.22c0.01,0.42-0.21,1.15,0.33,1.25c0.48-0.08,0.37,0.9,0.54,1.26c-0.04,0.75,0.2,1.56,0.72,2.12c0.58,0.19,1.18,0.5,1.81,0.33c0.51,0.26,0.47,0.98,1.04,1.2C627.14,186.22,627.3,186.32,627.41,186.41L627.41,186.41z"/><path id="LA" d="M634.04,168.44c0.45-0.35,1.05-0.68,0.93-1.34c0.21-1.53-1.3-2.45-1.84-3.72c-0.28-0.76,0.16-1.7-0.49-2.32c-0.41-0.5-1.05-0.89-1.11-1.6c-0.46-0.27-1.03-0.34-1.56-0.36c-0.38,0.37-0.29,1.08-0.89,1.18c-0.54,0.33-1.07-0.29-1.61-0.4c-0.66-0.31-1.01,0.58-1.47,0.9c-0.29,0.37-0.81,0.96-1.16,0.34c-0.23-1,0.5-1.94,0.65-2.92c0.02-0.52-0.14-1.06-0.26-1.57c-0.51-0.06-1.07,0.53-1.51,0.09c-0.25-0.63,0.46-1.61-0.38-1.94c-0.91-0.06-0.18-0.49,0.21-0.79c0.46-0.56,0.85-1.2,1.5-1.56c0.3,0.43,0.98,0.6,1.41,0.37c0.56-0.48-0.1-1.14-0.19-1.67c-0.28-0.64,0.42-0.95,0.9-1.13c0.34,0.86,1.25,1.3,1.67,2.09c0.27,0.77,0.52,1.67,1.38,1.95c0.71,0.52,1.04-0.87,1.75-0.5c0.31,0.66,0.96,1.13,1.31,1.73c0.16,0.69-0.67,1.18-1.27,0.92c-0.59,0.03-0.85,0.97-0.23,1.15c1.51,0.74,2.65,1.99,3.66,3.31c0.68,0.77,1.23,1.64,1.82,2.47c0.36,0.6,1.51,0.67,1.43,1.5c-0.47,0.5,0.17,0.85,0.45,1.2c0.34,0.56,0.26,1.36,0.01,1.9c-0.47,0.17-0.99,0.6-1.47,0.51c-0.33-0.45-0.95-0.59-1.37-0.18c-0.72,0.25,0.67,0.94-0.12,1.15c-0.52-0.23-1.12-0.42-1.7-0.55C634.34,168.59,634.17,168.52,634.04,168.44L634.04,168.44z"/><path id="BN" d="M654.08,190.19c0.49-0.21,1.05-0.2,1.24-0.82c0.42-0.72,0.38-0.12,0.82,0.03c0.11,0.38,0.24,0.92,0.26,1.14c-0.52,0.21-1.1,0.28-1.53,0.66C654.51,190.77,654.21,190.7,654.08,190.19L654.08,190.19 L654.08,190.19z"/><path id="ID" d="M713.62,206.3c0.06,2.66,0.11,5.31,0.17,7.97c-0.31,0.48-0.57,0.96-0.23,1.5c0.48,1.3,0.17,2.72,0.24,4.07c0.07,0.7-0.01,1.06-0.52,0.35c-0.6-0.54-1.17-1.13-1.64-1.79c-0.79-0.18-1.56,0.25-2.35,0.18c-0.04-0.53,0.73-0.89,0.47-1.38c-0.42-0.37-0.86-0.82-1.05-1.32c0.2-0.11,1.29,0.01,0.43-0.53c-0.59-0.33-1.04-0.83-1.22-1.49c-0.57-0.84-0.95-1.89-1.94-2.32c-1.34-0.47-2.73-0.89-4.11-1.25c-0.63-0.03-1.22-0.31-1.77-0.61c0.31-0.66-0.37-0.73-0.84-0.54c-0.84-0.03-1.69-0.9-1.29-1.73c-0.33-0.58-0.69,0.48-0.67,0.81c-0.07,0.7-0.63,1.11-1.24,1.34c-0.3-0.13-0.86-0.98-0.24-1.17c0.21-0.41-0.38-0.88-0.74-1.09c-0.31-0.38-1.14-0.29-1.14-0.79c0.26-0.42,1-0.01,1.4,0.13c0.47-0.02,0.74-0.82,1.22-0.71c0.32,0.42,1.05,0.3,1.45,0.1c0.2-0.47,0.1-1.31-0.51-0.73c-0.79,0.14-1.61,0.05-2.42,0.07c-0.63,0.08-1.3-0.31-1.31-0.99c-0.09-0.91-1.17-0.73-1.82-0.84c0.18-0.08,0.13-1.08,0.4-1.17c0.83-0.06,1.47-0.67,2.14-1.09c1.26,0.04,2.27,1.01,3.55,1.04c0.33,0.24,0.67,0.85,0.58,1.29c-0.21,0.47-0.42,0.99-0.05,1.43c0.18,0.6,0.19,1.4,0.81,1.73c0.13-0.92,0.48-0.46,0.57,0.2c0.06,0.94,1.36,1.29,1.97,0.62c0.65-0.57,0.98-1.42,1.49-2.12c0.61-0.08,1.36-0.09,1.85-0.46c-0.19-0.68,0.57-0.82,1.01-1.11c0.67-0.54,1.38,0.2,2.04,0.38C710.03,205.09,711.8,205.78,713.62,206.3L713.62,206.3L713.62,206.3z M691.21,208.71c-0.93-0.06-1.48-1-2.32-1.23c-0.66-0.15-0.11,1.03-0.9,0.47c-0.61,0.01-0.81-0.85-1.36-0.48c-0.41,0.27-0.91,0.8-1.16,0.03c-0.48-0.4-0.3-1.02,0.37-0.8c0.61,0.08,1.27-0.06,1.78,0.37c0.53,0.05,0.89-0.58,1.45-0.32c0.79,0.15,1.7,0.34,2.03,1.17C691.16,208.18,691.31,208.45,691.21,208.71L691.21,208.71z M682.04,208.7c-0.59-0.04-1.16-0.45-1.37-1c0.2-0.56,0.98-0.32,1.46-0.42c0.37,0.18,0.89,0.53,0.95,0.94C682.98,208.56,682.33,208.53,682.04,208.7L682.04,208.7z M707.64,219.1c-0.45-0.15-1.49-0.02-0.85-0.67c0.4-0.67,0.83-1.58,1.72-1.62c0.48,0.22,0.94,0.6,0.45,1.08c-0.22,0.49-0.75,0.73-1.06,1.18C707.82,219.08,707.73,219.09,707.64,219.1z M673.8,218.7c-0.61,0.18-0.57,0.69-1.28,0.77c-0.46,0.35-1.01,0.18-1.42,0.54c-0.45,0.21-1.03-0.37-1.4,0.14c-0.66,0.17-1.27-0.36-1.95-0.24c-0.57,0.23-1.05-0.33-0.76-0.81c0.72-0.44,1.6-0.48,2.34-0.07c0.46,0.11,0.94,0.8,1.35,0.21c0.46-0.14,1.01-0.15,1.46,0.02c0.45-0.12,0.5-0.55,1.11-0.73c-0.03-0.31-0.12-0.66,0.46-0.21C673.84,218.41,673.77,218.59,673.8,218.7z M662.66,219.07c-0.61,0.04-0.8-0.82-0.11-0.83c0.42,0.25,0.62,0.37,1.19,0.35c0.14,0.74,0.12,0.48,0.62,0.13c0.44,0.18,0.52,0.6,0.62,0.97c-0.27-0.01-0.76-0.2-1.05,0.14c-0.77,0.47-0.4-0.72-0.94-0.06c-0.33,0.38-0.95,0.23-1.41,0.52c-0.48,0.11-0.95,0.18-1.43,0.12c-0.54-0.16-0.32-0.88-0.11-1.1c0.43-0.38,0.95-0.18,1.47-0.14c0.27,0.15,0.78,0.86,1.09,0.25C662.98,219.49,663.05,219.17,662.66,219.07L662.66,219.07z M656.29,219.6c-0.39-0.43-1.15-0.45-1.37-1c0.6,0.09,1.24-0.51,1.78,0c0.92,0.32,0.07,0.41-0.27,0.84C656.39,219.49,656.34,219.55,656.29,219.6z M631.05,200.13c-0.21,0.45-0.57,0.85-0.87,1.26c-0.46,0.42,0.4,0.87,0.75,1.07c0.44,0.33,1.34-0.11,1.42,0.67c0.19,0.59-0.07,1.4,0.6,1.72c0.9-0.17,0.26,0.53,0.09,0.97c0.32,0.49,0.85-0.63,1.36-0.09c0.54,0.02,0.82,0.44,0.96,0.89c0.53,0.35,0.76,0.79,0.43,1.39c-0.22,0.8-0.52,1.63-0.16,2.43c0.04,0.91,0.12,1.89-0.2,2.76c-0.51,0.16-0.62-0.75-1.11-0.79c-0.25,0.47-0.34,1-0.89,0.43c-0.65-0.58-0.84-0.06-0.35,0.49c-0.18,0.59-0.66-0.42-0.96-0.59c-1.15-1.31-2.5-2.43-3.93-3.42c-0.52-0.42-0.47-1.27-1.17-1.5c-1.06-0.6-1.77-1.66-2.45-2.62c-0.03-0.52-0.1-1-0.34-1.48c-0.84-1.35-1.49-2.95-2.86-3.86c-0.66-0.1-0.7-0.74-0.91-1.25c-0.17-0.63-0.63-1.24-0.55-1.88c-0.31-0.74-1.17-1.09-1.86-1.42c-0.61-0.06-0.82-0.53-0.78-1.1c-0.17-1.02-1.21-1.55-1.77-2.35c-0.6,0.29-0.99-0.04-1.32-0.53c-0.95-0.87-1.93-1.93-2.08-3.26c0.17-0.62,1.1-0.31,1.42,0.05c0.56,0.65,1.52,0.73,2.31,0.67c0.5-0.06,1.12-0.48,1.46,0.1c0.46,0.51,0.77,1.18,1.43,1.47c-0.12,0.58,0.06,0.96,0.61,1.27c0.9,0.8,2.02,1.32,3.05,1.91c0.13,0.55,0.02,0.99,0.72,0.97c0.42,0.5,0.8,1.15,1.39,1.42c0.38-0.09-0.18-1.04,0.64-0.46c0.32,0.53,0.64,1.28,1.37,1.24c1,0.21,0.77,1.55,1.64,1.92c0.75,0.37,1.74,0.11,2.33,0.82C630.64,199.67,631.03,199.88,631.05,200.13L631.05,200.13z M684.2,200.13c-0.05-0.61-0.65-1.17-0.24-1.78c-0.44-0.58-0.02-1.32,0.24-1.88c0.24-0.75,0.62-0.5,0.79,0.13c-0.07,0.62-0.8,1.11-0.6,1.77c0.37,0.26,0.83-0.53,0.86-0.93c0.28-0.15,1.14-0.89,1.09-0.24c0.28,0.64-0.23,0.84-0.69,1.16c-0.55,0.55,0.5,0.48,0.79,0.78c0.38,0.73-0.31,0.39-0.79,0.25c-0.45-0.27-1.07,0-0.91,0.57c0.04,0.81,0.46,1.5,1.01,2.06c0.13,0.74-0.71-0.25-0.96-0.48c-0.32-0.4-0.71-0.78-0.59-1.33V200.13 L684.2,200.13L684.2,200.13z M637.36,207.14c-0.61-0.3-1.54-0.51-1.49-1.37c-0.15-0.58-0.8-1.01-1.4-0.86c-0.25-0.27,0.33-1.41,0.63-0.77c0.32,0.87,0.56-1,0.78-0.18c0.2,0.9,0.69,1.86,1.63,2.13C637.19,206.27,637.11,206.73,637.36,207.14L637.36,207.14z M634.32,215.35c-0.23-0.54,1.04,0.23,1.02-0.42c0.11-0.6,0.36-0.48,0.51-1.12c0.1-0.62,0.78,0.11,1.23-0.11c0.33,0.13,0.82,0.8,1.13,0.04c0-0.41,0.93,0.01,1.14,0.3c0.42,0.15,0.79,0.55,1.32,0.31c0.52-0.31,0.89,0.47,1.05,0.87c0.13,0.59,1,0.08,1.39,0.48c0.91-0.21,1.93,0.34,2.79-0.13c0.1-0.47,0.33-1.09,0.93-0.93c0.37,0.37,0.51,0.9,1.15,0.83c0.74,0.07,1.58,0.03,2.24,0.38c0.63,0.25,0.2,0.84,0.59,1.24c0.55,0.5,1.39,0.64,2.13,0.62c0.46-0.29,1.16-0.25,1.51,0.12c-0.04,0.44-0.68,0.99-0.11,1.39c0.68,0.72-0.26,0.1-0.7,0.08c-0.94-0.23-1.94-1.03-2.89-0.37c-0.95,0.08-1.91-0.18-2.87-0.21c-0.98-0.02-1.95-0.26-2.76-0.84c-1.05-0.3-2.15-0.75-3.25-0.6c-0.63,0.47-1.54,0.31-2.18-0.04c-0.79-0.71-1.94-0.16-2.83-0.6c0.44-0.42,0.63-0.85-0.16-0.92C635.91,215.47,635.11,215.41,634.32,215.35L634.32,215.35z M675,223.09c0.44-0.45,0.03-1.27,0.67-1.55c0.9-0.72,2.38-0.75,2.85-1.96c0.95-0.35,2-0.11,2.95-0.47c0.51,0.04,1.05-0.25,1.53-0.12c0.19,0.49-0.7,0.72-1.08,0.89c-1.43,0.67-3.19,0.75-4.31,1.97c-0.52,0.46-1.04,0.97-1.75,1.07C675.59,223.07,675.32,223.1,675,223.09L675,223.09z M667.87,223.15c-0.93-0.42-1.71-1.22-2.77-1.35c-0.73-0.39,0.42-0.67,0.81-0.57c0.53-0.04,0.99-0.22,1.37,0.27c0.41,0.34,1.17,0.54,1.23,1.11C668.43,222.91,668.18,223.15,667.87,223.15z M661.82,191.24c0.07,0.42,0.52,1.06-0.31,0.95c-0.76-0.02-0.71,0.13-0.51,0.69c-0.19,0.41,0.7,0.63,0.77,1.15c0.24,0.48,0.98,0.95,0.5,1.51c-0.41,0.59,0.42,1.07,0.86,1.33c0.58,0.33,1.01,0.83,1.36,1.38c-0.67,0.38-1.43,0.03-2.1-0.07c-0.71,0.25-0.9,1.15-1.05,1.81c-0.2,0.73,0.38,1.44,0.07,2.17c-0.28,0.31-0.99-0.23-1.27,0.48c-0.64,0.49-0.92,1.28-1.64,1.69c0.13,0.17,0.78,1,0.44,1.14c-1-0.1,0.13,0.43-0.08,0.91c-0.31,0.52-0.81,0.94-0.95,1.56c-0.62,0.94-1.86,1.05-2.72,1.69c-0.31-0.44-0.13-1.02-0.47-1.47c-0.18-0.43-0.8-0.94-1.13-0.34c-0.43,0.7-0.74-0.09-1.11-0.35c-0.56-0.03-0.74-0.6-1.24-0.76c-0.26,0.36-0.31,1.23-0.97,1.03c-0.55-0.33-0.83,0.38-1.29,0.45c-0.33-0.2,0.01-0.97-0.28-1.35c-0.08-0.98-0.44,0.07-1,0.03c-0.59,0.31-1,0.24-1.41-0.12c-0.44-0.14-1.21,0.6-1.08-0.25c0.02-0.96-0.29-1.89-0.36-2.83c-0.21-0.74-0.82-1.22-1.51-1.5c-0.18-0.34,0.84-0.55-0.12-0.88c-0.58-0.34,0.23-0.98-0.28-1.39c-0.4-0.4-0.53-0.71-0.49-1.27c-0.17-0.73,0.3-1.43,0.7-2c0-0.59,0.66-1.06,0.88-0.33c0.17,0.81,0.94,1.24,1.45,1.82c0.53,0.25,0.95,0.46,1.48,0.04c0.63-0.34,1.3,0.58,1.92,0.07c0.77-0.31,1.02-1.4,1.94-1.38c0.81,0.13,1.51,0.8,2.36,0.71c0.5-0.58,1.32-0.5,1.94-0.81c0.58-0.5,0.76-1.34,1.17-1.98c-0.14-0.51-0.1-1.18,0.56-1.24c0.81-0.27,0.17-1.22,0.42-1.81c0.13-0.52,0.49-1.18,1.14-1.03c0.82,0.13,1.64,0.15,2.47,0.18C661.19,190.99,661.52,191.09,661.82,191.24L661.82,191.24z M666.56,200.13c0.27-0.67,0.44-1.52,1.22-1.79c0.43,0.65,0.77-0.01,0.97-0.45c0.22-0.62,1.11-0.38,1.52-0.09c0.46,0.56,1.19,0.38,1.82,0.36c0.58,0.13,1.16,0.64,1.72,0.24c1.1-0.09,2.43,0.35,3.33-0.5c0.02-0.47,0.19-0.83,0.69-1.15c0.41-0.74,0.73,0.07,0.45,0.54c-0.39,0.8-1,1.51-1.63,2.14c-0.86,0.1-1.89,0.67-2.62-0.05c-0.57-0.26-1.3-0.15-1.93-0.15c-0.9,0.01-1.81,0.02-2.71-0.01c-0.77-0.15-1.75,0-2.05,0.84c-0.52,0.72-0.52,1.94,0.38,2.36c0.59,0.12,0.42,0.9,0.92,1.07c0.48,0.05,1.09,0.21,1.3-0.37c0.28-0.38,0.52-1.14,1.09-0.68c0.53,0.38,0.99-0.18,1.53-0.22c0.55,0.01,0.86-0.37,1.31-0.53c0.64-0.03,0.71,0.9,0.44,1.1c-0.43-0.36-1.12-0.37-1.4,0.18c-0.38,0.68-1.07,1-1.78,1.24c-0.08,0.78-1.12-0.14-1.08,0.42c0.2,0.4,0.79,0.63,1.08,1.04c0.45,0.47,0.76,1.04,1.14,1.56c-0.21,0.61-0.42,1.37,0.19,1.82c0.28,0.22,1.12,0.9,0.5,1.05c-0.63-0.13-1.44,0.08-1.49,0.83c-0.12,0.4-1.1,0.13-1.12-0.28c-0.13-0.52,0.56-1.14-0.09-1.43c-0.36-0.44-1.08-0.66-1.22-1.22c0.19-0.45,0.6-0.95,0.31-1.46c-0.26-0.37-1-0.21-1.36,0.06c-0.7,0.25-0.14,0.79-0.17,1.31c0.22,0.86-0.56,1.75-0.02,2.55c0.42,0.55-0.25,0.98-0.27,1.5c0.58,0.65-0.1,0.63-0.61,0.81c-0.44,0.32-1.1,0.32-1.15-0.34c-0.2-0.51,0.41-0.95,0.29-1.5c0.07-0.73,0.13-1.48-0.02-2.19c0.06-0.67-0.62-0.75-1.08-0.5c-0.69,0.21-0.28-0.78-0.54-1.17c-0.3-0.59,0.22-1.01,0.57-1.41c0.39-0.55,0.72-1.19,0.52-1.89c-0.1-0.57,0.1-1.27,0.49-1.65c0.72,0.07,0.1-0.86,0.4-1.25C666.45,200.6,666.5,200.35,666.56,200.13L666.56,200.13z"/><path id="PH" d="M668.05,167.8c-0.52-0.42-1.02-0.89-1.14-1.58c-0.43-0.66,0.23-1.51-0.38-2.1c0.16-0.78,0.76,0.17,1.16,0.32c0.54-0.7-0.18-1.56,0.24-2.29c0.08-1.04-0.01-2.21,0.63-3.07c0.9-0.66,1.77,0.5,2.72,0.39c0.3-0.54,1.02-0.3,0.63,0.31c-0.34,0.45-0.22,1.15-0.01,1.61c0.52,0.24,0.82,0.74,0.45,1.26c-0.14,0.74-0.61,1.32-1.26,1.67c-0.45,0.24-0.9,0.45-0.79,1.03c-0.18,0.54-0.41,0.9,0.04,1.42c0.34,0.63,0.35,1.49,0.82,2c0.43,0.47,0.85,0.45,1.09-0.13c0.26-0.64,1.24-0.33,1.24,0.3c0.03,0.51,0.71,1.05,0.99,0.39c0.11-0.47,1.32,0.06,0.89,0.33c-0.81,0.12-0.46,0.68-0.05,1.07c0.65,0.44,0.16,0.92-0.42,0.53c-0.69,0.05-0.42-0.76-0.92-1.03c-0.47-0.34-0.88-0.96-1.48-0.99c-0.3,0.37,0.64,1.16-0.01,1.22c-0.45-0.57-1.05-1.04-1.74-1.25c-0.57-0.09-0.71,0.63-1.28,0.54c-0.39-0.33-0.99-0.45-1.11-1.01c0.4-0.55,0.74-0.63,1.31-0.32c0.84-0.19-0.08-0.54-0.45-0.66c-0.27-0.33-1.05-0.91-1.11-0.15C668.1,167.67,668.07,167.73,668.05,167.8L668.05,167.8z M669.68,172.97c-0.55-0.35-0.91-0.87-1.02-1.51c0.14-0.47-0.95-1.12-0.39-1.15c0.63-0.01,1.57-0.26,1.83,0.53c0.14,0.62,0.11,1.34-0.31,1.86C669.75,172.79,669.71,172.89,669.68,172.97L669.68,172.97z M679.07,175.37c-0.41-0.16-0.93-0.49-1.01-0.9c0.34-0.55-0.27-0.89-0.68-1.14c-0.42-0.14-1.04-0.98-0.23-0.93c0.58-0.05,1.43-0.42,1.72,0.32c0.12,0.82,0.14,1.68,0.48,2.46C679.29,175.29,679.2,175.34,679.07,175.37L679.07,175.37z M671.41,176.82c0.08-0.96,0.27-1.9,0.27-2.87c0.53,0.52,1.3,0.93,2.02,0.53c0.19,0.4-0.04,1-0.44,1.29C672.69,176.23,672.1,176.59,671.41,176.82 L671.41,176.82z M664.72,177.81c-0.83,0.02,0.22-0.55,0.32-0.9c0.45-0.51,0.06-1.47,0.77-1.74c0.04,0.43,0.14,0.93,0.41,1.43c0.03,0.49-0.88,0.51-1.11,0.97C664.98,177.66,664.85,177.73,664.72,177.81L664.72,177.81z M673.78,179.98c-0.39-0.55-1.31-0.71-1.4-1.42c0.07-0.55,1.02-0.39,0.95-1.11c0.18-0.48,0.2-1.12,0.48-1.51c0.47-0.43,1.06,0.12,0.65,0.61c-0.32,0.72-0.57,1.53-0.6,2.29C674.12,179.2,674.41,179.88,673.78,179.98L673.78,179.98z M661.18,181.31c-0.67,0,0.15-0.84,0.37-1.11c0.66-0.55,1.49-0.92,1.97-1.67c0.39-0.82,0.65-0.14,0.43,0.41c-0.19,0.58-0.93,0.58-1.25,0.99c-0.09,0.58-0.58,0.91-1.13,0.98C661.44,181.03,661.31,181.17,661.18,181.31z M680.68,185.4c-0.39-0.25-0.34-0.9-0.66-1.28c-0.52-0.3-0.66,0.64-0.89,0.98c-0.37,0.47,0.37,0.85,0.32,1.37c0.22,0.52-0.12,1.03-0.45,1.42c-0.68-0.28-0.23-0.77-0.36-1.26c-0.61-0.42-0.49,0.97-1.05,0.45c-0.82-0.4-1.83-0.98-1.75-2.03c-0.03-0.56,0.69-0.99,0.35-1.58c-0.4-0.39-0.96-0.76-1.54-0.66c-0.13,0.6-0.83,0.7-1.35,0.71c0.19-0.64-0.49-0.96-0.72-0.3c-0.27,0.55-0.58,1.07-0.91,1.59c-0.74-0.21-0.15-1.04,0.04-1.47c0.08-0.69,0.72-1.12,1.39-1.05c0.36-0.34,0.46-0.92,1.11-0.99c0.52-0.19,1.16-0.07,1.12,0.6c-0.11,0.63,0.78,0.14,1.06-0.03c0.07-0.6,0.6-1.04,1.13-0.57c0.39,0-0.08-1.21,0.55-1.05c0.28,0.99,0.42-0.27,0.96-0.11c0.61,0.11,0.28-0.94,0.17-1.3c-0.07-0.93,0.47,0.02,0.75,0.32c0.46,0.46,1.06,1.19,0.57,1.83c-0.43,0.79,0.9,0.05,0.72,0.73c-0.16,0.57-0.08,1.18,0.16,1.72C681.46,184.16,680.98,184.77,680.68,185.4L680.68,185.4z"/><path id="PG" d="M732.92,214.32c-0.21-0.44-0.77-0.73-1.18-0.37c-0.36-0.52-1-0.6-1.47-0.93c-0.29-0.56,0.72-0.28,1.06-0.4c0.66,0.13,1.47,0.41,2.06-0.03c0.18-0.92,0.46-0.04,0.92,0.17c0.68-0.03,1.61-0.1,1.81-0.89c0.15-0.66,0.86-0.34,1.28-0.61c0.15-0.4-0.2-1.15,0.02-1.35c0.5,0.57,1.08-0.28,1.27,0.1c0.36,0.42,0.27,0.95-0.03,1.38c-0.7-0.15-0.81,0.53-0.25,0.83c0.09,0.48-0.7,0.66-1.11,0.48c-0.62-0.23-0.66,0.43-1.04,0.75c-0.81,0.45-1.68,0.83-2.62,0.77C733.4,214.25,733.15,214.29,732.92,214.32L732.92,214.32z M713.79,220.7c-0.04-1.47,0.14-2.96-0.07-4.41c-0.08-0.53-0.6-1.11-0.17-1.59c0.45-0.67,0.11-1.53,0.19-2.3c-0.04-2.03-0.09-4.07-0.13-6.1c1.42,0.4,2.8,0.92,4.2,1.36c0.9,0.23,1.77,0.51,2.53,1.04c0.41,0.37,1.07,0.25,1.47,0.35c0.37,1.01,1.66,1.05,2.27,1.85c0.67,0.33-0.11,0.95,0.05,1.47c0.45,0.41,1.13,0.26,1.63,0.61c0.68,0.32,1.36,0.56,2.1,0.67c0.44,0.18,0.74,0.73,0.92,1.17c0.23,0.61-0.83,0.31-1.19,0.43c-0.68-0.04-0.83,0.59-0.39,1.03c0.45,1.02,1.47,1.52,2.33,2.13c0.1,0.75,0.52,1.4,1.02,1.93c0.48,0.3,1.17-0.2,1.6,0.1c-0.14,0.43-0.49,0.95,0.32,1.02c0.32,0.01,1.52,0.16,0.95,0.53c-0.93,0.12,0.06,0.55,0.5,0.58c0.54,0.1,1.07,0.38,1.1,0.99c0.22,0.66-0.82,0.35-1.18,0.33c-0.21-0.53-0.57-0.83-1.21-0.75c-0.95-0.17-1.87-0.52-2.85-0.41c-0.76,0.05-1.69-0.29-1.89-1.11c-0.44-0.56-1.37-0.53-1.67-1.26c-0.52-0.77-1.03-1.55-1.6-2.28c-0.94-0.13-1.88-0.32-2.74-0.71c-0.55-0.24-1.08,0.5-1.58,0.03c-0.8-0.61-0.16,0.21-0.21,0.67c-0.33,0.15-1.33-0.19-0.65,0.48c-0.5,0.26-1.2,0.15-1.77,0.06c-0.46-0.11-1.39-0.15-0.53,0.22c0.75,0.18,1.61,0.51,1.94,1.26c-0.76,0.28-1.41,1.07-2.28,0.74C715.81,220.81,714.8,220.8,713.79,220.7L713.79,220.7z"/><path id="MN" d="M660.04,89.13c-0.71,0.81-1.1,1.85-1.74,2.72c-0.24,0.48-0.69,0.93-0.82,1.42c0.04,0.66,0.46,1,1.04,0.56c0.66-0.32,1.46-0.36,2.17-0.22c0.33,0.55,0.9,0.56,1.32,0.09c0.41-0.39,0.94-0.51,1.47-0.3c1.14,0.15,2.04,0.91,2.71,1.8c0.4,0.22,1.01,0.86,0.3,1.12c-0.46,0.14-1.01-0.14-1.53-0.04c-1.31-0.29-2.63,0.18-3.86,0.62c-0.43,0.31-1-0.19-1.47,0.17c-0.84,0.19-0.6,1.34-1.38,1.59c-0.9,0.52-1.94,0.44-2.93,0.36c-0.85,0.59-1.64,1.52-2.77,1.39c-0.76,0.06-1.54-0.02-2.15-0.5c-0.67-0.29-1.45-0.07-1.85,0.54c-0.44,0.36-0.54,0.99-0.09,1.38c0.19,0.38,1.12,0.51,0.75,1.04c-0.61,0.56-1.58,0.33-2.21,0.91c-0.68,0.57-1.25,1.35-2.18,1.53c-0.83,0.38-1.72,0.64-2.64,0.45c-1.04,0.01-2.09,0.05-3.13,0.08c-1.77,0.48-3.47,1.2-5.19,1.81c-0.58,0.2-0.87-0.46-1.34-0.51c-0.85-0.01-1.72,0.04-2.54-0.26c-0.99-0.26-2.02-0.51-2.82-1.19c-1.23-0.38-2.55-0.25-3.82-0.32c-2.13-0.04-4.28,0.24-6.37-0.26c-0.76-0.13-1.6,0.09-2.32-0.14c-1.05-0.64-1.55-1.85-2.33-2.77c0.11-0.76-0.64-0.51-1.1-0.73c-1.44-0.51-2.73-1.5-4.3-1.57c-1.52-0.2-3.21,0.2-4.58-0.64c-0.57-0.44-0.04-0.92,0.26-1.31c0.12-0.49,0.54-1.05,0.45-1.5c-0.6-0.92-1.21-1.89-2.03-2.61c-0.79-0.33-1.69-0.34-2.49-0.61c-0.79-0.47-1.79-0.75-2.3-1.56c-0.15-0.47-0.7-1.13,0.07-1.24c0.78-0.57,1.75-0.46,2.64-0.59c1.35-0.29,2.23-1.57,3.61-1.79c1.26-0.33,2.52-1.02,3.85-0.68c1.16,0.24,2.35,0.19,3.52,0.35c0.52,0.44,0.84,1.27,1.61,1.25c0.93,0.02,1.86,0.04,2.79,0.1c0.78-0.06,1.53,0.14,2.26,0.36c0.88,0.01,1.74-0.49,2.31-1.11c0.44-0.6-0.4-0.78-0.53-1.27c-0.45-0.5-0.12-1.01,0.36-1.32c0.5-0.5,1.1-0.88,1.65-1.32c1.24,0.31,2.53,0.34,3.78,0.65c1.15,0.13,2.19,0.71,3.33,0.86c0.29,0.41,0.03,1.07,0.51,1.42c0.58,0.78,1.61,0.86,2.47,1.15c0.93,0.19,1.84-0.29,2.76-0.41c1.22-0.23,2.47-0.06,3.7-0.04c1.29,0.29,2.25,1.36,3.58,1.55c0.69,0.3,1.38,0.57,2.14,0.64c1.63,0.53,3.35,0.38,5.03,0.25c1.16-0.15,2.35-0.18,3.47-0.5c0.88-0.3,1.46-1.15,2.38-1.4c0.72-0.37,1.61-0.37,2.35-0.09c0.73,0.61,1.75,0.93,2.65,0.57C659.03,88.95,659.61,88.86,660.04,89.13L660.04,89.13z"/><path id="CN" d="M643.76,159.87c-0.58-0.28-1.17-0.54-1.73-0.86c0.01-0.6-0.53-1.46,0.15-1.85c0.58-0.19,0.88-1.03,1.56-0.76c0.06-0.82,0.74-0.42,1.16-0.37c0.34-0.45,1-0.18,1.48-0.42c0.35,0.34,0.89,0.8,0.17,1.08c-0.43,0.36-0.8,0.94-0.82,1.48c0.29,0.59-0.63,0.64-0.99,0.83C644.22,159.06,644.04,159.52,643.76,159.87z M627.17,150.01c-0.49,0.17-1.19,0.5-0.9,1.14c0.08,0.53,0.7,1.11,0.25,1.61c-0.39,0.3-1.09,0.12-1.41-0.26c-0.27-0.58-0.4-0.81-0.95-0.27c-0.5,0.25-1.19,0.14-1.38-0.43c-0.19-0.43-0.41-1.09-1-0.84c-0.57,0.2-1.12-0.34-0.67-0.85c0.15-0.49,0.59-0.93,0.51-1.45c-0.45-0.25-1.2,0.27-1.29-0.43c-0.13-0.56-0.11-1.22-0.33-1.73c-0.45-0.14-1.04-0.03-1.49,0.12c-0.32,0.16-1.21,0.81-1.19,0.11c0.39-0.56,0.04-1.15-0.01-1.75c0.38-0.54,0.73-1.11,1.36-1.38c0.72-0.51,1.16-1.39,1.32-2.23c-0.02-0.8-0.07-1.66-0.28-2.41c-0.39-0.14-1.09,0.1-1.14-0.57c-0.06-0.66-0.52-1.32-1.19-1.43c-0.48,0.14-0.5,0.74-1.12,0.42c-0.58-0.21-1.22-0.17-1.79-0.37c0.19-0.41,0.81-0.89,0.26-1.29c-0.38-0.24-0.74-1.08-1.21-0.78c-0.61,0.3-1.22,1.03-1.95,0.61c-0.49-0.12-0.96-0.55-1.43-0.13c-0.75,0.4-1.38,1.01-2.25,1.15c-1.05,0.57-1.63,1.95-2.95,1.97c-0.65,0.14-0.94,0.09-1.2-0.54c-0.83-0.52-2,0.1-2.81-0.52c-0.48-0.61-1.15,0.13-1.56,0.48c-0.55,0.52-0.96,1.16-1.46,1.73c-0.29-0.5-0.13-1.09-0.21-1.59c-0.43-0.49-1.05,0.29-1.56-0.05c-0.47,0.12-0.87,0.18-1.43,0.15c-0.53,0.1-0.77-0.66-1.36-0.62c-0.45,0.06-0.63,0.73-1.21,0.11c-0.15,0.15-0.38,0.62-0.57-0.14c-0.32-0.56-0.84-0.34-1.37-0.41c-0.88,0.24,0.15-1.14-0.71-0.6c-0.45,0.28-0.94-0.46-1.4-0.6c-0.38-0.17-0.09-1.1-0.81-0.95c-0.6,0.18-0.86,0.28-1.2-0.36c-0.33-0.57-0.78-0.25-1.22-0.54c-0.45-0.45-0.97-0.74-1.59-0.86c0.09-0.73-0.56-0.7-1.09-0.79c-0.61-0.03-0.6,0.41-0.95,0.87c-0.52,0.13-0.62-0.73-1.16-0.84c-0.28-0.33-1.41-0.03-1.08-0.71c-0.41-0.19-0.92-0.77-1.43-0.49c-0.38-0.38-0.67-0.84-1.16-1.09c-0.38,0.61-1.11,0.04-0.56-0.4c-0.48-0.38,0.05-0.97-0.6-1.26c-0.36-0.4-0.43-1.08,0.3-1c0.26-0.02,0.41,0.94,0.99,0.48c0.35-0.35,1.21-0.5,0.63-1.06c0.09-0.72-0.36-0.57-0.74-0.92c-0.34-0.23-1.19-0.01-1.12-0.66c-0.06-0.51-0.21-1.08,0.42-1.28c-0.33-0.46-0.78-0.8-1.37-0.76c-0.35-0.28-0.43-0.93-0.68-1.35c-0.02-0.79-0.24-0.59-0.82-0.73c-0.67-0.27-1.54,0.08-2.05-0.56c-0.32-0.48-0.76-0.25-1.17-0.22c-0.3-0.47-0.98-0.46-0.38-1.02c0.13-0.58-0.45-1.2-1.04-1.06c-0.71,0.37-0.22-0.55-0.99-0.44c-0.52,0.05-0.79,0.09-1.25-0.19c-0.28-0.48,0.76-0.07,1.03-0.49c0.23-0.42,0.32-0.81-0.01-1.2c0.26-0.52-0.17-0.71-0.19-1.25c-0.18-0.65-0.9-0.45-1.39-0.59c-0.41,0.43-1.05,0.11-1.08-0.45c0.4-0.44,0.03-1.16,0.25-1.72c0.03-0.91,1.14-1,1.75-1.42c0.75-0.27,1.45-0.76,2.24-0.84c0.1,0.6,0.52,0.87,1.09,0.55c0.52-0.05,1.15-0.08,1.33-0.68c0.27-0.48,0.68-1.2,1.34-0.91c0.98,0.31,2.2,0.2,2.84-0.69c0.7-0.92,1.97-0.9,2.99-1.22c0.51-0.02,1.03-0.34,0.75-0.9c-0.15-0.55-0.17-1.19,0.38-1.51c0.41-0.29,1.01-0.67,0.67-1.24c-0.36-0.54-0.77-1.09-0.65-1.78c0.2-0.62-0.31-0.92-0.86-0.73c-0.55-0.3,0.21-0.94,0.62-0.91c1.05-0.1,2.1-0.38,3.14-0.47c0.64,0.17,1.37,0.53,2.02,0.27c0.64-0.3,0-0.85-0.36-1.08c-0.11-0.43,0.34-0.96,0.52-1.4c0.45-0.69,0.59-1.56,1.21-2.13c1.61,0.36,3.3,0.87,4.95,0.45c0.51-0.29,0.74-0.85,0.42-1.38c-0.17-0.53-0.17-1.12,0.28-1.49c0.6-0.54,1.56-0.03,2.15-0.6c-0.03-0.49,0.05-1.09,0.67-1.11c0.58-0.18,1.21-0.01,1.79-0.18c0.23,0.79,0.59,1.61,1.42,1.9c0.73,0.41,1.45,0.9,2.31,0.92c0.73,0.19,1.6,0.2,2.03,0.94c0.55,0.71,1.11,1.42,1.56,2.21c-0.37,0.64-0.37,1.49-1.03,1.93c-0.15,0.85,0.91,1.09,1.55,1.19c1.72,0.26,3.56-0.1,5.19,0.67c1.1,0.47,2.14,1.22,3.37,1.27c0.08,0.88,0.88,1.46,1.31,2.19c0.44,0.68,1.11,1.39,1.99,1.21c1.54-0.11,3.02,0.46,4.57,0.35c2.24-0.04,4.51-0.14,6.73,0.16c0.69,0.2,1.18,0.81,1.92,0.94c1.17,0.37,2.38,0.75,3.62,0.61c0.57-0.09,0.78,0.69,1.39,0.53c0.92-0.22,1.8-0.69,2.73-0.96c1.24-0.44,2.48-1.03,3.83-0.89c0.96-0.05,1.91-0.07,2.86,0c0.88-0.07,1.67-0.53,2.49-0.83c0.84-0.64,1.51-1.64,2.66-1.72c0.41-0.01,1.31-0.41,0.85-0.87c-0.54-0.32-1.36-0.98-0.84-1.66c0.4-0.66,1.18-1.21,1.97-0.85c0.59,0.31,1.21,0.63,1.9,0.53c0.67,0.02,1.35,0.01,1.88-0.45c0.6-0.34,1.05-1.12,1.82-0.92c0.98,0.13,2.07-0.05,2.83-0.73c0.15-0.7,0.63-1.38,1.41-1.38c0.53,0.12,0.96,0.02,1.46-0.22c1.08-0.35,2.22-0.7,3.35-0.44c0.51-0.09,1.06,0.15,1.52,0.05c0.68-0.22,0.2-0.88-0.23-1.08c-0.67-0.81-1.45-1.61-2.53-1.79c-0.56-0.17-1.18-0.28-1.63,0.19c-0.39,0.35-0.94,0.66-1.28,0.06c-0.51-0.37-1.25-0.13-1.84-0.08c-0.39,0.08-1.17,0.76-1.32,0.12c-0.39-0.56,0.1-0.99,0.38-1.46c0.65-0.97,1.2-2.02,1.85-2.99c0.37-0.4,0.95,0.26,1.38,0.37c0.77,0.51,1.67-0.14,2.47-0.29c0.66-0.23,1.43-0.36,1.99-0.78c0.39-0.51-0.76-0.79-0.22-1.27c0.91-0.9,1.53-2.22,2.85-2.59c0.59-0.07,0.8-0.71,0.66-1.21c-0.42-0.62-1.25-0.38-1.88-0.34c0.34-0.64,1.14-0.87,1.69-1.32c1.29-0.5,2.7-0.33,4.04-0.59c1.25-0.15,2.6-0.25,3.73,0.42c0.9,0.57,1.94,0.13,2.92,0.23c1.02,0.46,1.58,1.48,1.98,2.47c0.63,1.58,1.67,2.95,2.33,4.52c0.42,0.97,1.63,1,2.51,1.26c1.41,0.16,2.75,0.65,4.08,1.11c0.41,0.54,0.49,1.33,0.78,1.97c0.09,0.62,0.54,0.85,1.12,0.69c1.03-0.07,2.11,0.1,3.07-0.37c1.34-0.42,2.73-0.76,4.14-0.78c0.47,0.17,0.4,0.84,0.44,1.27c-0.46,0.47-1.3,0.57-1.43,1.29c-0.5,1.62-1.33,3.17-2.48,4.43c-0.51,0.59-1.27,0.02-1.88-0.12c-0.49-0.28-1.02-0.2-1.44,0.17c-0.39,0.34-1.2,0.41-1.09,1.06c0.15,0.66,0.48,1.31,0.38,2.02c-0.07,0.52,0.03,0.94-0.17,1.4c-0.48,0.56-1.24,0.64-1.87,0.95c-0.29-0.35-0.67-1.01-1.14-0.49c-0.54,0.27-0.3,1.09-0.94,1.23c-0.73,0.49-1.66,0.82-2.51,0.41c-0.61-0.08-0.93,0.63-0.44,1.01c0.63,0.52-0.06,0.71-0.57,0.68c-0.69,0.1-1.55-0.1-1.89-0.77c-0.57-0.09-1.01,0.23-1.23,0.74c-0.81,1.37-2.52,1.59-3.79,2.32c-0.46,0.17-0.75,0.96-1.07,1.04c-0.92,0.33-2.05,0.18-2.96,0.69c-1.04,0.42-2.12,0.8-2.95,1.56c-0.48,0.38-1.22,0.25-0.45-0.23c0.22-0.24,1.33-0.83,0.57-0.9c-0.68,0.25-0.81-0.51-0.18-0.75c0.54-0.37,0.86-0.95,1.41-1.31c0.32-0.5-0.5-0.82-0.85-1.05c-0.68-0.37-1.61-0.34-2.1,0.31c-0.56,0.53-1.02,1.34-1.91,1.28c-0.74,0.16-1.5,0.6-1.66,1.4c-0.19,0.52-0.79,0.61-1.27,0.55c-0.45,0.63-0.82,0.17-1.18-0.18c-0.83-0.13-1.01,0.89-1.31,1.45c0.09,0.87,1.09,1.06,1.78,1.24c0.46,0.06,1.23-0.28,1.41,0.3c0.06,0.62-0.43,1.39,0.18,1.85c0.78,0.18,1.58-0.05,2.16-0.59c0.46-0.53,1.2-0.97,1.91-0.8c0.62,0.47,1.32,1,2.15,0.76c0.49-0.13,0.94,0.16,1.42,0.14c-0.33,0.31-0.05,1.38-0.56,1.18c-0.96-0.49-1.93,0.18-2.86,0.41c-0.53,0.22-0.87,0.57-0.78,1.18c-0.68,0.53-0.54-0.44-1.07-0.25c-0.4,0.11,0.09,0.97-0.57,1.21c-0.51,0.57-1.28,0.89-1.7,1.52c-0.2,0.72,0.57,0.62,0.95,0.98c0.71,0.49,1.61,0.91,1.77,1.85c0.1,0.59,0.47,1.01,0.92,1.38c0.44,0.42-0.3,1.17,0.38,1.37c0.62,0.04,0.68,0.74,1.17,0.93c0.48,0.06,1.03,0.89,0.31,1.03c-0.95,0.22,0.21,0.46,0.21,1.01c0.35,0.46,0.06,1.06-0.54,0.9c-0.88,0.19-1.53,0.9-2.45,0.98c-0.91,0.25-0.38,0.44,0.27,0.53c0.62,0.07,1.25-0.75,1.86-0.33c0.3,0.44,0.74,0.79,1.31,0.72c0.08,0.55-0.84,0.62-0.86,1.01c0.68-0.01,0.52,0.35,0.24,0.88c-0.24,0.47-0.3,1.01-0.38,1.5c-0.19,0.89-0.76-0.34-1.01,0.44c-0.52,0.62-0.91,1.32-1.15,2.09c-0.52,0.21-0.69,0.74-1.1,1.05c-0.49-0.07-1.26,0.17-0.76,0.75c0.04,0.47-0.25,0.96-0.16,1.49c-0.14,0.56-0.94,0.39-1.01,1.01c-0.19,0.53-0.43,1.04-1.02,1.22c-0.26,0.63-0.74,0.43-1.26,0.3c-0.64,0.05-0.16,0.87-0.33,1.18c-0.54,0.44-1.05,0.94-1.78,1.01c-0.42,0.27-0.83,0.61-1.31,0.78c0.1,0.63-0.37,0.78-0.93,0.78c-0.52,0.12-0.68,0.77-1.29,0.3c-0.58-0.34-0.82,0.5-1.38,0.51c-0.78,0.43-0.36-0.68-1.12-0.32c-0.48-0.01-0.94,0.6-1.36,0.3c-0.28-0.59-0.79-0.66-0.64,0.05c0,0.48-0.04,1.15-0.68,1.14c-0.75-0.59-0.41,0.59-1.04,0.52c-0.59,0.05-1.23,0.39-1.77-0.02c-0.46,0.22-0.7,0.87-1.33,0.63c-0.58-0.09-1.12,0.27-1.57,0.53c-0.66-0.24-0.64,0.1-0.93,0.59c-0.23,0.48,0.6,0.79,0.72,1.16c-0.25,0.3-1.03,0.65-1.27,0.23c-0.47-0.6-0.84-1.47-0.28-2.14c0.44-0.47-0.72-0.92-0.87-0.35c-0.44,0.3-1.2,0.06-1.46-0.41c-0.46-0.87-0.47,0.22-0.91,0.38c-0.53-0.04-0.96,0.03-1.45-0.15c-0.92-0.03-1.85-0.46-2.39-1.21c-0.36-0.6,0.46-0.97,0.34-1.53c-0.17-0.6-0.94-0.15-1.39-0.31c-0.67-0.02-1.28-0.32-1.7-0.83c-0.92,0.25-1.44,1.29-2.47,1.23c-0.89,0.14-1.93-0.17-2.63,0.55c-0.53,0.15-0.92-0.71-1.51-0.4C627.7,149.75,627.43,149.91,627.17,150.01L627.17,150.01z"/><path id="JP" d="M704.4,117.27c0.39-0.08,1.28-0.63,1.35-0.11c-0.19,0.33-0.9,0.48-0.77,1.07c0.07,0.71,0.8,0.31,1.07-0.04c0.94-0.42,2.03-0.67,2.79-1.4c0.15-0.58,0.69-0.75,1.13-1.03c0.58-0.36,0.48-1.13,1.04-1.5c0.36-0.69,0.87-1.52,0.7-2.38c-0.81-0.25-0.08-0.65-0.08-1.11c-0.21-0.59-0.11-1.01,0.47-1.26c0.27-0.55,0.76-0.64,0.97-0.01c0.26,0.12,1.33-0.05,1.1-0.48c-0.02-0.41-1.26-0.49-0.38-0.84c0.33-0.36,1.05-0.01,1.11,0.39c0.06,0.5-0.18,1.21,0.2,1.57c0.49,0.51,0.76,1.24,1.03,1.87c0.09,0.77-0.43,1.39-0.95,1.88c-0.3,0.48-0.04,1.03-0.81,1.07c-0.74,0.18-0.87,1.08-0.6,1.68c0.13,0.61,0.24,1.37-0.36,1.77c-0.49,0.5-0.72,1.44-0.29,2.03c0.84,0.41-0.11,0.5-0.45,0.84c-0.27,0.44-0.13,1.15-0.85,1.17c-0.7,0.53-0.64-0.31-0.31-0.73c0.46-0.62-0.17-0.81-0.58-0.36c-0.27,0.61-0.86,0.43-1.26,0.8c-0.19,0.35-0.02,1.17-0.68,1.06c-0.09-0.39-0.02-1.26-0.67-0.76c-0.53,0.18-0.53,1.09-1.18,0.84c-0.52-0.07-1.04,0.06-1.56,0.13c-0.27-0.4-0.75-0.86-1.21-0.81c-0.32,0.29-0.67,0.91,0.01,0.98c0.86,0.41-0.2,0.63-0.67,0.64c-0.75,0.27-1.02,1.11-1.46,1.72c-0.48-0.33-1.07-0.43-1.54-0.77c0-0.47-0.49-1.13,0.19-1.34c0.63-0.24,0.3-1.04-0.3-0.6c-0.64,0.17-1.33-0.4-1.94,0.07c-0.44,0.39-0.91,0.23-1.4,0.24c-0.77,0.19-1.55,0.34-2.29,0.65c-0.2-0.6-0.98-0.33-1.08,0.17c0.24,0.9-0.54,0.27-1.03,0.28c-0.55-0.14-1.18,0.22-1.68-0.1c-0.04-0.76,0.67-0.56,1.17-0.71c1.16-0.58,2.01-1.62,3.02-2.44c0.73-0.35,0.61,0.29,1.11,0.19c1.45-0.43,3.01-0.26,4.44-0.78c-0.07,0.58,0.51,0.86,0.95,0.53c0.62-0.09,0.84-0.58,0.84-1.13c0.32-0.73,1.28-1.02,1.56-1.75C704.33,118.11,704.05,117.57,704.4,117.27L704.4,117.27z M695.46,127.76c-0.71-0.3-0.54-1.23-1.15-1.63c-0.25-0.37,0.82-0.42,0.94-0.86c0.28-0.79,0.68-0.2,1.25-0.28c0.8,0.07,1.12-1.12,1.95-0.83c0.37,0.32,1.06,0.1,1.25,0.61c-0.13,0.53-0.54,0.85-0.93,1.23c-0.39,0.76-0.67,0-1.21-0.09c-0.63-0.1-1.24,0.32-1.37,0.95C696.13,127.31,695.87,127.57,695.46,127.76L695.46,127.76z M691.12,131.45c-0.84,0.06,0-0.73-0.06-1.15c-0.23-0.69-0.69,0.26-0.87,0.6c-0.39,0.61-0.85-0.37-0.27-0.64c0.24-0.45-0.57-1.03-0.15-1.33c0.38-0.32,1.01-0.68,0.75-1.26c-0.2-0.42-0.73-1.16-1.03-0.42c-0.32,0.71-0.73,0.23-0.91-0.24c-0.56-0.2-0.7-0.92,0.02-0.89c0.58,0.11,1.35,0.07,1.58-0.57c0.22-0.44,1.01-0.45,1.3-0.14c0.27,0.57,1,0.53,1.48,0.27c0.75,0.49-0.85,0.75-0.04,1.01c0.44,0.26,0.89,0.81,0.24,1.12c-0.85,0.63-0.39,1.86-1,2.61C691.64,130.56,691.42,131.05,691.12,131.45L691.12,131.45z M711.94,108.37c-0.62-0.37,0.04-0.87,0-1.33c-0.27-0.35-0.99-0.44-0.85-1.15c-0.04-0.5,0.77-0.6,1.15-0.8c0.65-0.13,0.69-0.74,0.35-1.03c0.42-0.66,0.93,0.32,1.47,0.26c0.75-0.02,0.49-0.75,0.53-1.27c0.16-0.4,1.14-0.31,0.95-0.99c0.09-0.65,0.09-1.31-0.33-1.85c-0.36-0.56,0.2-0.89,0.66-1.09c1.66,1.45,3.35,3.21,5.65,3.47c0.85,0.34,1.28-0.75,2.06-0.82c-0.1,0.44-0.9,0.84-0.49,1.34c0.11,0.37,1.02,0.93,0.47,1.16c-0.65,0.33-1.44,0.85-2.16,0.37c-1.07-0.08-1.69,0.97-2.31,1.67c-0.06,0.7-0.63,0.67-1.09,0.29c-1.02-0.38-1.96-1.24-3.11-1.01c-0.43-0.02-1.03,0.9-1.26,0.36c-0.26-0.58-0.91-0.43-1.31-0.09c-0.45,0.5,0.65,0.61,0.97,0.84c0.29,0.16,1.35,0.55,0.65,0.78c-0.44,0.18-0.97-0.3-1.27,0.3C712.46,108.04,712.28,108.34,711.94,108.37L711.94,108.37z"/><path id="TW" d="M668.63,151.37c-0.26-0.41-0.56-0.9-0.91-1.3c-0.53-0.73-0.79-1.79-0.33-2.61c0.64-0.86,1.18-1.82,1.9-2.6c0.49-0.05,0.9-0.75,1.35-0.49c0.82,0.28,0.25,0.61,0.15,1.14c0.09,0.54-0.18,0.97-0.44,1.4c0,1.05-0.44,2.02-1.03,2.86c-0.32,0.44-0.34,0.95-0.47,1.47C668.78,151.27,668.7,151.32,668.63,151.37z"/><path id="KP" d="M685.34,114.46c-0.33,0.41-0.71,1-1.32,0.71c-0.64-0.08-1.48-0.3-1.85,0.4c-0.31,0.26-0.71,1.11-1.13,0.62c-0.37,0.53-0.85,0.66-1.04-0.07c-0.54-0.45-0.77,0.65-1.09,0.59c-0.12-0.61-0.88-0.64-1.13-1.09c-0.34-0.67,0.54-1.14,1.1-1.22c0.47-0.48-0.96-0.44-0.24-1.06c0.33-0.46,0.51-1.05-0.23-1.19c-0.49-0.38-1.08,0.34-1.51-0.16c-0.66-0.24-0.36-0.76,0.03-1.1c0.83-0.94,2.21-1.01,3.21-1.7c0.69-0.36,1.08-1.03,1.49-1.66c0.53-0.32,0.95-0.09,1.27,0.33c0.7,0.45,1.59,0.37,2.34,0.12c-0.16-0.44-0.92-0.98-0.33-1.4c0.5-0.31,1.05,0.2,1.61,0.04c0.64-0.07,1.19-0.51,1.76-0.8c0.1-0.56,0.46-1.24,1.11-1.2c0.39,0.47,0.84,0.92,1.04,1.51c-0.66,0.56-1.82,0.89-1.86,1.88c0.15,0.56-0.24,1.1-0.27,1.66c-1.2-0.01-1.77,1.32-2.85,1.59c-0.84-0.09-1.69,0.4-1.88,1.26c-0.44,0.6,0.48,0.91,0.85,1.23C684.75,113.97,685.06,114.2,685.34,114.46L685.34,114.46z"/><path id="KR" d="M681.31,116.39c0.71-0.35,0.98-1.5,1.91-1.31c0.6-0.06,1.4,0.47,1.78-0.22c0.31-0.75,0.79,0.02,1.13,0.36c0.58,0.91,1.5,1.7,1.67,2.8c-0.01,0.72,0.03,1.45-0.16,2.16c0.66,0.04,0.73,0.26,0.31,0.87c-0.34,0.43-0.57,1.27-1.21,1.21c-0.53-0.41-0.97,0.1-1.32,0.47c-0.49,0.04-0.85-0.49-1.38-0.15c-0.79,0.16-1.26,1.07-2.09,1.05c-0.62,0.68-0.46-0.2-0.59-0.66c-0.09-0.56-0.52-1.23,0.08-1.65c0.3-0.29,0.65-0.98,0.35-1.32c-0.67-0.28,0.05-1.38-0.78-1.44c-0.96,0.04,0.04-0.45,0.44-0.6c0.44,0.46,1.28,0.09,0.71-0.46C681.81,117.17,681.57,116.76,681.31,116.39L681.31,116.39z"/><path id="AU" d="M726.6,297.25c-0.91-0.49-2.12-0.62-2.61-1.65c-0.16-0.32-1.01-0.94-0.61-1.14c0.37,0.18,1.11,0.39,0.6-0.27c-0.83-0.8-1.76-1.68-1.85-2.89c-0.19-0.8,0.72-0.23,1.11-0.16c0.92,0.2,1.83,0.48,2.72,0.74c0.9,0.08,1.7-0.51,2.61-0.32c0.32-0.36,1.01-0.77,1.37-0.27c0.28,0.42,0.24,1.1,0.24,1.63c-0.28,0.78-0.86,1.46-0.88,2.33c-0.33,0.61-1.19,0.35-1.62,0.88C727.24,296.41,727.15,297.16,726.6,297.25L726.6,297.25z M716.88,224.34c0.54,0.21,0.99,0.64,0.94,1.26c0.04,0.49,0.04,1.32,0.75,1.18c0.56,0.3-0.69,1.09-0.04,1.27c0.95,0.24,0.78,1.4,0.86,2.16c0.08,0.75,0.34,1.52,0.75,2.13c0.46,0.5,0.85-0.21,1.3-0.33c0.12,0.61,0.59,0.75,1.04,1.05c0.54,0.2,0.88,0.51,0.76,1.13c-0.05,0.76,0.49,1.41,0.3,2.18c-0.08,0.54,0.58,0.82,0.77,1.32c0.72,0.8,0.93,1.95,0.54,2.96c0.5,0.54,0.48,1.36,0.96,1.88c0.76,0.39,1.45,1.02,2.35,1.02c0.34,0.75,1.11,1.24,1.91,1.36c0.41,0.02,1.42-0.06,0.89,0.58c-0.48,0.49,0.06,0.98,0.54,1.16c0.71,0.24,0.65,1.14,0.95,1.71c0.35,0.7,0.21,1.81,1.13,2.06c0.81,0.66-0.17-1.05,0.44-0.61c0.43,0.33,0.98,0.4,1.43,0.66c0.33,0.64,0.06,1.47,0.31,2.11c0.58,0.52,1.19,1.08,1.99,1.18c0.56,0.36,0.41,1.38,1.18,1.43c0.53,0.22,0.13,1.27,0.86,1.32c0.74,0.12,0.62,1.1,0.87,1.64c0.1,0.72,0.16,1.5,0.02,2.21c-0.45,0.5,0.08,0.93,0.33,1.39c0.5,0.74,0.76,1.71,0.59,2.59c-0.46,1.09-0.49,2.3-0.97,3.39c-0.38,0.63,0.08,1.31-0.1,1.99c-0.09,1-1.03,1.63-1.19,2.61c-0.33,0.48-0.65,1.04-1.31,1.06c-0.53,0.18-0.83,0.82-1.11,1.28c-0.18,0.73-0.2,1.53-0.79,2.08c-0.5,0.39-0.2,0.99-0.45,1.48c-0.25,0.73-1.38,0.73-1.41,1.61c-0.35,1.07-0.41,2.22-0.44,3.33c-0.22,0.8-0.96,1.36-1.79,1.31c-1.04,0.15-2.21-0.1-3.1,0.62c-0.64,0.39-1.28,0.83-1.95,1.09c-0.19,0.49-1.15,0.2-1.26,0.4c0.63,0.66,0.28,0.53-0.34,0.17c-0.42-0.3-1.1-0.37-1.41-0.71c0.13-0.74-0.77-1.03-1.26-1.37c-0.34-0.11-1.52,0.24-1.01,0.54c0.9,0.35,0.08,0.44-0.45,0.57c-0.71,0.28-1.37,0.72-2.1,0.9c-1-0.39-1.95-0.92-3.01-1.13c-0.55-0.34-0.92,0.23-1.37,0.08c-1.03-0.22-1.87-0.89-2.61-1.61c-0.53-0.2-0.72-0.78-0.87-1.26c0.17-0.85,0.06-1.81-0.66-2.38c-0.49-0.24-0.08-1.2-0.62-1.16c-0.59-0.03-1.04,0.54-1.65,0.5c-0.81,0.22-0.65-0.41-0.13-0.72c0.22-0.52,0.49-1.28-0.04-1.7c-0.4-0.29-0.72-1.31-1.02-0.44c-0.44,0.51-0.32,1.37-0.79,1.81c-0.54-0.05-0.97,0.16-1.48,0.22c0.23-0.49,0.25-1.14,0.98-0.85c0.79-0.27-0.02-1.23,0.45-1.71c0.28-0.59,0.83-1.07,0.72-1.78c0.53-0.11,0.81-0.67,0.32-1.1c-0.4-0.76-0.44-0.51-0.59,0.15c-0.42,0.34-0.94,0.56-1.14,1.12c-0.12,0.62-0.63,0.94-1.22,1.04c-0.74,0.45-1.49,0.97-1.8,1.82c-0.2,0.63-0.75,0.94-0.95,0.14c-0.22-1.04-0.65-2.04-1.45-2.77c-0.18-0.47-0.34-1.19-1-0.89c-0.54,0.12-0.86-0.71-0.3-0.93c-0.05-0.55-0.63-0.9-1.02-1.22c-0.55-0.15-1.21,0.32-1.73-0.11c-0.43-0.28-0.93-0.63-1.43-0.26c-0.91,0.07-1.41-0.86-2.24-1.07c-0.57-0.27-1.15,0.28-1.76,0.16c-1.65,0.14-3.42-0.15-4.93,0.7c-0.91,0.36-1.9,0.63-2.88,0.73c-1.09,0.11-2.22-0.09-3.24,0.41c-0.9,0.41-1.75,0.94-2.73,1.1c-0.8,0.43-1.14,1.42-1.83,1.95c-0.74,0.44-1.64,0.01-2.44,0.29c-0.55,0.33-0.95,0.04-1.46-0.22c-1.21-0.13-2.43,0.26-3.63,0.29c-0.66-0.11-1.34,0.11-1.63,0.75c-0.31,0.73-1.13,0.2-1.67,0.35c-0.43,0.64-1,1.21-1.8,1.3c-1,0.23-2.06,0.07-3.06-0.06c-1.21-0.16-1.81-1.54-3.04-1.59c-0.32-0.34-0.32-1.07-0.29-1.55c0.51,0.22,1.12,0.08,1.31-0.48c0.58-1.48,0.65-3.28-0.3-4.63c-0.66-1.03-1.32-2.17-1.18-3.45c0.05-1.64-1.1-2.97-2.09-4.15c0.14-0.58,0.18-1.18-0.23-1.66c-0.4-0.77-1.05-1.34-1.6-1.99c-0.5-0.64,0.13-0.93,0.23-0.11c0.2,0.3,0.95,1.06,1.05,0.55c-0.16-0.51-0.22-1.08-0.73-1.37c-0.53-0.76,0.15-0.54,0.44,0.03c0.45,0.36,0.37,1.31,1.09,1.22c-0.24-0.56,0.38-0.53,0.23-1.15c-0.63-1.17-1.9-2.1-1.81-3.56c-0.03-0.72,0.75-1.19,0.82-1.92c0.12-0.64-0.08-1.31-0.28-1.91c0.02-0.55,0.56-0.91,0.64-1.45c0.39,0.36,0.03,1.28,0.65,1.28c0.61-0.12,0.25-1.17,0.89-1.34c0.99-0.6,2.1-1.01,2.91-1.87c0.69-0.71,1.68-0.92,2.63-0.87c0.68,0.04,1.44,0.02,1.87-0.6c0.58-0.48,1.74,0.1,2-0.82c0.28-0.55,1.01-0.08,1.46-0.03c1.08,0.07,2.09-0.5,3.03-0.97c0.75-0.56,1.31-1.32,1.62-2.2c0.4-0.5,1.12-0.67,1.46-1.19c0-0.67-0.72-1.52-0.02-2.03c0.45-0.45,0.89-0.9,1.14-1.49c0.89,0.42,0.83,1.62,1.51,2.21c0.27-0.39-0.03-1.42,0.63-0.81c0.51,0.26,0.65-0.94-0.01-0.85c-0.46-0.09-0.53-1.21,0.08-0.97c0.65-0.08,1.19,0.43,1.84,0.25c0.93,0.12,0.36-0.14-0.16-0.44c-0.62-0.04-0.13-0.8-0.22-1.2c0.1-0.5,0.72-0.89,1.12-0.42c0.72,0.47,0.21-0.47,0.46-0.83c0.23-0.49-0.05-1.12,0.72-1.13c0.52-0.07,1.14,0.18,1.23-0.56c0.13-0.43,0.62-1.14,1.02-0.58c0.26,0.79,0.54-0.37,0.81-0.65c0.24-0.53,0.69,0.68,1.23,0.46c0.55,0.19,0.64,0.9,1.15,1.18c0.38,0.36,0.29,0.99,0.23,1.47c0.35,0.47,0.63-0.55,0.9-0.76c0.41-0.25,1.02-0.04,1.48,0.01c0.51,0.09,0.78,0.61,1.28,0.73c0.02-0.53,0.86-0.89,0.21-1.34c-0.42-0.17-1.05-0.71-0.39-1.04c0.61-0.2,0.3-0.85,0.75-1.13c0.39-0.19,1.02-0.53,0.77-1.02c0.09-0.41,0.33-1.09,0.81-1.14c0.74,0.11,0.71-0.32,0.7-0.75c0.33-0.59,0.95-0.19,1.39,0.03c0.87-0.2,1.88,0.06,2.65-0.46c-0.06-0.54-0.23-1.29-0.87-1.49c-0.45,0.18-1.07-0.29-0.3-0.46c0.65-0.29,0.94,0.9,1.61,0.48c0.66,0.66,1.51,1.05,2.44,1.16c0.55,0.23,1.07,0.02,1.62,0.01c0.2,0.38,0.64,0.98,1.11,0.58c0.34-0.47,0.94-0.37,1.34-0.03c0.28,0.33,0.87,0.94,1.02,0.18c-0.06-0.82,0.45-0.53,0.8-0.12c0.86,0.16-0.26,0.64-0.21,1.13c-0.18,0.46-0.13,1.04-0.84,0.89c-0.49,0.16-0.99,0.5-0.83,1.08c0.51,0.33,0.17,0.95-0.08,1.34c-0.24,0.5-1.07,0.75-0.84,1.41c0.78,0.79,1.94,1.14,2.6,2.07c0.29,0.65,0.95,0.01,1.41,0.42c0.97,0.31,1.57,1.17,2.4,1.69c0.56,0.26,1.49,0,1.79,0.66c0.14,0.81,1.07,1.01,1.68,1.38c0.67,0.32,1.34-0.16,1.96-0.36c0.62-0.79,1.06-1.77,1.3-2.75c0.09-0.9,0.28-1.81,0.86-2.54c-0.05-0.59-0.82-0.99-0.43-1.61c0.24-0.51,0.43-0.99,0.02-1.47c0.02-0.59,0.07-1.26,0.21-1.84c0.34-0.33,0.99-0.67,0.28-1.07c-0.4-0.39,0.33-0.88,0.46-1.29c0.22-0.57,0.39-1.15,0.38-1.77C716.55,224.69,716.71,224.52,716.88,224.34L716.88,224.34z"/><path id="NZ" d="M790.15,283.02c0.66,0.35,0.96,0.07,0.5-0.55c0.06-0.67,0.94,0.03,0.95,0.46c0.3,0.43,0.11,1.26,0.79,1.31c0.89,0.24,1.74,0.94,2.69,0.75c0.59-0.41,1.32-0.96,2.06-0.76c0.58,0.23,0.21,1.02,0.07,1.46c0,0.69-0.65,0.67-1.17,0.69c-0.04,0.45-0.11,1.09-0.81,0.88c-0.53-0.08-1.45,0.2-1.23,0.88c0.42,0.47,0.23,1.02-0.32,1.27c-1.13,1.03-1.76,2.67-3.29,3.22c-0.43,0.03-0.92-0.38-1.16-0.76c0.07-0.51,0.52-0.86,0.65-1.37c0.5-0.37,0.5-0.93-0.12-1.13c-0.82-0.85-2.25-0.71-2.96-1.67c0.45-0.36,1.1-0.52,1.62-0.84c0.61-0.2,0.43-0.94,0.43-1.43c0.15-0.45,0.81-0.86,0.31-1.36c-0.5-0.42-0.03-1.03-0.43-1.48c-0.3-0.44-0.65-0.86-1-1.26c0.24-0.43-0.38-0.88-0.75-1.05c-0.68-0.27,0.82,0.77,0.28,0.77c-0.61-0.76-1.2-1.54-1.88-2.24c-0.33-0.34-0.15-0.82-0.46-1.24c-0.29-0.41-1.1-0.85-0.18-0.65c0.69-0.28,0.03,0.52,0.55,0.79c0.36,0.53,0.63,0.04,1.09,0.39c0.43,0.19,1.04,0.23,1.1,0.7c0.51-0.49,0.4,0.35,0.88,0.55c0.3,0.22,0.07,0.79-0.34,0.56c0.36,0.39,1.08,0.64,1.05,1.26c-0.78-0.17,0.81,0.85,0.04,0.68c-1.02-0.08,0.26,0.22,0.12,0.56c0.3,0.18,1.1-0.09,0.78,0.56C789.94,282.98,790.21,283,790.15,283.02L790.15,283.02z M782.94,297.69c-0.35,0.28-0.86,0.43-1.28,0.68c-0.13,0.6-1.34-0.41-0.95,0.3c0.56,0.24,0.33,0.95,0.16,1.25c-0.32-0.06-1.61-0.29-0.72,0.07c0.79,0.16,0.17,0.69,0.01,1.15c-0.29,0.57-0.41,1.27-1.1,1.48c-0.49,0.18-0.72,0.7-1.28,0.78c-0.46,0.21-0.86,0.69-1.42,0.43c-0.51-0.13-1.01-0.27-1.52-0.09c-0.46-0.51-1.13-0.55-1.77-0.67c-0.18-0.63-0.83-0.33-1.11-0.07c-0.5,0.13-1.06-0.06-1.41-0.35c0.34-0.2,0.03-0.6,0.79-0.55c-0.86-0.71,0.07-0.26,0.31-0.29c-0.65-0.5-0.23-0.81,0.41-0.54c0.83,0.1-0.54-0.67,0.11-0.96c0.49-0.24,0.87-0.58,1.29-0.93c0.36-0.37,0.67-0.76,1.21-0.97c0.85-0.3,1.79-0.45,2.51-1.05c0.47-0.11,1.01-0.46,1.12-0.94c0.42-0.42,1.03-0.28,1.51-0.61c0.56-0.16,0.85-0.63,1.15-0.97c0.73-0.17,0.23-0.74,0.51-1.2c0.18-0.4,0.71-0.36,1.13-0.68c0.92-0.32,0.26-1.52,0.91-2.05c0.21-0.57,1.02-0.17,1.09,0.19c0.73,0.02,0.36,1.06,0.98,1.27c0.53-0.33,1.09-0.93,1.77-0.56c0.46,0.46-0.25,0.93,0.32,1.33c0.2,0.52-0.6,0.75-0.74,1.23c-0.73,0.64-1.47,1.33-2.34,1.76c-0.33,0.32-1.24,0.55-0.46,0.98c0.5-0.01,1.26,0.51,0.34,0.52c-0.49-0.04-0.94-0.45-1.45-0.02C783.2,297.57,782.9,297.72,782.94,297.69L782.94,297.69z"/><path id="CA" d="M105.98,81.69c-0.48-0.48-1.3-0.84-1.17-1.64c0.42-0.19,1.03-0.07,1.51,0.05c0.32-0.02,1.33-0.16,1.04,0.35c-0.38,0.37-0.07,1.21-0.84,1.05C106.33,81.53,106.15,81.63,105.98,81.69z M125.24,92.38c-0.97-0.23-2.02-0.37-2.88-0.9c0.43-0.61,0.47-0.76-0.36-0.65c-0.47,0.12-0.89,0.38-1.35-0.01c0.43-0.53-0.3-0.85-0.77-0.82c-0.92,0.12-0.49-0.54-0.7-0.75c-0.45-0.39-0.94-0.37-1.47-0.33c-0.89-0.37-1.7-0.97-2.46-1.56c-0.22-0.43,0.89-0.3,1.22-0.3c1.51,0.51,3.05,0.9,4.64,0.99c0.68,0.29,1.19,0.89,1.59,1.5c0.66,0.85,1.93,0.68,2.68,1.36c0.25,0.43,0.84,1.02,0.27,1.44C125.51,92.36,125.37,92.37,125.24,92.38z M271.38,92.09c-0.37-0.17-1.61-0.03-0.91-0.57c0.26-0.48,0.75-0.63,1.25-0.51c0.89-0.29-0.42-0.63-0.26-1.08c0.76-1.47,1.97-2.66,3.26-3.68c0.7-0.54,1.62-0.69,2.47-0.7c0.6,0.47-0.51,0.49-0.81,0.6c0.26,0.35,0.19,0.78-0.36,1.13c-0.56,0.69-1.26,1.29-1.63,2.11c0.13,0.66,0.87-0.05,1.06-0.35c0.46-0.5,1.1-0.07,1.65,0.03c-0.3,0.3-1.34,0.73-0.47,0.94c0.74,0.24,1.43,0.74,2.24,0.55c0.35-0.74,1.25-0.41,1.87-0.28c0.5,0.09,1.3,0.32,0.48,0.69c-0.32,0.29-1.32,0.54-0.59,0.94c0.38,0.51,0.92,0.35,1.41,0.14c0.79-0.22,0.37,0.62-0.13,0.71c-0.32,0.1-1.43-0.02-0.86,0.53c0.12,0.51,0.49,0.95,0.85,0.34c0.71-0.29,0.5,0.38,0.68,0.79c0.62-0.09,1.08,0.07,0.58,0.69c-0.23,0.35-0.28,1.32-0.84,1.05c-0.55-0.02-1.13-0.21-0.96-0.88c-0.23,0.09-0.97,0.78-1.07,0.12c0.34-0.37,0.81-0.94,0.21-1.32c-0.41-0.56-0.75,0.29-1.16,0.43c-0.58,0.2-1.07,0.53-1.48,0.97c-0.38,0.37-1.11,0.4-1.49,0.06c0.24-0.39,1.03-0.34,1.42-0.65c0.05-0.42,1.36-0.78,0.78-0.87c-0.5-0.07-1.15-0.35-1.34,0.3c-0.82,0.41-0.23-0.84-0.88-0.6c-0.55-0.13-0.68,0.71-1.31,0.53c-1.55,0.13-3.07-0.48-4.62-0.25c-0.47-0.09-1.13,0.38-1.45-0.03c-0.52-0.56,0.28-0.8,0.69-1.06C270.2,92.54,270.83,92.44,271.38,92.09L271.38,92.09z M265.43,98.65c-0.74,0.04-1.52-0.65-1.27-1.42c0.33-0.55,0.95-0.97,1.34-1.5c0.14-0.66,1.2-0.1,1.04,0.19c-0.43,0.35-0.28,1.13-0.94,1.25c-0.5,0.13-1.08,0.85-0.26,0.95c0.5-0.06,0.77-0.71,1.3-0.84c0.39-0.34,1.27,0.31,0.86,0.72C266.93,98.39,266.13,98.66,265.43,98.65 z M211.34,59.68c-0.85,0.21-0.6-0.46-0.68-0.98c-0.39-0.54-1.07-0.03-1.62-0.07c-0.67,0.08-1.35,0.16-2.02,0.25c0-0.74,0.9-0.79,1.42-1.02c0.59-0.16,1.12-0.27,0.56-0.87c-0.19-0.72,0.34-1.44,0.75-2c0.29-0.35,0.34-1.11,0.77-1.22c0.33,0.29,1.4,0.36,0.8,0.91c-0.03,0.34,0.93,0.68,1.29,0.5c0.27-0.63,0.94-0.3,1.43-0.14c0.93,0.35,1.73,1.02,2.75,1.1c0.66,0.2,1.53,0.15,1.92,0.82c-0.09,0.54-0.23,1.17,0.54,0.96c1.08-0.16,2.17,0.06,3.14,0.56c-0.62,0.02-1.04,0.67-1.68,0.47c-0.84-0.1-1.7-0.2-2.54-0.32c-0.68-0.22-1.1-1-1.88-1.03c-0.41-0.12-1.38-0.36-1.26,0.32c0.42,0.72-0.63,0.53-1.06,0.64c-0.67,0.14-1.13,0.84-1.86,0.91C211.85,59.54,211.6,59.61,211.34,59.68L211.34,59.68z M200.13,19.1c-0.66,0.03-1.3-0.08-1.95-0.21c-0.51-0.6-0.13-0.84,0.51-0.97c2.17-0.18,4.36-0.14,6.53-0.35c0.96-0.13,1.89,0.2,2.82,0.28c0.51-0.12,0.8-0.65,1.4-0.6c1.43-0.34,2.9-0.21,4.34-0.02c2.11-0.02,4.2,0.25,6.28,0.48c0.87,0.01,1.75,0.19,2.61,0.2c0.84-0.2-0.55-0.32-0.83-0.48c-0.92-0.27-1.92-0.28-2.73-0.85c0.52-0.5,1.35-0.22,2-0.47c1.5-0.33,3.05-0.28,4.57-0.47c1.89,0.17,3.86,0.13,5.61,0.96c0.43,0.41,1.2-0.31,0.43-0.45c-0.35-0.29-1.19-0.43-1.31-0.63c0.64-0.41,1.43-0.04,2.13-0.06c1.15,0.17,2.33,0.11,3.48,0.29c0.59,0.13,1.15,0.4,1.76,0.41c-0.1-0.63-0.33-0.87,0.56-0.74c1.23,0.01,2.51-0.11,3.63,0.48c0.32,0.23,1.38,0.36,0.89-0.24c-0.59-0.55,0.59-0.31,0.94-0.39c2.2,0.2,4.39,0.51,6.59,0.65c1.99-0.07,3.99-0.14,5.98,0.05c1.13,0.12,2.27,0.16,3.39,0.39c1.07,0.13,2.17-0.02,3.19,0.39c0.54,0.26-0.66,0.58-1.03,0.51c-0.88,0.12-1.71,0.52-2.62,0.5c-1.82,0.21-3.64-0.24-5.47-0.12c-1.16-0.01-2.3,0.28-3.46,0.31c-0.73,0.36-0.53,0.62,0.15,0.83c1.27,0.18,2.51-0.19,3.76-0.28c0.38-0.08,1.4,0.28,1.18,0.55c-1.67,0.16-3.32,0.48-4.94,0.93c-1.3,0.34-2.64,0.47-3.91,0.95c-0.88,0.31-1.84,0.09-2.75,0.16c0.19,0.4,1.05,0.99,0.2,1.1c-1.19,0.23-2.37,0.57-3.6,0.42c-1.44,0.01-2.85-0.35-4.29-0.36c-0.31-0.19-1.59,0.22-1.02,0.36c0.78,0.21,1.56,0.42,2.33,0.63c-1.04,0.26-2.13,0.03-3.19,0.13c-1.66,0.06-3.31-0.33-4.98-0.15c-0.62-0.22-0.76,1.05-0.01,0.63c1.49-0.16,2.99,0.07,4.44,0.35c0.51,0.14,0.39,1.1-0.26,0.96c-0.62-0.07-1.01,0.27-1.28,0.79c-0.53,0.04-1.09-0.01-1.6,0c-0.84,0.26,0.72,0.56,0.65,0.68c-1.08,0.26-2.24,0.19-3.35,0.08c-0.45,0.01-1.24-0.26-1.47,0.05c0.33,0.43,0.56,1.07-0.2,1.16c-1.15,0.45-2.4,0.02-3.6,0.05c-1.3,0.03-2.67-0.62-3.9,0.04c-0.97,0.28-0.32,0.32,0.33,0.37c1.98,0.19,3.98,0.22,5.96,0.47c0.87,0.09,1.82-0.19,2.57,0.37c0.23,0.57-0.66,0.62-1.04,0.77c-1.56,0.16-3.13,0.27-4.67,0.6c-0.56,0.07-1.13,0.13-1.54-0.33c-0.39-0.42-0.83-0.62-1.4-0.49c-0.65,0.04-1.27-0.21-1.91-0.32c0.4,0.69,0.23,0.76-0.56,0.67c-1.18,0-2.39-0.08-3.45-0.68c-0.48-0.37-1.29-0.29-0.57,0.31c0.41,0.49-0.68,0.46-0.99,0.51c-1.68-0.19-3.38-0.01-5.05-0.26c-0.61-0.17-1.22-0.37-1.85-0.48c-0.18,0.61-0.9,0.67-1.43,0.51c-0.35-0.2-1.44,0.06-1.25-0.48c0.04-0.78,0.93-0.55,1.46-0.65c0.64-0.04,1.2-0.42,1.86-0.44c0.59-0.06,1.21,0.15,1.76-0.15c-0.76-0.23-1.46-0.6-2.12-1.05c0.29-0.45,1.03-0.2,1.51-0.24c1.31,0.05,2.69,0.01,3.86,0.73c1.63,0.61,3.45,0.64,5.15,0.36c0.28-0.57,0.89-0.62-0.11-0.57c-1.11-0.02-2.24,0.09-3.33-0.17c-0.34-0.57,0.34-1.2-0.48-1.05c-1.23-0.06-2.48-0.32-3.71-0.21c-0.67,0.34-0.22-0.91,0.24-0.88c1.33-0.77,2.94-0.47,4.41-0.5c1.75-0.03,3.45,0.42,5.19,0.52c0.51-0.24,1.07-0.16,1.62-0.2c-1.76-0.43-3.53-0.83-5.31-1.17c-1.13-0.4-2.26-0.81-3.39-1.21c-0.47,0.52-0.92-0.18-1.38-0.37c-0.84-0.28-0.12-0.84,0.45-0.6c1.85,0.18,3.74-0.08,5.57,0.23c1.32,0.24,2.57,0.81,3.88,1.06c0.7-0.03,1.41-0.07,2.1,0.06c-0.91-0.43-1.87-0.69-2.88-0.79c-1.01,0,0.11-0.42,0.46-0.69c1.05-0.5,2.26-0.5,3.41-0.49c1.65-0.33,3.33-0.22,4.99-0.41c0.43-0.04,1.66,0.02,0.63-0.18c-1.72-0.59-3.57-0.53-5.36-0.43c-1.43,0.28-2.88,0.48-4.33,0.59c-0.77-0.02-1.54,0.22-2.27-0.12c-0.53-0.27-1-0.16-1.52,0.05c-1.13,0-2.28-0.12-3.37,0.26c-0.67,0.39-0.14-0.92,0.28-0.84c0.74-0.04,0.79-0.53,0.04-0.64c-1.83-0.34-3.68-0.06-5.5,0.18c-1.12,0.05-2.18,0.38-3.23,0.76c-0.29,0.23-1.51-0.26-0.98-0.36c0.65,0.05,1.13-0.25,0.32-0.61C201.38,18.99,200.69,19.18,200.13,19.1L200.13,19.1z M200.13,20.84c0.59-0.1,1.27-0.15,1.78,0.17c0.33,0.53,0.79,1.12,1.49,0.99c0.77,0.17,0.83-0.06,0.94-0.64c0.66-0.2,1.36,0.22,1.93,0.54c0.48,0.22-0.09,1.02,0.38,1.27c0.72,0.61,1.69,0.26,2.54,0.28c0.67-0.03,1.29,0.35,1.95,0.49c-0.63-0.17-1.27-0.36-1.9-0.09c-1.19,0.36-2.64,0.13-3.58,1.1c-0.44,0.48-1.17-0.04-1.71-0.11c-0.36-0.25-1.44,0.21-0.71,0.53c0.46,0.43-0.53,0.71-0.87,0.55c-0.63-0.17-1.25-0.36-1.86-0.57c-0.09,0.58-0.49,0.92-1.08,0.79c-1.52,0.01-3.03-0.19-4.53-0.38c-0.78-0.01-1.46-0.55-2.2-0.78c-0.46-0.28-1.15-0.28-1.42-0.79c1.27-0.2,2.55-0.29,3.84-0.19c1.31-0.01,2.61,0.18,3.92,0.24c-1.26-0.33-2.49-0.82-3.81-0.79c-0.96-0.09-1.92-0.16-2.88,0c-0.69-0.01-1.38-0.07-2.03,0.17c-0.94,0.18-1.78-0.28-2.59-0.69c-0.59-0.27-1.36-0.27-1.77-0.83c1.34,0.14,2.67,0.12,4.01-0.03c0.49-0.06-0.83-0.17-1.1-0.3c-0.78-0.12-0.68-0.63,0.05-0.68c0.68-0.14,1.38-0.08,2.07-0.05c0.37-0.45-0.79-0.48-1.06-0.76c-0.98-0.29-0.17-0.31,0.39-0.36c0.83-0.17,1.67-0.21,2.51-0.11c1.08,0.18,0.12-0.68,0.3-0.68c1.29,0.17,2.71,0.03,3.81,0.85C197.9,20.52,198.99,21.08,200.13,20.84 L200.13,20.84z M179.07,27.22c-0.86,0-1.77-0.05-2.42-0.68c-0.93-0.65-2.14-0.32-3.2-0.45c-2.01-0.08-4.13,0.39-6.03-0.48c-0.66-0.41,0.47-0.47,0.78-0.41c0.88,0.08,1.75,0.31,2.65,0.21c-0.08-0.72-1.02-0.68-1.54-0.97c-1.03-0.23-2.1-0.19-3.14-0.4c-0.06-0.71,0.86-0.32,1.31-0.47c1.16-0.1,2.33,0.01,3.48,0.14c0.85,0.4,1.68,0.93,2.66,0.88c1.86,0.29,3.97-0.13,5.58,1.08c0.47,0.35,1.14,0.58,1.27,1.21C180.03,27.12,179.55,27.14,179.07,27.22L179.07,27.22z M185.91,26.76c-1.34,0.09-2.62-0.41-3.68-1.2c-0.83-0.32-0.16-0.76,0.43-0.6c1.13-0.08,2.24,0,3.34,0.25c1.08,0.19,2.17,0.38,3.25,0.57c0.06,0.71-0.65,0.76-1.18,0.77C187.35,26.64,186.63,26.71,185.91,26.76L185.91,26.76z M156.89,26.86c-0.78,0.28-1.53,0.7-2.31,0.92c-1.43,0-2.86,0.2-4.29-0.01c-0.43,0.03-1.35-0.19-1.05-0.68c0.44-0.36,1.11-0.24,1.65-0.35c1.69,0.13,3.39-0.19,5.08,0.05C156.28,26.82,156.58,26.84,156.89,26.86L156.89,26.86z M132.9,31.31c-0.89-0.21-1.72-1.12-2.65-0.55c-0.74,0.13-1.6,0.22-2.26-0.23c-0.58-0.57,0.59-0.59,0.98-0.6c0.85-0.15,1.7-0.33,2.49-0.7c0.73-0.19,1.5-0.29,2.12-0.72c1.6-0.38,3.26-0.3,4.89-0.45c0.84,0,1.7,0.11,2.48-0.27c0.74-0.14,1.45-0.02,2.15,0.24c0.89,0.19-0.5,0.14-0.79,0.33c-0.74,0-0.71,0.73-0.15,1.03c-0.01,0.21-1,0.03-1.39,0.18c-0.61,0.09-0.96,0.9-1.66,0.68c-0.82,0.21-0.92-1.05-1.68-1.06c-0.59-0.31-0.88,0.21-1.34,0.45c-0.5,0.29-0.78,0.9-1.43,0.89C134.32,31.14,133.56,31.31,132.9,31.31L132.9,31.31z M191.83,30.31c-1.38-0.02-2.78-0.21-4.14-0.21c-0.73-0.35-1.45-0.73-2.24-0.95c0.32-0.47,1.03-0.14,1.52-0.25c1.28-0.14,2.51,0.35,3.8,0.29c0.4-0.02,1.36,0.16,1.27,0.51C191.85,29.95,192.31,30.15,191.83,30.31z M144.69,31.74c-0.74-0.13-1.48-0.26-2.22-0.4c-0.52-0.66-0.15-0.74,0.52-0.83c1.15-0.18,2.35-0.38,3.51-0.33c0.78,0.26,1.49,0.94,2.36,0.63c0.75-0.2,1.53-0.08,2.19,0.33c1.03,0.53,2.15,1.01,3.34,0.82c1.19-0.06,2.4,0.19,3.58-0.12c0.4-0.4-0.43-0.9-0.81-1.04c-0.59-0.29-1.25-0.39-1.88-0.57c0.57-0.15,1.1-0.39,1.57-0.72c0.79-0.17,1.81-0.5,2.42,0.22c0.6,0.27,0.29,0.92,0.81,1.29c0.52,0.5,1.39,0.15,2.03,0.41c0.34-0.01,1.54,0.54,1.22,0.09c-0.51-0.56,0.51-0.71,0.91-0.52c0.67,0.06,1.3,0.25,1.9,0.55c-0.47,0.38-0.07,1.02-0.61,1.37c-1.07,0.62-2.36,0.29-3.53,0.47c-1.33,0.07-2.65-0.32-3.97-0.21c-1.36,0.33-2.74,0.56-4.09,0.92c-1.42,0.27-2.85,0.55-4.3,0.42c-0.89-0.02-1.85-0.14-2.65-0.43c-0.58-0.52,0.62-0.4,0.96-0.45c1.09-0.04,2.15-0.31,3.25-0.29c0.65,0,1.37,0.03,1.96-0.21c0.78-0.59,0.03-0.52-0.55-0.52c-1.29,0.02-2.59-0.26-3.85,0.09c-1.39,0.26-2.82,0.24-4.23,0.36c-0.72-0.09-1.46-0.5-2.16-0.15c-0.91,0.14-1.84,0.01-2.66-0.39c0.3-0.36,0.91-0.59,1.42-0.57C142.31,31.85,143.52,32.01,144.69,31.74L144.69,31.74z M178.48,33.23c-0.35-0.07-1.54-0.23-0.94-0.63c0.22-0.28,1.42-0.28,0.83-0.71c-0.42-0.34-1.06-0.17-1.57-0.21c-1.13,0.07-2.27,0.34-3.39,0.25c-0.69,0.03-0.96-0.73-0.11-0.57c0.34-0.15,1.32-0.22,1.23-0.45c-0.57-0.32-0.2-1.11,0.4-0.91c1.17,0.21,2.25,0.82,3.36,1.14c0.87-0.09-0.28-0.62-0.6-0.76c-0.36-0.08-1.3-0.63-0.43-0.63c1.22-0.23,2.37,0.34,3.55,0.52c0.03-0.66,0.78-0.62,1.25-0.49c0.55,0.11,1.27,0.16,1.39,0.83c0.29,0.46,0.13,1.18-0.48,1.26c-0.77,0.05-0.5,0.77-0.17,1.17c-0.78,0.36-1.7-0.1-2.53,0.13C179.67,33.27,179.06,33.21,178.48,33.23L178.48,33.23z M200.12,30.57c-0.61,0.06-1.37-0.03-1.86,0.35c-0.65,0.56,0.6,0.29,0.96,0.38c0.79-0.03,1.7-0.11,2.38,0.32c0.5,0.47,1.21,1.01,1.93,0.78c-0.01-0.64,0.89-0.27,1.31-0.37c0.66-0.15,1.34-0.26,2,0c0.71,0.19,1.37,0.55,2.13,0.47c0.49-0.15,0.91-0.59,1.47-0.58c1.43-0.3,2.9-0.24,4.34-0.51c1.53,0.06,3.07,0.01,4.6,0.09c1.24,0.64,2.65,0.57,3.98,0.86c0.84,0.23,0.33,0.67-0.29,0.67c-0.47,0.19-1.17,0.08-1.48,0.47c0.06,0.46,0.77,0.95-0.2,0.78c-1.16,0.01-2.31,0.1-3.46,0.14c-0.56-0.07-1.25-0.08-1.7-0.39c-0.08-0.61-0.66-0.78-1.19-0.77c-0.63,0.08,0.19,1.11-0.73,0.95c-1.14-0.11-2.29,0.21-3.42-0.04c-0.66-0.01-1.25-0.38-1.9-0.34c-0.1,0.69-0.87,0.39-1.36,0.5c-1,0.07-2.03,0.19-3.01,0c-0.61-0.15-0.19-1.21-1-0.83c-0.53,0.02-1.09,0.11-1.42,0.58c-1.25,0.38-2.63,0.19-3.74-0.5c-0.5-0.26-0.84,0.67-1.43,0.35c-0.61,0.13-0.96-0.39-1.31-0.8c-0.57-0.52-0.21-0.82,0.2-1.21c0.08-0.69-0.86-0.81-1.3-1.13c-0.39-0.12-1.39-0.69-0.54-0.83c1.43-0.2,2.9-0.18,4.34-0.12c0.87,0.11,1.72,0.38,2.59,0.53C200.71,30.45,200.41,30.6,200.12,30.57 L200.12,30.57z M128.19,41.99c-0.67-0.03-1.43,0.03-2.04-0.19c-0.77-1.16-2.23-1.58-3.57-1.54c-0.61-0.09-1.34-0.04-1.79-0.51c0.59-0.04,1.06-0.42,1.61-0.62c0.42-0.42-0.74-1.21-0.09-1.2c0.59,0.12,0.87-0.43,1.3-0.67c0.55-0.22,1.05-0.5,1.39-1.01c-0.19-0.62-1-0.71-1.48-1.08c-0.75-0.46-0.34-0.64,0.35-0.53c1.7-0.12,3.42,0.13,5.12-0.12c1.06-0.11,2.16-0.33,3.19,0.07c1.58,0.35,3.15,0.99,4.79,0.66c1.53-0.2,3.11-0.07,4.55,0.49c0.68,0.23,1.37,0.47,2.05,0.7c-0.57,0.28-1.27,0.26-1.89,0.44c-1.99,0.34-4.03,0.63-5.84,1.57c-0.77,0.33-1.44,0.9-2.32,0.87c-0.77-0.15-0.62,0.46-0.56,1c-0.27,0.89-1.34,0.81-2.08,0.9c-0.58,0.06-1.29-0.3-1.67,0.3C128.96,41.81,128.52,41.83,128.19,41.99L128.19,41.99z M190.48,39.67c-0.45-0.18-1.28,0.06-1.27-0.64c-0.35-0.53-1.2-0.81-1.16-1.57c0.07-0.63,0.45-1.49,1.22-1.27c0.77,0.14,0.8-0.11,0.17-0.48c-0.29-0.52,0.84-0.34,1.2-0.4c1.42-0.13,2.82,0.12,4.21,0.31c1.55,0.15,3.17-0.44,4.67,0.21c0.01,0.38-0.79,0.49-1.07,0.77c-0.71,0.66-1.55,1.2-2.41,1.61c-1.65,0.19-3.29-0.2-4.95-0.03c0.4,0.28,1.15,0.46,1.35,0.79c-0.25,0.44-0.87,0.58-1.35,0.63C190.89,39.63,190.68,39.64,190.48,39.67z M181.2,41.52c-1.52-0.23-2.55-1.63-4.08-1.87c-1-0.25-2.1-0.06-3.01-0.67c-0.56-0.27-1.13-0.53-1.69-0.8c0.44-0.28,0.81-0.87,1.39-0.54c0.85,0.38,1.74,0.73,2.69,0.78c0.72-0.17,1.18-0.94,1.94-0.94c-0.02-0.49-0.84-0.57-1.21-0.84c-0.3-0.09-1.54-0.55-0.77-0.69c0.75,0.01,1.51,0.19,2.22-0.14c0.78-0.06,1.44,0.62,2.24,0.4c0.53-0.07,0.97-0.43,1.55-0.36c0.9-0.08,1.83-0.02,2.7,0.25c-0.37,0.4-0.98,0.31-1.31,0.75c-0.61,0.21-1.4,0.19-1.89,0.6c0.04,0.55,0.91,0.47,1.34,0.38c0.88,0.05,1.73,0.35,2.58,0.5c0.7,0.16,0.68,0.86-0.04,0.95c-0.34,0.5-0.38,1.32-1.1,1.47c-0.83,0.29-1.69,0-2.44-0.35c-0.92-0.29-0.41,0.35,0.16,0.49c0.77,0.2-0.41,0.58-0.74,0.59C181.54,41.51,181.37,41.53,181.2,41.52 L181.2,41.52z M243.52,60.39c-0.54-0.48-1.41-0.25-1.99-0.72c-0.66-0.41,0.48-0.44,0.69-0.85c-0.81-0.34-1.62-0.64-2.51-0.65c-0.65-0.22-1.17-0.65-1.69-1.08c0.19-0.77-0.67-0.48-1.15-0.57c-0.66-0.17-1.3-0.44-1.99-0.4c0.28,0.47,0.39,1.1-0.37,0.83c-0.66-0.04-1.37-0.45-1.99-0.22c-0.5,0.67-1.36,0.58-2.1,0.6c-1.14-0.18-2.32-0.2-3.42-0.6c-0.18-0.66,0.52-1.22,1.14-1.17c0.89,0.21,0.29-0.83,0.81-0.79c1.09,0.12,2.23,0.1,3.27,0.47c0.35,0.28,1.23,0.87,0.83,0.05c0-0.5,0.94-0.18,1.33-0.35c0.78-0.12,1.55-0.41,2.35-0.23c0.85,0.2,0.68-0.51,0.04-0.72c-0.38-0.44-1.11-0.44-1.38-0.94c0.39-0.33,1.02-0.19,1.47-0.47c0.63-0.33,1.48-0.39,1.77-1.13c0.41-0.29,1.04-0.5,1.25-0.93c-0.01-0.82-0.96-1.1-1.33-1.76c-0.34-0.46-0.87-0.44-1.37-0.54c-0.69-0.16-1.43-0.38-2-0.8c-0.18-0.45-0.7-1-1.17-0.57c-0.55,0.34-1.2,0.07-1.76,0.31c-0.6-0.01-1.19,0.11-1.79,0.18c-0.48-0.75,0.13-0.74,0.76-0.72c0.47-0.14,1.21,0.15,1.45-0.37c-1.1-0.38-2.16-0.9-3.24-1.29c-0.53-0.02-1.44,0.11-1.49-0.62c-0.36-0.52-1.13-0.43-1.67-0.68c-0.71-0.17-1.34-0.85-2.1-0.44c-0.85-0.17-1.71-0.44-2.56-0.48c-0.67,0.19,0.54,0.5,0.86,0.51c0.98,0.31,2.06,0.38,2.97,0.86c0.6,0.46-0.44,0.68-0.83,0.67c-0.92,0.06-1.81-0.16-2.69-0.42c-0.55-0.09-1.2-0.41-1.71-0.06c0.05,0.26,1.2,1,0.39,0.77c-0.81-0.24-1.65-0.72-2.49-0.31c-0.75,0.23-1.5-0.44-2.27-0.18c-1.04,0.11-2.08-0.22-3.13-0.23c-1.36-0.17-2.75,0.16-4.08-0.24c0.23-0.69-0.44-0.83-0.99-0.78c-0.5-0.04-0.81,0.56-1.39,0.41c-1.25-0.01-2.56-0.16-3.64-0.81c-0.7-0.47,0.28-0.66,0.71-0.6c1.1,0.01,2.22,0.28,3.3,0.1c0.54-0.26-0.69-0.51-0.95-0.69c-0.93-0.32-1.94-0.36-2.91-0.39c-0.74,0.09-1.46-0.09-2.18-0.22c0.12-0.52,0.35-1.21,1.01-1.14c0.94-0.04-0.01-0.53-0.46-0.6c-0.47-0.24,0.19-0.94,0.45-1.19c0.73-0.66,1.6-1.13,2.55-1.4c0.47-0.34,1.04-0.35,1.54-0.55c0.93,0,1.83-0.3,2.77-0.29c0.89-0.06,1.8-0.07,2.67,0.19c-1.09,0.42-2.04,1.09-3.13,1.51c-0.56,0.36-0.45,1.02,0.23,1.11c0.75,0.24,0.77,0.31,0.29,0.8c-0.11,0.59,0.71,0.77,1.08,1.09c0.52,0.21,1.04,0.41,1.56,0.62c-0.33,0.4-1.2,0.15-1.41,0.63c0.15,0.32,1.03,0.08,1.46,0.21c0.58,0.08,1.14,0.14,1.48-0.43c0.42-0.45-0.35-0.99-0.83-0.91c-0.57-0.05-1.02-0.43-1.5-0.7c0.31-0.34,0.88-0.6,1.34-0.56c0.52,0.1,1.05,0.09,1.57,0.02c-0.64-0.27-1.29-0.54-1.99-0.53c-0.56-0.07-0.95-0.39-0.71-0.99c0.59-0.3,1.21-0.37,1.86-0.25c0.58,0.03,1.16-0.03,1.74-0.04c-0.72-0.22-1.45-0.43-2.17-0.63c1.43-0.61,3.03-0.49,4.52-0.89c0.98-0.11,2.01-0.06,2.96,0.2c0.75,0.49,1.6,0.92,2.28,1.48c-0.24,0.53-0.82,0.97-1.27,1.38c-0.15,0.65,0.22,0.94,0.85,0.84c0.48-0.07,1.15-0.11,1.44-0.53c0.26-0.5,0.98-0.25,1.45-0.29c0.79-0.12,0.33,0.91,0.95,0.97c0.65,0.34,0.99-0.06,0.65-0.68c0.1-0.37,0.65-0.86,1.15-0.89c1.51-0.48,3.06,0.1,4.58,0.15c0.74-0.1,1.57-0.14,2.15,0.41c0.56,0.33,1.2,0.46,1.76,0.79c-0.09,0.37-0.86,0.3-1.18,0.61c-0.59,0.03-1.12,0.56-0.26,0.71c0.69,0.14,1.26-0.57,1.98-0.53c0.63-0.05,1.03,0.44,1.39,0.86c0.41,0.62,0.86-0.15,1.33-0.31c0.44-0.38,0.93-0.5,1.49-0.32c0.71,0.06,1.41,0.19,2.06,0.51c-0.45,0.31-0.97,0.57-1.4,0.93c0.62,0,1.22-0.04,1.8-0.24c0.61-0.14,1.12-0.17,0.93,0.62c0.52,0.29,1.09,0.4,1.66,0.17c1.06-0.27,2.22-0.31,3.18,0.28c-0.69,0.63-1.76,0.49-2.55,0.87c-0.44,0.42,0.67,0.53,0.97,0.35c0.72-0.29,1.62,0.01,2.21-0.54c0.96-0.32,1.84,0.43,2.53,1.01c-0.88,0.04-1.8-0.09-2.64,0.19c0.06,0.6,0.89,0.36,1.32,0.45c0.71,0.08,1.59,0.07,2.09,0.63c-0.07,0.24-0.93,0.09-1.31,0.1c-0.85,0.03-1.68-0.44-2.52-0.3c-0.55,0.27,0.73,0.47,0.96,0.71c-0.24,0.41-0.98,0.19-1.43,0.31c-0.71,0.01,0.39,0.63,0.72,0.49c0.98,0.19,1.97,0.48,2.91,0.78c0.27,0.35,0.46,1.06,1.08,0.64c0.97-0.25,1.95,0.55,2.92,0.11c0.94-0.23,1.73,0.49,2.51,0.9c0.73,0.47-0.56,0.32-0.9,0.46c-0.74,0.18-0.03,0.74,0.49,0.48c0.74,0.01,1.46-0.09,2.18-0.17c1.12-0.25-0.02,0.54,0.5,0.64c0.71,0.25,1.43,0.11,2.08-0.24c0.63,0.3,1.34,0.55,2,0.83c-0.51,0.21-0.56,0.8-1.16,0.69c-0.6,0.08-1.17-0.45-1.77-0.1c-0.64,0.13,0.63,0.39,0.84,0.62c0.57,0.5-0.55,0.42-0.87,0.55c-0.42,0.33-0.87,0.74-1.33,0.2c-0.58-0.7-0.65,0-0.78,0.57c-0.12,0.44,0.72,1.3-0.19,1.09c-0.48-0.29-1.13-0.21-1.55-0.58c-0.01-0.75-0.82-0.39-1.26-0.24c-0.4-0.31-1.07-0.7-0.48-1.19c-0.08-0.37-0.96-0.2-1.35-0.3c-1.23-0.28-2.27-1.44-3.6-1.22c-0.27,0.3-1.5,0.14-0.81,0.64c0.2,0.26,1.42,0.64,0.86,0.81c-0.58,0.23-1.03-0.1-1.51-0.39c-0.42-0.23-1.28-0.6-0.66,0.13c0.44,0.38,0.7,1.16,1.39,0.99c0.61-0.09,0.95,0.36,1.27,0.8c0.31,0.37,0.64,0.97,1.1,1.05c0.46-0.43,1-0.22,1.41,0.16c0.61,0.34,1.31,0.46,1.97,0.67c-0.56-0.05-1.18,0.41-0.35,0.63c0.62,0.41,1.66,0.47,1.79,1.35c0.23,0.87-0.43,0.37-0.78-0.04c-0.27-0.23-1.05-1.03-1.15-0.51c0.24,0.63,0.91,1.04,1.17,1.64c0.11,0.54-1.39-0.29-0.75,0.41c0.33,0.28,1.06,1.1,0.17,0.65c-0.66-0.2-1.1-0.79-1.7-1.05c-1.14,0.22-2.25-0.34-3.2-0.9c-0.33-0.26-1.02-0.77-1.23-0.75c0.4,0.86-0.15,0.62-0.75,0.34c-0.55-0.26-1.15-0.32-1.75-0.31c0.68,1.12,2.09,1.45,3.26,1.87c1.28,0.51,2.65,1.17,3.27,2.48c-1.66-0.21-3.23-0.82-4.87-1.06c-1.04-0.07-2.2-0.09-2.99-0.86c-0.58-0.32-1.35-0.15-1.96-0.47C244.02,60.42,243.55,60.07,243.52,60.39L243.52,60.39z M146.19,38.7c0.93,0.03,1.84-0.17,2.64-0.66c1.04-0.17,2.12,0.08,3.14,0.3c0.94-0.16,0.06,0.97,0.5,1c0.73-0.02,1.44-0.16,2.14-0.38c0.31-0.19,1.56,0.17,1.15-0.3c-0.27-0.31-1.25-0.99-0.29-0.78c1.02,0.12,2.15,0.16,3.04,0.71c0.28,0.4,0.43,0.9,0.86,1.22c0.35,0.42,0.91,1.01,1.49,0.69c0.64-0.01,0.99-0.53,0.34-0.91c-0.46-0.49-0.97-0.96-1.08-1.66c-0.39-0.55,0.02-1.15,0.66-0.83c1.1,0.22,2.24,0.17,3.32,0.42c0.81,0.38,1.83,0.42,2.44,1.12c0.05,1.09,1.08,1.65,1.88,2.21c0.15,0.47-0.77,0.89-0.29,1.35c1.34,0.74,2.81,1.27,4.35,1.27c1.03,0.11,2.03,0.47,3,0.8c0.5,0.01,0.99,0.78,0.73,1.08c-1.01,0.08-1.96-0.42-2.93-0.51c-0.7,0.25-1.41,0.43-2.15,0.38c-0.52,0.14-0.04,1.14,0.48,0.77c0.68,0.07,1.37-0.42,2-0.21c0.52,0.18,1.11,0.77,0.2,0.83c-0.95,0.51-2.1,0.43-3.15,0.47c-1.97-0.03-3.94-0.42-5.82-0.96c-0.44-0.24-0.85-0.62-1.4-0.41c-0.53,0.06-0.82,0.63-1.37,0.72c-0.76,0.41-1.67,0.14-2.5,0.3c-0.91,0.06-1.73,0.59-2.66,0.58c-1.52,0.28-3.06,0.23-4.59,0.33c-0.86-0.03-1.71-0.09-2.56,0.04c-0.57,0.06-1.11-0.14-1.65-0.29c-0.17-0.49,0.51-0.95-0.34-1.09c-2.04-0.28-4.16-0.01-6.16-0.6c-0.66-0.2-1.16-0.75-1.85-0.93c-0.91-0.19,0.17-0.4,0.55-0.5c0.71-0.02,1.42-0.01,2.09-0.23c1.37,0.05,2.72-0.17,4.09-0.06c1.96-0.01,3.92,0.13,5.87-0.03c0.74-0.19-0.57-0.37-0.87-0.46c-2.12-0.56-4.31-0.63-6.49-0.62c-2.04-0.07-4.09,0-6.13,0.08c-0.55-0.18-1.1-0.35-1.65-0.53c0.07-0.51,0.9-0.2,1.29-0.36c1.17-0.28,2.37-0.08,3.55-0.26c0.61-0.08,1.28-0.01,1.79-0.41c-0.45-0.61-1.26-0.22-1.9-0.29c-1.12-0.01-2.34,0.47-3.35-0.22c-0.54-0.35-1.18-0.38-1.79-0.35c-0.7-0.02-0.86-0.61-0.17-0.87c0.59-0.59,1.38-0.82,2.16-1.04c0.76-0.3,1.56-0.43,2.34-0.63c1.12-0.48,2.42-0.28,3.53-0.8c0.73-0.12,1.44-0.09,2.14,0.15c-0.26,0.45-0.86,0.6-0.64,1.28C146.13,38.62,146.21,38.67,146.19,38.7L146.19,38.7z M251.27,99.53c-0.74,0.35,0.29-0.72-0.25-0.69c-0.75-0.02-0.59-0.51-0.64-1.08c-0.13-0.78-0.08-1.62-0.34-2.35c-0.39-0.52-1.2-0.55-1.75-0.26c-0.54,0.06-0.98-0.89-1.43-0.3c-1.33,1-1.52,2.83-2.67,3.98c-0.27,0.61-0.77,0.68-1.36,0.52c-0.61-0.19-1.04,0.32-1.22,0.84c-2.08-0.18-4.17-0.08-6.26-0.12c-0.6-0.05-1.17,0-1.66,0.39c-0.99,0.55-2.01,1.09-3.1,1.43c-0.19,0.48-0.21,1.14-0.84,1.24c-0.81,0.24-1.64,0.14-2.46,0.04c-0.81,0.01-1.69-0.1-2.43,0.28c-0.37,0.49,0.05,1.01,0.06,1.53c-1.32,0.71-2.8,1.05-4.29,1.13c-1.16,0.2-2.05,1.11-3.18,1.34c-0.63,0-1.6-0.29-1.44-1.08c0.34-0.58,1.23-0.75,1.45-1.46c0.25-0.56,0.78-1,0.65-1.66c-0.08-1.31-0.64-2.55-0.93-3.83c-0.85-0.39-1.78-0.67-2.58-1.12c-0.19-0.45-0.18-0.96-0.92-0.92c-0.55-0.03-0.71-0.77-1.38-0.48c-0.53-0.25-0.39-0.96-0.97-1.09c-2.2-1.15-4.57-1.97-6.87-2.88c-1.03-0.47-2.01,0.39-2.99,0.59c-0.51-0.18-1.12,0.19-1.51-0.27c-0.5-0.16-1.07,0.19-1.53-0.07c0.01-0.63-0.76,0.08-1.12,0.07c-0.57,0.3-0.95-0.1-1.41-0.23c-0.31-0.5-0.94-0.14-1.12-0.2c-0.33-0.41-0.58-0.53-1.14-0.6c-0.52-0.2-1.09,0.04-1.56-0.17c-0.91-0.34-1.3-1.28-2.1-1.78c-0.63-0.43-0.75,0.23-0.27,0.63c0.29,0.45-0.9,0.1-1.25,0.22c-4.04,0.02-8.08-0.01-12.12,0c-7.05-0.02-14.1-0.04-21.16-0.03c-3.87,0.01-7.74-0.02-11.61,0.01c-5.37-0.03-10.75,0.04-16.12-0.02c-0.48-0.27-0.98-0.61-0.69-1.24c-0.47,0.22-1.18,0.46-1.44-0.17c-0.03-0.77-0.62-0.56-1.05-0.29c-0.5,0.08-1.09-0.37-1.15-0.88c-0.02-0.69-0.32-0.98-1-0.74c-0.62,0.02-1.22-0.28-1.83-0.38c-0.22-0.35-0.55-1.06-1.09-0.64c-0.73,0.12-1.63,0.27-2.26-0.25c-0.33-0.5,0.37-1.01,0.55-1.19c-0.21-0.5-1.22-0.11-1.34-0.37c0.45-0.43,0.96-0.8,1.56-0.95c0.84-0.49,0.23-0.51-0.42-0.42c-0.41,0.16-1.08,0.2-1.31-0.2c0.06-0.62,0-1.11-0.75-0.89c-0.36-0.27-0.91-0.75-1.05-1.14c0.41-0.6-0.16-0.91-0.65-0.5c-0.49,0.55-0.94,0.16-1.39-0.22c-0.59-0.37-1.08-0.99-1.14-1.71c0.27-0.39,0.93-0.75,0.93-1.12c-0.25-0.63-0.87-1.21-0.54-1.92c0.02-0.5-0.83-0.53-1.2-0.75c-0.81-0.35-1.71-0.57-2.5-0.9c-1.08-0.9-1.86-2.11-2.92-3.05c-1.01-1.24-2.5-1.88-3.82-2.7c-0.46-0.36-0.71-1.11-1.41-0.99c-0.95-0.19-1.58,0.71-2.39,1.02c-0.45,0.42-1.25,0.18-1.53,0.77c-1.08-0.87-2.37-1.43-3.46-2.28c-0.15-0.58-0.62-0.92-1.21-0.83c-1.1,0.01-2.2,0.2-3.29,0.05c-0.42-0.63-0.23-1.48-0.3-2.21c-0.06-3.59,0.17-7.18-0.08-10.77c-0.07-2.45-0.08-4.91-0.1-7.36c-0.33-0.73,0.76-0.22,1.16-0.42c1.25-0.07,2.48,0.35,3.68,0.64c1.53,0.59,3.15,0.8,4.78,0.88c0.86,0.02,1.69,0.27,2.49,0.48c0.28-0.19-0.49-0.85-0.89-0.93c-0.54-0.54,0.45-0.64,0.85-0.78c0.57-0.25,1.26,0.16,1.8-0.21c1.15,0.06,2.35,0.38,3.43-0.16c0.45-0.31,0.97-0.2,1.45-0.42c1.09-0.25,2.32-0.02,3.3-0.68c0.9-0.22,1.85-0.17,2.76-0.02c-0.62,0.82-1.75,0.44-2.57,0.89c-0.97,0.35-2.1,0.23-3.03,0.69c-0.62,0.68-1.62,0.43-2.4,0.72c-0.81,0.38-0.47,0.57,0.24,0.7c0.48,0.25,0.96,0.5,1.44,0.75c-0.4-0.51-0.09-1.09,0.56-1.03c0.87-0.02,1.43-0.96,2.33-0.8c0.72,0.04,1.42-0.07,2.07-0.41c1.02-0.47,2.13-0.47,3.22-0.56c0.86-0.59,1.97-0.55,2.86-1.04c-0.34-0.54-1.07-0.67-1.54-1.11c1.01,0.07,2.08,0.38,2.83,1.07c0.45,0.66,1.02,1.24,1.83,1.42c0.73,0.31,1.52,0.52,2.32,0.49c0.56-0.22-0.84-0.92-0.06-1.07c0.53,0.07,1.19-0.57,1.59-0.02c0.38,0.52-0.3,1.02,0.68,0.93c0.99,0.07,2.05-0.26,2.74-1c2.48-0.34,4.82,0.84,7.25,1.14c1.6,0.26,3.18,0.6,4.79,0.78c1.38,0.11,2.77,0.32,4.16,0.14c1.21,0.02,2.42,0.4,3.48,0.97c0.52,0.56-0.61,0.46-0.95,0.45c-0.58,0.01-1.28,0.01-1.77,0.25c-0.59,0.69,0.02,0.72,0.66,0.74c2.95,0.36,5.96,0.56,8.9-0.01c1.07-0.17,2.19-0.26,3.2,0.22c0.99,0.32,2.09,0.21,3.04,0.71c0.89,0.2,0.26,0.59-0.26,0.72c-0.12,0.28,0.87,0.51,1.19,0.79c0.6,0.34,0.94,0.62,0.62-0.23c0.17-0.19,1.35,0,0.93-0.46c-0.54-0.34-1.33-0.74-1.13-1.51c-0.11-0.75,0.75-0.46,1.23-0.57c0.7-0.08,1.5-0.03,2.12-0.3c0.52-0.78,1.59-0.4,2.33-0.2c1.14,0.23,2.3,0.46,3.46,0.24c1.06,0.86,2.52,0.72,3.8,0.92c0.75,0.09,1.47-0.13,2.2-0.2c1.87-0.11,3.79,0.24,5.61-0.31c0.76,0.37,1.56,0.85,2.43,0.76c0.51-0.44,0.19-1.05-0.44-1.06c-0.69-0.17-1.4-0.16-2.11-0.19c-0.08-0.74,0.79-0.4,1.24-0.53c1.07,0.06,2.06,0.58,3.15,0.52c0.76,0.06,0.51,0.62,0.29,1.1c-0.27,0.54,0.28,1.08,0.83,1.04c0.48-0.06,1.18,0.41,1.47,0.29c0.08-0.71-0.78-1.25-0.39-1.94c0.33-0.51,1-0.14,1.5-0.27c0.76-0.02,1.19-1,2-0.91c0.4,0.03,1.35-0.01,0.89-0.61c-0.31-0.62-0.99-0.32-1.51-0.2c-0.55-0.04-1.37,0.02-0.54-0.52c0.42-0.2,0.98-0.1,1.42-0.32c0.64-0.13,1.09,0.45,1.69,0.57c0.04-0.39,0.23-1.39-0.37-1.19c-0.96,0.1-1.94-0.03-2.83-0.43c-1.31,0.23-2.6-0.31-3.87-0.59c-0.45-0.06-1.08-0.74-0.36-0.89c0.5-0.25,1.17-0.53,0.27-0.71c-0.31-0.21-1.48-0.16-0.89-0.68c0.46-0.63,1.29-1.01,2.04-0.65c0.66,0.39,0.99-0.48,0.19-0.56c-0.75-0.33,0.22-0.6,0.6-0.74c1.32-0.08,2.67-0.11,3.9,0.44c0.51,0.16,1.26,0.42,1.27,1.03c-0.54,0.64,0.32,0.7,0.77,0.93c0.74,0.37,1.43,0.83,2.22,1.1c-0.4,0.65-1.24,0.11-1.75,0.6c-0.58,0.43-0.5,0.74,0.23,0.73c0.71,0.19,1.47,0.31,2.18,0.09c0.65-0.04,1.26,0.24,1.9,0.35c-0.19,0.46-1.39,0.52-0.5,0.9c0.71,0.25,0.95,1.03,0.87,1.72c0.68-0.07,1.41-0.34,1.65-1.04c0.27-0.73,1.12-1.3,1.87-0.87c0.78,0.38,1.83,0.64,2.15,1.54c-0.03,0.73-0.82,0.39-1.29,0.37c-0.46,0.41-0.18,1.05,0.33,1.24c0.73,0.34,1.3,0.9,1.99,1.3c0.6-0.22,1.26-0.22,1.86-0.47c0.02-0.64,0.54-0.86,1.04-1.11c0.57-0.21,0.67-0.78,0.89-1.27c0.12-0.61,0.63-0.82,1.19-0.65c0.49,0.05,1.19,0.16,1.15-0.55c-0.64-0.21-1.28-0.44-1.9-0.68c0.01-0.55,0.02-1.08,0.68-1.16c0.89,0.06,1.78-0.14,2.65,0.14c1.19,0.27,2.48,0.25,3.54,0.94c0.55,0.5,1.46-0.2,1.91,0.41c0.14,0.52,0.41,1.14-0.34,1.24c-0.73,0.41-1.11-0.86-1.82-0.42c-0.84,0.01-0.37,0.68-0.05,1.08c0.66,0.85,1.67,1.28,2.6,1.77c0.07,0.5-0.39,1-0.86,1.12c-0.69,0.32-1.3,0.9-2.11,0.87c-0.54,0.18-1.06,0.72-1.62,0.33c-1.03-0.37-1.86-1.32-3-1.37c-0.9,0.21-0.55,0.41,0.15,0.6c0.74,0.23,1.35,0.73,2.02,1.1c-0.88,0.12-1.76-0.08-2.64,0.07c-0.65,0.02-0.79-0.95-1.46-0.75c-0.87,0-1.8,0-2.63,0.17c-0.38,0.36,0.8,0.44,1.1,0.63c0.91,0.07,0.46,0.52-0.14,0.73c-1.09,0.48-2.12,1.51-3.4,1.24c-0.86-0.1-1.45-0.86-2.34-0.87c-0.91-0.15-1.76-0.63-2.71-0.47c-0.56-0.02-1.1,0.12-1.65,0.18c1.28,0.28,2.62,0.33,3.78,0.99c1.4,0.64,2.96,0.86,4.5,0.86c-0.33,0.52-0.5,1.2-1.16,1.4c-1.03,0.65-2.21,1.21-3.46,0.99c-0.58-0.02-1.1-0.28-1.64-0.46c-0.35,0.5,0.38,1.07,0.14,1.37c-1.3,0.12-2.57-0.18-3.81-0.5c-1.25-0.11-2.5-0.26-3.76-0.39c1.05,0.38,2.05,1,3.21,0.97c0.94,0.16,2.02,0.15,2.77,0.79c-0.09,0.48-0.84,0.55-1.26,0.64c-0.82,0.22-1.71-0.07-2.51,0.01c-0.71,0.36,0.61,0.41,0.88,0.61c-0.04,0.38-0.8,0.61-1.25,0.71c-0.71,0.27-1.43,0.58-2.08,0.98c0.35,0.53,0.14,1.04-0.53,1.04c-0.79,0.06-1.14,0.9-1.62,1.41c-0.14,0.7-0.72,1.28-0.78,1.97c0,0.53-0.21,1.04-0.02,1.59c-0.02,0.57,0.46,0.98,1,1c0.78,0.32,1.67-0.16,2.43,0.11c0.57,0.43,0.73,1.21,1.22,1.72c0.51,0.55,0.59,1.31,0.39,2.01c1.2,0.1,2.32-0.57,3.52-0.44c1.32-0.05,2.52,0.64,3.82,0.78c1.04,0.12,1.96,0.69,2.87,1.15c0.48,0.4,0.84,1.02,1.54,0.99c1.53,0.31,3.11,0.47,4.52,1.18c0.76,0.21,1.54,0.45,2.33,0.27c0.72,0.05,1.44-0.11,2.16,0.09c0.69,0.14,1.45,0.08,2.08,0.44c-0.22,0.56-0.61,1.27-0.29,1.83c0.59,0.44,0.32,1.26,0.22,1.86c-0.49,0.52-0.15,0.89,0.43,1.04c0.57,0.26,0.88,0.89,0.64,1.48c1.27,0.02,2.53,0.76,3.08,1.92c0.89-0.12,1.55,0.62,2.27,1.03c-0.1-0.46-0.83-0.9-0.36-1.33c0.41-0.56,0.97-0.23,1.25,0.27c0.3,0.78,0.63-0.37,0.46-0.71c-0.37-0.52,0.67-0.73,0.53-1.34c-0.13-0.72-0.84-1.24-0.78-2.02c0.11-0.45-0.42-1.05-0.34-1.31c0.78,0.26,0.52-0.73-0.04-0.78c-0.61-0.03-1.01-0.49-1.1-1.07c-0.24-0.53,0.84-0.31,1.16-0.52c1.44-0.3,2.65-1.2,3.95-1.82c0.82-0.69,1.81-1.51,1.68-2.7c-0.16-0.87-0.45-1.8-1.28-2.24c-0.87-0.79-2.12-0.99-3.03-1.68c-0.48-0.46,0.64-0.57,0.82-0.92c0.41-0.49,0.6-1.45,1.4-1.32c0.64-0.14,0.28-0.95-0.01-1.3c-0.7-0.33,0.54-1.17-0.35-1.11c-0.32-0.11-1.62,0.11-1.19-0.26c0.53-0.45,1.18-0.9,1.39-1.58c-0.45-0.36-1.34-0.41-1.2-1.18c0.17-0.64,0.98-0.96,1.6-1.01c1.8,0.13,3.52,0.89,5.35,0.74c0.95,0.04,1.88-0.28,2.79-0.46c1.29,0.13,2.29,1.07,3.5,1.47c0.86,0.17,0.41,0.61,0.66,0.92c1.27,0.51,2.65,0.79,4.01,0.94c0.48,0.13,1.07-0.52,1.25,0.16c0.11,0.57-0.91,0.53-0.68,1.19c0.28,0.69,0.41,1.43,0.63,2.12c0.4,0.43-0.1,0.97-0.6,0.77c-0.59-0.22-0.63,1.01-0.03,0.9c0.82-0.34,1.77-0.63,2.65-0.39c0.48,0.16,1.06,0.55,0.88,1.04c0.3,0.52,0.9-0.15,1.4,0c0.81,0.01,1.78-0.16,2.12-1c0.36-0.52,0.89,0.27,1.18,0.54c0.39,0.27,0.14-0.93,0.54-1.15c0.16-0.34,1.21-0.52,0.94-0.87c-0.58-0.18-0.71-0.94,0.03-0.87c0.57,0.06,1.03-0.19,1.29-0.7c0.34-0.35,0.94,0.37,1.24,0.63c0.5,0.43,1.12,0.69,1.43,1.31c0.4,0.5,1.1,0.7,1.43,1.27c-0.78,0.49,0.09,0.59,0.4,0.76c0.16,0.54,0.54,1,1.15,0.98c0.45-0.12,1.19,0.79,0.46,0.79c-0.86,0.11,0.01,0.52,0.36,0.72c0.46,0.11,1.22,0.19,1.08,0.85c-0.64,0.45-1.49-0.08-2.2,0.09c0.35,0.34,0.67,0.75,0.96,1.14c0.5,0.34,1.18,0.09,1.66,0.53c0.54,0.45,1.37,0.51,1.75,1.13c0.02,0.43-0.92,1.12-0.04,1.03c0.89-0.24,1.85-0.32,2.73,0.07c0.77,0.33,1.53,0.66,2.38,0.69c0.36,0.17,1.43,0.07,1.33,0.42c-0.44,0.32-1.09,0.37-1.62,0.54c-0.76-0.01-1.48,0.27-2.08,0.71c-0.68,0.42-1.64-0.03-2.21,0.6c0.11,0.56-0.57,1.15,0.36,0.73c0.81-0.32,1.77-0.16,2.44-0.8c0.88-0.59,1.95-0.97,3.01-0.89c0.49,0.1,1.29,0.53,0.57,0.95c-0.01,0.66,0.77,0.33,1.17,0.15c0.66-0.15,1.3,0.39,1.91,0.61c0.57,0.37-0.15,0.83-0.16,1.28c-0.72,0.42,0.2,0.78,0.5,1.16c0.34,0.43-0.66,0.67-1.01,0.8c-0.81,0.47-1.64,1.06-2.63,0.94c-0.86,0.11-1.72,0.18-2.58,0.2c-1.07,1.08-2.35,2.11-3.94,2.19c-1.74,0.25-3.49,0.29-5.24,0.16c-1.57-0.12-3.13,0.17-4.69-0.01c-1.27-0.07-2.58-0.15-3.82,0.13c-0.78,0.22-1.38,0.86-1.62,1.61c-0.67,0.8-1.92,0.28-2.74,0.87c-1.53,0.7-2.74,1.89-3.93,3.05c-0.45,0.61-1.19,0.93-1.47,1.67c-0.51,0.81-0.22,0.57,0.28,0.03c0.84-0.39,1.55-1.03,2.24-1.67c1-0.82,2.19-1.33,3.38-1.81c2.13-0.65,4.29-1.36,6.53-1.43c0.8,0.02,1.73,0.2,2.28,0.81c0.39,0.55-0.22,0.97-0.74,1.02c-0.78,0.06-1.33,0.89-2.14,0.62c-0.66-0.27-1.39-0.2-2.04,0.05c0.64,0.26,1.6,0.05,1.84,0.88c0.34,0.22,1.11-0.49,1.36-0.3c0.1,0.09,1.33-0.05,0.41,0.44c-0.13,0.44-0.23,0.78-0.86,0.98c-0.82,0.31,0.56,0.13,0.86,0.18c-0.08,0.5-0.1,0.87,0.3,1.03c0.08,0.45,0.38,1.02,0.91,0.89c0.28,0.09,1.29,0.06,1.05,0.26c-0.93,0.09-0.28,0.17,0.13,0.53c0.47-0.1,0.87,0.11,1.26,0.24c0.16-0.15,1.04-0.19,1.19,0.11c-0.27,0.21,0.92,0.03,1.16-0.24c0.58-0.51,0.52,0.66,1.19,0.31c0.59-0.17,0.89,0.5,0.42,0.68c0.35,0,1.52,0.15,0.59,0.34c-0.56-0.2-0.44,0.33-1.12,0.1c0.03,0.3-0.59,0.17-0.9,0.45c-0.52,0.02-0.8,0.31-1.25,0.33c-0.46,0.28-0.95,0.35-1.24,0.13c-0.39,0.33-0.51,0.22-0.93,0.64c-0.78,0.26-0.53-0.87-0.96-0.07c-0.22-0.34-1.04,0.08-0.54,0.19c0.26,0.44-0.68,0.34-0.96,0.73c0.26,0.36-0.67,0.39-0.37,0.6c-0.39,0.07-0.38,0.33-0.91,0.3c-0.44,0.27-0.38,0.38-0.96,0.37c-0.33-0.75-0.63-0.27-0.83-0.83c-0.41-0.44,0.02-1.02,0.39-1.33c0.56-0.56-0.99,0.51-0.46,0c0.25-0.42,1.37-0.24,0.84-0.47c0.92-0.45,1.94-0.92,2.86-1.45c0.39,0.04,0.45,0.91,0.67,0.58c0.03-0.48,0.9-0.4,1.31-0.54c0.83,0.1-0.07-0.28-0.47-0.16c-0.84,0.12-1.74-0.23-2.53,0.18c0.08-0.52,0.94-0.45,1.18-0.86c0.68-0.71-0.38,0.19-0.32-0.35c-0.79-0.75,0.28,0.07-0.33,0.42c-0.42,0.21-1.02,0.33-1.49,0.58c-0.51,0.13-1.07,0.69-1.55,0.25c-0.04-0.18-0.35,0.71-0.92,0.42c-0.43-0.22-1.04-0.02-1.37-0.07C251.47,99.65,251.23,99.52,251.27,99.53L251.27,99.53z M186.19,47.83c-0.91-0.01-1.79-0.26-2.69-0.32c-1.22-0.38-2.49-0.46-3.74-0.7c0.63-0.63,1.63-0.48,2.36-0.93c-0.04-0.58,0.33-1.06,0.95-0.95c1.21-0.03,2.24,0.82,3.41,1.05c0.52,0.08,0.53,0.8,1.14,0.87c0.82,0.24,0.63,0.45-0.09,0.63C187.1,47.67,186.68,47.85,186.19,47.83L186.19,47.83z M231.09,50.65c-0.71-0.08-1.83,0.23-2.09-0.67c-0.19-0.54,0.56-0.89,0.87-1.27c0.66-0.41,1.5-0.46,2.25-0.45c0.53,0.08,1.04,0.26,1.53,0.47c-0.1,0.5,0.19,1.22-0.42,1.46C232.53,50.47,231.84,50.61,231.09,50.65L231.09,50.65z"/><path id="US" d="M60.07,72.61c-0.38,0.92-1.56,1.15-2.41,0.73c-0.6-0.03-1.08-0.66-0.3-0.88c0.42-0.43,0.79-0.46,1.28-0.07c0.45,0.21,1.07-0.26,1.04-0.75c0.74-0.05,1.63-0.08,2.18,0.5c0.02,0.37-0.99,0.06-1.35,0.28C60.37,72.47,60.18,72.48,60.07,72.61z M40.09,77.57c-0.51,0.25-1.25-0.41-0.56-0.65c0.88-0.13,1.41-1.06,2.36-0.99c0.79,0.02,1.6,0.2,2.34,0.47c-0.21,0.53-0.96,0.06-1.4,0.2c-0.61,0.08-1.26,0.08-1.74,0.5C40.76,77.26,40.42,77.41,40.09,77.57z M38.43,77.98c-0.72,0.01-0.77-0.93-0.03-0.62C38.99,77.46,39.1,77.91,38.43,77.98z M37.9,78.45c-0.64,0.32-1.34,0.18-2.01,0.21c-0.53,0.08-0.74,0.94-1.36,0.61c-0.9-0.02-0.52-0.63,0.08-0.85c0.59-0.37,1.36-0.25,1.97-0.64C37.07,77.67,37.64,78.04,37.9,78.45z M29.63,81.29c0.09-0.49-0.92-1.2-0.05-1.14c0.34-0.15,1.49,0.05,1.08,0.46C30.2,80.78,30.24,81.22,29.63,81.29z M27.54,81.59c-0.51-0.07-1.23,0.5-1.53-0.12c0.31-0.46,0.86-0.57,1.32-0.25C27.4,81.34,27.47,81.47,27.54,81.59z M54.39,157.99c-0.67-0.18-0.57-0.78-0.63-1.32c-0.53-0.57,0.23-0.74,0.23-1.2c-0.46-0.69,0.53-0.33,0.83-0.12c0.57,0.1,0.74,0.69,1.06,0.85c0.41,0.44,0.44,0.65-0.14,0.96C55.18,157.26,54.65,157.43,54.39,157.99L54.39,157.99z M23.01,59.92c-1.25-0.53-2.56-1.11-3.95-0.86c-0.48,0.06-1.21-0.55-0.38-0.62c0.83,0,1.67,0.37,2.51,0.12c0.81-0.07,1.52,0.43,2.32,0.48c0.31,0.01,1.48,0.34,1.07,0.5C24,59.5,23.45,59.47,23.01,59.92z M99.86,70.99c0.13,0.31,0.84,1.33,0.06,0.99c-0.33-0.05-1.37-0.58-1.11,0.11c0.03,0.68-0.72-0.26-1.06-0.33c-0.69-0.16-0.85-0.55-0.17-0.9c0.51-0.29,1.04-0.03,1.51,0.24C99.34,71.07,99.6,71.03,99.86,70.99z M100.97,73.61c0.33,0.29-0.28,1.41-0.48,0.73c-0.32-0.55-0.83-1.04-0.99-1.66c0.18-0.44,1.14-0.12,1.21,0.34C100.8,73.22,100.89,73.41,100.97,73.61z M106.86,78.21c-0.82-0.56-1.77-0.96-2.44-1.72c0.21-0.56-0.49-0.93-0.5-1.38c0.51-0.14,0.82,0.45,1.33,0.52c0.72,0.07,0.61,0.53,0.57,0.95c0.14,0.58,1.2,0.34,1.04,1.02C106.85,77.79,106.85,78.01,106.86,78.21L106.86,78.21z M140.19,127.82c-0.25-0.52-0.5-0.48-0.39-1.14c-0.34-0.9-1.26-1.59-2.18-1.78c-0.38,0.39-0.29-0.41-0.62-0.58c-0.53,0.07-1.01-0.04-1.51-0.27c-0.29-0.45-0.78-0.63-1.28-0.56c-0.49-0.19-1.1-0.03-1.53-0.15c-0.46-0.21-0.35-0.75-0.34-1.23c0.14-0.44-0.84-0.23-0.5-0.84c-0.41-0.27-0.85-0.54-1.16-0.92c-0.28-0.41-0.59-0.76-1.05-0.99c-0.36-0.56-0.03-0.7,0.17-1.1c0.02-0.68-0.85-0.22-1.1-0.72c-0.44-0.33-0.31-0.82-0.52-1.27c0.22-0.71,0.25,0.28,0.69,0.29c0.72,0.4-0.32-0.52-0.27-0.81c-0.43-0.62-0.27-0.34-0.42,0.16c-0.4-0.22-0.97-0.35-1.06-0.92c-0.39-0.69-1.18-0.99-1.65-1.62c0.15-0.37-0.38-0.92-0.09-1.36c-0.23-0.69-0.89-1.1-1.23-1.71c-0.16-0.87,0.63-1.58,0.52-2.45c-0.04-1.24-1.19-2.24-0.99-3.5c0.21-0.48,0.88-0.51,0.95-1.12c0.16-0.44-0.64-0.88-0.26-1.41c0.34-1.12,0.58-2.25,0.66-3.42c-0.35-0.39,0.12-0.65-0.13-1.11c0.66,0.06,0.6-0.1-0.14-0.18c-0.06-0.29-0.17-1.05-0.03-1.36c0.99-0.06-0.12-0.52-0.14-0.19c-0.35-0.08-0.06-1.01-0.49-1.3c-0.24-0.51-0.91-1.02-0.64-1.62c0.56-0.17,1.17,0.33,1.77,0.31c0.81,0.17,1.72-0.2,2.41,0.43c0.21,0.58-0.46,0.84-0.79,1.19c0.52-0.1,0.97,0.9,1.1,0.13c0.45-0.3,0.66-0.78,0.74-1.32c0.02-0.65-0.28-1.32-0.62-1.86c-0.73-0.44-0.79-0.58-0.04-0.51c6.08,0.02,12.16,0,18.24,0c3.63-0.03,7.27,0.03,10.9-0.01c9,0,17.99,0.05,26.99,0.04c1.82,0.04,3.64-0.01,5.45,0c-0.24-0.36-0.62-1.08,0.25-0.91c0.64,0.44,1.1,1.04,1.64,1.58c0.48,0.33,0.96,0.51,1.53,0.4c0.45,0.12,1.16,0.03,1.36,0.36c0.51,0.33,0.48,0.4,1.12,0.24c0.37,0.3,0.76,0.45,1.18,0.61c0.61,0.07,1.14-0.36,1.73-0.44c-0.03,0.7,0.85,0.22,1.26,0.33c0.48,0.1,0.84,0.37,1.37,0.25c0.9,0.2,1.64-0.58,2.52-0.66c0.8-0.13,1.56,0.42,2.31,0.64c1.98,0.79,3.99,1.52,5.88,2.54c0.05,0.54,0.53,1.06,1.09,0.87c0.4,0.27,0.74,0.62,1.33,0.6c0.56,0.17,0.06,0.96,0.83,1.03c0.73,0.3,1.47,0.61,2.2,0.91c0.29,1.27,0.83,2.49,0.93,3.79c0.14,0.74-0.47,1.23-0.74,1.85c-0.24,0.66-1.19,0.76-1.38,1.39c-0.03,0.87,1.12,1.11,1.8,0.92c1.18-0.48,2.28-1.39,3.63-1.33c1.22-0.13,2.41-0.49,3.49-1.06c-0.02-0.52-0.53-1.27,0.1-1.6c1.2-0.42,2.52-0.15,3.75-0.09c0.65-0.11,1.61-0.11,1.67-0.97c0-0.63,0.71-0.51,1.1-0.79c1.02-0.4,1.95-1.03,2.94-1.46c2.22,0.01,4.44-0.03,6.65,0.08c0.66,0.31,0.6-0.62,1.1-0.78c0.49-0.16,1.09,0.18,1.53,0.01c0.73-0.85,1.36-1.77,1.81-2.8c0.33-0.78,0.86-1.46,1.55-1.95c0.51,0.11,0.94,0.8,1.49,0.39c0.63-0.16,1.6,0.1,1.56,0.9c0.05,0.88,0.29,1.77,0.21,2.63c0.29,0.35,1.11,0.15,0.73,0.77c-0.56,0.36,0.78,0.24,0.38,0.84c-0.12,0.19,0.65,0.19-0.19,0.58c-0.68-0.08-0.76,0.32-1.2,0.13c-0.42-0.01-0.7,0.95-0.94,0.19c-0.64,0.19-0.97,0.28-1,0.55c-0.82,0.11-0.04-1.2-0.7-0.31c-0.28,0.29-0.48,1.14-0.93,0.95c-0.19-0.21-0.89,0.79-0.65-0.07c-0.23,0.21-0.51,1.08-0.73,0.41c-0.49-0.16-0.52,0.53-0.86,0.67c-0.26,0.4-0.72,0.58-0.87,1.15c-0.54,0.3-0.19,0.98,0.31,0.78c-0.42,0.29-0.75,0.24-1.04,0.72c0.34,0.07,0.91,0.4,1.16,0.87c-0.06,0.71,0.73,0.52,1.15,0.3c0.06-0.24-0.92-0.78-0.15-0.52c0.54,0.42,0.35,1.07-0.37,0.95c-0.61,0.29-0.95,0.01-1.09-0.21c-0.27,0.21-0.61,0.6-1,0.43c0.32-0.66-0.2-0.61-0.49-0.43c0.07,0.72-0.35,0.88-1,0.83c-1.42,0.12-2.87,0.18-4.15,0.89c-0.35,0.44-0.91,0.58-0.42-0.15c0.22-0.7-0.31,0.5-0.38,0.73c-0.68-0.12-0.39,0.79,0.26,0.62c-0.17,0.61-0.28,1.41-0.73,1.95c-0.36-0.19-0.31,0.65-0.82,0.82c-0.42,0.58-0.73,0.57-0.61-0.07c-0.48,0.04-0.98-0.3-1.23-0.71c-0.36-0.3,0.79-1.03-0.07-0.49c-0.57,0.4,0.44,0.89,0.28,1.44c0.17,0.56,0.84,0.54,0.74,1.18c0.15,0.62-0.51,0.72-0.71,1.19c-0.31,0.28-0.39,1.08-0.67,1.08c-0.29-0.02-0.39,1.33-0.75,0.6c0.17-0.44,0.26-1.11,0.77-1.3c0.05-0.48-0.56-0.07-0.27-0.54c-0.74,0.09,0.41-0.9-0.42-0.43c-0.3,0.19-1.18-0.47-0.42-0.62c0.9-0.04-0.48-0.49-0.39-0.35c0.27-0.37,0.77-0.12,0.01-0.53c0.43-0.23,0.71-0.32,0.21-0.5c0.4-0.63,0.95-0.18,0.61-0.76c-0.12-0.45-0.42,0.68-0.64,0.16c0.01,0.39-0.2,0.12-0.47,0.48c-0.59-0.15,0.56,0.65-0.12,1.02c-0.08,0.37,0.67,1.29-0.12,0.71c-0.54-0.54,0.18,0.37,0.44,0.47c0.37,0.83-0.57-0.14-0.91-0.07c-0.2-0.26-0.35-0.12-0.98-0.29c-0.15-0.34,0.71-0.92-0.12-0.36c-0.4,0.67,0.62,0.44,0.82,0.86c0.6,0.11,0.82,0.38,1.33,0.51c0.52,0.34-0.38,1.01-0.67,0.35c-0.72-0.61-0.58-0.39-0.04,0.19c0.6,0.36,0.65,0.26,0.78,0.56c0.12,0.47-0.43-0.01-0.43,0.42c-0.46-0.34-0.99-0.8-0.31-0.06c0.37,0,1.11,0.56,0.45,0.71c-0.32-0.22-0.76-0.98-1.2-0.56c0.53,0.07,0.92,0.63,1.1,0.79c0.34-0.14,1.12-0.25,1.19,0.36c0.22,0.7,0.44,1.4,0.85,2.01c-0.67-0.46-0.56-1.39-0.97-2.02c0.25,0.62-0.4,0.32,0.14,0.82c0.44,0.91-0.07,0.2-0.13,0.32c-0.41-0.18-0.62-0.32-0.39,0.14c-0.8,0-0.34-0.16-0.84,0.29c-0.59,0.1-0.37-1.18-0.5-0.28c-0.08,0.62,0.48,0.42,1,0.42c0.86-0.42,0.32,0.39,0.56,0.67c0.03-0.54,0.57-1.03,0.7-0.25c-0.1,0.51-0.57,0.26-0.83,0.84c-0.44,0.29-0.93-0.18-1.23-0.33c0.47,0.61-0.92-0.13-0.85,0.05c0.28,0.26,1.1,0.21,1.17,0.6c-0.53-0.02-0.02,0.61-0.84,0.49c-0.71-0.72-0.17,0.38,0.34,0.19c0.44-0.17,0.8-0.34,0.86,0.05c-0.36,0.4-0.8,0.49-1.33,0.53c-0.58-0.02-1.03,0.21-1.35,0.69c-0.5,0.38-0.7,1.22-1.45,1.14c-1.05,0.12-2.35,0.58-2.55,1.75c-0.76,0.69-1.66,1.38-2.74,1.36c-0.54,0.97-1.44,1.73-1.67,2.85c-0.22,0.58-0.52,1.16-0.28,1.78c0.17,1.57,1.23,2.84,1.92,4.2c0.17,0.98,0.37,1.95,0.82,2.85c0.12,0.32,0.49,0.88,0.39,1.41c-0.09,0.67-0.19,1.37-0.41,2c-0.48,0.39,0.12,1.06-0.48,1.45c0.03-0.07-0.09-0.54-0.71-0.22c-0.65,0.04-0.86-0.05-0.95-0.75c-0.22-0.54-0.48-1.02-1.14-0.96c-0.54-0.31-0.05-1.27-0.77-1.39c0.02-0.77-0.43-0.52-0.72-0.94c-0.09-0.41-0.91-1.14-0.63-1.25c0.47,0.06,0.75-1.19,0.17-0.72c-0.57,0.61-0.57-0.42-0.37-0.81c0.05-0.55,0.34-1.18,0.16-1.69c-0.19-0.62-0.99-0.39-1.24-0.94c-0.57-0.62-1.09-1.42-1.95-1.62c-0.82,0.02-1.28,0.88-2.11,0.9c-0.65,0.39-0.87-0.28-0.98-0.77c-0.43-0.55-1.25-0.16-1.72-0.67c-0.35-0.47-1.01,0.09-1.52-0.01c-0.67-0.11-0.84-0.09-1.31,0.2c-0.62,0.29-0.73-0.51-1.04-0.86c-0.11,0.5-0.25,0.93-0.88,0.62c-0.64,0.07-1.35-0.16-1.95,0.06c-0.39,0.36-0.94,0.54-1.4,0.17c-0.45-0.38-0.92-0.23-1.12,0.31c0.33,0.56,0.98-0.02,1.43,0.06c0.43,0.12,1.32,0.6,0.44,0.79c-0.61,0.38,0.32,0.88,0.73,0.93c0.68,0.38,0.39,0.73-0.28,0.58c-0.44-0.19-0.71-0.7-1.31-0.73c-0.31-0.63-1.08,0.13-0.36,0.33c0.02,0.73-0.61-0.43-0.99-0.02c-0.41,0.55-0.89,0.12-1.4-0.1c-0.4-0.56-1.04-0.84-1.64-1.16c-1.22-0.07,0.33,0.37-0.36,0.64c-1.05,0.06-2.02-0.41-3.04-0.49c-0.71,0.11-1.48,0.04-2.09,0.49c-0.72,0.24-0.81-0.45-1.22-0.49c-0.54,0.32,0.81,0.96-0.07,1.19c-0.91,0.69-1.95,1.53-3.16,1.25c-0.81-0.3-0.77,0.2-0.38,0.61c-0.3,0.74-1.24,0.51-1.82,0.88c-0.92,0.25,0.8,0.49,0.15,0.91c-0.43,0.36-0.76,0.83-0.64,1.42c0.03,0.9,0.46,1.73,0.84,2.53c-0.63-0.16-1.21-0.75-1.88-0.38c-0.76-0.25-1.41-0.78-2.21-0.95c-0.74-0.59-0.92-1.59-1.19-2.42c-1.11-0.87-1.9-2.05-2.59-3.26c-0.41-0.8-1.06-1.46-1.95-1.69c-0.78-0.3-1.72-0.13-2.23,0.57c-0.48,0.39-0.79,1.16-1.53,0.99c-1-0.15-1.91-0.75-2.73-1.3c-0.79-0.72-0.6-2.12-1.68-2.59c-0.9-0.54-1.75-1.15-2.43-1.95c-0.71-0.25-1.53-0.09-2.28-0.16c-0.56,0-1.12,0-1.68,0c-0.01,0.52-0.03,1.21-0.75,1c-1.92,0-3.85-0.04-5.77-0.1c-2.6-0.76-5.19-1.63-7.75-2.51c-0.4-0.45-0.91-0.46-1.48-0.39C142.93,127.62,141.52,127.74,140.19,127.82L140.19,127.82z M49.82,152.78c-0.42,0.13-1.02,0.12-1.29-0.32c-0.33-0.33,0.71-0.75,0.75-0.26C49.33,152.51,49.7,152.48,49.82,152.78z M52.79,154.31c-0.04-0.38-1.03-0.74-0.46-1.04c0.39,0.3,1.09,0.26,1.32,0.71C53.55,154.3,53.06,154.26,52.79,154.31L52.79,154.31z M111.68,77.22c-0.01,0.69-0.88,0.32-1.18,0.82c-0.66-0.02-0.51-0.68-0.37-1.12c-0.09-0.44-0.47-0.87-0.88-1.09c-0.27-0.53-0.99-0.13-1.48-0.22c-0.38-0.05-1.09,0.73-1.11,0.07c-0.13-0.55,0.75-0.89-0.08-1.22c-0.72-0.36-1.1-1.18-1.91-1.37c-0.79-0.01-0.18-0.66-0.82-0.97c-0.54-0.39,0.6-0.78-0.41-0.89c-0.66-0.09-0.97-0.81-1.63-0.95c-0.53-0.17-1.02-0.38-1.21-0.95c-0.26-0.42-0.37-1.29-1.04-1.13c-0.15,0.55-0.08,1.06,0.25,1.53c0.5,0.71-0.26,0.62-0.74,0.43c-0.45-0.18-0.69-0.81-1.1-0.97c-0.55,0.24-1.11-0.06-1.67-0.11c0.39,0.32,1.11,0.42,1.29,0.89c-0.48,0.12-1.15,0.19-1.7,0.18c-1.14-0.19-1.93-1.08-2.94-1.56c-1.05,0.02-2.03-0.37-2.98-0.79c0.38-0.1,1.5-0.26,0.77-0.73c-0.72-0.3-1.45,0.33-2.2,0.19c-0.72,0-1.43-0.11-2.13-0.31c0.13-0.66-0.84-0.63-1.21-0.35c-1.32,0.19-2.65-0.16-3.98-0.01c-1,0.1-2.16-0.07-2.75-0.98c-0.3-0.11-0.89,0.42-1.35,0.21c-0.61-0.02-0.83-0.58-1.37-0.7c-1.28-0.46-2.73-0.3-3.9-1.07c-0.34,0.4-1.4,0.01-1.18,0.67c-0.13,0.15-1.21,0.72-0.56,0.87c0.46,0.1,1.28,0.2,0.95,0.86c-0.24,0.54-0.83,0.6-1.33,0.38c-0.79-0.29-1.65-0.15-2.28,0.4c-0.63,0.33-1.41,0.26-2.01,0.7c-0.74,0.38-1.5,0.67-2.34,0.66c0.05-0.57,0.94-0.55,0.92-1c0.01-0.46-1.2-0.7-0.41-1.05c0.48-0.3,0.96-0.7,1.1-1.27c1.18-0.65,2.56-0.66,3.86-0.44c0.55-0.3-0.74-0.41-1-0.62c-0.59-0.29-1.2-0.48-1.86-0.35c-0.41,0.24-0.95,0.31-1.32,0.7c-0.81,0.55-1.9,0.48-2.61,1.19c-0.55,0.25-0.99,0.27-0.84,0.94c-0.21,0.72-1.14,0.63-1.74,0.8c-0.57,0.14-1.13,0.53-1.44,1c-0.02,0.54,0.86,0.33,1.24,0.49c0.74,0.03,0.62,0.61,0.02,0.8c-0.76,0.13-1.31,0.65-1.88,1.1c-0.57,0.29-1.28,0.24-1.9,0.44c-0.68,0.13-1.21,0.65-1.91,0.76c-0.52,0.18-1.21,0.45-0.44,0.86c0.09,0.43-0.82,0.42-1.13,0.65c-0.91,0.11-1.79,0.33-2.61,0.74c-0.51,0.16-1.04,0.34-1.27,0.88c-0.91,0.68-2.1,0.64-3.18,0.85c-0.37-0.16-1.42-0.29-0.73-0.78c0.49-0.29,1.1-0.39,1.5-0.86c0.63-0.33,1.34-0.64,2.07-0.48c0.95,0.34,0.16-0.54,0.73-0.84c0.63-0.41,1.42-0.53,1.99-1.03c-0.04-0.69,0.04-1.53,0.76-1.84c0.45-0.24,0.65-1.27-0.11-0.84c-0.68,0.07-1.45,0.35-2.09,0.11c-0.27-0.62-0.78-0.53-1.3-0.26c-0.39,0.26,0.58,1.21-0.33,0.91c-0.84-0.26-1.38-1.23-2.35-1.09c-0.54-0.12-1.09-0.08-1.63,0c-0.11,0.44-0.88,0.52-1.32,0.56c-0.47,0.06-1.34,0.17-1.3-0.53c-0.29-0.57,0.23-1.02,0.12-1.52c-0.22-0.43-0.64-0.94-1.01-1.15c-0.71,0.24-1.43,0.44-2.16,0.53c-0.44,0.25-1.02,0.25-1.49,0.21c-0.66-0.42-1.22-1-1.99-1.24c-0.73-0.23,0.06-0.75,0.34-0.96c0.89,0.1,1.81,0.59,2.68,0.4c0.37-0.36-0.5-0.98-0.92-0.92c-0.5,0.18-1.07,0.35-1.58,0.05c-0.79-0.33-1.59-0.63-2.46-0.55c-0.23-0.12-0.93-0.99-0.62-1.11c0.77,0.12,0.48-0.68,1.09-0.79c0.23-0.41,0.51-0.88,1.04-1.03c0.68-0.42,1.14-1.18,1.91-1.48c1.06,0.05,2.16,0.83,3.17,0.19c0.53-0.37,1.08-0.68,1.74-0.73c0.8-0.24,1.72,0.06,2.46-0.34c0.38-0.56-0.04-1.24-0.55-1.55c-0.82-0.54,0.33-0.32,0.69-0.47c0.61-0.3-0.26-0.84-0.65-0.88c-0.72-0.03-1.45,0.25-2.15,0.38c-0.8,0.27-1.53,0.97-2.42,0.64c-1.42-0.31-2.9-0.38-4.33-0.14c-1.02-0.03-2.1,0-3.06-0.41c-0.22-0.51-0.26-1.15,0.49-0.96c0.52-0.04,1.08,0.1,1.56-0.19c-1.85-0.42-3.73-0.66-5.59-0.99c1.17-0.6,2.55-0.45,3.78-0.89c1.4-0.28,2.71-0.85,4.13-1.04c0.61-0.15,1.25,0.05,1.87,0.06c-0.34,0.57-0.1,1,0.57,0.91c1.62,0.19,3.4,0.35,4.86-0.54c0.84-0.13,1.71,0.25,2.57,0.08c0.7-0.31,0.12-0.71-0.44-0.59c-1.04-0.16-2.08-0.34-3.14-0.33c-0.11-0.62-0.47-0.92-1.11-0.84c-1.07-0.13-2.14-0.11-3.21-0.2c-0.15-0.85-1.16-0.97-1.81-1.31c-1.69-0.46-3.41-0.84-5.09-1.33c0.36-0.31,1.12-0.3,1.18-0.83c0.14-0.49,1.02-0.12,1.46-0.26c1.27-0.03,2.56-0.13,3.78-0.48c0.71-0.14,0.86-0.95,1.5-1.23c0.85-0.77,1.9-1.4,3.08-1.43c0.99-0.12,1.97-0.42,2.98-0.31c0.5-0.07,1.17,0.23,1.56-0.09c0.1-0.4-1.34-0.56-0.68-0.83c1.79-0.16,3.62,0.09,5.39-0.31c0.73-0.19,1.38-0.69,2.12-0.78c0.61-0.04,1.35,0,1.8,0.45c-0.88,0.23-0.01,0.7,0.52,0.6c0.54,0.18,1.01-0.14,1.42-0.45c1.59,0.29,3.22,0.18,4.81,0.35c0.89,0.23,1.62,1.16,2.61,0.87c1.85,0.2,3.73,0.08,5.58-0.02c1.61,0.08,3.18,0.58,4.81,0.52c1.38,0.03,2.77,0.1,4.11,0.41c1.46,0.01,2.91-0.12,4.36-0.16c1.68,0.27,3.22,1.1,4.91,1.32c0.23,1.36,0.03,2.76,0.11,4.14c0,2.47,0.17,4.93,0.2,7.39c0.01,2.98-0.18,5.96,0.06,8.93c0.27,0.51,0.99,0.29,1.48,0.33c0.91-0.02,1.81-0.16,2.72-0.04c0.4,0.42,0.56,1.03,1.16,1.25c0.95,0.58,1.92,1.13,2.8,1.81c0.29-0.6,1.1-0.35,1.55-0.79c0.84-0.34,1.52-1.26,2.51-0.99c0.81-0.01,0.98,1.05,1.72,1.26c1.24,0.68,2.5,1.38,3.42,2.48c1.09,0.95,1.86,2.22,3.01,3.1c1.17,0.31,2.33,0.73,3.42,1.25c0.41,0.3-0.27,0.99,0.25,1.38C111.58,77.02,111.63,77.12,111.68,77.22L111.68,77.22z"/><path id="MX" d="M184.44,142.73c-0.3,0.9-1.05,1.59-1.1,2.58c-0.3,1.32,0,2.69-0.27,4.02c-0.08,0.77,0.04,1.51,0.34,2.23c0.27,1.06,0.74,2.06,1.51,2.86c0.44,0.41,0.54,1.03,1.03,1.4c0.45,0.77,0.82,1.64,1.4,2.31c0.62,0.51,1.62-0.03,2.21,0.61c0.47,0.27,0.71,0.92,1.34,0.79c1.34-0.09,2.6-0.73,3.94-0.92c0.41-0.01,1.3-0.54,1.05,0.23c0.27,0.32,0.97,0.41,1.25-0.06c0.24-0.46-0.74-0.58,0.26-0.88c0.57-0.32,1.24-0.77,1.15-1.5c0.18-0.47,0.71-0.68,0.44-1.29c0.07-0.68-0.01-1.68,0.8-1.92c1.25-0.49,2.66-0.43,3.88-1.02c0.8-0.2,1.62,0.23,2.4,0.11c0.5-0.34,1.08,0.17,1.35,0.56c0.17,1.04-1.1,1.43-1.52,2.23c-0.19,0.47-0.08,1-0.51,1.39c0.11,0.36,0.67,0.07,0.31,0.87c-0.15,0.63-0.26,1.28-0.41,1.91c-0.37-0.21-0.37-1.35-0.78-0.96c-0.16,0.61-0.42,0.65-0.77,1.06c-0.27,0.34-0.53,1.31-1.01,0.72c-0.37,0.24-0.45,0.57-1.16,0.41c-1.08,0-2.16-0.01-3.24-0.01c-0.12,0.45,0.27,1.43-0.48,1.25c-1-0.09-0.04,0.2,0.2,0.63c0.42,0.31,0.98,0.38,1.09,1.01c0.6,0.03,0.69,0.83,0.17,0.96c-0.88,0-1.76-0.01-2.64,0c-0.36,0.6-0.72,1.21-1.08,1.81c0.52,0.39-0.08,0.81,0.17,1.36c0.11,0.61-0.68-0.37-0.94-0.52c-1.09-0.99-2.24-1.96-3.47-2.75c-0.89-0.34-1.97-0.64-2.82-0.04c-0.92,0.45-1.85,1.11-2.92,0.84c-0.82-0.23-1.61-0.55-2.48-0.59c-1.16-0.43-2.1-1.39-3.37-1.57c-1.19-0.19-2.31-0.64-3.38-1.18c-0.98-0.28-1.73-0.97-2.46-1.65c-0.51-0.11-1.07,0.05-1.59-0.18c-0.83-0.31-1.83-0.36-2.37-1.15c-0.6-0.97-1.72-1.36-2.67-1.87c-0.62-0.61-1.16-1.32-1.58-2.08c0.29-0.23,1.3-0.33,0.64-0.86c-0.16-0.39,0.68-0.82,0.34-1.33c-0.1-0.53-0.73-0.87-0.82-1.34c0.47-0.47-0.02-0.88-0.42-1.2c-0.79-0.91-1.53-1.86-2.42-2.67c-0.67-0.77-1.36-1.54-2.27-2.03c-0.26-0.41-0.14-1.05-0.77-1.16c-0.58-0.1-1.02-0.5-1.3-1c-0.47,0.02-1.08,0.17-1.09-0.52c-0.1-0.5,0.78-0.91,0.26-1.37c-0.37-0.67-0.96-0.27-1.26-0.54c-0.27-0.42-0.36-1-0.97-1.03c-0.63-0.05-0.99-0.75-0.66-1.3c-0.47-0.61-1.46-0.37-1.93-1.03c-0.96-0.66-1.28-1.82-2.03-2.65c-0.66-0.81-1.05-1.79-1.62-2.66c-0.36-0.41,0.29-1.21-0.38-1.33c-0.4-0.26-1.22-0.05-1.09-0.75c-0.43-0.7-0.8,0.16-1.29-0.04c-0.42-0.05-1.19-0.86-1.34-0.32c-0.15,0.55-0.49,1.26,0.1,1.67c0.51,0.52-0.04,1.45,0.48,2c0.26,0.5,0.71,0.76,1.2,0.96c0.8,0.59,1.26,1.47,1.66,2.35c0.37,0.37,1.16,0.22,1.11,0.93c0.15,0.5,0.11,1.36,0.84,1.32c0.75,0.02,0.53,1.04,0.92,1.48c0.08,0.87,0.92,0.07,1.11,0.5c0.35,0.83,0.36,1.79,0.9,2.56c0.39,0.77,0.97,1.51,0.8,2.42c0.11,0.59,0.87,0.73,1.23,0.24c0.34,0.31,0.69,0.86,0.88,1.36c0.46,0.23,1.17,0.33,0.73,1c-0.27,0.32-0.66,0.89-1.12,0.8c-0.4-0.49-0.34-1.23-0.94-1.57c-0.42-0.34-0.96-0.49-1.3-0.94c-0.97-0.57-1.91-1.28-2.55-2.21c0.13-0.58,0.37-1.2-0.05-1.72c-0.26-0.55-0.55-1.27-1.26-1.28c-0.51-0.17-0.83-0.8-1.26-0.95c-0.68,0.31-1.25-0.46-1.85-0.7c-0.9-0.22-1.34-1.09-2-1.66c0.71,0.23,1.69,0.31,2.11-0.45c0.18-0.53,0.08-1.02-0.33-1.4c-0.76-0.81-1.66-1.48-2.66-1.95c-0.61-0.33-0.5-1.23-0.99-1.63c-0.76-0.03-0.35-0.95-0.7-1.37c-0.37-0.57-1.05-1.06-1.1-1.77c0.53-0.54-0.45-0.72-0.67-1.14c-0.59-0.6-0.18-0.8,0.51-0.72c1.4-0.11,2.81-0.16,4.22-0.2c0.66,0.73,1.75,0.75,2.61,1.13c1.93,0.62,3.86,1.32,5.82,1.82c2.01,0,4.03,0.1,6.04,0.07c0.54-0.14-0.07-1.28,0.75-0.99c1.12,0.02,2.28-0.03,3.38,0.09c0.74,0.68,1.45,1.42,2.36,1.88c0.57,0.31,1.02,0.75,1.17,1.4c0.19,0.79,0.68,1.49,1.45,1.81c0.83,0.44,1.81,1.14,2.77,0.67c0.51-0.59,1.04-1.34,1.83-1.53c1.22-0.12,2.49,0.55,3.02,1.68c0.74,1.24,1.51,2.49,2.67,3.38c0.28,0.82,0.45,1.84,1.2,2.43c0.8,0.17,1.45,0.7,2.21,0.95C183.26,141.98,183.79,142.57,184.44,142.73L184.44,142.73z"/><path id="CU" d="M217.96,150.38c0.34-0.09,1.51-0.2,0.89-0.6c-0.61-0.22-1.29-0.12-1.92-0.12c-0.91,0.06-1.34,1.26-2.3,1.06c-0.69-0.22-0.63,0.64-1.15,0.82c-0.34,0.03-1.52,0.39-0.88-0.17c0.8-0.17,0.08-0.88,0.61-1.26c0.97-0.65,2.13-1.02,3.28-1.22c0.9-0.01,1.76-0.31,2.65-0.19c0.72-0.09,1.42,0.22,2.14,0.24c0.54,0.26,1.17,0.22,1.71,0.38c0.68,0.35,1.12,1.13,1.97,1.15c1.22,0.17,2.48,0.53,3.43,1.32c0.19,0.53,0.71,0.67,1.22,0.68c0.87,0.26,1.73,0.57,2.64,0.66c0.78,0.18-0.52,0.99,0.39,0.99c0.65,0.07,1.4-0.22,1.92,0.34c0.29,0.3,1.11,0.46,1.11,0.77c-0.69,0.12-1.41,0.14-2.05,0.46c-1.06,0.39-2.16-0.38-3.24-0.03c-0.78,0.13-1.59,0.33-2.37,0.17c0.36-0.53,1.07-0.76,1.25-1.4c-0.69-0.9-2-0.2-2.83-0.88c-0.41-0.28-0.21-0.99-0.58-1.38c-0.62-0.42-1.45,0.04-2.14-0.23c-1.17-0.18-2.1-1.13-3.33-1.08C219.52,150.89,218.72,150.79,217.96,150.38L217.96,150.38z"/><path id="JM" d="M228.82,160.52c-0.51-0.09-1.04-0.22-1.36-0.66c-0.28-0.33-1.42-0.39-0.55-0.76c0.88-0.31,1.85,0.02,2.71,0.29c0.46,0.23,1.22,0.28,1.38,0.81c-0.31,0.49-0.91-0.26-1.37-0.08C229.24,160.04,229.19,160.49,228.82,160.52L228.82,160.52z"/><path id="HT" d="M241.07,156.15c-0.04,0.67,0.19,1.38,0.07,2.02c-0.59,0.38-0.16,0.98,0,1.48c0.41,0.94-0.35-0.26-0.78-0.17c-0.8,0.06-1.63,0.24-2.43-0.02c-0.53-0.11-1.15-0.1-1.48,0.39c-0.45-0.25-1.09-0.39-1.3-0.92c0.11-0.64,0.92-0.26,1.36-0.29c1.11,0.14,2.3,0.59,3.35,0c-0.08-0.33-1.02-0.47-0.95-1.02c0.29-0.48,0.09-1.07-0.52-1.08c-0.33-0.07-1.36-0.07-1.02-0.57c1.17-0.52,2.37,0.22,3.55,0.28C240.88,156.28,241.12,156.11,241.07,156.15L241.07,156.15z"/><path id="DO" d="M241.29,160.08c-0.14-0.51-0.45-1-0.47-1.53c0.52-0.35,0.34-0.93,0.3-1.46c-0.09-0.51-0.15-1.22,0.54-1.19c0.48,0.38,1.03-0.24,1.46-0.03c0.34,0.38,0.96,0.47,1.44,0.53c0.63-0.3,0.63,0.51,1.1,0.73c0.88,0.56,2.09,0.59,2.8,1.44c0.33,0.26-0.31,1.08-0.64,1.01c-0.34-0.39-0.68-0.84-1.28-0.64c-0.58,0.07-1.24-0.28-1.71,0.24c-0.38,0.47-1.02,0.39-1.19-0.22c-0.5,0.01-1.09,0.3-1.19,0.84c-0.18,0.36-0.52,1.33-0.92,0.68C241.45,160.35,241.37,160.21,241.29,160.08L241.29,160.08z"/><path id="TT" d="M264.77,176.04c-0.42,0.36-0.22,0.84-0.18,1.32c-0.03,0.53-0.84,0.41-1.24,0.39c-0.65,0.06-0.73-0.06-0.17-0.38c0.55,0.17,0.32-0.53,0.31-0.83c-0.78-0.28,0.22-0.4,0.6-0.4C264.31,176.08,264.54,176.01,264.77,176.04L264.77,176.04z"/><path id="PR" d="M251.9,160.23c-0.77,0.1-0.54-0.57-0.64-1.04c0.04-0.58,0.86-0.14,1.26-0.27c0.66,0.13,1.5-0.11,2.01,0.42c-0.17,0.58-0.75,0.86-1.32,0.67C252.77,159.97,252.28,159.99,251.9,160.23z"/><path id="CR" d="M214.47,175.91c0.55,0.5,0.94,1.12,1.39,1.7c0.49,0.19,0.66,0.74,1.1,1.04c0.49,0.51-0.89-0.26-0.63,0.55c-0.41,0.66,0.83,0.81,0.24,1.18c0.04,0.4-0.38,0.96-0.17,1.19c-0.21,0.88-0.01,0.39-0.42-0.09c0.21-0.48-0.53-1.06-0.71-0.72c0.67,0.62,0.06,0.71-0.49,0.33c-0.3-0.42,0.51-0.88-0.02-1.34c-0.39-0.36-0.99-0.45-1.35-0.77c-0.57,0.05-1.04-0.34-0.95-0.91c-0.29-0.37-0.85-0.5-1.23-0.82c-0.23,0.1,0.34,0.83,0.72,0.85c0,0.53-0.58,0.84-0.89,0.21c-0.54-0.22-1.22-0.48-1.2-1.19c-0.11-0.48,0.94-0.9,0.19-1.19c-0.42-0.1,0.18-0.45-0.09-0.55c0.46-0.38,1.02,0.21,1.53,0.28c0.5,0.33,0.96-0.28,1.48-0.02c0.36,0.03,0.69,0.79,1.27,0.49C214.33,176.06,214.41,175.98,214.47,175.91L214.47,175.91z"/><path id="BZ" d="M204.31,158.99c-0.6,0.86,0.75-0.22,0.46,0.67c-0.06,0.5-0.62,1.07-0.24,1.51c-0.34,0.52-0.04,0.95-0.13,1.46c-0.23,0.48-0.33,1.37-1.03,1.31c-0.22,0.38-0.39,0.89-0.89,0.82c-0.52-0.02-0.07-0.99-0.17-1.41c0.03-1.07,0.16-2.14,0.12-3.21c0.54-0.02,0.84,0.28,1.12-0.48C203.84,159.33,203.72,158.84,204.31,158.99z"/><path id="GT" d="M200.28,169.48c-0.58-0.22-1.15-0.5-1.78-0.37c-1.1,0.12-1.91-0.73-2.71-1.34c-0.14-0.49-0.01-1.05,0-1.39c-0.44-0.43,0.35-0.94,0.48-1.4c0.19-0.65,0.67-0.77,1.28-0.67c0.64,0,1.29,0,1.93,0.01c0.47-0.68-0.1-0.72-0.44-1.14c-0.11-0.65-0.88-0.49-1.16-1.01c-0.64-0.47-0.6-0.48,0.21-0.46c0.55,0-0.1-1.22,0.42-1.25c1.32,0,2.63,0.01,3.95,0.01c-0.07,1.43-0.14,2.86-0.21,4.3c0.54-0.24,1.13,0.33,1.41,0.24c-0.3-0.79,0.71-0.09,0.69,0.15c-0.65,0.46-1.19,1.09-1.94,1.39c-0.44,0.45,0.34,1.14-0.38,1.35c-0.84-0.04-0.23,0.55-0.82,0.7C201.04,168.91,200.24,168.93,200.28,169.48L200.28,169.48z"/><path id="HN" d="M204.41,165.09c0.61-0.07,1.18-0.51,1.83-0.31c0.87,0.14,1.79,0.28,2.65,0.11c0.5-0.15,0.92-0.5,1.39-0.08c1.09,0,2.25-0.41,3.24,0.25c-0.27,0.58,0.06,1,0.68,1.04c0.43-0.04,1.24,0.34,0.82,0.71c-0.66,0.2-1.3,0.45-1.93,0.74c-0.48,0.01-0.96-0.59-1.34-0.05c-0.36,0.79-1.07,1.26-1.71,1.79c-0.49-0.44-0.92-0.47-1.24,0.16c-0.69-0.1-1.07,0.09-0.89,0.83c-0.06,0.79-0.98,0.78-1.58,0.84c-0.06-0.57-0.67-0.82-0.79-1.22c0.29-0.68-0.26-0.73-0.73-0.93c-0.34-0.05-0.94,0.64-1.08-0.07c-0.43-0.33-0.98-0.33-1.19-0.82c-1.07-0.08,0.15-0.33-0.29-0.97c-0.1-0.62,0.57-0.71,0.93-1.04C203.59,165.75,204,165.41,204.41,165.09L204.41,165.09z"/><path id="SV" d="M205.53,170.09c-0.16,0.27-0.34,1-1.02,0.69c-1.37-0.18-2.69-0.67-3.99-1.13c-0.63-0.22,0.18-0.9,0.55-0.83c0.63-0.32,0.16-0.75,0.77-0.86c0.64-0.14,0.81,0.48,1.26,0.63c0.59,0,0.63,0.75,1.14,0.67c0.36-0.58,0.87-0.08,1.3,0.01C205.71,169.46,205.52,169.84,205.53,170.09L205.53,170.09z"/><path id="NI" d="M209.82,175.47c-0.5-0.99-1.5-1.58-2.16-2.45c-0.54-0.62-1.17-1.13-1.85-1.57c-0.32-0.53,0.75-0.21,1.06-0.38c0.65,0.07,1.21-0.5,1.06-1.15c-0.23-0.83,0.91-0.12,1.12-0.73c0.3-0.79,0.9,0.51,1.28-0.12c0.58-0.44,1.12-0.9,1.44-1.56c0.44-0.64,1.04,0.31,1.59-0.04c0.57-0.35,1.23-0.48,1.85-0.71c0.58,0.94,0.08,2.1-0.55,2.88c-0.19,0.84,0.06,1.7-0.25,2.52c-0.26,0.97-0.42,2.01-0.28,3.01c0.29,0.41,0.47,1.21-0.29,0.95c-0.6-0.08-0.61-0.67-1.29-0.56c-0.49,0.28-0.99,0.2-1.49-0.07C210.62,175.35,210.2,175.03,209.82,175.47L209.82,175.47z"/><path id="PA" d="M217.11,178.79c0.52,0.17,0.77,0.67,0.74,1.19c0.43,0.36,1.07,0.02,1.36,0.1c0.38,0.53,1.26,0.45,1.77,0.13c0.51-0.24,0.95-0.67,1.55-0.62c0.49-0.27,0.96-0.76,1.47-0.89c0.52,0.15,1.01,0.22,1.46,0.33c1.3-0.05,2.66,0.87,3,2.14c0.36,0.21,0.68,0.95,0.65,1.2c-0.31,0.02-0.63,1.16-0.96,0.71c-0.26-0.48-0.26,0.49-0.55,0.73c-0.17,0.74-0.4-0.56-0.67-0.8c-0.24-0.36-0.68-1.08,0-1.23c0.87,0.13,0.66,0.23,0.29-0.41c0.03-0.63-0.89,0.62-1.05-0.32c-0.01-0.54-0.43-0.56-0.7-0.59c-0.25-0.61-1.17-0.57-1.65-0.23c-0.76,0-0.1,0.9-0.83,0.98c-0.38,0.28-1.17,0.21-1.1,0.84c0.2,0.51,1.02,0.73,0.97,1.38c-0.58-0.06-0.82,0.49-1.39,0.51c-0.76,0.18-0.51-0.44-0.79-0.9c-0.32-0.97-0.36-0.14-0.69-0.02c-0.65-0.06-0.73-0.74-0.97-1.07c-0.56,0.04-1.13-0.11-1.6-0.37c-0.51-0.33-1.22,0.63-1.13,0.44c0.07-0.59,0.04-0.7,0.22-1.25c0-0.55,0.53-0.67-0.18-1.04c-0.08-0.46,0.01-1.33,0.65-0.86C217.06,178.98,217.08,178.81,217.11,178.79L217.11,178.79z"/><path id="CO" d="M242.38,173.62c-0.44-0.2-1.02,0.14-1.5,0.22c-0.71,0.09-0.32,0.8-0.5,1.24c-0.37,0.14-0.93,0.24-1.05,0.87c-0.41,0.63-0.7,1.3-0.85,2.04c-0.15,0.62-0.57,1.11-0.87,1.66c0.5,0.09,1.15-0.39,1.26,0.38c0.3,0.72,1.04,1.34,0.99,2.15c-0.1,0.54-0.42,1.3,0.26,1.58c0.34,0.43,0.73,1.01,1.37,0.82c1.08-0.05,2.27-0.44,3.25,0.21c0.62,0.39,0.96,1.14,1.52,1.63c0.35,0.63,1.05,0.07,1.58,0.05c0.92-0.09,1.86-0.35,2.79-0.18c-0.48,0.39-0.46,0.97-0.49,1.53c-0.37,0.4-0.65,0.89-0.47,1.45c0.03,0.87,0.36,1.64,0.84,2.35c0.13,0.4,0.97,0.88,0.48,1.23c-0.26,0.31-1.11,0.71-0.88,1.09c0.51,0.42,0.79,1.03,1.18,1.55c-0.82,0.38-1.5,1.23-2.5,1.02c-1.06-0.03-2.12-0.06-3.19-0.1c0.01,0.48-0.24,1.15,0.12,1.51c0.53,0.06,1.25,0.04,1.38,0.7c0.14,0.64-0.84-0.07-1.21,0.15c-0.62-0.04-1.03,0.37-0.85,0.99c0.02,0.45-0.17,1.09,0.43,1.24c0.7,0.13,0.64,0.74,0.66,1.27c0.48,0.4,0.38,0.96,0.2,1.48c-0.42,1.82-0.55,3.71-0.98,5.52c-0.37,0.22-0.59-0.76-1.05-0.84c-0.83,0.35-0.48-0.23-0.16-0.68c0.23-0.47,0.62-0.88,0.74-1.39c-0.65-0.36-1.22-0.88-1.93-1.12c-0.43,0.4-0.97,0.57-1.38,0.04c-0.42-0.49-0.73,0.6-1.3,0.4c-0.61-0.02-1.39,0.15-1.87-0.23c-0.02-0.53-0.14-1.05-0.8-0.96c-0.63-0.13-0.27-1.15-0.91-1.35c-0.48-0.43-1.31-0.61-1.39-1.34c-0.43-0.94-1.56-1.36-2.54-1.39c-0.49-0.3-0.94-0.75-1.43-1.08c-0.69,0.39-1.49,0.63-2.24,0.27c-0.63-0.04-0.66-0.72-1-1.07c-0.99-0.48-2-0.95-2.97-1.5c-0.2-0.48-0.38-1.09,0.44-0.97c0.76,0.31,0.46-0.55,0.23-0.88c0.02-0.73,0.94-0.63,1.45-0.58c0.93-0.44,1.03-1.64,1.63-2.4c0.51-0.43,0.24-0.94-0.3-1.17c-0.31-0.44,0.36-0.95,0.27-1.47c-0.06-0.61-0.25-1.18-0.52-1.72c0.08-0.42,1.17-0.47,0.42-0.98c-0.68-0.29-0.21-0.81-0.03-1.23c-0.19-0.61-0.89-0.95-1.26-1.48c0.11-0.52,0.51-0.96,0.52-1.25c0.13,0.6,0.84,0.07,0.85-0.4c0.64-0.12-0.05-0.74-0.17-1.18c-0.69-0.54,0.08-0.44,0.36,0.08c0.38,0.22,0.39,1.22,0.88,0.96c0.57-0.42-0.5-1.03,0.03-1.51c0.51-0.44,1.09-0.81,1.39-1.44c0.4-0.31,1.23-0.03,1.2-0.72c-0.18-0.56,0.2-1.14,0.16-1.72c0.26-0.78,1.08-1.27,1.84-1.44c0.47,0.27,0.77,1.01,0.89,0.04c-0.02-0.66,0.4-0.91,0.96-0.66c0.74,0.08,1.58,0.09,2.09-0.54c0.57-0.46,1.52-0.35,1.8-1.14c0.33-0.83,1.55-0.98,2.13-0.33C242.73,173.13,242.66,173.41,242.38,173.62L242.38,173.62z"/><path id="VE" d="M266.02,188.96c0.28,0.51-0.55,0.77-0.89,1c-1.03,0.53-2.12,1.24-3.33,1.03c-0.69,0.11-0.1,1.32-0.86,1.35c-0.44-0.44-0.89-1.03-1.59-0.82c-0.8,0.19-1.43-0.33-2.12-0.61c-0.54,0.26,0.48,0.73,0.55,1.13c0.53,0.79,0.38,1.84,0.74,2.68c0.43,0.31,1.35-0.12,1.61,0.52c-0.36,0.5-1.04,0.53-1.55,0.74c-0.35,0.36-0.31,1.11-0.98,1.11c-0.97,0.22-1.62,1.05-2.25,1.76c-0.6,0.29-0.21-1.32-0.74-0.76c-0.34,0.4-0.87,0.81-1.38,0.4c-0.38-0.44-1.03-0.5-1.32-0.88c-0.32-0.82-0.2-1.82-0.87-2.48c-0.31-0.47-0.61-0.95-1.06-1.3c0.35-0.43,0.78-0.79,1.21-1.14c-0.48-0.94-1.35-1.74-1.45-2.85c-0.1-0.64-0.27-1.36,0.28-1.85c0.32-0.47-0.03-1.2,0.53-1.58c-0.03-0.31-0.97-0.13-1.36-0.1c-0.89,0.04-1.75,0.28-2.62,0.44c-0.64-0.58-1.11-1.36-1.75-1.91c-0.62-0.42-1.35-0.47-2.07-0.38c-0.75-0.04-1.73,0.47-2.27-0.25c-0.24-0.47-1.02-0.69-0.77-1.33c0.18-0.59,0.24-1.23-0.2-1.72c-0.31-0.53-0.63-1.05-0.89-1.6c-0.45,0.02-1.38,0.34-0.75-0.37c0.54-0.68,0.65-1.55,0.94-2.33c0.35-0.52,0.57-1.21,0.99-1.62c0.68,0.15,0.68-0.48,0.62-1c0.12-0.48,0.84-0.47,1.25-0.61c0.94-0.23,0.55,0.11-0.17,0.13c-0.5,0.14-1.17,0.43-0.74,1.04c0.18,0.53,0.46,0.76,0.51,1.36c-0.15,0.52-0.63,0.84-0.74,1.39c-0.33,0.44-0.11,0.97,0.31,1.25c0.18,0.41,0.33,1.29,0.96,1.02c0.38-0.18,1-0.41,0.94-0.94c0.05-0.75-0.52-1.34-0.86-1.97c-0.36-0.52-0.33-0.65-0.18-1.05c-0.13-0.26,0.86-0.41,1.21-0.57c0.57-0.23,1.29-0.27,1.77-0.58c0.17-0.32,1.34-0.1,0.67-0.63c-0.3-0.3-1,0.13-1.09-0.63c0.04-0.45,0.95-0.8,0.99-0.16c0.36,0.31,0.16,0.88,0.58,1.16c0.81,0.04,1.75,0.06,2.4,0.62c0.45,0.36,0.35,1.02,0.75,1.38c0.58,0.49,1.39-0.01,2.07,0.07c0.84,0,1.78-0.33,2.56,0.05c0.69,0.98,2.06,1.11,3.15,0.96c0.83-0.38,1.42-1.42,2.44-1.18c1.05-0.02,2.17-0.31,3.19,0.03c-0.29,0.66-1.24,0.05-1.67,0.38c-0.15,0.56,0.8,0.45,1,0.92c0.42,0.31,0.34,1.26,0.65,0.31c0.38-0.17,0.92,0.25,1.43,0.23c0.37,0.58,1.17,0.59,1.67,1.03c-0.55,0.25-0.84,0.65-0.95,1.21c-0.15,0.34-1.53,0.5-0.94,0.61c0.54,0.1,1.11,0.21,1.62-0.05c0.81-0.05,1.77-0.04,2.43,0.41c0.32,0.71-0.58,0.98-0.99,1.37c-0.33,0.24-1.09,0.65-0.56,1.08c0.42,0.29,0.94,0.93,0.16,1.12c-0.41,0.29-1.36-0.04-1.32,0.63c0.12,0.56-0.21,0.94-0.46,1.39C264.76,187.77,265.61,188.24,266.02,188.96L266.02,188.96z"/><path id="GF" d="M285.86,190.72c0.11,0.7-0.59,1.16-0.87,1.75c-0.72,0.89-0.86,2.17-1.76,2.91c-0.58,0.2-1.19-0.2-1.75-0.36c-0.42,0.2-0.87,0.92-1.32,0.38c-0.75-0.26-0.15-0.82,0.04-1.29c0.15-0.78,0.77-1.67,0.12-2.38c-0.44-0.59-0.29-1.4-0.55-2.07c0.12-0.86,0.67-1.55,1.18-2.22c0.92,0.32,1.93,0.48,2.67,1.19c0.72,0.65,1.55,1.21,2.06,2.06C285.73,190.7,285.8,190.71,285.86,190.72L285.86,190.72z"/><path id="SR" d="M274.56,195.88c0.1-0.5-0.47-0.92-0.56-1.43c-0.33-0.49-0.25-1.27-0.73-1.61c-0.7,0.07-0.92-0.74-1.31-1.17c-0.56-0.43,0.14-0.91,0.13-1.43c0.01-0.48-0.23-1.25,0.56-1.1c0.65,0.13,1.02-0.32,0.93-0.94c0.14-0.48,0.04-1.09,0.51-1.39c0.77-0.17,1.45,0.5,2.24,0.45c-0.05-0.76,0.81-0.38,1.27-0.46c1.12-0.12,2.24,0.07,3.24,0.61c0.1,0.32-0.6,0.79-0.71,1.23c-0.42,0.58-0.37,1.28-0.16,1.93c0,0.62,0.28,1.13,0.63,1.62c0.06,0.74-0.26,1.47-0.52,2.15c-0.17,0.68-0.53,0.83-1.09,0.39c-0.5-0.44-0.9,0.14-1.35,0.26c-0.5,0.14-1.24-0.59-1.55,0.08c-0.36,0.34,0.79,1.11,0.33,1.17C275.78,196.2,275.19,195.9,274.56,195.88L274.56,195.88z"/><path id="GY" d="M266.02,188.96c-0.44-0.71-1.18-1.17-1.56-1.91c0.22-0.48,0.61-0.84,0.47-1.42c-0.07-0.67,0.85-0.35,1.25-0.61c0.77-0.14,0.46-0.81-0.04-1.1c-0.59-0.42,0.12-0.88,0.49-1.12c0.4-0.4,1.3-0.63,1.02-1.34c0.09-0.16,0.84,0.54,1.21,0.68c0.75,0.51,1.78,1.18,1.56,2.23c0.02,0.36,0.06,1.62,0.34,0.75c0.23-0.57,0.93-0.1,1.25,0.15c0.77,0.45,1.58,1.13,1.75,2.03c-0.14,0.52-0.16,1.08-0.28,1.59c-0.28,0.5-1.1,0-1.43,0.46c0.16,0.68,0.02,1.35-0.35,1.94c0.38,0.5,0.7,1.15,1.19,1.52c0.75-0.12,0.72,0.78,0.94,1.26c0.24,0.55,0.45,1.11,0.79,1.61c-0.18,0.51-1.03-0.06-1.41,0.38c-0.86,0.41-1.83,0.57-2.54,1.26c-0.46,0.36-1.08,0.21-1.48-0.16c-0.49-0.49-1.47-0.83-1.26-1.69c0.2-0.62-0.78-1.04-0.49-1.7c0.16-0.87,0.52-1.69,0.88-2.49c-0.24-0.46-0.31-1.12-0.97-1.1c-0.68,0.08,0.23-0.8,0.13-1.18c-0.22-0.36-0.97-0.48-1.32-0.15C266.13,188.89,266.05,188.91,266.02,188.96L266.02,188.96z"/><path id="EC" d="M222.29,207.8c0.54-0.39,0.84-1.07,1.06-1.67c-0.17-0.27-0.07-1.47-0.3-1.01c-0.32,0.37-0.73,0.98-1.22,0.98c-0.36-0.14-1.28-0.53-1.03-0.88c0.7-0.32-0.06-1.07,0.23-1.61c0.36-0.48-0.58-0.98-0.25-1.34c0.33-0.25,1.29-0.44,1.15-0.84c-0.58-0.53,0.25-1.09,0.62-1.44c0.1-0.5,0.22-1.02-0.06-1.48c0.26-0.47,1.03-0.24,1.46-0.58c0.45-0.19,0.94-0.46,1.19-0.9c0.97,0.57,2,1.01,2.99,1.52c0.31,0.38,0.39,1.04,1.03,1.06c0.74,0.35,1.53,0.09,2.2-0.28c0.47,0.31,0.88,0.74,1.36,1.04c0.27,0.53,0.63,1.1,0.71,1.67c-0.25,0.45-0.63,0.84-0.79,1.36c-0.54,1.13-1.49,2.08-2.58,2.65c-1.5,0.38-3.25,0.94-3.84,2.53c-0.39,0.83-0.58,1.78-1.1,2.54c-0.47,0.49-1.09-0.12-1.23-0.63c-0.21-0.79-1.11-0.31-1.66-0.59c-0.43-0.52,0.09-0.94,0.06-1.47C222.29,208.22,222.29,208,222.29,207.8L222.29,207.8z"/><path id="PE" d="M245.93,224.31c0.72,1.23,1.52,2.43,2.11,3.73c-0.71,0.97-0.91,2.28-0.47,3.4c0.07,0.78-1.08,1.14-0.94,1.92c0.34,0.51,0.32,0.97-0.05,1.45c-0.17,0.87,1.05,1.58,0.49,2.41c-0.3,0.54-1.24,0.77-0.93,1.53c0.55,0.68-0.74,0.4-0.65,1.08c-0.05,0.55-0.32,1.1-0.93,1.14c-0.6,0.39-0.41-0.75-1-0.79c-0.63-0.35-1.64-0.42-1.75-1.29c-0.23-0.73-1.12-0.77-1.67-1.18c-1.39-0.71-2.74-1.48-4.19-2.04c-1.76-1.2-3.71-2.36-4.8-4.26c0.02-0.77,0.12-1.63-0.47-2.23c-0.93-1.07-1.29-2.51-2.09-3.66c-0.45-0.26-0.88-0.45-0.65-1.07c-0.09-0.96-0.81-1.71-1.19-2.57c-0.92-1.73-1.71-3.55-2.95-5.08c-0.71-0.8-1.03-1.97-2.08-2.41c-0.58-0.35-1.27-0.48-1.81-0.9c0.22-0.54,1.2-0.03,1.02-0.8c-0.35-0.86-1.3-1.47-1.28-2.47c0.35-0.9,1.21-1.47,1.93-2.06c0.6-0.38,0.84-0.42,0.69,0.37c-0.05,0.45-0.48,1.02,0.04,1.37c0.51,0.24,1.32-0.2,1.55,0.5c0.14,0.5,0.69,1.16,1.22,0.73c0.7-0.99,0.83-2.32,1.54-3.33c0.86-1.18,2.38-1.45,3.68-1.89c1.21-0.78,2.16-1.9,2.67-3.25c0.38-0.38,0.64-0.83,0.25-1.32c-0.13-0.44-0.85-1.22,0.06-0.91c0.98,0.12,2.04,0.76,2.21,1.81c0.47,0.42,1.13,0.69,1.55,1.15c0.21,0.42,0.13,1.12,0.76,1.11c0.75-0.17,0.4,0.77,0.74,1.03c0.7,0.19,1.49,0.2,2.18,0.03c0.46-0.42,0.77-0.59,1.23-0.05c0.51,0.43,0.91-0.65,1.44-0.13c0.53,0.28,1,0.66,1.52,0.95c-0.26,0.77-0.82,1.43-1.19,2.15c0.54-0.15,0.98,0,1.24,0.52c0.46,0.28,0.6,1.06-0.12,0.8c-0.59-0.21-1.31-0.43-1.78,0.13c-0.49,0.47-1.19-0.03-1.71,0.38c-0.82,0.29-1.6,0.67-2.34,1.13c-0.47,0.47-0.52,1.31-0.96,1.85c-0.39,0.46,0.6,1.18-0.09,1.48c-0.52,0.47-1.38,0.64-1.51,1.44c-0.15,0.84,0.67,1.46,1,2.18c0.38,0.58,0.7,1.2,1.11,1.76c-0.24,0.49-0.73,0.99,0.16,0.88c0.59,0.02,1.45,0.1,1.47,0.86c-0.08,0.72,0.86,0.29,1.3,0.42c0.96,0.2,1.5-0.85,2.34-1.09c-0.01,0.92-0.12,1.86-0.13,2.77c0.08,0.58,0.72,0.83,1.21,0.55C245.23,224.44,245.58,224.29,245.93,224.31L245.93,224.31z"/><path id="BR" d="M279.29,257.3c-0.29-1.29,0.43-2.51,0.79-3.69c-0.34-0.45-0.91-0.6-1.4-0.27c-0.53,0.36-1.06,0.17-1.11-0.49c-0.2-0.96-0.33-1.93-0.59-2.87c-0.55-0.25-1.09-0.58-1.68-0.68c-0.46,0.34-1.01,0.59-1.57,0.32c-0.53-0.13-1.06-0.24-1.6-0.29c-0.12-1.17,0.52-2.39-0.02-3.49c-0.39-0.41-0.38-0.97-0.56-1.46c-0.37-0.46,0.43-0.9,0.5-1.4c0.38-0.89,0.63-1.91,0.51-2.87c-0.21-0.64-0.51-1.31-1.23-1.49c-0.6-0.26-0.72-0.97-0.44-1.53c0.42-0.74-0.4-0.67-0.9-0.65c-0.96-0.04-1.96,0.04-2.89-0.12c-0.49-0.93-0.35-2.09-0.47-3.12c0.05-0.75-0.33-1.46-0.19-2.21c-0.38-0.55-1.21-0.63-1.84-0.68c-0.6,0.07-1.36,0.17-1.67-0.49c-0.11-0.66-0.63-0.71-1.2-0.66c-0.69-0.12-1.08-0.85-1.78-0.99c-0.67-0.44-1.46-0.1-2.17-0.36c-1.03-0.9-2.38-1.86-2.4-3.36c-0.1-0.85,0.22-1.69,0.07-2.54c-1.06,0-2.22-0.18-3.12,0.51c-0.83,0.41-1.45,1.22-2.3,1.53c-0.59-0.17-1.01,0.11-1.4,0.54c-0.55,0.62-1.35-0.07-2.02-0.07c-0.77-0.26-1.5,0.12-2.24,0.28c-0.7-0.08-0.79-0.91-0.65-1.47c0.06-0.66,0.07-1.32,0.1-1.98c-0.74,0.19-1.22,1.06-2,1.09c-0.5-0.07-1.21,0.1-1.59-0.12c0.06-0.65-0.48-1.22-1.14-1.13c-0.5-0.08-1.32,0.05-0.71-0.58c0.39-0.48-0.35-0.9-0.5-1.37c-0.44-0.81-1.06-1.55-1.43-2.39c-0.24-0.78,0.46-1.44,1.14-1.68c0.58-0.28,0.74-0.73,0.4-1.29c-0.17-0.52,0.45-0.91,0.52-1.42c0.16-0.54,0.39-0.98,0.95-1.16c0.75-0.48,1.63-0.79,2.46-1.06c0.59,0.18,1.13-0.11,1.56-0.5c0.66-0.31,1.36,0.54,1.95,0.07c-0.23-0.47,0.21-0.98,0.17-1.52c0.28-1.77,0.55-3.56,0.92-5.31c-0.26-0.46-0.55-0.89-0.39-1.46c-0.35-0.42-1.29-0.45-1.07-1.19c0.12-0.42-0.27-1.18,0.28-1.33c0.58-0.29,1.21-0.08,1.81-0.01c0.02-0.58-0.49-0.99-1.05-0.93c-0.74,0.1-0.52-0.72-0.53-1.18c-0.1-0.69,0.8-0.23,1.22-0.34c0.97-0.03,1.96,0.17,2.91-0.01c0.58-0.23,1.03-0.7,1.6-0.95c0.52,0.67,0.29,1.64,0.73,2.36c0.78-0.05,1.2,1.08,2.02,0.75c0.36-0.31,0.9-1.07,0.92-0.17c0.05,0.88,0.71,0.11,0.96-0.25c0.54-0.58,1.2-1.07,2.01-1.18c0.47-0.29,0.32-1.2,1.05-1.15c0.37-0.09,1.21-0.3,1.05-0.76c-0.37-0.45-1.19-0.03-1.55-0.42c-0.32-1.03-0.21-2.31-1.07-3.12c-0.68-0.45-0.17-0.87,0.37-0.39c0.64,0.5,1.44,0.37,2.19,0.34c0.51,0.14,0.74,1.05,1.31,0.73c0.2-0.41,0.01-1.35,0.7-1.21c1.36,0.11,2.55-0.74,3.69-1.36c0.63-0.2,0.16-0.87,0.82-0.96c0.39-0.08,1.32,0.08,0.93,0.65c-0.28,0.57-0.51,0.97,0.3,0.93c0.37,0.19,0.75,0.93,0.47,1.33c-0.3,0.81-0.73,1.64-0.76,2.51c0.09,0.56,0.76,0.92,0.51,1.53c-0.05,0.78,0.87,1.07,1.33,1.55c0.41,0.41,1.08,0.45,1.51,0.06c0.8-0.74,1.92-0.85,2.85-1.38c0.96-0.08,1.87,0.23,2.8,0.37c0.44-0.09-0.75-0.85-0.3-1.22c0.34-0.59,1.05,0.15,1.56-0.03c0.44-0.21,0.89-0.66,1.39-0.22c0.59,0.15,0.97,0.68,1.52,0.87c0.45-0.25,0.85-0.85,1.39-0.44c0.55,0.26,1.38,0.44,1.67-0.27c0.58-0.9,0.89-1.96,1.57-2.81c0.23-0.46,0.78-0.83,0.64-1.4c0.45-0.53,0.95,0.08,0.97,0.58c0.2,0.95,0.54,1.87,0.75,2.81c0.3,0.77,0.47,1.99,1.5,2.03c0.68-0.05,0.77,0.74,0.65,1.24c-1.07,0.57-1.23,2.06-2.36,2.59c-1.2,0.58-1.82,1.83-2.26,3.02c-0.75,0.5,0.03,0.71,0.55,0.43c0.59-0.2,1.07-0.65,1.65-0.87c0.23,0.61,0.38,1.38,0.9,1.78c0.7,0.21,1.48,0.08,2.19-0.01c0.82-0.48,0.52-0.03,0.37,0.59c-0.12,0.87,0.41-0.33,0.78-0.43c0.61-0.57,1.46-0.89,1.75-1.74c0.23-0.5,0.55-1.14,1.22-0.96c0.54,0.18,1.03-0.52,1.44,0.08c0.42,0.44,1.02,0.5,1.57,0.6c0.69,0.31,1.62,0.41,2.04,1.09c0.15,0.9,0.66,0.03,1.12,0.12c0.53,0.3,0.8,0.93,1.1,1.45c-0.3,0.5-0.76,1.03-0.43,1.64c0.19,0.7,0.66-0.43,1.04-0.54c0.68-0.2,1.33-0.47,1.98-0.74c1.01,0.02,1.78,0.95,2.81,0.99c1.21,0.21,2.48,0.34,3.67-0.04c1.37,0.05,2.54,0.93,3.6,1.72c1.23,1.03,2.37,2.22,3.75,3.04c1.04,0.44,2.22,0.24,3.29,0.47c0.76,0.28,0.52,1.27,0.84,1.88c0.47,1.52,1,3.14,0.51,4.73c-0.28,1.18-0.72,2.38-1.49,3.32c-0.92,0.76-1.77,1.62-2.68,2.38c-0.51,0.16-0.93,0.27-1.1,0.84c-0.08,0.92-0.53,1.74-1.03,2.5c-0.39,0.55-0.72,1.18-1.25,1.61c-0.31,0.02-0.45-1.09-0.93-0.7c0.02,1.1-0.72,2.05-0.65,3.16c-0.13,1.29,0.26,2.58,0.3,3.88c0.05,1.26-0.7,2.47-0.55,3.75c0.36,0.59-0.17,0.78-0.61,1.06c-0.66,0.66-0.83,1.67-0.56,2.54c0.26,0.63-0.08,1.25-0.62,1.6c-0.68,0.62-0.8,1.65-1.45,2.33c-0.55,0.66-1.06,1.49-0.74,2.37c0.07,0.52-0.89,0.38-1.24,0.65c-0.62,0.2-1.04,0.78-0.88,1.44c-0.69,0.22-1.44-0.02-2.14,0.23c-0.98,0.14-1.93-0.26-2.91-0.08c-0.7-0.22-0.8,0.27-1.1,0.71c-0.62,0.29-1.35,0.52-1.63,1.22c-0.49-0.24-1.03-0.35-1.5-0.01c-1.2,0.68-2.28,1.57-3.49,2.24c-0.64,0.33-0.86,1.25-1.68,1.24c-0.87-0.07-0.43,0.29-0.18,0.75c0.09,0.42,0.03,1.08-0.43,1.25c-0.07,0.47,0.52,0.93,0.32,1.51c0.09,1.24,0.12,2.61-0.68,3.65c-0.56,0.74-1.53,1.02-2.01,1.84c-0.81,0.96-0.96,2.31-1.8,3.26c-0.5,0.78-1.3,1.3-1.92,1.98c0.23-0.8,0.73-1.47,1.39-1.97c0.12-0.42,0.82-1.11,0.46-1.38c-0.43,0.4-1.11-0.29-1.38,0.04c-0.06,0.7-0.3,1.44-0.75,1.99c-0.59,0.35-1.31,0.8-1.24,1.58c-0.23,0.98-0.45,2-1.19,2.73c-0.45,0.6-1.03,1.07-1.58,1.57c-0.13-0.54-0.62-1.17-0.03-1.6c0.44-0.3,0.6-0.95,0-1.15c-0.67-0.7-1.17-1.72-2.15-2.11c-0.56-0.49-1.53-0.31-1.87-1.04c-0.28-0.61-0.71-0.55-1.16-0.12c-0.51,0.13-0.58-0.68-0.93-0.93c-0.35-0.43-0.79-1.05-1.37-1.07c-0.57,0.18-1.16,0.36-1.76,0.32c1.88-2.09,3.91-4.06,6.07-5.88c0.77-0.52,1.84-0.64,2.51-1.28c0.23-0.66,0.2-1.42,0.19-2.1c-0.27-0.4-0.29-1.1-0.78-1.27C280.17,257.11,279.73,257.24,279.29,257.3L279.29,257.3z M288.97,203.94c-0.6,0.04-0.87-0.52-0.94-1.04c0.32-0.4-0.09-0.99,0.17-1.48c0-0.56,0.26-1.05,0.9-0.9c0.76-0.01,1.57,0.4,2.28,0c0.56,0.07,1.13,0.22,1.64,0.43c-0.6,0.68-0.31,1.81-1.15,2.33c-0.67,0.56-1.54,0.45-2.34,0.51C289.34,203.84,289.15,203.89,288.97,203.94L288.97,203.94z"/><path id="BO" d="M245.93,224.31c0.8,0.01,1.54,0.42,2.33,0.42c0.53-0.17,0.81-1.02,1.46-0.8c0.79,0.1,1.31-0.72,1.94-1.08c0.73-0.54,1.56-1.03,2.5-0.97c0.42,0.14,1.4-0.3,1.3,0.38c0.03,1.18-0.42,2.5,0.32,3.55c0.59,0.79,1.31,1.55,2.16,2.05c0.66,0.15,1.36-0.1,1.96,0.29c0.69,0.16,1.1,0.8,1.74,1.01c0.54,0.01,1.16-0.09,1.25,0.61c0.26,0.66,1.02,0.65,1.61,0.55c0.64,0.01,1.41,0.13,1.88,0.59c0.02,0.55,0.06,1.13,0.21,1.68c0.09,1.23,0.03,2.5,0.42,3.68c0.53,0.26,1.21,0.09,1.8,0.16c0.71,0.01,1.42,0.01,2.13,0.04c0.15,0.6-0.53,1.29-0.02,1.82c0.41,0.49,1.2,0.51,1.38,1.21c0.57,1,0.14,2.16-0.13,3.19c-0.23,0.5-0.49,0.98-0.8,1.43c-0.7-0.41-1.45-0.83-2.22-1.1c-0.64-0.06-1.3,0.02-1.95-0.02c-0.47,0.33-1.16,0.27-1.73,0.41c-0.59,0.08-1.21,0.22-1.75,0.4c-0.49,0.59-0.9,1.29-1.29,1.93c-0.15,0.55,0.01,1.13-0.29,1.65c-0.22,0.65-0.42,1.31-0.71,1.94c-0.86-0.18-1.74-0.18-2.61-0.18c-0.34,0.59-0.69,1.19-1.03,1.78c-0.23-0.64-0.43-1.45-1.22-1.6c-0.91-0.18-1.99,0.33-2.76-0.38c-0.47-0.33-0.78,0.55-1.16,0.77c-0.51,0.46-0.94,1.09-1.5,1.45c-0.47-0.02-1.32,0.2-1.29-0.53c-0.28-1.48-0.44-3.1-1.48-4.28c-0.4-0.53-0.42-1.2-0.15-1.79c0.1-0.51,0.56-1.2-0.07-1.55c-0.77-0.5-0.74-1.46-0.92-2.25c-0.31-0.88-1.22-1.48-1.17-2.48c0.31-0.61,1.32-0.89,1.12-1.72c-0.21-0.69-0.99-1.42-0.43-2.14c0.43-0.5-0.46-1.03-0.08-1.59c0.42-0.49,1.15-1.07,0.77-1.78c-0.33-1.02-0.03-2.16,0.57-3.02C247.46,226.75,246.66,225.54,245.93,224.31L245.93,224.31z"/><path id="PY" d="M279.29,257.3c-0.02,0.64-0.36,1.28-0.58,1.88c-0.52,0.78-1.56,1.04-1.98,1.92c-0.46-0.32-1.06-0.66-1.58-0.26c-1.01,0.28-2.06,0.11-3.01-0.29c-0.69-0.18-1.33,0.35-1.98,0.25c0.11-0.59,1-0.75,1.06-1.32c-0.37-0.52-0.02-1,0.34-1.41c0.3-0.53,0.71-1.07,0.79-1.68c-0.85-0.55-1.84-0.71-2.71-1.22c-1.17-0.58-2.12-1.69-3.51-1.72c-1.51-0.36-2.44-1.77-3.48-2.81c-0.38-0.4-0.72-0.9-1.09-1.28c-0.12-0.3,0.33-0.93,0.4-1.36c0.22-0.66,0.5-1.31,0.43-2.01c0.17-0.71,0.77-1.22,1.09-1.87c0.3-0.56,1-0.44,1.53-0.64c0.76-0.14,1.63-0.17,2.31-0.48c0.9,0.08,1.89-0.23,2.67,0.36c0.64,0.39,1.71,0.57,1.7,1.51c0.05,0.66,0.74,1.09,0.63,1.8c0.07,0.88-0.27,1.75-0.19,2.64c0.84,0.02,1.63,0.43,2.46,0.38c0.43-0.33,0.91-0.56,1.4-0.19c0.42,0.24,1.11,0.29,1.11,0.9c0.26,1.03,0.27,2.13,0.74,3.09c0.66,0.19,1.38-0.76,1.97-0.13c0.63,0.26-0.07,0.88-0.12,1.33C279.37,255.52,279.1,256.4,279.29,257.3L279.29,257.3z"/><path id="UY" d="M270.93,276.12c0.14-0.58-0.41-1.2,0.03-1.76c0.26-0.47,0.9-0.84,0.61-1.46c-0.3-1.08-0.01-2.16,0.29-3.21c0.2-0.53,0.19-1.17,0.45-1.65c0.26-0.6,0.91-0.28,1.4-0.51c0.46-0.1,0.96-0.39,1.32,0.09c0.59,0.47,0.99,1.12,1.39,1.75c0.5,0.11,0.94-0.83,1.27-0.12c0.28,0.41,0.57,0.8,1.11,0.84c1.11,0.34,2.06,1.08,2.67,2.06c0.18,0.49,0.91,0.55,0.81,1.14c-0.3,0.43-0.99,0.87-0.59,1.45c0.4,0.56-0.02,0.97-0.37,1.41c-0.68,0.95-1.83,1.71-3.02,1.61c-0.79-0.48-1.75-0.28-2.53,0.14c-0.7,0.01-1.03-0.82-1.72-0.91c-0.57-0.26-1.14-0.17-1.72-0.03C271.69,277.05,271.49,276.23,270.93,276.12z"/><path id="CL" d="M248.45,316.58c-0.57,0.19-1.24,0.06-1.74-0.28c-0.66-0.07-0.95,0.82-1.64,0.75c-0.69,0.06-1.73-0.03-1.9,0.86c-0.32,0.53,0.05,1.17-0.32,1.7c-0.39,0.1-0.96,0.31-1.37,0.07c-0.86-0.15-0.45-0.52,0.04-0.91c0.06-0.48,1.19-0.72,0.77-1.07c-0.56-0.46-1.15,0.13-1.72,0.27c-0.54,0.12-1.14-0.08-1.67,0.19c-0.56-0.6,0.47-0.66,0.87-0.79c0.52,0.06,1.01-0.21,1.52-0.3c-0.63-0.25-1.3-0.14-1.96-0.16c-0.17-0.46,0.69-1.03-0.2-0.99c-0.29-0.84-0.76,0.07-1.27-0.12c-0.96,0.13,0.48-1.04-0.43-0.77c-0.32,0.39-1.22-0.38-0.8-0.51c0.65-0.37,0.03-0.77-0.42-0.76c-0.83-0.32-0.58-0.45,0.17-0.55c0.24-0.26,0.85-0.8,0.71-1.05c-0.44-0.05-1.15,0.45-1.25-0.25c-0.46-0.55,1-0.69,0-1.03c-0.74-0.55,0.53-0.7,0.46-1.12c-0.12-0.61-1.04,0.75-0.8-0.36c-0.04-0.54-0.17-1.1,0.29-1.51c0.17-0.34-0.53-1.28,0.24-1.11c0.45,0.03,0.96,0.5,1.41,0.25c0.39-0.45-0.61-0.73-0.95-0.75c-0.55,0.26-0.99-0.16-1.54,0c0.08-0.39,0.34-0.74,0.46-1.1c0.52,0.3,1.15-0.59,0.46-0.75c-0.51-0.42-1.14-0.33-1.73-0.33c-0.32-0.41-0.4-0.72-1.15-0.42c-0.4-0.29,0.71-0.53,0.97-0.76c0.47-0.12,0.66-0.7,1.01-0.92c0.42-0.22,1.43,0.12,0.9,0.55c-0.53,0.02-1.1,0.58-0.57,0.99c0.25-0.25,0.93-0.99,0.85-0.16c-0.07,0.97,0.5-0.08,0.82-0.36c0.5-0.54,0-1.65,0.82-1.95c1.07-0.25-0.47-0.13-0.17-0.7c0.36-0.31,0.99-0.39,1.36-0.79c0.58-0.42,0.28-0.92-0.32-1.05c-0.67-0.17-0.44-0.76-0.27-1.22c0.05-0.49-0.22-1.1,0.41-1.3c0.9-0.11,0.3-0.49,0.15-1c-0.34-0.72,0.43-0.75,0.68-1.1c0.23-0.61-1.12-0.47-0.45-1.04c0.3-0.54-0.73-0.69-0.95-0.24c-0.34,0.44-1.26,0.43-1.31-0.24c-0.35-0.67-0.76-1.41-0.45-2.18c0.04-0.9,0.96-1.29,1.33-2.04c0.35-0.55-0.19-1.2-0.27-1.78c-0.43-0.82,0.28-1.82-0.41-2.56c-0.45-0.38-0.31-1.19,0.38-0.84c0.81-0.15,0.66-1.23,1.03-1.8c0.49-0.81,0.4-1.88,1.16-2.53c0.79-0.92,0.69-2.27,1.36-3.24c0.56-0.32,0.4-0.95,0.15-1.42c-0.21-0.55,0.75-0.75,0.7-1.33c-0.35-1.37-0.52-2.81-0.63-4.22c-0.03-0.76,0.83-1.17,0.96-1.91c0.19-0.53,0.02-1.06-0.3-1.49c-0.17-0.66,0.33-1.3,0.38-1.98c0.07-0.54,0.25-1.02,0.65-1.4c0.24-1.44,0.78-2.87,0.56-4.35c0.34-0.53,0.84-1.11,0.49-1.76c-0.11-0.49-0.21-1.05,0.02-1.49c-0.11-0.53,0.08-1.04,0.17-1.52c-0.38-0.24-0.63-0.66-0.31-1.14c0.51-0.16,0.72-0.63,0.62-1.15c-0.01-0.99,0.4-1.95,0.27-2.95c0.04-1.66-0.22-3.32-0.23-4.98c0.08-0.44-0.56-1.22-0.07-1.36c0.55-0.06,0.97-0.44,0.98-1.01c-0.08-0.51,0.76-1.08,0.99-0.55c0.59,0.66,0.98,1.46,1.01,2.36c0.02,0.72,0.74,1.08,1.06,1.6c0.01,0.9-0.79,1.81-0.25,2.69c0.45,0.73,1.03,1.4,1.16,2.28c0.3,0.85,0.28,1.85,0.6,2.65c0.51,0.35,1.32-0.16,1.73,0.48c-0.07,0.75-0.37,1.5-0.71,2.14c-0.75,0.53-1.76,0.65-2.5,1.18c-0.41,0.43,0.42,1.02-0.13,1.44c-0.4,0.54-0.21,1.35,0.25,1.8c0.06,0.49-0.65,0.86-0.31,1.41c0.31,0.26,0.93,0.92,0.23,1.1c-0.59-0.01-1.15,0.06-1.21,0.76c-0.36,1.06-1.38,1.71-1.71,2.79c-0.26,0.62-0.69,1.2-0.45,1.9c-0.01,0.56,0.29,1.21,0.02,1.71c-0.74,0.22-0.93,0.97-1.11,1.63c-0.16,0.6-0.33,1.24,0.07,1.78c0.5,1.38,0.92,2.8,1.21,4.24c0.19,1.01-0.69,1.75-1.07,2.6c-0.36,0.44-0.41,0.92-0.22,1.44c0.15,0.51,0.22,1.12-0.36,1.38c-0.53,0.47-1.33,0.87-1.24,1.7c-0.19,1.25,0.01,2.55,0.64,3.65c-0.45,0.42-1.38,0.47-1.35,1.24c-0.27,0.99-0.28,2.08-0.83,2.97c-0.14,0.74,0.02,1.54,0.09,2.29c0.1,0.45,0.49,1.19-0.19,1.33c-0.76,0.29-0.37,1.18-0.39,1.78c0.48,0.2,0.9,0.31,0.76,0.98c-0.05,0.7-0.44,1.64,0.29,2.11c0.32,0.1,1.47,0.09,0.99,0.61c-0.55,0.4-1.29,0.16-1.91,0.4c0.36,0.43,1.23,0.47,1.33,1.07c-0.34,0.41-0.93,0.71-0.8,1.33c-0.12,0.8,0.31,1.6-0.06,2.37c-0.11,0.53-0.5,0.95-1.06,0.98c-0.38,0.24-0.69,0.93-0.33,1.29c0.47,0.44-0.05,1.04-0.08,1.58c-0.23,0.6-1.02,0.74-1.5,1.12c-0.5,0.22-1.08,0.63-0.85,1.25c0.11,0.8,0.38,1.55,0.75,2.26c0.62,0.06,1.2-0.34,1.83-0.36c0.4,0.53,0.21,1.3,0.36,1.93c-0.11,0.62,0.45,0.96,0.93,1.18c1.34,0.04,2.69-0.04,4.03,0.08C246.29,315.89,247.35,316.44,248.45,316.58L248.45,316.58z M236.64,296.77c-0.4-0.15-1.29-0.06-1.09-0.7c0.37-0.58,0.22-1.24,0.21-1.88c0.16-0.6,0.53-0.89,1.16-0.84c0.64,0.27,0.42,0.87-0.17,1.04c-0.63,0.38,0.47,0.82,0.21,1.32C236.86,296.07,236.9,296.48,236.64,296.77L236.64,296.77z M238.18,317.94c-0.87,0.09,0.01-1.12-0.63-1c-0.67,0.41-0.89-0.63-0.26-0.65c0.46,0.32,1.1-0.35,1.37,0.06c0.2,0.59-0.15,0.98-0.42,1.46C238.25,317.7,238.18,317.99,238.18,317.94L238.18,317.94z M247.8,322.06c-0.7,0.13-1.42,0.13-2.05-0.25c-0.8-0.05-1.53,0.38-2.33,0.36c0.37-0.41,0.04-1.1,0.66-1.04c0.64-0.12,1.35-0.08,1.97,0.03c0.22,0.39,1.49,0.42,0.77-0.07c-0.33-0.52-1.01-0.66-1.56-0.7c-0.44-0.34-0.81-0.92,0.02-0.95c0.35-0.19,1.42-0.25,0.85-0.78c-0.61-0.03-1.32,0.28-1.92,0.2c-0.49-0.26,0.23-0.91,0.59-1c0.57-0.22,1.06-0.6,1.54-0.96c0.42,0.43,1.03,0.27,1.57,0.34C247.91,318.85,247.84,320.46,247.8,322.06L247.8,322.06z"/><path id="AR" d="M247.9,318.39c0.07-0.47-0.25-1.48,0.51-0.97c0.82,0.16-0.08,0.74-0.43,0.91L247.9,318.39L247.9,318.39 L247.9,318.39L247.9,318.39z M248.45,316.58c-1.26-0.22-2.46-0.75-3.75-0.67c-1.22-0.13-2.44,0.01-3.66-0.06c-0.5-0.3-0.96-0.63-0.85-1.28c-0.14-0.6,0.04-1.32-0.35-1.83c-0.63,0.02-1.22,0.43-1.83,0.36c-0.43-0.89-0.84-1.87-0.75-2.88c0.62-0.74,1.75-0.9,2.33-1.65c0.03-0.48,0.42-1.04,0.24-1.47c-0.46-0.37-0.32-1.02,0.04-1.39c0.46-0.23,1.04-0.31,1.16-0.93c0.26-0.64,0.23-1.3,0.07-1.97c0.07-0.53-0.11-1.16,0.43-1.48c0.65-0.36,0.29-0.85-0.25-1.05c-0.74-0.25-0.72-0.57,0.07-0.57c0.45-0.01,1.24,0.03,1.3-0.55c-0.46-0.38-1.36-0.03-1.49-0.79c-0.28-0.71,0.25-1.5,0.01-2.24c-0.32-0.23-0.95-0.3-0.74-0.99c-0.15-0.54,0.04-1.11,0.62-1.26c0.48-0.26,0-0.97-0.04-1.4c0.01-0.92-0.38-1.96,0.29-2.75c0.22-0.93,0.36-1.9,0.62-2.81c0.29-0.37,1.05-0.45,1.19-0.85c-0.72-1.28-0.83-2.87-0.47-4.26c0.39-0.62,1.23-0.89,1.55-1.52c0.13-0.7-0.52-1.47,0.01-2.09c0.37-0.81,1.06-1.5,1.23-2.39c-0.09-1.29-0.6-2.51-0.93-3.76c-0.13-0.59-0.54-1.13-0.58-1.71c0.15-0.8,0.25-1.71,0.81-2.33c0.62-0.14,0.69-0.68,0.56-1.22c-0.04-0.72-0.35-1.48,0.12-2.11c0.34-0.85,0.74-1.69,1.42-2.32c0.32-0.53,0.59-1.08,0.79-1.67c0.46-0.14,1.35,0.14,1.27-0.59c-0.31-0.32-0.86-0.75-0.54-1.28c0.45-0.42,0.3-0.86-0.06-1.27c-0.24-0.59-0.03-1.17,0.34-1.65c-0.2-0.46-0.41-1.14,0.28-1.28c0.71-0.42,1.67-0.49,2.23-1.09c0.22-0.66,0.56-1.3,0.6-2.01c-0.75-0.31-0.19-0.65,0.2-1.05c0.55-0.55,1.07-1.13,1.64-1.66c0.53,0.4,1.16,0.65,1.84,0.52c0.77-0.13,1.84-0.04,2.09,0.85c0.17,0.79,0.4,0.82,0.69,0.06c0.34-0.35,0.38-1.22,0.99-1.09c0.82,0.02,1.65,0.01,2.44,0.24c0.89,1.18,1.9,2.3,3,3.29c0.63,0.56,1.41,0.84,2.24,0.91c1.25,0.39,2.15,1.46,3.39,1.9c0.68,0.34,1.44,0.47,2.08,0.92c-0.09,0.64-0.5,1.22-0.85,1.76c-0.42,0.39-0.58,0.9-0.25,1.41c-0.25,0.49-0.94,0.68-1.08,1.23c0.68,0.1,1.36-0.48,2.07-0.22c1.07,0.47,2.32,0.56,3.4,0.08c0.51-0.21,1.04,0.81,1.31,0.15c0.59-0.84,1.87-1.13,2.04-2.28c0.31-0.41,0.1-1.28,0.67-1.28c0.48-0.06,1.24-0.36,1.38,0.32c0.26,0.52,0.52,1.03,0.37,1.62c-0.04,0.61,0.06,1.45-0.67,1.67c-0.99,0.46-2.09,0.75-2.83,1.61c-2,1.79-3.96,3.65-5.7,5.71c-0.19,1.57-1.07,3.1-0.62,4.71c0.34,0.73-0.52,1.1-0.71,1.71c-0.27,0.63,0.47,1.33-0.13,1.87c-0.57,0.48,0.32,0.85,0.6,1.19c0.62,0.52,1.76,0.45,2.08,1.26c-0.03,0.49-0.67,0.86-0.34,1.41c0.17,0.6,0.87,0.66,1.3,0.96c0.17,0.51,0.34,1.04-0.14,1.44c-0.44,0.68-1.13,1.18-1.53,1.88c-0.22,0.93-1.33,1.03-2.08,1.34c-2.1,0.61-4.3,0.77-6.47,0.86c-0.68-0.04-1.36-0.13-2.02-0.33c-0.22,0.39-0.21,1.06,0.23,1.32c0.66,0.2-0.06,0.82-0.21,1.18c-0.45,0.41-0.4,1-0.01,1.43c0.36,0.61-0.57,0.72-0.96,0.9c-1.09,0.43-2.36,0.39-3.42-0.1c-0.57-0.08-1.14-0.46-1.72-0.34c-0.52,0.43-0.07,1.13,0.24,1.55c0.21,0.52-0.53,1.13,0.03,1.53c0.41,0.37,0.96,0.6,1.5,0.48c0.5-0.27-0.5-0.74,0.6-0.71c0.69-0.35,0.66,0.39,0.77,0.87c0.29,0.56-0.41,0.69-0.82,0.72c-0.35-0.42-0.65-0.66-1.28-0.47c-0.35,0-1.59,0.3-0.8,0.55c0.38,0.05,1.23,0.16,1.32,0.34c-0.69,0.4-1.58,0.44-2.05,1.15c-0.35,0.54,0.46,1.38-0.25,1.8c-0.47,0.32-0.8,0.84-0.12,1.15c-1.08,0.27-2.32,0.05-3.25,0.82c-0.57,0.43-1.15,1.03-1.31,1.74c-0.04,1.13,1.11,1.77,1.98,2.23c0.57,0.33,1.35,0.16,1.86,0.49c0.18,0.43-0.05,0.99-0.23,1.41c-0.48,0.81-1.53,0.93-2.27,1.43c-0.71,0.34-1.49,0.82-1.76,1.59c-0.11,0.47,0.21,0.99-0.22,1.39c-0.57,0.6-1.49,0.67-2.23,0.96c-0.72,0.33-0.88,1.3-0.82,2.01c0.16,1.07,1.04,1.78,1.64,2.62C248.58,316.62,248.47,316.53,248.45,316.58L248.45,316.58z M247.9,318.39c0.34,0.54,1.14-0.12,1.46,0.51c0.68,0.81,1.63,1.34,2.45,1.98c0.64,0.23,1.21,0.72,1.92,0.66c0.57,0.23,1.22,0.14,1.82,0.15c0.03,0.68-0.87,0.43-1.31,0.54c-0.78-0.01-1.56,0.49-2.31,0.06c-1.2-0.38-2.5-0.3-3.74-0.26c-0.72,0.24-0.24-0.8-0.36-1.21C247.86,320.01,247.88,319.2,247.9,318.39L247.9,318.39z"/><path id="MA" d="M395.7,122.19c0.09,0.59,0.7,0.6,1.01,1c0.32,1.03,0.01,2.12,0.18,3.16c0.22,0.58,0.64,1.12,1.21,1.41c0.05,0.37-0.06,1.28-0.54,1.24c-1.08-0.02-2.17,0.03-3.25-0.01c-0.16,0.56-0.66,0.83-1.22,0.79c-0.49-0.01-1.21,0.09-0.98,0.76c0.39,0.51,0.29,1.03-0.4,1.15c-0.66,0.34-1.35,0.58-2.06,0.77c-0.61,1.14-1.98,1.48-3.18,1.44c0.02,0.65-0.43,0.88-1.02,0.72c-0.56-0.12-1.07-0.02-1.52,0.34c-0.84,0.46-1.56,1.12-2.46,1.46c-0.08,0.79-0.07,1.59-0.11,2.39c-3.32,0.03-6.64-0.04-9.96,0.04c0.3-0.87,1.3-0.79,2.04-1c1.64-0.36,2.82-1.62,4.15-2.55c0.69-0.8,1.84-1.6,1.59-2.8c-0.54-0.72-0.74-1.77-0.09-2.49c0.42-0.59,1.15-1.18,0.92-1.99c0.07-0.64,0.8-0.91,1.17-1.39c1.27-1.23,3.43-1.02,4.48-2.54c0.81-1.01,1.19-2.26,1.73-3.42c0.45-0.27,1.03-0.44,1.28,0.17c0.37,0.66,1.12,0.88,1.78,1.11c1.16-0.02,2.46,0.26,3.43-0.53c0.23,0.53,0.71,0.75,1.27,0.73C395.34,122.2,395.52,122.18,395.7,122.19L395.7,122.19z"/><path id="DZ" d="M381.4,139.7c-0.05-1.09,0-2.18,0.08-3.26c1.17-0.45,2.09-1.42,3.25-1.85c0.52,0.01,1.05,0.13,1.57,0.01c-0.03-0.71,0.45-0.8,1.05-0.73c0.93-0.13,1.86-0.55,2.31-1.41c0.93-0.25,1.88-0.6,2.67-1.11c0.17-0.41-0.57-1.04-0.08-1.43c0.64-0.28,1.69,0.09,1.97-0.77c0.3-0.38,1.01-0.03,1.47-0.15c0.71-0.02,1.43,0,2.14,0c0.08-0.47,0.67-1.19-0.03-1.43c-0.6-0.46-1.1-1.21-0.96-2.01c-0.03-0.83,0.18-1.77-0.25-2.5c-0.3-0.13-1.15-0.7-0.71-0.87c0.69-0.03,1.47-0.26,1.74-0.96c0.46-0.47,1.18-0.38,1.73-0.72c0.41-0.25,0.93,0.52,1.31-0.05c0.75-1.04,2.08-1.48,3.32-1.5c0.95-0.1,1.99,0.11,2.83-0.45c0.6,0.37,1.26,0.13,1.81-0.2c0.68-0.13,1.42-0.09,2.1-0.01c0.88,0.33,1.85,0.41,2.74,0.07c0.57,0.08,0.85-0.75,1.3-0.62c0.53,0.25,1.19,0.82,1.7,0.22c0.38-0.43,1.19-0.23,1.41,0.27c0.54,0.27,1.17-0.1,1.75-0.1c0.41,0.23-0.7,0.61-0.64,1.05c-0.15,1.2,0.09,2.43-0.01,3.63c-0.23,0.78-1.18,1.07-1.6,1.71c-0.22,0.72,0.32,1.41,0.54,2.08c0.87,0,1.03,0.96,1.44,1.53c0.36,0.35,0.98,0.46,1.18,1.01c0.41,1.27,0.79,2.56,1.28,3.8c-0.64,0.32-0.33,0.88-0.02,1.32c0.69,0.95,0.7,2.18,0.56,3.3c0.24,0.64-0.14,1.26-0.2,1.86c0.24,0.61,0.68,1.38,0.2,1.96c-0.26,0.32-1.16,0.48-0.89,0.97c0.55,0.79,1.31,1.47,1.41,2.48c0.31,0.35,0.53,1.29,1.14,0.9c0.65-0.16,1.31,0.28,1.94,0.43c0.5,0.49,0.67,1.24,1.14,1.74c-1.6,0.91-3.25,1.75-4.84,2.68c-1.91,1.09-3.85,2.18-5.61,3.5c-1.14,0.9-2.21,1.95-3.38,2.8c-1.86,0.38-3.72,0.73-5.58,1.08c-0.36-0.62,0.28-1.33-0.19-1.9c-0.39-0.64-1.37-0.05-1.79-0.7c-0.33-0.79-0.8,0.24-1.22-0.21c-0.45-0.45-0.95-0.87-1.41-1.28c0.17-0.55-0.23-0.91-0.74-1.11c-4.08-2.33-7.83-5.16-11.77-7.69c-2.37-1.51-4.77-2.97-7.24-4.31C382.71,140.41,382.04,140.06,381.4,139.7z"/><path id="TN" d="M426.07,126.43c-0.09,0.54-0.08,1.1-0.06,1.63c-0.21,0.45-0.87,0.52-1.26,0.82c-0.59,0.39-1.2,0.83-1.69,1.32c-0.27,0.55,0.41,1.11,0.06,1.67c-0.2,0.54-0.85,0.72-1.27,1.08c-0.51-1.26-0.86-2.58-1.31-3.85c-0.19-0.55-0.84-0.6-1.16-0.98c-0.4-0.57-0.57-1.52-1.43-1.52c-0.24-0.7-0.8-1.42-0.52-2.17c0.51-0.55,1.34-0.87,1.58-1.62c0.11-1.23-0.17-2.49,0.02-3.71c0.18-0.42,0.68-0.74,0.91-1.05c0.71-0.25,1.27-0.97,2.1-0.82c0.51,0.01,1.13,0.2,1.19,0.79c0.1,0.68,0.82,0.42,1.15,0.08c0.41-0.5,1.04-0.37,0.58,0.28c-0.23,0.57-1.14,0.77-1.02,1.51c0.16,0.48,0.57,0.89,1.06,1.03c0.21,0.49,0.46,1.02-0.05,1.42c-0.32,0.6-1.06,0.74-1.47,1.28c-0.39,0.3-0.88,0.75-0.35,1.17c0.41,0.37,0.89,0.95,1.48,0.86c0.61-0.57,0.7,0.37,1.04,0.6C425.79,126.32,425.93,126.38,426.07,126.43L426.07,126.43z"/><path id="EG" d="M476.46,130.74c0.55,1.34,1.1,2.68,1.75,3.98c-0.75,0.69-0.9,1.79-1.15,2.74c-0.06,0.46-0.29,1.27-0.86,0.81c-0.59-0.78-1.63-1.24-1.79-2.3c-0.13-0.55-0.8-0.73-0.89-1.33c-0.12-0.47-0.4-1.23-0.9-0.64c-0.47,0.51,0.13,1.05,0.28,1.58c0.3,1.07,1.28,1.76,1.86,2.65c0.3,0.99,0.95,1.82,1.21,2.82c0.83,1,1.25,2.27,1.96,3.36c0.46,0.91,1,1.79,1.88,2.35c0.29,0.39-0.85,0.47-0.3,1.13c0.09,0.73,0.48,1.4,1.15,1.74c0.51,0.19,0.8,0.6,1.17,0.99c0.43,0.35,0.76,1-0.09,0.76c-8.3-0.01-16.59,0.01-24.89-0.02c-0.69,0.23-0.99,0.02-0.82-0.71c0.01-3.89-0.06-7.79,0-11.68c-0.02-1.24,0.07-2.48-0.02-3.71c-0.29-0.7-0.71-1.49-0.47-2.25c0.23-0.45,0.69-0.89,0.37-1.42c-0.24-0.51-0.27-1.13,0.37-1.34c0.2-0.33,0.89,0.15,1.34-0.11c1.39-0.2,2.74,0.38,4.12,0.52c0.61-0.11,0.72,0.69,1.3,0.53c0.72-0.03,1.36,0.25,2.01,0.49c0.82,0.3,1.26-0.67,1.99-0.82c0.71-0.31,1.5-0.41,2.23-0.68c0.59-0.03,1.21,0.02,1.8,0.14c0.12,0.51,0.71,1,1.22,0.7c0.45,0,1,0.55,1.4,0.06c0.38-0.35,0.89,0.23,1.4,0.16C475.59,131.26,476.06,131,476.46,130.74L476.46,130.74z"/><path id="SD" d="M453.05,178.59c0-0.05,0-0.1,0-0.16c-0.26-1.03-1.19-1.73-1.77-2.58c0.39-0.62-0.07-1.3-0.59-1.66c-0.44-0.68-0.26-1.58-0.65-2.27c-0.47,0.08-1.37,0.11-0.91-0.59c0.17-0.54,1.11-0.92,0.62-1.55c-0.52-0.57,0.31-0.78,0.64-1.09c0.18-0.44-0.23-1.07,0.24-1.47c0.54-0.51,0.57-1.31,0.92-1.88c0.65-0.23,1.41-0.1,2.11-0.14c0.36-0.22,0.06-1,0.14-1.44c-0.03-1.47-0.01-2.94-0.08-4.41c0.07-1.22,0.03-2.45,0.14-3.67c0.69,0.02,1.39,0.02,2.08,0.03c0.2-0.69,0.01-1.48,0.07-2.21c-0.01-0.68-0.01-1.36,0.01-2.04c1.94-0.2,3.89-0.01,5.83-0.09c6.83,0.03,13.66,0,20.5,0.02c0.46,0.8,0.86,1.65,0.81,2.59c0.12,1.39,0.14,2.82,0.57,4.14c0.59,0.54,1.39,0.83,1.96,1.41c0.72,0.15,0.83,0.53,0.23,0.95c-0.2,0.74-0.96,0.94-1.61,1.1c-0.3,0.37-0.47,0.96-1.09,0.83c-0.62-0.14-0.55,0.7-0.64,1.11c-0.15,1.11-0.79,2.08-1.01,3.15c0.1,1.17,0.12,2.4-0.34,3.52c-0.19,0.49-0.25,1.02-0.37,1.53c-0.7,0.17-1.45,0.42-1.73,1.16c-0.74,0.9-0.73,2.09-0.9,3.18c-0.31,0.53-1.1-0.18-1.34,0.41c-0.13,0.84-0.28,1.69-0.38,2.54l-0.07-0.01c-0.04,0-0.17,0-0.39,0c-0.17,0,0.42-1.45,0.15-1.45c-0.32,0-0.71-0.99-1.11-1.09c-0.18-0.05-0.51,0.02-0.52-0.17c-0.05-0.63-0.08-1.2-0.22-1.7c-0.06-0.23,0.39-1.3,0.31-1.5c-0.29-0.03-0.87-0.08-1.32-0.07c-0.07,0,0.02,0.25-0.06,0.61c-0.3,0.08-0.82-0.09-1.24,0.03c-0.32,0.09,0.55,0.21,0.56,0.59c0.02,0.39,0.02,0.16,0,0.87c-0.01,0.36,0.45,0.33,0.23,0.52c-0.18,0.16-0.71,0.46-1.15,0.97c-0.1,0.11-0.09,0.31-0.18,0.43c-0.57,0.73-1.18,1.42-1.37,1.43c-0.51,0.04-0.76,0.1-0.99-0.02c-0.38-0.2-0.53-0.33-0.83-0.6c-0.35-0.32-0.78-0.58-1.13-0.56c-0.31,0.02-0.53,0.27-0.87,0.47c-0.01,0.15-0.01,0.35-0.11,0.68c-0.36,0.08-0.9-0.08-1.21,0.22l-0.01-0.04c-0.19,0.35-0.42,0.52-0.47,0.66c-0.86,0.04-0.9,0.05-1.62,0c-0.17,0.07-0.18-0.27-0.34-0.53h0.01c-0.67,0.04-1.33-0.05-1.91-0.02c-0.28,0.01-0.47,0.27-0.73,0.29c-0.27,0.01-0.72-0.01-0.82-0.22c-0.08-0.17-0.83-1.37-1.08-1.79c-0.74-0.08-1.34,0.25-1.78,0.25c-0.22,0-0.15,0.39-0.25,0.66c-0.09,0.26-0.38,0.41-0.54,0.44v0.01c-0.33-0.06-1.06,0.18-1.56,0.26c-0.52,0.09-0.81,0.02-0.81,0L453.05,178.59z"/><path id="SS" d="M476.11,191.14c-0.43,0.42-1.07,1.09-1.71,0.77c-0.72-0.46-1.58,0.1-2.31,0.27c-0.95,0.23-1.87-0.47-2.8-0.08c-0.54,0.49-0.83-0.36-1.22-0.63c-0.55-0.52-1.06-1.13-1.72-1.5c-0.45,0.06-0.61,1.15-1.05,0.66c-0.32-0.48-0.91-0.64-1.31-0.16c-0.35,0.51-0.99,0.31-1.33-0.11c-0.48-0.49-0.86-1.06-1.4-1.5c-0.4-0.42,0.18-1.11-0.38-1.46c-0.44-0.65-1.48-0.26-1.8-1.05c-0.21-0.47-0.03-1.18-0.64-1.44c-0.63-0.46-1.53-0.74-1.82-1.51c0.4-0.56-0.27-0.96-0.77-1.04c-0.7-0.2-1.49-0.55-1.73-1.3c-0.4-0.38-1.15,0.19-1.44-0.32c-0.15-0.75,0.33-1.44,0.37-2.15h0.05c0,0.01,0.29,0.08,0.81,0c0.5-0.08,1.23-0.32,1.56-0.26v-0.01c0.15-0.03,0.44-0.18,0.54-0.44c0.1-0.27,0.03-0.66,0.25-0.66c0.44,0,1.04-0.33,1.78-0.25c0.25,0.42,1,1.62,1.08,1.79c0.1,0.21,0.55,0.23,0.82,0.22c0.26-0.01,0.45-0.27,0.73-0.29c0.58-0.03,1.24,0.06,1.91,0.02h-0.01c0.16,0.26,0.16,0.6,0.34,0.53c0.72,0.05,0.76,0.04,1.62,0c0.04-0.14,0.27-0.31,0.47-0.66l0.01,0.04c0.31-0.3,0.84-0.14,1.21-0.22c0.1-0.33,0.09-0.53,0.11-0.68c0.33-0.19,0.56-0.45,0.87-0.47c0.34-0.02,0.78,0.24,1.13,0.56c0.3,0.28,0.45,0.4,0.83,0.6c0.23,0.12,0.48,0.06,0.99,0.02c0.19-0.02,0.8-0.7,1.37-1.43c0.09-0.12,0.09-0.32,0.18-0.43c0.43-0.52,0.96-0.82,1.15-0.97c0.22-0.19-0.24-0.16-0.23-0.52c0.02-0.7,0.02-0.48,0-0.87c-0.02-0.37-0.88-0.5-0.56-0.59c0.42-0.11,0.94,0.05,1.24-0.03c0.08-0.36-0.01-0.61,0.06-0.61c0.46,0,1.03,0.05,1.32,0.07c0.08,0.2-0.37,1.28-0.31,1.5c0.14,0.5,0.18,1.07,0.22,1.7c0.01,0.19,0.34,0.12,0.52,0.17c0.4,0.11,0.79,1.09,1.11,1.09c0.27,0-0.32,1.45-0.15,1.45c0.21,0,0.35,0,0.39,0l0.07,0.01c-0.04,0.32-0.07,0.63-0.09,0.95l0,0c-0.03,0.49-0.02,1.16-0.36,1.51c-0.53,0.47-1.24-0.06-1.86,0.1c-0.02,0.44-0.47,1.13-0.06,1.43c0.64,0.17,1.45,0.11,1.81,0.78c0.65,0.83,1.6,1.42,1.96,2.45c0.45,0.81,0.72,1.98,1.81,2.11c0.5,0.27,0.42,0.99,0.42,1.48c-0.24,0.25-1,0.09-1.44,0.25c-0.55,0.1-1.19-0.08-1.69,0.04C476.71,190.42,476.4,190.78,476.11,191.14L476.11,191.14z"/><path id="ML" d="M389.77,144.54c4.03,2.49,7.8,5.41,11.9,7.79c0.49,0.36,1.16,0.53,1.51,1.04c-0.35,0.6,0.41,0.79,0.7,1.16c0.39,0.27,0.8,1.11,1.31,0.57c0.43-0.26,0.69,0.7,1.23,0.62c0.58-0.09,1.32,0.13,1.31,0.83c0.06,0.41-0.37,1.32,0.19,1.38c0.67-0.13,1.33-0.25,2-0.38c0.07,2.02,0.27,4.08-0.16,6.07c-0.27,0.92-0.68,1.96-1.63,2.36c-1.51,0.08-3.06,0.02-4.55,0.28c-0.51,0.43-1.12,0.85-1.82,0.65c-0.82-0.11-1.66-0.24-2.45-0.42c-0.85,0.25-1.54,0.89-2.38,1.19c-0.61,0.08-0.37,1.15-0.95,1.03c-0.43-0.25-1.03-0.62-1.38-0.04c-0.69,0.54-0.99,1.38-1.44,2.09c-0.52,0.28-0.94-0.23-1.29-0.54c-0.86,0.14-0.82,1.18-1.07,1.83c-0.11,0.63-0.35,1.3-1.04,1.48c-0.47,0.17-1.13,0.22-0.88,0.9c0.01,0.89-0.2,1.89-0.67,2.63c-0.36,0.15-0.88,0.82-1.21,0.41c-0.24-0.35-0.06-1.27-0.74-0.94c-0.57,0.28-0.82,0.92-1.36,1.22c-0.37-0.35-1-1.06-1.5-0.57c-0.42,0.8-0.66-0.08-0.96-0.49c-0.1-0.86-0.29-1.78-1.02-2.34c-0.36-0.5-0.48-1.13-0.62-1.69c-0.37-0.59-1.04,0.02-1.37,0.36c-0.37,0.53-0.99,0.31-1.47,0.07c-0.55-0.26-0.78,0.74-1.22,0.56c-0.6-0.23-1.02-0.8-1.55-1.11c0.13-0.51,0.06-1.12-0.07-1.61c-0.31-0.48-1.03-0.55-1.13-1.19c-0.13-0.72-0.48-1.45-0.37-2.18c0.39-0.34,1.02-0.59,0.85-1.22c0.01-0.55,0.52-1.21,1.1-0.84c0.34,0.44,0.57,1.13,1.24,1.08c0.09-0.53,0.04-0.98,0.73-0.64c0.78,0.22,1.6,0.23,2.33-0.16c2.51-0.13,5.05-0.04,7.57-0.07c0.61,0.06,1.16,0.07,1.11-0.69c0.19-0.55,0.32-1.09-0.26-1.44c-0.48-0.42-0.26-1.16-0.43-1.73c-0.42-4.91-1.1-9.8-1.62-14.7c-0.09-0.79-0.2-1.58-0.23-2.38C387.26,144.67,388.56,144.83,389.77,144.54L389.77,144.54z"/><path id="LY" d="M456.03,151.46c-0.07,1.38,0.06,2.79-0.03,4.16c-0.4,0.22-1.06,0.01-1.56,0.07c-0.78-0.27-0.57,0.54-0.64,1.05c-0.37-0.02-0.98-0.45-1.44-0.63c-4.12-2.07-8.26-4.1-12.42-6.09c-1.29-0.63-2.58-1.26-3.87-1.89c-1.02,0.19-1.91,0.83-2.87,1.22c-0.48,0.07-0.99,0.83-1.39,0.36c-0.63-0.51-1.27-1.03-2.1-1.18c-0.87-0.28-1.79-0.45-2.66-0.68c-0.39-0.55-0.57-1.31-1.12-1.7c-0.71-0.18-1.48-0.71-2.19-0.28c-0.63-0.43-0.9-1.22-1.05-1.94c-0.42-0.57-0.85-1.13-1.27-1.7c0.23-0.6,1.3-0.61,1.19-1.4c0.15-0.69-0.7-1.29-0.27-1.96c0.31-0.67-0.06-1.38,0.14-2.08c0.04-0.92-0.15-1.85-0.69-2.61c-0.39-0.43-0.43-0.99,0.15-1.26c0.55-0.39,1.38-0.74,1.29-1.54c-0.14-0.49-0.47-1.17,0.16-1.46c0.78-0.67,1.64-1.22,2.57-1.66c0.17-0.52-0.05-1.09,0.1-1.63c0.14-0.39,0.94,0.32,1.33,0.36c0.79,0.35,1.65,0.47,2.5,0.24c0.74,0.04,1.52,0.11,2.23,0.3c0.49,0.53,1.23,0.64,1.9,0.69c0.7,0.3,0.5,1.25,1.05,1.71c0.48,0.61,1.2,0.89,1.96,0.92c1.56,0.05,3.11,0.5,4.37,1.42c0.66,0.39,1.42,1.01,2.2,0.54c0.71-0.38,1.62-0.89,1.69-1.77c-0.48-0.78-0.58-1.96,0.29-2.5c0.9-0.74,2.07-1.05,3.17-1.38c1.02,0.01,2.14,0.08,2.96,0.74c-0.13,0.64,0.45,0.86,0.98,0.82c0.72,0,1.29,0.53,2.02,0.42c0.5,0.05,1.43-0.16,1.39,0.61c0.73,0.46-0.45,0.65-0.38,1.16c0.11,0.58,0.54,1.19,0.05,1.7c-0.62,0.73-0.15,1.71,0.16,2.47c0.26,0.92,0.03,1.92,0.1,2.87c-0.03,3.45-0.04,6.9-0.01,10.35C456.01,149.36,456.04,150.42,456.03,151.46L456.03,151.46z"/><path id="EH" d="M362.76,152.72c0-0.94,0.58-1.7,1.22-2.32c0.68-0.88,0.98-2,1.5-2.99c0.41-1.03,1.77-1.34,2.17-2.38c-0.01-1.15,0.4-2.34,1.2-3.17c0.69-0.51,1.69-0.76,1.94-1.7c0.26-0.41,0.34-1.17,0.8-1.31c3.26-0.08,6.52-0.01,9.78-0.04c0.03,1.15,0.04,2.31-0.05,3.45c-0.16,0.48-0.98,0.09-1.42,0.21c-1.88,0.03-3.77-0.09-5.65,0.04c-0.31,0.29-0.11,1.04-0.19,1.5c-0.04,1.3-0.09,2.59-0.14,3.88c-0.81,0.5-2.02,0.58-2.5,1.54c-0.05,1.12,0.21,2.23,0.2,3.35C368.68,152.81,365.72,152.77,362.76,152.72L362.76,152.72z"/><path id="MR" d="M374.13,167.17c-1.14-0.7-2.36-1.47-2.82-2.8c-0.24-0.74-1.17-0.4-1.67-0.83c-0.53-0.42-1.1-0.9-1.83-0.82c-1.07,0.09-2.19,0.15-3.22,0.36c-0.64,0.75-0.44-0.2-0.18-0.63c0.7-1.45,0.94-3.26,0.15-4.72c-0.53-0.45-0.58-0.77-0.16-1.29c0.15-0.79,0.26-1.81-0.51-2.34c-0.31-0.64-0.93-0.49-1.15-0.2c-0.01-0.39-0.22-1.33,0.39-1.17c2.84,0.03,5.68,0.08,8.51,0.07c0.04-1.14-0.33-2.3-0.16-3.42c0.5-0.9,1.67-0.97,2.45-1.47c0.09-1.79,0.09-3.58,0.22-5.37c1.81-0.16,3.63-0.02,5.44-0.06c0.56,0,1.12,0,1.68,0.02c0.21-0.91,0.06-1.87,0.13-2.8c2.86,1.49,5.65,3.1,8.36,4.84c-1.22,0.28-2.51,0.12-3.75,0.22c0.39,4.31,0.98,8.61,1.44,12.91c0.26,1.87,0.33,3.77,0.6,5.64c0.31,0.41,0.96,0.72,0.6,1.31c-0.18,0.48-0.04,1.34-0.79,1.09c-2.65,0.03-5.32-0.05-7.96,0.07c-0.71,0.37-1.5,0.42-2.26,0.19c-0.6-0.25-0.87-0.13-0.8,0.51c-0.38,0.31-0.88-0.29-1.06-0.66c-0.22-0.69-1.22-0.43-1.24,0.24C374.37,166.48,374.65,166.93,374.13,167.17L374.13,167.17z"/><path id="BF" d="M400.72,175.5c-0.56-0.23-1.07-0.08-1.56,0.23c-0.94,0.21-1.95-0.01-2.91,0.05c-0.64,0.09-1.37-0.14-1.95,0.19c-0.27,0.67,0.1,1.4,0.11,2.1c0.27,0.77-0.34,0.84-0.78,0.32c-0.88-0.34-1.85-0.05-2.64,0.38c-0.76,0.17-1.52-0.56-1.67-1.27c-0.18-0.47-1.22-0.03-1.01-0.55c0.42-0.91,0.67-1.94,0.53-2.94c0.22-0.46,0.94-0.3,1.32-0.67c0.66-0.52,0.58-1.49,0.9-2.22c0.03-0.4,0.52-1.12,0.93-0.77c0.32,0.33,0.91,0.77,1.27,0.28c0.42-0.85,0.91-1.78,1.76-2.26c0.42-0.14,0.9,0.58,1.25,0.3c0.13-0.53,0.43-0.98,0.99-1.13c0.75-0.27,1.35-0.9,2.14-1.05c0.57,0.22,1.19,0.23,1.78,0.36c-0.27,0.6-0.18,1.24,0.18,1.79c0.27,0.83,1.42,0.99,1.6,1.83c-0.56,0.43-0.14,0.87,0.34,1.14c0.41,0.44,0.99,0.54,1.56,0.47c0.55-0.03,0.66,0.77,0.92,1.15c0.13,0.53-0.21,1.16-0.66,1.47c-0.52,0.3-1.23-0.25-1.71,0.26c-0.37,0.27-0.55,1-1.05,0.89C401.83,175.66,401.27,175.59,400.72,175.5L400.72,175.5z"/><path id="NE" d="M405.73,173.04c-0.31-0.43-0.42-1.18-1.1-0.99c-0.78,0.18-1.4-0.51-1.93-0.97c0.03-0.38,0.54-0.92-0.14-1.24c-0.64-0.44-1.22-0.97-1.44-1.73c-0.18-0.35-0.18-1.34,0.33-1.23c0.66,0.16,1.35,0.11,1.86-0.39c0.63-0.53,1.54-0.26,2.3-0.41c0.89-0.07,1.83,0.03,2.7-0.16c1.03-0.6,1.42-1.86,1.59-2.98c0.24-1.78,0.1-3.59,0.03-5.37c1.18-0.25,2.41-0.41,3.56-0.74c1.79-1.48,3.46-3.12,5.5-4.26c2.63-1.66,5.4-3.1,8.12-4.61c1.19,0.07,2.38,0.52,3.53,0.88c0.5,0.35,0.97,0.73,1.45,1.09c0.54-0.36,1.17-0.58,1.75-0.89c0.24,1.2,0.36,2.42,0.6,3.61c0.29,0.9,0.83,1.72,1.61,2.27c-0.82,1.37-0.87,3.04-0.91,4.59c-0.14,1.02,0.06,2.12-0.21,3.11c-1.32,1.44-2.77,2.8-3.74,4.52c-0.31,0.5-0.84,0.91-0.67,1.56c-0.02,0.41,0.46,1.26-0.31,1.06c-0.95-0.11-1.56,0.77-2.24,1.23c-0.67-0.03-1.34-0.38-2.02-0.49c-1.06-0.25-2.3-0.14-3.22,0.47c-0.5,0.46-1.12,0.73-1.81,0.62c-0.93,0-1.67-0.62-2.45-1.04c-0.89-0.23-1.64,0.77-2.52,0.56c-0.66-0.42-0.95-1.38-1.81-1.48c-1.19-0.33-2.48-0.15-3.66,0.14c-0.59,0.19-0.79,0.72-0.98,1.25c-0.16,0.66-0.77,1.1-0.77,1.81c-0.18,0.39,0.13,1.55-0.52,0.98c-0.64-0.25-1.09-0.89-1.67-1.14C406.25,172.72,405.99,172.91,405.73,173.04L405.73,173.04z"/><path id="TD" d="M431.76,171.06c-0.39-0.57-1.2-0.89-1.13-1.68c-0.12-0.62-0.27-1.35,0.26-1.81c0.83-1.26,1.66-2.53,2.76-3.57c0.43-0.52,1-0.97,1.35-1.53c0.22-2.3-0.08-4.68,0.7-6.9c0.52-0.52,0.2-0.89-0.33-1.22c-0.76-0.88-1.12-2.01-1.17-3.15c-0.12-0.71-0.24-1.43-0.36-2.15c0.75-0.29,1.42-0.81,2.23-0.92c5.33,2.62,10.7,5.14,15.99,7.83c0.58,0.28,1.16,0.56,1.74,0.85c-0.05,1.74-0.08,3.48,0.01,5.22c-0.1,1.06,0.1,2.12-0.01,3.17c-0.72,0.01-1.47-0.05-2.16,0.09c-0.47,0.42-0.34,1.25-0.83,1.7c-0.43,0.42-0.52,1.01-0.31,1.56c-0.18,0.46-1.24,0.49-0.8,1.12c0.47,0.49-0.03,1-0.41,1.36c-0.4,0.37-0.35,1.2,0.34,0.89c0.72-0.2,0.6,0.74,0.73,1.19c0.07,0.58,0.27,1.16,0.78,1.49c0.3,0.3,0.43,1.06,0.06,1.23c-0.65-0.42-1.34-0.04-1.86,0.38c-0.55,0.2-0.78,0.68-0.79,1.22c-0.84,0.91-1.88,1.64-2.79,2.49c-1,0.25-2.1-0.04-3.07,0.26c-0.35,0.37-0.12,1.02-0.52,1.41c-0.21,0.42-0.43,0.98-1.02,0.88c-1.07-0.15-2.03,0.4-2.92,0.92c-0.63,0.32-0.68-0.95-1.18-0.58c-0.6,0.23-1.15,0.75-1.81,0.7c-0.6-0.43-0.51-1.32-1-1.86c-0.5-0.96-1.55-1.46-2.23-2.27c-0.58-0.31-0.54-0.77-0.07-1.18c0.44-0.55,1.19-0.04,1.77-0.06c0.31,0.05,1.38,0.18,1.1-0.32c-0.71-0.78-0.95-1.92-0.83-2.93c0.18-1.08-0.2-2.21-0.93-3.03c-0.25-0.51-0.69-0.79-1.27-0.79L431.76,171.06L431.76,171.06L431.76,171.06z"/><path id="ER" d="M494.64,172.63c-0.49-0.23-0.59-0.94-1.21-0.96c-0.23-0.49-0.4-1.05-0.96-1.24c-0.52-0.23-0.87-0.6-1.08-1.12c-0.34-0.49-0.82-0.67-1.35-0.82c-0.4-0.46-0.96-0.36-1.4-0.51c-0.46-0.18-0.85-0.09-1.38,0.05c-0.23-0.81-0.56,0.13-1.14,0.03c-0.64,0.35-0.78-0.57-1.32-0.54c-0.51-0.71-0.64,0.34-0.91,0.72c-0.25,0.92-0.5,0.36-0.75-0.24c-0.58-0.02-0.71,0.63-1.32,0.38c-0.36-0.12-0.06-1.02-0.24-1.45c0.03-1.08,0.8-1.99,0.94-3.06c0.17-0.45,0.04-1.15,0.43-1.44c0.52,0.05,1.12-0.08,1.22-0.68c0.5-0.42,1.47-0.29,1.68-1.08c0.21-0.48,0.8-1.01,0.85-0.15c0.69,1.76,0.99,3.67,1.81,5.37c0.22,0.57,0.9,0.91,0.65,0.04c0.19-0.62,0.64,0.49,0.86,0.73c0.25,0.63,0.96,0.02,1.29,0.49c0.74,0.66,1.4,1.4,2.08,2.11c0.66-0.13,0.97,0.35,1.27,0.85c0,0.51,0.2,0.84,0.74,0.97c0.22,0.38,1.16,0.67,0.63,1.12c-0.22,0.77-0.67,0.33-1.18,0.29C494.76,172.51,494.64,172.54,494.64,172.63L494.64,172.63z"/><path id="DJ" d="M495.97,175.88c-0.62-0.37-1.3-0.17-1.94,0.02c-0.68,0.3-0.43-0.7-0.61-1.1c-0.03-0.83,0.8-1.3,1.1-2.01c0.18-0.66,0.86-0.11,1.16-0.14c0.29-0.47,0.58-1.12,1-0.37c0.31,0.27,0.82,0.99,0.14,1.15c-0.64,0.14-1.21,0.49-1.69,0.94c0.5,0.28,1.13-0.11,1.65,0.21C496.6,175.06,496.18,175.41,495.97,175.88L495.97,175.88z"/><path id="ET" d="M495.97,175.88c-0.26,0.48-0.53,1.05-0.1,1.52c0.63,1.06,1.41,2.14,2.48,2.78c1.85,0.8,3.81,1.33,5.71,2.01c0.86,0.43,1.81,0.22,2.73,0.24c0.53,0.28-0.53,0.75-0.69,1.11c-1.87,1.92-3.76,3.83-5.53,5.85c-1.4,0.1-3.02-0.41-4.2,0.6c-0.43,0.33-0.62,1.03-1.27,0.93c-0.58,0.05-1.29-0.05-1.61,0.56c-0.41,0.2-1.07,0.03-1.53-0.12c-0.43-0.25-0.86-0.7-1.35-0.28c-0.81,0.27-1.48,0.78-2,1.45c-0.44,0.24-1.04-0.02-1.52-0.13c-0.86-0.21-1.85,0.02-2.54-0.65c-1.13-0.73-2.24-1.62-3.65-1.66c-0.76,0.08-0.78-0.34-0.77-0.97c0.1-0.65-0.51-0.81-0.97-1c-0.81-0.51-0.95-1.57-1.45-2.32c-0.44-0.89-1.35-1.43-1.93-2.24c-0.41-0.61-1.35-0.25-1.8-0.72c0.13-0.41-0.03-1.28,0.51-1.3c0.59,0.01,1.27,0.35,1.74-0.17c0.17-0.64,0.23-1.29,0.23-1.94c0.18-1.01,0.26-2.04,0.46-3.04c0.36-0.45,1.14,0.24,1.34-0.41c0.16-1.07,0.17-2.22,0.89-3.1c0.28-0.74,1.03-0.98,1.73-1.15c0.14-1.14,0.7-2.17,0.76-3.32c0.63,0.16,0.84-0.24,1.37-0.38c0.4,0.08,0.51,1.38,0.8,0.37c0.29-0.3,0.39-1.49,0.87-0.96c0.54-0.02,0.68,0.86,1.26,0.65c0.55,0.25,1.02-0.81,1.22-0.18c0.38,0.3,0.95-0.27,1.37,0.07c0.4,0.23,0.99-0.04,1.37,0.45c0.47,0.29,1.06,0.25,1.37,0.79c0.34,0.41,0.47,0.97,1.05,1.14c0.55,0.22,0.86,0.67,1.05,1.22c0.46,0.19,0.79,0.62,1.15,1c0.12,0.34-0.48,0.89-0.7,1.27c-0.66,0.56-0.3,1.43-0.2,2.14c0.77-0.07,1.55-0.56,2.3-0.1L495.97,175.88 L495.97,175.88L495.97,175.88z"/><path id="SO" d="M493.04,204.26c-0.39-0.63-0.92-1.21-1.23-1.86c-0.09-2.78-0.12-5.56-0.08-8.34c0.71-0.99,1.28-2.08,2.1-2.98c0.69-0.33,1.8,0.17,2.15-0.72c0.76-0.99,2.08-1.1,3.23-0.98c0.47-0.06,1.09,0.19,1.46-0.12c2.03-2.3,4.21-4.46,6.34-6.67c-0.53-0.33-1.23-0.05-1.83-0.12c-0.94-0.09-1.82-0.56-2.73-0.81c-1.49-0.57-3.1-0.89-4.49-1.69c-0.95-0.85-1.83-1.86-2.31-3.04c-0.06-0.6,0.42-1.16,0.71-1.68c0.3-0.57,0.62-0.86,0.98-0.13c0.48,0.61,1.03,1.17,1.51,1.77c0.42,0.13,0.99-0.02,1.47,0.04c1-0.16,1.88-1.27,2.93-0.72c0.93,0.54,1.75-0.36,2.48-0.83c0.58-0.24,1.27,0.29,1.84-0.12c0.53-0.26,1.1-0.48,1.67-0.17c0.95,0.15,1.94-0.2,2.78-0.6c0.45-0.27,0.86-0.75,1.31-0.92c0.4,0.12,1.12,0.22,1.1,0.71c-0.34,0.56-0.49,1.2-0.26,1.84c0.16,0.65-0.71,1.01-0.52,1.68c0.06,0.85-0.21,1.65-0.69,2.34c-0.42,0.75-0.77,1.56-1.5,2.08c-0.45,0.36,0.03,0.94-0.46,1.33c-0.41,0.87-1.07,1.61-1.46,2.47c-0.21,1.3-1.15,2.32-1.87,3.39c-1.27,1.77-2.75,3.38-4.26,4.94c-0.86,0.73-1.66,1.54-2.72,1.96c-2.23,0.97-3.78,2.93-5.47,4.61c-0.79,0.85-1.47,1.8-2.17,2.73C493.12,203.86,493.18,204.03,493.04,204.26L493.04,204.26z"/><path id="GM" d="M364.01,169.93c0.55,0,1.11,0,1.66,0c0.1-0.6,0.71-0.4,1.12-0.46c0.48,0.09,0.61,0.42,1.14,0.4c0.11,0.67,0.76,0.12,1.16,0.09c0.69,0.24,0.15,0.64-0.31,0.65c-0.49,0.39-0.87-0.27-1.37-0.17c-0.28-0.08-0.9-0.74-1.07-0.33c-0.11,0.53-0.88,0.19-1.29,0.34c0.08,0.63-0.71,0.39-1.22,0.42c-0.71,0.34-0.71-0.76-0.08-0.71C363.9,170.19,364.03,170.07,364.01,169.93z"/><path id="SN" d="M370.15,172.04c-1.13,0.02-2.31-0.13-3.42,0.02c-0.49,0.53-1.2,0.55-1.86,0.5c-0.48-0.14-1.04,0.42-1.39-0.05c-0.3-0.46,0.03-0.97-0.17-1.47c0.14-0.36,1-0.04,1.41-0.14c0.4-0.08,0.33-0.66,1.04-0.5c0.65,0.37,0.53-0.87,1.05-0.26c0.43,0.26,0.81,0.28,1.24,0.48c0.4,0.33,0.93-0.15,1.34-0.17c0.23-0.52-0.64-0.59-0.89-0.26c-0.53,0.2-0.63-0.72-1.17-0.36c-0.18-0.56-0.8-0.34-1.15-0.3c-0.47,0.07-0.62,0.67-1.29,0.42c-0.7,0.15-0.83-0.12-1.19-0.54c-0.25-0.39-0.29-0.93-0.65-1.29c-0.3-0.42-0.68-0.79-1.19-0.92c1.16-0.66,1.92-1.91,2.22-3.18c-0.08-0.55,0.41-1.02,0.94-1.02c1.13-0.05,2.29-0.39,3.41-0.2c0.79,0.18,1.26,1.08,2.14,1.04c0.85,0.01,0.82,1.06,1.32,1.53c0.55,0.82,1.47,1.25,2.26,1.8c-0.58,0.24-0.65,0.81-0.42,1.34c0.19,0.77,0.23,1.8,1.12,2.1c0.58,0.38,0.39,1.19,0.44,1.79c-0.32,0.25-1.04,0.1-1.52,0.23c-0.9,0.2-1.67-0.43-2.51-0.58C370.87,172.05,370.51,172.04,370.15,172.04L370.15,172.04z"/><path id="GW" d="M363.76,172.73c0.93-0.43,2.11,0.19,2.89-0.62c0.5-0.26,1.17-0.05,1.73-0.11c0.59,0.01,1.18,0.02,1.77,0.03c-0.13,0.55-0.11,1.09,0,1.64c-0.31,0.88-1.43,0.23-1.95,0.84c-0.42,0.16-0.8,0.98-1.11,0.77c-0.58,0.07-1.02-0.49-0.54-0.95c0.48-0.37,0.53-0.81-0.2-0.76c-0.52,0.05-0.99,0.34-1.46-0.08C364.42,173.21,364.37,172.83,363.76,172.73L363.76,172.73z"/><path id="GN" d="M383.01,177.6c-0.4,0.35-0.91,1.06-0.35,1.47c0.37,0.18,1.11,0.55,0.63,1.02c-0.61,0.4,0.31,0.8,0.57,1.12c0.5,0.59-0.59,0.51-0.88,0.23c-0.73-0.05-0.41,0.74-0.08,1.04c0.12,0.45-0.59,0.7-0.77,1.08c-0.47-0.52-1-0.22-1.27,0.31c-0.26,0.67-0.93,0.24-1.2-0.18c-0.19-0.42,0.06-1.02-0.18-1.48c-0.03-0.59-0.43-1.06-1.05-0.84c-0.58-0.19-0.87,1.19-1.03,0.44c-0.36-0.96-0.11-2.17-0.92-2.95c-0.44-0.63-1.21-0.98-1.97-0.74c-0.53,0.21-1.29-0.22-1.6,0.41c-0.46,0.68-1.04,1.27-1.57,1.89c0.22-0.79-0.71-1.23-1.04-1.8c0.09-0.67-0.57-0.73-1.02-0.97c-0.4-0.33-1.33-0.54-1.02-1.21c0.1-0.65-1.02-0.07-1.02-0.69c-0.04-0.64,0.71-0.93,1.11-1.34c0.55-0.42,1.53,0.08,1.81-0.73c-0.11-0.55-0.13-1.09,0-1.64c0.71,0,1.42-0.04,2.05,0.34c0.97,0.58,2.09,0.02,3.11,0.2c0.48,0.45,0.98,0.91,1.6,1.16c0.36-0.35,0.77-0.93,1.31-0.54c0.48,0.29,1.04,0.17,1.35-0.31c0.36-0.3,0.98-0.79,1.3-0.17c0.06,0.84,0.47,1.63,1.08,2.19c0.52,0.69,0.25,1.66,0.83,2.31C382.85,177.35,382.93,177.47,383.01,177.6L383.01,177.6z"/><path id="SL" d="M371.32,180.42c0.64-0.68,1.22-1.43,1.81-2.15c0.46-0.21,1.05,0,1.55-0.17c1.03-0.28,1.88,0.67,2.24,1.51c0.35,0.81,0.15,1.75,0.59,2.53c-0.44,0.95-1.44,1.47-2.03,2.32c-0.35,0.66-0.69,0.16-1.1-0.16c-0.31-0.39-1.29-0.33-1.05-0.96c-0.11-0.46-0.86-0.43-1.16-0.83c-0.28-0.25-1.09-0.78-0.81-1.05c0.73-0.2,0.43-0.67-0.07-0.87C371.36,180.59,371.26,180.42,371.32,180.42L371.32,180.42z"/><path id="LR" d="M377.52,182.14c0.18-0.7,1.18-1.04,1.71-0.63c0.28,0.64,0.45,1.36,0.31,2.06c0.27,0.36,0.9,1.03,1.23,0.4c0.29-0.42,0.72-1.03,1.23-0.49c0.11,0.33,0.28,0.98,0.03,1.39c-0.25,0.34-0.69,1,0,1.12c0.56,0,1.03,0.05,1.34,0.6c0.4,0.44,1.08,0.89,0.76,1.57c-0.25,0.72-0.38,1.48-0.37,2.25c-1.33-0.56-2.69-1.13-3.87-1.95c-0.95-1.03-2-2.02-3.32-2.55c-0.53-0.29-1.04-0.62-1.48-1.04c0.69-0.8,1.47-1.55,2.2-2.31C377.37,182.43,377.44,182.27,377.52,182.14L377.52,182.14z"/><path id="CI" d="M383.77,190.42c-0.07-0.96,0.31-1.85,0.45-2.79c-0.31-0.64-0.95-1.07-1.39-1.62c-0.42,0.04-1.11,0.12-1.21-0.43c0.37-0.55,0.74-1.18,0.44-1.85c0.09-0.52,0.93-0.71,0.84-1.24c-0.31-0.29-0.68-1.06,0.04-1.04c0.3,0.19,1.34,0.44,0.96-0.2c-0.24-0.33-1.21-0.71-0.65-1.12c0.53-0.46-0.19-0.88-0.59-1.06c-0.54-0.38-0.1-1.06,0.28-1.4c0.32-0.35,0.76-0.96,1.26-0.5c0.43,0.23,0.79,0.91,1.17,0.21c0.34-0.38,0.75-1,1.32-0.88c0.29,0.29,0.05,1.26,0.68,1.08c0.43-0.12,0.76-0.73,1.2-0.35c0.63-0.2,0.81,0.44,1.03,0.84c0.41,0.6,1.27,0.99,1.88,0.45c0.89-0.41,2.04-0.44,2.79,0.29c0.41,0.42,0.22,1.16,0.43,1.7c0.15,0.64,0.44,1.34-0.02,1.92c-0.63,0.88-0.82,1.98-1.19,2.98c0.02,1.01,0.66,1.86,0.94,2.78c0.27,1.09-0.27-0.2-0.66,0.33c-0.37,0.33-0.97-0.05-1.42-0.08c-1.06-0.11-2.16-0.06-3.22,0.06c-1.68,0.3-3.28,0.98-4.77,1.8C384.18,190.46,383.96,190.53,383.77,190.42L383.77,190.42z"/><path id="GH" d="M394.27,178.81c0.42-0.37,0.02-1.05,0.04-1.55c-0.04-0.49-0.37-1.36,0.35-1.46c1.44-0.06,2.88,0,4.33,0c0.51-0.22,1-0.62,1.57-0.34c0.36,0.23-0.44,1.06,0.16,1.43c0.3,0.49,0.88,0.98,0.54,1.59c-0.13,0.8,0.22,1.63,0.46,2.38c0.34,0.45,0.67,0.88,0.13,1.27c-0.22,0.74-0.03,1.57-0.1,2.34c-0.09,0.96,0.74,1.61,1.42,2.13c-0.28,0.46-0.64,0.94-1.25,0.77c-0.98-0.03-1.86,0.42-2.69,0.89c-1.11,0.31-2.2,0.73-3.16,1.38c-0.49-0.36-1.17-0.48-1.6-0.88c0.04-1.15-0.94-2.02-0.96-3.17c0.07-0.83,0.51-1.63,0.73-2.44c0.37-0.62,0.95-1.31,0.59-2.07c-0.23-0.7-0.21-1.51-0.45-2.18C394.34,178.96,394.31,178.78,394.27,178.81L394.27,178.81z"/><path id="TG" d="M400.72,175.5c0.65,0.07,1.27,0.26,1.91,0.37c-0.01,0.53-0.44,1.25,0.22,1.55c0.54,0.23,0.78,0.69,0.84,1.25c0.25,0.67,0.49,1.34,0.42,2.07c-0.07,1.39,0.48,2.81-0.02,4.17c-0.03,0.41,0.65,1.29,0.14,1.3c-0.51-0.12-0.98,0.64-1.33,0.17c-0.71-0.48-1.29-1.27-1.14-2.17c0.09-0.74-0.18-1.55,0.17-2.24c0.65-0.32-0.18-0.84-0.27-1.27c-0.24-0.89-0.65-1.83-0.25-2.74c-0.2-0.62-0.91-1.05-0.9-1.71C400.57,176.01,400.64,175.75,400.72,175.5L400.72,175.5z"/><path id="BJ" d="M408.6,174.04c-0.15,0.79,0.04,1.59,0.49,2.26c-0.31,0.77-0.35,1.82-1.25,2.16c-0.57,0.31,0.31,1.33-0.44,1.46c-0.57-0.02-0.76,0.55-0.67,1.04c0.06,1.08-0.23,2.16,0.06,3.22c0.14,0.6-0.1,1.2-0.06,1.81c-0.75,0.03-1.49,0.18-2.23,0.21c-0.26-0.62-0.53-1.31-0.22-1.96c0.12-1.2-0.21-2.38-0.17-3.58c0.12-0.97-0.47-1.81-0.6-2.75c-0.4-0.39-1.29-0.64-0.97-1.36c-0.02-0.6,0.32-0.92,0.65-1.34c0.34-0.61,1.11-0.52,1.69-0.4c0.61-0.2,0.95-0.88,0.96-1.47c-0.31-0.43,0.75-0.83,1-0.49C407.38,173.32,407.96,173.72,408.6,174.04L408.6,174.04z"/><path id="NG" d="M431.76,171.06c-0.11,0.53-0.01,1.16,0.2,1.64c0.39,0.22,1.05,0.19,0.93,0.85c-0.06,0.54,0.07,1.38-0.67,1.47c-0.57,0.05-1.09,0.32-1.25,0.9c-0.51,0.95-0.97,1.94-1.16,3.01c-0.52,0.1-0.97,0.21-0.89,0.87c-0.08,0.46,0.02,1.33-0.68,1.23c-0.83,1.04-1.13,2.41-1.73,3.58c-0.27,0.51-0.63,1.24-1.23,1.32c-0.48-0.34-0.63-1.3-1.37-1.15c-0.53-0.07-1.07-0.08-1.38,0.43c-0.73,0.77-1.59,1.41-2.3,2.2c0.12,0.79-0.09,1.56-0.54,2.21c-0.63-0.46-0.67-0.09-0.73,0.39c-0.54,0.31-1.22,0.15-1.81,0.29c-0.45-0.32-0.98-0.35-1.24,0.19c-0.49,0.08-1.07-0.06-1.6-0.01c-1.03-0.1-1.75-1.17-1.84-2.13c0.57-0.67-0.24-0.65-0.54-1.02c-0.51-0.79-1.34-1.24-2.22-1.51c-0.34-0.59-0.89-0.2-1.26,0.07c-0.56,0.09-1.14,0.07-1.7,0.11c0.04-0.83,0.19-1.66-0.04-2.48c-0.1-0.93,0.12-1.88,0.04-2.82c-0.11-0.6,0.45-0.78,0.93-0.85c0.23-0.5-0.35-1.24,0.36-1.49c0.79-0.36,0.77-1.35,1.08-2.05c-0.58-0.79-0.6-1.77-0.45-2.7c0.06-0.69,0.11-1.4,0.6-1.93c0.36-0.61,0.37-1.52,1.11-1.8c0.81-0.34,1.76-0.38,2.63-0.41c0.81,0.07,1.76,0.14,2.23,0.91c0.35,0.39,0.75,1.05,1.36,0.72c0.75-0.24,1.65-0.95,2.37-0.27c0.85,0.65,2.01,1,3.04,0.67c0.7-0.47,1.38-1.01,2.26-1.05c1.25-0.25,2.47,0.32,3.65,0.58c0.73-0.35,1.25-1.3,2.18-1.25c0.7-0.26,0.73,0.5,1.23,0.79C431.47,170.7,431.61,170.89,431.76,171.06L431.76,171.06z"/><path id="CM" d="M425.51,195.52c-0.99-0.01-1.98-0.02-2.97-0.01c-0.07-0.5-0.26-0.97,0.03-1.48c0.11-0.74-0.28-1.5-0.69-2.11c0.7-0.25,0.24-0.99-0.36-0.79c-0.59,0.13-1.18-0.39-1.1-1c0.02-0.56-1.17-0.26-0.54-0.9c0.38-0.54,0.38-1.19,0.33-1.82c0.87-0.93,1.86-1.72,2.75-2.63c0.49,0,1.1-0.12,1.5,0.14c0.36,0.27,0.53,1.15,1.04,0.97c1.13-0.88,1.38-2.41,2.01-3.64c0.29-0.47,0.4-1.32,1.1-1.26c0.42-0.54,0.15-1.3,0.47-1.89c0.64,0.1,0.88-0.38,0.91-0.94c0.34-0.98,0.75-1.99,1.36-2.82c0.42-0.39,1.44-0.15,1.48-0.93c0.01-0.52,0.32-1.53-0.49-1.54c-0.7-0.06-0.5-0.95-0.64-1.44c-0.08-0.62,0.89-0.28,1.06,0.05c0.66,0.8,1.28,1.71,1.25,2.8c0.06,0.56-0.21,1.11-0.01,1.67c0.03,0.79,0.46,1.47,0.91,2.07c-0.74,0.41-1.64-0.02-2.44-0.08c-0.47-0.05-0.92,0.65-0.92,0.99c0.76,0.84,1.7,1.51,2.46,2.34c0.42,0.61,0.71,1.27,0.93,1.97c0.47,0.31-0.65,0.58-0.59,1.1c-0.4,0.8-0.73,1.71-1.56,2.18c-0.46,0.73,0.04,1.65,0.14,2.44c0.13,0.8,0.73,1.41,1.08,2.09c-0.03,0.61,0.15,1.18,0.67,1.53c0.69,0.62,1.3,1.39,1.41,2.34c0.33,0.48-0.07,0.93,0.15,1.5c-0.58,0.18-1.15-0.29-1.71-0.43c-1.04-0.47-2.19-0.57-3.31-0.45c-1.16-0.05-2.29-0.37-3.45-0.33c-0.74-0.03-1.48-0.06-2.21-0.16C425.54,195.19,425.52,195.36,425.51,195.52L425.51,195.52z"/><path id="GQ" d="M422.54,195.51c0.99-0.01,1.98,0,2.97,0.01c0.01,0.85,0.02,1.7,0.05,2.54c-1.19,0.08-2.39-0.06-3.58,0.05c0.29-0.71-1.03-0.44-0.3-1.08C422.05,196.59,422.5,196.12,422.54,195.51L422.54,195.51z M419.64,193.27c-0.81,0.12-0.45-0.6-0.22-0.89c-0.12-0.51,0.99-0.52,0.81-0.07C419.93,192.55,419.84,192.96,419.64,193.27 L419.64,193.27z"/><path id="CF" d="M436.3,195.36c-0.34-0.63-0.32-1.38-0.82-1.93c-0.46-0.72-1.53-1.14-1.44-2.13c-0.05-0.74-0.83-1.21-0.98-1.95c-0.22-0.86-0.55-1.75-0.41-2.64c0.47-0.49,1.09-0.89,1.31-1.59c0.35-0.6,0.5-1.4,1.19-1.71c0.55,0.3,1.14-0.31,1.66-0.49c0.58-0.61,0.69,0.3,1.15,0.47c0.68-0.06,1.22-0.68,1.92-0.81c0.64-0.38,1.74,0.27,2.07-0.61c0.33-0.51,0.59-1.05,0.59-1.67c0.48-0.47,1.27-0.18,1.89-0.29c0.64-0.01,1.37,0.07,1.8-0.52c0.77-0.73,1.71-1.32,2.37-2.15c-0.13-0.61,0.36-0.97,0.84-1.21c0.5-0.43,1.18-0.69,1.78-0.31c0.62,0.72,1.33,1.47,1.77,2.33c0.31,0.89-0.6,1.77-0.25,2.66c0.36,0.41,1.31-0.25,1.51,0.48c0.39,0.84,1.44,0.93,2.18,1.29c0.66,0.25-0.12,1,0.51,1.32c0.56,0.55,1.4,0.77,1.87,1.38c0.26,0.46,0.02,1.17,0.61,1.46c0.45,0.3,1.1,0.14,1.43,0.64c0.41,0.26,0.37,1.1,0.09,1.28c-0.66,0.12-1.35,0.73-1.98,0.21c-0.6-0.21-1.22-0.5-1.84-0.57c-0.62-0.02-0.13,1.1-0.87,0.95c-0.7-0.07-1.42-0.4-2.1,0.01c-0.64,0.16-1.15,0.68-1.8,0.74c-0.4-0.26-1.07-0.8-1.37-0.16c-0.27,0.44-0.38,1.01-0.77,1.36c-1.3-0.14-2.53-0.7-3.85-0.75c-0.74-0.2-0.98-1.08-1.69-1.37c-0.79-0.67-1.78,0.06-2.24,0.77c-0.33,0.39-0.79,0.83-0.51,1.38c0.03,0.59-0.04,1.15-0.74,1.2c-0.9,0.31-1.84-0.42-2.75-0.08c-0.51,0.07-1.24,0.15-1.17,0.83C437.18,194.02,436.99,194.83,436.3,195.36L436.3,195.36z"/><path id="GA" d="M425.51,195.52c-0.17-0.82,0.72-0.32,1.19-0.39c1.12,0.07,2.25,0.05,3.36,0.26c-0.59,0.47-0.51,1.31-0.36,1.96c0.32,0.5,0.96-0.03,1.35-0.22c0.62-0.29,1.24,0.26,1.36,0.88c0.42,0.56-0.26,0.94-0.65,1.24c-0.83,0.37-0.64,1.75,0.25,1.89c0.5,0.01,0.95,0.42,0.7,0.94c-0.27,1.23-0.3,2.5-0.71,3.7c-0.56,0.38-0.82-0.3-0.94-0.7c-0.43-0.55-0.51,0.74-1.06,0.53c-0.69-0.17-0.8-1.13-1.41-1.32c-0.68,0.12-0.16,1.3-0.95,1.36c-0.39,0.3-1.22-0.02-1.33,0.53c-0.19,0.65,0.46,1.09,0.76,1.55c0.06,0.53-0.35,1.15-0.89,0.67c-0.57-0.34-0.78,0.88-1.19,0.11c-0.49-0.36-0.8-0.87-1.15-1.33c-0.33-0.37-1-0.73-1.13-1.12c0.61-0.58-0.69-0.41-0.81-0.81c-0.14-0.43-0.89-0.96-0.63-1.32c0.73-0.32-0.12-0.76-0.47-0.9c-0.01-0.44-0.99-0.92-0.3-1.11c0.81-0.39,0.9-1.32,1.14-2.08c0.53,0.21,1.33,0.03,0.47-0.36c-0.37-0.27-1.1-0.62-0.27-0.74c-0.07-0.72,0.52-0.68,1.06-0.66c0.89-0.01,1.77,0.06,2.66,0C425.53,197.22,425.52,196.36,425.51,195.52L425.51,195.52z"/><path id="CG" d="M429.51,210.68c-0.39-0.39-0.9-0.73-1.33-0.19c-0.38,0.14-0.93,1.09-1.12,0.37c-0.26-0.89-1.1-1.38-1.7-2.04c0.24-0.63,0.87-0.53,1.34-0.24c0.29-0.23,0.63-0.95,0.07-1.21c-0.36-0.37-0.74-1.05-0.32-1.48c0.62-0.14,1.69-0.08,1.71-0.95c-0.09-0.65,0.69-0.91,0.91-0.24c0.28,0.4,0.72,1.13,1.27,0.82c0.25-0.54,0.78-0.83,0.88-0.05c0.04,0.6,0.99,0.49,0.89-0.13c0.38-1.18,0.35-2.43,0.67-3.62c-0.06-0.77-1.15-0.39-1.41-1.04c-0.36-0.58-0.06-1.27,0.52-1.56c0.49-0.26,0.86-0.78,0.44-1.28c-0.14-0.73-1.06-1.04-1.61-0.55c-0.37,0.34-1.19,0.4-1.1-0.29c-0.08-0.56-0.08-1.39,0.52-1.6c1.15,0.28,2.34-0.13,3.48,0.25c0.82,0.22,1.6,0.68,2.43,0.8c0.46-0.2-0.24-1.06,0.43-1.3c0.76-0.62,0.63-1.68,0.93-2.49c0.47-0.36,1.16-0.34,1.73-0.43c0.82,0.11,1.69,0.49,2.46,0.02c0.48,0.15-0.11,0.94-0.15,1.33c-0.39,0.78-1.02,1.48-1.06,2.4c-0.31,1.48-0.3,3.01-0.67,4.48c-0.2,0.69-0.15,1.6-0.9,1.95c-1.15,0.43-1.93,1.45-2.35,2.57c-0.24,0.62-0.33,1.34-0.36,2c0.12,0.56,0.2,1.29-0.39,1.61c-0.73,0.66-1.52,1.26-2.29,1.88c-0.41,0.39-1.08,0.66-0.94-0.19c0.15-0.85-0.46-0.54-0.99-0.32c-0.67,0-0.69,0.74-1.2,0.97C430.02,211.21,429.74,210.81,429.51,210.68L429.51,210.68z"/><path id="CD" d="M429.51,210.68c0.39,0.51,1.08,0.34,1.28-0.23c0.26-0.54,1.01-0.48,1.49-0.75c0.46-0.06-0.03,1.18,0.48,1.2c1-0.52,1.77-1.36,2.67-2.02c0.45-0.35,0.86-0.72,0.78-1.34c-0.24-0.78,0.04-1.58,0.18-2.36c0.41-0.98,0.94-1.95,1.9-2.49c0.54-0.25,1.19-0.56,1.22-1.25c0.41-1.59,0.61-3.22,0.77-4.86c0.12-1.02,0.47-1.99,1.12-2.8c0.07-0.5,0.54-1.04,0.33-1.51c0.25-0.28,0.25-1.02,0.12-1.49c0.21-0.65,0.77-1.14,1.23-1.63c0.53-0.46,1.3-0.44,1.81,0.06c0.66,0.33,0.89,1.29,1.74,1.27c1.23,0.06,2.37,0.61,3.59,0.72c0.56-0.45,0.49-1.44,1.21-1.7c0.52,0.12,0.99,0.81,1.53,0.32c0.89-0.46,1.9-1.05,2.92-0.61c0.58,0.24,1.02-0.19,0.95-0.78c0.56-0.34,1.22,0.17,1.8,0.3c0.48,0.17,0.96,0.56,1.46,0.21c0.47-0.12,1.05-0.59,1.31,0.02c0.73,0.53,1.08,1.56,2,1.81c0.55,0.03,0.9-0.92,1.5-0.55c0.36,0.47,0.83,0.76,1.1,0.04c0.34-0.63,0.86,0.01,1.18,0.3c0.69,0.6,1.29,1.3,1.95,1.92c0.01,0.8-0.27,1.61-0.24,2.38c0.2,0.43,1.07,0,1.12,0.67c-0.1,0.75-0.96,1.1-1.43,1.63c-0.85,0.65-1.86,1.35-1.95,2.51c-0.3,1-0.16,2.06-0.17,3.08c-0.13,0.69-0.92,0.89-1.26,1.41c-0.12,0.6-0.52,1.2-0.54,1.77c0.37,0.7,1.14,1.29,0.89,2.17c-0.08,0.66,0.39,1.22,0.26,1.89c0.04,0.73-0.17,1.46,0.17,2.15c0.37,0.68-0.04,1.42,0.2,2.13c0.47,0.94,1.57,1.43,1.9,2.47c0.22,0.57,0.44,1.15,0.66,1.72c-1.22,0.17-2.46,0.35-3.65,0.61c-0.61,0.35-0.81,1.11-1.22,1.64c-0.15,0.97,0.37,1.93,0.29,2.88c-0.18,0.77-0.63,1.53-0.58,2.32c0.51,0.65,1.05,1.42,1.83,1.73c0.57,0.25,0.81-0.72,1.29-0.56c0.22,0.72,0.08,1.56,0.14,2.33c0.2,0.77-0.55,0.51-1.03,0.5c-0.57,0.04-1.17-0.11-1.35-0.72c-0.48-0.86-1.25-1.57-2.25-1.72c-0.81-0.2-0.91-1.16-1.32-1.77c-0.33,0.45-0.66,1.36-1.35,1.04c-0.82-0.19-1.75-0.25-2.45-0.71c-0.29-0.36-0.38-1.2-0.97-0.8c-0.43,0.07-1.13,0.5-1.25-0.18c-0.44-0.65-1.34-0.42-2.01-0.59c-0.94-0.14-1.8,0.46-2.73,0.38c-0.52-0.44,0.13-1.14-0.01-1.71c-0.1-0.88-1.13-1.32-1.29-2.15c0.35-1.06,0.61-2.31-0.05-3.3c-0.06-0.41,0.52-1.09,0.01-1.28c-0.76-0.11-1.59,0.18-2.33,0.01c-0.19-0.36-0.04-1.08-0.8-0.8c-0.53,0.02-1.06,0.05-1.6,0.06c-0.16,0.54,0.02,1.11-0.28,1.62c-0.03,0.69-0.59,0.69-1.14,0.63c-0.63-0.1-1.26-0.16-1.87,0.09c-0.58,0.1-1.31,0.2-1.61-0.44c-0.75-0.91-1.26-2.04-1.52-3.19c-0.04-0.47-0.09-1.17-0.73-1.08c-1.72-0.02-3.44,0.06-5.16-0.08c-0.82-0.03-1.62,0.17-2.42,0.25c-0.37,0.15-1.11,0.59-1.35,0.16c-0.38-0.6-0.22-1,0.49-1.11c0.04-0.47-0.08-1.14,0.49-1.32C429.11,211.06,429.32,210.85,429.51,210.68L429.51,210.68z"/><path id="ZM" d="M452.2,239.34c-0.89-0.97-1.89-1.86-2.74-2.85c-0.27-1.58-0.07-3.21-0.12-4.81c0.01-0.85-0.04-1.69,0.04-2.54c1.33-0.04,2.7-0.06,4-0.1c0.04-0.57,0.55-0.89,0.73-1.4c-0.15-0.46-0.52-0.85-0.49-1.4c-0.11-0.54,0.13-1.08,0.16-1.62c0.57-0.03,1.04,0.28,1.21,0.83c0.5,0.09,1.03-0.18,1.52-0.3c0.32,0.49,0.47,1.18,1.15,1.23c0.74,0.2,1.52,0.4,2.26,0.46c0.47-0.07,0.69-0.97,0.97-1c0.4,0.66,0.58,1.65,1.49,1.75c1.12,0.2,1.79,1.19,2.3,2.12c0.6,0.4,1.39,0.22,2.07,0.31c0.05-0.94,0.07-1.93-0.07-2.84c-0.45-0.31-0.71,0.76-1.25,0.52c-0.71-0.17-1.18-0.88-1.66-1.41c-0.6-0.55,0.01-1.33,0.12-1.98c0.26-0.56,0.29-1.13,0.11-1.71c-0.11-0.78-0.48-1.7,0.14-2.36c0.33-0.58,0.71-1.29,1.49-1.25c1.02-0.16,2.03-0.36,3.05-0.48c0.51,0.51,1.05,0.98,1.78,1.15c1.13,0.65,2.45,0.89,3.56,1.55c0.58,0.64,1.09,1.44,1.32,2.27c0.08,0.67-1.14,0.46-0.88,1.15c0.09,0.79-0.18,1.59,0.01,2.36c0.3,0.26,1.19,0.51,0.52,0.91c-0.41,0.39-1.3,0.2-1.34,0.9c0.03,0.55-0.3,1.06-0.35,1.56c-0.09,0.55,1.02,0.94,0.57,1.03c-1.27,0.56-2.62,0.94-3.9,1.47c-0.69,0.23-1.46,0.29-2.09,0.64c-0.17,0.44,0.34,1.12,0.14,1.38c-1.15-0.24-2.6,0.06-3.11,1.23c0,0.48-0.14,1.08-0.78,0.99c-0.7-0.01-1.47,0.13-1.83,0.79c-0.72,0.78-1.28,1.77-2.08,2.43c-0.52,0.06-1.1-0.07-1.49-0.44c-0.54,0.21-1.09,0.67-1.68,0.28c-0.59-0.15-0.98-0.61-1.49-0.92c-0.51-0.13-1.11,0.01-1.55-0.29C453.43,239.1,452.8,239.22,452.2,239.34L452.2,239.34z"/><path id="AO" d="M427.24,211.21c0.52-0.35,0.96-0.86,1.57-1.06c0.64,0.33,0.8,0.68,0.12,1.09c-0.57,0.19-0.47,0.85-0.5,1.33c-0.75,0.43-0.71,0.2-0.65-0.49C427.63,211.77,427.42,211.5,427.24,211.21z M428,213.84c0.75,0.1,1.33-0.52,2.08-0.41c1.77-0.38,3.6,0.08,5.4-0.1c0.63,0.07,1.4-0.17,1.94,0.2c0.21,0.68,0.2,1.42,0.56,2.07c0.39,0.93,0.86,1.95,1.72,2.52c0.71,0.07,1.39-0.23,2.08-0.26c0.57,0.11,1.14,0.1,1.72,0.09c0.29-0.62,0.53-1.29,0.46-1.98c0.07-0.56,0.92-0.17,1.33-0.32c0.5-0.09,1.29-0.1,0.99,0.63c0.3,0.42,0.98,0.11,1.44,0.16c0.39,0.01,1.38-0.29,1.21,0.39c-0.17,0.49-0.28,1,0.09,1.43c0.3,0.94-0.01,1.92-0.22,2.84c0.29,0.86,1.44,1.39,1.28,2.42c-0.02,0.42-0.49,1.18,0.1,1.36c0.98,0.03,1.91-0.59,2.9-0.35c0.79-0.13,0.76,0.36,0.57,0.96c-0.12,0.54-0.02,1.18,0.23,1.66c0.5,0.4,0.05,0.96-0.32,1.25c0.08,0.78-0.56,0.69-1.12,0.65c-1.02,0.03-2.04,0.05-3.05,0.08c-0.07,2.13-0.05,4.27-0.04,6.4c-0.1,0.73,0.31,1.34,0.88,1.76c0.66,0.68,1.32,1.36,1.98,2.04c-1.36,0.3-2.74,0.62-4.11,0.78c-0.81-0.21-1.75,0.28-2.46-0.29c-1.13-0.06-2.34,0.22-3.41-0.2c-0.42-0.32-0.69-0.86-1.31-0.73c-3.05-0.01-6.11-0.02-9.16-0.04c-0.67-0.02-1.09-0.57-1.55-0.94c-0.78-0.18-1.45,0.45-2.08,0.83c-0.43-0.32-0.95-0.65-1.36-0.12c0.03-1.09,0.07-2.18,0-3.26c1.16-0.81,0.99-2.39,1.27-3.62c0.21-0.86,0.39-1.79,1.1-2.39c0.09-0.6,0.48-1.07,1.09-1.15c1.27-1.4,1.36-3.52,0.67-5.21c-0.48-0.73-1.12-1.46-1.21-2.34c0.02-0.66,0.96-0.75,0.85-1.46c0.09-1.21-1.26-1.89-1.27-3.09C429.15,215.2,428.37,214.62,428,213.84L428,213.84z"/><path id="UG" d="M466.2,203.27c0.5-0.61,0.09-1.43,0.23-2.14c-0.04-0.74,0.16-1.5,0.4-2.18c0.53-1.1,1.73-1.59,2.53-2.46c0.43-0.26,0.98-1.01,0.32-1.33c-0.5,0.01-1.07-0.17-0.79-0.79c0.04-0.64,0.3-1.32,0.16-1.93c-0.32-0.33,0.73-0.48,1.06-0.45c0.79,0.1,1.63,0.43,2.41,0.07c0.64-0.22,1.45-0.56,2.03-0.04c0.64,0.04,1.14-0.44,1.56-0.87c0.21,0.62,1.06,0.89,0.92,1.63c-0.04,1.29,1.48,2.03,1.4,3.35c0.01,1.41-1.38,2.18-2.18,3.15c-0.83,0.96-1.15,2.23-1.74,3.33c-2.09,0.02-4.17-0.05-6.26,0.07c-0.54,0.23-0.86,1.02-1.53,0.84C466.55,203.43,466.36,203.38,466.2,203.27L466.2,203.27z"/><path id="RW" d="M464.79,206.24c-0.42-0.46,0.15-1.01,0.23-1.51c0.07-0.55,0.43-0.9,0.89-1.16c0.33-0.63,0.93,0.29,1.4-0.13c0.38-0.31,0.74-0.81,1.27-0.78c0.01,0.79,0.53,1.46,0.63,2.22c0.02,0.8-0.92,0.75-1.49,0.77c-0.64-0.03-0.67,0.75-1.23,0.87c-0.52,0.17-0.99-0.42-1.55-0.26h-0.09L464.79,206.24L464.79,206.24z"/><path id="BI" d="M465.79,210.65c0.01-0.7,0.03-1.4-0.26-2.05c-0.04-0.62,0.16-1.32-0.36-1.81c-0.69-0.61-0.03-0.68,0.55-0.44c0.46,0.34,1.13,0.18,1.35-0.36c0.15-0.33,1.32-0.65,1.16-0.13c-0.23,0.54-0.07,1.05,0.58,1.03c0.72,0.28,0.01,0.77-0.27,1.09c-0.69,0.66-0.88,1.73-1.58,2.34C466.57,210.44,466.17,210.55,465.79,210.65z"/><path id="KE" d="M493.04,204.26c-0.45,0.29-0.99,0.72-1.54,0.45c0,0.53-0.12,1.28-0.81,1.22c-0.6,0.06-0.78,0.74-0.71,1.25c-0.34,0.74-1,1.35-1.3,2.07c0.19,0.51-0.17,1.11-0.6,1.38c-0.47,0.45-0.85-0.28-1.32-0.52c-0.82-0.65-1.78-1.2-2.53-1.89c-0.01-0.47,0.22-1.15-0.45-1.3c-2.6-1.46-5.21-2.9-7.83-4.34c-0.38-0.09-1.41,0.24-1.37-0.13c0.66-1.33,1.08-2.84,2.28-3.81c0.85-0.77,1.88-1.79,1.51-3.04c-0.29-1.12-1.55-1.86-1.34-3.12c-0.06-0.56-0.74-0.79-0.91-1.33c0.39-0.34,0.64-1.02,1.15-1.11c0.96,0.17,1.93-0.13,2.88-0.09c1.16,0.18,2.38,0.31,3.32,1.09c0.68,0.36,1.27,0.99,2.02,1.17c0.84,0.04,1.65,0.2,2.47,0.37c0.76,0.29,1.03-0.66,1.57-0.98c0.52-0.27,1.09-0.63,1.66-0.71c0.52,0.27,1,0.69,1.64,0.64c0.95-0.14,0.23,0.51-0.02,0.94c-0.33,0.56-0.81,1.08-1.06,1.67c-0.04,2.78-0.01,5.56,0.08,8.34C492.23,203.08,492.64,203.67,493.04,204.26L493.04,204.26z"/><path id="TZ" d="M468.57,202.65c2.46-0.11,4.92,0,7.38-0.08c2.74,1.51,5.49,3.02,8.22,4.55c0.34,0.44-0.3,1.13,0.38,1.38c1.07,0.78,2.16,1.54,3.21,2.35c-0.47,0.9-0.79,1.93-0.76,2.95c0.1,0.59,0.52,1.12,0.95,1.52c0.65,0.25,0.62,0.76,0.21,1.22c-0.21,0.52-0.5,1.05,0.11,1.25c-0.1,0.7-0.28,1.5-0.04,2.23c0.24,0.92,0.26,2.08,1.24,2.55c0.24,0.27,1.2,0.54,0.88,0.9c-0.81,0.61-1.61,1.23-2.62,1.44c-0.65,0.15-1.29,0.85-1.96,0.53c-0.43-0.42-0.93-0.52-1.14,0.14c-0.23,0.53-0.73,0.81-1.29,0.64c-0.68-0.08-1.44,0.18-2.07-0.11c-0.46-0.27-0.75-0.94-1.27-0.34c-0.84,0.57-1.85-0.03-2.78,0.1c-0.56-1.2-0.13-2.71-1.04-3.75c-0.38-0.45-0.91-0.58-1.48-0.58c-0.55,0.09-0.75-0.6-1.3-0.67c-1.11-0.4-2.2-0.85-3.26-1.34c-0.62-0.18-1.16-0.68-1.51-1.19c-0.44-1.11-0.74-2.36-1.76-3.09c-0.62-0.5-0.99-1.28-0.78-2.07c0.1-0.84-0.59-1.61-0.33-2.47c0.45-0.32,1.33-0.16,1.57-0.83c0.5-0.86,0.92-1.83,1.75-2.43c0.21-0.66-0.72-0.47-0.97-0.83c0.06-0.45-0.04-1.15,0.6-1.08c0.7-0.21,0.43-1.09,0.18-1.56C468.71,203.55,468.63,203.11,468.57,202.65L468.57,202.65z"/><path id="NA" d="M444.67,255.52c-0.04,2.55,0.05,5.11,0.03,7.66c-0.37,0.53-1.15,0.67-1.57,1.2c-0.61,0.19-1.24-0.24-1.88-0.13c-0.52-0.03-1.33,0.25-1.63-0.3c0.02-0.56-0.15-1.11-0.75-1.26c-0.51-0.45-0.97-0.02-1.21,0.47c-0.43,0.37-0.95,0.51-1.24-0.09c-0.74-0.7-1.59-1.39-1.79-2.45c-0.2-0.61-0.74-1.21-0.4-1.85c-0.04-0.51-0.59-0.91-0.59-1.48c-0.17-0.68,0.34-1.45-0.12-2.1c-0.47-0.97-0.57-2.05-0.83-3.08c0.7,0.17,0.94-0.22,0.79-0.87c0.21-0.81-0.72-0.31-0.58-1.07c-0.44-1.11-1.5-1.85-1.92-2.98c-1.08-2.06-2.02-4.23-3.55-6.01c-0.45-0.79-0.8-1.65-0.66-2.57c0.42-0.54,0.93-0.2,1.36,0.12c0.65-0.39,1.36-1.06,2.16-0.8c0.51,0.73,1.39,1.05,2.26,0.93c2.88-0.01,5.76,0.02,8.63,0.03c0.65,0.03,0.84,0.91,1.55,0.89c0.98,0.18,2.02-0.04,2.99,0.09c0.76,0.51,1.72,0.02,2.56,0.26c1.93-0.35,3.85-0.79,5.78-1.16c0.6,0.41,1.55-0.04,2.04,0.65c-0.24,0.27-0.98,0.43-1.47,0.38c-0.73,0.01-1,0.99-1.67,1.11c-0.33-0.43-0.61-1-1.24-0.69c-1.53,0.17-3.03,0.6-4.58,0.55c0.03,2.71-0.12,5.42-0.07,8.14c-0.76,0.09-1.54,0.04-2.3,0.13C444.66,251.33,444.63,253.43,444.67,255.52L444.67,255.52z"/><path id="MW" d="M477.23,225.87c-0.08,0.79-0.51,1.58-0.14,2.35c0.21,0.77,0.13,1.79,0.99,2.19c0.8,0.63,1.62,1.33,2.11,2.24c0.24,0.89-0.05,1.83-0.04,2.74c0.13,0.71-0.64,0.66-1.07,0.77c-0.54,0.55,0.08,1.4-0.23,2.05c-0.95-0.51-1.31-1.58-2.04-2.31c-0.6-0.63,0.6-1,0.47-1.66c-0.02-0.62,0.07-1.44-0.39-1.88c-0.53-0.14-1.12,0.19-1.62,0.1c-0.56-0.32-0.66-1.19-1.37-1.23c-0.39-0.25-0.75-0.89-0.45-1.35c0.34-0.49-0.04-1.49,0.72-1.61c0.38-0.15,1.18-0.3,1.06-0.81c-0.37-0.22-0.95-0.43-0.81-0.99c0.04-0.74,0.1-1.48,0.05-2.23c0.46-0.17,1.17-0.51,0.8-1.1c-0.25-0.56-0.58-1.07-0.91-1.59c0.61,0.01,1.3-0.04,1.72,0.48c1.01,0.93,0.6,2.44,1.07,3.62C477.18,225.72,477.2,225.8,477.23,225.87L477.23,225.87z"/><path id="LS" d="M462.46,268.5c-0.79-0.51-1.44-1.3-1.73-2.19c0.66-0.42,0.96-1.18,1.56-1.66c0.59-0.33,1.23-0.54,1.87-0.73c0.62,0.38,1.1,0.94,1.72,1.35c0.24,0.5-0.51,0.85-0.62,1.33c-0.26,0.9-1.32,0.73-1.96,1.18C462.81,267.89,463.11,268.68,462.46,268.5z"/><path id="MZ" d="M473.58,260.04c-0.48-0.04-1.19,0.09-1.54-0.02c-0.1-0.6-0.4-1.16-0.26-1.76c-0.36-1.22,0.16-2.52-0.21-3.75c-0.13-0.74-0.48-1.42-0.86-2.05c-0.19-0.74-0.21-1.6-0.62-2.24c0.9-0.81,1.75-1.7,2.56-2.58c0.08-0.46-0.1-1.04,0.14-1.51c0.29-0.67,1.12-0.97,1.26-1.75c-0.39-0.49-0.73-1-0.71-1.65c-0.47-0.85,0.9-1.3,0.61-2.13c-0.25-1.07,0-2.26-0.44-3.27c-0.8-0.77-2.02-0.73-2.95-1.28c-0.69-0.38-1.48-0.28-2.24-0.29c-0.31-0.38-0.06-1-0.32-1.45c-0.29-0.53-0.02-1.08,0.61-1.06c1.07-0.22,2.08-0.62,3.09-1.01c0.87-0.23,1.7-0.68,2.54-0.92c0.45,0.26,0.63,1.06,1.19,1.17c0.51-0.08,1.04-0.24,1.55-0.12c0.34,0.69,0.41,1.56,0.21,2.29c-0.29,0.4-0.84,0.84-0.34,1.31c0.74,0.69,1.06,1.75,1.99,2.23c0.32-0.66-0.36-1.59,0.29-2.11c0.53,0.05,1.15-0.16,1.01-0.8c-0.02-0.91,0.3-1.86,0.01-2.74c-0.64-1.04-1.64-1.79-2.56-2.55c-0.48-0.7-0.35-1.64-0.68-2.42c0.07-0.57,0.22-1.15,0.31-1.72c0.85-0.11,1.71,0.33,2.52,0.04c0.45-0.3,0.94-0.65,1.24,0.04c0.67,0.54,1.57,0.17,2.36,0.27c0.58,0.19,1.06-0.15,1.3-0.67c0.2-0.68,0.72-0.47,1.14-0.09c0.72,0.27,1.37-0.45,2.07-0.59c1.03-0.2,1.81-0.91,2.64-1.5c0.55,0.52,0.22,1.26-0.2,1.75c-0.27,0.4,0.26,0.95,0.16,1.44c-0.09,0.8,0.5,1.74-0.19,2.4c0.47,0.67,0.61,1.46,0.52,2.27c0.03,0.45-0.21,1.23,0.48,1.25c0.26,0.42-0.23,0.99-0.58,1.29c0.15,0.41,0.04,0.94-0.38,1.3c-0.9,0.99-1.68,2.17-2.97,2.69c-1.29,0.77-2.8,1.06-4.09,1.81c-1.32,0.9-2.1,2.39-3.45,3.24c-0.69,0.48-1.33,1.03-2.07,1.42c0.04,0.53-0.13,1.08-0.06,1.58c0.43,0.31,1.18,0.72,0.75,1.33c-0.21,0.51,0.25,1.05,0.32,1.58c0.03,0.48,0.17,1.24,0.74,0.67c0.07,1-0.09,2.01-0.25,2.99c-0.54,0.65,0.27,0.71,0.23,1.23c-0.65,1.23-2.02,1.83-3.3,2.17c-1.05,0.41-2.22,0.7-2.94,1.64c-0.51,0.37-0.43,0.92,0.17,1.12C474.03,258.74,473.56,259.58,473.58,260.04L473.58,260.04z"/><path id="MG" d="M499.85,236.17c0.53,0.1,0.88-0.44,1.35-0.41c0.54,0.37,0.8-0.39,1.27-0.4c0.53-0.41,0.99,0.49,1.35-0.01c-0.4-0.52,0.41-0.74,0.78-1.01c0.34-0.11,1.29,0.25,0.74-0.49c-0.11-0.3,0.69-1.16,0.87-0.53c0.44,0.09,1.05-0.62,0.49-0.96c-0.43-0.66,0.65-0.28,0.67-0.88c-0.11-0.36-0.62-1.35,0.09-1.21c0.26,0.63,0.65,0.62,0.92,0.04c0.75-0.36,0.94-1.18,1.09-1.93c-0.4-0.38,0.18-1.16,0.54-0.93c0.44,0.37,0.61,1,1.24,1.11c0.49,0.65,0.43,1.6,0.61,2.38c0.11,0.97,0.3,1.94,0.83,2.78c0.4,0.67-0.24,1.27-0.57,1.81c-0.43-0.29-0.59-0.87-0.96-1.24c-0.64,0.19-0.2,0.98-0.15,1.44c0.39,0.37,0.65,0.93,0.24,1.4c-0.31,0.62-1.05,1.09-0.85,1.88c0.12,1.56-0.73,2.97-1.1,4.45c-1.07,3.3-2.18,6.6-3.12,9.94c-0.3,0.89-0.48,1.85-1.19,2.51c-0.56,0.46-1.42,0.09-2.06,0.43c-0.61-0.01-0.82,0.72-1.4,0.69c-0.63,0.31-0.7-0.61-1.27-0.64c-0.46-0.15-1.02,0.1-1.34-0.42c-0.58-0.25-0.54-0.84-0.65-1.34c-0.44-0.32-0.76-0.76-0.62-1.35c0.07-0.61,0.61-1.27,0.07-1.82c-0.43-0.72-1.17-1.44-0.81-2.35c0.24-0.57,0.15-1.49,0.93-1.63c0.48-0.4,0.67-1.13,1.05-1.66c0.45-0.64,0.76-1.35,0.78-2.15c0.17-0.56-0.43-0.8-0.71-1.17c0.34-0.49,0.33-0.93-0.1-1.38c-0.3-0.64-0.21-1.42-0.52-2.07c0.41-0.77,1.24-1.48,1.07-2.46C499.29,236.14,499.41,236.14,499.85,236.17L499.85,236.17z"/><path id="BW" d="M456.13,239.67c0.52,0.28,0.76,0.43,0.85,0.98c0.46,0.63,1.13,1.16,1.18,2c0.32,1.23,1.61,1.68,2.64,2.15c0.18,0.36-0.11,1.17,0.63,1.01c0.75-0.24,0.61,0.49,0.66,0.96c0.15,0.48,0.39,1.05,0.8,1.34c0.81,0.25,1.9,0.15,2.35,1.03c0.58,0.32-0.16,0.77-0.49,1.03c-0.54,0.41-1.41,0.03-1.77,0.73c-0.55,0.72-1.23,1.35-2.11,1.65c-0.73,0.41-0.29,1.53-1.04,1.94c-0.53,0.43-1.29,0.4-1.79,0.86c-0.31,0.73-0.32,1.75-1.09,2.15c-0.71,0.13-1.45,0.18-2.17,0.1c-0.89-0.13-1.65-0.61-2.37-1.12c-0.57-0.19-1,0.16-1.12,0.7c-0.55,1.29-1.71,2.38-3.06,2.72c-0.62-0.06-1.38,0.26-1.91-0.1c-0.34-0.76,0.66-1.48,0.21-2.25c-0.27-0.76-0.78-1.52-1.42-1.99c-0.73,0.11-0.35-0.76-0.45-1.22c-0.04-1.71,0.03-3.42,0.1-5.13c0.76-0.09,1.53-0.04,2.3-0.13c-0.05-2.71,0.1-5.43,0.07-8.14c1.75,0.04,3.45-0.47,5.19-0.63c0.3,0.32,0.66,1.16,1.09,0.5c0.44-0.41,0.87-1,1.55-0.85C455.39,240.05,455.75,239.79,456.13,239.67L456.13,239.67z"/><path id="ZW" d="M468.14,234.91c-0.1,0.58,0.14,1.05,0.79,0.85c1.25-0.16,2.27,0.73,3.45,0.95c0.63,0.16,1.34,0.54,1.32,1.28c0.12,0.98,0.08,1.98,0.29,2.95c-0.18,0.63-1.04,1.06-0.66,1.78c0,0.6,0.24,1.09,0.63,1.53c0.15,0.48-0.39,0.98-0.75,1.29c-0.65,0.45-0.59,1.36-0.53,2.02c-0.73,0.88-1.59,1.69-2.42,2.5c-0.37,0.25-0.9-0.36-1.42-0.22c-0.5,0.14-1.03,0.25-1.5-0.08c-0.55-0.31-1.21-0.29-1.8-0.37c-0.41-0.26-0.6-0.85-1.14-0.95c-0.65-0.29-1.68,0-1.94-0.86c-0.38-0.46-0.41-1.07-0.42-1.62c-0.2-0.43-1.18,0.19-1.17-0.54c0.27-0.63-0.42-0.8-0.86-0.99c-1.01-0.35-1.85-1.19-1.97-2.28c-0.15-0.75-1.09-1.16-1.2-1.89c0.28-0.27,0.98,0.37,1.38-0.13c0.51-0.52,0.86,0.14,1.4,0.15c0.55,0.26,0.96-0.14,1.25-0.57c0.7-0.77,1.25-1.72,2.03-2.39c0.61-0.39,1.52,0.06,1.99-0.55c-0.12-1.07,0.97-1.85,1.94-1.93C467.26,234.83,467.72,234.79,468.14,234.91L468.14,234.91z"/><path id="SZ" d="M471.72,258.05c0.1,0.52-0.04,1.05,0.23,1.56c0.42,0.62-0.49,0.49-0.43,1.08c0.1,0.73-0.83,0.34-1.26,0.32c-0.63-0.26-0.96-0.98-1.21-1.56c0.07-0.7,0.61-1.28,1.01-1.83c0.46-0.3,1.02,0.3,1.52,0.38C471.59,257.92,471.7,258.09,471.72,258.05L471.72,258.05z"/><path id="ZA" d="M444.67,255.52c0.67-0.06,1.02,0.62,1.38,1.08c0.42,0.64,0.83,1.45,0.39,2.18c-0.23,0.39-0.38,1.21,0.3,1.2c0.82-0.09,1.69,0.08,2.4-0.42c1.15-0.62,1.97-1.71,2.41-2.93c0.68-0.54,1.35,0.22,1.94,0.53c0.81,0.43,1.74,0.56,2.64,0.44c0.68,0.1,1.4-0.28,1.51-1c0.29-0.56,0.21-1.48,1-1.58c0.72-0.23,1.63-0.53,1.72-1.4c0.02-0.56,0.27-1.05,0.84-1.22c0.95-0.32,1.47-1.24,2.16-1.87c0.63-0.16,1.35-0.13,1.81-0.69c0.25-0.58,0.8-0.42,1.33-0.35c0.74,0.09,1.4,0.77,2.15,0.37c0.71-0.1,1.71,0.18,1.72,1.05c0.24,0.79,0.21,1.67,0.79,2.32c0.57,1.24,0.6,2.62,0.48,3.95c0,0.65,0.17,1.07-0.58,0.6c-0.5-0.31-1.08-0.43-1.32,0.25c-0.33,0.55-1.04,1.26-0.47,1.89c0.29,0.63,0.8,1.21,1.55,1.18c0.77,0.27,0.62-0.4,0.87-0.83c0.55-0.37,1.26-0.16,1.89-0.22c-0.12,0.77-0.17,1.63-0.72,2.23c-0.86,0-0.15,0.77-0.38,1.22c-0.39,1-1.71,1.13-2.21,2.07c-1.31,1.84-2.56,3.77-4.34,5.21c-0.7,0.7-1.39,1.41-2.25,1.93c-1.28,0.93-2.46,2.09-3.97,2.62c-0.73,0.16-1.49,0-2.22,0.15c-0.01,0.69-0.52,0.55-1.02,0.39c-0.58-0.28-0.83,0.4-1.26,0.59c-0.67-0.08-1.19-0.62-1.89-0.63c-0.55-0.21-0.95,0.32-1.41,0.33c-0.52-0.12-0.99-0.35-1.51-0.16c-0.7-0.06-1.22,0.49-1.78,0.79c-1.05,0.25-2.26-0.35-3.18,0.37c-0.38,0.39-0.73,0.95-1.27,0.43c-0.67-0.08-0.66-0.62-1-1.01c-0.63,0.08-0.82-0.12-1.19-0.48c-0.22,0.29-0.91,0.63-0.66-0.15c0.42-0.49,0.1-1-0.23-1.44c-0.08-0.49-0.95-0.82-0.71-1.24c0.55,0.03,0.96-0.25,0.88-0.87c0.1-1.22-0.63-2.33-1.29-3.3c-1.22-1.55-1.5-3.64-2.75-5.16c-0.78-0.5,0.17-0.5,0.47-0.88c0.22-0.6,0.81-0.74,1.29-0.31c0.6,0.15,0.58,0.78,0.62,1.27c0.65,0.52,1.56,0.06,2.33,0.24c0.49,0.1,1.11,0.37,1.47-0.15c0.42-0.48,1.49-0.56,1.3-1.39C444.69,260.33,444.65,257.91,444.67,255.52L444.67,255.52z M462.46,268.5c0.66,0.1,0.46-0.85,1.15-0.89c0.61-0.25,1.44-0.25,1.65-1.01c0.1-0.47,0.79-0.81,0.65-1.27c-0.53-0.44-1.07-0.92-1.63-1.34c-0.48-0.13-1.02,0.28-1.5,0.41c-0.93,0.28-1.19,1.32-1.96,1.83c-0.21,0.45,0.41,0.93,0.61,1.35C461.68,267.98,462.11,268.21,462.46,268.5L462.46,268.5z M432.95,250.66c0.71-0.22,0.48,0.68,0.51,1.11c0.14,0.54-1.07,0.5-0.88-0.1C432.45,251.23,433,251.13,432.95,250.66L432.95,250.66z "/><path id="AQ" d="M238.11,361.75c0.4-0.78,4.43-1.63,1.34-1.95c-1.49-0.16-2.99,0.81-4.44,0.65c-1.24-0.14-1.85-0.59-1.04-1.36c1.45-1.38,4.65,0.34,6.13-1.03c0.37-0.34-0.09-0.66,0.11-0.98c0.12-0.19,0.78-0.53,0.8-0.64c0.35-1.63-1.01-1.42-1.23-2.48c2.47-1.43,4.15-1.07,5.88,0.94c0.97,1.13,2.76,2.22,2.8,3.75C248.55,362.45,240.38,361.78,238.11,361.75L238.11,361.75z M172.69,360.38c4.86-0.93,10.14-1.39,14.77,0.51C182.66,361.84,177.54,361.15,172.69,360.38L172.69,360.38z M65.13,371.08c0.21-0.06,3.55-0.38,3.28,0.32C68.25,371.79,65.54,371.2,65.13,371.08L65.13,371.08L65.13,371.08z M277.94,379.95c1.12-1.9,2.68-2.2,4.88-2.36c1.2-0.08,2.69,0.07,3.71-0.69c0.9-0.67,0.4-0.97,0.93-1.57c1.52-1.75,4.67-1.73,6.85-1.74c2.16-0.01,5.52-0.52,7.48,0.57c1.57,0.88,1.66,3.01,0,3.92c-2.08,1.13-5.22,0.86-7.56,1.07C288.81,379.63,283.38,379.79,277.94,379.95L277.94,379.95z M36,376.43c3.5-2.37,8.02-0.47,11.67,0.68C44.76,379.05,39.07,377.15,36,376.43L36,376.43z M777.84,385.46c3.2,0.26,6.16,0.97,9.35,1.03c3.28,0.06,6.52,0.54,9.79,0.67c1.02,0.04,2.68-0.34,3.61,0.19c0.8,0.45,0.65,0.53,0.65,1.61c0,0.83,0,1.66,0,2.49c0,3.22,0,6.45,0,9.67c-266.79,0-535.46,0-802.38,0.12c0-4.34,0-9.56,0-13.78c7.44,0.54,14.92,0.37,22.38,0.76c8.29,0.43,16.61,1.49,24.91,1.65c3.96,0.08,7.88,0.07,11.84-0.05c2.03-0.06,4.14-0.27,6.16-0.14c2.07,0.13,3.42-0.15,5.48-0.44c3.98-0.55,8.35,0.07,12.37,0.15c2.17,0.04,4.35,0.06,6.52,0.07c0.7,0,1.47,0.11,2.16-0.03c0.11-0.02,1.28-0.44,1.24-0.45c-1.26-0.46-3.41-0.13-4.74-0.17c-1.78-0.07-3.57-0.13-5.35-0.2c-3.31-0.13-6.6-0.34-9.9-0.59c-3.17-0.24-6.46-0.03-9.6-0.53c-3.59-0.56-2.54-2.83,0.26-3.86c-0.61-0.13-6.45-1.39-6.34-1.57c0.04-0.07,1.42-0.43,1.36-0.5c-0.38-0.48-5.98-0.77-5.86-1.05c4.22-0.53,8.38-0.05,12.61,0.04c1.93,0.04,4.23,0.46,6.1,0.17c2.11-0.32,4.33-1.11,6.38-1.71c-3.91-1.46-7.68-1.7-11.73-2.47c-3.68-0.7-7.33-0.41-10.93-1.48c1.29-0.27,2.59-0.48,3.86-0.86c-1.58-0.56-2.52-0.13-4.17-0.04c-1.83,0.1-3.18-0.48-4.84-1.16c0.39-0.6,0.08-0.83,0.7-1.21c0.54-0.33,2.73-0.28,3.43-0.33c2.6-0.19,5.3,0,7.88,0.32c2.43,0.3,4.8,1.18,7.24,0.86c2.63-0.35,4.83-0.58,7.5-0.41c-0.22-0.61,0.26-0.87-0.19-1.41c-0.24-0.29-1.92-0.61-2.28-0.66c-1.72-0.25-3.5-0.16-5.23-0.41c2.88-0.63,5.65-0.4,8.55-0.91c3.28-0.58,6.62-0.91,9.93-1.3c3.26-0.38,6.53-0.6,9.79-1.02c3.24-0.42,6.19-0.2,9.41-0.21c6.47-0.02,12.85-0.06,19.31,0.05c3.42,0.06,6.79-0.69,10.21-0.55c0.84,0.04,1.44-0.24,2.18-0.31c0.78-0.08,1.12,0.02,1.93,0.1c1.85,0.18,3.76,0,5.63-0.05c-0.08-1.78,2.8-1.14,3.74-0.47c0.09,0.33,0.02,0.63-0.2,0.89c0.26,0.2,0.56,0.28,0.9,0.24c0.55,0.23,1.87,0.31,2.36,0.01c0.9-0.56,0.19-1.46,2.1-1.24c0.6,0.07,1.24,0.05,1.35,0.73c0.11,0.71-0.89,0.74-0.83,1.02c0.29,1.25,3.65,0.46,4.52,0.54c1.08,0.1,2.11,0.28,3.2,0.26c1.34-0.01,2.4-0.46,3.71-0.6c2.35-0.25,4.85,0.17,7.19,0.3c1.04,0.06,2.08,0.06,3.13,0.1c0.07,0,3.2,0.26,2.56-0.51c-0.36-0.43-2.21-0.29-2.63-0.31c0.39-0.21,1.94-0.11,1.02-0.9c-0.31-0.26-1.3,0.19-1.65,0.11c-0.77-0.18-0.59-0.58-1.24-0.86c-0.66-0.28-1.4-0.15-2.04-0.41c-2.1-0.85-0.24-0.79,0.89-0.67c2.03,0.23,3.93,0.13,5.97,0c-1.88-0.83-4.08-0.54-6.09-0.62c-0.67-0.03-1.91,0.16-2.39-0.43c-0.89-1.1,0.62-1.09,1.39-0.92c1.01,0.22,1.64,0.58,2.7,0.67c1.21,0.1,2.49-0.16,3.71-0.14c2.31,0.03,4.59,0.48,6.89,0.62c2.31,0.14,4.63-0.24,6.95-0.23c2.4,0.01,4.95,0.54,7.32,0.3c1.32-0.14,2.6-1.59,3.89-1.1c0.22,0.08,0.18,0.79,0.49,0.97c0.93,0.53,2.45,0.17,3.46,0.17c1.73,0,3.24,0.56,5,0.86c1.64,0.28,5.47,1.25,6.98,0.42c1.45-0.8,1.48-1.93,3.62-1.61c1.11,0.16,2.05,0.97,3.18,1.16c1.21,0.2,2.64-0.17,3.89-0.12c4.71,0.22,9.43-0.3,14.1-1.03c1.78-0.28,4.92-0.18,6.44-1.18c1.82-1.2,0.4-2.09-0.62-3.3c-0.45-0.54-0.81-1.12-1.27-1.63c-0.35-0.39-0.95-0.46-0.94-1.16c0.03-1.69,3.17-1.04,3.61-2.82c0.36-1.47-1.47-1.95-1.52-2.92c-0.07-1.28,2.65-1.56,3.62-2.07c1.52-0.81,2.84-1.66,4.32-2.5c2.22-1.27,4.41-1.05,6.72-1.86c0.84-0.29,1.55-0.93,2.42-1.14c0.9-0.22,1.78-0.09,2.68-0.38c0.36-0.11,4.39-2.16,3.59-0.12c-0.35,0.89-3.85,1.26-4.68,1.37c-1.93,0.25-3.7,1.02-5.26,2.22c-0.76,0.59-0.94,1.03-1.38,1.71c-0.5,0.78-0.32,0.95-1.25,1.1c-0.68,0.11-1.41-0.31-2.19-0.12c-0.94,0.23-2.68,1.09-3.22,1.86c-1.03,1.47,0.14,2.38,1.63,2.75c0.94,0.23,1.78-0.07,2.61,0.57c0.7,0.54,1.31,1.72,1.93,2.4c2,2.17,5.31,5,3.1,8.19c-1.15,1.66-3.05,2.12-4.74,2.93c-1.13,0.54-1.78,1.38-3.03,1.67c-1.29,0.3-2.71,0.31-4.02,0.52c-2.58,0.41-5.17,0.83-7.72,1.36c-2.4,0.5-4.93,0.26-7.37,0.18c-2.64-0.08-5.05-0.34-7.59-0.94c-0.94-0.23-6.07-1.11-3.92,0.96c1.14,1.1,4.99,1.67,6.55,1.81c1.26,0.12,2.68-0.2,3.93,0.03c0.13,0.02,1.79,0.68,1.52,0.79c-3.21,0.41-6.08,0.41-9.33,0.13c-3.24-0.28-6.42-0.86-9.67-0.48c1.39,1.36,3.03,1.31,4.86,1.37c0.84,0.03,3.26-0.38,3.88,0.38c0.47,0.58-6.7,0.91-7.09,0.89c-2.66-0.11-4.57-1.42-7.23-1.42c0.12,3.57,10.29,2.23,12.38,2.03c0.65-0.06,5.51,0.02,4.74,1.44c-0.57,1.06-6.73,0.38-7.89,0.3c1.31,0.26,2.66,0.78,3.99,0.86c1.17,0.07,2.38-0.34,3.56-0.2c2.22,0.27,4.41,1.16,6.67,1.44c5.38,0.66,10.78,1.1,16.15,1.8c2.35,0.31,4.7,0.64,7.06,0.89c2.38,0.25,5.07,0.07,7.33,0.86c0.65,0.23,1.17,0.9,1.65,1.09c0.97,0.39,1.63,0.42,2.89,0.2c2.3-0.41,4.46-1.38,6.79-1.7c4.91-0.68,9.82-0.64,14.76-0.78c2.82-0.08,5.67-0.34,8.49-0.28c0.94,0.02,2.15,0.41,3.03,0.27c1.13-0.18,2.21-1.03,3.38-1.27c4.97-1,10.12-0.95,15.16-1.04c2.46-0.04,4.88-0.17,7.33-0.41c1.39-0.13,2.88-0.13,4.24-0.41c-0.19,0.04,2.66-0.48,2.1-1.03c-0.92-0.51-1.01-1.2-1.8-1.67c-1.18-0.7-4-0.2-5.32-0.15c-3.54,0.14-7.04-0.24-10.58-0.18c0.27-1.31-0.1-1.09,1.29-1.82c0.87-0.46,1.79-0.85,2.72-1.17c2.15-0.75,4.24-0.88,6.44-1.32c4.4-0.88,8.78-1.44,13.23-2.11c4.33-0.66,8.52-0.55,12.86-0.94c0.96-0.09,2.19-0.03,3.11-0.35c0.97-0.34,1.61-1.08,2.5-1.62c1.92-1.17,4.47-1.44,6.65-2c-1.37-0.45-1.76-0.26-3.26-0.13c-0.15,0.01-2.43,0.11-2.51-0.25c-0.15-0.69,2.91-1.31,3.36-1.38c1.63-0.24,2.42-0.75,3.92-1.17c0.77-0.21,4.33-0.35,4.59-1.19c0.32-1.02-1.65-0.58-1.47-1.8c0.36-0.06,0.72-0.13,1.07-0.21c0.28,0.17,0.51,0.39,0.69,0.67c0.7,0.08,1.19-0.17,1.81-0.39c0.88-0.31,1.92-1.08,2.89-0.73c0.66,0.23,0.72,1.05,1.27,1.36c0.48,0.28,2.07,0.22,2.56-0.11c0.35-0.24,0.5-1.17,1.04-1.55c0.43-0.29,1.52-0.75,2.05-0.69c0.12,0.01,1.35,0.45,1.21,0.59c-0.4,0.25-1.17,0.36-1.12,1.01c0.56,0.29,1.95-0.14,2.52-0.18c1.11-0.06,2.21,0.03,3.32,0.09c1.14,0.07,2.27,0.09,3.41,0.05c0.66-0.05,1.33-0.09,1.99-0.11c0.28,0.22,0.56,0.46,0.82,0.71c1.82,0.23,4.13-0.81,5.99-1.08c2.37-0.34,4.74-0.67,7.1-1.02c2.37-0.34,4.72-0.9,7.08-1.23c1.38-0.19,2.29-0.2,3.51,0.39c0.74,0.36,1.2,0.82,2.05,1.01c1.86,0.41,2.83-0.59,4.45-1c2.27-0.58,5.19-0.26,7.54-0.37c5.14-0.24,9.91,0.78,14.98,0.95c4.82,0.16,9.93-0.87,14.7-1.52c1.25-0.17,2.5-0.36,3.74-0.6c0.9-0.17,2.87-0.15,3.6-0.64c0.8-0.53,0.92-1.48,2.03-1.81c0.99-0.3,1.16,0.06,1.89,0.42c1.2,0.59,2.86,2.05,4.29,2.04c0.74-0.01,1.38-1.02,2.19-0.78c1.23,0.35-0.22,0.78-0.04,0.9c0.82,0.57,1.91-0.39,2.11-0.25c0.17,0.11-0.05,0.85-0.03,0.99c0.56-0.17,1.11-0.33,1.67-0.49c0.77,0.04,1.12-0.32,1.05-1.09c-0.06-0.85,0.36-1.21,1.26-1.09c0.71-0.15,1.41-0.3,2.12-0.46c1.19-0.28,2.24-0.81,3.39-1.12c1.18-0.31,2.49,0.05,3.68-0.26c1-0.26,2.03-0.41,3.02-0.65c0.68,0.26,1.03,0.1,1.07-0.47c0.16-0.3,0.42-0.42,0.77-0.34c1.08-0.16,1.02,0.8,1.99,0.91c0.93,0.11,2.4-0.53,3.34-0.7c-0.28-0.21-1.37-0.26-1.22-0.82c1.08-0.88,2.73,0.56,3.69,0.29c1.17-0.33-0.36-0.73,0.48-1.61c0.59-0.61,3.54-0.8,4.41-0.94c1.72-0.27,3.5-0.37,5.24-0.26c1.43,0.09,2.42,0.76,3.77,1.08c0.24,0.06,1.84-0.04,1.96,0.22c0.15,0.35-0.45,0.61-0.57,0.44c-0.17-0.26-0.37,0.32-0.3,0.52c0.05,0.15,0.91,0.07,1.03,0.12c1.43,0.57,3.58,0.49,5.11,0.66c6.59,0.74,13.42,1.21,20.05,1.19c3.28-0.01,3.13,1.63,1.33,3.68c-0.2,0.23-0.16,0.78-0.47,0.94c-0.66,0.36-0.72-0.16-1.24-0.02c-0.11,0.03-2.22,0.52-1.71,1.26c0.57,0.82,5.34-0.62,2.24,1.31c-0.65,0.4-1.64,0.21-2.22,1.04c-1.15,1.65,0.99,1.82,2.4,1.92c2.39,0.17,4.04-1.01,5.74-2.59c2.36-2.19,4.74-2.67,7.82-3.51c1.41-0.38,2.81-0.41,4.21-0.73c1.43-0.33,2.11-1.12,3.3-1.84c2.44-1.49,6.51-2.39,9.32-2.77c3.03-0.41,6.11-0.77,9.16-0.67c1.58,0.05,2.02-0.01,3.02-0.91c0.16-0.14,0.27-0.8,0.55-0.9c1.09-0.4,0.58,0.63,1.2,1.08c0.87,0.63,3.24,0.03,4.53-0.03c1.79-0.08,3.57-0.02,5.36-0.04c3.45-0.04,6.93,0.17,10.35,0.03c1.07-0.04,2.32,0.6,3.2,0.53c0.99-0.08,2.36-1.27,3.4-1.57c2.82-0.82,6.11-0.46,8.96,0c2.56,0.41,5.14,0.75,7.6,1.25c1.22,0.25,3.11,0.19,4.23-0.3c0.87-0.38,0.94-0.9,1.63-1.18c0.96-0.39,3.32-0.41,4.41-0.5c1.12-0.09,1.94,0.22,2.94,0.63c0.41,0.17,0.5,0.71,0.99,0.86c0.47,0.15,1.32-0.16,1.84-0.14c1.79,0.06,3.41,0.91,5.19,1.2c3.37,0.55,7.1-0.43,10.49-0.69c1.69-0.13,3.38,0.3,5.04,0.2c1.48-0.09,0.61-0.24,1.58-0.48c0.55-0.13,1.32-0.5,1.95-0.28c0.54,0.19,0.56,0.66,1.03,0.88c0.71,0.34,1.51,0.28,2.3,0.33c0.66,0.04,1.66,0.3,2.32,0.16c0.76-0.17,0.95-0.73,1.66-1.16c1.34-0.81,3.19-0.53,4.68-0.53c1.92,0.01,3.77-0.12,5.67-0.16c-0.26-0.9-0.98-2.31,0.41-2.45c1.03-0.11,0.88,0.97,1.08,1.53c0.08,0.23-0.41,0.4-0.19,0.78c0.2,0.36,1.7,0.34,2.1,0.41c1.58,0.25,3.16,0.36,4.75,0.47c2.95,0.2,5.94,0.2,8.82,0.85c1.4,0.32,2.64,0.16,4.03,0.28c0.99,0.09,3.47-0.08,4.3,0.45c-1.29,0.87,0.43,0.96,1.09,1.13c1.31,0.34,2.25,0.35,3.58,0.5c0.95,0.11,1.29,0.45,2.24,0.76c1.45,0.47,3.37,0.36,4.89,0.53c-0.6,0.92,5.58,0.81,6.36,0.86c-0.62-1.91,0.72-0.56,1.41-0.17c1.41,0.8,3.26,0.99,4.88,0.9c4.11-0.22,7.5,2.09,11.48,2.34c1.56,0.1,2.82,0.59,4.25,0.51c1.89-0.1,3.81,0.29,5.69,0.45c2.05,0.18,3.72,0.64,5.67,1.16c0.53,0.14,4.56,0.93,4.27,1.42c-0.26,0.45-1.22,0.04-1.51,0.31c-0.37,0.35-0.16,0.7-0.15,0.69c0.37-0.59,0.2,0.67,0.21,0.64c-0.09,0.21-1.45,0.85-1.73,1.05c-0.72,0.5-0.67,0.8-1.57,1.02c-0.77,0.18-1.54-0.18-2.32-0.16c-2,0.04-4.41,0.86-6.28,1.47c-0.18,0.2,0.94,0.97,0.99,1.03c0.12,0.27-3.27,0.18-3.24,0.17c-0.56,0.17-0.54,0.62-1.1,0.8c-0.53,0.18-1.35-0.17-1.83,0.21c-0.03,0.71,1,0.61,1.02,1.15c0.02,0.49-0.67,0.72-0.66,0.97c0,0.08,0.29,0.82,0.29,0.91c-0.01,0.33-0.56,1.06-0.57,1.05c0.01,0.02,2.16,0.82,2.31,0.91c0.14,0.08,0.55,0.6,0.73,0.72c-0.1-0.07,1.34,0.36,1.18,0.32c1.36,0.37,3.74,1.92,5.31,1.67c-2.57,0.41-5.27-0.04-7.88,0.4c-1.14,0.19-2.21,0.15-3.36,0.28c-0.38,0.04-3.74,0.22-3.84,0.46c-0.38,0.92,1.56-0.17,0.01,1.24c-1,0.91-2.66,1.13-3.92,1.43c0.74,1.07,3.35,0,4.49,1.06c0.47,0.43,0.44,0.95,0.84,1.35c0.72,0.72,2.52,0.43,3.54,0.66c1.35,0.31,13.66,3.85,13.86,3.22c-0.11,0.35-1.85,0.38-2.21,0.65C774.16,385.79,776.09,385.31,777.84,385.46z"/></svg>';