You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3 lines
1.4 MiB
3 lines
1.4 MiB
(function(a,b){"object"===typeof exports&&"undefined"!==typeof module?b(exports):"function"===typeof define&&define.amd?define(["exports"],b):b(a.GLE={})})(this,function(a){function b(){}function d(c,g){this.x=c||0;this.y=g||0}function e(){this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];0<arguments.length&&console.error("GLE.Matrix4: the constructor no longer reads arguments. use .set() instead.")}function f(c,g,n,a){this._x=c||0;this._y=g||0;this._z=n||0;this._w=void 0!==a?a:1}function h(c,g,n){this.x=c||0;this.y=g||0;this.z=n||0}function l(){this.elements=[1,0,0,0,1,0,0,0,1];0<arguments.length&&console.error("GLE.Matrix3: the constructor no longer reads arguments. use .set() instead.")}function m(c,g,n,a,y,b,e,f,h,k){Object.defineProperty(this,"id",{value:oi++});this.uuid=Aa.generateUUID();this.name="";this.image=void 0!==c?c:m.DEFAULT_IMAGE;this.mipmaps=[];this.mapping=void 0!==g?g:m.DEFAULT_MAPPING;this.wrapS=void 0!==n?n:1001;this.wrapT=void 0!==a?a:1001;this.magFilter=void 0!==y?y:1006;this.minFilter=void 0!==b?b:1008;this.anisotropy=void 0!==h?h:1;this.format=void 0!==e?e:1023;this.type=void 0!==f?f:1009;this.offset=new d(0,0);this.repeat=new d(1,1);this.center=new d(0,0);this.rotation=0;this.matrixAutoUpdate=!0;this.matrix=new l;this.generateMipmaps=!0;this.premultiplyAlpha=!1;this.flipY=!0;this.unpackAlignment=4;this.encoding=void 0!==k?k:3E3;this.version=0;this.onUpdate=null}function r(c,g,n,a){this.x=c||0;this.y=g||0;this.z=n||0;this.w=void 0!==a?a:1}function q(c,g,n){this.width=c;this.height=g;this.scissor=new r(0,0,c,g);this.scissorTest=!1;this.viewport=new r(0,0,c,g);n=n||{};void 0===n.minFilter&&(n.minFilter=1006);this.texture=new m(void 0,void 0,n.wrapS,n.wrapT,n.magFilter,n.minFilter,n.format,n.type,n.anisotropy,n.encoding);this.texture.generateMipmaps=void 0!==n.generateMipmaps?n.generateMipmaps:!0;this.depthBuffer=void 0!==n.depthBuffer?n.depthBuffer:!0;this.stencilBuffer=void 0!==n.stencilBuffer?n.stencilBuffer:!0;this.depthTexture=void 0!==n.depthTexture?n.depthTexture:null}function x(c,g,n){q.call(this,c,g,n);this.activeMipMapLevel=this.activeCubeFace=0}function G(c,g,n,a,y,b,d,e,f,h,k,l){m.call(this,null,b,d,e,f,h,a,y,k,l);this.image={data:c,width:g,height:n};this.magFilter=void 0!==f?f:1003;this.minFilter=void 0!==h?h:1003;this.flipY=this.generateMipmaps=!1;this.unpackAlignment=1}function B(c,g){this.min=void 0!==c?c:new h(Infinity,Infinity,Infinity);this.max=void 0!==g?g:new h(-Infinity,-Infinity,-Infinity)}function w(c,g){this.center=void 0!==c?c:new h;this.radius=void 0!==g?g:0}function v(c,g){this.normal=void 0!==c?c:new h(1,0,0);this.constant=void 0!==g?g:0}function k(c,g,n,a,y,b){this.planes=[void 0!==c?c:new v,void 0!==g?g:new v,void 0!==n?n:new v,void 0!==a?a:new v,void 0!==y?y:new v,void 0!==b?b:new v]}function u(c,g,n){return void 0===g&&void 0===n?this.set(c):this.setRGB(c,g,n)}function p(){function c(t,b){!1!==n&&(a(t,b),g.requestAnimationFrame(c))}var g=null,n=!1,a=null;return{start:function(){!0!==n&&null!==a&&(g.requestAnimationFrame(c),n=!0)},stop:function(){n=!1},setAnimationLoop:function(c){a=c},setContext:function(c){g=c}}}function E(c){function g(g,n){var a=g.array,t=g.dynamic?c.DYNAMIC_DRAW:c.STATIC_DRAW,y=c.createBuffer();c.bindBuffer(n,y);c.bufferData(n,a,t);g.onUploadCallback();t=c.FLOAT;a instanceof Float32Array?t=c.FLOAT:a instanceof Float64Array?console.warn("GLE.WebGLAttributes: Unsupported data buffer format: Float64Array."):a instanceof Uint16Array?t=c.UNSIGNED_SHORT:a instanceof Int16Array?t=c.SHORT:a instanceof Uint32Array?t=c.UNSIGNED_INT:a instanceof Int32Array?t=c.INT:a instanceof Int8Array?t=c.BYTE:a instanceof Uint8Array&&(t=c.UNSIGNED_BYTE);return{buffer:y,type:t,bytesPerElement:a.BYTES_PER_ELEMENT,version:g.version}}var n=new WeakMap;return{get:function(c){c.isInterleavedBufferAttribute&&(c=c.data);return n.get(c)},remove:function(g){g.isInterleavedBufferAttribute&&(g=g.data);var a=n.get(g);a&&(c.deleteBuffer(a.buffer),n["delete"](g))},update:function(a,y){a.isInterleavedBufferAttribute&&(a=a.data);var t=n.get(a);if(void 0===t)n.set(a,g(a,y));else if(t.version<a.version){var b=a,d=b.array,e=b.updateRange;c.bindBuffer(y,t.buffer);!1===b.dynamic?c.bufferData(y,d,c.STATIC_DRAW):-1===e.count?c.bufferSubData(y,0,d):0===e.count?console.error("GLE.WebGLObjects.updateBuffer: dynamic GLE.BufferAttribute marked as needsUpdate but updateRange.count is 0, ensure you are using set methods or updating manually."):(c.bufferSubData(y,e.offset*d.BYTES_PER_ELEMENT,d.subarray(e.offset,e.offset+e.count)),e.count=-1);t.version=a.version}}}}function C(c,g,n,a,y,b){this.a=c;this.b=g;this.c=n;this.normal=a&&a.isVector3?a:new h;this.vertexNormals=Array.isArray(a)?a:[];this.color=y&&y.isColor?y:new u;this.vertexColors=Array.isArray(y)?y:[];this.materialIndex=void 0!==b?b:0}function W(c,g,n,a){this._x=c||0;this._y=g||0;this._z=n||0;this._order=a||W.DefaultOrder}function aa(){this.mask=1}function F(){Object.defineProperty(this,"id",{value:sf++});this.uuid=Aa.generateUUID();this.name="";this.type="Object3D";this.parent=null;this.children=[];this.up=F.DefaultUp.clone();var c=new h,g=new W,n=new f,a=new h(1,1,1);g.onChange(function(){n.setFromEuler(g,!1)});n.onChange(function(){g.setFromQuaternion(n,void 0,!1)});Object.defineProperties(this,{position:{enumerable:!0,value:c},rotation:{enumerable:!0,value:g},quaternion:{enumerable:!0,value:n},scale:{enumerable:!0,value:a},modelViewMatrix:{value:new e},normalMatrix:{value:new l}});this.matrix=new e;this.matrixWorld=new e;this.matrixAutoUpdate=F.DefaultMatrixAutoUpdate;this.mte=!1;this.layers=new aa;this.visible=!0;this.receiveShadow=this.castShadow=!1;this.frustumCulled=!0;this.renderOrder=0;this.userData={}}function L(){Object.defineProperty(this,"id",{value:pi+=2});this.uuid=Aa.generateUUID();this.name="";this.type="Geometry";this.vertices=[];this.colors=[];this.faces=[];this.faceVertexUvs=[[]];this.morphTargets=[];this.morphNormals=[];this.skinWeights=[];this.skinIndices=[];this.lineDistances=[];this.boundingSphere=this.boundingBox=null;this.groupsNeedUpdate=this.lineDistancesNeedUpdate=this.colorsNeedUpdate=this.normalsNeedUpdate=this.uvsNeedUpdate=this.verticesNeedUpdate=this.elementsNeedUpdate=!1}function A(c,g,n){if(Array.isArray(c))throw new TypeError("GLE.BufferAttribute: array should be a Typed Array.");this.name="";this.array=c;this.itemSize=g;this.count=void 0!==c?c.length/g:0;this.normalized=!0===n;this.dynamic=!1;this.updateRange={offset:0,count:-1};this.version=0}function H(c,g,n){A.call(this,new Int8Array(c),g,n)}function D(c,g,n){A.call(this,new Uint8Array(c),g,n)}function M(c,g,n){A.call(this,new Uint8ClampedArray(c),g,n)}function N(c,g,n){A.call(this,new Int16Array(c),g,n)}function V(c,g,n){A.call(this,new Uint16Array(c),g,n)}function Q(c,g,n){A.call(this,new Int32Array(c),g,n)}function J(c,g,n){A.call(this,new Uint32Array(c),g,n)}function K(c,g,n){A.call(this,new Float32Array(c),g,n)}function ba(c,g,n){A.call(this,new Float64Array(c),g,n)}function ca(){this.vertices=[];this.normals=[];this.colors=[];this.uvs=[];this.uvs2=[];this.groups=[];this.morphTargets={};this.skinWeights=[];this.skinIndices=[];this.boundingSphere=this.boundingBox=null;this.groupsNeedUpdate=this.uvsNeedUpdate=this.colorsNeedUpdate=this.normalsNeedUpdate=this.verticesNeedUpdate=!1}function Na(c){if(0===c.length)return-Infinity;for(var g=c[0],n=1,a=c.length;n<a;++n)c[n]>g&&(g=c[n]);return g}function R(){Object.defineProperty(this,"id",{value:jh+=2});this.uuid=Aa.generateUUID();this.name="";this.type="BufferGeometry";this.index=null;this.attributes={};this.morphAttributes={};this.groups=[];this.boundingSphere=this.boundingBox=null;this.drawRange={start:0,count:Infinity};this.userData={}}function Z(c,g,n,a,y,b){L.call(this);this.type="BoxGeometry";this.parameters={width:c,height:g,depth:n,widthSegments:a,heightSegments:y,depthSegments:b};this.fromBufferGeometry(new ta(c,g,n,a,y,b));this.mergeVertices()}function ta(c,g,n,a,y,b){function t(c,g,n,a,t,y,b,O,ea,ma,u){var m=y/ea,p=b/ma,Tb=y/2,v=b/2,r=O/2;b=ea+1;var q=ma+1,E=y=0,C,Gb,Ub=new h;for(Gb=0;Gb<q;Gb++){var w=Gb*p-v;for(C=0;C<b;C++)Ub[c]=(C*m-Tb)*a,Ub[g]=w*t,Ub[n]=r,e.push(Ub.x,Ub.y,Ub.z),Ub[c]=0,Ub[g]=0,Ub[n]=0<O?1:-1,f.push(Ub.x,Ub.y,Ub.z),k.push(C/ea),k.push(1-Gb/ma),y+=1}for(Gb=0;Gb<ma;Gb++)for(C=0;C<ea;C++)c=l+C+b*(Gb+1),g=l+(C+1)+b*(Gb+1),n=l+(C+1)+b*Gb,I.push(l+C+b*Gb,c,n),I.push(c,g,n),E+=6;d.addGroup(z,E,u);z+=E;l+=y}R.call(this);this.type="By";this.parameters={width:c,height:g,depth:n,widthSegments:a,heightSegments:y,depthSegments:b};var d=this;c=c||1;g=g||1;n=n||1;a=Math.floor(a)||1;y=Math.floor(y)||1;b=Math.floor(b)||1;var I=[],e=[],f=[],k=[],l=0,z=0;t("z","y","x",-1,-1,n,g,c,b,y,0);t("z","y","x",1,-1,n,g,-c,b,y,1);t("x","z","y",1,1,c,n,g,a,b,2);t("x","z","y",1,-1,c,n,-g,a,b,3);t("x","y","z",1,-1,c,g,n,a,y,4);t("x","y","z",-1,-1,c,g,-n,a,y,5);this.setIndex(I);this.addAttribute("position",new K(e,3));this.addAttribute("normal",new K(f,3));this.addAttribute("uv",new K(k,2))}function da(c,g,n,a){L.call(this);this.type="PlaneGeometry";this.parameters={width:c,height:g,widthSegments:n,heightSegments:a};this.fromBufferGeometry(new Y(c,g,n,a));this.mergeVertices()}function Y(c,g,n,a){R.call(this);this.type="PlaneBufferGeometry";this.parameters={width:c,height:g,widthSegments:n,heightSegments:a};c=c||1;g=g||1;var t=c/2,b=g/2;n=Math.floor(n)||1;a=Math.floor(a)||1;var d=n+1,e=a+1,f=c/n,h=g/a,k=[],l=[],z=[],u=[];for(c=0;c<e;c++){var m=c*h-b;for(g=0;g<d;g++)l.push(g*f-t,-m,0),z.push(0,0,1),u.push(g/n),u.push(1-c/a)}for(c=0;c<a;c++)for(g=0;g<n;g++)t=g+d*(c+1),b=g+1+d*(c+1),e=g+1+d*c,k.push(g+d*c,t,e),k.push(t,b,e);this.setIndex(k);this.addAttribute("position",new K(l,3));this.addAttribute("normal",new K(z,3));this.addAttribute("uv",new K(u,2))}function S(){Object.defineProperty(this,"id",{value:mh++});this.uuid=Aa.generateUUID();this.name="";this.type="Material";this.lights=this.fog=!0;this.blending=1;this.side=0;this.flatShading=!1;this.vertexColors=0;this.opacity=1;this.transparent=!1;this.blendSrc=204;this.blendDst=205;this.blendEquation=100;this.blendEquationAlpha=this.blendDstAlpha=this.blendSrcAlpha=null;this.depthFunc=3;this.depthWrite=this.depthTest=!0;this.cs=null;this.clipShadows=this.clipIntersection=!1;this.shadowSide=null;this.colorWrite=!0;this.precision=null;this.polygonOffset=!1;this.polygonOffsetUnits=this.polygonOffsetFactor=0;this.dithering=!1;this.alphaTest=0;this.premultipliedAlpha=!1;this.overdraw=0;this.visible=!0;this.userData={};this.needsUpdate=!0}function ga(c){S.call(this);this.type="ShaderMaterial";this.defines={};this.uniforms={};this.vertexShader="void main() {\n\tgl_Position \x3d projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}";this.fragmentShader="void main() {\n\tgl_FragColor \x3d vec4( 1.0, 0.0, 0.0, 1.0 );\n}";this.linewidth=1;this.wireframe=!1;this.wireframeLinewidth=1;this.morphNormals=this.morphTargets=this.skinning=this.clipping=this.lights=this.fog=!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;void 0!==c&&(void 0!==c.attributes&&console.error("GLE.ShaderMaterial: attributes should now be defined in GLE.BufferGeometry instead."),this.setValues(c))}function ja(c,g){this.origin=void 0!==c?c:new h;this.direction=void 0!==g?g:new h}function ka(c,g,n){this.a=void 0!==c?c:new h;this.b=void 0!==g?g:new h;this.c=void 0!==n?n:new h}function ha(c){S.call(this);this.type="Mal";this.color=new u(16777215);this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.envMap=this.alphaMap=this.specularMap=null;this.combine=0;this.reflectivity=1;this.refractionRatio=.98;this.wireframe=!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap="round";this.lights=this.morphTargets=this.skinning=!1;this.setValues(c)}function na(c,g){F.call(this);this.type="Mesh";this.geometry=void 0!==c?c:new R;this.material=void 0!==g?g:new ha({color:16777215*Math.random()});this.drawMode=0;this.updateMorphTargets()}function Oa(c,g,n,a){function t(c,n){g.buffers.color.setClear(c.r,c.g,c.b,n,a)}var b=new u(0),d=0,e,f;return{getClearColor:function(){return b},sr:function(c,g){b.set(c);d=void 0!==g?g:1;t(b,d)},getClearAlpha:function(){return d},setClearAlpha:function(c){d=c;t(b,d)},render:function(g,a,y,I){a=a.background;null===a?t(b,d):a&&a.isColor&&(t(a,1),I=!0);(c.autoClear||I)&&c.clear(c.autoClearColor,c.autoClearDepth,c.autoClearStencil);a&&a.isCubeTexture?(void 0===f&&(f=new na(new ta(1,1,1),new ga({uniforms:Dc.cube.uniforms,vertexShader:Dc.cube.vertexShader,fragmentShader:Dc.cube.fragmentShader,side:1,depthTest:!0,depthWrite:!1,fog:!1})),f.geometry.removeAttribute("normal"),f.geometry.removeAttribute("uv"),f.onBeforeRender=function(c,g,n){this.matrixWorld.copyPosition(n.matrixWorld)},n.update(f)),f.material.uniforms.tCube.value=a,g.push(f,f.geometry,f.material,0,null)):a&&a.isTexture&&(void 0===e&&(e=new na(new Y(2,2),new ga({uniforms:Dc.background.uniforms,vertexShader:Dc.background.vertexShader,fragmentShader:Dc.background.fragmentShader,side:0,depthTest:!0,depthWrite:!1,fog:!1})),e.geometry.removeAttribute("normal"),n.update(e)),e.material.uniforms.t2D.value=a,g.push(e,e.geometry,e.material,0,null))}}}function Ea(c,g,n,a){var t;this.setMode=function(c){t=c};this.render=function(g,a){c.drawArrays(t,g,a);n.update(a,t)};this.renderInstances=function(y,b,d){var I;if(a.isWebGL2)I=c;else if(I=g.get("ANGLE_instanced_arrays"),null===I){console.error("GLE.WebGLBufferRenderer: using GLE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");return}I[a.isWebGL2?"drawArraysInstanced":"drawArraysInstancedANGLE"](t,b,d,y.maxInstancedCount);n.update(d,t,y.maxInstancedCount)}}function X(c,g,n){function a(g){if("highp"===g){if(0<c.getShaderPrecisionFormat(c.VERTEX_SHADER,c.HIGH_FLOAT).precision&&0<c.getShaderPrecisionFormat(c.FRAGMENT_SHADER,c.HIGH_FLOAT).precision)return"highp";g="mediump"}return"mediump"===g&&0<c.getShaderPrecisionFormat(c.VERTEX_SHADER,c.MEDIUM_FLOAT).precision&&0<c.getShaderPrecisionFormat(c.FRAGMENT_SHADER,c.MEDIUM_FLOAT).precision?"mediump":"lowp"}var y,b="undefined"!==typeof WebGL2RenderingContext&&c instanceof WebGL2RenderingContext,d=void 0!==n.precision?n.precision:"highp",e=a(d);e!==d&&(console.warn("GLE.Wr:",d,"not supported, using",e,"instead."),d=e);n=!0===n.logarithmicDepthBuffer;var e=c.getParameter(c.MAX_TEXTURE_IMAGE_UNITS),f=c.getParameter(c.MAX_VERTEX_TEXTURE_IMAGE_UNITS),h=c.getParameter(c.MAX_TEXTURE_SIZE),k=c.getParameter(c.MAX_CUBE_MAP_TEXTURE_SIZE),l=c.getParameter(c.MAX_VERTEX_ATTRIBS),z=c.getParameter(c.MAX_VERTEX_UNIFORM_VECTORS),u=c.getParameter(c.MAX_VARYING_VECTORS),m=c.getParameter(c.MAX_FRAGMENT_UNIFORM_VECTORS),p=0<f,v=b||!!g.get("OES_texture_float");return{isWebGL2:b,getMaxAnisotropy:function(){if(void 0!==y)return y;var n=g.get("EXT_texture_filter_anisotropic");return y=null!==n?c.getParameter(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT):0},getMaxPrecision:a,precision:d,logarithmicDepthBuffer:n,maxTextures:e,maxVertexTextures:f,maxTextureSize:h,maxCubemapSize:k,maxAttributes:l,maxVertexUniforms:z,maxVaryings:u,maxFragmentUniforms:m,vertexTextures:p,floatFragmentTextures:v,floatVertexTextures:p&&v}}function Hb(){function c(){h.value!==a&&(h.value=a,h.needsUpdate=0<y);n.numPlanes=y;n.numIntersection=0}function g(c,g,a,t){var y=null!==c?c.length:0,b=null;if(0!==y){b=h.value;if(!0!==t||null===b){t=a+4*y;g=g.matrixWorldInverse;f.getNormalMatrix(g);if(null===b||b.length<t)b=new Float32Array(t);for(t=0;t!==y;++t,a+=4)e.copy(c[t]).applyMatrix4(g,f),e.normal.toArray(b,a),b[a+3]=e.constant}h.value=b;h.needsUpdate=!0}n.numPlanes=y;return b}var n=this,a=null,y=0,b=!1,d=!1,e=new v,f=new l,h={value:null,needsUpdate:!1};this.uniform=h;this.numIntersection=this.numPlanes=0;this.init=function(c,n,t){var d=0!==c.length||n||0!==y||b;b=n;a=g(c,t,0);y=c.length;return d};this.beginShadows=function(){d=!0;g(null)};this.endShadows=function(){d=!1;c()};this.setState=function(n,t,I,e,f,O){if(!b||null===n||0===n.length||d&&!I)d?g(null):c();else{I=d?0:y;var ea=4*I,k=f.clippingState||null;h.value=k;k=g(n,e,ea,O);for(n=0;n!==ea;++n)k[n]=a[n];f.clippingState=k;this.numIntersection=t?this.numPlanes:0;this.numPlanes+=I}}}function ua(c){var g={};return{get:function(n){if(void 0!==g[n])return g[n];var a;switch(n){case "WEBGL_depth_texture":a=c.getExtension("WEBGL_depth_texture")||c.getExtension("MOZ_WEBGL_depth_texture")||c.getExtension("WEBKIT_WEBGL_depth_texture");break;case "EXT_texture_filter_anisotropic":a=c.getExtension("EXT_texture_filter_anisotropic")||c.getExtension("MOZ_EXT_texture_filter_anisotropic")||c.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case "WEBGL_compressed_texture_s3tc":a=c.getExtension("WEBGL_compressed_texture_s3tc")||c.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||c.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case "WEBGL_compressed_texture_pvrtc":a=c.getExtension("WEBGL_compressed_texture_pvrtc")||c.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:a=c.getExtension(n)}null===a&&console.warn("GLE.Wr: "+n+" extension not supported.");return g[n]=a}}}function z(c,g,n){function a(c){var t=c.target;c=y[t.id];null!==c.index&&g.remove(c.index);for(var d in c.attributes)g.remove(c.attributes[d]);t.removeEventListener("dispose",a);delete y[t.id];if(d=b[c.id])g.remove(d),delete b[c.id];n.memory.geometries--}var y={},b={};return{get:function(c,g){var t=y[g.id];if(t)return t;g.addEventListener("dispose",a);g.isBufferGeometry?t=g:g.isGeometry&&(void 0===g._bufferGeometry&&(g._bufferGeometry=(new R).st(c)),t=g._bufferGeometry);y[g.id]=t;n.memory.geometries++;return t},update:function(n){var a=n.index,t=n.attributes;null!==a&&g.update(a,c.ELEMENT_ARRAY_BUFFER);for(var y in t)g.update(t[y],c.ARRAY_BUFFER);n=n.morphAttributes;for(y in n)for(var a=n[y],t=0,b=a.length;t<b;t++)g.update(a[t],c.ARRAY_BUFFER)},getWireframeAttribute:function(n){var a=b[n.id];if(a)return a;var a=[],t=n.index,y=n.attributes;if(null!==t)for(var t=t.array,y=0,d=t.length;y<d;y+=3){var I=t[y+0],e=t[y+1],f=t[y+2];a.push(I,e,e,f,f,I)}else for(t=y.position.array,y=0,d=t.length/3-1;y<d;y+=3)I=y+0,e=y+1,f=y+2,a.push(I,e,e,f,f,I);a=new (65535<Na(a)?J:V)(a,1);g.update(a,c.ELEMENT_ARRAY_BUFFER);return b[n.id]=a}}}function la(c,g,n,a){var t,b,d;this.setMode=function(c){t=c};this.setIndex=function(c){b=c.type;d=c.bytesPerElement};this.render=function(g,a){c.drawElements(t,a,b,g*d);n.update(a,t)};this.renderInstances=function(y,I,e){var f;if(a.isWebGL2)f=c;else if(f=g.get("ANGLE_instanced_arrays"),null===f){console.error("GLE.WebGLIndexedBufferRenderer: using GLE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");return}f[a.isWebGL2?"drawElementsInstanced":"drawElementsInstancedANGLE"](t,e,b,I*d,y.maxInstancedCount);n.update(e,t,y.maxInstancedCount)}}function fa(c){var g={frame:0,calls:0,triangles:0,points:0,lines:0};return{memory:{geometries:0,textures:0},render:g,programs:null,autoReset:!0,reset:function(){g.frame++;g.calls=0;g.triangles=0;g.points=0;g.lines=0},update:function(n,a,y){y=y||1;g.calls++;switch(a){case c.TRIANGLES:g.triangles+=n/3*y;break;case c.TRIANGLE_STRIP:case c.TRIANGLE_FAN:g.triangles+=y*(n-2);break;case c.LINES:g.lines+=n/2*y;break;case c.LINE_STRIP:g.lines+=y*(n-1);break;case c.LINE_LOOP:g.lines+=y*n;break;case c.POINTS:g.points+=y*n;break;default:console.error("GLE.WebGLInfo: Unknown draw mode:",a)}}}}function T(c,g){return Math.abs(g[1])-Math.abs(c[1])}function Ie(c){var g={},n=new Float32Array(8);return{update:function(a,y,b,d){var t=a.morphTargetInfluences,I=t.length;a=g[y.id];if(void 0===a){a=[];for(var e=0;e<I;e++)a[e]=[e,0];g[y.id]=a}var f=b.morphTargets&&y.morphAttributes.position;b=b.morphNormals&&y.morphAttributes.normal;for(e=0;e<I;e++){var h=a[e];0!==h[1]&&(f&&y.removeAttribute("morphTarget"+e),b&&y.removeAttribute("morphNormal"+e))}for(e=0;e<I;e++)h=a[e],h[0]=e,h[1]=t[e];a.sort(T);for(e=0;8>e;e++){if(h=a[e])if(t=h[0],I=h[1]){f&&y.addAttribute("morphTarget"+e,f[t]);b&&y.addAttribute("morphNormal"+e,b[t]);n[e]=I;continue}n[e]=0}d.getUniforms().setValue(c,"morphTargetInfluences",n)}}}function nh(c,g){var n={};return{update:function(a){var t=g.render.frame,b=a.geometry,d=c.get(a,b);n[d.id]!==t&&(b.isGeometry&&d.updateFromObject(a),c.update(d),n[d.id]=t);return d},dispose:function(){n={}}}}function Ua(c,g,n,a,y,b,d,e,f,h){c=void 0!==c?c:[];m.call(this,c,void 0!==g?g:301,n,a,y,b,d,e,f,h);this.flipY=!1}function kb(c,g,n,a){m.call(this,null);this.image={data:c,width:g,height:n,depth:a};this.minFilter=this.magFilter=1003;this.flipY=this.generateMipmaps=!1}function za(c,g,n){var a=c[0];if(0>=a||0<a)return c;var y=g*n,b=kg[y];void 0===b&&(b=new Float32Array(y),kg[y]=b);if(0!==g)for(a.toArray(b,0),a=1,y=0;a!==g;++a)y+=n,c[a].toArray(b,y);return b}function wa(c,g){if(c.length!==g.length)return!1;for(var n=0,a=c.length;n<a;n++)if(c[n]!==g[n])return!1;return!0}function Ma(c,g){for(var n=0,a=g.length;n<a;n++)c[n]=g[n]}function Va(c,g){var n=lg[g];void 0===n&&(n=new Int32Array(g),lg[g]=n);for(var a=0;a!==g;++a)n[a]=c.allocTextureUnit();return n}function Je(c,g){var n=this.cache;n[0]!==g&&(c.uniform1f(this.addr,g),n[0]=g)}function ud(c,g){var n=this.cache;n[0]!==g&&(c.uniform1i(this.addr,g),n[0]=g)}function Nc(c,g){var n=this.cache;if(void 0!==g.x){if(n[0]!==g.x||n[1]!==g.y)c.uniform2f(this.addr,g.x,g.y),n[0]=g.x,n[1]=g.y}else wa(n,g)||(c.uniform2fv(this.addr,g),Ma(n,g))}function hb(c,g){var n=this.cache;if(void 0!==g.x){if(n[0]!==g.x||n[1]!==g.y||n[2]!==g.z)c.uniform3f(this.addr,g.x,g.y,g.z),n[0]=g.x,n[1]=g.y,n[2]=g.z}else if(void 0!==g.r){if(n[0]!==g.r||n[1]!==g.g||n[2]!==g.b)c.uniform3f(this.addr,g.r,g.g,g.b),n[0]=g.r,n[1]=g.g,n[2]=g.b}else wa(n,g)||(c.uniform3fv(this.addr,g),Ma(n,g))}function tc(c,g){var n=this.cache;if(void 0!==g.x){if(n[0]!==g.x||n[1]!==g.y||n[2]!==g.z||n[3]!==g.w)c.uniform4f(this.addr,g.x,g.y,g.z,g.w),n[0]=g.x,n[1]=g.y,n[2]=g.z,n[3]=g.w}else wa(n,g)||(c.uniform4fv(this.addr,g),Ma(n,g))}function vd(c,g){var n=this.cache,a=g.elements;void 0===a?wa(n,g)||(c.uniformMatrix2fv(this.addr,!1,g),Ma(n,g)):wa(n,a)||(ti.set(a),c.uniformMatrix2fv(this.addr,!1,ti),Ma(n,a))}function Oc(c,g){var n=this.cache,a=g.elements;void 0===a?wa(n,g)||(c.uniformMatrix3fv(this.addr,!1,g),Ma(n,g)):wa(n,a)||(ui.set(a),c.uniformMatrix3fv(this.addr,!1,ui),Ma(n,a))}function db(c,g){var n=this.cache,a=g.elements;void 0===a?wa(n,g)||(c.uniformMatrix4fv(this.addr,!1,g),Ma(n,g)):wa(n,a)||(vi.set(a),c.uniformMatrix4fv(this.addr,!1,vi),Ma(n,a))}function bd(c,g,n){var a=this.cache,y=n.allocTextureUnit();a[0]!==y&&(c.uniform1i(this.addr,y),a[0]=y);n.setTexture2D(g||vf,y)}function Pc(c,g,n){var a=this.cache,y=n.allocTextureUnit();a[0]!==y&&(c.uniform1i(this.addr,y),a[0]=y);n.setTexture3D(g||oh,y)}function lb(c,g,n){var a=this.cache,y=n.allocTextureUnit();a[0]!==y&&(c.uniform1i(this.addr,y),a[0]=y);n.setTextureCube(g||mg,y)}function wf(c,g){var n=this.cache;wa(n,g)||(c.uniform2iv(this.addr,g),Ma(n,g))}function Sa(c,g){var n=this.cache;wa(n,g)||(c.uniform3iv(this.addr,g),Ma(n,g))}function ng(c,g){var n=this.cache;wa(n,g)||(c.uniform4iv(this.addr,g),Ma(n,g))}function Qc(c){switch(c){case 5126:return Je;case 35664:return Nc;case 35665:return hb;case 35666:return tc;case 35674:return vd;case 35675:return Oc;case 35676:return db;case 35678:case 36198:return bd;case 35679:return Pc;case 35680:return lb;case 5124:case 35670:return ud;case 35667:case 35671:return wf;case 35668:case 35672:return Sa;case 35669:case 35673:return ng}}function cd(c,g){var n=this.cache;wa(n,g)||(c.uniform1fv(this.addr,g),Ma(n,g))}function eb(c,g){var n=this.cache;wa(n,g)||(c.uniform1iv(this.addr,g),Ma(n,g))}function uc(c,g){var n=this.cache,a=za(g,this.size,2);wa(n,a)||(c.uniform2fv(this.addr,a),this.updateCache(a))}function Vb(c,g){var n=this.cache,a=za(g,this.size,3);wa(n,a)||(c.uniform3fv(this.addr,a),this.updateCache(a))}function Wb(c,g){var n=this.cache,a=za(g,this.size,4);wa(n,a)||(c.uniform4fv(this.addr,a),this.updateCache(a))}function Xd(c,g){var n=this.cache,a=za(g,this.size,4);wa(n,a)||(c.uniformMatrix2fv(this.addr,!1,a),this.updateCache(a))}function xf(c,g){var n=this.cache,a=za(g,this.size,9);wa(n,a)||(c.uniformMatrix3fv(this.addr,!1,a),this.updateCache(a))}function dd(c,g){var n=this.cache,a=za(g,this.size,16);wa(n,a)||(c.uniformMatrix4fv(this.addr,!1,a),this.updateCache(a))}function fb(c,g,n){var a=this.cache,y=g.length,b=Va(n,y);!1===wa(a,b)&&(c.uniform1iv(this.addr,b),Ma(a,b));for(c=0;c!==y;++c)n.setTexture2D(g[c]||vf,b[c])}function yf(c,g,n){var a=this.cache,y=g.length,b=Va(n,y);!1===wa(a,b)&&(c.uniform1iv(this.addr,b),Ma(a,b));for(c=0;c!==y;++c)n.setTextureCube(g[c]||mg,b[c])}function Ke(c){switch(c){case 5126:return cd;case 35664:return uc;case 35665:return Vb;case 35666:return Wb;case 35674:return Xd;case 35675:return xf;case 35676:return dd;case 35678:return fb;case 35680:return yf;case 5124:case 35670:return eb;case 35667:case 35671:return wf;case 35668:case 35672:return Sa;case 35669:case 35673:return ng}}function Yd(c,g,n){this.id=c;this.addr=n;this.cache=[];this.setValue=Qc(g.type)}function Ob(c,g,n){this.id=c;this.addr=n;this.cache=[];this.size=g.size;this.setValue=Ke(g.type)}function wd(c){this.id=c;this.seq=[];this.map={}}function Xb(c,g,n){this.seq=[];this.map={};this.renderer=n;n=c.getProgramParameter(g,c.ACTIVE_UNIFORMS);for(var a=0;a<n;++a){var y=c.getActiveUniform(g,a),b=c.getUniformLocation(g,y.name),d=this,e=y.name,f=e.length;for(ph.lastIndex=0;;){var h=ph.exec(e),k=ph.lastIndex,l=h[1],z=h[3];"]"===h[2]&&(l|=0);if(void 0===z||"["===z&&k+2===f){e=d;y=void 0===z?new Yd(l,y,b):new Ob(l,y,b);e.seq.push(y);e.map[y.id]=y;break}else z=d.map[l],void 0===z&&(z=new wd(l),l=d,d=z,l.seq.push(d),l.map[d.id]=d),d=z}}}function Rc(c){c=c.split("\n");for(var g=0;g<c.length;g++)c[g]=g+1+": "+c[g];return c.join("\n")}function Yb(c,g,n){var a=c.createShader(g);c.shaderSource(a,n);c.compileShader(a);!1===c.getShaderParameter(a,c.COMPILE_STATUS)&&console.error("GLE.WebGLShader: Shader couldn't compile.");""!==c.getShaderInfoLog(a)&&console.warn("GLE.WebGLShader: gl.getShaderInfoLog()",g===c.VERTEX_SHADER?"vertex":"fragment",c.getShaderInfoLog(a),Rc(n));return a}function Le(c){switch(c){case 3E3:return["Linear","( value )"];case 3001:return["sRGB","( value )"];case 3002:return["RGBE","( value )"];case 3004:return["RGBM","( value, 7.0 )"];case 3005:return["RGBM","( value, 16.0 )"];case 3006:return["RGBD","( value, 256.0 )"];case 3007:return["Gamma","( value, float( GAMMA_FACTOR ) )"];default:throw Error("unsupported encoding: "+c);}}function xd(c,g){var n=Le(g);return"vec4 "+c+"( vec4 value ) { return "+n[0]+"ToLinear"+n[1]+"; }"}function ed(c,g){var n=Le(g);return"vec4 "+c+"( vec4 value ) { return LinearTo"+n[0]+n[1]+"; }"}function zf(c,g){var n;switch(g){case 1:n="Linear";break;case 2:n="Reinhard";break;case 3:n="Uncharted2";break;case 4:n="OptimizedCineon";break;default:throw Error("unsupported toneMapping: "+g);}return"vec3 "+c+"( vec3 color ) { return "+n+"ToneMapping( color ); }"}function og(c,g,n){c=c||{};return[c.derivatives||g.envMapCubeUV||g.bumpMap||g.normalMap&&!g.objectSpaceNormalMap||g.flatShading?"#extension GL_OES_standard_derivatives : enable":"",(c.fragDepth||g.logarithmicDepthBuffer)&&n.get("EXT_frag_depth")?"#extension GL_EXT_frag_depth : enable":"",c.drawBuffers&&n.get("WEBGL_draw_buffers")?"#extension GL_EXT_draw_buffers : require":"",(c.shaderTextureLOD||g.envMap)&&n.get("EXT_shader_texture_lod")?"#extension GL_EXT_shader_texture_lod : enable":""].filter(sb).join("\n")}function Me(c){var g=[],n;for(n in c){var a=c[n];!1!==a&&g.push("#define "+n+" "+a)}return g.join("\n")}function sb(c){return""!==c}function sa(c,g){return c.replace(/NUM_DIR_LIGHTS/g,g.numDirLights).replace(/NUM_SPOT_LIGHTS/g,g.numSpotLights).replace(/NUM_RECT_AREA_LIGHTS/g,g.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,g.numPointLights).replace(/NUM_HEMI_LIGHTS/g,g.numHemiLights)}function Ba(c,g){return c.replace(/NUM_CLIPPING_PLANES/g,g.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,g.numClippingPlanes-g.numClipIntersection)}function tb(c){return c.replace(/^[ \t]*#include +<([\w\d./]+)>/gm,function(c,n){var g=Ca[n];if(void 0===g)throw Error("Can not resolve #include \x3c"+n+"\x3e");return tb(g)})}function Xa(c){return c.replace(/#pragma unroll_loop[\s]+?for \( int i \= (\d+)\; i < (\d+)\; i \+\+ \) \{([\s\S]+?)(?=\})\}/g,function(c,n,a,y){c="";for(n=parseInt(n);n<parseInt(a);n++)c+=y.replace(/\[ i \]/g,"[ "+n+" ]");return c})}function xa(c,g,n,a,y,b,d){var t=c.context,e=a.defines,I=y.vertexShader,f=y.fragmentShader,h="SHADOWMAP_TYPE_BASIC";1===b.shadowMapType?h="SHADOWMAP_TYPE_PCF":2===b.shadowMapType&&(h="SHADOWMAP_TYPE_PCF_SOFT");var O="ENVMAP_TYPE_CUBE",k="ENVMAP_MODE_REFLECTION",l="ENVMAP_BLENDING_MULTIPLY";if(b.envMap){switch(a.envMap.mapping){case 301:case 302:O="ENVMAP_TYPE_CUBE";break;case 306:case 307:O="ENVMAP_TYPE_CUBE_UV";break;case 303:case 304:O="ENVMAP_TYPE_EQUIREC";break;case 305:O="ENVMAP_TYPE_SPHERE"}switch(a.envMap.mapping){case 302:case 304:k="ENVMAP_MODE_REFRACTION"}switch(a.combine){case 0:l="ENVMAP_BLENDING_MULTIPLY";break;case 1:l="ENVMAP_BLENDING_MIX";break;case 2:l="ENVMAP_BLENDING_ADD"}}var z=0<c.gammaFactor?c.gammaFactor:1,u=d.isWebGL2?"":og(a.extensions,b,g),m=Me(e),p=t.createProgram();a.isRawShaderMaterial?(e=[m].filter(sb).join("\n"),0<e.length&&(e+="\n"),g=[u,m].filter(sb).join("\n"),0<g.length&&(g+="\n")):(e=["precision "+b.precision+" float;","precision "+b.precision+" int;","#define SHADER_NAME "+y.name,m,b.supportsVertexTextures?"#define VERTEX_TEXTURES":"","#define GAMMA_FACTOR "+z,"#define MAX_BONES "+b.maxBones,b.useFog&&b.fog?"#define USE_FOG":"",b.useFog&&b.fogExp?"#define FOG_EXP2":"",b.map?"#define USE_MAP":"",b.envMap?"#define USE_ENVMAP":"",b.envMap?"#define "+k:"",b.lightMap?"#define USE_LIGHTMAP":"",b.aoMap?"#define USE_AOMAP":"",b.emissiveMap?"#define USE_EMISSIVEMAP":"",b.bumpMap?"#define USE_BUMPMAP":"",b.normalMap?"#define USE_NORMALMAP":"",b.normalMap&&b.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",b.displacementMap&&b.supportsVertexTextures?"#define USE_DISPLACEMENTMAP":"",b.specularMap?"#define USE_SPECULARMAP":"",b.roughnessMap?"#define USE_ROUGHNESSMAP":"",b.metalnessMap?"#define USE_METALNESSMAP":"",b.alphaMap?"#define USE_ALPHAMAP":"",b.vertexColors?"#define USE_COLOR":"",b.flatShading?"#define FLAT_SHADED":"",b.skinning?"#define USE_SKINNING":"",b.useVertexTexture?"#define BONE_TEXTURE":"",b.morphTargets?"#define USE_MORPHTARGETS":"",b.morphNormals&&!1===b.flatShading?"#define USE_MORPHNORMALS":"",b.doubleSided?"#define DOUBLE_SIDED":"",b.flipSided?"#define FLIP_SIDED":"",b.shadowMapEnabled?"#define USE_SHADOWMAP":"",b.shadowMapEnabled?"#define "+h:"",b.sizeAttenuation?"#define USE_SIZEATTENUATION":"",b.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",b.logarithmicDepthBuffer&&(d.isWebGL2||g.get("EXT_frag_depth"))?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_COLOR","\tattribute vec3 color;","#endif","#ifdef USE_MORPHTARGETS","\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(sb).join("\n"),g=[u,"precision "+b.precision+" float;","precision "+b.precision+" int;","#define SHADER_NAME "+y.name,m,b.alphaTest?"#define ALPHATEST "+b.alphaTest+(b.alphaTest%1?"":".0"):"","#define GAMMA_FACTOR "+z,b.useFog&&b.fog?"#define USE_FOG":"",b.useFog&&b.fogExp?"#define FOG_EXP2":"",b.map?"#define USE_MAP":"",b.envMap?"#define USE_ENVMAP":"",b.envMap?"#define "+O:"",b.envMap?"#define "+k:"",b.envMap?"#define "+l:"",b.lightMap?"#define USE_LIGHTMAP":"",b.aoMap?"#define USE_AOMAP":"",b.emissiveMap?"#define USE_EMISSIVEMAP":"",b.bumpMap?"#define USE_BUMPMAP":"",b.normalMap?"#define USE_NORMALMAP":"",b.normalMap&&b.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",b.specularMap?"#define USE_SPECULARMAP":"",b.roughnessMap?"#define USE_ROUGHNESSMAP":"",b.metalnessMap?"#define USE_METALNESSMAP":"",b.alphaMap?"#define USE_ALPHAMAP":"",b.vertexColors?"#define USE_COLOR":"",b.gradientMap?"#define USE_GRADIENTMAP":"",b.flatShading?"#define FLAT_SHADED":"",b.doubleSided?"#define DOUBLE_SIDED":"",b.flipSided?"#define FLIP_SIDED":"",b.shadowMapEnabled?"#define USE_SHADOWMAP":"",b.shadowMapEnabled?"#define "+h:"",b.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",b.physicallyCorrectLights?"#define PHYSICALLY_CORRECT_LIGHTS":"",b.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",b.logarithmicDepthBuffer&&(d.isWebGL2||g.get("EXT_frag_depth"))?"#define USE_LOGDEPTHBUF_EXT":"",b.envMap&&(d.isWebGL2||g.get("EXT_shader_texture_lod"))?"#define TEXTURE_LOD_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;",0!==b.toneMapping?"#define TONE_MAPPING":"",0!==b.toneMapping?Ca.tonemapping_pars_fragment:"",0!==b.toneMapping?zf("toneMapping",b.toneMapping):"",b.dithering?"#define DITHERING":"",b.outputEncoding||b.mapEncoding||b.matcapEncoding||b.envMapEncoding||b.emissiveMapEncoding?Ca.encodings_pars_fragment:"",b.mapEncoding?xd("mapTexelToLinear",b.mapEncoding):"",b.matcapEncoding?xd("matcapTexelToLinear",b.matcapEncoding):"",b.envMapEncoding?xd("envMapTexelToLinear",b.envMapEncoding):"",b.emissiveMapEncoding?xd("emissiveMapTexelToLinear",b.emissiveMapEncoding):"",b.outputEncoding?ed("linearToOutputTexel",b.outputEncoding):"",b.depthPacking?"#define DEPTH_PACKING "+a.depthPacking:"","\n"].filter(sb).join("\n"));I=tb(I);I=sa(I,b);I=Ba(I,b);f=tb(f);f=sa(f,b);f=Ba(f,b);I=Xa(I);f=Xa(f);d.isWebGL2&&!a.isRawShaderMaterial&&(d=!1,h=/^\s*#version\s+300\s+es\s*\n/,a.isShaderMaterial&&null!==I.match(h)&&null!==f.match(h)&&(d=!0,I=I.replace(h,""),f=f.replace(h,"")),e="#version 300 es\n\n#define attribute in\n#define varying out\n#define texture2D texture\n"+e,g=["#version 300 es\n\n#define varying in",d?"":"out highp vec4 pc_fragColor;",d?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth\n#define texture2D texture\n#define textureCube texture\n#define texture2DProj textureProj\n#define texture2DLodEXT textureLod\n#define texture2DProjLodEXT textureProjLod\n#define textureCubeLodEXT textureLod\n#define texture2DGradEXT textureGrad\n#define texture2DProjGradEXT textureProjGrad\n#define textureCubeGradEXT textureGrad"].join("\n")+"\n"+g);f=g+f;I=Yb(t,t.VERTEX_SHADER,e+I);f=Yb(t,t.FRAGMENT_SHADER,f);t.attachShader(p,I);t.attachShader(p,f);void 0!==a.index0AttributeName?t.bindAttribLocation(p,0,a.index0AttributeName):!0===b.morphTargets&&t.bindAttribLocation(p,0,"position");t.linkProgram(p);b=t.getProgramInfoLog(p).trim();d=t.getShaderInfoLog(I).trim();h=t.getShaderInfoLog(f).trim();k=O=!0;if(!1===t.getProgramParameter(p,t.LINK_STATUS))O=!1,console.error("GLE.WebGLProgram: shader error: ",t.getError(),"gl.VALIDATE_STATUS",t.getProgramParameter(p,t.VALIDATE_STATUS),"gl.getProgramInfoLog",b,d,h);else if(""!==b)console.warn("GLE.WebGLProgram: gl.getProgramInfoLog()",b);else if(""===d||""===h)k=!1;k&&(this.diagnostics={runnable:O,material:a,programLog:b,vertexShader:{log:d,prefix:e},fragmentShader:{log:h,prefix:g}});t.deleteShader(I);t.deleteShader(f);var v;this.getUniforms=function(){void 0===v&&(v=new Xb(t,p,c));return v};var r;this.getAttributes=function(){if(void 0===r){for(var c={},g=t.getProgramParameter(p,t.ACTIVE_ATTRIBUTES),n=0;n<g;n++){var a=t.getActiveAttrib(p,n).name;c[a]=t.getAttribLocation(p,a)}r=c}return r};this.destroy=function(){t.deleteProgram(p);this.program=void 0};Object.defineProperties(this,{uniforms:{get:function(){console.warn("GLE.WebGLProgram: .uniforms is now .getUniforms().");return this.getUniforms()}},attributes:{get:function(){console.warn("GLE.WebGLProgram: .attributes is now .getAttributes().");return this.getAttributes()}}});this.name=y.name;this.id=qh++;this.code=n;this.usedTimes=1;this.program=p;this.vertexShader=I;this.fragmentShader=f;return this}function pg(c,g,n){function a(c,g){var n;c?c.isTexture?n=c.encoding:c.isWt&&(console.warn("GLE.WebGLPrograms.getTextureEncodingFromMap: don't use render targets as textures. Use their .texture property instead."),n=c.texture.encoding):n=3E3;3E3===n&&g&&(n=3007);return n}var b=[],d={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",Mal:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"phong",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"},e="precision supportsVertexTextures map mapEncoding matcapEncoding envMap envMapMode envMapEncoding lightMap aoMap emissiveMap emissiveMapEncoding bumpMap normalMap objectSpaceNormalMap displacementMap specularMap roughnessMap metalnessMap gradientMap alphaMap combine vertexColors fog useFog fogExp flatShading sizeAttenuation logarithmicDepthBuffer skinning maxBones useVertexTexture morphTargets morphNormals maxMorphTargets maxMorphNormals premultipliedAlpha numDirLights numPointLights numSpotLights numHemiLights numRectAreaLights shadowMapEnabled shadowMapType toneMapping physicallyCorrectLights alphaTest doubleSided flipSided numClippingPlanes numClipIntersection depthPacking dithering".split(" ");this.getParameters=function(g,t,b,y,e,I,f){var h=d[g.type],O;if(f.isSkinnedMesh)if(O=f.skeleton.bones,n.floatVertexTextures)O=1024;else{var k=Math.min(Math.floor((n.maxVertexUniforms-20)/4),O.length);k<O.length?(console.warn("GLE.Wr: Skeleton has "+O.length+" bones. This GPU supports "+k+"."),O=0):O=k}else O=0;k=n.precision;null!==g.precision&&(k=n.getMaxPrecision(g.precision),k!==g.precision&&console.warn("GLE.WebGLProgram.getParameters:",g.precision,"not supported, using",k,"instead."));var l=c.getRenderTarget();return{shaderID:h,precision:k,supportsVertexTextures:n.vertexTextures,outputEncoding:a(l?l.texture:null,c.gammaOutput),map:!!g.map,mapEncoding:a(g.map,c.gammaInput),matcap:!!g.matcap,matcapEncoding:a(g.matcap,c.gammaInput),envMap:!!g.envMap,envMapMode:g.envMap&&g.envMap.mapping,envMapEncoding:a(g.envMap,c.gammaInput),envMapCubeUV:!!g.envMap&&(306===g.envMap.mapping||307===g.envMap.mapping),lightMap:!!g.lightMap,aoMap:!!g.aoMap,emissiveMap:!!g.emissiveMap,emissiveMapEncoding:a(g.emissiveMap,c.gammaInput),bumpMap:!!g.bumpMap,normalMap:!!g.normalMap,objectSpaceNormalMap:1===g.normalMapType,displacementMap:!!g.displacementMap,roughnessMap:!!g.roughnessMap,metalnessMap:!!g.metalnessMap,specularMap:!!g.specularMap,alphaMap:!!g.alphaMap,gradientMap:!!g.gradientMap,combine:g.combine,vertexColors:g.vertexColors,fog:!!y,useFog:g.fog,fogExp:y&&y.isFogExp2,flatShading:g.flatShading,sizeAttenuation:g.sizeAttenuation,logarithmicDepthBuffer:n.logarithmicDepthBuffer,skinning:g.skinning&&0<O,maxBones:O,useVertexTexture:n.floatVertexTextures,morphTargets:g.morphTargets,morphNormals:g.morphNormals,maxMorphTargets:c.maxMorphTargets,maxMorphNormals:c.maxMorphNormals,numDirLights:t.directional.length,numPointLights:t.point.length,numSpotLights:t.spot.length,numRectAreaLights:t.rectArea.length,numHemiLights:t.hemi.length,numClippingPlanes:e,numClipIntersection:I,dithering:g.dithering,shadowMapEnabled:c.shadowMap.enabled&&f.receiveShadow&&0<b.length,shadowMapType:c.shadowMap.type,toneMapping:c.toneMapping,physicallyCorrectLights:c.physicallyCorrectLights,premultipliedAlpha:g.premultipliedAlpha,alphaTest:g.alphaTest,doubleSided:2===g.side,flipSided:1===g.side,depthPacking:void 0!==g.depthPacking?g.depthPacking:!1}};this.getProgramCode=function(g,n){var a=[];n.shaderID?a.push(n.shaderID):(a.push(g.fragmentShader),a.push(g.vertexShader));if(void 0!==g.defines)for(var t in g.defines)a.push(t),a.push(g.defines[t]);for(t=0;t<e.length;t++)a.push(n[e[t]]);a.push(g.onBeforeCompile.toString());a.push(c.gammaOutput);return a.join()};this.acquireProgram=function(a,t,y,d){for(var e,I=0,f=b.length;I<f;I++){var h=b[I];if(h.code===d){e=h;++e.usedTimes;break}}void 0===e&&(e=new xa(c,g,d,a,t,y,n),b.push(e));return e};this.releaseProgram=function(c){if(0===--c.usedTimes){var g=b.indexOf(c);b[g]=b[b.length-1];b.pop();c.destroy()}};this.programs=b}function Sc(){var c=new WeakMap;return{get:function(g){var n=c.get(g);void 0===n&&(n={},c.set(g,n));return n},remove:function(g){c["delete"](g)},update:function(g,n,a){c.get(g)[n]=a},dispose:function(){c=new WeakMap}}}function fd(c,g){return c.renderOrder!==g.renderOrder?c.renderOrder-g.renderOrder:c.program&&g.program&&c.program!==g.program?c.program.id-g.program.id:c.material.id!==g.material.id?c.material.id-g.material.id:c.z!==g.z?c.z-g.z:c.id-g.id}function Zb(c,g){return c.renderOrder!==g.renderOrder?c.renderOrder-g.renderOrder:c.z!==g.z?g.z-c.z:c.id-g.id}function mb(){var c=[],g=0,n=[],a=[];return{opaque:n,transparent:a,init:function(){g=0;n.length=0;a.length=0},push:function(t,b,d,e,f){var y=c[g];void 0===y?(y={id:t.id,object:t,geometry:b,material:d,program:d.program,renderOrder:t.renderOrder,z:e,group:f},c[g]=y):(y.id=t.id,y.object=t,y.geometry=b,y.material=d,y.program=d.program,y.renderOrder=t.renderOrder,y.z=e,y.group=f);(!0===d.transparent?a:n).push(y);g++},sort:function(){1<n.length&&n.sort(fd);1<a.length&&a.sort(Zb)}}}function wi(){var c={};return{get:function(g,n){var a=g.id+","+n.id,b=c[a];void 0===b&&(b=new mb,c[a]=b);return b},dispose:function(){c={}}}}function Ec(){var c={};return{get:function(g){if(void 0!==c[g.id])return c[g.id];var n;switch(g.type){case "Dt":n={direction:new h,color:new u,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new d};break;case "SpotLight":n={position:new h,direction:new h,color:new u,distance:0,coneCos:0,penumbraCos:0,decay:0,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new d};break;case "PointLight":n={position:new h,color:new u,distance:0,decay:0,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new d,shadowCameraNear:1,shadowCameraFar:1E3};break;case "HemisphereLight":n={direction:new h,skyColor:new u,groundColor:new u};break;case "RectAreaLight":n={color:new u,position:new h,halfWidth:new h,halfHeight:new h}}return c[g.id]=n}}}function pb(){var c=new Ec,g={id:Rj++,hash:{stateID:-1,directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,shadowsLength:-1},ambient:[0,0,0],directional:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotShadowMap:[],spotShadowMatrix:[],rectArea:[],point:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[]},n=new h,a=new e,b=new e;return{setup:function(t,y,d){var e=0,I=0,f=0,h=0,O=0,k=0,l=0,ea=0;d=d.matrixWorldInverse;for(var z=0,u=t.length;z<u;z++){var p=t[z],m=p.color,v=p.intensity,r=p.distance,E=p.shadow&&p.shadow.map?p.shadow.map.texture:null;if(p.isAmbientLight)e+=m.r*v,I+=m.g*v,f+=m.b*v;else if(p.isDt){var q=c.get(p);q.color.copy(p.color).multiplyScalar(p.intensity);q.direction.setFromMatrixPosition(p.matrixWorld);n.setFromMatrixPosition(p.target.matrixWorld);q.direction.sub(n);q.direction.transformDirection(d);if(q.shadow=p.castShadow)m=p.shadow,q.shadowBias=m.bias,q.shadowRadius=m.radius,q.shadowMapSize=m.mapSize;g.directionalShadowMap[h]=E;g.directionalShadowMatrix[h]=p.shadow.matrix;g.directional[h]=q;h++}else if(p.isSpotLight){q=c.get(p);q.position.setFromMatrixPosition(p.matrixWorld);q.position.applyMatrix4(d);q.color.copy(m).multiplyScalar(v);q.distance=r;q.direction.setFromMatrixPosition(p.matrixWorld);n.setFromMatrixPosition(p.target.matrixWorld);q.direction.sub(n);q.direction.transformDirection(d);q.coneCos=Math.cos(p.angle);q.penumbraCos=Math.cos(p.angle*(1-p.penumbra));q.decay=0===p.distance?0:p.decay;if(q.shadow=p.castShadow)m=p.shadow,q.shadowBias=m.bias,q.shadowRadius=m.radius,q.shadowMapSize=m.mapSize;g.spotShadowMap[k]=E;g.spotShadowMatrix[k]=p.shadow.matrix;g.spot[k]=q;k++}else if(p.isRectAreaLight)q=c.get(p),q.color.copy(m).multiplyScalar(v),q.position.setFromMatrixPosition(p.matrixWorld),q.position.applyMatrix4(d),b.identity(),a.copy(p.matrixWorld),a.premultiply(d),b.extractRotation(a),q.halfWidth.set(.5*p.width,0,0),q.halfHeight.set(0,.5*p.height,0),q.halfWidth.applyMatrix4(b),q.halfHeight.applyMatrix4(b),g.rectArea[l]=q,l++;else if(p.isPointLight){q=c.get(p);q.position.setFromMatrixPosition(p.matrixWorld);q.position.applyMatrix4(d);q.color.copy(p.color).multiplyScalar(p.intensity);q.distance=p.distance;q.decay=0===p.distance?0:p.decay;if(q.shadow=p.castShadow)m=p.shadow,q.shadowBias=m.bias,q.shadowRadius=m.radius,q.shadowMapSize=m.mapSize,q.shadowCameraNear=m.camera.near,q.shadowCameraFar=m.camera.far;g.pointShadowMap[O]=E;g.pointShadowMatrix[O]=p.shadow.matrix;g.point[O]=q;O++}else p.isHemisphereLight&&(q=c.get(p),q.direction.setFromMatrixPosition(p.matrixWorld),q.direction.transformDirection(d),q.direction.normalize(),q.skyColor.copy(p.color).multiplyScalar(v),q.groundColor.copy(p.groundColor).multiplyScalar(v),g.hemi[ea]=q,ea++)}g.ambient[0]=e;g.ambient[1]=I;g.ambient[2]=f;g.directional.length=h;g.spot.length=k;g.rectArea.length=l;g.point.length=O;g.hemi.length=ea;g.hash.stateID=g.id;g.hash.directionalLength=h;g.hash.pointLength=O;g.hash.spotLength=k;g.hash.rectAreaLength=l;g.hash.hemiLength=ea;g.hash.shadowsLength=y.length},state:g}}function Wa(){var c=new pb,g=[],n=[];return{init:function(){g.length=0;n.length=0},state:{lightsArray:g,shadowsArray:n,lights:c},setupLights:function(a){c.setup(g,n,a)},pushLight:function(c){g.push(c)},pushShadow:function(c){n.push(c)}}}function xi(){var c={};return{get:function(g,n){var a;void 0===c[g.id]?(a=new Wa,c[g.id]={},c[g.id][n.id]=a):void 0===c[g.id][n.id]?(a=new Wa,c[g.id][n.id]=a):a=c[g.id][n.id];return a},dispose:function(){c={}}}}function Bb(c){S.call(this);this.type="MeshDepthMaterial";this.depthPacking=3200;this.morphTargets=this.skinning=!1;this.displacementMap=this.alphaMap=this.map=null;this.displacementScale=1;this.displacementBias=0;this.wireframe=!1;this.wireframeLinewidth=1;this.lights=this.fog=!1;this.setValues(c)}function Ib(c){S.call(this);this.type="MeshDistanceMaterial";this.referencePosition=new h;this.nearDistance=1;this.farDistance=1E3;this.morphTargets=this.skinning=!1;this.displacementMap=this.alphaMap=this.map=null;this.displacementScale=1;this.displacementBias=0;this.lights=this.fog=!1;this.setValues(c)}function rh(c,g,n){function a(g,n,a,t,b,y){var d=g.geometry,e;e=u;var I=g.customDepthMaterial;a&&(e=v,I=g.customDistanceMaterial);I?e=I:(I=!1,n.morphTargets&&(d&&d.isBufferGeometry?I=d.morphAttributes&&d.morphAttributes.position&&0<d.morphAttributes.position.length:d&&d.isGeometry&&(I=d.morphTargets&&0<d.morphTargets.length)),g.isSkinnedMesh&&!1===n.skinning&&console.warn("GLE.WebGLShadowMap: GLE.SkinnedMesh with material.skinning set to false:",g),g=g.isSkinnedMesh&&n.skinning,d=0,I&&(d|=1),g&&(d|=2),e=e[d]);c.ld&&!0===n.clipShadows&&0!==n.cs.length&&(d=e.uuid,I=n.uuid,g=E[d],void 0===g&&(g={},E[d]=g),d=g[I],void 0===d&&(d=e.clone(),g[I]=d),e=d);e.visible=n.visible;e.wireframe=n.wireframe;e.side=null!=n.shadowSide?n.shadowSide:C[n.side];e.clipShadows=n.clipShadows;e.cs=n.cs;e.clipIntersection=n.clipIntersection;e.wireframeLinewidth=n.wireframeLinewidth;e.linewidth=n.linewidth;a&&e.isMeshDistanceMaterial&&(e.referencePosition.copy(t),e.nearDistance=b,e.farDistance=y);return e}function b(n,t,y,d){if(!1!==n.visible){if(n.layers.test(t.layers)&&(n.isMesh||n.isLine||n.isPoints)&&n.castShadow&&(!n.frustumCulled||I.intersectsObject(n))){n.modelViewMatrix.multiplyMatrices(y.matrixWorldInverse,n.matrixWorld);var e=g.update(n),f=n.material;if(Array.isArray(f))for(var h=e.groups,O=0,k=h.length;O<k;O++){var l=h[O],ea=f[l.materialIndex];ea&&ea.visible&&(ea=a(n,ea,d,m,y.near,y.far),c.renderBufferDirect(y,null,e,ea,n,l))}else f.visible&&(ea=a(n,f,d,m,y.near,y.far),c.renderBufferDirect(y,null,e,ea,n,null))}n=n.children;e=0;for(f=n.length;e<f;e++)b(n[e],t,y,d)}}var I=new k,f=new e,l=new d,p=new d(n,n),z=new h,m=new h,u=Array(4),v=Array(4),E={},C={0:1,1:0,2:2},w=[new h(1,0,0),new h(-1,0,0),new h(0,0,1),new h(0,0,-1),new h(0,1,0),new h(0,-1,0)],B=[new h(0,1,0),new h(0,1,0),new h(0,1,0),new h(0,1,0),new h(0,0,1),new h(0,0,-1)],D=[new r,new r,new r,new r,new r,new r];for(n=0;4!==n;++n){var J=0!==(n&1),x=0!==(n&2),A=new Bb({depthPacking:3201,morphTargets:J,skinning:x});u[n]=A;J=new Ib({morphTargets:J,skinning:x});v[n]=J}var X=this;this.enabled=!1;this.autoUpdate=!0;this.needsUpdate=!1;this.type=1;this.render=function(g,n,a){if(!1!==X.enabled&&(!1!==X.autoUpdate||!1!==X.needsUpdate)&&0!==g.length){var t=c.state;t.disable(c.context.BLEND);t.buffers.color.setClear(1,1,1,1);t.buffers.depth.setTest(!0);t.setScissorTest(!1);for(var y,d=0,e=g.length;d<e;d++){var h=g[d];y=h.shadow;var O=h&&h.isPointLight;if(void 0===y)console.warn("GLE.WebGLShadowMap:",h,"has no shadow.");else{var k=y.camera;l.copy(y.mapSize);l.min(p);if(O){var ea=l.x,ma=l.y;D[0].set(2*ea,ma,ea,ma);D[1].set(0,ma,ea,ma);D[2].set(3*ea,ma,ea,ma);D[3].set(ea,ma,ea,ma);D[4].set(3*ea,0,ea,ma);D[5].set(ea,0,ea,ma);l.x*=4;l.y*=2}null===y.map&&(y.map=new q(l.x,l.y,{minFilter:1003,magFilter:1003,format:1023}),y.map.texture.name=h.name+".shadowMap",k.ux());y.isSpotLightShadow&&y.update(h);ea=y.map;ma=y.matrix;m.setFromMatrixPosition(h.matrixWorld);k.position.copy(m);O?(y=6,ma.makeTranslation(-m.x,-m.y,-m.z)):(y=1,z.setFromMatrixPosition(h.target.matrixWorld),k.lookAt(z),k.uld(),ma.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),ma.multiply(k.projectionMatrix),ma.multiply(k.matrixWorldInverse));c.setRenderTarget(ea);c.clear();for(h=0;h<y;h++)O&&(z.copy(k.position),z.add(w[h]),k.up.copy(B[h]),k.lookAt(z),k.uld(),t.viewport(D[h])),f.multiplyMatrices(k.projectionMatrix,k.matrixWorldInverse),I.setFromMatrix(f),b(n,a,k,O)}}X.needsUpdate=!1}}}function yi(c,g,n,a){function t(g,n,a){var t=new Uint8Array(4),b=c.createTexture();c.bindTexture(g,b);c.texParameteri(g,c.TEXTURE_MIN_FILTER,c.NEAREST);c.texParameteri(g,c.TEXTURE_MAG_FILTER,c.NEAREST);for(g=0;g<a;g++)c.texImage2D(n+g,0,c.RGBA,1,1,0,c.RGBA,c.UNSIGNED_BYTE,t);return b}function b(n,t){q[n]=1;0===E[n]&&(c.enableVertexAttribArray(n),E[n]=1);C[n]!==t&&((a.isWebGL2?c:g.get("ANGLE_instanced_arrays"))[a.isWebGL2?"vertexAttribDivisor":"vertexAttribDivisorANGLE"](n,t),C[n]=t)}function d(g){!0!==w[g]&&(c.enable(g),w[g]=!0)}function e(g){!1!==w[g]&&(c.disable(g),w[g]=!1)}function f(g,a,t,b,y,I,f,h){if(0===g)J&&(e(c.BLEND),J=!1);else if(J||(d(c.BLEND),J=!0),5!==g){if(g!==x||h!==K){if(100!==A||100!==sa)c.blendEquation(c.FUNC_ADD),sa=A=100;if(h)switch(g){case 1:c.blendFuncSeparate(c.ONE,c.ONE_MINUS_SRC_ALPHA,c.ONE,c.ONE_MINUS_SRC_ALPHA);break;case 2:c.blendFunc(c.ONE,c.ONE);break;case 3:c.blendFuncSeparate(c.ZERO,c.ZERO,c.ONE_MINUS_SRC_COLOR,c.ONE_MINUS_SRC_ALPHA);break;case 4:c.blendFuncSeparate(c.ZERO,c.SRC_COLOR,c.ZERO,c.SRC_ALPHA);break;default:console.error("GLE.WebGLState: Invalid blending: ",g)}else switch(g){case 1:c.blendFuncSeparate(c.SRC_ALPHA,c.ONE_MINUS_SRC_ALPHA,c.ONE,c.ONE_MINUS_SRC_ALPHA);break;case 2:c.blendFunc(c.SRC_ALPHA,c.ONE);break;case 3:c.blendFunc(c.ZERO,c.ONE_MINUS_SRC_COLOR);break;case 4:c.blendFunc(c.ZERO,c.SRC_COLOR);break;default:console.error("GLE.WebGLState: Invalid blending: ",g)}fa=la=G=X=null;x=g;K=h}}else{y=y||a;I=I||t;f=f||b;if(a!==A||y!==sa)c.blendEquationSeparate(n.convert(a),n.convert(y)),A=a,sa=y;if(t!==X||b!==G||I!==la||f!==fa)c.blendFuncSeparate(n.convert(t),n.convert(b),n.convert(I),n.convert(f)),X=t,G=b,la=I,fa=f;x=g;K=null}}function h(g){xa!==g&&(g?c.frontFace(c.CW):c.frontFace(c.CCW),xa=g)}function k(g){0!==g?(d(c.CULL_FACE),g!==F&&(1===g?c.cullFace(c.BACK):2===g?c.cullFace(c.FRONT):c.cullFace(c.FRONT_AND_BACK))):e(c.CULL_FACE);F=g}function l(g,n,a){if(g){if(d(c.POLYGON_OFFSET_FILL),Ba!==n||ua!==a)c.polygonOffset(n,a),Ba=n,ua=a}else e(c.POLYGON_OFFSET_FILL)}function p(g){void 0===g&&(g=c.TEXTURE0+Sc-1);tb!==g&&(c.activeTexture(g),tb=g)}var z=new function(){var g=!1,n=new r,a=null,t=new r(0,0,0,0);return{setMask:function(n){a===n||g||(c.colorMask(n,n,n,n),a=n)},setLocked:function(c){g=c},setClear:function(g,a,b,y,d){!0===d&&(g*=y,a*=y,b*=y);n.set(g,a,b,y);!1===t.equals(n)&&(c.clearColor(g,a,b,y),t.copy(n))},reset:function(){g=!1;a=null;t.set(-1,0,0,0)}}},m=new function(){var g=!1,n=null,a=null,t=null;return{setTest:function(g){g?d(c.DEPTH_TEST):e(c.DEPTH_TEST)},setMask:function(a){n===a||g||(c.depthMask(a),n=a)},setFunc:function(g){if(a!==g){if(g)switch(g){case 0:c.depthFunc(c.NEVER);break;case 1:c.depthFunc(c.ALWAYS);break;case 2:c.depthFunc(c.LESS);break;case 3:c.depthFunc(c.LEQUAL);break;case 4:c.depthFunc(c.EQUAL);break;case 5:c.depthFunc(c.GEQUAL);break;case 6:c.depthFunc(c.GREATER);break;case 7:c.depthFunc(c.NOTEQUAL);break;default:c.depthFunc(c.LEQUAL)}else c.depthFunc(c.LEQUAL);a=g}},setLocked:function(c){g=c},setClear:function(g){t!==g&&(c.clearDepth(g),t=g)},reset:function(){g=!1;t=a=n=null}}},u=new function(){var g=!1,n=null,a=null,t=null,b=null,y=null,I=null,f=null,h=null;return{setTest:function(g){g?d(c.STENCIL_TEST):e(c.STENCIL_TEST)},setMask:function(a){n===a||g||(c.stencilMask(a),n=a)},setFunc:function(g,n,y){if(a!==g||t!==n||b!==y)c.stencilFunc(g,n,y),a=g,t=n,b=y},setOp:function(g,n,a){if(y!==g||I!==n||f!==a)c.stencilOp(g,n,a),y=g,I=n,f=a},setLocked:function(c){g=c},setClear:function(g){h!==g&&(c.clearStencil(g),h=g)},reset:function(){g=!1;h=f=I=y=b=t=a=n=null}}},v=c.getParameter(c.MAX_VERTEX_ATTRIBS),q=new Uint8Array(v),E=new Uint8Array(v),C=new Uint8Array(v),w={},B=null,D=null,J=null,x=null,A=null,X=null,G=null,sa=null,la=null,fa=null,K=!1,xa=null,F=null,W=null,Ba=null,ua=null,Sc=c.getParameter(c.MAX_COMBINED_TEXTURE_IMAGE_UNITS),ba=!1,v=0,v=c.getParameter(c.VERSION);-1!==v.indexOf("WebGL")?(v=parseFloat(/^WebGL\ ([0-9])/.exec(v)[1]),ba=1<=v):-1!==v.indexOf("OpenGL ES")&&(v=parseFloat(/^OpenGL\ ES\ ([0-9])/.exec(v)[1]),ba=2<=v);var tb=null,Xa={},T=new r,ca=new r,L={};L[c.TEXTURE_2D]=t(c.TEXTURE_2D,c.TEXTURE_2D,1);L[c.TEXTURE_CUBE_MAP]=t(c.TEXTURE_CUBE_MAP,c.TEXTURE_CUBE_MAP_POSITIVE_X,6);z.setClear(0,0,0,1);m.setClear(1);u.setClear(0);d(c.DEPTH_TEST);m.setFunc(3);h(!1);k(1);d(c.CULL_FACE);f(0);return{buffers:{color:z,depth:m,stencil:u},initAttributes:function(){for(var c=0,g=q.length;c<g;c++)q[c]=0},enableAttribute:function(c){b(c,0)},enableAttributeAndDivisor:b,disableUnusedAttributes:function(){for(var g=0,n=E.length;g!==n;++g)E[g]!==q[g]&&(c.disableVertexAttribArray(g),E[g]=0)},enable:d,disable:e,getCompressedTextureFormats:function(){if(null===B&&(B=[],g.get("WEBGL_compressed_texture_pvrtc")||g.get("WEBGL_compressed_texture_s3tc")||g.get("WEBGL_compressed_texture_etc1")||g.get("WEBGL_compressed_texture_astc")))for(var n=c.getParameter(c.COMPRESSED_TEXTURE_FORMATS),a=0;a<n.length;a++)B.push(n[a]);return B},useProgram:function(g){return D!==g?(c.useProgram(g),D=g,!0):!1},setBlending:f,setMaterial:function(g,n){2===g.side?e(c.CULL_FACE):d(c.CULL_FACE);var a=1===g.side;n&&(a=!a);h(a);1===g.blending&&!1===g.transparent?f(0):f(g.blending,g.blendEquation,g.blendSrc,g.blendDst,g.blendEquationAlpha,g.blendSrcAlpha,g.blendDstAlpha,g.premultipliedAlpha);m.setFunc(g.depthFunc);m.setTest(g.depthTest);m.setMask(g.depthWrite);z.setMask(g.colorWrite);l(g.polygonOffset,g.polygonOffsetFactor,g.polygonOffsetUnits)},setFlipSided:h,setCullFace:k,setLineWidth:function(g){g!==W&&(ba&&c.lineWidth(g),W=g)},setPolygonOffset:l,setScissorTest:function(g){g?d(c.SCISSOR_TEST):e(c.SCISSOR_TEST)},activeTexture:p,bindTexture:function(g,n){null===tb&&p();var a=Xa[tb];void 0===a&&(a={type:void 0,texture:void 0},Xa[tb]=a);if(a.type!==g||a.texture!==n)c.bindTexture(g,n||L[g]),a.type=g,a.texture=n},compressedTexImage2D:function(){try{c.compressedTexImage2D.apply(c,arguments)}catch(Af){console.error("GLE.WebGLState:",Af)}},texImage2D:function(){try{c.texImage2D.apply(c,arguments)}catch(Af){console.error("GLE.WebGLState:",Af)}},texImage3D:function(){try{c.texImage3D.apply(c,arguments)}catch(Af){console.error("GLE.WebGLState:",Af)}},scissor:function(g){!1===T.equals(g)&&(c.scissor(g.x,g.y,g.z,g.w),T.copy(g))},viewport:function(g){!1===ca.equals(g)&&(c.viewport(g.x,g.y,g.z,g.w),ca.copy(g))},reset:function(){for(var g=0;g<E.length;g++)1===E[g]&&(c.disableVertexAttribArray(g),E[g]=0);w={};tb=B=null;Xa={};F=xa=x=D=null;z.reset();m.reset();u.reset()}}}function zi(c,g,n,a,b,d,e){function t(c,g){if(c.width>g||c.height>g){if("data"in c){console.warn("GLE.Wr: image in DataTexture is too big ("+c.width+"x"+c.height+").");return}var n=g/Math.max(c.width,c.height),a=document.createElementNS("http://www.w3.org/1999/xhtml","canvas");a.width=Math.floor(c.width*n);a.height=Math.floor(c.height*n);a.getContext("2d").drawImage(c,0,0,c.width,c.height,0,0,a.width,a.height);console.warn("GLE.Wr: image is too big ("+c.width+"x"+c.height+"). Resized to "+a.width+"x"+a.height);return a}return c}function y(c){return Aa.isPowerOfTwo(c.width)&&Aa.isPowerOfTwo(c.height)}function f(c,g){return c.generateMipmaps&&g&&1003!==c.minFilter&&1006!==c.minFilter}function I(g,n,t,b){c.generateMipmap(g);a.get(n).__maxMipLevel=Math.log(Math.max(t,b))*Math.LOG2E}function h(g,n){if(!b.isWebGL2)return g;if(g===c.RED){if(n===c.FLOAT)return c.R32F;if(n===c.HALF_FLOAT)return c.R16F;if(n===c.UNSIGNED_BYTE)return c.R8}if(g===c.RGB){if(n===c.FLOAT)return c.RGB32F;if(n===c.HALF_FLOAT)return c.RGB16F;if(n===c.UNSIGNED_BYTE)return c.RGB8}if(g===c.RGBA){if(n===c.FLOAT)return c.RGBA32F;if(n===c.HALF_FLOAT)return c.RGBA16F;if(n===c.UNSIGNED_BYTE)return c.RGBA8}return g}function O(g){return 1003===g||1004===g||1005===g?c.NEAREST:c.LINEAR}function k(g){g=g.target;g.removeEventListener("dispose",k);a:{var n=a.get(g);if(g.image&&n.__image__webglTextureCube)c.deleteTexture(n.__image__webglTextureCube);else{if(void 0===n.__webglInit)break a;c.deleteTexture(n.__webglTexture)}a.remove(g)}g.isVideoTexture&&delete q[g.id];e.memory.textures--}function l(g){g=g.target;g.removeEventListener("dispose",l);var n=a.get(g),t=a.get(g.texture);if(g){void 0!==t.__webglTexture&&c.deleteTexture(t.__webglTexture);g.depthTexture&&g.depthTexture.dispose();if(g.isWtCube)for(t=0;6>t;t++)c.deleteFramebuffer(n.__webglFramebuffer[t]),n.__webglDepthbuffer&&c.deleteRenderbuffer(n.__webglDepthbuffer[t]);else c.deleteFramebuffer(n.__webglFramebuffer),n.__webglDepthbuffer&&c.deleteRenderbuffer(n.__webglDepthbuffer);a.remove(g.texture);a.remove(g)}e.memory.textures--}function p(g,t){var b=a.get(g);if(g.isVideoTexture){var y=g.id,d=e.render.frame;q[y]!==d&&(q[y]=d,g.update())}if(0<g.version&&b.__version!==g.version)if(y=g.image,void 0===y)console.warn("GLE.Wr: Texture marked for update but image is undefined");else if(!1===y.complete)console.warn("GLE.Wr: Texture marked for update but image is incomplete");else{m(b,g,t);return}n.activeTexture(c.TEXTURE0+t);n.bindTexture(c.TEXTURE_2D,b.__webglTexture)}function z(n,t,y){y?(c.texParameteri(n,c.TEXTURE_WRAP_S,d.convert(t.wrapS)),c.texParameteri(n,c.TEXTURE_WRAP_T,d.convert(t.wrapT)),c.texParameteri(n,c.TEXTURE_MAG_FILTER,d.convert(t.magFilter)),c.texParameteri(n,c.TEXTURE_MIN_FILTER,d.convert(t.minFilter))):(c.texParameteri(n,c.TEXTURE_WRAP_S,c.CLAMP_TO_EDGE),c.texParameteri(n,c.TEXTURE_WRAP_T,c.CLAMP_TO_EDGE),1001===t.wrapS&&1001===t.wrapT||console.warn("GLE.Wr: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to GLE.ClampToEdgeWrapping."),c.texParameteri(n,c.TEXTURE_MAG_FILTER,O(t.magFilter)),c.texParameteri(n,c.TEXTURE_MIN_FILTER,O(t.minFilter)),1003!==t.minFilter&&1006!==t.minFilter&&console.warn("GLE.Wr: Texture is not power of two. Texture.minFilter should be set to GLE.Nr or GLE.LinearFilter."));!(y=g.get("EXT_texture_filter_anisotropic"))||1015===t.type&&null===g.get("OES_texture_float_linear")||1016===t.type&&null===(b.isWebGL2||g.get("OES_texture_half_float_linear"))||!(1<t.anisotropy||a.get(t).__currentAnisotropy)||(c.texParameterf(n,y.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(t.anisotropy,b.getMaxAnisotropy())),a.get(t).__currentAnisotropy=t.anisotropy)}function m(g,a,O){var l;l=a.isTexture3D?c.TEXTURE_3D:c.TEXTURE_2D;void 0===g.__webglInit&&(g.__webglInit=!0,a.addEventListener("dispose",k),g.__webglTexture=c.createTexture(),e.memory.textures++);n.activeTexture(c.TEXTURE0+O);n.bindTexture(l,g.__webglTexture);c.pixelStorei(c.UNPACK_FLIP_Y_WEBGL,a.flipY);c.pixelStorei(c.UNPACK_PREMULTIPLY_ALPHA_WEBGL,a.premultiplyAlpha);c.pixelStorei(c.UNPACK_ALIGNMENT,a.unpackAlignment);O=t(a.image,b.maxTextureSize);var ea;ea=b.isWebGL2?!1:1001!==a.wrapS||1001!==a.wrapT||1003!==a.minFilter&&1006!==a.minFilter;ea&&!1===y(O)&&(O instanceof HTMLImageElement||O instanceof HTMLCanvasElement||O instanceof ImageBitmap)&&(void 0===r&&(r=document.createElementNS("http://www.w3.org/1999/xhtml","canvas")),r.width=Aa.floorPowerOfTwo(O.width),r.height=Aa.floorPowerOfTwo(O.height),r.getContext("2d").drawImage(O,0,0,r.width,r.height),O=r);ea=y(O);var p=d.convert(a.format),ma=d.convert(a.type),m=h(p,ma);z(l,a,ea);var u=a.mipmaps;if(a.isDepthTexture){m=c.DEPTH_COMPONENT;if(1015===a.type){if(!b.isWebGL2)throw Error("Float Depth Texture only supported in WebGL2.0");m=c.DEPTH_COMPONENT32F}else b.isWebGL2&&(m=c.DEPTH_COMPONENT16);1026===a.format&&m===c.DEPTH_COMPONENT&&1012!==a.type&&1014!==a.type&&(console.warn("GLE.Wr: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),a.type=1012,ma=d.convert(a.type));1027===a.format&&(m=c.DEPTH_STENCIL,1020!==a.type&&(console.warn("GLE.Wr: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),a.type=1020,ma=d.convert(a.type)));n.texImage2D(c.TEXTURE_2D,0,m,O.width,O.height,0,p,ma,null)}else if(a.isDataTexture)if(0<u.length&&ea){for(var v=0,q=u.length;v<q;v++)l=u[v],n.texImage2D(c.TEXTURE_2D,v,m,l.width,l.height,0,p,ma,l.data);a.generateMipmaps=!1;g.__maxMipLevel=u.length-1}else n.texImage2D(c.TEXTURE_2D,0,m,O.width,O.height,0,p,ma,O.data),g.__maxMipLevel=0;else if(a.isCompressedTexture){v=0;for(q=u.length;v<q;v++)l=u[v],1023!==a.format&&1022!==a.format?-1<n.getCompressedTextureFormats().indexOf(p)?n.compressedTexImage2D(c.TEXTURE_2D,v,m,l.width,l.height,0,l.data):console.warn("GLE.Wr: Attempt to load unsupported compressed texture format in .uploadTexture()"):n.texImage2D(c.TEXTURE_2D,v,m,l.width,l.height,0,p,ma,l.data);g.__maxMipLevel=u.length-1}else if(a.isTexture3D)n.texImage3D(c.TEXTURE_3D,0,m,O.width,O.height,O.depth,0,p,ma,O.data),g.__maxMipLevel=0;else if(0<u.length&&ea){v=0;for(q=u.length;v<q;v++)l=u[v],n.texImage2D(c.TEXTURE_2D,v,m,p,ma,l);a.generateMipmaps=!1;g.__maxMipLevel=u.length-1}else n.texImage2D(c.TEXTURE_2D,0,m,p,ma,O),g.__maxMipLevel=0;f(a,ea)&&I(c.TEXTURE_2D,a,O.width,O.height);g.__version=a.version;if(a.onUpdate)a.onUpdate(a)}function u(g,t,b,y){var e=d.convert(t.texture.format),f=d.convert(t.texture.type),I=h(e,f);n.texImage2D(y,0,I,t.width,t.height,0,e,f,null);c.bindFramebuffer(c.FRAMEBUFFER,g);c.framebufferTexture2D(c.FRAMEBUFFER,b,y,a.get(t.texture).__webglTexture,0);c.bindFramebuffer(c.FRAMEBUFFER,null)}function v(g,n){c.bindRenderbuffer(c.RENDERBUFFER,g);n.depthBuffer&&!n.stencilBuffer?(c.renderbufferStorage(c.RENDERBUFFER,c.DEPTH_COMPONENT16,n.width,n.height),c.framebufferRenderbuffer(c.FRAMEBUFFER,c.DEPTH_ATTACHMENT,c.RENDERBUFFER,g)):n.depthBuffer&&n.stencilBuffer?(c.renderbufferStorage(c.RENDERBUFFER,c.DEPTH_STENCIL,n.width,n.height),c.framebufferRenderbuffer(c.FRAMEBUFFER,c.DEPTH_STENCIL_ATTACHMENT,c.RENDERBUFFER,g)):c.renderbufferStorage(c.RENDERBUFFER,c.RGBA4,n.width,n.height);c.bindRenderbuffer(c.RENDERBUFFER,null)}var q={},r;this.setTexture2D=p;this.setTexture3D=function(g,t){var b=a.get(g);0<g.version&&b.__version!==g.version?m(b,g,t):(n.activeTexture(c.TEXTURE0+t),n.bindTexture(c.TEXTURE_3D,b.__webglTexture))};this.setTextureCube=function(g,O){var l=a.get(g);if(6===g.image.length)if(0<g.version&&l.__version!==g.version){l.__image__webglTextureCube||(g.addEventListener("dispose",k),l.__image__webglTextureCube=c.createTexture(),e.memory.textures++);n.activeTexture(c.TEXTURE0+O);n.bindTexture(c.TEXTURE_CUBE_MAP,l.__image__webglTextureCube);c.pixelStorei(c.UNPACK_FLIP_Y_WEBGL,g.flipY);for(var ea=g&&g.isCompressedTexture,p=g.image[0]&&g.image[0].isDataTexture,ma=[],m=0;6>m;m++)ma[m]=ea||p?p?g.image[m].image:g.image[m]:t(g.image[m],b.maxCubemapSize);var u=ma[0],v=y(u),q=d.convert(g.format),r=d.convert(g.type),E=h(q,r);z(c.TEXTURE_CUBE_MAP,g,v);for(m=0;6>m;m++)if(ea)for(var Tb,C=ma[m].mipmaps,w=0,Gb=C.length;w<Gb;w++)Tb=C[w],1023!==g.format&&1022!==g.format?-1<n.getCompressedTextureFormats().indexOf(q)?n.compressedTexImage2D(c.TEXTURE_CUBE_MAP_POSITIVE_X+m,w,E,Tb.width,Tb.height,0,Tb.data):console.warn("GLE.Wr: Attempt to load unsupported compressed texture format in .setTextureCube()"):n.texImage2D(c.TEXTURE_CUBE_MAP_POSITIVE_X+m,w,E,Tb.width,Tb.height,0,q,r,Tb.data);else p?n.texImage2D(c.TEXTURE_CUBE_MAP_POSITIVE_X+m,0,E,ma[m].width,ma[m].height,0,q,r,ma[m].data):n.texImage2D(c.TEXTURE_CUBE_MAP_POSITIVE_X+m,0,E,q,r,ma[m]);l.__maxMipLevel=ea?C.length-1:0;f(g,v)&&I(c.TEXTURE_CUBE_MAP,g,u.width,u.height);l.__version=g.version;if(g.onUpdate)g.onUpdate(g)}else n.activeTexture(c.TEXTURE0+O),n.bindTexture(c.TEXTURE_CUBE_MAP,l.__image__webglTextureCube)};this.setTextureCubeDynamic=function(g,t){n.activeTexture(c.TEXTURE0+t);n.bindTexture(c.TEXTURE_CUBE_MAP,a.get(g).__webglTexture)};this.setupRenderTarget=function(g){var t=a.get(g),b=a.get(g.texture);g.addEventListener("dispose",l);b.__webglTexture=c.createTexture();e.memory.textures++;var d=!0===g.isWtCube,h=y(g);if(d){t.__webglFramebuffer=[];for(var O=0;6>O;O++)t.__webglFramebuffer[O]=c.createFramebuffer()}else t.__webglFramebuffer=c.createFramebuffer();if(d){n.bindTexture(c.TEXTURE_CUBE_MAP,b.__webglTexture);z(c.TEXTURE_CUBE_MAP,g.texture,h);for(O=0;6>O;O++)u(t.__webglFramebuffer[O],g,c.COLOR_ATTACHMENT0,c.TEXTURE_CUBE_MAP_POSITIVE_X+O);f(g.texture,h)&&I(c.TEXTURE_CUBE_MAP,g.texture,g.width,g.height);n.bindTexture(c.TEXTURE_CUBE_MAP,null)}else n.bindTexture(c.TEXTURE_2D,b.__webglTexture),z(c.TEXTURE_2D,g.texture,h),u(t.__webglFramebuffer,g,c.COLOR_ATTACHMENT0,c.TEXTURE_2D),f(g.texture,h)&&I(c.TEXTURE_2D,g.texture,g.width,g.height),n.bindTexture(c.TEXTURE_2D,null);if(g.depthBuffer){t=a.get(g);b=!0===g.isWtCube;if(g.depthTexture){if(b)throw Error("target.depthTexture not supported in Cube render targets");if(g&&g.isWtCube)throw Error("Depth Texture with cube render targets is not supported");c.bindFramebuffer(c.FRAMEBUFFER,t.__webglFramebuffer);if(!g.depthTexture||!g.depthTexture.isDepthTexture)throw Error("renderTarget.depthTexture must be an instance of GLE.DepthTexture");a.get(g.depthTexture).__webglTexture&&g.depthTexture.image.width===g.width&&g.depthTexture.image.height===g.height||(g.depthTexture.image.width=g.width,g.depthTexture.image.height=g.height,g.depthTexture.needsUpdate=!0);p(g.depthTexture,0);t=a.get(g.depthTexture).__webglTexture;if(1026===g.depthTexture.format)c.framebufferTexture2D(c.FRAMEBUFFER,c.DEPTH_ATTACHMENT,c.TEXTURE_2D,t,0);else if(1027===g.depthTexture.format)c.framebufferTexture2D(c.FRAMEBUFFER,c.DEPTH_STENCIL_ATTACHMENT,c.TEXTURE_2D,t,0);else throw Error("Unknown depthTexture format");}else if(b)for(t.__webglDepthbuffer=[],b=0;6>b;b++)c.bindFramebuffer(c.FRAMEBUFFER,t.__webglFramebuffer[b]),t.__webglDepthbuffer[b]=c.createRenderbuffer(),v(t.__webglDepthbuffer[b],g);else c.bindFramebuffer(c.FRAMEBUFFER,t.__webglFramebuffer),t.__webglDepthbuffer=c.createRenderbuffer(),v(t.__webglDepthbuffer,g);c.bindFramebuffer(c.FRAMEBUFFER,null)}};this.updateRenderTargetMipmap=function(g){var t=g.texture,b=y(g);if(f(t,b)){var b=g.isWtCube?c.TEXTURE_CUBE_MAP:c.TEXTURE_2D,d=a.get(t).__webglTexture;n.bindTexture(b,d);I(b,t,g.width,g.height);n.bindTexture(b,null)}}}function uh(c,g,n){return{convert:function(a){var t;if(1E3===a)return c.REPEAT;if(1001===a)return c.CLAMP_TO_EDGE;if(1002===a)return c.MIRRORED_REPEAT;if(1003===a)return c.NEAREST;if(1004===a)return c.NEAREST_MIPMAP_NEAREST;if(1005===a)return c.NEAREST_MIPMAP_LINEAR;if(1006===a)return c.LINEAR;if(1007===a)return c.LINEAR_MIPMAP_NEAREST;if(1008===a)return c.LINEAR_MIPMAP_LINEAR;if(1009===a)return c.UNSIGNED_BYTE;if(1017===a)return c.UNSIGNED_SHORT_4_4_4_4;if(1018===a)return c.UNSIGNED_SHORT_5_5_5_1;if(1019===a)return c.UNSIGNED_SHORT_5_6_5;if(1010===a)return c.BYTE;if(1011===a)return c.SHORT;if(1012===a)return c.UNSIGNED_SHORT;if(1013===a)return c.INT;if(1014===a)return c.UNSIGNED_INT;if(1015===a)return c.FLOAT;if(1016===a){if(n.isWebGL2)return c.HALF_FLOAT;t=g.get("OES_texture_half_float");if(null!==t)return t.HALF_FLOAT_OES}if(1021===a)return c.ALPHA;if(1022===a)return c.RGB;if(1023===a)return c.RGBA;if(1024===a)return c.LUMINANCE;if(1025===a)return c.LUMINANCE_ALPHA;if(1026===a)return c.DEPTH_COMPONENT;if(1027===a)return c.DEPTH_STENCIL;if(1028===a)return c.RED;if(100===a)return c.FUNC_ADD;if(101===a)return c.FUNC_SUBTRACT;if(102===a)return c.FUNC_REVERSE_SUBTRACT;if(200===a)return c.ZERO;if(201===a)return c.ONE;if(202===a)return c.SRC_COLOR;if(203===a)return c.ONE_MINUS_SRC_COLOR;if(204===a)return c.SRC_ALPHA;if(205===a)return c.ONE_MINUS_SRC_ALPHA;if(206===a)return c.DST_ALPHA;if(207===a)return c.ONE_MINUS_DST_ALPHA;if(208===a)return c.DST_COLOR;if(209===a)return c.ONE_MINUS_DST_COLOR;if(210===a)return c.SRC_ALPHA_SATURATE;if(33776===a||33777===a||33778===a||33779===a)if(t=g.get("WEBGL_compressed_texture_s3tc"),null!==t){if(33776===a)return t.COMPRESSED_RGB_S3TC_DXT1_EXT;if(33777===a)return t.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(33778===a)return t.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(33779===a)return t.COMPRESSED_RGBA_S3TC_DXT5_EXT}if(35840===a||35841===a||35842===a||35843===a)if(t=g.get("WEBGL_compressed_texture_pvrtc"),null!==t){if(35840===a)return t.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(35841===a)return t.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(35842===a)return t.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(35843===a)return t.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(36196===a&&(t=g.get("WEBGL_compressed_texture_etc1"),null!==t))return t.COMPRESSED_RGB_ETC1_WEBGL;if(37808===a||37809===a||37810===a||37811===a||37812===a||37813===a||37814===a||37815===a||37816===a||37817===a||37818===a||37819===a||37820===a||37821===a)if(t=g.get("WEBGL_compressed_texture_astc"),null!==t)return a;if(103===a||104===a){if(n.isWebGL2){if(103===a)return c.MIN;if(104===a)return c.MAX}t=g.get("EXT_blend_minmax");if(null!==t){if(103===a)return t.MIN_EXT;if(104===a)return t.MAX_EXT}}if(1020===a){if(n.isWebGL2)return c.UNSIGNED_INT_24_8;t=g.get("WEBGL_depth_texture");if(null!==t)return t.UNSIGNED_INT_24_8_WEBGL}return 0}}}function $b(){F.call(this);this.type="Group"}function nb(){F.call(this);this.type="Camera";this.matrixWorldInverse=new e;this.projectionMatrix=new e;this.projectionMatrixInverse=new e}function Ra(c,g,n,a){nb.call(this);this.type="Pa";this.fov=void 0!==c?c:50;this.zoom=1;this.near=void 0!==n?n:.1;this.far=void 0!==a?a:2E3;this.focus=10;this.aspect=void 0!==g?g:1;this.view=null;this.filmGauge=35;this.filmOffset=0;this.ux()}function Ne(c){Ra.call(this);this.cameras=c||[]}function Zd(c){function g(){return null!==b&&!0===b.isPresenting}function n(){if(g()){var n=b.getEyeParameters("left"),t=n.renderWidth,n=n.renderHeight;D=c.getPixelRatio();B=c.getSize();c.setDrawingBufferSize(2*t,n,1);x.start()}else a.enabled&&c.setDrawingBufferSize(B.width,B.height,D),x.stop()}var a=this,b=null,d=null,O=null,k=[],l=new e,m=new e,z="stage";"undefined"!==typeof window&&"VRFrameData"in window&&(d=new window.VRFrameData,window.addEventListener("vrdisplaypresentchange",n,!1));var u=new e,v=new f,q=new h,E=new Ra;E.bounds=new r(0,0,.5,1);E.layers.enable(1);var C=new Ra;C.bounds=new r(.5,0,.5,1);C.layers.enable(2);var w=new Ne([E,C]);w.layers.enable(1);w.layers.enable(2);var B,D,J=[];this.enabled=!1;this.getController=function(c){var g=k[c];void 0===g&&(g=new $b,g.matrixAutoUpdate=!1,g.visible=!1,k[c]=g);return g};this.getDevice=function(){return b};this.setDevice=function(c){void 0!==c&&(b=c);x.setContext(c)};this.setFrameOfReferenceType=function(c){z=c};this.setPoseTarget=function(c){void 0!==c&&(O=c)};this.getCamera=function(c){var g="stage"===z?1.6:0;if(null===b)return c.position.set(0,g,0),c;b.depthNear=c.near;b.depthFar=c.far;b.getFrameData(d);if("stage"===z){var n=b.stageParameters;n?l.fromArray(n.sittingToStandingTransform):l.makeTranslation(0,g,0)}g=d.pose;n=null!==O?O:c;n.matrix.copy(l);n.matrix.decompose(n.position,n.quaternion,n.scale);null!==g.orientation&&(v.fromArray(g.orientation),n.quaternion.multiply(v));null!==g.position&&(v.setFromRotationMatrix(l),q.fromArray(g.position),q.applyQuaternion(v),n.position.add(q));n.uld();if(!1===b.isPresenting)return c;E.near=c.near;C.near=c.near;E.far=c.far;C.far=c.far;w.matrixWorld.copy(c.matrixWorld);w.matrixWorldInverse.copy(c.matrixWorldInverse);E.matrixWorldInverse.fromArray(d.leftViewMatrix);C.matrixWorldInverse.fromArray(d.rightViewMatrix);m.getInverse(l);"stage"===z&&(E.matrixWorldInverse.multiply(m),C.matrixWorldInverse.multiply(m));c=n.parent;null!==c&&(u.getInverse(c.matrixWorld),E.matrixWorldInverse.multiply(u),C.matrixWorldInverse.multiply(u));E.matrixWorld.getInverse(E.matrixWorldInverse);C.matrixWorld.getInverse(C.matrixWorldInverse);E.projectionMatrix.fromArray(d.leftProjectionMatrix);C.projectionMatrix.fromArray(d.rightProjectionMatrix);w.projectionMatrix.copy(E.projectionMatrix);c=b.getLayers();c.length&&(c=c[0],null!==c.leftBounds&&4===c.leftBounds.length&&E.bounds.fromArray(c.leftBounds),null!==c.rightBounds&&4===c.rightBounds.length&&C.bounds.fromArray(c.rightBounds));a:for(c=0;c<k.length;c++){g=k[c];b:{for(var n=c,a=navigator.getGamepads&&navigator.getGamepads(),t=0,y=0,e=a.length;t<e;t++){var f=a[t];if(f&&("Daydream Controller"===f.id||"Gear VR Controller"===f.id||"Oculus Go Controller"===f.id||"OpenVR Gamepad"===f.id||f.id.startsWith("Oculus Touch")||f.id.startsWith("Spatial Controller"))){if(y===n){n=f;break b}y++}}n=void 0}if(void 0!==n&&void 0!==n.pose){if(null===n.pose)break a;a=n.pose;!1===a.hasPosition&&g.position.set(.2,-.6,-.05);null!==a.position&&g.position.fromArray(a.position);null!==a.orientation&&g.quaternion.fromArray(a.orientation);g.matrix.compose(g.position,g.quaternion,g.scale);g.matrix.premultiply(l);g.matrix.decompose(g.position,g.quaternion,g.scale);g.mte=!0;g.visible=!0;a="Daydream Controller"===n.id?0:1;J[c]!==n.buttons[a].pressed&&(J[c]=n.buttons[a].pressed,!0===J[c]?g.dispatchEvent({type:"selectstart"}):(g.dispatchEvent({type:"selectend"}),g.dispatchEvent({type:"select"})))}else g.visible=!1}return w};this.getStandingMatrix=function(){return l};this.isPresenting=g;var x=new p;this.setAnimationLoop=function(c){x.setAnimationLoop(c)};this.submitFrame=function(){g()&&b.submitFrame()};this.dispose=function(){"undefined"!==typeof window&&window.removeEventListener("vrdisplaypresentchange",n)}}function Sj(c){function g(){return null!==f&&null!==h}function n(c){var g=m[z.indexOf(c.inputSource)];g&&g.dispatchEvent({type:c.type})}function a(){c.setFramebuffer(null);C.stop()}function b(c,g){null===g?c.matrixWorld.copy(c.matrix):c.matrixWorld.multiplyMatrices(g.matrixWorld,c.matrix);c.matrixWorldInverse.getInverse(c.matrixWorld)}var d=c.context,e=null,f=null,h=null,k="stage",l=null,m=[],z=[],u=new Ra;u.layers.enable(1);u.viewport=new r;var v=new Ra;v.layers.enable(2);v.viewport=new r;var q=new Ne([u,v]);q.layers.enable(1);q.layers.enable(2);this.enabled=!1;this.getController=function(c){var g=m[c];void 0===g&&(g=new $b,g.matrixAutoUpdate=!1,g.visible=!1,m[c]=g);return g};this.getDevice=function(){return e};this.setDevice=function(c){void 0!==c&&(e=c);c instanceof XRDevice&&d.setCompatibleXRDevice(c)};this.setFrameOfReferenceType=function(c){k=c};this.setSession=function(g){f=g;null!==f&&(f.addEventListener("select",n),f.addEventListener("selectstart",n),f.addEventListener("selectend",n),f.addEventListener("end",a),f.baseLayer=new XRWebGLLayer(f,d),f.requestFrameOfReference(k).then(function(g){h=g;c.setFramebuffer(f.baseLayer.framebuffer);C.setContext(f);C.start()}),z=f.getInputSources(),f.addEventListener("inputsourceschange",function(){z=f.getInputSources();console.log(z)}))};this.getCamera=function(c){if(g()){var n=c.parent,a=q.cameras;b(q,n);for(var t=0;t<a.length;t++)b(a[t],n);c.matrixWorld.copy(q.matrixWorld);c=c.children;t=0;for(n=c.length;t<n;t++)c[t].uld(!0);return q}return c};this.isPresenting=g;var E=null,C=new p;C.setAnimationLoop(function(c,g){l=g.getDevicePose(h);if(null!==l)for(var n=f.baseLayer,a=g.views,t=0;t<a.length;t++){var b=a[t],y=n.getViewport(b),d=l.getViewMatrix(b),e=q.cameras[t];e.matrix.fromArray(d).getInverse(e.matrix);e.projectionMatrix.fromArray(b.projectionMatrix);e.viewport.set(y.x,y.y,y.width,y.height);0===t&&(q.matrix.copy(e.matrix),q.projectionMatrix.copy(e.projectionMatrix))}for(t=0;t<m.length;t++){n=m[t];if(a=z[t])if(a=g.getInputPose(a,h),null!==a){"targetRay"in a?n.matrix.elements=a.targetRay.transformMatrix:"pointerMatrix"in a&&(n.matrix.elements=a.pointerMatrix);n.matrix.decompose(n.position,n.rotation,n.scale);n.visible=!0;continue}n.visible=!1}E&&E(c)});this.setAnimationLoop=function(c){E=c};this.dispose=function(){};this.getStandingMatrix=function(){console.warn("GLE.WebXRManager: getStandingMatrix() is no longer needed.");return new GLE.Matrix4};this.submitFrame=function(){}}function Tc(c){var g,n,a;function b(){ja=new ua(U);pb=new X(U,ja,c);pb.isWebGL2||(ja.get("WEBGL_depth_texture"),ja.get("OES_texture_float"),ja.get("OES_texture_half_float"),ja.get("OES_texture_half_float_linear"),ja.get("OES_standard_derivatives"),ja.get("OES_element_index_uint"),ja.get("ANGLE_instanced_arrays"));ja.get("OES_texture_float_linear");Da=new uh(U,ja,pb);za=new yi(U,ja,Da,pb);za.scissor(Na.copy(Y).multiplyScalar(Ua));za.viewport(Z.copy(V).multiplyScalar(Ua));Ec=new fa(U);Wa=new Sc;ka=new zi(U,ja,za,Wa,pb,Da,Ec);Ma=new E(U);Ib=new z(U,Ma,Ec);Bb=new nh(Ib,Ec);Ca=new Ie(U);Va=new pg(ca,ja,pb);ra=new wi;$b=new xi;Ra=new Oa(ca,za,Bb,Ba);Tc=new Ea(U,ja,Ec,pb);Ha=new la(U,ja,Ec,pb);Ec.programs=Va.programs;ca.context=U;ca.capabilities=pb;ca.extensions=ja;ca.properties=Wa;ca.renderLists=ra;ca.state=za;ca.info=Ec}function d(c){c.preventDefault();console.log("GLE.Wr: Context Lost.");L=!0}function f(){console.log("GLE.Wr: Context Restored.");L=!1;b()}function l(c){c=c.target;c.removeEventListener("dispose",l);m(c);Wa.remove(c)}function m(c){var g=Wa.get(c).program;c.program=void 0;void 0!==g&&Va.releaseProgram(g)}function u(c,g){c.render(function(c){ca.renderBufferImmediate(c,g)})}function v(c,g,n){if(!1!==c.visible){if(c.layers.test(g.layers))if(c.isLight)T.pushLight(c),c.castShadow&&T.pushShadow(c);else if(c.isSprite){if(!c.frustumCulled||kb.intersectsSprite(c)){n&&ta.setFromMatrixPosition(c.matrixWorld).applyMatrix4(wa);var a=Bb.update(c),t=c.material;Xa.push(c,a,t,ta.z,null)}}else if(c.isImmediateRenderObject)n&&ta.setFromMatrixPosition(c.matrixWorld).applyMatrix4(wa),Xa.push(c,null,c.material,ta.z,null);else if(c.isMesh||c.isLine||c.isPoints)if(c.isSkinnedMesh&&c.skeleton.update(),!c.frustumCulled||kb.intersectsObject(c))if(n&&ta.setFromMatrixPosition(c.matrixWorld).applyMatrix4(wa),a=Bb.update(c),t=c.material,Array.isArray(t))for(var b=a.groups,y=0,d=b.length;y<d;y++){var e=b[y],f=t[e.materialIndex];f&&f.visible&&Xa.push(c,a,f,ta.z,e)}else t.visible&&Xa.push(c,a,t,ta.z,null);c=c.children;y=0;for(d=c.length;y<d;y++)v(c[y],g,n)}}function q(c,g,n,a){for(var t=0,b=c.length;t<b;t++){var y=c[t],d=y.object,e=y.geometry,f=void 0===a?y.material:a,y=y.group;if(n.isArrayCamera){fd=n;for(var I=n.cameras,h=0,O=I.length;h<O;h++){var k=I[h];if(d.layers.test(k.layers)){if("viewport"in k)za.viewport(Z.copy(k.viewport));else{var l=k.bounds;za.viewport(Z.set(l.x*na,l.y*Zb,l.z*na,l.w*Zb).multiplyScalar(Ua))}T.setupLights(k);C(d,g,k,e,f,y)}}}else fd=null,C(d,g,n,e,f,y)}}function C(c,t,b,y,d,e){c.onBeforeRender(ca,t,b,y,d,e);T=$b.get(t,fd||b);c.modelViewMatrix.multiplyMatrices(b.matrixWorldInverse,c.matrixWorld);c.normalMatrix.getNormalMatrix(c.modelViewMatrix);if(c.isImmediateRenderObject){za.setMaterial(d);var f=B(b,t.fog,d,c);n=g=null;a=!1;u(c,f)}else ca.renderBufferDirect(b,t.fog,y,d,c,e);c.onAfterRender(ca,t,b,y,d,e);T=$b.get(t,fd||b)}function w(c,g,n){var a=Wa.get(c),t=T.state.lights,b=a.lightsHash,y=t.state.hash;n=Va.getParameters(c,t.state,T.state.shadowsArray,g,S.numPlanes,S.numIntersection,n);var d=Va.getProgramCode(c,n),e=a.program,f=!0;if(void 0===e)c.addEventListener("dispose",l);else if(e.code!==d)m(c);else{if(b.stateID!==y.stateID||b.directionalLength!==y.directionalLength||b.pointLength!==y.pointLength||b.spotLength!==y.spotLength||b.rectAreaLength!==y.rectAreaLength||b.hemiLength!==y.hemiLength||b.shadowsLength!==y.shadowsLength)b.stateID=y.stateID,b.directionalLength=y.directionalLength,b.pointLength=y.pointLength,b.spotLength=y.spotLength,b.rectAreaLength=y.rectAreaLength,b.hemiLength=y.hemiLength,b.shadowsLength=y.shadowsLength;else if(void 0!==n.shaderID)return;f=!1}f&&(n.shaderID?(d=Dc[n.shaderID],a.shader={name:c.type,uniforms:qb.clone(d.uniforms),vertexShader:d.vertexShader,fragmentShader:d.fragmentShader}):a.shader={name:c.type,uniforms:c.uniforms,vertexShader:c.vertexShader,fragmentShader:c.fragmentShader},c.onBeforeCompile(a.shader,ca),d=Va.getProgramCode(c,n),e=Va.acquireProgram(c,a.shader,n,d),a.program=e,c.program=e);n=e.getAttributes();if(c.morphTargets)for(d=c.numSupportedMorphTargets=0;d<ca.maxMorphTargets;d++)0<=n["morphTarget"+d]&&c.numSupportedMorphTargets++;if(c.morphNormals)for(d=c.numSupportedMorphNormals=0;d<ca.maxMorphNormals;d++)0<=n["morphNormal"+d]&&c.numSupportedMorphNormals++;n=a.shader.uniforms;if(!c.isShaderMaterial&&!c.isRawShaderMaterial||!0===c.clipping)a.numClippingPlanes=S.numPlanes,a.numIntersection=S.numIntersection,n.cs=S.uniform;a.fog=g;void 0===b&&(a.lightsHash=b={});b.stateID=y.stateID;b.directionalLength=y.directionalLength;b.pointLength=y.pointLength;b.spotLength=y.spotLength;b.rectAreaLength=y.rectAreaLength;b.hemiLength=y.hemiLength;b.shadowsLength=y.shadowsLength;c.lights&&(n.ambientLightColor.value=t.state.ambient,n.directionalLights.value=t.state.directional,n.spotLights.value=t.state.spot,n.rectAreaLights.value=t.state.rectArea,n.pointLights.value=t.state.point,n.hemisphereLights.value=t.state.hemi,n.directionalShadowMap.value=t.state.directionalShadowMap,n.directionalShadowMatrix.value=t.state.directionalShadowMatrix,n.spotShadowMap.value=t.state.spotShadowMap,n.spotShadowMatrix.value=t.state.spotShadowMatrix,n.pointShadowMap.value=t.state.pointShadowMap,n.pointShadowMatrix.value=t.state.pointShadowMatrix);c=a.program.getUniforms();c=Xb.seqWithValue(c.seq,n);a.uniformsList=c}function B(c,g,n,a){N=0;var t=Wa.get(n),b=t.lightsHash,y=T.state.lights.state.hash;Q&&(ga||c!==R)&&S.setState(n.cs,n.clipIntersection,n.clipShadows,c,t,c===R&&n.id===ha);!1===n.needsUpdate&&(void 0===t.program?n.needsUpdate=!0:n.fog&&t.fog!==g?n.needsUpdate=!0:!n.lights||b.stateID===y.stateID&&b.directionalLength===y.directionalLength&&b.pointLength===y.pointLength&&b.spotLength===y.spotLength&&b.rectAreaLength===y.rectAreaLength&&b.hemiLength===y.hemiLength&&b.shadowsLength===y.shadowsLength?void 0===t.numClippingPlanes||t.numClippingPlanes===S.numPlanes&&t.numIntersection===S.numIntersection||(n.needsUpdate=!0):n.needsUpdate=!0);n.needsUpdate&&(w(n,g,a),n.needsUpdate=!1);var d=!1,e=!1,f=!1,b=t.program,y=b.getUniforms(),I=t.shader.uniforms;za.useProgram(b.program)&&(f=e=d=!0);n.id!==ha&&(ha=n.id,e=!0);if(d||R!==c){y.setValue(U,"projectionMatrix",c.projectionMatrix);pb.logarithmicDepthBuffer&&y.setValue(U,"logDepthBufFC",2/(Math.log(c.far+1)/Math.LN2));R!==c&&(R=c,f=e=!0);if(n.isShaderMaterial||n.isMeshPhongMaterial||n.isMeshStandardMaterial||n.envMap)d=y.map.cameraPosition,void 0!==d&&d.setValue(U,ta.setFromMatrixPosition(c.matrixWorld));(n.isMeshPhongMaterial||n.isMeshLambertMaterial||n.isMal||n.isMeshStandardMaterial||n.isShaderMaterial||n.skinning)&&y.setValue(U,"viewMatrix",c.matrixWorldInverse)}if(n.skinning&&(y.setOptional(U,a,"bindMatrix"),y.setOptional(U,a,"bindMatrixInverse"),c=a.skeleton))if(d=c.bones,pb.floatVertexTextures){if(void 0===c.boneTexture){var d=Math.sqrt(4*d.length),d=Aa.ceilPowerOfTwo(d),d=Math.max(d,4),h=new Float32Array(d*d*4);h.set(c.boneMatrices);var O=new G(h,d,d,1023,1015);O.needsUpdate=!0;c.boneMatrices=h;c.boneTexture=O;c.boneTextureSize=d}y.setValue(U,"boneTexture",c.boneTexture);y.setValue(U,"boneTextureSize",c.boneTextureSize)}else y.setOptional(U,c,"boneMatrices");e&&(y.setValue(U,"toneMappingExposure",ca.toneMappingExposure),y.setValue(U,"toneMappingWhitePoint",ca.toneMappingWhitePoint),n.lights&&(e=f,I.ambientLightColor.needsUpdate=e,I.directionalLights.needsUpdate=e,I.pointLights.needsUpdate=e,I.spotLights.needsUpdate=e,I.rectAreaLights.needsUpdate=e,I.hemisphereLights.needsUpdate=e),g&&n.fog&&(I.fogColor.value=g.color,g.isFog?(I.fogNear.value=g.near,I.fogFar.value=g.far):g.isFogExp2&&(I.fogDensity.value=g.density)),n.isMal?D(I,n):n.isMeshLambertMaterial?(D(I,n),n.emissiveMap&&(I.emissiveMap.value=n.emissiveMap)):n.isMeshPhongMaterial?(D(I,n),n.isMeshToonMaterial?(J(I,n),n.gradientMap&&(I.gradientMap.value=n.gradientMap)):J(I,n)):n.isMeshStandardMaterial?(D(I,n),n.isMeshPhysicalMaterial?(x(I,n),I.reflectivity.value=n.reflectivity,I.clearCoat.value=n.clearCoat,I.clearCoatRoughness.value=n.clearCoatRoughness):x(I,n)):n.isMeshMatcapMaterial?(D(I,n),n.matcap&&(I.matcap.value=n.matcap),n.bumpMap&&(I.bumpMap.value=n.bumpMap,I.bumpScale.value=n.bumpScale,1===n.side&&(I.bumpScale.value*=-1)),n.normalMap&&(I.normalMap.value=n.normalMap,I.normalScale.value.copy(n.normalScale),1===n.side&&I.normalScale.value.negate()),n.displacementMap&&(I.displacementMap.value=n.displacementMap,I.displacementScale.value=n.displacementScale,I.displacementBias.value=n.displacementBias)):n.isMeshDepthMaterial?(D(I,n),n.displacementMap&&(I.displacementMap.value=n.displacementMap,I.displacementScale.value=n.displacementScale,I.displacementBias.value=n.displacementBias)):n.isMeshDistanceMaterial?(D(I,n),n.displacementMap&&(I.displacementMap.value=n.displacementMap,I.displacementScale.value=n.displacementScale,I.displacementBias.value=n.displacementBias),I.referencePosition.value.copy(n.referencePosition),I.nearDistance.value=n.nearDistance,I.farDistance.value=n.farDistance):n.isMeshNormalMaterial?(D(I,n),n.bumpMap&&(I.bumpMap.value=n.bumpMap,I.bumpScale.value=n.bumpScale,1===n.side&&(I.bumpScale.value*=-1)),n.normalMap&&(I.normalMap.value=n.normalMap,I.normalScale.value.copy(n.normalScale),1===n.side&&I.normalScale.value.negate()),n.displacementMap&&(I.displacementMap.value=n.displacementMap,I.displacementScale.value=n.displacementScale,I.displacementBias.value=n.displacementBias)):n.isLineBasicMaterial?(I.diffuse.value=n.color,I.opacity.value=n.opacity,n.isLineDashedMaterial&&(I.dashSize.value=n.dashSize,I.totalSize.value=n.dashSize+n.gapSize,I.scale.value=n.scale)):n.isPointsMaterial?(I.diffuse.value=n.color,I.opacity.value=n.opacity,I.size.value=n.size*Ua,I.scale.value=.5*Zb,I.map.value=n.map,null!==n.map&&(!0===n.map.matrixAutoUpdate&&n.map.updateMatrix(),I.uvTransform.value.copy(n.map.matrix))):n.isSpriteMaterial?(I.diffuse.value=n.color,I.opacity.value=n.opacity,I.rotation.value=n.rotation,I.map.value=n.map,null!==n.map&&(!0===n.map.matrixAutoUpdate&&n.map.updateMatrix(),I.uvTransform.value.copy(n.map.matrix))):n.isShadowMaterial&&(I.color.value=n.color,I.opacity.value=n.opacity),void 0!==I.ltc_1&&(I.ltc_1.value=qa.LTC_1),void 0!==I.ltc_2&&(I.ltc_2.value=qa.LTC_2),Xb.upload(U,t.uniformsList,I,ca));n.isShaderMaterial&&!0===n.uniformsNeedUpdate&&(Xb.upload(U,t.uniformsList,I,ca),n.uniformsNeedUpdate=!1);n.isSpriteMaterial&&y.setValue(U,"center",a.center);y.setValue(U,"modelViewMatrix",a.modelViewMatrix);y.setValue(U,"normalMatrix",a.normalMatrix);y.setValue(U,"modelMatrix",a.matrixWorld);return b}function D(c,g){c.opacity.value=g.opacity;g.color&&(c.diffuse.value=g.color);g.emissive&&c.emissive.value.copy(g.emissive).multiplyScalar(g.emissiveIntensity);g.map&&(c.map.value=g.map);g.alphaMap&&(c.alphaMap.value=g.alphaMap);g.specularMap&&(c.specularMap.value=g.specularMap);g.envMap&&(c.envMap.value=g.envMap,c.flipEnvMap.value=g.envMap&&g.envMap.isCubeTexture?-1:1,c.reflectivity.value=g.reflectivity,c.refractionRatio.value=g.refractionRatio,c.maxMipLevel.value=Wa.get(g.envMap).__maxMipLevel);g.lightMap&&(c.lightMap.value=g.lightMap,c.lightMapIntensity.value=g.lightMapIntensity);g.aoMap&&(c.aoMap.value=g.aoMap,c.aoMapIntensity.value=g.aoMapIntensity);var n;g.map?n=g.map:g.specularMap?n=g.specularMap:g.displacementMap?n=g.displacementMap:g.normalMap?n=g.normalMap:g.bumpMap?n=g.bumpMap:g.roughnessMap?n=g.roughnessMap:g.metalnessMap?n=g.metalnessMap:g.alphaMap?n=g.alphaMap:g.emissiveMap&&(n=g.emissiveMap);void 0!==n&&(n.isWt&&(n=n.texture),!0===n.matrixAutoUpdate&&n.updateMatrix(),c.uvTransform.value.copy(n.matrix))}function J(c,g){c.specular.value=g.specular;c.shininess.value=Math.max(g.shininess,1E-4);g.emissiveMap&&(c.emissiveMap.value=g.emissiveMap);g.bumpMap&&(c.bumpMap.value=g.bumpMap,c.bumpScale.value=g.bumpScale,1===g.side&&(c.bumpScale.value*=-1));g.normalMap&&(c.normalMap.value=g.normalMap,c.normalScale.value.copy(g.normalScale),1===g.side&&c.normalScale.value.negate());g.displacementMap&&(c.displacementMap.value=g.displacementMap,c.displacementScale.value=g.displacementScale,c.displacementBias.value=g.displacementBias)}function x(c,g){c.roughness.value=g.roughness;c.metalness.value=g.metalness;g.roughnessMap&&(c.roughnessMap.value=g.roughnessMap);g.metalnessMap&&(c.metalnessMap.value=g.metalnessMap);g.emissiveMap&&(c.emissiveMap.value=g.emissiveMap);g.bumpMap&&(c.bumpMap.value=g.bumpMap,c.bumpScale.value=g.bumpScale,1===g.side&&(c.bumpScale.value*=-1));g.normalMap&&(c.normalMap.value=g.normalMap,c.normalScale.value.copy(g.normalScale),1===g.side&&c.normalScale.value.negate());g.displacementMap&&(c.displacementMap.value=g.displacementMap,c.displacementScale.value=g.displacementScale,c.displacementBias.value=g.displacementBias);g.envMap&&(c.envMapIntensity.value=g.envMapIntensity)}c=c||{};var A=void 0!==c.canvas?c.canvas:document.createElementNS("http://www.w3.org/1999/xhtml","canvas"),sa=void 0!==c.context?c.context:null,K=void 0!==c.alpha?c.alpha:!1,xa=void 0!==c.depth?c.depth:!0,F=void 0!==c.stencil?c.stencil:!0,W=void 0!==c.antialias?c.antialias:!1,Ba=void 0!==c.premultipliedAlpha?c.premultipliedAlpha:!0,tb=void 0!==c.preserveDrawingBuffer?c.preserveDrawingBuffer:!1,ba=void 0!==c.powerPreference?c.powerPreference:"default",Xa=null,T=null;this.domElement=A;this.context=null;this.sortObjects=this.autoClearStencil=this.autoClearDepth=this.autoClearColor=this.autoClear=!0;this.cs=[];this.ld=!1;this.gammaFactor=2;this.physicallyCorrectLights=this.gammaOutput=this.gammaInput=!1;this.toneMappingWhitePoint=this.toneMappingExposure=this.toneMapping=1;this.maxMorphTargets=8;this.maxMorphNormals=4;var ca=this,L=!1,H=null,M=null,aa=null,ha=-1;n=g=null;a=!1;var R=null,fd=null,Z=new r,Na=new r,mb=null,N=0,na=A.width,Zb=A.height,Ua=1,V=new r(0,0,na,Zb),Y=new r(0,0,na,Zb),da=!1,kb=new k,S=new Hb,Q=!1,ga=!1,wa=new e,ta=new h,U;try{K={alpha:K,depth:xa,stencil:F,antialias:W,premultipliedAlpha:Ba,preserveDrawingBuffer:tb,powerPreference:ba};A.addEventListener("webglcontextlost",d,!1);A.addEventListener("webglcontextrestored",f,!1);U=sa||A.getContext("webgl",K)||A.getContext("experimental-webgl",K);if(null===U){if(null!==A.getContext("webgl"))throw Error("Error creating WebGL context with your selected attributes.");throw Error("Error creating WebGL context.");}void 0===U.getShaderPrecisionFormat&&(U.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}})}catch(Tj){console.error("GLE.Wr: "+Tj.message)}var ja,pb,za,Ec,Wa,ka,Ma,Ib,Bb,Va,ra,$b,Ra,Ca,Tc,Ha,Da;b();var nb="xr"in navigator?new Sj(ca):new Zd(ca);this.vr=nb;var Sa=new rh(ca,Bb,pb.maxTextureSize);this.shadowMap=Sa;this.getContext=function(){return U};this.getContextAttributes=function(){return U.getContextAttributes()};this.forceContextLoss=function(){var c=ja.get("WEBGL_lose_context");c&&c.loseContext()};this.forceContextRestore=function(){var c=ja.get("WEBGL_lose_context");c&&c.restoreContext()};this.getPixelRatio=function(){return Ua};this.so=function(c){void 0!==c&&(Ua=c,this.setSize(na,Zb,!1))};this.getSize=function(){return{width:na,height:Zb}};this.setSize=function(c,g,n){nb.isPresenting()?console.warn("GLE.Wr: Can't change size while VR device is presenting."):(na=c,Zb=g,A.width=c*Ua,A.height=g*Ua,!1!==n&&(A.style.width=c+"px",A.style.height=g+"px"),this.setViewport(0,0,c,g))};this.getDrawingBufferSize=function(){return{width:na*Ua,height:Zb*Ua}};this.setDrawingBufferSize=function(c,g,n){na=c;Zb=g;Ua=n;A.width=c*n;A.height=g*n;this.setViewport(0,0,c,g)};this.getCurrentViewport=function(){return Z};this.setViewport=function(c,g,n,a){V.set(c,Zb-g-a,n,a);za.viewport(Z.copy(V).multiplyScalar(Ua))};this.setScissor=function(c,g,n,a){Y.set(c,Zb-g-a,n,a);za.scissor(Na.copy(Y).multiplyScalar(Ua))};this.setScissorTest=function(c){za.setScissorTest(da=c)};this.getClearColor=function(){return Ra.getClearColor()};this.sr=function(){Ra.sr.apply(Ra,arguments)};this.getClearAlpha=function(){return Ra.getClearAlpha()};this.setClearAlpha=function(){Ra.setClearAlpha.apply(Ra,arguments)};this.clear=function(c,g,n){var a=0;if(void 0===c||c)a|=U.COLOR_BUFFER_BIT;if(void 0===g||g)a|=U.DEPTH_BUFFER_BIT;if(void 0===n||n)a|=U.STENCIL_BUFFER_BIT;U.clear(a)};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(){A.removeEventListener("webglcontextlost",d,!1);A.removeEventListener("webglcontextrestored",f,!1);ra.dispose();$b.dispose();Wa.dispose();Bb.dispose();nb.dispose();hb.stop()};this.renderBufferImmediate=function(c,g){za.initAttributes();var n=Wa.get(c);c.hasPositions&&!n.position&&(n.position=U.createBuffer());c.hasNormals&&!n.normal&&(n.normal=U.createBuffer());c.hasUvs&&!n.uv&&(n.uv=U.createBuffer());c.hasColors&&!n.color&&(n.color=U.createBuffer());var a=g.getAttributes();c.hasPositions&&(U.bindBuffer(U.ARRAY_BUFFER,n.position),U.bufferData(U.ARRAY_BUFFER,c.positionArray,U.DYNAMIC_DRAW),za.enableAttribute(a.position),U.vertexAttribPointer(a.position,3,U.FLOAT,!1,0,0));c.hasNormals&&(U.bindBuffer(U.ARRAY_BUFFER,n.normal),U.bufferData(U.ARRAY_BUFFER,c.normalArray,U.DYNAMIC_DRAW),za.enableAttribute(a.normal),U.vertexAttribPointer(a.normal,3,U.FLOAT,!1,0,0));c.hasUvs&&(U.bindBuffer(U.ARRAY_BUFFER,n.uv),U.bufferData(U.ARRAY_BUFFER,c.uvArray,U.DYNAMIC_DRAW),za.enableAttribute(a.uv),U.vertexAttribPointer(a.uv,2,U.FLOAT,!1,0,0));c.hasColors&&(U.bindBuffer(U.ARRAY_BUFFER,n.color),U.bufferData(U.ARRAY_BUFFER,c.colorArray,U.DYNAMIC_DRAW),za.enableAttribute(a.color),U.vertexAttribPointer(a.color,3,U.FLOAT,!1,0,0));za.disableUnusedAttributes();U.drawArrays(U.TRIANGLES,0,c.count);c.count=0};this.renderBufferDirect=function(c,t,b,y,d,e){var I=d.isMesh&&0>d.normalMatrix.determinant();za.setMaterial(y,I);var f=B(c,t,y,d),h=!1;if(g!==b.id||n!==f.id||a!==(!0===y.wireframe))g=b.id,n=f.id,a=!0===y.wireframe,h=!0;d.morphTargetInfluences&&(Ca.update(d,b,y,f),h=!0);var I=b.index,O=b.attributes.position;t=1;!0===y.wireframe&&(I=Ib.getWireframeAttribute(b),t=2);var k;c=Tc;null!==I&&(k=Ma.get(I),c=Ha,c.setIndex(k));if(h){if(b&&b.isInstancedBufferGeometry&!pb.isWebGL2&&null===ja.get("ANGLE_instanced_arrays"))console.error("GLE.Wr.setupVertexAttributes: using GLE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");else{za.initAttributes();var h=b.attributes,f=f.getAttributes(),l=y.defaultAttributeValues,m;for(m in f){var p=f[m];if(0<=p){var ea=h[m];if(void 0!==ea){var z=ea.normalized,u=ea.itemSize,ma=Ma.get(ea);if(void 0!==ma){var v=ma.buffer,q=ma.type,ma=ma.bytesPerElement;if(ea.isInterleavedBufferAttribute){var r=ea.data,E=r.stride,ea=ea.offset;r&&r.isInstancedInterleavedBuffer?(za.enableAttributeAndDivisor(p,r.meshPerAttribute),void 0===b.maxInstancedCount&&(b.maxInstancedCount=r.meshPerAttribute*r.count)):za.enableAttribute(p);U.bindBuffer(U.ARRAY_BUFFER,v);U.vertexAttribPointer(p,u,q,z,E*ma,ea*ma)}else ea.isInstancedBufferAttribute?(za.enableAttributeAndDivisor(p,ea.meshPerAttribute),void 0===b.maxInstancedCount&&(b.maxInstancedCount=ea.meshPerAttribute*ea.count)):za.enableAttribute(p),U.bindBuffer(U.ARRAY_BUFFER,v),U.vertexAttribPointer(p,u,q,z,0,0)}}else if(void 0!==l&&(z=l[m],void 0!==z))switch(z.length){case 2:U.vertexAttrib2fv(p,z);break;case 3:U.vertexAttrib3fv(p,z);break;case 4:U.vertexAttrib4fv(p,z);break;default:U.vertexAttrib1fv(p,z)}}}za.disableUnusedAttributes()}null!==I&&U.bindBuffer(U.ELEMENT_ARRAY_BUFFER,k.buffer)}k=Infinity;null!==I?k=I.count:void 0!==O&&(k=O.count);I=b.drawRange.start*t;O=null!==e?e.start*t:0;m=Math.max(I,O);e=Math.max(0,Math.min(k,I+b.drawRange.count*t,O+(null!==e?e.count*t:Infinity))-1-m+1);if(0!==e){if(d.isMesh)if(!0===y.wireframe)za.setLineWidth(y.wireframeLinewidth*(null===M?Ua:1)),c.setMode(U.LINES);else switch(d.drawMode){case 0:c.setMode(U.TRIANGLES);break;case 1:c.setMode(U.TRIANGLE_STRIP);break;case 2:c.setMode(U.TRIANGLE_FAN)}else d.isLine?(y=y.linewidth,void 0===y&&(y=1),za.setLineWidth(y*(null===M?Ua:1)),d.isLineSegments?c.setMode(U.LINES):d.isLineLoop?c.setMode(U.LINE_LOOP):c.setMode(U.LINE_STRIP)):d.isPoints?c.setMode(U.POINTS):d.isSprite&&c.setMode(U.TRIANGLES);b&&b.isInstancedBufferGeometry?0<b.maxInstancedCount&&c.renderInstances(b,m,e):c.render(m,e)}};this.compile=function(c,g){T=$b.get(c,g);T.init();c.traverse(function(c){c.isLight&&(T.pushLight(c),c.castShadow&&T.pushShadow(c))});T.setupLights(g);c.traverse(function(g){if(g.material)if(Array.isArray(g.material))for(var n=0;n<g.material.length;n++)w(g.material[n],c.fog,g);else w(g.material,c.fog,g)})};var Nc=null,hb=new p;hb.setAnimationLoop(function(c){nb.isPresenting()||Nc&&Nc(c)});"undefined"!==typeof window&&hb.setContext(window);this.setAnimationLoop=function(c){Nc=c;nb.setAnimationLoop(c);hb.start()};this.render=function(c,t,b,y){if(!t||!t.isCamera)console.error("GLE.Wr.render: camera is not an instance of GLE.Camera.");else if(!L){n=g=null;a=!1;ha=-1;R=null;!0===c.autoUpdate&&c.uld();null===t.parent&&t.uld();nb.enabled&&(t=nb.getCamera(t));T=$b.get(c,t);T.init();c.onBeforeRender(ca,c,t,b);wa.multiplyMatrices(t.projectionMatrix,t.matrixWorldInverse);kb.setFromMatrix(wa);ga=this.ld;Q=S.init(this.cs,ga,t);Xa=ra.get(c,t);Xa.init();v(c,t,ca.sortObjects);!0===ca.sortObjects&&Xa.sort();Q&&S.beginShadows();Sa.render(T.state.shadowsArray,c,t);T.setupLights(t);Q&&S.endShadows();this.info.autoReset&&this.info.reset();void 0===b&&(b=null);this.setRenderTarget(b);Ra.render(Xa,c,t,y);y=Xa.opaque;var d=Xa.transparent;if(c.overrideMaterial){var e=c.overrideMaterial;y.length&&q(y,c,t,e);d.length&&q(d,c,t,e)}else y.length&&q(y,c,t),d.length&&q(d,c,t);b&&ka.updateRenderTargetMipmap(b);za.buffers.depth.setTest(!0);za.buffers.depth.setMask(!0);za.buffers.color.setMask(!0);za.setPolygonOffset(!1);c.onAfterRender(ca,c,t);nb.enabled&&nb.submitFrame();T=Xa=null}};this.allocTextureUnit=function(){var c=N;c>=pb.maxTextures&&console.warn("GLE.Wr: Trying to use "+c+" texture units while this GPU supports only "+pb.maxTextures);N+=1;return c};this.setTexture2D=function(){var c=!1;return function(g,n){g&&g.isWt&&(c||(console.warn("GLE.Wr.setTexture2D: don't use render targets as textures. Use their .texture property instead."),c=!0),g=g.texture);ka.setTexture2D(g,n)}}();this.setTexture3D=function(){return function(c,g){ka.setTexture3D(c,g)}}();this.setTexture=function(){var c=!1;return function(g,n){c||(console.warn("GLE.Wr: .setTexture is deprecated, use setTexture2D instead."),c=!0);ka.setTexture2D(g,n)}}();this.setTextureCube=function(){var c=!1;return function(g,n){g&&g.isWtCube&&(c||(console.warn("GLE.Wr.setTextureCube: don't use cube render targets as textures. Use their .texture property instead."),c=!0),g=g.texture);g&&g.isCubeTexture||Array.isArray(g.image)&&6===g.image.length?ka.setTextureCube(g,n):ka.setTextureCubeDynamic(g,n)}}();this.setFramebuffer=function(c){H=c};this.getRenderTarget=function(){return M};this.setRenderTarget=function(c){(M=c)&&void 0===Wa.get(c).__webglFramebuffer&&ka.setupRenderTarget(c);var g=H,n=!1;c?(g=Wa.get(c).__webglFramebuffer,c.isWtCube&&(g=g[c.activeCubeFace],n=!0),Z.copy(c.viewport),Na.copy(c.scissor),mb=c.scissorTest):(Z.copy(V).multiplyScalar(Ua),Na.copy(Y).multiplyScalar(Ua),mb=da);aa!==g&&(U.bindFramebuffer(U.FRAMEBUFFER,g),aa=g);za.viewport(Z);za.scissor(Na);za.setScissorTest(mb);n&&(n=Wa.get(c.texture),U.framebufferTexture2D(U.FRAMEBUFFER,U.COLOR_ATTACHMENT0,U.TEXTURE_CUBE_MAP_POSITIVE_X+c.activeCubeFace,n.__webglTexture,c.activeMipMapLevel))};this.rls=function(c,g,n,a,t,b){if(c&&c.isWt){var y=Wa.get(c).__webglFramebuffer;if(y){var d=!1;y!==aa&&(U.bindFramebuffer(U.FRAMEBUFFER,y),d=!0);try{var e=c.texture,I=e.format,f=e.type;1023!==I&&Da.convert(I)!==U.getParameter(U.IMPLEMENTATION_COLOR_READ_FORMAT)?console.error("GLE.Wr.rls: renderTarget is not in RGBA or implementation defined format."):1009===f||Da.convert(f)===U.getParameter(U.IMPLEMENTATION_COLOR_READ_TYPE)||1015===f&&(pb.isWebGL2||ja.get("OES_texture_float")||ja.get("WEBGL_color_buffer_float"))||1016===f&&(pb.isWebGL2?ja.get("EXT_color_buffer_float"):ja.get("EXT_color_buffer_half_float"))?U.checkFramebufferStatus(U.FRAMEBUFFER)===U.FRAMEBUFFER_COMPLETE?0<=g&&g<=c.width-a&&0<=n&&n<=c.height-t&&U.readPixels(g,n,a,t,Da.convert(I),Da.convert(f),b):console.error("GLE.Wr.rls: readPixels from renderTarget failed. Framebuffer not complete."):console.error("GLE.Wr.rls: renderTarget is not in UnsignedByteType or implementation defined type.")}finally{d&&U.bindFramebuffer(U.FRAMEBUFFER,aa)}}}else console.error("GLE.Wr.rls: renderTarget is not GLE.Wt.")};this.copyFramebufferToTexture=function(c,g,n){var a=g.image.width,t=g.image.height,b=Da.convert(g.format);this.setTexture2D(g,0);U.copyTexImage2D(U.TEXTURE_2D,n||0,b,c.x,c.y,a,t,0)};this.copyTextureToTexture=function(c,g,n,a){var t=g.image.width,b=g.image.height,y=Da.convert(n.format),d=Da.convert(n.type);this.setTexture2D(n,0);g.isDataTexture?U.texSubImage2D(U.TEXTURE_2D,a||0,c.x,c.y,t,b,y,d,g.image.data):U.texSubImage2D(U.TEXTURE_2D,a||0,c.x,c.y,y,d,g.image)}}function gd(c,g){this.name="";this.color=new u(c);this.density=void 0!==g?g:2.5E-4}function $d(c,g,n){this.name="";this.color=new u(c);this.near=void 0!==g?g:1;this.far=void 0!==n?n:1E3}function Bf(){F.call(this);this.type="Scene";this.overrideMaterial=this.fog=this.background=null;this.autoUpdate=!0}function ae(c,g){this.array=c;this.stride=g;this.count=void 0!==c?c.length/g:0;this.dynamic=!1;this.updateRange={offset:0,count:-1};this.version=0}function be(c,g,n,a){this.data=c;this.itemSize=g;this.offset=n;this.normalized=!0===a}function Uc(c){S.call(this);this.type="SpriteMaterial";this.color=new u(16777215);this.map=null;this.rotation=0;this.sizeAttenuation=!0;this.lights=!1;this.transparent=!0;this.setValues(c)}function yd(c){F.call(this);this.type="Sprite";if(void 0===Oe){Oe=new R;var g=new Float32Array([-.5,-.5,0,0,0,.5,-.5,0,1,0,.5,.5,0,1,1,-.5,.5,0,0,1]),g=new ae(g,5);Oe.setIndex([0,1,2,0,2,3]);Oe.addAttribute("position",new be(g,3,0,!1));Oe.addAttribute("uv",new be(g,2,3,!1))}this.geometry=Oe;this.material=void 0!==c?c:new Uc;this.center=new d(.5,.5)}function ce(){F.call(this);this.type="LOD";Object.defineProperties(this,{levels:{enumerable:!0,value:[]}})}function Fc(c,g){c=c||[];this.bones=c.slice(0);this.boneMatrices=new Float32Array(16*this.bones.length);if(void 0===g)this.calculateInverses();else if(this.bones.length===g.length)this.boneInverses=g.slice(0);else{console.warn("GLE.Skeleton boneInverses is the wrong length.");this.boneInverses=[];for(var n=0,a=this.bones.length;n<a;n++)this.boneInverses.push(new e)}}function ac(){F.call(this);this.type="Bone"}function Vc(c,g){na.call(this,c,g);this.type="SkinnedMesh";this.bindMode="attached";this.bindMatrix=new e;this.bindMatrixInverse=new e;var n=this.initBones(),n=new Fc(n);this.bind(n,this.matrixWorld);this.normalizeSkinWeights()}function Da(c){S.call(this);this.type="LineBasicMaterial";this.color=new u(16777215);this.linewidth=1;this.linejoin=this.linecap="round";this.lights=!1;this.setValues(c)}function Pb(c,g,n){1===n&&console.error("GLE.Line: parameter GLE.LinePieces no longer supported. Use GLE.LineSegments instead.");F.call(this);this.type="Line";this.geometry=void 0!==c?c:new R;this.material=void 0!==g?g:new Da({color:16777215*Math.random()})}function Ha(c,g){Pb.call(this,c,g);this.type="LineSegments"}function Cf(c,g){Pb.call(this,c,g);this.type="LineLoop"}function vc(c){S.call(this);this.type="PointsMaterial";this.color=new u(16777215);this.map=null;this.size=1;this.sizeAttenuation=!0;this.lights=this.morphTargets=!1;this.setValues(c)}function zd(c,g){F.call(this);this.type="Points";this.geometry=void 0!==c?c:new R;this.material=void 0!==g?g:new vc({color:16777215*Math.random()})}function qg(c,g,n,a,b,d,e,f,h){m.call(this,c,g,n,a,b,d,e,f,h);this.generateMipmaps=!1}function de(c,g,n,a,b,d,e,f,h,k,l,p){m.call(this,null,d,e,f,h,k,a,b,l,p);this.image={width:g,height:n};this.mipmaps=c;this.generateMipmaps=this.flipY=!1}function Pe(c,g,n,a,b,d,e,f,h){m.call(this,c,g,n,a,b,d,e,f,h);this.needsUpdate=!0}function hd(c,g,n,a,b,d,e,f,h,k){k=void 0!==k?k:1026;if(1026!==k&&1027!==k)throw Error("DepthTexture format must be either GLE.DepthFormat or GLE.DepthStencilFormat");void 0===n&&1026===k&&(n=1012);void 0===n&&1027===k&&(n=1020);m.call(this,null,a,b,d,e,f,k,n,h);this.image={width:c,height:g};this.magFilter=void 0!==e?e:1003;this.minFilter=void 0!==f?f:1003;this.generateMipmaps=this.flipY=!1}function ee(c){R.call(this);this.type="WireframeGeometry";var g=[],n,a,b,d,e=[0,0],f={},k,l,p=["a","b","c"];if(c&&c.isGeometry){var m=c.faces;n=0;for(b=m.length;n<b;n++){var z=m[n];for(a=0;3>a;a++)k=z[p[a]],l=z[p[(a+1)%3]],e[0]=Math.min(k,l),e[1]=Math.max(k,l),k=e[0]+","+e[1],void 0===f[k]&&(f[k]={index1:e[0],index2:e[1]})}for(k in f)n=f[k],p=c.vertices[n.index1],g.push(p.x,p.y,p.z),p=c.vertices[n.index2],g.push(p.x,p.y,p.z)}else if(c&&c.isBufferGeometry){var u,p=new h;if(null!==c.index){m=c.attributes.position;z=c.index;u=c.groups;0===u.length&&(u=[{start:0,count:z.count,materialIndex:0}]);c=0;for(d=u.length;c<d;++c)for(n=u[c],a=n.start,b=n.count,n=a,b=a+b;n<b;n+=3)for(a=0;3>a;a++)k=z.getX(n+a),l=z.getX(n+(a+1)%3),e[0]=Math.min(k,l),e[1]=Math.max(k,l),k=e[0]+","+e[1],void 0===f[k]&&(f[k]={index1:e[0],index2:e[1]});for(k in f)n=f[k],p.fromBufferAttribute(m,n.index1),g.push(p.x,p.y,p.z),p.fromBufferAttribute(m,n.index2),g.push(p.x,p.y,p.z)}else for(m=c.attributes.position,n=0,b=m.count/3;n<b;n++)for(a=0;3>a;a++)f=3*n+a,p.fromBufferAttribute(m,f),g.push(p.x,p.y,p.z),f=3*n+(a+1)%3,p.fromBufferAttribute(m,f),g.push(p.x,p.y,p.z)}this.addAttribute("position",new K(g,3))}function Df(c,g,n){L.call(this);this.type="ParametricGeometry";this.parameters={func:c,slices:g,stacks:n};this.fromBufferGeometry(new id(c,g,n));this.mergeVertices()}function id(c,g,n){R.call(this);this.type="ParametricBufferGeometry";this.parameters={func:c,slices:g,stacks:n};var a=[],b=[],d=[],e=[],f=new h,k=new h,l=new h,p=new h,m=new h,z,u;3>c.length&&console.error("GLE.ParametricGeometry: Function must now modify a Vector3 as third parameter.");var v=g+1;for(z=0;z<=n;z++){var q=z/n;for(u=0;u<=g;u++){var r=u/g;c(r,q,k);b.push(k.x,k.y,k.z);0<=r-1E-5?(c(r-1E-5,q,l),p.subVectors(k,l)):(c(r+1E-5,q,l),p.subVectors(l,k));0<=q-1E-5?(c(r,q-1E-5,l),m.subVectors(k,l)):(c(r,q+1E-5,l),m.subVectors(l,k));f.crossVectors(p,m).normalize();d.push(f.x,f.y,f.z);e.push(r,q)}}for(z=0;z<n;z++)for(u=0;u<g;u++)c=z*v+u+1,f=(z+1)*v+u+1,k=(z+1)*v+u,a.push(z*v+u,c,k),a.push(c,f,k);this.setIndex(a);this.addAttribute("position",new K(b,3));this.addAttribute("normal",new K(d,3));this.addAttribute("uv",new K(e,2))}function jd(c,g,n,a){L.call(this);this.type="PolyhedronGeometry";this.parameters={vertices:c,indices:g,radius:n,detail:a};this.fromBufferGeometry(new bc(c,g,n,a));this.mergeVertices()}function bc(c,g,n,a){function t(c){f.push(c.x,c.y,c.z)}function b(g,n){var a=3*g;n.x=c[a+0];n.y=c[a+1];n.z=c[a+2]}function e(c,g,n,a){0>a&&1===c.x&&(k[g]=c.x-1);0===n.x&&0===n.z&&(k[g]=a/2/Math.PI+.5)}R.call(this);this.type="PolyhedronBufferGeometry";this.parameters={vertices:c,indices:g,radius:n,detail:a};n=n||1;a=a||0;var f=[],k=[];(function(c){for(var n=new h,a=new h,y=new h,d=0;d<g.length;d+=3){b(g[d+0],n);b(g[d+1],a);b(g[d+2],y);var e=n,f=a,I=y,k=Math.pow(2,c),O=[],l,p;for(l=0;l<=k;l++){O[l]=[];var m=e.clone().lerp(I,l/k),z=f.clone().lerp(I,l/k),u=k-l;for(p=0;p<=u;p++)O[l][p]=0===p&&l===k?m:m.clone().lerp(z,p/u)}for(l=0;l<k;l++)for(p=0;p<2*(k-l)-1;p++)e=Math.floor(p/2),0===p%2?(t(O[l][e+1]),t(O[l+1][e]),t(O[l][e])):(t(O[l][e+1]),t(O[l+1][e+1]),t(O[l+1][e]))}})(a);(function(c){for(var g=new h,n=0;n<f.length;n+=3)g.x=f[n+0],g.y=f[n+1],g.z=f[n+2],g.normalize().multiplyScalar(c),f[n+0]=g.x,f[n+1]=g.y,f[n+2]=g.z})(n);(function(){for(var c=new h,g=0;g<f.length;g+=3)c.x=f[g+0],c.y=f[g+1],c.z=f[g+2],k.push(Math.atan2(c.z,-c.x)/2/Math.PI+.5,1-(Math.atan2(-c.y,Math.sqrt(c.x*c.x+c.z*c.z))/Math.PI+.5));for(var c=new h,g=new h,n=new h,a=new h,t=new d,b=new d,y=new d,I=0,O=0;I<f.length;I+=9,O+=6){c.set(f[I+0],f[I+1],f[I+2]);g.set(f[I+3],f[I+4],f[I+5]);n.set(f[I+6],f[I+7],f[I+8]);t.set(k[O+0],k[O+1]);b.set(k[O+2],k[O+3]);y.set(k[O+4],k[O+5]);a.copy(c).add(g).add(n).divideScalar(3);var l=Math.atan2(a.z,-a.x);e(t,O+0,c,l);e(b,O+2,g,l);e(y,O+4,n,l)}for(c=0;c<k.length;c+=6)g=k[c+0],n=k[c+2],a=k[c+4],t=Math.min(g,n,a),.9<Math.max(g,n,a)&&.1>t&&(.2>g&&(k[c+0]+=1),.2>n&&(k[c+2]+=1),.2>a&&(k[c+4]+=1))})();this.addAttribute("position",new K(f,3));this.addAttribute("normal",new K(f.slice(),3));this.addAttribute("uv",new K(k,2));0===a?this.computeVertexNormals():this.normalizeNormals()}function Ef(c,g){L.call(this);this.type="TetrahedronGeometry";this.parameters={radius:c,detail:g};this.fromBufferGeometry(new Ad(c,g));this.mergeVertices()}function Ad(c,g){bc.call(this,[1,1,1,-1,-1,1,-1,1,-1,1,-1,-1],[2,1,0,0,3,2,1,3,0,2,3,1],c,g);this.type="TetrahedronBufferGeometry";this.parameters={radius:c,detail:g}}function fe(c,g){L.call(this);this.type="OctahedronGeometry";this.parameters={radius:c,detail:g};this.fromBufferGeometry(new kd(c,g));this.mergeVertices()}function kd(c,g){bc.call(this,[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],c,g);this.type="OctahedronBufferGeometry";this.parameters={radius:c,detail:g}}function ge(c,g){L.call(this);this.type="IcosahedronGeometry";this.parameters={radius:c,detail:g};this.fromBufferGeometry(new Bd(c,g));this.mergeVertices()}function Bd(c,g){var n=(1+Math.sqrt(5))/2;bc.call(this,[-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],c,g);this.type="IcosahedronBufferGeometry";this.parameters={radius:c,detail:g}}function wc(c,g){L.call(this);this.type="DodecahedronGeometry";this.parameters={radius:c,detail:g};this.fromBufferGeometry(new Qe(c,g));this.mergeVertices()}function Qe(c,g){var n=(1+Math.sqrt(5))/2,a=1/n;bc.call(this,[-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,-a,-n,0,-a,n,0,a,-n,0,a,n,-a,-n,0,-a,n,0,a,-n,0,a,n,0,-n,0,-a,n,0,-a,-n,0,a,n,0,a],[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],c,g);this.type="DodecahedronBufferGeometry";this.parameters={radius:c,detail:g}}function Ff(c,g,n,a,b,d){L.call(this);this.type="TubeGeometry";this.parameters={path:c,tubularSegments:g,radius:n,radialSegments:a,closed:b};void 0!==d&&console.warn("GLE.TubeGeometry: taper has been removed.");c=new Re(c,g,n,a,b);this.tangents=c.tangents;this.normals=c.normals;this.binormals=c.binormals;this.fromBufferGeometry(c);this.mergeVertices()}function Re(c,g,n,a,b){function t(t){l=c.getPointAt(t/g,l);var b=y.normals[t];t=y.binormals[t];for(m=0;m<=a;m++){var d=m/a*Math.PI*2,I=Math.sin(d),d=-Math.cos(d);f.x=d*b.x+I*t.x;f.y=d*b.y+I*t.y;f.z=d*b.z+I*t.z;f.normalize();u.push(f.x,f.y,f.z);e.x=l.x+n*f.x;e.y=l.y+n*f.y;e.z=l.z+n*f.z;z.push(e.x,e.y,e.z)}}R.call(this);this.type="TubeBufferGeometry";this.parameters={path:c,tubularSegments:g,radius:n,radialSegments:a,closed:b};g=g||64;n=n||1;a=a||8;b=b||!1;var y=c.computeFrenetFrames(g,b);this.tangents=y.tangents;this.normals=y.normals;this.binormals=y.binormals;var e=new h,f=new h,k=new d,l=new h,p,m,z=[],u=[],v=[],q=[];for(p=0;p<g;p++)t(p);t(!1===b?g:0);for(p=0;p<=g;p++)for(m=0;m<=a;m++)k.x=p/g,k.y=m/a,v.push(k.x,k.y);(function(){for(m=1;m<=g;m++)for(p=1;p<=a;p++){var c=(a+1)*m+(p-1),n=(a+1)*m+p,t=(a+1)*(m-1)+p;q.push((a+1)*(m-1)+(p-1),c,t);q.push(c,n,t)}})();this.setIndex(q);this.addAttribute("position",new K(z,3));this.addAttribute("normal",new K(u,3));this.addAttribute("uv",new K(v,2))}function Gf(c,g,n,a,b,d,e){L.call(this);this.type="TorusKnotGeometry";this.parameters={radius:c,tube:g,tubularSegments:n,radialSegments:a,p:b,q:d};void 0!==e&&console.warn("GLE.TorusKnotGeometry: heightScale has been deprecated. Use .scale( x, y, z ) instead.");this.fromBufferGeometry(new Se(c,g,n,a,b,d));this.mergeVertices()}function Se(c,g,n,a,b,d){function t(c,g,n,a,t){var b=Math.sin(c);g=n/g*c;n=Math.cos(g);t.x=a*(2+n)*.5*Math.cos(c);t.y=a*(2+n)*b*.5;t.z=a*Math.sin(g)*.5}R.call(this);this.type="TorusKnotBufferGeometry";this.parameters={radius:c,tube:g,tubularSegments:n,radialSegments:a,p:b,q:d};c=c||1;g=g||.4;n=Math.floor(n)||64;a=Math.floor(a)||8;b=b||2;d=d||3;var y=[],e=[],f=[],I=[],k,l,p=new h,m=new h,z=new h,u=new h,v=new h,q=new h,r=new h;for(k=0;k<=n;++k)for(l=k/n*b*Math.PI*2,t(l,b,d,c,z),t(l+.01,b,d,c,u),q.subVectors(u,z),r.addVectors(u,z),v.crossVectors(q,r),r.crossVectors(v,q),v.normalize(),r.normalize(),l=0;l<=a;++l){var E=l/a*Math.PI*2,C=-g*Math.cos(E),E=g*Math.sin(E);p.x=z.x+(C*r.x+E*v.x);p.y=z.y+(C*r.y+E*v.y);p.z=z.z+(C*r.z+E*v.z);e.push(p.x,p.y,p.z);m.subVectors(p,z).normalize();f.push(m.x,m.y,m.z);I.push(k/n);I.push(l/a)}for(l=1;l<=n;l++)for(k=1;k<=a;k++)c=(a+1)*l+(k-1),g=(a+1)*l+k,b=(a+1)*(l-1)+k,y.push((a+1)*(l-1)+(k-1),c,b),y.push(c,g,b);this.setIndex(y);this.addAttribute("position",new K(e,3));this.addAttribute("normal",new K(f,3));this.addAttribute("uv",new K(I,2))}function Cd(c,g,n,a,b){L.call(this);this.type="TorusGeometry";this.parameters={radius:c,tube:g,radialSegments:n,tubularSegments:a,arc:b};this.fromBufferGeometry(new cc(c,g,n,a,b));this.mergeVertices()}function cc(c,g,n,a,b){R.call(this);this.type="TorusBufferGeometry";this.parameters={radius:c,tube:g,radialSegments:n,tubularSegments:a,arc:b};c=c||1;g=g||.4;n=Math.floor(n)||8;a=Math.floor(a)||6;b=b||2*Math.PI;var t=[],y=[],d=[],e=[],f=new h,k=new h,l=new h,p,m;for(p=0;p<=n;p++)for(m=0;m<=a;m++){var z=m/a*b,u=p/n*Math.PI*2;k.x=(c+g*Math.cos(u))*Math.cos(z);k.y=(c+g*Math.cos(u))*Math.sin(z);k.z=g*Math.sin(u);y.push(k.x,k.y,k.z);f.x=c*Math.cos(z);f.y=c*Math.sin(z);l.subVectors(k,f).normalize();d.push(l.x,l.y,l.z);e.push(m/a);e.push(p/n)}for(p=1;p<=n;p++)for(m=1;m<=a;m++)c=(a+1)*(p-1)+m-1,g=(a+1)*(p-1)+m,b=(a+1)*p+m,t.push((a+1)*p+m-1,c,b),t.push(c,g,b);this.setIndex(t);this.addAttribute("position",new K(y,3));this.addAttribute("normal",new K(d,3));this.addAttribute("uv",new K(e,2))}function Ai(c,g,n,a,b){for(var t,y=0,d=g,e=n-a;d<n;d+=a)y+=(c[e]-c[d])*(c[d+1]+c[e+1]),e=d;if(b===0<y)for(b=g;b<n;b+=a)t=Bi(b,c[b],c[b+1],t);else for(b=n-a;b>=g;b-=a)t=Bi(b,c[b],c[b+1],t);t&&Dd(t,t.next)&&(Hf(t),t=t.next);return t}function If(c,g){if(!c)return c;g||(g=c);var n=c,a;do if(a=!1,n.steiner||!Dd(n,n.next)&&0!==Qb(n.prev,n,n.next))n=n.next;else{Hf(n);n=g=n.prev;if(n===n.next)break;a=!0}while(a||n!==g);return g}function Te(c,g,n,a,b,d,e){if(c){if(!e&&d){var t=c,y=t;do null===y.z&&(y.z=rg(y.x,y.y,a,b,d)),y.prevZ=y.prev,y=y.nextZ=y.next;while(y!==t);y.prevZ.nextZ=null;y.prevZ=null;var t=y,f,I,h,k,l,O,p=1;do{y=t;h=t=null;for(k=0;y;){k++;I=y;for(f=l=0;f<p&&(l++,I=I.nextZ,I);f++);for(O=p;0<l||0<O&&I;)0!==l&&(0===O||!I||y.z<=I.z)?(f=y,y=y.nextZ,l--):(f=I,I=I.nextZ,O--),h?h.nextZ=f:t=f,f.prevZ=h,h=f;y=I}h.nextZ=null;p*=2}while(1<k)}for(t=c;c.prev!==c.next;){y=c.prev;I=c.next;if(d)a:{h=c;O=a;var m=b,z=d;k=h.prev;l=h;p=h.next;if(0<=Qb(k,l,p))h=!1;else{var u=k.x>l.x?k.x>p.x?k.x:p.x:l.x>p.x?l.x:p.x,v=k.y>l.y?k.y>p.y?k.y:p.y:l.y>p.y?l.y:p.y;f=rg(k.x<l.x?k.x<p.x?k.x:p.x:l.x<p.x?l.x:p.x,k.y<l.y?k.y<p.y?k.y:p.y:l.y<p.y?l.y:p.y,O,m,z);O=rg(u,v,O,m,z);for(m=h.nextZ;m&&m.z<=O;){if(m!==h.prev&&m!==h.next&&Gc(k.x,k.y,l.x,l.y,p.x,p.y,m.x,m.y)&&0<=Qb(m.prev,m,m.next)){h=!1;break a}m=m.nextZ}for(m=h.prevZ;m&&m.z>=f;){if(m!==h.prev&&m!==h.next&&Gc(k.x,k.y,l.x,l.y,p.x,p.y,m.x,m.y)&&0<=Qb(m.prev,m,m.next)){h=!1;break a}m=m.prevZ}h=!0}}else a:if(h=c,k=h.prev,l=h,p=h.next,0<=Qb(k,l,p))h=!1;else{for(f=h.next.next;f!==h.prev;){if(Gc(k.x,k.y,l.x,l.y,p.x,p.y,f.x,f.y)&&0<=Qb(f.prev,f,f.next)){h=!1;break a}f=f.next}h=!0}if(h)g.push(y.i/n),g.push(c.i/n),g.push(I.i/n),Hf(c),t=c=I.next;else if(c=I,c===t){if(!e)Te(If(c),g,n,a,b,d,1);else if(1===e){e=g;t=n;y=c;do I=y.prev,h=y.next.next,!Dd(I,h)&&sg(I,y,y.next,h)&&he(I,h)&&he(h,I)&&(e.push(I.i/t),e.push(y.i/t),e.push(h.i/t),Hf(y),Hf(y.next),y=c=h),y=y.next;while(y!==c);c=y;Te(c,g,n,a,b,d,2)}else if(2===e)a:{e=c;do{for(t=e.next.next;t!==e.prev;){if(y=e.i!==t.i){y=e;I=t;if(h=y.next.i!==I.i&&y.prev.i!==I.i){b:{h=y;do{if(h.i!==y.i&&h.next.i!==y.i&&h.i!==I.i&&h.next.i!==I.i&&sg(h,h.next,y,I)){h=!0;break b}h=h.next}while(h!==y);h=!1}h=!h}if(h=h&&he(y,I)&&he(I,y)){h=y;k=!1;l=(y.x+I.x)/2;I=(y.y+I.y)/2;do h.y>I!==h.next.y>I&&h.next.y!==h.y&&l<(h.next.x-h.x)*(I-h.y)/(h.next.y-h.y)+h.x&&(k=!k),h=h.next;while(h!==y);h=k}y=h}if(y){c=Ci(e,t);e=If(e,e.next);c=If(c,c.next);Te(e,g,n,a,b,d);Te(c,g,n,a,b,d);break a}t=t.next}e=e.next}while(e!==c)}break}}}}function Di(c,g){return c.x-g.x}function tg(c,g){var n=g,a=c.x,b=c.y,d=-Infinity,e;do{if(b<=n.y&&b>=n.next.y&&n.next.y!==n.y){var f=n.x+(b-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(f<=a&&f>d){d=f;if(f===a){if(b===n.y)return n;if(b===n.next.y)return n.next}e=n.x<n.next.x?n:n.next}}n=n.next}while(n!==g);if(!e)return null;if(a===d)return e.prev;for(var f=e,h=e.x,k=e.y,l=Infinity,p,n=e.next;n!==f;)a>=n.x&&n.x>=h&&a!==n.x&&Gc(b<k?a:d,b,h,k,b<k?d:a,b,n.x,n.y)&&(p=Math.abs(b-n.y)/(a-n.x),(p<l||p===l&&n.x>e.x)&&he(n,c)&&(e=n,l=p)),n=n.next;return e}function rg(c,g,n,a,b){c=32767*(c-n)*b;g=32767*(g-a)*b;c=(c|c<<8)&16711935;c=(c|c<<4)&252645135;c=(c|c<<2)&858993459;g=(g|g<<8)&16711935;g=(g|g<<4)&252645135;g=(g|g<<2)&858993459;return(c|c<<1)&1431655765|((g|g<<1)&1431655765)<<1}function Uj(c){var g=c,n=c;do g.x<n.x&&(n=g),g=g.next;while(g!==c);return n}function Gc(c,g,n,a,b,d,e,f){return 0<=(b-e)*(g-f)-(c-e)*(d-f)&&0<=(c-e)*(a-f)-(n-e)*(g-f)&&0<=(n-e)*(d-f)-(b-e)*(a-f)}function Qb(c,g,n){return(g.y-c.y)*(n.x-g.x)-(g.x-c.x)*(n.y-g.y)}function Dd(c,g){return c.x===g.x&&c.y===g.y}function sg(c,g,n,a){return Dd(c,g)&&Dd(n,a)||Dd(c,a)&&Dd(n,g)?!0:0<Qb(c,g,n)!==0<Qb(c,g,a)&&0<Qb(n,a,c)!==0<Qb(n,a,g)}function he(c,g){return 0>Qb(c.prev,c,c.next)?0<=Qb(c,g,c.next)&&0<=Qb(c,c.prev,g):0>Qb(c,g,c.prev)||0>Qb(c,c.next,g)}function Ci(c,g){var n=new ug(c.i,c.x,c.y),a=new ug(g.i,g.x,g.y),b=c.next,d=g.prev;c.next=g;g.prev=c;n.next=b;b.prev=n;a.next=n;n.prev=a;d.next=a;a.prev=d;return a}function Bi(c,g,n,a){c=new ug(c,g,n);a?(c.next=a.next,c.prev=a,a.next.prev=c,a.next=c):(c.prev=c,c.next=c);return c}function Hf(c){c.next.prev=c.prev;c.prev.next=c.next;c.prevZ&&(c.prevZ.nextZ=c.nextZ);c.nextZ&&(c.nextZ.prevZ=c.prevZ)}function ug(c,g,n){this.i=c;this.x=g;this.y=n;this.nextZ=this.prevZ=this.z=this.next=this.prev=null;this.steiner=!1}function Jf(c){var g=c.length;2<g&&c[g-1].equals(c[0])&&c.pop()}function Ei(c,g){for(var n=0;n<g.length;n++)c.push(g[n].x),c.push(g[n].y)}function ie(c,g){L.call(this);this.type="ExtrudeGeometry";this.parameters={shapes:c,options:g};this.fromBufferGeometry(new Wc(c,g));this.mergeVertices()}function Wc(c,g){function n(c){function n(c,g,n){g||console.error("GLE.ExtrudeGeometry: vec does not exist");return g.clone().multiplyScalar(n).add(c)}function t(c,g,n){var a,t,b;t=c.x-g.x;b=c.y-g.y;a=n.x-c.x;var y=n.y-c.y,e=t*t+b*b;if(Math.abs(t*y-b*a)>Number.EPSILON){var f=Math.sqrt(e),I=Math.sqrt(a*a+y*y),e=g.x-b/f;g=g.y+t/f;y=((n.x-y/I-e)*y-(n.y+a/I-g)*a)/(t*y-b*a);a=e+t*y-c.x;t=g+b*y-c.y;b=a*a+t*t;if(2>=b)return new d(a,t);b=Math.sqrt(b/2)}else c=!1,t>Number.EPSILON?a>Number.EPSILON&&(c=!0):t<-Number.EPSILON?a<-Number.EPSILON&&(c=!0):Math.sign(b)===Math.sign(y)&&(c=!0),c?(a=-b,b=Math.sqrt(e)):(a=t,t=b,b=Math.sqrt(e/2));return new d(a/b,t/b)}function y(c,g){var n,t;for(T=c.length;0<=--T;){n=T;t=T-1;0>t&&(t=c.length-1);var y,d=m+2*q;for(y=0;y<d;y++){var e=W*y,f=W*(y+1),I=g+t+e,h=g+t+f,f=g+n+f;k(g+n+e);k(I);k(f);k(I);k(h);k(f);e=b.length/3;e=r.generateSideWallUV(a,b,e-6,e-3,e-2,e-1);l(e[0]);l(e[1]);l(e[3]);l(e[1]);l(e[2]);l(e[3])}}}function f(c,g,n){O.push(c);O.push(g);O.push(n)}function I(c,g,n){k(c);k(g);k(n);c=b.length/3;c=r.generateTopUV(a,b,c-3,c-2,c-1);l(c[0]);l(c[1]);l(c[2])}function k(c){b.push(O[3*c+0]);b.push(O[3*c+1]);b.push(O[3*c+2])}function l(c){e.push(c.x);e.push(c.y)}var O=[],p=void 0!==g.curveSegments?g.curveSegments:12,m=void 0!==g.steps?g.steps:1,z=void 0!==g.depth?g.depth:100,u=void 0!==g.bevelEnabled?g.bevelEnabled:!0,ea=void 0!==g.bevelThickness?g.bevelThickness:6,v=void 0!==g.bevelSize?g.bevelSize:ea-2,q=void 0!==g.bevelSegments?g.bevelSegments:3,ma=g.extrudePath,r=void 0!==g.UVGenerator?g.UVGenerator:Fi;void 0!==g.amount&&(console.warn("GLE.ExtrudeBufferGeometry: amount has been renamed to depth."),z=g.amount);var E,C=!1,w,B,D,A;ma&&(E=ma.getSpacedPoints(m),C=!0,u=!1,w=ma.computeFrenetFrames(m,!1),B=new h,D=new h,A=new h);u||(v=ea=q=0);var J,x,X,p=c.extractPoints(p);c=p.shape;var sa=p.holes;if(!dc.isClockWise(c))for(c=c.reverse(),x=0,X=sa.length;x<X;x++)J=sa[x],dc.isClockWise(J)&&(sa[x]=J.reverse());var G=dc.triangulateShape(c,sa),la=c;x=0;for(X=sa.length;x<X;x++)J=sa[x],c=c.concat(J);var K,fa,xa,F,Ba,W=c.length,ua,Sc=G.length,p=[],T=0;xa=la.length;K=xa-1;for(fa=T+1;T<xa;T++,K++,fa++)K===xa&&(K=0),fa===xa&&(fa=0),p[T]=t(la[T],la[K],la[fa]);var ma=[],Xa,tb=p.concat();x=0;for(X=sa.length;x<X;x++){J=sa[x];Xa=[];T=0;xa=J.length;K=xa-1;for(fa=T+1;T<xa;T++,K++,fa++)K===xa&&(K=0),fa===xa&&(fa=0),Xa[T]=t(J[T],J[K],J[fa]);ma.push(Xa);tb=tb.concat(Xa)}for(K=0;K<q;K++){xa=K/q;F=ea*Math.cos(xa*Math.PI/2);fa=v*Math.sin(xa*Math.PI/2);T=0;for(xa=la.length;T<xa;T++)Ba=n(la[T],p[T],fa),f(Ba.x,Ba.y,-F);x=0;for(X=sa.length;x<X;x++)for(J=sa[x],Xa=ma[x],T=0,xa=J.length;T<xa;T++)Ba=n(J[T],Xa[T],fa),f(Ba.x,Ba.y,-F)}fa=v;for(T=0;T<W;T++)Ba=u?n(c[T],tb[T],fa):c[T],C?(D.copy(w.normals[0]).multiplyScalar(Ba.x),B.copy(w.binormals[0]).multiplyScalar(Ba.y),A.copy(E[0]).add(D).add(B),f(A.x,A.y,A.z)):f(Ba.x,Ba.y,0);for(xa=1;xa<=m;xa++)for(T=0;T<W;T++)Ba=u?n(c[T],tb[T],fa):c[T],C?(D.copy(w.normals[xa]).multiplyScalar(Ba.x),B.copy(w.binormals[xa]).multiplyScalar(Ba.y),A.copy(E[xa]).add(D).add(B),f(A.x,A.y,A.z)):f(Ba.x,Ba.y,z/m*xa);for(K=q-1;0<=K;K--){xa=K/q;F=ea*Math.cos(xa*Math.PI/2);fa=v*Math.sin(xa*Math.PI/2);T=0;for(xa=la.length;T<xa;T++)Ba=n(la[T],p[T],fa),f(Ba.x,Ba.y,z+F);x=0;for(X=sa.length;x<X;x++)for(J=sa[x],Xa=ma[x],T=0,xa=J.length;T<xa;T++)Ba=n(J[T],Xa[T],fa),C?f(Ba.x,Ba.y+E[m-1].y,E[m-1].x+F):f(Ba.x,Ba.y,z+F)}(function(){var c=b.length/3;if(u){var g=0*W;for(T=0;T<Sc;T++)ua=G[T],I(ua[2]+g,ua[1]+g,ua[0]+g);g=W*(m+2*q);for(T=0;T<Sc;T++)ua=G[T],I(ua[0]+g,ua[1]+g,ua[2]+g)}else{for(T=0;T<Sc;T++)ua=G[T],I(ua[2],ua[1],ua[0]);for(T=0;T<Sc;T++)ua=G[T],I(ua[0]+W*m,ua[1]+W*m,ua[2]+W*m)}a.addGroup(c,b.length/3-c,0)})();(function(){var c=b.length/3,g=0;y(la,g);g+=la.length;x=0;for(X=sa.length;x<X;x++)J=sa[x],y(J,g),g+=J.length;a.addGroup(c,b.length/3-c,1)})()}R.call(this);this.type="ExtrudeBufferGeometry";this.parameters={shapes:c,options:g};c=Array.isArray(c)?c:[c];for(var a=this,b=[],e=[],f=0,k=c.length;f<k;f++)n(c[f]);this.addAttribute("position",new K(b,3));this.addAttribute("uv",new K(e,2));this.computeVertexNormals()}function Kf(c,g,n){n.shapes=[];if(Array.isArray(c))for(var a=0,b=c.length;a<b;a++)n.shapes.push(c[a].uuid);else n.shapes.push(c.uuid);void 0!==g.extrudePath&&(n.options.extrudePath=g.extrudePath.toJSON());return n}function Ue(c,g){L.call(this);this.type="TextGeometry";this.parameters={text:c,parameters:g};this.fromBufferGeometry(new Ve(c,g));this.mergeVertices()}function Ve(c,g){g=g||{};var n=g.font;if(!n||!n.isFont)return console.error("GLE.TextGeometry: font parameter is not an instance of GLE.Font."),new L;n=n.generateShapes(c,g.size);g.depth=void 0!==g.height?g.height:50;void 0===g.bevelThickness&&(g.bevelThickness=10);void 0===g.bevelSize&&(g.bevelSize=8);void 0===g.bevelEnabled&&(g.bevelEnabled=!1);Wc.call(this,n,g);this.type="TextBufferGeometry"}function je(c,g,n,a,b,d,e){L.call(this);this.type="SphereGeometry";this.parameters={radius:c,widthSegments:g,heightSegments:n,phiStart:a,phiLength:b,thetaStart:d,thetaLength:e};this.fromBufferGeometry(new ab(c,g,n,a,b,d,e));this.mergeVertices()}function ab(c,g,n,a,b,d,e){R.call(this);this.type="SphereBufferGeometry";this.parameters={radius:c,widthSegments:g,heightSegments:n,phiStart:a,phiLength:b,thetaStart:d,thetaLength:e};c=c||1;g=Math.max(3,Math.floor(g)||8);n=Math.max(2,Math.floor(n)||6);a=void 0!==a?a:0;b=void 0!==b?b:2*Math.PI;d=void 0!==d?d:0;e=void 0!==e?e:Math.PI;var t=d+e,y,f,I=0,k=[],l=new h,O=new h,p=[],m=[],z=[],u=[];for(f=0;f<=n;f++){var v=[],q=f/n;for(y=0;y<=g;y++){var r=y/g;l.x=-c*Math.cos(a+r*b)*Math.sin(d+q*e);l.y=c*Math.cos(d+q*e);l.z=c*Math.sin(a+r*b)*Math.sin(d+q*e);m.push(l.x,l.y,l.z);O.set(l.x,l.y,l.z).normalize();z.push(O.x,O.y,O.z);u.push(r,1-q);v.push(I++)}k.push(v)}for(f=0;f<n;f++)for(y=0;y<g;y++)c=k[f][y+1],a=k[f][y],b=k[f+1][y],e=k[f+1][y+1],(0!==f||0<d)&&p.push(c,a,e),(f!==n-1||t<Math.PI)&&p.push(a,b,e);this.setIndex(p);this.addAttribute("position",new K(m,3));this.addAttribute("normal",new K(z,3));this.addAttribute("uv",new K(u,2))}function xc(c,g,n,a,b,d){L.call(this);this.type="RingGeometry";this.parameters={innerRadius:c,outerRadius:g,thetaSegments:n,phiSegments:a,thetaStart:b,thetaLength:d};this.fromBufferGeometry(new ke(c,g,n,a,b,d));this.mergeVertices()}function ke(c,g,n,a,b,e){R.call(this);this.type="RingBufferGeometry";this.parameters={innerRadius:c,outerRadius:g,thetaSegments:n,phiSegments:a,thetaStart:b,thetaLength:e};c=c||.5;g=g||1;b=void 0!==b?b:0;e=void 0!==e?e:2*Math.PI;n=void 0!==n?Math.max(3,n):8;a=void 0!==a?Math.max(1,a):1;var t=[],y=[],f=[],I=[],k=c,l=(g-c)/a,p=new h,m=new d,z,u;for(z=0;z<=a;z++){for(u=0;u<=n;u++)c=b+u/n*e,p.x=k*Math.cos(c),p.y=k*Math.sin(c),y.push(p.x,p.y,p.z),f.push(0,0,1),m.x=(p.x/g+1)/2,m.y=(p.y/g+1)/2,I.push(m.x,m.y);k+=l}for(z=0;z<a;z++)for(g=z*(n+1),u=0;u<n;u++)c=u+g,b=c+n+1,e=c+n+2,k=c+1,t.push(c,b,k),t.push(b,e,k);this.setIndex(t);this.addAttribute("position",new K(y,3));this.addAttribute("normal",new K(f,3));this.addAttribute("uv",new K(I,2))}function ub(c,g,n,a){L.call(this);this.type="LatheGeometry";this.parameters={points:c,segments:g,phiStart:n,phiLength:a};this.fromBufferGeometry(new We(c,g,n,a));this.mergeVertices()}function We(c,g,n,a){R.call(this);this.type="LatheBufferGeometry";this.parameters={points:c,segments:g,phiStart:n,phiLength:a};g=Math.floor(g)||12;n=n||0;a=a||2*Math.PI;a=Aa.clamp(a,0,2*Math.PI);var t=[],b=[],e=[],f=1/g,k=new h,l=new d,p,m;for(p=0;p<=g;p++){m=n+p*f*a;var z=Math.sin(m),u=Math.cos(m);for(m=0;m<=c.length-1;m++)k.x=c[m].x*z,k.y=c[m].y,k.z=c[m].x*u,b.push(k.x,k.y,k.z),l.x=p/g,l.y=m/(c.length-1),e.push(l.x,l.y)}for(p=0;p<g;p++)for(m=0;m<c.length-1;m++)n=m+p*c.length,f=n+c.length,k=n+c.length+1,l=n+1,t.push(n,f,l),t.push(f,k,l);this.setIndex(t);this.addAttribute("position",new K(b,3));this.addAttribute("uv",new K(e,2));this.computeVertexNormals();if(a===2*Math.PI)for(a=this.attributes.normal.array,t=new h,b=new h,e=new h,n=g*c.length*3,m=p=0;p<c.length;p++,m+=3)t.x=a[m+0],t.y=a[m+1],t.z=a[m+2],b.x=a[n+m+0],b.y=a[n+m+1],b.z=a[n+m+2],e.addVectors(t,b).normalize(),a[m+0]=a[n+m+0]=e.x,a[m+1]=a[n+m+1]=e.y,a[m+2]=a[n+m+2]=e.z}function le(c,g){L.call(this);this.type="ShapeGeometry";"object"===typeof g&&(console.warn("GLE.ShapeGeometry: Options parameter has been removed."),g=g.curveSegments);this.parameters={shapes:c,curveSegments:g};this.fromBufferGeometry(new Xc(c,g));this.mergeVertices()}function Xc(c,g){function n(c){var n,t,y=b.length/3;c=c.extractPoints(g);var f=c.shape,I=c.holes;if(!1===dc.isClockWise(f))for(f=f.reverse(),c=0,n=I.length;c<n;c++)t=I[c],!0===dc.isClockWise(t)&&(I[c]=t.reverse());var k=dc.triangulateShape(f,I);c=0;for(n=I.length;c<n;c++)t=I[c],f=f.concat(t);c=0;for(n=f.length;c<n;c++)t=f[c],b.push(t.x,t.y,0),d.push(0,0,1),e.push(t.x,t.y);c=0;for(n=k.length;c<n;c++)f=k[c],a.push(f[0]+y,f[1]+y,f[2]+y),h+=3}R.call(this);this.type="ShapeBufferGeometry";this.parameters={shapes:c,curveSegments:g};g=g||12;var a=[],b=[],d=[],e=[],f=0,h=0;if(!1===Array.isArray(c))n(c);else for(var k=0;k<c.length;k++)n(c[k]),this.addGroup(f,h,k),f+=h,h=0;this.setIndex(a);this.addAttribute("position",new K(b,3));this.addAttribute("normal",new K(d,3));this.addAttribute("uv",new K(e,2))}function vg(c,g){g.shapes=[];if(Array.isArray(c))for(var n=0,a=c.length;n<a;n++)g.shapes.push(c[n].uuid);else g.shapes.push(c.uuid);return g}function me(c,g){R.call(this);this.type="EdgesGeometry";this.parameters={thresholdAngle:g};var n=[],a=Math.cos(Aa.DEG2RAD*(void 0!==g?g:1)),b=[0,0],d={},e,f,h=["a","b","c"],k;c.isBufferGeometry?(k=new L,k.fromBufferGeometry(c)):k=c.clone();k.mergeVertices();k.computeFaceNormals();var l=k.vertices;k=k.faces;for(var p=0,m=k.length;p<m;p++)for(var z=k[p],u=0;3>u;u++)e=z[h[u]],f=z[h[(u+1)%3]],b[0]=Math.min(e,f),b[1]=Math.max(e,f),e=b[0]+","+b[1],void 0===d[e]?d[e]={index1:b[0],index2:b[1],face1:p,face2:void 0}:d[e].face2=p;for(e in d)if(b=d[e],void 0===b.face2||k[b.face1].normal.dot(k[b.face2].normal)<=a)h=l[b.index1],n.push(h.x,h.y,h.z),h=l[b.index2],n.push(h.x,h.y,h.z);this.addAttribute("position",new K(n,3))}function ne(c,g,n,a,b,d,e,f){L.call(this);this.type="CylinderGeometry";this.parameters={radiusTop:c,radiusBottom:g,height:n,radialSegments:a,heightSegments:b,openEnded:d,thetaStart:e,thetaLength:f};this.fromBufferGeometry(new ld(c,g,n,a,b,d,e,f));this.mergeVertices()}function ld(c,g,n,a,b,e,f,k){function t(n){var t,b,e,z=new d,q=new h,ea=0,r=!0===n?c:g,E=!0===n?1:-1;b=O;for(t=1;t<=a;t++)l.push(0,u*E,0),p.push(0,E,0),m.push(.5,.5),O++;e=O;for(t=0;t<=a;t++){var ma=t/a*k+f,C=Math.cos(ma),ma=Math.sin(ma);q.x=r*ma;q.y=u*E;q.z=r*C;l.push(q.x,q.y,q.z);p.push(0,E,0);z.x=.5*C+.5;z.y=.5*ma*E+.5;m.push(z.x,z.y);O++}for(t=0;t<a;t++)z=b+t,q=e+t,!0===n?I.push(q,q+1,z):I.push(q+1,q,z),ea+=3;y.addGroup(v,ea,!0===n?1:2);v+=ea}R.call(this);this.type="CylinderBufferGeometry";this.parameters={radiusTop:c,radiusBottom:g,height:n,radialSegments:a,heightSegments:b,openEnded:e,thetaStart:f,thetaLength:k};var y=this;c=void 0!==c?c:1;g=void 0!==g?g:1;n=n||1;a=Math.floor(a)||8;b=Math.floor(b)||1;e=void 0!==e?e:!1;f=void 0!==f?f:0;k=void 0!==k?k:2*Math.PI;var I=[],l=[],p=[],m=[],O=0,z=[],u=n/2,v=0;(function(){var t,d,e=new h,q=new h,ea=0,r=(g-c)/n;for(d=0;d<=b;d++){var E=[],ma=d/b,C=ma*(g-c)+c;for(t=0;t<=a;t++){var w=t/a,B=w*k+f,D=Math.sin(B),B=Math.cos(B);q.x=C*D;q.y=-ma*n+u;q.z=C*B;l.push(q.x,q.y,q.z);e.set(D,r,B).normalize();p.push(e.x,e.y,e.z);m.push(w,1-ma);E.push(O++)}z.push(E)}for(t=0;t<a;t++)for(d=0;d<b;d++)e=z[d+1][t],q=z[d+1][t+1],r=z[d][t+1],I.push(z[d][t],e,r),I.push(e,q,r),ea+=6;y.addGroup(v,ea,0);v+=ea})();!1===e&&(0<c&&t(!0),0<g&&t(!1));this.setIndex(I);this.addAttribute("position",new K(l,3));this.addAttribute("normal",new K(p,3));this.addAttribute("uv",new K(m,2))}function Lf(c,g,n,a,b,d,e){ne.call(this,0,c,g,n,a,b,d,e);this.type="ConeGeometry";this.parameters={radius:c,height:g,radialSegments:n,heightSegments:a,openEnded:b,thetaStart:d,thetaLength:e}}function Xe(c,g,a,t,b,d,e){ld.call(this,0,c,g,a,t,b,d,e);this.type="ConeBufferGeometry";this.parameters={radius:c,height:g,radialSegments:a,heightSegments:t,openEnded:b,thetaStart:d,thetaLength:e}}function Mf(c,g,a,t){L.call(this);this.type="CircleGeometry";this.parameters={radius:c,segments:g,thetaStart:a,thetaLength:t};this.fromBufferGeometry(new Ye(c,g,a,t));this.mergeVertices()}function Ye(c,g,a,t){R.call(this);this.type="CircleBufferGeometry";this.parameters={radius:c,segments:g,thetaStart:a,thetaLength:t};c=c||1;g=void 0!==g?Math.max(3,g):8;a=void 0!==a?a:0;t=void 0!==t?t:2*Math.PI;var n=[],b=[],e=[],f=[],k,l,p=new h,m=new d;b.push(0,0,0);e.push(0,0,1);f.push(.5,.5);l=0;for(k=3;l<=g;l++,k+=3){var z=a+l/g*t;p.x=c*Math.cos(z);p.y=c*Math.sin(z);b.push(p.x,p.y,p.z);e.push(0,0,1);m.x=(b[k]/c+1)/2;m.y=(b[k+1]/c+1)/2;f.push(m.x,m.y)}for(k=1;k<=g;k++)n.push(k,k+1,0);this.setIndex(n);this.addAttribute("position",new K(b,3));this.addAttribute("normal",new K(e,3));this.addAttribute("uv",new K(f,2))}function Yc(c){S.call(this);this.type="ShadowMaterial";this.color=new u(0);this.transparent=!0;this.setValues(c)}function Hc(c){ga.call(this,c);this.type="RawShaderMaterial"}function ec(c){S.call(this);this.defines={STANDARD:""};this.type="MeshStandardMaterial";this.color=new u(16777215);this.metalness=this.roughness=.5;this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new u(0);this.emissiveIntensity=1;this.bumpMap=this.emissiveMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=0;this.normalScale=new d(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.envMap=this.alphaMap=this.metalnessMap=this.roughnessMap=null;this.envMapIntensity=1;this.refractionRatio=.98;this.wireframe=!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap="round";this.morphNormals=this.morphTargets=this.skinning=!1;this.setValues(c)}function md(c){ec.call(this);this.defines={PHYSICAL:""};this.type="MeshPhysicalMaterial";this.reflectivity=.5;this.clearCoatRoughness=this.clearCoat=0;this.setValues(c)}function yc(c){S.call(this);this.type="MeshPhongMaterial";this.color=new u(16777215);this.specular=new u(1118481);this.shininess=30;this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new u(0);this.emissiveIntensity=1;this.bumpMap=this.emissiveMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=0;this.normalScale=new d(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.envMap=this.alphaMap=this.specularMap=null;this.combine=0;this.reflectivity=1;this.refractionRatio=.98;this.wireframe=!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap="round";this.morphNormals=this.morphTargets=this.skinning=!1;this.setValues(c)}function Ed(c){yc.call(this);this.defines={TOON:""};this.type="MeshToonMaterial";this.gradientMap=null;this.setValues(c)}function Fd(c){S.call(this);this.type="MeshNormalMaterial";this.bumpMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=0;this.normalScale=new d(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.wireframe=!1;this.wireframeLinewidth=1;this.morphNormals=this.morphTargets=this.skinning=this.lights=this.fog=!1;this.setValues(c)}function Gd(c){S.call(this);this.type="MeshLambertMaterial";this.color=new u(16777215);this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new u(0);this.emissiveIntensity=1;this.envMap=this.alphaMap=this.specularMap=this.emissiveMap=null;this.combine=0;this.reflectivity=1;this.refractionRatio=.98;this.wireframe=!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap="round";this.morphNormals=this.morphTargets=this.skinning=!1;this.setValues(c)}function Hd(c){S.call(this);this.defines={MATCAP:""};this.type="MeshMatcapMaterial";this.color=new u(16777215);this.bumpMap=this.map=this.matcap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=0;this.normalScale=new d(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.alphaMap=null;this.lights=this.morphNormals=this.morphTargets=this.skinning=!1;this.setValues(c);if(null===this.matcap){c=document.createElement("canvas");c.width=1;c.height=1;var g=c.getContext("2d");g.fillStyle="#fff";g.fillRect(0,0,1,1);this.matcap=new GLE.CanvasTexture(c)}}function Id(c){Da.call(this);this.type="LineDashedMaterial";this.scale=1;this.dashSize=3;this.gapSize=1;this.setValues(c)}function wg(c,g,a){var n=this,b=!1,d=0,e=0,f=void 0;this.onStart=void 0;this.onLoad=c;this.onProgress=g;this.onError=a;this.itemStart=function(c){e++;if(!1===b&&void 0!==n.onStart)n.onStart(c,d,e);b=!0};this.itemEnd=function(c){d++;if(void 0!==n.onProgress)n.onProgress(c,d,e);if(d===e&&(b=!1,void 0!==n.onLoad))n.onLoad()};this.itemError=function(c){if(void 0!==n.onError)n.onError(c)};this.resolveURL=function(c){return f?f(c):c};this.setURLModifier=function(c){f=c;return this}}function ob(c){this.manager=void 0!==c?c:yb}function vh(c){this.manager=void 0!==c?c:yb;this._parser=null}function xg(c){this.manager=void 0!==c?c:yb;this._parser=null}function vb(c){this.manager=void 0!==c?c:yb}function yg(c){this.manager=void 0!==c?c:yb}function Za(c){this.manager=void 0!==c?c:yb}function ra(){this.type="Curve";this.arcLengthDivisions=200}function Rb(c,g,a,t,b,d,e,f){ra.call(this);this.type="EllipseCurve";this.aX=c||0;this.aY=g||0;this.xRadius=a||1;this.yRadius=t||1;this.aStartAngle=b||0;this.aEndAngle=d||2*Math.PI;this.aClockwise=e||!1;this.aRotation=f||0}function oe(c,g,a,t,b,d){Rb.call(this,c,g,a,a,t,b,d);this.type="ArcCurve"}function jc(){var c=0,g=0,a=0,t=0;return{initCatmullRom:function(n,b,d,e,f){n=f*(d-n);e=f*(e-b);c=b;g=n;a=-3*b+3*d-2*n-e;t=2*b-2*d+n+e},initNonuniformCatmullRom:function(n,b,d,e,f,h,k){n=((b-n)/f-(d-n)/(f+h)+(d-b)/h)*h;e=((d-b)/h-(e-b)/(h+k)+(e-d)/k)*h;c=b;g=n;a=-3*b+3*d-2*n-e;t=2*b-2*d+n+e},calc:function(n){var b=n*n;return c+g*n+a*b+t*b*n}}}function Jb(c,g,a,t){ra.call(this);this.type="CatmullRomCurve3";this.points=c||[];this.closed=g||!1;this.curveType=a||"centripetal";this.tension=t||.5}function Gi(c,g,a,t,b){g=.5*(t-g);b=.5*(b-a);var n=c*c;return(2*a-2*t+g+b)*c*n+(-3*a+3*t-2*g-b)*n+g*c+a}function Nf(c,g,a,t){var n=1-c;return n*n*g+2*(1-c)*c*a+c*c*t}function Ze(c,g,a,t,b){var n=1-c,d=1-c;return n*n*n*g+3*d*d*c*a+3*(1-c)*c*c*t+c*c*c*b}function fc(c,g,a,t){ra.call(this);this.type="CubicBezierCurve";this.v0=c||new d;this.v1=g||new d;this.v2=a||new d;this.v3=t||new d}function Kb(c,g,a,t){ra.call(this);this.type="CubicBezierCurve3";this.v0=c||new h;this.v1=g||new h;this.v2=a||new h;this.v3=t||new h}function Cb(c,g){ra.call(this);this.type="LineCurve";this.v1=c||new d;this.v2=g||new d}function Lb(c,g){ra.call(this);this.type="LineCurve3";this.v1=c||new h;this.v2=g||new h}function kc(c,g,a){ra.call(this);this.type="QuadraticBezierCurve";this.v0=c||new d;this.v1=g||new d;this.v2=a||new d}function lc(c,g,a){ra.call(this);this.type="QuadraticBezierCurve3";this.v0=c||new h;this.v1=g||new h;this.v2=a||new h}function gc(c){ra.call(this);this.type="SplineCurve";this.points=c||[]}function Ic(){ra.call(this);this.type="CurvePath";this.curves=[];this.autoClose=!1}function zc(c){Ic.call(this);this.type="Path";this.currentPoint=new d;c&&this.setFromPoints(c)}function nd(c){zc.call(this,c);this.uuid=Aa.generateUUID();this.type="Shape";this.holes=[]}function ib(c,g){F.call(this);this.type="Light";this.color=new u(c);this.intensity=void 0!==g?g:1;this.receiveShadow=void 0}function Of(c,g,a){ib.call(this,c,a);this.type="HemisphereLight";this.castShadow=void 0;this.position.copy(F.DefaultUp);this.updateMatrix();this.groundColor=new u(g)}function pe(c){this.camera=c;this.bias=0;this.radius=1;this.mapSize=new d(512,512);this.map=null;this.matrix=new e}function zg(){pe.call(this,new Ra(50,1,.5,500))}function Mb(c,g,a,t,b,d){ib.call(this,c,g);this.type="SpotLight";this.position.copy(F.DefaultUp);this.updateMatrix();this.target=new F;Object.defineProperty(this,"power",{get:function(){return this.intensity*Math.PI},set:function(c){this.intensity=c/Math.PI}});this.distance=void 0!==a?a:0;this.angle=void 0!==t?t:Math.PI/3;this.penumbra=void 0!==b?b:0;this.decay=void 0!==d?d:1;this.shadow=new zg}function Ag(c,g,a,t){ib.call(this,c,g);this.type="PointLight";Object.defineProperty(this,"power",{get:function(){return 4*this.intensity*Math.PI},set:function(c){this.intensity=c/(4*Math.PI)}});this.distance=void 0!==a?a:0;this.decay=void 0!==t?t:1;this.shadow=new pe(new Ra(90,1,.5,500))}function $e(c,g,a,t,b,d){nb.call(this);this.type="OrthographicCamera";this.zoom=1;this.view=null;this.left=c;this.right=g;this.top=a;this.bottom=t;this.near=void 0!==b?b:.1;this.far=void 0!==d?d:2E3;this.ux()}function af(){pe.call(this,new $e(-5,5,5,-5,.5,500))}function Jd(c,g){ib.call(this,c,g);this.type="Dt";this.position.copy(F.DefaultUp);this.updateMatrix();this.target=new F;this.shadow=new af}function Pf(c,g){ib.call(this,c,g);this.type="AmbientLight";this.castShadow=void 0}function Bg(c,g,a,t){ib.call(this,c,g);this.type="RectAreaLight";this.width=void 0!==a?a:10;this.height=void 0!==t?t:10}function mc(c,g,a,t){this.parameterPositions=c;this._cachedIndex=0;this.resultBuffer=void 0!==t?t:new g.constructor(a);this.sampleValues=g;this.valueSize=a}function Qf(c,g,a,t){mc.call(this,c,g,a,t);this._offsetNext=this._weightNext=this._offsetPrev=this._weightPrev=-0}function Rf(c,g,a,t){mc.call(this,c,g,a,t)}function Cg(c,g,a,t){mc.call(this,c,g,a,t)}function Db(c,g,a,t){if(void 0===c)throw Error("GLE.KeyframeTrack: track name is undefined");if(void 0===g||0===g.length)throw Error("GLE.KeyframeTrack: no keyframes in track named "+c);this.name=c;this.times=wb.convertArray(g,this.TimeBufferType);this.values=wb.convertArray(a,this.ValueBufferType);this.setInterpolation(t||this.DefaultInterpolation)}function Sf(c,g,a){Db.call(this,c,g,a)}function od(c,g,a,t){Db.call(this,c,g,a,t)}function Kd(c,g,a,t){Db.call(this,c,g,a,t)}function bf(c,g,a,t){mc.call(this,c,g,a,t)}function qe(c,g,a,t){Db.call(this,c,g,a,t)}function Tf(c,g,a,t){Db.call(this,c,g,a,t)}function re(c,g,a,t){Db.call(this,c,g,a,t)}function nc(c,g,a){this.name=c;this.tracks=a;this.duration=void 0!==g?g:-1;this.uuid=Aa.generateUUID();0>this.duration&&this.resetDuration()}function Hi(c){switch(c.toLowerCase()){case "scalar":case "double":case "float":case "number":case "integer":return Kd;case "vector":case "vector2":case "vector3":case "vector4":return re;case "color":return od;case "quaternion":return qe;case "bool":case "boolean":return Sf;case "string":return Tf}throw Error("GLE.KeyframeTrack: Unsupported typeName: "+c);}function Ii(c){if(void 0===c.type)throw Error("GLE.KeyframeTrack: track type undefined, can not parse");var g=Hi(c.type);if(void 0===c.times){var a=[],t=[];wb.flattenJSON(c.keys,a,t,"value");c.times=a;c.values=t}return void 0!==g.parse?g.parse(c):new g(c.name,c.times,c.values,c.interpolation)}function Uf(c){this.manager=void 0!==c?c:yb;this.textures={}}function Dg(c){this.manager=void 0!==c?c:yb}function pd(){}function cf(c){"boolean"===typeof c&&(console.warn("GLE.JSONLoader: showStatus parameter has been removed from constructor."),c=void 0);this.manager=void 0!==c?c:yb;this.withCredentials=!1}function wh(c){this.manager=void 0!==c?c:yb;this.texturePath=""}function Eg(c){"undefined"===typeof createImageBitmap&&console.warn("GLE.ImageBitmapLoader: createImageBitmap() not supported.");"undefined"===typeof fetch&&console.warn("GLE.ImageBitmapLoader: fetch() not supported.");this.manager=void 0!==c?c:yb;this.options=void 0}function Fg(){this.type="ShapePath";this.color=new u;this.subPaths=[];this.currentPath=null}function Gg(c){this.type="Font";this.data=c}function Ji(c){this.manager=void 0!==c?c:yb}function xh(c){this.manager=void 0!==c?c:yb}function yh(){this.type="StereoCamera";this.aspect=1;this.eyeSep=.064;this.cameraL=new Ra;this.cameraL.layers.enable(1);this.cameraL.matrixAutoUpdate=!1;this.cameraR=new Ra;this.cameraR.layers.enable(2);this.cameraR.matrixAutoUpdate=!1}function Ld(c,g,a){F.call(this);this.type="CubeCamera";var n=new Ra(90,1,c,g);n.up.set(0,-1,0);n.lookAt(new h(1,0,0));this.add(n);var b=new Ra(90,1,c,g);b.up.set(0,-1,0);b.lookAt(new h(-1,0,0));this.add(b);var d=new Ra(90,1,c,g);d.up.set(0,0,1);d.lookAt(new h(0,1,0));this.add(d);var e=new Ra(90,1,c,g);e.up.set(0,0,-1);e.lookAt(new h(0,-1,0));this.add(e);var f=new Ra(90,1,c,g);f.up.set(0,-1,0);f.lookAt(new h(0,0,1));this.add(f);var k=new Ra(90,1,c,g);k.up.set(0,-1,0);k.lookAt(new h(0,0,-1));this.add(k);this.renderTarget=new x(a,a,{format:1022,magFilter:1006,minFilter:1006});this.renderTarget.texture.name="CubeCamera";this.update=function(c,g){null===this.parent&&this.uld();var a=this.renderTarget,t=a.texture.generateMipmaps;a.texture.generateMipmaps=!1;a.activeCubeFace=0;c.render(g,n,a);a.activeCubeFace=1;c.render(g,b,a);a.activeCubeFace=2;c.render(g,d,a);a.activeCubeFace=3;c.render(g,e,a);a.activeCubeFace=4;c.render(g,f,a);a.texture.generateMipmaps=t;a.activeCubeFace=5;c.render(g,k,a);c.setRenderTarget(null)};this.clear=function(c,g,a,n){for(var t=this.renderTarget,b=0;6>b;b++)t.activeCubeFace=b,c.setRenderTarget(t),c.clear(g,a,n);c.setRenderTarget(null)}}function zh(){F.call(this);this.type="AudioListener";this.context=Hg.getContext();this.gain=this.context.createGain();this.gain.connect(this.context.destination);this.filter=null}function df(c){F.call(this);this.type="Audio";this.context=c.context;this.gain=this.context.createGain();this.gain.connect(c.getInput());this.autoplay=!1;this.buffer=null;this.loop=!1;this.offset=this.startTime=0;this.playbackRate=1;this.isPlaying=!1;this.hasPlaybackControl=!0;this.sourceType="empty";this.filters=[]}function Ah(c){df.call(this,c);this.panner=this.context.createPanner();this.panner.connect(this.gain)}function Ig(c,g){this.analyser=c.context.createAnalyser();this.analyser.fftSize=void 0!==g?g:2048;this.data=new Uint8Array(this.analyser.frequencyBinCount);c.getOutput().connect(this.analyser)}function Md(c,g,a){this.binding=c;this.valueSize=a;c=Float64Array;switch(g){case "quaternion":g=this._slerp;break;case "string":case "bool":c=Array;g=this._select;break;default:g=this._lerp}this.buffer=new c(4*a);this._mixBufferRegion=g;this.referenceCount=this.useCount=this.cumulativeWeight=0}function Vf(c,g,a){a=a||Eb.parseTrackName(g);this._targetGroup=c;this._bindings=c.subscribe_(g,a)}function Eb(c,g,a){this.path=g;this.parsedPath=a||Eb.parseTrackName(g);this.node=Eb.findNode(c,this.parsedPath.nodeName)||c;this.rootNode=c}function Bh(){this.uuid=Aa.generateUUID();this._objects=Array.prototype.slice.call(arguments);this.nCachedObjects_=0;var c={};this._indicesByUUID=c;for(var g=0,a=arguments.length;g!==a;++g)c[arguments[g].uuid]=g;this._paths=[];this._parsedPaths=[];this._bindings=[];this._bindingsIndicesByPath={};var t=this;this.stats={objects:{get total(){return t._objects.length},get inUse(){return this.total-t.nCachedObjects_}},get bindingsPerObject(){return t._bindings.length}}}function Ki(c,g,a){this._mixer=c;this._clip=g;this._localRoot=a||null;c=g.tracks;g=c.length;a=Array(g);for(var n={endingStart:2400,endingEnd:2400},b=0;b!==g;++b){var d=c[b].createInterpolant(null);a[b]=d;d.settings=n}this._interpolantSettings=n;this._interpolants=a;this._propertyBindings=Array(g);this._weightInterpolant=this._timeScaleInterpolant=this._byClipCacheIndex=this._cacheIndex=null;this.loop=2200;this._loopCount=-1;this._startTime=null;this.time=0;this._effectiveWeight=this.weight=this._effectiveTimeScale=this.timeScale=1;this.repetitions=Infinity;this.paused=!1;this.enabled=!0;this.clampWhenFinished=!1;this.zeroSlopeAtEnd=this.zeroSlopeAtStart=!0}function Jg(c){this._root=c;this._initMemoryManager();this.time=this._accuIndex=0;this.timeScale=1}function Wf(c,g){"string"===typeof c&&(console.warn("GLE.Uniform: Type parameter is no longer needed."),c=g);this.value=c}function Kg(){R.call(this);this.type="InstancedBufferGeometry";this.maxInstancedCount=void 0}function Lg(c,g,a){ae.call(this,c,g);this.meshPerAttribute=a||1}function qd(c,g,a,t){"number"===typeof a&&(t=a,a=!1,console.error("GLE.InstancedBufferAttribute: The constructor now expects normalized as the third argument."));A.call(this,c,g,a);this.meshPerAttribute=t||1}function Li(c,g,a,t){this.ray=new ja(c,g);this.near=a||0;this.far=t||Infinity;this.params={Mesh:{},Line:{},LOD:{},Points:{threshold:1},Sprite:{}};Object.defineProperties(this.params,{PointCloud:{get:function(){console.warn("GLE.Rr: params.PointCloud has been renamed to params.Points.");return this.Points}}})}function Mi(c,g){return c.distance-g.distance}function Mg(c,g,a,t){if(!1!==c.visible&&(c.raycast(g,a),!0===t)){c=c.children;t=0;for(var n=c.length;t<n;t++)Mg(c[t],g,a,!0)}}function Ni(c){this.autoStart=void 0!==c?c:!0;this.elapsedTime=this.oldTime=this.startTime=0;this.running=!1}function Nd(c,g,a){this.radius=void 0!==c?c:1;this.phi=void 0!==g?g:0;this.theta=void 0!==a?a:0;return this}function Ch(c,g,a){this.radius=void 0!==c?c:1;this.theta=void 0!==g?g:0;this.y=void 0!==a?a:0;return this}function Dh(c,g){this.min=void 0!==c?c:new d(Infinity,Infinity);this.max=void 0!==g?g:new d(-Infinity,-Infinity)}function Eh(c,g){this.start=void 0!==c?c:new h;this.end=void 0!==g?g:new h}function ef(c){F.call(this);this.material=c;this.render=function(){}}function Xf(c,g,a,t){this.object=c;this.size=void 0!==g?g:1;c=void 0!==a?a:16711680;t=void 0!==t?t:1;g=0;(a=this.object.geometry)&&a.isGeometry?g=3*a.faces.length:a&&a.isBufferGeometry&&(g=a.attributes.normal.count);a=new R;g=new K(6*g,3);a.addAttribute("position",g);Ha.call(this,a,new Da({color:c,linewidth:t}));this.matrixAutoUpdate=!1;this.update()}function ff(c,g){F.call(this);this.light=c;this.light.uld();this.matrix=c.matrixWorld;this.matrixAutoUpdate=!1;this.color=g;for(var a=new R,t=[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],b=0,d=1;32>b;b++,d++){var e=b/32*Math.PI*2,f=d/32*Math.PI*2;t.push(Math.cos(e),Math.sin(e),1,Math.cos(f),Math.sin(f),1)}a.addAttribute("position",new K(t,3));t=new Da({fog:!1});this.cone=new Ha(a,t);this.add(this.cone);this.update()}function Oi(c){var g=[];c&&c.isBone&&g.push(c);for(var a=0;a<c.children.length;a++)g.push.apply(g,Oi(c.children[a]));return g}function se(c){for(var g=Oi(c),a=new R,t=[],b=[],d=new u(0,0,1),e=new u(0,1,0),f=0;f<g.length;f++){var h=g[f];h.parent&&h.parent.isBone&&(t.push(0,0,0),t.push(0,0,0),b.push(d.r,d.g,d.b),b.push(e.r,e.g,e.b))}a.addAttribute("position",new K(t,3));a.addAttribute("color",new K(b,3));t=new Da({vertexColors:2,depthTest:!1,depthWrite:!1,transparent:!0});Ha.call(this,a,t);this.root=c;this.bones=g;this.matrix=c.matrixWorld;this.matrixAutoUpdate=!1}function te(c,g,a){this.light=c;this.light.uld();this.color=a;c=new ab(g,4,2);g=new ha({wireframe:!0,fog:!1});na.call(this,c,g);this.matrix=this.light.matrixWorld;this.matrixAutoUpdate=!1;this.update()}function gf(c,g){F.call(this);this.light=c;this.light.uld();this.matrix=c.matrixWorld;this.matrixAutoUpdate=!1;this.color=g;var a=new Da({fog:!1}),t=new R;t.addAttribute("position",new A(new Float32Array(15),3));this.line=new Pb(t,a);this.add(this.line);this.update()}function ue(c,g,a){F.call(this);this.light=c;this.light.uld();this.matrix=c.matrixWorld;this.matrixAutoUpdate=!1;this.color=a;c=new kd(g);c.rotateY(.5*Math.PI);this.material=new ha({wireframe:!0,fog:!1});void 0===this.color&&(this.material.vertexColors=2);g=c.getAttribute("position");g=new Float32Array(3*g.count);c.addAttribute("color",new A(g,3));this.add(new na(c,this.material));this.update()}function hf(c,g,a,t){c=c||10;g=g||10;a=new u(void 0!==a?a:4473924);t=new u(void 0!==t?t:8947848);var n=g/2,b=c/g,d=c/2;c=[];for(var e=[],f=0,h=0,k=-d;f<=g;f++,k+=b){c.push(-d,0,k,d,0,k);c.push(k,0,-d,k,0,d);var l=f===n?a:t;l.toArray(e,h);h+=3;l.toArray(e,h);h+=3;l.toArray(e,h);h+=3;l.toArray(e,h);h+=3}g=new R;g.addAttribute("position",new K(c,3));g.addAttribute("color",new K(e,3));a=new Da({vertexColors:2});Ha.call(this,g,a)}function Yf(c,g,a,b,d,e){c=c||10;g=g||16;a=a||8;b=b||64;d=new u(void 0!==d?d:4473924);e=new u(void 0!==e?e:8947848);var n=[],t=[],y,f,h,k,I;for(h=0;h<=g;h++)f=h/g*2*Math.PI,y=Math.sin(f)*c,f=Math.cos(f)*c,n.push(0,0,0),n.push(y,0,f),I=h&1?d:e,t.push(I.r,I.g,I.b),t.push(I.r,I.g,I.b);for(h=0;h<=a;h++)for(I=h&1?d:e,k=c-c/a*h,g=0;g<b;g++)f=g/b*2*Math.PI,y=Math.sin(f)*k,f=Math.cos(f)*k,n.push(y,0,f),t.push(I.r,I.g,I.b),f=(g+1)/b*2*Math.PI,y=Math.sin(f)*k,f=Math.cos(f)*k,n.push(y,0,f),t.push(I.r,I.g,I.b);c=new R;c.addAttribute("position",new K(n,3));c.addAttribute("color",new K(t,3));n=new Da({vertexColors:2});Ha.call(this,c,n)}function rd(c,g,a,b){this.object=c;this.size=void 0!==g?g:1;c=void 0!==a?a:16776960;b=void 0!==b?b:1;g=0;(a=this.object.geometry)&&a.isGeometry?g=a.faces.length:console.warn("GLE.FaceNormalsHelper: only GLE.Geometry is supported. Use GLE.VertexNormalsHelper, instead.");a=new R;g=new K(6*g,3);a.addAttribute("position",g);Ha.call(this,a,new Da({color:c,linewidth:b}));this.matrixAutoUpdate=!1;this.update()}function Od(c,g,a){F.call(this);this.light=c;this.light.uld();this.matrix=c.matrixWorld;this.matrixAutoUpdate=!1;this.color=a;void 0===g&&(g=1);c=new R;c.addAttribute("position",new K([-g,g,0,g,g,0,g,-g,0,-g,-g,0,-g,g,0],3));g=new Da({fog:!1});this.lightPlane=new Pb(c,g);this.add(this.lightPlane);c=new R;c.addAttribute("position",new K([0,0,0,0,0,1],3));this.targetLine=new Pb(c,g);this.add(this.targetLine);this.update()}function ve(c){function g(c,g,n){a(c,n);a(g,n)}function a(c,g){e.push(0,0,0);f.push(g.r,g.g,g.b);void 0===h[c]&&(h[c]=[]);h[c].push(e.length/3-1)}var b=new R,d=new Da({color:16777215,vertexColors:1}),e=[],f=[],h={},k=new u(16755200),l=new u(16711680),p=new u(43775),m=new u(16777215),z=new u(3355443);g("n1","n2",k);g("n2","n4",k);g("n4","n3",k);g("n3","n1",k);g("f1","f2",k);g("f2","f4",k);g("f4","f3",k);g("f3","f1",k);g("n1","f1",k);g("n2","f2",k);g("n3","f3",k);g("n4","f4",k);g("p","n1",l);g("p","n2",l);g("p","n3",l);g("p","n4",l);g("u1","u2",p);g("u2","u3",p);g("u3","u1",p);g("c","t",m);g("p","c",z);g("cn1","cn2",z);g("cn3","cn4",z);g("cf1","cf2",z);g("cf3","cf4",z);b.addAttribute("position",new K(e,3));b.addAttribute("color",new K(f,3));Ha.call(this,b,d);this.camera=c;this.camera.ux&&this.camera.ux();this.matrix=c.matrixWorld;this.matrixAutoUpdate=!1;this.pointMap=h;this.update()}function Ac(c,g){this.object=c;void 0===g&&(g=16776960);var a=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]),b=new Float32Array(24),d=new R;d.setIndex(new A(a,1));d.addAttribute("position",new A(b,3));Ha.call(this,d,new Da({color:g}));this.matrixAutoUpdate=!1;this.update()}function we(c,g){this.type="Box3Helper";this.box=c;var a=void 0!==g?g:16776960,b=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]),d=new R;d.setIndex(new A(b,1));d.addAttribute("position",new K([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));Ha.call(this,d,new Da({color:a}));this.geometry.computeBoundingSphere()}function xe(c,g,a){this.type="pr";this.plane=c;this.size=void 0===g?1:g;c=void 0!==a?a:16776960;g=new R;g.addAttribute("position",new K([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));g.computeBoundingSphere();Pb.call(this,g,new Da({color:c}));g=new R;g.addAttribute("position",new K([1,1,1,-1,1,1,-1,-1,1,1,1,1,-1,-1,1,1,-1,1],3));g.computeBoundingSphere();this.add(new na(g,new ha({color:c,opacity:.2,transparent:!0,depthWrite:!1})))}function Pd(c,g,a,b,d,e){F.call(this);void 0===b&&(b=16776960);void 0===a&&(a=1);void 0===d&&(d=.2*a);void 0===e&&(e=.2*d);void 0===Qd&&(Qd=new R,Qd.addAttribute("position",new K([0,0,0,0,1,0],3)),Fh=new ld(0,.5,1,5,1),Fh.translate(0,-.5,0));this.position.copy(g);this.line=new Pb(Qd,new Da({color:b}));this.line.matrixAutoUpdate=!1;this.add(this.line);this.cone=new na(Fh,new ha({color:b}));this.cone.matrixAutoUpdate=!1;this.add(this.cone);this.setDirection(c);this.setLength(a,d,e)}function jf(c){c=c||1;var g=[0,0,0,c,0,0,0,0,0,0,c,0,0,0,0,0,0,c];c=new R;c.addAttribute("position",new K(g,3));c.addAttribute("color",new K([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3));g=new Da({vertexColors:2});Ha.call(this,c,g)}function Jc(c){console.warn("GLE.ClosedSplineCurve3 has been deprecated. Use GLE.CatmullRomCurve3 instead.");Jb.call(this,c);this.type="catmullrom";this.closed=!0}function Ng(c){console.warn("GLE.SplineCurve3 has been deprecated. Use GLE.CatmullRomCurve3 instead.");Jb.call(this,c);this.type="catmullrom"}function Zf(c){console.warn("GLE.Spline has been removed. Use GLE.CatmullRomCurve3 instead.");Jb.call(this,c);this.type="catmullrom"}void 0===Number.EPSILON&&(Number.EPSILON=Math.pow(2,-52));void 0===Number.isInteger&&(Number.isInteger=function(c){return"number"===typeof c&&isFinite(c)&&Math.floor(c)===c});void 0===Math.sign&&(Math.sign=function(c){return 0>c?-1:0<c?1:+c});!1==="name"in Function.prototype&&Object.defineProperty(Function.prototype,"name",{get:function(){return this.toString().match(/^\s*function\s*([^\(\s]*)/)[1]}});void 0===Object.assign&&function(){Object.assign=function(c){if(void 0===c||null===c)throw new TypeError("Cannot convert undefined or null to object");for(var g=Object(c),a=1;a<arguments.length;a++){var b=arguments[a];if(void 0!==b&&null!==b)for(var d in b)Object.prototype.hasOwnProperty.call(b,d)&&(g[d]=b[d])}return g}}();Object.assign(b.prototype,{addEventListener:function(c,g){void 0===this._listeners&&(this._listeners={});var a=this._listeners;void 0===a[c]&&(a[c]=[]);-1===a[c].indexOf(g)&&a[c].push(g)},hasEventListener:function(c,g){if(void 0===this._listeners)return!1;var a=this._listeners;return void 0!==a[c]&&-1!==a[c].indexOf(g)},removeEventListener:function(c,g){if(void 0!==this._listeners){var a=this._listeners[c];if(void 0!==a){var b=a.indexOf(g);-1!==b&&a.splice(b,1)}}},dispatchEvent:function(c){if(void 0!==this._listeners){var g=this._listeners[c.type];if(void 0!==g){c.target=this;for(var g=g.slice(0),a=0,b=g.length;a<b;a++)g[a].call(this,c)}}}});var Aa={DEG2RAD:Math.PI/180,RAD2DEG:180/Math.PI,generateUUID:function(){for(var c=[],g=0;256>g;g++)c[g]=(16>g?"0":"")+g.toString(16);return function(){var g=4294967295*Math.random()|0,a=4294967295*Math.random()|0,b=4294967295*Math.random()|0,d=4294967295*Math.random()|0;return(c[g&255]+c[g>>8&255]+c[g>>16&255]+c[g>>24&255]+"-"+c[a&255]+c[a>>8&255]+"-"+c[a>>16&15|64]+c[a>>24&255]+"-"+c[b&63|128]+c[b>>8&255]+"-"+c[b>>16&255]+c[b>>24&255]+c[d&255]+c[d>>8&255]+c[d>>16&255]+c[d>>24&255]).toUpperCase()}}(),clamp:function(c,g,a){return Math.max(g,Math.min(a,c))},euclideanModulo:function(c,g){return(c%g+g)%g},mapLinear:function(c,g,a,b,d){return b+(c-g)*(d-b)/(a-g)},lerp:function(c,g,a){return(1-a)*c+a*g},smoothstep:function(c,g,a){if(c<=g)return 0;if(c>=a)return 1;c=(c-g)/(a-g);return c*c*(3-2*c)},smootherstep:function(c,g,a){if(c<=g)return 0;if(c>=a)return 1;c=(c-g)/(a-g);return c*c*c*(c*(6*c-15)+10)},randInt:function(c,g){return c+Math.floor(Math.random()*(g-c+1))},randFloat:function(c,g){return c+Math.random()*(g-c)},randFloatSpread:function(c){return c*(.5-Math.random())},degToRad:function(c){return c*Aa.DEG2RAD},radToDeg:function(c){return c*Aa.RAD2DEG},isPowerOfTwo:function(c){return 0===(c&c-1)&&0!==c},ceilPowerOfTwo:function(c){return Math.pow(2,Math.ceil(Math.log(c)/Math.LN2))},floorPowerOfTwo:function(c){return Math.pow(2,Math.floor(Math.log(c)/Math.LN2))}};Object.defineProperties(d.prototype,{width:{get:function(){return this.x},set:function(c){this.x=c}},height:{get:function(){return this.y},set:function(c){this.y=c}}});Object.assign(d.prototype,{isVector2:!0,set:function(c,g){this.x=c;this.y=g;return this},setScalar:function(c){this.y=this.x=c;return this},setX:function(c){this.x=c;return this},setY:function(c){this.y=c;return this},setComponent:function(c,g){switch(c){case 0:this.x=g;break;case 1:this.y=g;break;default:throw Error("index is out of range: "+c);}return this},getComponent:function(c){switch(c){case 0:return this.x;case 1:return this.y;default:throw Error("index is out of range: "+c);}},clone:function(){return new this.constructor(this.x,this.y)},copy:function(c){this.x=c.x;this.y=c.y;return this},add:function(c,g){if(void 0!==g)return console.warn("GLE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(c,g);this.x+=c.x;this.y+=c.y;return this},addScalar:function(c){this.x+=c;this.y+=c;return this},addVectors:function(c,g){this.x=c.x+g.x;this.y=c.y+g.y;return this},addScaledVector:function(c,g){this.x+=c.x*g;this.y+=c.y*g;return this},sub:function(c,g){if(void 0!==g)return console.warn("GLE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(c,g);this.x-=c.x;this.y-=c.y;return this},subScalar:function(c){this.x-=c;this.y-=c;return this},subVectors:function(c,g){this.x=c.x-g.x;this.y=c.y-g.y;return this},multiply:function(c){this.x*=c.x;this.y*=c.y;return this},multiplyScalar:function(c){this.x*=c;this.y*=c;return this},divide:function(c){this.x/=c.x;this.y/=c.y;return this},divideScalar:function(c){return this.multiplyScalar(1/c)},applyMatrix3:function(c){var g=this.x,a=this.y;c=c.elements;this.x=c[0]*g+c[3]*a+c[6];this.y=c[1]*g+c[4]*a+c[7];return this},min:function(c){this.x=Math.min(this.x,c.x);this.y=Math.min(this.y,c.y);return this},max:function(c){this.x=Math.max(this.x,c.x);this.y=Math.max(this.y,c.y);return this},clamp:function(c,g){this.x=Math.max(c.x,Math.min(g.x,this.x));this.y=Math.max(c.y,Math.min(g.y,this.y));return this},clampScalar:function(){var c=new d,g=new d;return function(a,b){c.set(a,a);g.set(b,b);return this.clamp(c,g)}}(),clampLength:function(c,g){var a=this.length();return this.divideScalar(a||1).multiplyScalar(Math.max(c,Math.min(g,a)))},floor:function(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);return this},ceil:function(){this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);return this},round:function(){this.x=Math.round(this.x);this.y=Math.round(this.y);return this},roundToZero:function(){this.x=0>this.x?Math.ceil(this.x):Math.floor(this.x);this.y=0>this.y?Math.ceil(this.y):Math.floor(this.y);return this},negate:function(){this.x=-this.x;this.y=-this.y;return this},dot:function(c){return this.x*c.x+this.y*c.y},cross:function(c){return this.x*c.y-this.y*c.x},lengthSq:function(){return this.x*this.x+this.y*this.y},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)},normalize:function(){return this.divideScalar(this.length()||1)},angle:function(){var c=Math.atan2(this.y,this.x);0>c&&(c+=2*Math.PI);return c},distanceTo:function(c){return Math.sqrt(this.distanceToSquared(c))},distanceToSquared:function(c){var g=this.x-c.x;c=this.y-c.y;return g*g+c*c},manhattanDistanceTo:function(c){return Math.abs(this.x-c.x)+Math.abs(this.y-c.y)},setLength:function(c){return this.normalize().multiplyScalar(c)},lerp:function(c,g){this.x+=(c.x-this.x)*g;this.y+=(c.y-this.y)*g;return this},lerpVectors:function(c,g,a){return this.subVectors(g,c).multiplyScalar(a).add(c)},equals:function(c){return c.x===this.x&&c.y===this.y},fromArray:function(c,g){void 0===g&&(g=0);this.x=c[g];this.y=c[g+1];return this},toArray:function(c,g){void 0===c&&(c=[]);void 0===g&&(g=0);c[g]=this.x;c[g+1]=this.y;return c},fromBufferAttribute:function(c,g,a){void 0!==a&&console.warn("GLE.Vector2: offset has been removed from .fromBufferAttribute().");this.x=c.getX(g);this.y=c.getY(g);return this},rotateAround:function(c,g){var a=Math.cos(g),b=Math.sin(g),d=this.x-c.x,e=this.y-c.y;this.x=d*a-e*b+c.x;this.y=d*b+e*a+c.y;return this}});Object.assign(e.prototype,{isMatrix4:!0,set:function(c,g,a,b,d,e,f,h,k,l,p,m,z,u,v,q){var n=this.elements;n[0]=c;n[4]=g;n[8]=a;n[12]=b;n[1]=d;n[5]=e;n[9]=f;n[13]=h;n[2]=k;n[6]=l;n[10]=p;n[14]=m;n[3]=z;n[7]=u;n[11]=v;n[15]=q;return this},identity:function(){this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1);return this},clone:function(){return(new e).fromArray(this.elements)},copy:function(c){var g=this.elements;c=c.elements;g[0]=c[0];g[1]=c[1];g[2]=c[2];g[3]=c[3];g[4]=c[4];g[5]=c[5];g[6]=c[6];g[7]=c[7];g[8]=c[8];g[9]=c[9];g[10]=c[10];g[11]=c[11];g[12]=c[12];g[13]=c[13];g[14]=c[14];g[15]=c[15];return this},copyPosition:function(c){var g=this.elements;c=c.elements;g[12]=c[12];g[13]=c[13];g[14]=c[14];return this},extractBasis:function(c,g,a){c.setFromMatrixColumn(this,0);g.setFromMatrixColumn(this,1);a.setFromMatrixColumn(this,2);return this},makeBasis:function(c,g,a){this.set(c.x,g.x,a.x,0,c.y,g.y,a.y,0,c.z,g.z,a.z,0,0,0,0,1);return this},extractRotation:function(){var c=new h;return function(g){var a=this.elements,b=g.elements,d=1/c.setFromMatrixColumn(g,0).length(),e=1/c.setFromMatrixColumn(g,1).length();g=1/c.setFromMatrixColumn(g,2).length();a[0]=b[0]*d;a[1]=b[1]*d;a[2]=b[2]*d;a[3]=0;a[4]=b[4]*e;a[5]=b[5]*e;a[6]=b[6]*e;a[7]=0;a[8]=b[8]*g;a[9]=b[9]*g;a[10]=b[10]*g;a[11]=0;a[12]=0;a[13]=0;a[14]=0;a[15]=1;return this}}(),makeRotationFromEuler:function(c){c&&c.isEuler||console.error("GLE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.");var g=this.elements,a=c.x,b=c.y,d=c.z,e=Math.cos(a),a=Math.sin(a),f=Math.cos(b),b=Math.sin(b),h=Math.cos(d),d=Math.sin(d);if("XYZ"===c.order){c=e*h;var k=e*d,l=a*h,p=a*d;g[0]=f*h;g[4]=-f*d;g[8]=b;g[1]=k+l*b;g[5]=c-p*b;g[9]=-a*f;g[2]=p-c*b;g[6]=l+k*b;g[10]=e*f}else"YXZ"===c.order?(c=f*h,k=f*d,l=b*h,p=b*d,g[0]=c+p*a,g[4]=l*a-k,g[8]=e*b,g[1]=e*d,g[5]=e*h,g[9]=-a,g[2]=k*a-l,g[6]=p+c*a,g[10]=e*f):"ZXY"===c.order?(c=f*h,k=f*d,l=b*h,p=b*d,g[0]=c-p*a,g[4]=-e*d,g[8]=l+k*a,g[1]=k+l*a,g[5]=e*h,g[9]=p-c*a,g[2]=-e*b,g[6]=a,g[10]=e*f):"ZYX"===c.order?(c=e*h,k=e*d,l=a*h,p=a*d,g[0]=f*h,g[4]=l*b-k,g[8]=c*b+p,g[1]=f*d,g[5]=p*b+c,g[9]=k*b-l,g[2]=-b,g[6]=a*f,g[10]=e*f):"YZX"===c.order?(c=e*f,k=e*b,l=a*f,p=a*b,g[0]=f*h,g[4]=p-c*d,g[8]=l*d+k,g[1]=d,g[5]=e*h,g[9]=-a*h,g[2]=-b*h,g[6]=k*d+l,g[10]=c-p*d):"XZY"===c.order&&(c=e*f,k=e*b,l=a*f,p=a*b,g[0]=f*h,g[4]=-d,g[8]=b*h,g[1]=c*d+p,g[5]=e*h,g[9]=k*d-l,g[2]=l*d-k,g[6]=a*h,g[10]=p*d+c);g[3]=0;g[7]=0;g[11]=0;g[12]=0;g[13]=0;g[14]=0;g[15]=1;return this},makeRotationFromQuaternion:function(){var c=new h(0,0,0),g=new h(1,1,1);return function(a){return this.compose(c,a,g)}}(),lookAt:function(){var c=new h,g=new h,a=new h;return function(n,b,d){var t=this.elements;a.subVectors(n,b);0===a.lengthSq()&&(a.z=1);a.normalize();c.crossVectors(d,a);0===c.lengthSq()&&(1===Math.abs(d.z)?a.x+=1E-4:a.z+=1E-4,a.normalize(),c.crossVectors(d,a));c.normalize();g.crossVectors(a,c);t[0]=c.x;t[4]=g.x;t[8]=a.x;t[1]=c.y;t[5]=g.y;t[9]=a.y;t[2]=c.z;t[6]=g.z;t[10]=a.z;return this}}(),multiply:function(c,g){return void 0!==g?(console.warn("GLE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead."),this.multiplyMatrices(c,g)):this.multiplyMatrices(this,c)},premultiply:function(c){return this.multiplyMatrices(c,this)},multiplyMatrices:function(c,g){var a=c.elements,b=g.elements,d=this.elements,e=a[0],f=a[4],h=a[8],k=a[12],l=a[1],p=a[5],m=a[9],z=a[13],u=a[2],v=a[6],q=a[10],r=a[14],E=a[3],C=a[7],w=a[11],a=a[15],B=b[0],D=b[4],x=b[8],J=b[12],A=b[1],X=b[5],sa=b[9],G=b[13],xa=b[2],la=b[6],K=b[10],fa=b[14],Ba=b[3],T=b[7],F=b[11],b=b[15];d[0]=e*B+f*A+h*xa+k*Ba;d[4]=e*D+f*X+h*la+k*T;d[8]=e*x+f*sa+h*K+k*F;d[12]=e*J+f*G+h*fa+k*b;d[1]=l*B+p*A+m*xa+z*Ba;d[5]=l*D+p*X+m*la+z*T;d[9]=l*x+p*sa+m*K+z*F;d[13]=l*J+p*G+m*fa+z*b;d[2]=u*B+v*A+q*xa+r*Ba;d[6]=u*D+v*X+q*la+r*T;d[10]=u*x+v*sa+q*K+r*F;d[14]=u*J+v*G+q*fa+r*b;d[3]=E*B+C*A+w*xa+a*Ba;d[7]=E*D+C*X+w*la+a*T;d[11]=E*x+C*sa+w*K+a*F;d[15]=E*J+C*G+w*fa+a*b;return this},multiplyScalar:function(c){var g=this.elements;g[0]*=c;g[4]*=c;g[8]*=c;g[12]*=c;g[1]*=c;g[5]*=c;g[9]*=c;g[13]*=c;g[2]*=c;g[6]*=c;g[10]*=c;g[14]*=c;g[3]*=c;g[7]*=c;g[11]*=c;g[15]*=c;return this},applyToBufferAttribute:function(){var c=new h;return function(g){for(var a=0,b=g.count;a<b;a++)c.x=g.getX(a),c.y=g.getY(a),c.z=g.getZ(a),c.applyMatrix4(this),g.setXYZ(a,c.x,c.y,c.z);return g}}(),determinant:function(){var c=this.elements,g=c[0],a=c[4],b=c[8],d=c[12],e=c[1],f=c[5],h=c[9],k=c[13],l=c[2],p=c[6],m=c[10],z=c[14];return c[3]*(+d*h*p-b*k*p-d*f*m+a*k*m+b*f*z-a*h*z)+c[7]*(+g*h*z-g*k*m+d*e*m-b*e*z+b*k*l-d*h*l)+c[11]*(+g*k*p-g*f*z-d*e*p+a*e*z+d*f*l-a*k*l)+c[15]*(-b*f*l-g*h*p+g*f*m+b*e*p-a*e*m+a*h*l)},transpose:function(){var c=this.elements,g;g=c[1];c[1]=c[4];c[4]=g;g=c[2];c[2]=c[8];c[8]=g;g=c[6];c[6]=c[9];c[9]=g;g=c[3];c[3]=c[12];c[12]=g;g=c[7];c[7]=c[13];c[13]=g;g=c[11];c[11]=c[14];c[14]=g;return this},setPosition:function(c){var g=this.elements;g[12]=c.x;g[13]=c.y;g[14]=c.z;return this},getInverse:function(c,g){var a=this.elements,b=c.elements,d=b[0],e=b[1],f=b[2],h=b[3],k=b[4],l=b[5],p=b[6],m=b[7],z=b[8],u=b[9],v=b[10],q=b[11],r=b[12],E=b[13],C=b[14],b=b[15],w=u*C*m-E*v*m+E*p*q-l*C*q-u*p*b+l*v*b,B=r*v*m-z*C*m-r*p*q+k*C*q+z*p*b-k*v*b,D=z*E*m-r*u*m+r*l*q-k*E*q-z*l*b+k*u*b,x=r*u*p-z*E*p-r*l*v+k*E*v+z*l*C-k*u*C,J=d*w+e*B+f*D+h*x;if(0===J){if(!0===g)throw Error("GLE.Matrix4: .getInverse() can't invert matrix, determinant is 0");console.warn("GLE.Matrix4: .getInverse() can't invert matrix, determinant is 0");return this.identity()}J=1/J;a[0]=w*J;a[1]=(E*v*h-u*C*h-E*f*q+e*C*q+u*f*b-e*v*b)*J;a[2]=(l*C*h-E*p*h+E*f*m-e*C*m-l*f*b+e*p*b)*J;a[3]=(u*p*h-l*v*h-u*f*m+e*v*m+l*f*q-e*p*q)*J;a[4]=B*J;a[5]=(z*C*h-r*v*h+r*f*q-d*C*q-z*f*b+d*v*b)*J;a[6]=(r*p*h-k*C*h-r*f*m+d*C*m+k*f*b-d*p*b)*J;a[7]=(k*v*h-z*p*h+z*f*m-d*v*m-k*f*q+d*p*q)*J;a[8]=D*J;a[9]=(r*u*h-z*E*h-r*e*q+d*E*q+z*e*b-d*u*b)*J;a[10]=(k*E*h-r*l*h+r*e*m-d*E*m-k*e*b+d*l*b)*J;a[11]=(z*l*h-k*u*h-z*e*m+d*u*m+k*e*q-d*l*q)*J;a[12]=x*J;a[13]=(z*E*f-r*u*f+r*e*v-d*E*v-z*e*C+d*u*C)*J;a[14]=(r*l*f-k*E*f-r*e*p+d*E*p+k*e*C-d*l*C)*J;a[15]=(k*u*f-z*l*f+z*e*p-d*u*p-k*e*v+d*l*v)*J;return this},scale:function(c){var g=this.elements,a=c.x,b=c.y;c=c.z;g[0]*=a;g[4]*=b;g[8]*=c;g[1]*=a;g[5]*=b;g[9]*=c;g[2]*=a;g[6]*=b;g[10]*=c;g[3]*=a;g[7]*=b;g[11]*=c;return this},getMaxScaleOnAxis:function(){var c=this.elements;return Math.sqrt(Math.max(c[0]*c[0]+c[1]*c[1]+c[2]*c[2],c[4]*c[4]+c[5]*c[5]+c[6]*c[6],c[8]*c[8]+c[9]*c[9]+c[10]*c[10]))},makeTranslation:function(c,g,a){this.set(1,0,0,c,0,1,0,g,0,0,1,a,0,0,0,1);return this},makeRotationX:function(c){var g=Math.cos(c);c=Math.sin(c);this.set(1,0,0,0,0,g,-c,0,0,c,g,0,0,0,0,1);return this},makeRotationY:function(c){var g=Math.cos(c);c=Math.sin(c);this.set(g,0,c,0,0,1,0,0,-c,0,g,0,0,0,0,1);return this},makeRotationZ:function(c){var g=Math.cos(c);c=Math.sin(c);this.set(g,-c,0,0,c,g,0,0,0,0,1,0,0,0,0,1);return this},makeRotationAxis:function(c,g){var a=Math.cos(g),b=Math.sin(g),d=1-a,e=c.x,f=c.y,h=c.z,k=d*e,l=d*f;this.set(k*e+a,k*f-b*h,k*h+b*f,0,k*f+b*h,l*f+a,l*h-b*e,0,k*h-b*f,l*h+b*e,d*h*h+a,0,0,0,0,1);return this},makeScale:function(c,g,a){this.set(c,0,0,0,0,g,0,0,0,0,a,0,0,0,0,1);return this},makeShear:function(c,g,a){this.set(1,g,a,0,c,1,a,0,c,g,1,0,0,0,0,1);return this},compose:function(c,g,a){var n=this.elements,b=g._x,d=g._y,e=g._z,f=g._w,h=b+b,k=d+d,l=e+e;g=b*h;var p=b*k,b=b*l,m=d*k,d=d*l,e=e*l,h=f*h,k=f*k,f=f*l,l=a.x,z=a.y;a=a.z;n[0]=(1-(m+e))*l;n[1]=(p+f)*l;n[2]=(b-k)*l;n[3]=0;n[4]=(p-f)*z;n[5]=(1-(g+e))*z;n[6]=(d+h)*z;n[7]=0;n[8]=(b+k)*a;n[9]=(d-h)*a;n[10]=(1-(g+m))*a;n[11]=0;n[12]=c.x;n[13]=c.y;n[14]=c.z;n[15]=1;return this},decompose:function(){var c=new h,g=new e;return function(a,b,d){var n=this.elements,t=c.set(n[0],n[1],n[2]).length(),e=c.set(n[4],n[5],n[6]).length(),y=c.set(n[8],n[9],n[10]).length();0>this.determinant()&&(t=-t);a.x=n[12];a.y=n[13];a.z=n[14];g.copy(this);a=1/t;var n=1/e,f=1/y;g.elements[0]*=a;g.elements[1]*=a;g.elements[2]*=a;g.elements[4]*=n;g.elements[5]*=n;g.elements[6]*=n;g.elements[8]*=f;g.elements[9]*=f;g.elements[10]*=f;b.setFromRotationMatrix(g);d.x=t;d.y=e;d.z=y;return this}}(),makePerspective:function(c,g,a,b,d,e){void 0===e&&console.warn("GLE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.");var n=this.elements;n[0]=2*d/(g-c);n[4]=0;n[8]=(g+c)/(g-c);n[12]=0;n[1]=0;n[5]=2*d/(a-b);n[9]=(a+b)/(a-b);n[13]=0;n[2]=0;n[6]=0;n[10]=-(e+d)/(e-d);n[14]=-2*e*d/(e-d);n[3]=0;n[7]=0;n[11]=-1;n[15]=0;return this},makeOrthographic:function(c,g,a,b,d,e){var n=this.elements,t=1/(g-c),y=1/(a-b),f=1/(e-d);n[0]=2*t;n[4]=0;n[8]=0;n[12]=-((g+c)*t);n[1]=0;n[5]=2*y;n[9]=0;n[13]=-((a+b)*y);n[2]=0;n[6]=0;n[10]=-2*f;n[14]=-((e+d)*f);n[3]=0;n[7]=0;n[11]=0;n[15]=1;return this},equals:function(c){var g=this.elements;c=c.elements;for(var a=0;16>a;a++)if(g[a]!==c[a])return!1;return!0},fromArray:function(c,g){void 0===g&&(g=0);for(var a=0;16>a;a++)this.elements[a]=c[a+g];return this},toArray:function(c,g){void 0===c&&(c=[]);void 0===g&&(g=0);var a=this.elements;c[g]=a[0];c[g+1]=a[1];c[g+2]=a[2];c[g+3]=a[3];c[g+4]=a[4];c[g+5]=a[5];c[g+6]=a[6];c[g+7]=a[7];c[g+8]=a[8];c[g+9]=a[9];c[g+10]=a[10];c[g+11]=a[11];c[g+12]=a[12];c[g+13]=a[13];c[g+14]=a[14];c[g+15]=a[15];return c}});Object.assign(f,{isQuaternion:!0,slerp:function(c,g,a,b){return a.copy(c).slerp(g,b)},slerpFlat:function(c,g,a,b,d,e,f){var n=a[b+0],t=a[b+1],y=a[b+2];a=a[b+3];b=d[e+0];var h=d[e+1],k=d[e+2];d=d[e+3];if(a!==d||n!==b||t!==h||y!==k){e=1-f;var l=n*b+t*h+y*k+a*d,I=0<=l?1:-1,p=1-l*l;p>Number.EPSILON&&(p=Math.sqrt(p),l=Math.atan2(p,l*I),e=Math.sin(e*l)/p,f=Math.sin(f*l)/p);I*=f;n=n*e+b*I;t=t*e+h*I;y=y*e+k*I;a=a*e+d*I;e===1-f&&(f=1/Math.sqrt(n*n+t*t+y*y+a*a),n*=f,t*=f,y*=f,a*=f)}c[g]=n;c[g+1]=t;c[g+2]=y;c[g+3]=a}});Object.defineProperties(f.prototype,{x:{get:function(){return this._x},set:function(c){this._x=c;this.onChangeCallback()}},y:{get:function(){return this._y},set:function(c){this._y=c;this.onChangeCallback()}},z:{get:function(){return this._z},set:function(c){this._z=c;this.onChangeCallback()}},w:{get:function(){return this._w},set:function(c){this._w=c;this.onChangeCallback()}}});Object.assign(f.prototype,{set:function(c,g,a,b){this._x=c;this._y=g;this._z=a;this._w=b;this.onChangeCallback();return this},clone:function(){return new this.constructor(this._x,this._y,this._z,this._w)},copy:function(c){this._x=c.x;this._y=c.y;this._z=c.z;this._w=c.w;this.onChangeCallback();return this},setFromEuler:function(c,g){if(!c||!c.isEuler)throw Error("GLE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.");var a=c._x,b=c._y,d=c._z,e=c.order,f=Math.cos,h=Math.sin,k=f(a/2),l=f(b/2),f=f(d/2),a=h(a/2),b=h(b/2),d=h(d/2);"XYZ"===e?(this._x=a*l*f+k*b*d,this._y=k*b*f-a*l*d,this._z=k*l*d+a*b*f,this._w=k*l*f-a*b*d):"YXZ"===e?(this._x=a*l*f+k*b*d,this._y=k*b*f-a*l*d,this._z=k*l*d-a*b*f,this._w=k*l*f+a*b*d):"ZXY"===e?(this._x=a*l*f-k*b*d,this._y=k*b*f+a*l*d,this._z=k*l*d+a*b*f,this._w=k*l*f-a*b*d):"ZYX"===e?(this._x=a*l*f-k*b*d,this._y=k*b*f+a*l*d,this._z=k*l*d-a*b*f,this._w=k*l*f+a*b*d):"YZX"===e?(this._x=a*l*f+k*b*d,this._y=k*b*f+a*l*d,this._z=k*l*d-a*b*f,this._w=k*l*f-a*b*d):"XZY"===e&&(this._x=a*l*f-k*b*d,this._y=k*b*f-a*l*d,this._z=k*l*d+a*b*f,this._w=k*l*f+a*b*d);if(!1!==g)this.onChangeCallback();return this},setFromAxisAngle:function(c,g){var a=g/2,b=Math.sin(a);this._x=c.x*b;this._y=c.y*b;this._z=c.z*b;this._w=Math.cos(a);this.onChangeCallback();return this},setFromRotationMatrix:function(c){var g=c.elements,a=g[0];c=g[4];var b=g[8],d=g[1],e=g[5],f=g[9],h=g[2],k=g[6],g=g[10],l=a+e+g;0<l?(a=.5/Math.sqrt(l+1),this._w=.25/a,this._x=(k-f)*a,this._y=(b-h)*a,this._z=(d-c)*a):a>e&&a>g?(a=2*Math.sqrt(1+a-e-g),this._w=(k-f)/a,this._x=.25*a,this._y=(c+d)/a,this._z=(b+h)/a):e>g?(a=2*Math.sqrt(1+e-a-g),this._w=(b-h)/a,this._x=(c+d)/a,this._y=.25*a,this._z=(f+k)/a):(a=2*Math.sqrt(1+g-a-e),this._w=(d-c)/a,this._x=(b+h)/a,this._y=(f+k)/a,this._z=.25*a);this.onChangeCallback();return this},setFromUnitVectors:function(){var c=new h,g;return function(a,b){void 0===c&&(c=new h);g=a.dot(b)+1;1E-6>g?(g=0,Math.abs(a.x)>Math.abs(a.z)?c.set(-a.y,a.x,0):c.set(0,-a.z,a.y)):c.crossVectors(a,b);this._x=c.x;this._y=c.y;this._z=c.z;this._w=g;return this.normalize()}}(),angleTo:function(c){return 2*Math.acos(Math.abs(Aa.clamp(this.dot(c),-1,1)))},rotateTowards:function(c,g){var a=this.angleTo(c);if(0===a)return this;this.slerp(c,Math.min(1,g/a));return this},inverse:function(){return this.conjugate()},conjugate:function(){this._x*=-1;this._y*=-1;this._z*=-1;this.onChangeCallback();return this},dot:function(c){return this._x*c._x+this._y*c._y+this._z*c._z+this._w*c._w},lengthSq:function(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w},length:function(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)},normalize:function(){var c=this.length();0===c?(this._z=this._y=this._x=0,this._w=1):(c=1/c,this._x*=c,this._y*=c,this._z*=c,this._w*=c);this.onChangeCallback();return this},multiply:function(c,g){return void 0!==g?(console.warn("GLE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead."),this.multiplyQuaternions(c,g)):this.multiplyQuaternions(this,c)},premultiply:function(c){return this.multiplyQuaternions(c,this)},multiplyQuaternions:function(c,g){var a=c._x,b=c._y,d=c._z,e=c._w,f=g._x,h=g._y,k=g._z,l=g._w;this._x=a*l+e*f+b*k-d*h;this._y=b*l+e*h+d*f-a*k;this._z=d*l+e*k+a*h-b*f;this._w=e*l-a*f-b*h-d*k;this.onChangeCallback();return this},slerp:function(c,g){if(0===g)return this;if(1===g)return this.copy(c);var a=this._x,b=this._y,d=this._z,e=this._w,f=e*c._w+a*c._x+b*c._y+d*c._z;0>f?(this._w=-c._w,this._x=-c._x,this._y=-c._y,this._z=-c._z,f=-f):this.copy(c);if(1<=f)return this._w=e,this._x=a,this._y=b,this._z=d,this;var h=1-f*f;if(h<=Number.EPSILON)return h=1-g,this._w=h*e+g*this._w,this._x=h*a+g*this._x,this._y=h*b+g*this._y,this._z=h*d+g*this._z,this.normalize();var h=Math.sqrt(h),k=Math.atan2(h,f),f=Math.sin((1-g)*k)/h,h=Math.sin(g*k)/h;this._w=e*f+this._w*h;this._x=a*f+this._x*h;this._y=b*f+this._y*h;this._z=d*f+this._z*h;this.onChangeCallback();return this},equals:function(c){return c._x===this._x&&c._y===this._y&&c._z===this._z&&c._w===this._w},fromArray:function(c,g){void 0===g&&(g=0);this._x=c[g];this._y=c[g+1];this._z=c[g+2];this._w=c[g+3];this.onChangeCallback();return this},toArray:function(c,g){void 0===c&&(c=[]);void 0===g&&(g=0);c[g]=this._x;c[g+1]=this._y;c[g+2]=this._z;c[g+3]=this._w;return c},onChange:function(c){this.onChangeCallback=c;return this},onChangeCallback:function(){}});Object.assign(h.prototype,{isVector3:!0,set:function(c,g,a){this.x=c;this.y=g;this.z=a;return this},setScalar:function(c){this.z=this.y=this.x=c;return this},setX:function(c){this.x=c;return this},setY:function(c){this.y=c;return this},setZ:function(c){this.z=c;return this},setComponent:function(c,g){switch(c){case 0:this.x=g;break;case 1:this.y=g;break;case 2:this.z=g;break;default:throw Error("index is out of range: "+c);}return this},getComponent:function(c){switch(c){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw Error("index is out of range: "+c);}},clone:function(){return new this.constructor(this.x,this.y,this.z)},copy:function(c){this.x=c.x;this.y=c.y;this.z=c.z;return this},add:function(c,g){if(void 0!==g)return console.warn("GLE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(c,g);this.x+=c.x;this.y+=c.y;this.z+=c.z;return this},addScalar:function(c){this.x+=c;this.y+=c;this.z+=c;return this},addVectors:function(c,g){this.x=c.x+g.x;this.y=c.y+g.y;this.z=c.z+g.z;return this},addScaledVector:function(c,g){this.x+=c.x*g;this.y+=c.y*g;this.z+=c.z*g;return this},sub:function(c,g){if(void 0!==g)return console.warn("GLE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(c,g);this.x-=c.x;this.y-=c.y;this.z-=c.z;return this},subScalar:function(c){this.x-=c;this.y-=c;this.z-=c;return this},subVectors:function(c,g){this.x=c.x-g.x;this.y=c.y-g.y;this.z=c.z-g.z;return this},multiply:function(c,g){if(void 0!==g)return console.warn("GLE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead."),this.multiplyVectors(c,g);this.x*=c.x;this.y*=c.y;this.z*=c.z;return this},multiplyScalar:function(c){this.x*=c;this.y*=c;this.z*=c;return this},multiplyVectors:function(c,g){this.x=c.x*g.x;this.y=c.y*g.y;this.z=c.z*g.z;return this},applyEuler:function(){var c=new f;return function(g){g&&g.isEuler||console.error("GLE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order.");return this.applyQuaternion(c.setFromEuler(g))}}(),applyAxisAngle:function(){var c=new f;return function(g,a){return this.applyQuaternion(c.setFromAxisAngle(g,a))}}(),applyMatrix3:function(c){var g=this.x,a=this.y,b=this.z;c=c.elements;this.x=c[0]*g+c[3]*a+c[6]*b;this.y=c[1]*g+c[4]*a+c[7]*b;this.z=c[2]*g+c[5]*a+c[8]*b;return this},applyMatrix4:function(c){var g=this.x,a=this.y,b=this.z;c=c.elements;var d=1/(c[3]*g+c[7]*a+c[11]*b+c[15]);this.x=(c[0]*g+c[4]*a+c[8]*b+c[12])*d;this.y=(c[1]*g+c[5]*a+c[9]*b+c[13])*d;this.z=(c[2]*g+c[6]*a+c[10]*b+c[14])*d;return this},applyQuaternion:function(c){var g=this.x,a=this.y,b=this.z,d=c.x,e=c.y,f=c.z;c=c.w;var h=c*g+e*b-f*a,k=c*a+f*g-d*b,l=c*b+d*a-e*g,g=-d*g-e*a-f*b;this.x=h*c+g*-d+k*-f-l*-e;this.y=k*c+g*-e+l*-d-h*-f;this.z=l*c+g*-f+h*-e-k*-d;return this},project:function(c){return this.applyMatrix4(c.matrixWorldInverse).applyMatrix4(c.projectionMatrix)},unproject:function(){var c=new e;return function(g){return this.applyMatrix4(c.getInverse(g.projectionMatrix)).applyMatrix4(g.matrixWorld)}}(),transformDirection:function(c){var g=this.x,a=this.y,b=this.z;c=c.elements;this.x=c[0]*g+c[4]*a+c[8]*b;this.y=c[1]*g+c[5]*a+c[9]*b;this.z=c[2]*g+c[6]*a+c[10]*b;return this.normalize()},divide:function(c){this.x/=c.x;this.y/=c.y;this.z/=c.z;return this},divideScalar:function(c){return this.multiplyScalar(1/c)},min:function(c){this.x=Math.min(this.x,c.x);this.y=Math.min(this.y,c.y);this.z=Math.min(this.z,c.z);return this},max:function(c){this.x=Math.max(this.x,c.x);this.y=Math.max(this.y,c.y);this.z=Math.max(this.z,c.z);return this},clamp:function(c,g){this.x=Math.max(c.x,Math.min(g.x,this.x));this.y=Math.max(c.y,Math.min(g.y,this.y));this.z=Math.max(c.z,Math.min(g.z,this.z));return this},clampScalar:function(){var c=new h,g=new h;return function(a,b){c.set(a,a,a);g.set(b,b,b);return this.clamp(c,g)}}(),clampLength:function(c,g){var a=this.length();return this.divideScalar(a||1).multiplyScalar(Math.max(c,Math.min(g,a)))},floor:function(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);this.z=Math.floor(this.z);return this},ceil:function(){this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);this.z=Math.ceil(this.z);return this},round:function(){this.x=Math.round(this.x);this.y=Math.round(this.y);this.z=Math.round(this.z);return this},roundToZero:function(){this.x=0>this.x?Math.ceil(this.x):Math.floor(this.x);this.y=0>this.y?Math.ceil(this.y):Math.floor(this.y);this.z=0>this.z?Math.ceil(this.z):Math.floor(this.z);return this},negate:function(){this.x=-this.x;this.y=-this.y;this.z=-this.z;return this},dot:function(c){return this.x*c.x+this.y*c.y+this.z*c.z},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)},normalize:function(){return this.divideScalar(this.length()||1)},setLength:function(c){return this.normalize().multiplyScalar(c)},lerp:function(c,g){this.x+=(c.x-this.x)*g;this.y+=(c.y-this.y)*g;this.z+=(c.z-this.z)*g;return this},lerpVectors:function(c,g,a){return this.subVectors(g,c).multiplyScalar(a).add(c)},cross:function(c,g){return void 0!==g?(console.warn("GLE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead."),this.crossVectors(c,g)):this.crossVectors(this,c)},crossVectors:function(c,g){var a=c.x,b=c.y,d=c.z,e=g.x,f=g.y,h=g.z;this.x=b*h-d*f;this.y=d*e-a*h;this.z=a*f-b*e;return this},projectOnVector:function(c){var g=c.dot(this)/c.lengthSq();return this.copy(c).multiplyScalar(g)},projectOnPlane:function(){var c=new h;return function(g){c.copy(this).projectOnVector(g);return this.sub(c)}}(),reflect:function(){var c=new h;return function(g){return this.sub(c.copy(g).multiplyScalar(2*this.dot(g)))}}(),angleTo:function(c){c=this.dot(c)/Math.sqrt(this.lengthSq()*c.lengthSq());return Math.acos(Aa.clamp(c,-1,1))},distanceTo:function(c){return Math.sqrt(this.distanceToSquared(c))},distanceToSquared:function(c){var g=this.x-c.x,a=this.y-c.y;c=this.z-c.z;return g*g+a*a+c*c},manhattanDistanceTo:function(c){return Math.abs(this.x-c.x)+Math.abs(this.y-c.y)+Math.abs(this.z-c.z)},setFromSpherical:function(c){return this.setFromSphericalCoords(c.radius,c.phi,c.theta)},setFromSphericalCoords:function(c,g,a){var n=Math.sin(g)*c;this.x=n*Math.sin(a);this.y=Math.cos(g)*c;this.z=n*Math.cos(a);return this},setFromCylindrical:function(c){return this.setFromCylindricalCoords(c.radius,c.theta,c.y)},setFromCylindricalCoords:function(c,g,a){this.x=c*Math.sin(g);this.y=a;this.z=c*Math.cos(g);return this},setFromMatrixPosition:function(c){c=c.elements;this.x=c[12];this.y=c[13];this.z=c[14];return this},setFromMatrixScale:function(c){var g=this.setFromMatrixColumn(c,0).length(),a=this.setFromMatrixColumn(c,1).length();c=this.setFromMatrixColumn(c,2).length();this.x=g;this.y=a;this.z=c;return this},setFromMatrixColumn:function(c,g){return this.fromArray(c.elements,4*g)},equals:function(c){return c.x===this.x&&c.y===this.y&&c.z===this.z},fromArray:function(c,g){void 0===g&&(g=0);this.x=c[g];this.y=c[g+1];this.z=c[g+2];return this},toArray:function(c,g){void 0===c&&(c=[]);void 0===g&&(g=0);c[g]=this.x;c[g+1]=this.y;c[g+2]=this.z;return c},fromBufferAttribute:function(c,g,a){void 0!==a&&console.warn("GLE.Vector3: offset has been removed from .fromBufferAttribute().");this.x=c.getX(g);this.y=c.getY(g);this.z=c.getZ(g);return this}});Object.assign(l.prototype,{isMatrix3:!0,set:function(c,g,a,b,d,e,f,h,k){var n=this.elements;n[0]=c;n[1]=b;n[2]=f;n[3]=g;n[4]=d;n[5]=h;n[6]=a;n[7]=e;n[8]=k;return this},identity:function(){this.set(1,0,0,0,1,0,0,0,1);return this},clone:function(){return(new this.constructor).fromArray(this.elements)},copy:function(c){var g=this.elements;c=c.elements;g[0]=c[0];g[1]=c[1];g[2]=c[2];g[3]=c[3];g[4]=c[4];g[5]=c[5];g[6]=c[6];g[7]=c[7];g[8]=c[8];return this},setFromMatrix4:function(c){c=c.elements;this.set(c[0],c[4],c[8],c[1],c[5],c[9],c[2],c[6],c[10]);return this},applyToBufferAttribute:function(){var c=new h;return function(g){for(var a=0,b=g.count;a<b;a++)c.x=g.getX(a),c.y=g.getY(a),c.z=g.getZ(a),c.applyMatrix3(this),g.setXYZ(a,c.x,c.y,c.z);return g}}(),multiply:function(c){return this.multiplyMatrices(this,c)},premultiply:function(c){return this.multiplyMatrices(c,this)},multiplyMatrices:function(c,g){var a=c.elements,b=g.elements,d=this.elements,e=a[0],f=a[3],h=a[6],k=a[1],l=a[4],p=a[7],m=a[2],z=a[5],a=a[8],u=b[0],v=b[3],q=b[6],r=b[1],E=b[4],C=b[7],w=b[2],B=b[5],b=b[8];d[0]=e*u+f*r+h*w;d[3]=e*v+f*E+h*B;d[6]=e*q+f*C+h*b;d[1]=k*u+l*r+p*w;d[4]=k*v+l*E+p*B;d[7]=k*q+l*C+p*b;d[2]=m*u+z*r+a*w;d[5]=m*v+z*E+a*B;d[8]=m*q+z*C+a*b;return this},multiplyScalar:function(c){var g=this.elements;g[0]*=c;g[3]*=c;g[6]*=c;g[1]*=c;g[4]*=c;g[7]*=c;g[2]*=c;g[5]*=c;g[8]*=c;return this},determinant:function(){var c=this.elements,g=c[0],a=c[1],b=c[2],d=c[3],e=c[4],f=c[5],h=c[6],k=c[7],c=c[8];return g*e*c-g*f*k-a*d*c+a*f*h+b*d*k-b*e*h},getInverse:function(c,g){c&&c.isMatrix4&&console.error("GLE.Matrix3: .getInverse() no longer takes a Matrix4 argument.");var a=c.elements,b=this.elements,d=a[0],e=a[1],f=a[2],h=a[3],k=a[4],l=a[5],p=a[6],m=a[7],a=a[8],z=a*k-l*m,u=l*p-a*h,v=m*h-k*p,q=d*z+e*u+f*v;if(0===q){if(!0===g)throw Error("GLE.Matrix3: .getInverse() can't invert matrix, determinant is 0");console.warn("GLE.Matrix3: .getInverse() can't invert matrix, determinant is 0");return this.identity()}q=1/q;b[0]=z*q;b[1]=(f*m-a*e)*q;b[2]=(l*e-f*k)*q;b[3]=u*q;b[4]=(a*d-f*p)*q;b[5]=(f*h-l*d)*q;b[6]=v*q;b[7]=(e*p-m*d)*q;b[8]=(k*d-e*h)*q;return this},transpose:function(){var c,g=this.elements;c=g[1];g[1]=g[3];g[3]=c;c=g[2];g[2]=g[6];g[6]=c;c=g[5];g[5]=g[7];g[7]=c;return this},getNormalMatrix:function(c){return this.setFromMatrix4(c).getInverse(this).transpose()},transposeIntoArray:function(c){var g=this.elements;c[0]=g[0];c[1]=g[3];c[2]=g[6];c[3]=g[1];c[4]=g[4];c[5]=g[7];c[6]=g[2];c[7]=g[5];c[8]=g[8];return this},setUvTransform:function(c,g,a,b,d,e,f){var n=Math.cos(d);d=Math.sin(d);this.set(a*n,a*d,-a*(n*e+d*f)+e+c,-b*d,b*n,-b*(-d*e+n*f)+f+g,0,0,1)},scale:function(c,g){var a=this.elements;a[0]*=c;a[3]*=c;a[6]*=c;a[1]*=g;a[4]*=g;a[7]*=g;return this},rotate:function(c){var g=Math.cos(c);c=Math.sin(c);var a=this.elements,b=a[0],d=a[3],e=a[6],f=a[1],h=a[4],k=a[7];a[0]=g*b+c*f;a[3]=g*d+c*h;a[6]=g*e+c*k;a[1]=-c*b+g*f;a[4]=-c*d+g*h;a[7]=-c*e+g*k;return this},translate:function(c,g){var a=this.elements;a[0]+=c*a[2];a[3]+=c*a[5];a[6]+=c*a[8];a[1]+=g*a[2];a[4]+=g*a[5];a[7]+=g*a[8];return this},equals:function(c){var g=this.elements;c=c.elements;for(var a=0;9>a;a++)if(g[a]!==c[a])return!1;return!0},fromArray:function(c,g){void 0===g&&(g=0);for(var a=0;9>a;a++)this.elements[a]=c[a+g];return this},toArray:function(c,g){void 0===c&&(c=[]);void 0===g&&(g=0);var a=this.elements;c[g]=a[0];c[g+1]=a[1];c[g+2]=a[2];c[g+3]=a[3];c[g+4]=a[4];c[g+5]=a[5];c[g+6]=a[6];c[g+7]=a[7];c[g+8]=a[8];return c}});var Kc={getDataURL:function(c){var g;if(c instanceof HTMLCanvasElement)g=c;else{g=document.createElementNS("http://www.w3.org/1999/xhtml","canvas");g.width=c.width;g.height=c.height;var a=g.getContext("2d");c instanceof ImageData?a.putImageData(c,0,0):a.drawImage(c,0,0,c.width,c.height)}return 2048<g.width||2048<g.height?g.toDataURL("image/jpeg",.6):g.toDataURL("image/png")}},oi=0;m.DEFAULT_IMAGE=void 0;m.DEFAULT_MAPPING=300;m.prototype=Object.assign(Object.create(b.prototype),{constructor:m,isTexture:!0,updateMatrix:function(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)},clone:function(){return(new this.constructor).copy(this)},copy:function(c){this.name=c.name;this.image=c.image;this.mipmaps=c.mipmaps.slice(0);this.mapping=c.mapping;this.wrapS=c.wrapS;this.wrapT=c.wrapT;this.magFilter=c.magFilter;this.minFilter=c.minFilter;this.anisotropy=c.anisotropy;this.format=c.format;this.type=c.type;this.offset.copy(c.offset);this.repeat.copy(c.repeat);this.center.copy(c.center);this.rotation=c.rotation;this.matrixAutoUpdate=c.matrixAutoUpdate;this.matrix.copy(c.matrix);this.generateMipmaps=c.generateMipmaps;this.premultiplyAlpha=c.premultiplyAlpha;this.flipY=c.flipY;this.unpackAlignment=c.unpackAlignment;this.encoding=c.encoding;return this},toJSON:function(c){var g=void 0===c||"string"===typeof c;if(!g&&void 0!==c.textures[this.uuid])return c.textures[this.uuid];var a={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,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY};if(void 0!==this.image){var b=this.image;void 0===b.uuid&&(b.uuid=Aa.generateUUID());if(!g&&void 0===c.images[b.uuid]){var d;if(Array.isArray(b)){d=[];for(var e=0,f=b.length;e<f;e++)d.push(Kc.getDataURL(b[e]))}else d=Kc.getDataURL(b);c.images[b.uuid]={uuid:b.uuid,url:d}}a.image=b.uuid}g||(c.textures[this.uuid]=a);return a},dispose:function(){this.dispatchEvent({type:"dispose"})},transformUv:function(c){if(300!==this.mapping)return c;c.applyMatrix3(this.matrix);if(0>c.x||1<c.x)switch(this.wrapS){case 1E3:c.x-=Math.floor(c.x);break;case 1001:c.x=0>c.x?0:1;break;case 1002:c.x=1===Math.abs(Math.floor(c.x)%2)?Math.ceil(c.x)-c.x:c.x-Math.floor(c.x)}if(0>c.y||1<c.y)switch(this.wrapT){case 1E3:c.y-=Math.floor(c.y);break;case 1001:c.y=0>c.y?0:1;break;case 1002:c.y=1===Math.abs(Math.floor(c.y)%2)?Math.ceil(c.y)-c.y:c.y-Math.floor(c.y)}this.flipY&&(c.y=1-c.y);return c}});Object.defineProperty(m.prototype,"needsUpdate",{set:function(c){!0===c&&this.version++}});Object.assign(r.prototype,{isVector4:!0,set:function(c,g,a,b){this.x=c;this.y=g;this.z=a;this.w=b;return this},setScalar:function(c){this.w=this.z=this.y=this.x=c;return this},setX:function(c){this.x=c;return this},setY:function(c){this.y=c;return this},setZ:function(c){this.z=c;return this},setW:function(c){this.w=c;return this},setComponent:function(c,g){switch(c){case 0:this.x=g;break;case 1:this.y=g;break;case 2:this.z=g;break;case 3:this.w=g;break;default:throw Error("index is out of range: "+c);}return this},getComponent:function(c){switch(c){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw Error("index is out of range: "+c);}},clone:function(){return new this.constructor(this.x,this.y,this.z,this.w)},copy:function(c){this.x=c.x;this.y=c.y;this.z=c.z;this.w=void 0!==c.w?c.w:1;return this},add:function(c,g){if(void 0!==g)return console.warn("GLE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(c,g);this.x+=c.x;this.y+=c.y;this.z+=c.z;this.w+=c.w;return this},addScalar:function(c){this.x+=c;this.y+=c;this.z+=c;this.w+=c;return this},addVectors:function(c,g){this.x=c.x+g.x;this.y=c.y+g.y;this.z=c.z+g.z;this.w=c.w+g.w;return this},addScaledVector:function(c,g){this.x+=c.x*g;this.y+=c.y*g;this.z+=c.z*g;this.w+=c.w*g;return this},sub:function(c,g){if(void 0!==g)return console.warn("GLE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(c,g);this.x-=c.x;this.y-=c.y;this.z-=c.z;this.w-=c.w;return this},subScalar:function(c){this.x-=c;this.y-=c;this.z-=c;this.w-=c;return this},subVectors:function(c,g){this.x=c.x-g.x;this.y=c.y-g.y;this.z=c.z-g.z;this.w=c.w-g.w;return this},multiplyScalar:function(c){this.x*=c;this.y*=c;this.z*=c;this.w*=c;return this},applyMatrix4:function(c){var g=this.x,a=this.y,b=this.z,d=this.w;c=c.elements;this.x=c[0]*g+c[4]*a+c[8]*b+c[12]*d;this.y=c[1]*g+c[5]*a+c[9]*b+c[13]*d;this.z=c[2]*g+c[6]*a+c[10]*b+c[14]*d;this.w=c[3]*g+c[7]*a+c[11]*b+c[15]*d;return this},divideScalar:function(c){return this.multiplyScalar(1/c)},setAxisAngleFromQuaternion:function(c){this.w=2*Math.acos(c.w);var g=Math.sqrt(1-c.w*c.w);1E-4>g?(this.x=1,this.z=this.y=0):(this.x=c.x/g,this.y=c.y/g,this.z=c.z/g);return this},setAxisAngleFromRotationMatrix:function(c){var g,a,b;c=c.elements;var d=c[0];b=c[4];var e=c[8],f=c[1],h=c[5],k=c[9];a=c[2];g=c[6];var l=c[10];if(.01>Math.abs(b-f)&&.01>Math.abs(e-a)&&.01>Math.abs(k-g)){if(.1>Math.abs(b+f)&&.1>Math.abs(e+a)&&.1>Math.abs(k+g)&&.1>Math.abs(d+h+l-3))return this.set(1,0,0,0),this;c=Math.PI;d=(d+1)/2;h=(h+1)/2;l=(l+1)/2;b=(b+f)/4;e=(e+a)/4;k=(k+g)/4;d>h&&d>l?.01>d?(g=0,b=a=.707106781):(g=Math.sqrt(d),a=b/g,b=e/g):h>l?.01>h?(g=.707106781,a=0,b=.707106781):(a=Math.sqrt(h),g=b/a,b=k/a):.01>l?(a=g=.707106781,b=0):(b=Math.sqrt(l),g=e/b,a=k/b);this.set(g,a,b,c);return this}c=Math.sqrt((g-k)*(g-k)+(e-a)*(e-a)+(f-b)*(f-b));.001>Math.abs(c)&&(c=1);this.x=(g-k)/c;this.y=(e-a)/c;this.z=(f-b)/c;this.w=Math.acos((d+h+l-1)/2);return this},min:function(c){this.x=Math.min(this.x,c.x);this.y=Math.min(this.y,c.y);this.z=Math.min(this.z,c.z);this.w=Math.min(this.w,c.w);return this},max:function(c){this.x=Math.max(this.x,c.x);this.y=Math.max(this.y,c.y);this.z=Math.max(this.z,c.z);this.w=Math.max(this.w,c.w);return this},clamp:function(c,g){this.x=Math.max(c.x,Math.min(g.x,this.x));this.y=Math.max(c.y,Math.min(g.y,this.y));this.z=Math.max(c.z,Math.min(g.z,this.z));this.w=Math.max(c.w,Math.min(g.w,this.w));return this},clampScalar:function(){var c,g;return function(a,b){void 0===c&&(c=new r,g=new r);c.set(a,a,a,a);g.set(b,b,b,b);return this.clamp(c,g)}}(),clampLength:function(c,g){var a=this.length();return this.divideScalar(a||1).multiplyScalar(Math.max(c,Math.min(g,a)))},floor:function(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);this.z=Math.floor(this.z);this.w=Math.floor(this.w);return this},ceil:function(){this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);this.z=Math.ceil(this.z);this.w=Math.ceil(this.w);return this},round:function(){this.x=Math.round(this.x);this.y=Math.round(this.y);this.z=Math.round(this.z);this.w=Math.round(this.w);return this},roundToZero:function(){this.x=0>this.x?Math.ceil(this.x):Math.floor(this.x);this.y=0>this.y?Math.ceil(this.y):Math.floor(this.y);this.z=0>this.z?Math.ceil(this.z):Math.floor(this.z);this.w=0>this.w?Math.ceil(this.w):Math.floor(this.w);return this},negate:function(){this.x=-this.x;this.y=-this.y;this.z=-this.z;this.w=-this.w;return this},dot:function(c){return this.x*c.x+this.y*c.y+this.z*c.z+this.w*c.w},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)},normalize:function(){return this.divideScalar(this.length()||1)},setLength:function(c){return this.normalize().multiplyScalar(c)},lerp:function(c,g){this.x+=(c.x-this.x)*g;this.y+=(c.y-this.y)*g;this.z+=(c.z-this.z)*g;this.w+=(c.w-this.w)*g;return this},lerpVectors:function(c,g,a){return this.subVectors(g,c).multiplyScalar(a).add(c)},equals:function(c){return c.x===this.x&&c.y===this.y&&c.z===this.z&&c.w===this.w},fromArray:function(c,g){void 0===g&&(g=0);this.x=c[g];this.y=c[g+1];this.z=c[g+2];this.w=c[g+3];return this},toArray:function(c,g){void 0===c&&(c=[]);void 0===g&&(g=0);c[g]=this.x;c[g+1]=this.y;c[g+2]=this.z;c[g+3]=this.w;return c},fromBufferAttribute:function(c,g,a){void 0!==a&&console.warn("GLE.Vector4: offset has been removed from .fromBufferAttribute().");this.x=c.getX(g);this.y=c.getY(g);this.z=c.getZ(g);this.w=c.getW(g);return this}});q.prototype=Object.assign(Object.create(b.prototype),{constructor:q,isWt:!0,setSize:function(c,g){if(this.width!==c||this.height!==g)this.width=c,this.height=g,this.dispose();this.viewport.set(0,0,c,g);this.scissor.set(0,0,c,g)},clone:function(){return(new this.constructor).copy(this)},copy:function(c){this.width=c.width;this.height=c.height;this.viewport.copy(c.viewport);this.texture=c.texture.clone();this.depthBuffer=c.depthBuffer;this.stencilBuffer=c.stencilBuffer;this.depthTexture=c.depthTexture;return this},dispose:function(){this.dispatchEvent({type:"dispose"})}});x.prototype=Object.create(q.prototype);x.prototype.constructor=x;x.prototype.isWtCube=!0;G.prototype=Object.create(m.prototype);G.prototype.constructor=G;G.prototype.isDataTexture=!0;Object.assign(B.prototype,{isBox3:!0,set:function(c,g){this.min.copy(c);this.max.copy(g);return this},setFromArray:function(c){for(var g=Infinity,a=Infinity,b=Infinity,d=-Infinity,e=-Infinity,f=-Infinity,h=0,k=c.length;h<k;h+=3){var l=c[h],p=c[h+1],m=c[h+2];l<g&&(g=l);p<a&&(a=p);m<b&&(b=m);l>d&&(d=l);p>e&&(e=p);m>f&&(f=m)}this.min.set(g,a,b);this.max.set(d,e,f);return this},setFromBufferAttribute:function(c){for(var g=Infinity,a=Infinity,b=Infinity,d=-Infinity,e=-Infinity,f=-Infinity,h=0,k=c.count;h<k;h++){var l=c.getX(h),p=c.getY(h),m=c.getZ(h);l<g&&(g=l);p<a&&(a=p);m<b&&(b=m);l>d&&(d=l);p>e&&(e=p);m>f&&(f=m)}this.min.set(g,a,b);this.max.set(d,e,f);return this},setFromPoints:function(c){this.makeEmpty();for(var g=0,a=c.length;g<a;g++)this.expandByPoint(c[g]);return this},setFromCenterAndSize:function(){var c=new h;return function(g,a){var n=c.copy(a).multiplyScalar(.5);this.min.copy(g).sub(n);this.max.copy(g).add(n);return this}}(),st:function(c){this.makeEmpty();return this.expandByObject(c)},clone:function(){return(new this.constructor).copy(this)},copy:function(c){this.min.copy(c.min);this.max.copy(c.max);return this},makeEmpty:function(){this.min.x=this.min.y=this.min.z=Infinity;this.max.x=this.max.y=this.max.z=-Infinity;return this},isEmpty:function(){return this.max.x<this.min.x||this.max.y<this.min.y||this.max.z<this.min.z},getCenter:function(c){void 0===c&&(c=new h);return this.isEmpty()?c.set(0,0,0):c.addVectors(this.min,this.max).multiplyScalar(.5)},getSize:function(c){void 0===c&&(c=new h);return this.isEmpty()?c.set(0,0,0):c.subVectors(this.max,this.min)},expandByPoint:function(c){this.min.min(c);this.max.max(c);return this},expandByVector:function(c){this.min.sub(c);this.max.add(c);return this},expandByScalar:function(c){this.min.addScalar(-c);this.max.addScalar(c);return this},expandByObject:function(){function c(c){var n=c.geometry;if(void 0!==n)if(n.isGeometry)for(n=n.vertices,a=0,b=n.length;a<b;a++)d.copy(n[a]),d.applyMatrix4(c.matrixWorld),g.expandByPoint(d);else if(n.isBufferGeometry&&(n=n.attributes.position,void 0!==n))for(a=0,b=n.count;a<b;a++)d.fromBufferAttribute(n,a).applyMatrix4(c.matrixWorld),g.expandByPoint(d)}var g,a,b,d=new h;return function(a){g=this;a.uld(!0);a.traverse(c);return this}}(),containsPoint:function(c){return c.x<this.min.x||c.x>this.max.x||c.y<this.min.y||c.y>this.max.y||c.z<this.min.z||c.z>this.max.z?!1:!0},containsBox:function(c){return this.min.x<=c.min.x&&c.max.x<=this.max.x&&this.min.y<=c.min.y&&c.max.y<=this.max.y&&this.min.z<=c.min.z&&c.max.z<=this.max.z},getParameter:function(c,g){void 0===g&&(console.warn("GLE.Box3: .getParameter() target is now required"),g=new h);return g.set((c.x-this.min.x)/(this.max.x-this.min.x),(c.y-this.min.y)/(this.max.y-this.min.y),(c.z-this.min.z)/(this.max.z-this.min.z))},intersectsBox:function(c){return c.max.x<this.min.x||c.min.x>this.max.x||c.max.y<this.min.y||c.min.y>this.max.y||c.max.z<this.min.z||c.min.z>this.max.z?!1:!0},intersectsSphere:function(){var c=new h;return function(g){this.clampPoint(g.center,c);return c.distanceToSquared(g.center)<=g.radius*g.radius}}(),intersectsPlane:function(c){var g,a;0<c.normal.x?(g=c.normal.x*this.min.x,a=c.normal.x*this.max.x):(g=c.normal.x*this.max.x,a=c.normal.x*this.min.x);0<c.normal.y?(g+=c.normal.y*this.min.y,a+=c.normal.y*this.max.y):(g+=c.normal.y*this.max.y,a+=c.normal.y*this.min.y);0<c.normal.z?(g+=c.normal.z*this.min.z,a+=c.normal.z*this.max.z):(g+=c.normal.z*this.max.z,a+=c.normal.z*this.min.z);return g<=-c.constant&&a>=-c.constant},intersectsTriangle:function(){function c(c){var n,d;n=0;for(d=c.length-3;n<=d;n+=3){k.fromArray(c,n);var t=p.x*Math.abs(k.x)+p.y*Math.abs(k.y)+p.z*Math.abs(k.z),e=g.dot(k),f=a.dot(k),y=b.dot(k);if(Math.max(-Math.max(e,f,y),Math.min(e,f,y))>t)return!1}return!0}var g=new h,a=new h,b=new h,d=new h,e=new h,f=new h,k=new h,l=new h,p=new h,m=new h;return function(n){if(this.isEmpty())return!1;this.getCenter(l);p.subVectors(this.max,l);g.subVectors(n.a,l);a.subVectors(n.b,l);b.subVectors(n.c,l);d.subVectors(a,g);e.subVectors(b,a);f.subVectors(g,b);n=[0,-d.z,d.y,0,-e.z,e.y,0,-f.z,f.y,d.z,0,-d.x,e.z,0,-e.x,f.z,0,-f.x,-d.y,d.x,0,-e.y,e.x,0,-f.y,f.x,0];if(!c(n))return!1;n=[1,0,0,0,1,0,0,0,1];if(!c(n))return!1;m.crossVectors(d,e);n=[m.x,m.y,m.z];return c(n)}}(),clampPoint:function(c,g){void 0===g&&(console.warn("GLE.Box3: .clampPoint() target is now required"),g=new h);return g.copy(c).clamp(this.min,this.max)},distanceToPoint:function(){var c=new h;return function(g){return c.copy(g).clamp(this.min,this.max).sub(g).length()}}(),getBoundingSphere:function(){var c=new h;return function(g){void 0===g&&(console.warn("GLE.Box3: .getBoundingSphere() target is now required"),g=new w);this.getCenter(g.center);g.radius=.5*this.getSize(c).length();return g}}(),intersect:function(c){this.min.max(c.min);this.max.min(c.max);this.isEmpty()&&this.makeEmpty();return this},union:function(c){this.min.min(c.min);this.max.max(c.max);return this},applyMatrix4:function(){var c=[new h,new h,new h,new h,new h,new h,new h,new h];return function(g){if(this.isEmpty())return this;c[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(g);c[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(g);c[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(g);c[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(g);c[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(g);c[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(g);c[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(g);c[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(g);this.setFromPoints(c);return this}}(),translate:function(c){this.min.add(c);this.max.add(c);return this},equals:function(c){return c.min.equals(this.min)&&c.max.equals(this.max)}});Object.assign(w.prototype,{set:function(c,g){this.center.copy(c);this.radius=g;return this},setFromPoints:function(){var c=new B;return function(g,a){var n=this.center;void 0!==a?n.copy(a):c.setFromPoints(g).getCenter(n);for(var b=0,d=0,e=g.length;d<e;d++)b=Math.max(b,n.distanceToSquared(g[d]));this.radius=Math.sqrt(b);return this}}(),clone:function(){return(new this.constructor).copy(this)},copy:function(c){this.center.copy(c.center);this.radius=c.radius;return this},empty:function(){return 0>=this.radius},containsPoint:function(c){return c.distanceToSquared(this.center)<=this.radius*this.radius},distanceToPoint:function(c){return c.distanceTo(this.center)-this.radius},intersectsSphere:function(c){var g=this.radius+c.radius;return c.center.distanceToSquared(this.center)<=g*g},intersectsBox:function(c){return c.intersectsSphere(this)},intersectsPlane:function(c){return Math.abs(c.distanceToPoint(this.center))<=this.radius},clampPoint:function(c,g){var a=this.center.distanceToSquared(c);void 0===g&&(console.warn("GLE.Sphere: .clampPoint() target is now required"),g=new h);g.copy(c);a>this.radius*this.radius&&(g.sub(this.center).normalize(),g.multiplyScalar(this.radius).add(this.center));return g},getBoundingBox:function(c){void 0===c&&(console.warn("GLE.Sphere: .getBoundingBox() target is now required"),c=new B);c.set(this.center,this.center);c.expandByScalar(this.radius);return c},applyMatrix4:function(c){this.center.applyMatrix4(c);this.radius*=c.getMaxScaleOnAxis();return this},translate:function(c){this.center.add(c);return this},equals:function(c){return c.center.equals(this.center)&&c.radius===this.radius}});Object.assign(v.prototype,{set:function(c,g){this.normal.copy(c);this.constant=g;return this},setComponents:function(c,g,a,b){this.normal.set(c,g,a);this.constant=b;return this},setFromNormalAndCoplanarPoint:function(c,g){this.normal.copy(c);this.constant=-g.dot(this.normal);return this},setFromCoplanarPoints:function(){var c=new h,g=new h;return function(a,b,d){b=c.subVectors(d,b).cross(g.subVectors(a,b)).normalize();this.setFromNormalAndCoplanarPoint(b,a);return this}}(),clone:function(){return(new this.constructor).copy(this)},copy:function(c){this.normal.copy(c.normal);this.constant=c.constant;return this},normalize:function(){var c=1/this.normal.length();this.normal.multiplyScalar(c);this.constant*=c;return this},negate:function(){this.constant*=-1;this.normal.negate();return this},distanceToPoint:function(c){return this.normal.dot(c)+this.constant},distanceToSphere:function(c){return this.distanceToPoint(c.center)-c.radius},projectPoint:function(c,g){void 0===g&&(console.warn("GLE.Plane: .projectPoint() target is now required"),g=new h);return g.copy(this.normal).multiplyScalar(-this.distanceToPoint(c)).add(c)},intersectLine:function(){var c=new h;return function(g,a){void 0===a&&(console.warn("GLE.Plane: .intersectLine() target is now required"),a=new h);var n=g.delta(c),b=this.normal.dot(n);if(0===b){if(0===this.distanceToPoint(g.start))return a.copy(g.start)}else if(b=-(g.start.dot(this.normal)+this.constant)/b,!(0>b||1<b))return a.copy(n).multiplyScalar(b).add(g.start)}}(),intersectsLine:function(c){var g=this.distanceToPoint(c.start);c=this.distanceToPoint(c.end);return 0>g&&0<c||0>c&&0<g},intersectsBox:function(c){return c.intersectsPlane(this)},intersectsSphere:function(c){return c.intersectsPlane(this)},coplanarPoint:function(c){void 0===c&&(console.warn("GLE.Plane: .coplanarPoint() target is now required"),c=new h);return c.copy(this.normal).multiplyScalar(-this.constant)},applyMatrix4:function(){var c=new h,g=new l;return function(a,b){var n=b||g.getNormalMatrix(a),d=this.coplanarPoint(c).applyMatrix4(a),n=this.normal.applyMatrix3(n).normalize();this.constant=-d.dot(n);return this}}(),translate:function(c){this.constant-=c.dot(this.normal);return this},equals:function(c){return c.normal.equals(this.normal)&&c.constant===this.constant}});Object.assign(k.prototype,{set:function(c,g,a,b,d,e){var n=this.planes;n[0].copy(c);n[1].copy(g);n[2].copy(a);n[3].copy(b);n[4].copy(d);n[5].copy(e);return this},clone:function(){return(new this.constructor).copy(this)},copy:function(c){for(var g=this.planes,a=0;6>a;a++)g[a].copy(c.planes[a]);return this},setFromMatrix:function(c){var g=this.planes,a=c.elements;c=a[0];var b=a[1],d=a[2],e=a[3],f=a[4],h=a[5],k=a[6],l=a[7],p=a[8],m=a[9],z=a[10],u=a[11],q=a[12],v=a[13],r=a[14],a=a[15];g[0].setComponents(e-c,l-f,u-p,a-q).normalize();g[1].setComponents(e+c,l+f,u+p,a+q).normalize();g[2].setComponents(e+b,l+h,u+m,a+v).normalize();g[3].setComponents(e-b,l-h,u-m,a-v).normalize();g[4].setComponents(e-d,l-k,u-z,a-r).normalize();g[5].setComponents(e+d,l+k,u+z,a+r).normalize();return this},intersectsObject:function(){var c=new w;return function(g){var a=g.geometry;null===a.boundingSphere&&a.computeBoundingSphere();c.copy(a.boundingSphere).applyMatrix4(g.matrixWorld);return this.intersectsSphere(c)}}(),intersectsSprite:function(){var c=new w;return function(g){c.center.set(0,0,0);c.radius=.7071067811865476;c.applyMatrix4(g.matrixWorld);return this.intersectsSphere(c)}}(),intersectsSphere:function(c){var g=this.planes,a=c.center;c=-c.radius;for(var b=0;6>b;b++)if(g[b].distanceToPoint(a)<c)return!1;return!0},intersectsBox:function(){var c=new h;return function(g){for(var a=this.planes,b=0;6>b;b++){var d=a[b];c.x=0<d.normal.x?g.max.x:g.min.x;c.y=0<d.normal.y?g.max.y:g.min.y;c.z=0<d.normal.z?g.max.z:g.min.z;if(0>d.distanceToPoint(c))return!1}return!0}}(),containsPoint:function(c){for(var g=this.planes,a=0;6>a;a++)if(0>g[a].distanceToPoint(c))return!1;return!0}});var Ca={alphamap_fragment:"#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *\x3d texture2D( alphaMap, vUv ).g;\n#endif\n",alphamap_pars_fragment:"#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif\n",alphatest_fragment:"#ifdef ALPHATEST\n\tif ( diffuseColor.a \x3c ALPHATEST ) discard;\n#endif\n",aomap_fragment:"#ifdef USE_AOMAP\n\tfloat ambientOcclusion \x3d ( texture2D( aoMap, vUv2 ).r - 1.0 ) * aoMapIntensity + 1.0;\n\treflectedLight.indirectDiffuse *\x3d ambientOcclusion;\n\t#if defined( USE_ENVMAP ) \x26\x26 defined( PHYSICAL )\n\t\tfloat dotNV \x3d saturate( dot( geometry.normal, geometry.viewDir ) );\n\t\treflectedLight.indirectSpecular *\x3d computeSpecularOcclusion( dotNV, ambientOcclusion, material.specularRoughness );\n\t#endif\n#endif\n",aomap_pars_fragment:"#ifdef USE_AOMAP\n\tuniform sampler2D aoMap;\n\tuniform float aoMapIntensity;\n#endif",begin_vertex:"\nvec3 transformed \x3d vec3( position );\n",beginnormal_vertex:"\nvec3 objectNormal \x3d vec3( normal );\n",bsdfs:"float punctualLightIntensityToIrradianceFactor( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n\tif( decayExponent \x3e 0.0 ) {\n#if defined ( PHYSICALLY_CORRECT_LIGHTS )\n\t\tfloat distanceFalloff \x3d 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\t\tfloat maxDistanceCutoffFactor \x3d pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t\treturn distanceFalloff * maxDistanceCutoffFactor;\n#else\n\t\treturn pow( saturate( -lightDistance / cutoffDistance + 1.0 ), decayExponent );\n#endif\n\t}\n\treturn 1.0;\n}\nvec3 BRDF_Diffuse_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 specularColor, const in float dotLH ) {\n\tfloat fresnel \x3d exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );\n\treturn ( 1.0 - specularColor ) * fresnel + specularColor;\n}\nfloat G_GGX_Smith( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 \x3d pow2( alpha );\n\tfloat gl \x3d dotNL + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\tfloat gv \x3d dotNV + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\treturn 1.0 / ( gl * gv );\n}\nfloat G_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 \x3d pow2( alpha );\n\tfloat gv \x3d dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl \x3d 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 \x3d pow2( alpha );\n\tfloat denom \x3d pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\nvec3 BRDF_Specular_GGX( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float roughness ) {\n\tfloat alpha \x3d pow2( roughness );\n\tvec3 halfDir \x3d normalize( incidentLight.direction + geometry.viewDir );\n\tfloat dotNL \x3d saturate( dot( geometry.normal, incidentLight.direction ) );\n\tfloat dotNV \x3d saturate( dot( geometry.normal, geometry.viewDir ) );\n\tfloat dotNH \x3d saturate( dot( geometry.normal, halfDir ) );\n\tfloat dotLH \x3d saturate( dot( incidentLight.direction, halfDir ) );\n\tvec3 F \x3d F_Schlick( specularColor, dotLH );\n\tfloat G \x3d G_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\tfloat D \x3d D_GGX( alpha, dotNH );\n\treturn F * ( G * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE \x3d 64.0;\n\tconst float LUT_SCALE \x3d ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS \x3d 0.5 / LUT_SIZE;\n\tfloat dotNV \x3d saturate( dot( N, V ) );\n\tvec2 uv \x3d vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv \x3d uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l \x3d 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 \x3d dot( v1, v2 );\n\tfloat y \x3d abs( x );\n\tfloat a \x3d 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b \x3d 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v \x3d a / b;\n\tfloat theta_sintheta \x3d ( x \x3e 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 \x3d rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 \x3d rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal \x3d cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) \x3c 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 \x3d normalize( V - N * dot( V, N ) );\n\tT2 \x3d - cross( N, T1 );\n\tmat3 mat \x3d mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] \x3d mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] \x3d mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] \x3d mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] \x3d mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] \x3d normalize( coords[ 0 ] );\n\tcoords[ 1 ] \x3d normalize( coords[ 1 ] );\n\tcoords[ 2 ] \x3d normalize( coords[ 2 ] );\n\tcoords[ 3 ] \x3d normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor \x3d vec3( 0.0 );\n\tvectorFormFactor +\x3d LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor +\x3d LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor +\x3d LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor +\x3d LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result \x3d LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\nvec3 BRDF_Specular_GGX_Environment( const in GeometricContext geometry, const in vec3 specularColor, const in float roughness ) {\n\tfloat dotNV \x3d saturate( dot( geometry.normal, geometry.viewDir ) );\n\tconst vec4 c0 \x3d vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 \x3d vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r \x3d roughness * c0 + c1;\n\tfloat a004 \x3d min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 AB \x3d vec2( -1.04, 1.04 ) * a004 + r.zw;\n\treturn specularColor * AB.x + AB.y;\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_Specular_BlinnPhong( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float shininess ) {\n\tvec3 halfDir \x3d normalize( incidentLight.direction + geometry.viewDir );\n\tfloat dotNH \x3d saturate( dot( geometry.normal, halfDir ) );\n\tfloat dotLH \x3d saturate( dot( incidentLight.direction, halfDir ) );\n\tvec3 F \x3d F_Schlick( specularColor, dotLH );\n\tfloat G \x3d G_BlinnPhong_Implicit( );\n\tfloat D \x3d D_BlinnPhong( shininess, dotNH );\n\treturn F * ( G * D );\n}\nfloat GGXRoughnessToBlinnExponent( const in float ggxRoughness ) {\n\treturn ( 2.0 / pow2( ggxRoughness + 0.0001 ) - 2.0 );\n}\nfloat BlinnExponentToGGXRoughness( const in float blinnExponent ) {\n\treturn sqrt( 2.0 / ( blinnExponent + 2.0 ) );\n}\n",bumpmap_pars_fragment:"#ifdef USE_BUMPMAP\n\tuniform sampler2D bumpMap;\n\tuniform float bumpScale;\n\tvec2 dHdxy_fwd() {\n\t\tvec2 dSTdx \x3d dFdx( vUv );\n\t\tvec2 dSTdy \x3d dFdy( vUv );\n\t\tfloat Hll \x3d bumpScale * texture2D( bumpMap, vUv ).x;\n\t\tfloat dBx \x3d bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\n\t\tfloat dBy \x3d 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 ) {\n\t\tvec3 vSigmaX \x3d vec3( dFdx( surf_pos.x ), dFdx( surf_pos.y ), dFdx( surf_pos.z ) );\n\t\tvec3 vSigmaY \x3d vec3( dFdy( surf_pos.x ), dFdy( surf_pos.y ), dFdy( surf_pos.z ) );\n\t\tvec3 vN \x3d surf_norm;\n\t\tvec3 R1 \x3d cross( vSigmaY, vN );\n\t\tvec3 R2 \x3d cross( vN, vSigmaX );\n\t\tfloat fDet \x3d dot( vSigmaX, R1 );\n\t\tfDet *\x3d ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\tvec3 vGrad \x3d sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n\t\treturn normalize( abs( fDet ) * surf_norm - vGrad );\n\t}\n#endif\n",clipping_planes_fragment:"#if NUM_CLIPPING_PLANES \x3e 0\n\tvec4 plane;\n\t#pragma unroll_loop\n\tfor ( int i \x3d 0; i \x3c UNION_CLIPPING_PLANES; i ++ ) {\n\t\tplane \x3d cs[ i ];\n\t\tif ( dot( vViewPosition, plane.xyz ) \x3e plane.w ) discard;\n\t}\n\t#if UNION_CLIPPING_PLANES \x3c NUM_CLIPPING_PLANES\n\t\tbool clipped \x3d true;\n\t\t#pragma unroll_loop\n\t\tfor ( int i \x3d UNION_CLIPPING_PLANES; i \x3c NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane \x3d cs[ i ];\n\t\t\tclipped \x3d ( dot( vViewPosition, plane.xyz ) \x3e plane.w ) \x26\x26 clipped;\n\t\t}\n\t\tif ( clipped ) discard;\n\t#endif\n#endif\n",clipping_planes_pars_fragment:"#if NUM_CLIPPING_PLANES \x3e 0\n\t#if ! defined( PHYSICAL ) \x26\x26 ! defined( PHONG ) \x26\x26 ! defined( MATCAP )\n\t\tvarying vec3 vViewPosition;\n\t#endif\n\tuniform vec4 cs[ NUM_CLIPPING_PLANES ];\n#endif\n",clipping_planes_pars_vertex:"#if NUM_CLIPPING_PLANES \x3e 0 \x26\x26 ! defined( PHYSICAL ) \x26\x26 ! defined( PHONG ) \x26\x26 ! defined( MATCAP )\n\tvarying vec3 vViewPosition;\n#endif\n",clipping_planes_vertex:"#if NUM_CLIPPING_PLANES \x3e 0 \x26\x26 ! defined( PHYSICAL ) \x26\x26 ! defined( PHONG ) \x26\x26 ! defined( MATCAP )\n\tvViewPosition \x3d - mvPosition.xyz;\n#endif\n",color_fragment:"#ifdef USE_COLOR\n\tdiffuseColor.rgb *\x3d vColor;\n#endif",color_pars_fragment:"#ifdef USE_COLOR\n\tvarying vec3 vColor;\n#endif\n",color_pars_vertex:"#ifdef USE_COLOR\n\tvarying vec3 vColor;\n#endif",color_vertex:"#ifdef USE_COLOR\n\tvColor.xyz \x3d color.xyz;\n#endif",common:"#define PI 3.14159265359\n#define PI2 6.28318530718\n#define PI_HALF 1.5707963267949\n#define RECIPROCAL_PI 0.31830988618\n#define RECIPROCAL_PI2 0.15915494\n#define LOG2 1.442695\n#define EPSILON 1e-6\n#define saturate(a) clamp( a, 0.0, 1.0 )\n#define whiteCompliment(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 \x3d x*x; return x2*x2; }\nfloat average( const in vec3 color ) { return dot( color, vec3( 0.3333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a \x3d 12.9898, b \x3d 78.233, c \x3d 43758.5453;\n\thighp float dt \x3d dot( uv.xy, vec2( a,b ) ), sn \x3d mod( dt, PI );\n\treturn fract(sin(sn) * c);\n}\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};\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}\nvec3 projectOnPlane(in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\tfloat distance \x3d dot( planeNormal, point - pointOnPlane );\n\treturn - distance * planeNormal + point;\n}\nfloat sideOfPlane( in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn sign( dot( point - pointOnPlane, planeNormal ) );\n}\nvec3 linePlaneIntersect( in vec3 pointOnLine, in vec3 lineDirection, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn lineDirection * ( dot( planeNormal, pointOnPlane - pointOnLine ) / dot( planeNormal, lineDirection ) ) + pointOnLine;\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] \x3d vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] \x3d vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] \x3d vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat linearToRelativeLuminance( const in vec3 color ) {\n\tvec3 weights \x3d vec3( 0.2126, 0.7152, 0.0722 );\n\treturn dot( weights, color.rgb );\n}\n",cube_uv_reflection_fragment:"#ifdef ENVMAP_TYPE_CUBE_UV\n#define cubeUV_textureSize (1024.0)\nint getFaceFromDirection(vec3 direction) {\n\tvec3 absDirection \x3d abs(direction);\n\tint face \x3d -1;\n\tif( absDirection.x \x3e absDirection.z ) {\n\t\tif(absDirection.x \x3e absDirection.y )\n\t\t\tface \x3d direction.x \x3e 0.0 ? 0 : 3;\n\t\telse\n\t\t\tface \x3d direction.y \x3e 0.0 ? 1 : 4;\n\t}\n\telse {\n\t\tif(absDirection.z \x3e absDirection.y )\n\t\t\tface \x3d direction.z \x3e 0.0 ? 2 : 5;\n\t\telse\n\t\t\tface \x3d direction.y \x3e 0.0 ? 1 : 4;\n\t}\n\treturn face;\n}\n#define cubeUV_maxLods1 (log2(cubeUV_textureSize*0.25) - 1.0)\n#define cubeUV_rangeClamp (exp2((6.0 - 1.0) * 2.0))\nvec2 MipLevelInfo( vec3 vec, float roughnessLevel, float roughness ) {\n\tfloat scale \x3d exp2(cubeUV_maxLods1 - roughnessLevel);\n\tfloat dxRoughness \x3d dFdx(roughness);\n\tfloat dyRoughness \x3d dFdy(roughness);\n\tvec3 dx \x3d dFdx( vec * scale * dxRoughness );\n\tvec3 dy \x3d dFdy( vec * scale * dyRoughness );\n\tfloat d \x3d max( dot( dx, dx ), dot( dy, dy ) );\n\td \x3d clamp(d, 1.0, cubeUV_rangeClamp);\n\tfloat mipLevel \x3d 0.5 * log2(d);\n\treturn vec2(floor(mipLevel), fract(mipLevel));\n}\n#define cubeUV_maxLods2 (log2(cubeUV_textureSize*0.25) - 2.0)\n#define cubeUV_rcpTextureSize (1.0 / cubeUV_textureSize)\nvec2 getCubeUV(vec3 direction, float roughnessLevel, float mipLevel) {\n\tmipLevel \x3d roughnessLevel \x3e cubeUV_maxLods2 - 3.0 ? 0.0 : mipLevel;\n\tfloat a \x3d 16.0 * cubeUV_rcpTextureSize;\n\tvec2 exp2_packed \x3d exp2( vec2( roughnessLevel, mipLevel ) );\n\tvec2 rcp_exp2_packed \x3d vec2( 1.0 ) / exp2_packed;\n\tfloat powScale \x3d exp2_packed.x * exp2_packed.y;\n\tfloat scale \x3d rcp_exp2_packed.x * rcp_exp2_packed.y * 0.25;\n\tfloat mipOffset \x3d 0.75*(1.0 - rcp_exp2_packed.y) * rcp_exp2_packed.x;\n\tbool bRes \x3d mipLevel \x3d\x3d 0.0;\n\tscale \x3d bRes \x26\x26 (scale \x3c a) ? a : scale;\n\tvec3 r;\n\tvec2 offset;\n\tint face \x3d getFaceFromDirection(direction);\n\tfloat rcpPowScale \x3d 1.0 / powScale;\n\tif( face \x3d\x3d 0) {\n\t\tr \x3d vec3(direction.x, -direction.z, direction.y);\n\t\toffset \x3d vec2(0.0+mipOffset,0.75 * rcpPowScale);\n\t\toffset.y \x3d bRes \x26\x26 (offset.y \x3c 2.0*a) ? a : offset.y;\n\t}\n\telse if( face \x3d\x3d 1) {\n\t\tr \x3d vec3(direction.y, direction.x, direction.z);\n\t\toffset \x3d vec2(scale+mipOffset, 0.75 * rcpPowScale);\n\t\toffset.y \x3d bRes \x26\x26 (offset.y \x3c 2.0*a) ? a : offset.y;\n\t}\n\telse if( face \x3d\x3d 2) {\n\t\tr \x3d vec3(direction.z, direction.x, direction.y);\n\t\toffset \x3d vec2(2.0*scale+mipOffset, 0.75 * rcpPowScale);\n\t\toffset.y \x3d bRes \x26\x26 (offset.y \x3c 2.0*a) ? a : offset.y;\n\t}\n\telse if( face \x3d\x3d 3) {\n\t\tr \x3d vec3(direction.x, direction.z, direction.y);\n\t\toffset \x3d vec2(0.0+mipOffset,0.5 * rcpPowScale);\n\t\toffset.y \x3d bRes \x26\x26 (offset.y \x3c 2.0*a) ? 0.0 : offset.y;\n\t}\n\telse if( face \x3d\x3d 4) {\n\t\tr \x3d vec3(direction.y, direction.x, -direction.z);\n\t\toffset \x3d vec2(scale+mipOffset, 0.5 * rcpPowScale);\n\t\toffset.y \x3d bRes \x26\x26 (offset.y \x3c 2.0*a) ? 0.0 : offset.y;\n\t}\n\telse {\n\t\tr \x3d vec3(direction.z, -direction.x, direction.y);\n\t\toffset \x3d vec2(2.0*scale+mipOffset, 0.5 * rcpPowScale);\n\t\toffset.y \x3d bRes \x26\x26 (offset.y \x3c 2.0*a) ? 0.0 : offset.y;\n\t}\n\tr \x3d normalize(r);\n\tfloat texelOffset \x3d 0.5 * cubeUV_rcpTextureSize;\n\tvec2 s \x3d ( r.yz / abs( r.x ) + vec2( 1.0 ) ) * 0.5;\n\tvec2 base \x3d offset + vec2( texelOffset );\n\treturn base + s * ( scale - 2.0 * texelOffset );\n}\n#define cubeUV_maxLods3 (log2(cubeUV_textureSize*0.25) - 3.0)\nvec4 textureCubeUV( sampler2D envMap, vec3 reflectedDirection, float roughness ) {\n\tfloat roughnessVal \x3d roughness* cubeUV_maxLods3;\n\tfloat r1 \x3d floor(roughnessVal);\n\tfloat r2 \x3d r1 + 1.0;\n\tfloat t \x3d fract(roughnessVal);\n\tvec2 mipInfo \x3d MipLevelInfo(reflectedDirection, r1, roughness);\n\tfloat s \x3d mipInfo.y;\n\tfloat level0 \x3d mipInfo.x;\n\tfloat level1 \x3d level0 + 1.0;\n\tlevel1 \x3d level1 \x3e 5.0 ? 5.0 : level1;\n\tlevel0 +\x3d min( floor( s + 0.5 ), 5.0 );\n\tvec2 uv_10 \x3d getCubeUV(reflectedDirection, r1, level0);\n\tvec4 color10 \x3d envMapTexelToLinear(texture2D(envMap, uv_10));\n\tvec2 uv_20 \x3d getCubeUV(reflectedDirection, r2, level0);\n\tvec4 color20 \x3d envMapTexelToLinear(texture2D(envMap, uv_20));\n\tvec4 result \x3d mix(color10, color20, t);\n\treturn vec4(result.rgb, 1.0);\n}\n#endif\n",defaultnormal_vertex:"vec3 transformedNormal \x3d normalMatrix * objectNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal \x3d - transformedNormal;\n#endif\n",displacementmap_pars_vertex:"#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif\n",displacementmap_vertex:"#ifdef USE_DISPLACEMENTMAP\n\ttransformed +\x3d normalize( objectNormal ) * ( texture2D( displacementMap, uv ).x * displacementScale + displacementBias );\n#endif\n",emissivemap_fragment:"#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor \x3d texture2D( emissiveMap, vUv );\n\temissiveColor.rgb \x3d emissiveMapTexelToLinear( emissiveColor ).rgb;\n\ttotalEmissiveRadiance *\x3d emissiveColor.rgb;\n#endif\n",emissivemap_pars_fragment:"#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif\n",encodings_fragment:" gl_FragColor \x3d linearToOutputTexel( gl_FragColor );\n",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 \x3d max( max( value.r, value.g ), value.b );\n\tfloat fExp \x3d 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 \x3d max( value.r, max( value.g, value.b ) );\n\tfloat M \x3d clamp( maxRGB / maxRange, 0.0, 1.0 );\n\tM \x3d 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 \x3d max( value.r, max( value.g, value.b ) );\n\tfloat D \x3d max( maxRange / maxRGB, 1.0 );\n\tD \x3d min( floor( D ) / 255.0, 1.0 );\n\treturn vec4( value.rgb * ( D * ( 255.0 / maxRange ) ), D );\n}\nconst mat3 cLogLuvM \x3d 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 \x3d value.rgb * cLogLuvM;\n\tXp_Y_XYZp \x3d max( Xp_Y_XYZp, vec3( 1e-6, 1e-6, 1e-6 ) );\n\tvec4 vResult;\n\tvResult.xy \x3d Xp_Y_XYZp.xy / Xp_Y_XYZp.z;\n\tfloat Le \x3d 2.0 * log2(Xp_Y_XYZp.y) + 127.0;\n\tvResult.w \x3d fract( Le );\n\tvResult.z \x3d ( Le - ( floor( vResult.w * 255.0 ) ) / 255.0 ) / 255.0;\n\treturn vResult;\n}\nconst mat3 cLogLuvInverseM \x3d 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 \x3d value.z * 255.0 + value.w;\n\tvec3 Xp_Y_XYZp;\n\tXp_Y_XYZp.y \x3d exp2( ( Le - 127.0 ) / 2.0 );\n\tXp_Y_XYZp.z \x3d Xp_Y_XYZp.y / value.y;\n\tXp_Y_XYZp.x \x3d value.x * Xp_Y_XYZp.z;\n\tvec3 vRGB \x3d Xp_Y_XYZp.rgb * cLogLuvInverseM;\n\treturn vec4( max( vRGB, 0.0 ), 1.0 );\n}\n",envmap_fragment:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\t\tvec3 cameraToVertex \x3d normalize( vWorldPosition - cameraPosition );\n\t\tvec3 worldNormal \x3d inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec \x3d reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec \x3d refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec \x3d vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor \x3d textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#elif defined( ENVMAP_TYPE_EQUIREC )\n\t\tvec2 sampleUV;\n\t\treflectVec \x3d normalize( reflectVec );\n\t\tsampleUV.y \x3d asin( clamp( reflectVec.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\t\tsampleUV.x \x3d atan( reflectVec.z, reflectVec.x ) * RECIPROCAL_PI2 + 0.5;\n\t\tvec4 envColor \x3d texture2D( envMap, sampleUV );\n\t#elif defined( ENVMAP_TYPE_SPHERE )\n\t\treflectVec \x3d normalize( reflectVec );\n\t\tvec3 reflectView \x3d normalize( ( viewMatrix * vec4( reflectVec, 0.0 ) ).xyz + vec3( 0.0, 0.0, 1.0 ) );\n\t\tvec4 envColor \x3d texture2D( envMap, reflectView.xy * 0.5 + 0.5 );\n\t#else\n\t\tvec4 envColor \x3d vec4( 0.0 );\n\t#endif\n\tenvColor \x3d envMapTexelToLinear( envColor );\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight \x3d mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight \x3d mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight +\x3d envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif\n",envmap_pars_fragment:"#if defined( USE_ENVMAP ) || defined( PHYSICAL )\n\tuniform float reflectivity;\n\tuniform float envMapIntensity;\n#endif\n#ifdef USE_ENVMAP\n\t#if ! defined( PHYSICAL ) \x26\x26 ( defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) )\n\t\tvarying vec3 vWorldPosition;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\tuniform float flipEnvMap;\n\tuniform int maxMipLevel;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( PHYSICAL )\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif\n",envmap_pars_vertex:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif\n",envmap_physical_pars_fragment:"#if defined( USE_ENVMAP ) \x26\x26 defined( PHYSICAL )\n\tvec3 getLightProbeIndirectIrradiance( const in GeometricContext geometry, const in int maxMIPLevel ) {\n\t\tvec3 worldNormal \x3d inverseTransformDirection( geometry.normal, viewMatrix );\n\t\t#ifdef ENVMAP_TYPE_CUBE\n\t\t\tvec3 queryVec \x3d vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor \x3d textureCubeLodEXT( envMap, queryVec, float( maxMIPLevel ) );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor \x3d textureCube( envMap, queryVec, float( maxMIPLevel ) );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb \x3d envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 queryVec \x3d vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\n\t\t\tvec4 envMapColor \x3d textureCubeUV( envMap, queryVec, 1.0 );\n\t\t#else\n\t\t\tvec4 envMapColor \x3d vec4( 0.0 );\n\t\t#endif\n\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t}\n\tfloat getSpecularMIPLevel( const in float blinnShininessExponent, const in int maxMIPLevel ) {\n\t\tfloat maxMIPLevelScalar \x3d float( maxMIPLevel );\n\t\tfloat desiredMIPLevel \x3d maxMIPLevelScalar + 0.79248 - 0.5 * log2( pow2( blinnShininessExponent ) + 1.0 );\n\t\treturn clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );\n\t}\n\tvec3 getLightProbeIndirectRadiance( const in GeometricContext geometry, const in float blinnShininessExponent, const in int maxMIPLevel ) {\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec \x3d reflect( -geometry.viewDir, geometry.normal );\n\t\t#else\n\t\t\tvec3 reflectVec \x3d refract( -geometry.viewDir, geometry.normal, refractionRatio );\n\t\t#endif\n\t\treflectVec \x3d inverseTransformDirection( reflectVec, viewMatrix );\n\t\tfloat specularMIPLevel \x3d getSpecularMIPLevel( blinnShininessExponent, maxMIPLevel );\n\t\t#ifdef ENVMAP_TYPE_CUBE\n\t\t\tvec3 queryReflectVec \x3d vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor \x3d textureCubeLodEXT( envMap, queryReflectVec, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor \x3d textureCube( envMap, queryReflectVec, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb \x3d envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 queryReflectVec \x3d vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\n\t\t\tvec4 envMapColor \x3d textureCubeUV( envMap, queryReflectVec, BlinnExponentToGGXRoughness(blinnShininessExponent ));\n\t\t#elif defined( ENVMAP_TYPE_EQUIREC )\n\t\t\tvec2 sampleUV;\n\t\t\tsampleUV.y \x3d asin( clamp( reflectVec.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\t\t\tsampleUV.x \x3d atan( reflectVec.z, reflectVec.x ) * RECIPROCAL_PI2 + 0.5;\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor \x3d texture2DLodEXT( envMap, sampleUV, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor \x3d texture2D( envMap, sampleUV, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb \x3d envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_SPHERE )\n\t\t\tvec3 reflectView \x3d normalize( ( viewMatrix * vec4( reflectVec, 0.0 ) ).xyz + vec3( 0.0,0.0,1.0 ) );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor \x3d texture2DLodEXT( envMap, reflectView.xy * 0.5 + 0.5, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor \x3d texture2D( envMap, reflectView.xy * 0.5 + 0.5, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb \x3d envMapTexelToLinear( envMapColor ).rgb;\n\t\t#endif\n\t\treturn envMapColor.rgb * envMapIntensity;\n\t}\n#endif\n",envmap_vertex:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\t\tvWorldPosition \x3d worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex \x3d normalize( worldPosition.xyz - cameraPosition );\n\t\tvec3 worldNormal \x3d inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect \x3d reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect \x3d refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif\n",fog_vertex:"#ifdef USE_FOG\n\tfogDepth \x3d -mvPosition.z;\n#endif\n",fog_pars_vertex:"#ifdef USE_FOG\n\tvarying float fogDepth;\n#endif\n",fog_fragment:"#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor \x3d whiteCompliment( exp2( - fogDensity * fogDensity * fogDepth * fogDepth * LOG2 ) );\n\t#else\n\t\tfloat fogFactor \x3d smoothstep( fogNear, fogFar, fogDepth );\n\t#endif\n\tgl_FragColor.rgb \x3d mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif\n",fog_pars_fragment:"#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float fogDepth;\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\n",gradientmap_pars_fragment:"#ifdef TOON\n\tuniform sampler2D gradientMap;\n\tvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\t\tfloat dotNL \x3d dot( normal, lightDirection );\n\t\tvec2 coord \x3d vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t\t#ifdef USE_GRADIENTMAP\n\t\t\treturn texture2D( gradientMap, coord ).rgb;\n\t\t#else\n\t\t\treturn ( coord.x \x3c 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 );\n\t\t#endif\n\t}\n#endif\n",lightmap_fragment:"#ifdef USE_LIGHTMAP\n\treflectedLight.indirectDiffuse +\x3d PI * texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\n#endif\n",lightmap_pars_fragment:"#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif",lights_lambert_vertex:"vec3 diffuse \x3d vec3( 1.0 );\nGeometricContext geometry;\ngeometry.position \x3d mvPosition.xyz;\ngeometry.normal \x3d normalize( transformedNormal );\ngeometry.viewDir \x3d normalize( -mvPosition.xyz );\nGeometricContext backGeometry;\nbackGeometry.position \x3d geometry.position;\nbackGeometry.normal \x3d -geometry.normal;\nbackGeometry.viewDir \x3d geometry.viewDir;\nvLightFront \x3d vec3( 0.0 );\n#ifdef DOUBLE_SIDED\n\tvLightBack \x3d vec3( 0.0 );\n#endif\nIncidentLight directLight;\nfloat dotNL;\nvec3 directLightColor_Diffuse;\n#if NUM_POINT_LIGHTS \x3e 0\n\t#pragma unroll_loop\n\tfor ( int i \x3d 0; i \x3c NUM_POINT_LIGHTS; i ++ ) {\n\t\tgetPointDirectLightIrradiance( pointLights[ i ], geometry, directLight );\n\t\tdotNL \x3d dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse \x3d PI * directLight.color;\n\t\tvLightFront +\x3d saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack +\x3d saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n#endif\n#if NUM_SPOT_LIGHTS \x3e 0\n\t#pragma unroll_loop\n\tfor ( int i \x3d 0; i \x3c NUM_SPOT_LIGHTS; i ++ ) {\n\t\tgetSpotDirectLightIrradiance( spotLights[ i ], geometry, directLight );\n\t\tdotNL \x3d dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse \x3d PI * directLight.color;\n\t\tvLightFront +\x3d saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack +\x3d saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n#endif\n#if NUM_DIR_LIGHTS \x3e 0\n\t#pragma unroll_loop\n\tfor ( int i \x3d 0; i \x3c NUM_DIR_LIGHTS; i ++ ) {\n\t\tgetDirectionalDirectLightIrradiance( directionalLights[ i ], geometry, directLight );\n\t\tdotNL \x3d dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse \x3d PI * directLight.color;\n\t\tvLightFront +\x3d saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack +\x3d saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n#endif\n#if NUM_HEMI_LIGHTS \x3e 0\n\t#pragma unroll_loop\n\tfor ( int i \x3d 0; i \x3c NUM_HEMI_LIGHTS; i ++ ) {\n\t\tvLightFront +\x3d getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack +\x3d getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry );\n\t\t#endif\n\t}\n#endif\n",lights_pars_begin:"uniform vec3 ambientLightColor;\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance \x3d ambientLightColor;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *\x3d PI;\n\t#endif\n\treturn irradiance;\n}\n#if NUM_DIR_LIGHTS \x3e 0\n\tstruct Dt {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tint shadow;\n\t\tfloat shadowBias;\n\t\tfloat shadowRadius;\n\t\tvec2 shadowMapSize;\n\t};\n\tuniform Dt directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalDirectLightIrradiance( const in Dt directionalLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tdirectLight.color \x3d directionalLight.color;\n\t\tdirectLight.direction \x3d directionalLight.direction;\n\t\tdirectLight.visible \x3d true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS \x3e 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tint shadow;\n\t\tfloat shadowBias;\n\t\tfloat shadowRadius;\n\t\tvec2 shadowMapSize;\n\t\tfloat shadowCameraNear;\n\t\tfloat shadowCameraFar;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointDirectLightIrradiance( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tvec3 lVector \x3d pointLight.position - geometry.position;\n\t\tdirectLight.direction \x3d normalize( lVector );\n\t\tfloat lightDistance \x3d length( lVector );\n\t\tdirectLight.color \x3d pointLight.color;\n\t\tdirectLight.color *\x3d punctualLightIntensityToIrradianceFactor( lightDistance, pointLight.distance, pointLight.decay );\n\t\tdirectLight.visible \x3d ( directLight.color !\x3d vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS \x3e 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\tint shadow;\n\t\tfloat shadowBias;\n\t\tfloat shadowRadius;\n\t\tvec2 shadowMapSize;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotDirectLightIrradiance( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tvec3 lVector \x3d spotLight.position - geometry.position;\n\t\tdirectLight.direction \x3d normalize( lVector );\n\t\tfloat lightDistance \x3d length( lVector );\n\t\tfloat angleCos \x3d dot( directLight.direction, spotLight.direction );\n\t\tif ( angleCos \x3e spotLight.coneCos ) {\n\t\t\tfloat spotEffect \x3d smoothstep( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\t\tdirectLight.color \x3d spotLight.color;\n\t\t\tdirectLight.color *\x3d spotEffect * punctualLightIntensityToIrradianceFactor( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tdirectLight.visible \x3d true;\n\t\t} else {\n\t\t\tdirectLight.color \x3d vec3( 0.0 );\n\t\t\tdirectLight.visible \x3d false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS \x3e 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 \x3e 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 GeometricContext geometry ) {\n\t\tfloat dotNL \x3d dot( geometry.normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight \x3d 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance \x3d mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tirradiance *\x3d PI;\n\t\t#endif\n\t\treturn irradiance;\n\t}\n#endif\n",lights_phong_fragment:"BlinnPhongMaterial material;\nmaterial.diffuseColor \x3d diffuseColor.rgb;\nmaterial.specularColor \x3d specular;\nmaterial.specularShininess \x3d shininess;\nmaterial.specularStrength \x3d specularStrength;\n",lights_phong_pars_fragment:"varying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\nstruct BlinnPhongMaterial {\n\tvec3\tdiffuseColor;\n\tvec3\tspecularColor;\n\tfloat\tspecularShininess;\n\tfloat\tspecularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\t#ifdef TOON\n\t\tvec3 irradiance \x3d getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\n\t#else\n\t\tfloat dotNL \x3d saturate( dot( geometry.normal, directLight.direction ) );\n\t\tvec3 irradiance \x3d dotNL * directLight.color;\n\t#endif\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *\x3d PI;\n\t#endif\n\treflectedLight.directDiffuse +\x3d irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular +\x3d irradiance * BRDF_Specular_BlinnPhong( directLight, geometry, 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 +\x3d irradiance * BRDF_Diffuse_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)\n",lights_physical_fragment:"PhysicalMaterial material;\nmaterial.diffuseColor \x3d diffuseColor.rgb * ( 1.0 - metalnessFactor );\nmaterial.specularRoughness \x3d clamp( roughnessFactor, 0.04, 1.0 );\n#ifdef STANDARD\n\tmaterial.specularColor \x3d mix( vec3( DEFAULT_SPECULAR_COEFFICIENT ), diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor \x3d mix( vec3( MAXIMUM_SPECULAR_COEFFICIENT * pow2( reflectivity ) ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.clearCoat \x3d saturate( clearCoat );\tmaterial.clearCoatRoughness \x3d clamp( clearCoatRoughness, 0.04, 1.0 );\n#endif\n",lights_physical_pars_fragment:"struct PhysicalMaterial {\n\tvec3\tdiffuseColor;\n\tfloat\tspecularRoughness;\n\tvec3\tspecularColor;\n\t#ifndef STANDARD\n\t\tfloat clearCoat;\n\t\tfloat clearCoatRoughness;\n\t#endif\n};\n#define MAXIMUM_SPECULAR_COEFFICIENT 0.16\n#define DEFAULT_SPECULAR_COEFFICIENT 0.04\nfloat clearCoatDHRApprox( const in float roughness, const in float dotNL ) {\n\treturn DEFAULT_SPECULAR_COEFFICIENT + ( 1.0 - DEFAULT_SPECULAR_COEFFICIENT ) * ( pow( 1.0 - dotNL, 5.0 ) * pow( 1.0 - roughness, 2.0 ) );\n}\n#if NUM_RECT_AREA_LIGHTS \x3e 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 \x3d geometry.normal;\n\t\tvec3 viewDir \x3d geometry.viewDir;\n\t\tvec3 position \x3d geometry.position;\n\t\tvec3 lightPos \x3d rectAreaLight.position;\n\t\tvec3 halfWidth \x3d rectAreaLight.halfWidth;\n\t\tvec3 halfHeight \x3d rectAreaLight.halfHeight;\n\t\tvec3 lightColor \x3d rectAreaLight.color;\n\t\tfloat roughness \x3d material.specularRoughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] \x3d lightPos - halfWidth - halfHeight;\t\trectCoords[ 1 ] \x3d lightPos + halfWidth - halfHeight;\n\t\trectCoords[ 2 ] \x3d lightPos + halfWidth + halfHeight;\n\t\trectCoords[ 3 ] \x3d lightPos - halfWidth + halfHeight;\n\t\tvec2 uv \x3d LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 \x3d texture2D( ltc_1, uv );\n\t\tvec4 t2 \x3d texture2D( ltc_2, uv );\n\t\tmat3 mInv \x3d mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel \x3d ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular +\x3d lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse +\x3d 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 \x3d saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance \x3d dotNL * directLight.color;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *\x3d PI;\n\t#endif\n\t#ifndef STANDARD\n\t\tfloat clearCoatDHR \x3d material.clearCoat * clearCoatDHRApprox( material.clearCoatRoughness, dotNL );\n\t#else\n\t\tfloat clearCoatDHR \x3d 0.0;\n\t#endif\n\treflectedLight.directSpecular +\x3d ( 1.0 - clearCoatDHR ) * irradiance * BRDF_Specular_GGX( directLight, geometry, material.specularColor, material.specularRoughness );\n\treflectedLight.directDiffuse +\x3d ( 1.0 - clearCoatDHR ) * irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n\t#ifndef STANDARD\n\t\treflectedLight.directSpecular +\x3d irradiance * material.clearCoat * BRDF_Specular_GGX( directLight, geometry, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearCoatRoughness );\n\t#endif\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse +\x3d irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 clearCoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t#ifndef STANDARD\n\t\tfloat dotNV \x3d saturate( dot( geometry.normal, geometry.viewDir ) );\n\t\tfloat dotNL \x3d dotNV;\n\t\tfloat clearCoatDHR \x3d material.clearCoat * clearCoatDHRApprox( material.clearCoatRoughness, dotNL );\n\t#else\n\t\tfloat clearCoatDHR \x3d 0.0;\n\t#endif\n\treflectedLight.indirectSpecular +\x3d ( 1.0 - clearCoatDHR ) * radiance * BRDF_Specular_GGX_Environment( geometry, material.specularColor, material.specularRoughness );\n\t#ifndef STANDARD\n\t\treflectedLight.indirectSpecular +\x3d clearCoatRadiance * material.clearCoat * BRDF_Specular_GGX_Environment( geometry, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearCoatRoughness );\n\t#endif\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\n#define Material_BlinnShininessExponent( material ) GGXRoughnessToBlinnExponent( material.specularRoughness )\n#define Material_ClearCoat_BlinnShininessExponent( material ) GGXRoughnessToBlinnExponent( material.clearCoatRoughness )\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}\n",lights_fragment_begin:"\nGeometricContext geometry;\ngeometry.position \x3d - vViewPosition;\ngeometry.normal \x3d normal;\ngeometry.viewDir \x3d normalize( vViewPosition );\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS \x3e 0 ) \x26\x26 defined( RE_Direct )\n\tPointLight pointLight;\n\t#pragma unroll_loop\n\tfor ( int i \x3d 0; i \x3c NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight \x3d pointLights[ i ];\n\t\tgetPointDirectLightIrradiance( pointLight, geometry, directLight );\n\t\t#ifdef USE_SHADOWMAP\n\t\tdirectLight.color *\x3d all( bvec2( pointLight.shadow, directLight.visible ) ) ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n#endif\n#if ( NUM_SPOT_LIGHTS \x3e 0 ) \x26\x26 defined( RE_Direct )\n\tSpotLight spotLight;\n\t#pragma unroll_loop\n\tfor ( int i \x3d 0; i \x3c NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight \x3d spotLights[ i ];\n\t\tgetSpotDirectLightIrradiance( spotLight, geometry, directLight );\n\t\t#ifdef USE_SHADOWMAP\n\t\tdirectLight.color *\x3d all( bvec2( spotLight.shadow, directLight.visible ) ) ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n#endif\n#if ( NUM_DIR_LIGHTS \x3e 0 ) \x26\x26 defined( RE_Direct )\n\tDt directionalLight;\n\t#pragma unroll_loop\n\tfor ( int i \x3d 0; i \x3c NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight \x3d directionalLights[ i ];\n\t\tgetDirectionalDirectLightIrradiance( directionalLight, geometry, directLight );\n\t\t#ifdef USE_SHADOWMAP\n\t\tdirectLight.color *\x3d all( bvec2( directionalLight.shadow, directLight.visible ) ) ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n#endif\n#if ( NUM_RECT_AREA_LIGHTS \x3e 0 ) \x26\x26 defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop\n\tfor ( int i \x3d 0; i \x3c NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight \x3d rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\t}\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 irradiance \x3d getAmbientLightIrradiance( ambientLightColor );\n\t#if ( NUM_HEMI_LIGHTS \x3e 0 )\n\t\t#pragma unroll_loop\n\t\tfor ( int i \x3d 0; i \x3c NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance +\x3d getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\n\t\t}\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance \x3d vec3( 0.0 );\n\tvec3 clearCoatRadiance \x3d vec3( 0.0 );\n#endif\n",lights_fragment_maps:"#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec3 lightMapIrradiance \x3d texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tlightMapIrradiance *\x3d PI;\n\t\t#endif\n\t\tirradiance +\x3d lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) \x26\x26 defined( PHYSICAL ) \x26\x26 defined( ENVMAP_TYPE_CUBE_UV )\n\t\tirradiance +\x3d getLightProbeIndirectIrradiance( geometry, maxMipLevel );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) \x26\x26 defined( RE_IndirectSpecular )\n\tradiance +\x3d getLightProbeIndirectRadiance( geometry, Material_BlinnShininessExponent( material ), maxMipLevel );\n\t#ifndef STANDARD\n\t\tclearCoatRadiance +\x3d getLightProbeIndirectRadiance( geometry, Material_ClearCoat_BlinnShininessExponent( material ), maxMipLevel );\n\t#endif\n#endif\n",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, clearCoatRadiance, geometry, material, reflectedLight );\n#endif\n",logdepthbuf_fragment:"#if defined( USE_LOGDEPTHBUF ) \x26\x26 defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT \x3d log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif",logdepthbuf_pars_fragment:"#if defined( USE_LOGDEPTHBUF ) \x26\x26 defined( USE_LOGDEPTHBUF_EXT )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n#endif\n",logdepthbuf_pars_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t#else\n\t\tuniform float logDepthBufFC;\n\t#endif\n#endif\n",logdepthbuf_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth \x3d 1.0 + gl_Position.w;\n\t#else\n\t\tgl_Position.z \x3d log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\tgl_Position.z *\x3d gl_Position.w;\n\t#endif\n#endif\n",map_fragment:"#ifdef USE_MAP\n\tvec4 texelColor \x3d texture2D( map, vUv );\n\ttexelColor \x3d mapTexelToLinear( texelColor );\n\tdiffuseColor *\x3d texelColor;\n#endif\n",map_pars_fragment:"#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n",map_particle_fragment:"#ifdef USE_MAP\n\tvec2 uv \x3d ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n\tvec4 mapTexel \x3d texture2D( map, uv );\n\tdiffuseColor *\x3d mapTexelToLinear( mapTexel );\n#endif\n",map_particle_pars_fragment:"#ifdef USE_MAP\n\tuniform mat3 uvTransform;\n\tuniform sampler2D map;\n#endif\n",metalnessmap_fragment:"float metalnessFactor \x3d metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness \x3d texture2D( metalnessMap, vUv );\n\tmetalnessFactor *\x3d texelMetalness.b;\n#endif\n",metalnessmap_pars_fragment:"#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif",morphnormal_vertex:"#ifdef USE_MORPHNORMALS\n\tobjectNormal +\x3d ( morphNormal0 - normal ) * morphTargetInfluences[ 0 ];\n\tobjectNormal +\x3d ( morphNormal1 - normal ) * morphTargetInfluences[ 1 ];\n\tobjectNormal +\x3d ( morphNormal2 - normal ) * morphTargetInfluences[ 2 ];\n\tobjectNormal +\x3d ( morphNormal3 - normal ) * morphTargetInfluences[ 3 ];\n#endif\n",morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\n\t#ifndef USE_MORPHNORMALS\n\tuniform float morphTargetInfluences[ 8 ];\n\t#else\n\tuniform float morphTargetInfluences[ 4 ];\n\t#endif\n#endif",morphtarget_vertex:"#ifdef USE_MORPHTARGETS\n\ttransformed +\x3d ( morphTarget0 - position ) * morphTargetInfluences[ 0 ];\n\ttransformed +\x3d ( morphTarget1 - position ) * morphTargetInfluences[ 1 ];\n\ttransformed +\x3d ( morphTarget2 - position ) * morphTargetInfluences[ 2 ];\n\ttransformed +\x3d ( morphTarget3 - position ) * morphTargetInfluences[ 3 ];\n\t#ifndef USE_MORPHNORMALS\n\ttransformed +\x3d ( morphTarget4 - position ) * morphTargetInfluences[ 4 ];\n\ttransformed +\x3d ( morphTarget5 - position ) * morphTargetInfluences[ 5 ];\n\ttransformed +\x3d ( morphTarget6 - position ) * morphTargetInfluences[ 6 ];\n\ttransformed +\x3d ( morphTarget7 - position ) * morphTargetInfluences[ 7 ];\n\t#endif\n#endif\n",normal_fragment_begin:"#ifdef FLAT_SHADED\n\tvec3 fdx \x3d vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) );\n\tvec3 fdy \x3d vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) );\n\tvec3 normal \x3d normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal \x3d normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal \x3d normal * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t#endif\n#endif\n",normal_fragment_maps:"#ifdef USE_NORMALMAP\n\t#ifdef OBJECTSPACE_NORMALMAP\n\t\tnormal \x3d texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\t\t#ifdef FLIP_SIDED\n\t\t\tnormal \x3d - normal;\n\t\t#endif\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tnormal \x3d normal * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\t#endif\n\t\tnormal \x3d normalize( normalMatrix * normal );\n\t#else\n\t\tnormal \x3d perturbNormal2Arb( -vViewPosition, normal );\n\t#endif\n#elif defined( USE_BUMPMAP )\n\tnormal \x3d perturbNormalArb( -vViewPosition, normal, dHdxy_fwd() );\n#endif\n",normalmap_pars_fragment:"#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n\t#ifdef OBJECTSPACE_NORMALMAP\n\t\tuniform mat3 normalMatrix;\n\t#else\n\t\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm ) {\n\t\t\tvec3 q0 \x3d vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );\n\t\t\tvec3 q1 \x3d vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );\n\t\t\tvec2 st0 \x3d dFdx( vUv.st );\n\t\t\tvec2 st1 \x3d dFdy( vUv.st );\n\t\t\tfloat scale \x3d sign( st1.t * st0.s - st0.t * st1.s );\n\t\t\tvec3 S \x3d normalize( ( q0 * st1.t - q1 * st0.t ) * scale );\n\t\t\tvec3 T \x3d normalize( ( - q0 * st1.s + q1 * st0.s ) * scale );\n\t\t\tvec3 N \x3d normalize( surf_norm );\n\t\t\tmat3 tsn \x3d mat3( S, T, N );\n\t\t\tvec3 mapN \x3d texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\t\t\tmapN.xy *\x3d normalScale;\n\t\t\tmapN.xy *\x3d ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\t\treturn normalize( tsn * mapN );\n\t\t}\n\t#endif\n#endif\n",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 \x3d 256. / 255.;const float UnpackDownscale \x3d 255. / 256.;\nconst vec3 PackFactors \x3d vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors \x3d UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 \x3d 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r \x3d vec4( fract( v * PackFactors ), v );\n\tr.yzw -\x3d r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\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}\n",premultiplied_alpha_fragment:"#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *\x3d gl_FragColor.a;\n#endif\n",project_vertex:"vec4 mvPosition \x3d modelViewMatrix * vec4( transformed, 1.0 );\ngl_Position \x3d projectionMatrix * mvPosition;\n",dithering_fragment:"#if defined( DITHERING )\n gl_FragColor.rgb \x3d dithering( gl_FragColor.rgb );\n#endif\n",dithering_pars_fragment:"#if defined( DITHERING )\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position \x3d rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB \x3d vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB \x3d mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif\n",roughnessmap_fragment:"float roughnessFactor \x3d roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness \x3d texture2D( roughnessMap, vUv );\n\troughnessFactor *\x3d texelRoughness.g;\n#endif\n",roughnessmap_pars_fragment:"#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif",shadowmap_pars_fragment:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHTS \x3e 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHTS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHTS ];\n\t#endif\n\t#if NUM_SPOT_LIGHTS \x3e 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHTS ];\n\t\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHTS ];\n\t#endif\n\t#if NUM_POINT_LIGHTS \x3e 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHTS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHTS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tfloat texture2DShadowLerp( sampler2D depths, vec2 size, vec2 uv, float compare ) {\n\t\tconst vec2 offset \x3d vec2( 0.0, 1.0 );\n\t\tvec2 texelSize \x3d vec2( 1.0 ) / size;\n\t\tvec2 centroidUV \x3d floor( uv * size + 0.5 ) / size;\n\t\tfloat lb \x3d texture2DCompare( depths, centroidUV + texelSize * offset.xx, compare );\n\t\tfloat lt \x3d texture2DCompare( depths, centroidUV + texelSize * offset.xy, compare );\n\t\tfloat rb \x3d texture2DCompare( depths, centroidUV + texelSize * offset.yx, compare );\n\t\tfloat rt \x3d texture2DCompare( depths, centroidUV + texelSize * offset.yy, compare );\n\t\tvec2 f \x3d fract( uv * size + 0.5 );\n\t\tfloat a \x3d mix( lb, lt, f.y );\n\t\tfloat b \x3d mix( rb, rt, f.y );\n\t\tfloat c \x3d mix( a, b, f.x );\n\t\treturn c;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow \x3d 1.0;\n\t\tshadowCoord.xyz /\x3d shadowCoord.w;\n\t\tshadowCoord.z +\x3d shadowBias;\n\t\tbvec4 inFrustumVec \x3d bvec4 ( shadowCoord.x \x3e\x3d 0.0, shadowCoord.x \x3c\x3d 1.0, shadowCoord.y \x3e\x3d 0.0, shadowCoord.y \x3c\x3d 1.0 );\n\t\tbool inFrustum \x3d all( inFrustumVec );\n\t\tbvec2 frustumTestVec \x3d bvec2( inFrustum, shadowCoord.z \x3c\x3d 1.0 );\n\t\tbool frustumTest \x3d all( frustumTestVec );\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize \x3d vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 \x3d - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 \x3d - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 \x3d + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 \x3d + texelSize.y * shadowRadius;\n\t\t\tshadow \x3d (\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( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, 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( 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 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize \x3d vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 \x3d - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 \x3d - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 \x3d + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 \x3d + texelSize.y * shadowRadius;\n\t\t\tshadow \x3d (\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\tshadow \x3d 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 \x3d abs( v );\n\t\tfloat scaleToCube \x3d 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *\x3d scaleToCube;\n\t\tv *\x3d scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar \x3d v.xy;\n\t\tfloat almostATexel \x3d 1.5 * texelSizeY;\n\t\tfloat almostOne \x3d 1.0 - almostATexel;\n\t\tif ( absV.z \x3e\x3d almostOne ) {\n\t\t\tif ( v.z \x3e 0.0 )\n\t\t\t\tplanar.x \x3d 4.0 - v.x;\n\t\t} else if ( absV.x \x3e\x3d almostOne ) {\n\t\t\tfloat signX \x3d sign( v.x );\n\t\t\tplanar.x \x3d v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y \x3e\x3d almostOne ) {\n\t\t\tfloat signY \x3d sign( v.y );\n\t\t\tplanar.x \x3d v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y \x3d 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 \x3d vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition \x3d shadowCoord.xyz;\n\t\tfloat dp \x3d ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp +\x3d shadowBias;\n\t\tvec3 bd3D \x3d normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 offset \x3d 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\n",shadowmap_pars_vertex:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHTS \x3e 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHTS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHTS ];\n\t#endif\n\t#if NUM_SPOT_LIGHTS \x3e 0\n\t\tuniform mat4 spotShadowMatrix[ NUM_SPOT_LIGHTS ];\n\t\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHTS ];\n\t#endif\n\t#if NUM_POINT_LIGHTS \x3e 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHTS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHTS ];\n\t#endif\n#endif\n",shadowmap_vertex:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHTS \x3e 0\n\t#pragma unroll_loop\n\tfor ( int i \x3d 0; i \x3c NUM_DIR_LIGHTS; i ++ ) {\n\t\tvDirectionalShadowCoord[ i ] \x3d directionalShadowMatrix[ i ] * worldPosition;\n\t}\n\t#endif\n\t#if NUM_SPOT_LIGHTS \x3e 0\n\t#pragma unroll_loop\n\tfor ( int i \x3d 0; i \x3c NUM_SPOT_LIGHTS; i ++ ) {\n\t\tvSpotShadowCoord[ i ] \x3d spotShadowMatrix[ i ] * worldPosition;\n\t}\n\t#endif\n\t#if NUM_POINT_LIGHTS \x3e 0\n\t#pragma unroll_loop\n\tfor ( int i \x3d 0; i \x3c NUM_POINT_LIGHTS; i ++ ) {\n\t\tvPointShadowCoord[ i ] \x3d pointShadowMatrix[ i ] * worldPosition;\n\t}\n\t#endif\n#endif\n",shadowmask_pars_fragment:"float getShadowMask() {\n\tfloat shadow \x3d 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHTS \x3e 0\n\tDt directionalLight;\n\t#pragma unroll_loop\n\tfor ( int i \x3d 0; i \x3c NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight \x3d directionalLights[ i ];\n\t\tshadow *\x3d bool( directionalLight.shadow ) ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#endif\n\t#if NUM_SPOT_LIGHTS \x3e 0\n\tSpotLight spotLight;\n\t#pragma unroll_loop\n\tfor ( int i \x3d 0; i \x3c NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight \x3d spotLights[ i ];\n\t\tshadow *\x3d bool( spotLight.shadow ) ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t}\n\t#endif\n\t#if NUM_POINT_LIGHTS \x3e 0\n\tPointLight pointLight;\n\t#pragma unroll_loop\n\tfor ( int i \x3d 0; i \x3c NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight \x3d pointLights[ i ];\n\t\tshadow *\x3d bool( pointLight.shadow ) ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#endif\n\t#endif\n\treturn shadow;\n}\n",skinbase_vertex:"#ifdef USE_SKINNING\n\tmat4 boneMatX \x3d getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY \x3d getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ \x3d getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW \x3d 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 sampler2D boneTexture;\n\t\tuniform int boneTextureSize;\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tfloat j \x3d i * 4.0;\n\t\t\tfloat x \x3d mod( j, float( boneTextureSize ) );\n\t\t\tfloat y \x3d floor( j / float( boneTextureSize ) );\n\t\t\tfloat dx \x3d 1.0 / float( boneTextureSize );\n\t\t\tfloat dy \x3d 1.0 / float( boneTextureSize );\n\t\t\ty \x3d dy * ( y + 0.5 );\n\t\t\tvec4 v1 \x3d texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\t\tvec4 v2 \x3d texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\t\tvec4 v3 \x3d texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\t\tvec4 v4 \x3d texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\t\t\tmat4 bone \x3d 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 \x3d boneMatrices[ int(i) ];\n\t\t\treturn bone;\n\t\t}\n\t#endif\n#endif\n",skinning_vertex:"#ifdef USE_SKINNING\n\tvec4 skinVertex \x3d bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned \x3d vec4( 0.0 );\n\tskinned +\x3d boneMatX * skinVertex * skinWeight.x;\n\tskinned +\x3d boneMatY * skinVertex * skinWeight.y;\n\tskinned +\x3d boneMatZ * skinVertex * skinWeight.z;\n\tskinned +\x3d boneMatW * skinVertex * skinWeight.w;\n\ttransformed \x3d ( bindMatrixInverse * skinned ).xyz;\n#endif\n",skinnormal_vertex:"#ifdef USE_SKINNING\n\tmat4 skinMatrix \x3d mat4( 0.0 );\n\tskinMatrix +\x3d skinWeight.x * boneMatX;\n\tskinMatrix +\x3d skinWeight.y * boneMatY;\n\tskinMatrix +\x3d skinWeight.z * boneMatZ;\n\tskinMatrix +\x3d skinWeight.w * boneMatW;\n\tskinMatrix \x3d bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal \x3d vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n#endif\n",specularmap_fragment:"float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular \x3d texture2D( specularMap, vUv );\n\tspecularStrength \x3d texelSpecular.r;\n#else\n\tspecularStrength \x3d 1.0;\n#endif",specularmap_pars_fragment:"#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif",tonemapping_fragment:"#if defined( TONE_MAPPING )\n gl_FragColor.rgb \x3d toneMapping( gl_FragColor.rgb );\n#endif\n",tonemapping_pars_fragment:"#ifndef saturate\n\t#define saturate(a) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nuniform float toneMappingWhitePoint;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn toneMappingExposure * color;\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *\x3d toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\n#define Uncharted2Helper( x ) max( ( ( x * ( 0.15 * x + 0.10 * 0.50 ) + 0.20 * 0.02 ) / ( x * ( 0.15 * x + 0.50 ) + 0.20 * 0.30 ) ) - 0.02 / 0.30, vec3( 0.0 ) )\nvec3 Uncharted2ToneMapping( vec3 color ) {\n\tcolor *\x3d toneMappingExposure;\n\treturn saturate( Uncharted2Helper( color ) / Uncharted2Helper( vec3( toneMappingWhitePoint ) ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *\x3d toneMappingExposure;\n\tcolor \x3d 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}\n",uv_pars_fragment:"#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP ) || defined( USE_EMISSIVEMAP ) || defined( USE_ROUGHNESSMAP ) || defined( USE_METALNESSMAP )\n\tvarying vec2 vUv;\n#endif",uv_pars_vertex:"#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP ) || defined( USE_EMISSIVEMAP ) || defined( USE_ROUGHNESSMAP ) || defined( USE_METALNESSMAP )\n\tvarying vec2 vUv;\n\tuniform mat3 uvTransform;\n#endif\n",uv_vertex:"#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP ) || defined( USE_EMISSIVEMAP ) || defined( USE_ROUGHNESSMAP ) || defined( USE_METALNESSMAP )\n\tvUv \x3d ( 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#endif",uv2_vertex:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvUv2 \x3d uv2;\n#endif",worldpos_vertex:"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP )\n\tvec4 worldPosition \x3d modelMatrix * vec4( transformed, 1.0 );\n#endif\n",background_frag:"uniform sampler2D t2D;\nvarying vec2 vUv;\nvoid main() {\n\tgl_FragColor \x3d texture2D( t2D, vUv );\n}\n",background_vert:"varying vec2 vUv;\nvoid main() {\n\tvUv \x3d uv;\n\tgl_Position \x3d vec4( position, 1.0 );\n\tgl_Position.z \x3d 1.0;\n}\n",cube_frag:"uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldPosition;\nvoid main() {\n\tgl_FragColor \x3d textureCube( tCube, vec3( tFlip * vWorldPosition.x, vWorldPosition.yz ) );\n\tgl_FragColor.a *\x3d opacity;\n}\n",cube_vert:"varying vec3 vWorldPosition;\n#include \x3ccommon\x3e\nvoid main() {\n\tvWorldPosition \x3d transformDirection( position, modelMatrix );\n\t#include \x3cbegin_vertex\x3e\n\t#include \x3cproject_vertex\x3e\n\tgl_Position.z \x3d gl_Position.w;\n}\n",depth_frag:"#if DEPTH_PACKING \x3d\x3d 3200\n\tuniform float opacity;\n#endif\n#include \x3ccommon\x3e\n#include \x3cpacking\x3e\n#include \x3cuv_pars_fragment\x3e\n#include \x3cmap_pars_fragment\x3e\n#include \x3calphamap_pars_fragment\x3e\n#include \x3clogdepthbuf_pars_fragment\x3e\n#include \x3cclipping_planes_pars_fragment\x3e\nvoid main() {\n\t#include \x3cclipping_planes_fragment\x3e\n\tvec4 diffuseColor \x3d vec4( 1.0 );\n\t#if DEPTH_PACKING \x3d\x3d 3200\n\t\tdiffuseColor.a \x3d opacity;\n\t#endif\n\t#include \x3cmap_fragment\x3e\n\t#include \x3calphamap_fragment\x3e\n\t#include \x3calphatest_fragment\x3e\n\t#include \x3clogdepthbuf_fragment\x3e\n\t#if DEPTH_PACKING \x3d\x3d 3200\n\t\tgl_FragColor \x3d vec4( vec3( 1.0 - gl_FragCoord.z ), opacity );\n\t#elif DEPTH_PACKING \x3d\x3d 3201\n\t\tgl_FragColor \x3d packDepthToRGBA( gl_FragCoord.z );\n\t#endif\n}\n",depth_vert:"#include \x3ccommon\x3e\n#include \x3cuv_pars_vertex\x3e\n#include \x3cdisplacementmap_pars_vertex\x3e\n#include \x3cmorphtarget_pars_vertex\x3e\n#include \x3cskinning_pars_vertex\x3e\n#include \x3clogdepthbuf_pars_vertex\x3e\n#include \x3cclipping_planes_pars_vertex\x3e\nvoid main() {\n\t#include \x3cuv_vertex\x3e\n\t#include \x3cskinbase_vertex\x3e\n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \x3cbeginnormal_vertex\x3e\n\t\t#include \x3cmorphnormal_vertex\x3e\n\t\t#include \x3cskinnormal_vertex\x3e\n\t#endif\n\t#include \x3cbegin_vertex\x3e\n\t#include \x3cmorphtarget_vertex\x3e\n\t#include \x3cskinning_vertex\x3e\n\t#include \x3cdisplacementmap_vertex\x3e\n\t#include \x3cproject_vertex\x3e\n\t#include \x3clogdepthbuf_vertex\x3e\n\t#include \x3cclipping_planes_vertex\x3e\n}\n",distanceRGBA_frag:"#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include \x3ccommon\x3e\n#include \x3cpacking\x3e\n#include \x3cuv_pars_fragment\x3e\n#include \x3cmap_pars_fragment\x3e\n#include \x3calphamap_pars_fragment\x3e\n#include \x3cclipping_planes_pars_fragment\x3e\nvoid main () {\n\t#include \x3cclipping_planes_fragment\x3e\n\tvec4 diffuseColor \x3d vec4( 1.0 );\n\t#include \x3cmap_fragment\x3e\n\t#include \x3calphamap_fragment\x3e\n\t#include \x3calphatest_fragment\x3e\n\tfloat dist \x3d length( vWorldPosition - referencePosition );\n\tdist \x3d ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist \x3d saturate( dist );\n\tgl_FragColor \x3d packDepthToRGBA( dist );\n}\n",distanceRGBA_vert:"#define DISTANCE\nvarying vec3 vWorldPosition;\n#include \x3ccommon\x3e\n#include \x3cuv_pars_vertex\x3e\n#include \x3cdisplacementmap_pars_vertex\x3e\n#include \x3cmorphtarget_pars_vertex\x3e\n#include \x3cskinning_pars_vertex\x3e\n#include \x3cclipping_planes_pars_vertex\x3e\nvoid main() {\n\t#include \x3cuv_vertex\x3e\n\t#include \x3cskinbase_vertex\x3e\n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \x3cbeginnormal_vertex\x3e\n\t\t#include \x3cmorphnormal_vertex\x3e\n\t\t#include \x3cskinnormal_vertex\x3e\n\t#endif\n\t#include \x3cbegin_vertex\x3e\n\t#include \x3cmorphtarget_vertex\x3e\n\t#include \x3cskinning_vertex\x3e\n\t#include \x3cdisplacementmap_vertex\x3e\n\t#include \x3cproject_vertex\x3e\n\t#include \x3cworldpos_vertex\x3e\n\t#include \x3cclipping_planes_vertex\x3e\n\tvWorldPosition \x3d worldPosition.xyz;\n}\n",equirect_frag:"uniform sampler2D tEquirect;\nvarying vec3 vWorldPosition;\n#include \x3ccommon\x3e\nvoid main() {\n\tvec3 direction \x3d normalize( vWorldPosition );\n\tvec2 sampleUV;\n\tsampleUV.y \x3d asin( clamp( direction.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\tsampleUV.x \x3d atan( direction.z, direction.x ) * RECIPROCAL_PI2 + 0.5;\n\tgl_FragColor \x3d texture2D( tEquirect, sampleUV );\n}\n",equirect_vert:"varying vec3 vWorldPosition;\n#include \x3ccommon\x3e\nvoid main() {\n\tvWorldPosition \x3d transformDirection( position, modelMatrix );\n\t#include \x3cbegin_vertex\x3e\n\t#include \x3cproject_vertex\x3e\n}\n",linedashed_frag:"uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include \x3ccommon\x3e\n#include \x3ccolor_pars_fragment\x3e\n#include \x3cfog_pars_fragment\x3e\n#include \x3clogdepthbuf_pars_fragment\x3e\n#include \x3cclipping_planes_pars_fragment\x3e\nvoid main() {\n\t#include \x3cclipping_planes_fragment\x3e\n\tif ( mod( vLineDistance, totalSize ) \x3e dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight \x3d vec3( 0.0 );\n\tvec4 diffuseColor \x3d vec4( diffuse, opacity );\n\t#include \x3clogdepthbuf_fragment\x3e\n\t#include \x3ccolor_fragment\x3e\n\toutgoingLight \x3d diffuseColor.rgb;\n\tgl_FragColor \x3d vec4( outgoingLight, diffuseColor.a );\n\t#include \x3cpremultiplied_alpha_fragment\x3e\n\t#include \x3ctonemapping_fragment\x3e\n\t#include \x3cencodings_fragment\x3e\n\t#include \x3cfog_fragment\x3e\n}\n",linedashed_vert:"uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include \x3ccommon\x3e\n#include \x3ccolor_pars_vertex\x3e\n#include \x3cfog_pars_vertex\x3e\n#include \x3clogdepthbuf_pars_vertex\x3e\n#include \x3cclipping_planes_pars_vertex\x3e\nvoid main() {\n\t#include \x3ccolor_vertex\x3e\n\tvLineDistance \x3d scale * lineDistance;\n\tvec4 mvPosition \x3d modelViewMatrix * vec4( position, 1.0 );\n\tgl_Position \x3d projectionMatrix * mvPosition;\n\t#include \x3clogdepthbuf_vertex\x3e\n\t#include \x3cclipping_planes_vertex\x3e\n\t#include \x3cfog_vertex\x3e\n}\n",meshbasic_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \x3ccommon\x3e\n#include \x3ccolor_pars_fragment\x3e\n#include \x3cuv_pars_fragment\x3e\n#include \x3cuv2_pars_fragment\x3e\n#include \x3cmap_pars_fragment\x3e\n#include \x3calphamap_pars_fragment\x3e\n#include \x3caomap_pars_fragment\x3e\n#include \x3clightmap_pars_fragment\x3e\n#include \x3cenvmap_pars_fragment\x3e\n#include \x3cfog_pars_fragment\x3e\n#include \x3cspecularmap_pars_fragment\x3e\n#include \x3clogdepthbuf_pars_fragment\x3e\n#include \x3cclipping_planes_pars_fragment\x3e\nvoid main() {\n\t#include \x3cclipping_planes_fragment\x3e\n\tvec4 diffuseColor \x3d vec4( diffuse, opacity );\n\t#include \x3clogdepthbuf_fragment\x3e\n\t#include \x3cmap_fragment\x3e\n\t#include \x3ccolor_fragment\x3e\n\t#include \x3calphamap_fragment\x3e\n\t#include \x3calphatest_fragment\x3e\n\t#include \x3cspecularmap_fragment\x3e\n\tReflectedLight reflectedLight \x3d ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\treflectedLight.indirectDiffuse +\x3d texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\n\t#else\n\t\treflectedLight.indirectDiffuse +\x3d vec3( 1.0 );\n\t#endif\n\t#include \x3caomap_fragment\x3e\n\treflectedLight.indirectDiffuse *\x3d diffuseColor.rgb;\n\tvec3 outgoingLight \x3d reflectedLight.indirectDiffuse;\n\t#include \x3cenvmap_fragment\x3e\n\tgl_FragColor \x3d vec4( outgoingLight, diffuseColor.a );\n\t#include \x3cpremultiplied_alpha_fragment\x3e\n\t#include \x3ctonemapping_fragment\x3e\n\t#include \x3cencodings_fragment\x3e\n\t#include \x3cfog_fragment\x3e\n}\n",meshbasic_vert:"#include \x3ccommon\x3e\n#include \x3cuv_pars_vertex\x3e\n#include \x3cuv2_pars_vertex\x3e\n#include \x3cenvmap_pars_vertex\x3e\n#include \x3ccolor_pars_vertex\x3e\n#include \x3cfog_pars_vertex\x3e\n#include \x3cmorphtarget_pars_vertex\x3e\n#include \x3cskinning_pars_vertex\x3e\n#include \x3clogdepthbuf_pars_vertex\x3e\n#include \x3cclipping_planes_pars_vertex\x3e\nvoid main() {\n\t#include \x3cuv_vertex\x3e\n\t#include \x3cuv2_vertex\x3e\n\t#include \x3ccolor_vertex\x3e\n\t#include \x3cskinbase_vertex\x3e\n\t#ifdef USE_ENVMAP\n\t#include \x3cbeginnormal_vertex\x3e\n\t#include \x3cmorphnormal_vertex\x3e\n\t#include \x3cskinnormal_vertex\x3e\n\t#include \x3cdefaultnormal_vertex\x3e\n\t#endif\n\t#include \x3cbegin_vertex\x3e\n\t#include \x3cmorphtarget_vertex\x3e\n\t#include \x3cskinning_vertex\x3e\n\t#include \x3cproject_vertex\x3e\n\t#include \x3clogdepthbuf_vertex\x3e\n\t#include \x3cworldpos_vertex\x3e\n\t#include \x3cclipping_planes_vertex\x3e\n\t#include \x3cenvmap_vertex\x3e\n\t#include \x3cfog_vertex\x3e\n}\n",meshlambert_frag:"uniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\nvarying vec3 vLightFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n#endif\n#include \x3ccommon\x3e\n#include \x3cpacking\x3e\n#include \x3cdithering_pars_fragment\x3e\n#include \x3ccolor_pars_fragment\x3e\n#include \x3cuv_pars_fragment\x3e\n#include \x3cuv2_pars_fragment\x3e\n#include \x3cmap_pars_fragment\x3e\n#include \x3calphamap_pars_fragment\x3e\n#include \x3caomap_pars_fragment\x3e\n#include \x3clightmap_pars_fragment\x3e\n#include \x3cemissivemap_pars_fragment\x3e\n#include \x3cenvmap_pars_fragment\x3e\n#include \x3cbsdfs\x3e\n#include \x3clights_pars_begin\x3e\n#include \x3cfog_pars_fragment\x3e\n#include \x3cshadowmap_pars_fragment\x3e\n#include \x3cshadowmask_pars_fragment\x3e\n#include \x3cspecularmap_pars_fragment\x3e\n#include \x3clogdepthbuf_pars_fragment\x3e\n#include \x3cclipping_planes_pars_fragment\x3e\nvoid main() {\n\t#include \x3cclipping_planes_fragment\x3e\n\tvec4 diffuseColor \x3d vec4( diffuse, opacity );\n\tReflectedLight reflectedLight \x3d ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance \x3d emissive;\n\t#include \x3clogdepthbuf_fragment\x3e\n\t#include \x3cmap_fragment\x3e\n\t#include \x3ccolor_fragment\x3e\n\t#include \x3calphamap_fragment\x3e\n\t#include \x3calphatest_fragment\x3e\n\t#include \x3cspecularmap_fragment\x3e\n\t#include \x3cemissivemap_fragment\x3e\n\treflectedLight.indirectDiffuse \x3d getAmbientLightIrradiance( ambientLightColor );\n\t#include \x3clightmap_fragment\x3e\n\treflectedLight.indirectDiffuse *\x3d BRDF_Diffuse_Lambert( diffuseColor.rgb );\n\t#ifdef DOUBLE_SIDED\n\t\treflectedLight.directDiffuse \x3d ( gl_FrontFacing ) ? vLightFront : vLightBack;\n\t#else\n\t\treflectedLight.directDiffuse \x3d vLightFront;\n\t#endif\n\treflectedLight.directDiffuse *\x3d BRDF_Diffuse_Lambert( diffuseColor.rgb ) * getShadowMask();\n\t#include \x3caomap_fragment\x3e\n\tvec3 outgoingLight \x3d reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \x3cenvmap_fragment\x3e\n\tgl_FragColor \x3d vec4( outgoingLight, diffuseColor.a );\n\t#include \x3ctonemapping_fragment\x3e\n\t#include \x3cencodings_fragment\x3e\n\t#include \x3cfog_fragment\x3e\n\t#include \x3cpremultiplied_alpha_fragment\x3e\n\t#include \x3cdithering_fragment\x3e\n}\n",meshlambert_vert:"#define LAMBERT\nvarying vec3 vLightFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n#endif\n#include \x3ccommon\x3e\n#include \x3cuv_pars_vertex\x3e\n#include \x3cuv2_pars_vertex\x3e\n#include \x3cenvmap_pars_vertex\x3e\n#include \x3cbsdfs\x3e\n#include \x3clights_pars_begin\x3e\n#include \x3ccolor_pars_vertex\x3e\n#include \x3cfog_pars_vertex\x3e\n#include \x3cmorphtarget_pars_vertex\x3e\n#include \x3cskinning_pars_vertex\x3e\n#include \x3cshadowmap_pars_vertex\x3e\n#include \x3clogdepthbuf_pars_vertex\x3e\n#include \x3cclipping_planes_pars_vertex\x3e\nvoid main() {\n\t#include \x3cuv_vertex\x3e\n\t#include \x3cuv2_vertex\x3e\n\t#include \x3ccolor_vertex\x3e\n\t#include \x3cbeginnormal_vertex\x3e\n\t#include \x3cmorphnormal_vertex\x3e\n\t#include \x3cskinbase_vertex\x3e\n\t#include \x3cskinnormal_vertex\x3e\n\t#include \x3cdefaultnormal_vertex\x3e\n\t#include \x3cbegin_vertex\x3e\n\t#include \x3cmorphtarget_vertex\x3e\n\t#include \x3cskinning_vertex\x3e\n\t#include \x3cproject_vertex\x3e\n\t#include \x3clogdepthbuf_vertex\x3e\n\t#include \x3cclipping_planes_vertex\x3e\n\t#include \x3cworldpos_vertex\x3e\n\t#include \x3cenvmap_vertex\x3e\n\t#include \x3clights_lambert_vertex\x3e\n\t#include \x3cshadowmap_vertex\x3e\n\t#include \x3cfog_vertex\x3e\n}\n",meshmatcap_frag:"#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \x3ccommon\x3e\n#include \x3cuv_pars_fragment\x3e\n#include \x3cmap_pars_fragment\x3e\n#include \x3calphamap_pars_fragment\x3e\n#include \x3cfog_pars_fragment\x3e\n#include \x3cbumpmap_pars_fragment\x3e\n#include \x3cnormalmap_pars_fragment\x3e\n#include \x3clogdepthbuf_pars_fragment\x3e\n#include \x3cclipping_planes_pars_fragment\x3e\nvoid main() {\n\t#include \x3cclipping_planes_fragment\x3e\n\tvec4 diffuseColor \x3d vec4( diffuse, opacity );\n\t#include \x3clogdepthbuf_fragment\x3e\n\t#include \x3cmap_fragment\x3e\n\t#include \x3calphamap_fragment\x3e\n\t#include \x3calphatest_fragment\x3e\n\t#include \x3cnormal_fragment_begin\x3e\n\t#include \x3cnormal_fragment_maps\x3e\n\tvec3 viewDir \x3d normalize( vViewPosition );\n\tvec3 x \x3d normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y \x3d cross( viewDir, x );\n\tvec2 uv \x3d vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\tvec4 matcapColor \x3d texture2D( matcap, uv );\n\tmatcapColor \x3d matcapTexelToLinear( matcapColor );\n\tvec3 outgoingLight \x3d diffuseColor.rgb * matcapColor.rgb;\n\tgl_FragColor \x3d vec4( outgoingLight, diffuseColor.a );\n\t#include \x3cpremultiplied_alpha_fragment\x3e\n\t#include \x3ctonemapping_fragment\x3e\n\t#include \x3cencodings_fragment\x3e\n\t#include \x3cfog_fragment\x3e\n}\n",meshmatcap_vert:"#define MATCAP\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \x3ccommon\x3e\n#include \x3cuv_pars_vertex\x3e\n#include \x3cdisplacementmap_pars_vertex\x3e\n#include \x3cfog_pars_vertex\x3e\n#include \x3cmorphtarget_pars_vertex\x3e\n#include \x3cskinning_pars_vertex\x3e\n#include \x3clogdepthbuf_pars_vertex\x3e\n#include \x3cclipping_planes_pars_vertex\x3e\nvoid main() {\n\t#include \x3cuv_vertex\x3e\n\t#include \x3cbeginnormal_vertex\x3e\n\t#include \x3cmorphnormal_vertex\x3e\n\t#include \x3cskinbase_vertex\x3e\n\t#include \x3cskinnormal_vertex\x3e\n\t#include \x3cdefaultnormal_vertex\x3e\n\t#ifndef FLAT_SHADED\n\t\tvNormal \x3d normalize( transformedNormal );\n\t#endif\n\t#include \x3cbegin_vertex\x3e\n\t#include \x3cmorphtarget_vertex\x3e\n\t#include \x3cskinning_vertex\x3e\n\t#include \x3cdisplacementmap_vertex\x3e\n\t#include \x3cproject_vertex\x3e\n\t#include \x3clogdepthbuf_vertex\x3e\n\t#include \x3cclipping_planes_vertex\x3e\n\t#include \x3cfog_vertex\x3e\n\tvViewPosition \x3d - mvPosition.xyz;\n}\n",meshphong_frag:"#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include \x3ccommon\x3e\n#include \x3cpacking\x3e\n#include \x3cdithering_pars_fragment\x3e\n#include \x3ccolor_pars_fragment\x3e\n#include \x3cuv_pars_fragment\x3e\n#include \x3cuv2_pars_fragment\x3e\n#include \x3cmap_pars_fragment\x3e\n#include \x3calphamap_pars_fragment\x3e\n#include \x3caomap_pars_fragment\x3e\n#include \x3clightmap_pars_fragment\x3e\n#include \x3cemissivemap_pars_fragment\x3e\n#include \x3cenvmap_pars_fragment\x3e\n#include \x3cgradientmap_pars_fragment\x3e\n#include \x3cfog_pars_fragment\x3e\n#include \x3cbsdfs\x3e\n#include \x3clights_pars_begin\x3e\n#include \x3clights_phong_pars_fragment\x3e\n#include \x3cshadowmap_pars_fragment\x3e\n#include \x3cbumpmap_pars_fragment\x3e\n#include \x3cnormalmap_pars_fragment\x3e\n#include \x3cspecularmap_pars_fragment\x3e\n#include \x3clogdepthbuf_pars_fragment\x3e\n#include \x3cclipping_planes_pars_fragment\x3e\nvoid main() {\n\t#include \x3cclipping_planes_fragment\x3e\n\tvec4 diffuseColor \x3d vec4( diffuse, opacity );\n\tReflectedLight reflectedLight \x3d ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance \x3d emissive;\n\t#include \x3clogdepthbuf_fragment\x3e\n\t#include \x3cmap_fragment\x3e\n\t#include \x3ccolor_fragment\x3e\n\t#include \x3calphamap_fragment\x3e\n\t#include \x3calphatest_fragment\x3e\n\t#include \x3cspecularmap_fragment\x3e\n\t#include \x3cnormal_fragment_begin\x3e\n\t#include \x3cnormal_fragment_maps\x3e\n\t#include \x3cemissivemap_fragment\x3e\n\t#include \x3clights_phong_fragment\x3e\n\t#include \x3clights_fragment_begin\x3e\n\t#include \x3clights_fragment_maps\x3e\n\t#include \x3clights_fragment_end\x3e\n\t#include \x3caomap_fragment\x3e\n\tvec3 outgoingLight \x3d reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include \x3cenvmap_fragment\x3e\n\tgl_FragColor \x3d vec4( outgoingLight, diffuseColor.a );\n\t#include \x3ctonemapping_fragment\x3e\n\t#include \x3cencodings_fragment\x3e\n\t#include \x3cfog_fragment\x3e\n\t#include \x3cpremultiplied_alpha_fragment\x3e\n\t#include \x3cdithering_fragment\x3e\n}\n",meshphong_vert:"#define PHONG\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \x3ccommon\x3e\n#include \x3cuv_pars_vertex\x3e\n#include \x3cuv2_pars_vertex\x3e\n#include \x3cdisplacementmap_pars_vertex\x3e\n#include \x3cenvmap_pars_vertex\x3e\n#include \x3ccolor_pars_vertex\x3e\n#include \x3cfog_pars_vertex\x3e\n#include \x3cmorphtarget_pars_vertex\x3e\n#include \x3cskinning_pars_vertex\x3e\n#include \x3cshadowmap_pars_vertex\x3e\n#include \x3clogdepthbuf_pars_vertex\x3e\n#include \x3cclipping_planes_pars_vertex\x3e\nvoid main() {\n\t#include \x3cuv_vertex\x3e\n\t#include \x3cuv2_vertex\x3e\n\t#include \x3ccolor_vertex\x3e\n\t#include \x3cbeginnormal_vertex\x3e\n\t#include \x3cmorphnormal_vertex\x3e\n\t#include \x3cskinbase_vertex\x3e\n\t#include \x3cskinnormal_vertex\x3e\n\t#include \x3cdefaultnormal_vertex\x3e\n#ifndef FLAT_SHADED\n\tvNormal \x3d normalize( transformedNormal );\n#endif\n\t#include \x3cbegin_vertex\x3e\n\t#include \x3cmorphtarget_vertex\x3e\n\t#include \x3cskinning_vertex\x3e\n\t#include \x3cdisplacementmap_vertex\x3e\n\t#include \x3cproject_vertex\x3e\n\t#include \x3clogdepthbuf_vertex\x3e\n\t#include \x3cclipping_planes_vertex\x3e\n\tvViewPosition \x3d - mvPosition.xyz;\n\t#include \x3cworldpos_vertex\x3e\n\t#include \x3cenvmap_vertex\x3e\n\t#include \x3cshadowmap_vertex\x3e\n\t#include \x3cfog_vertex\x3e\n}\n",meshphysical_frag:"#define PHYSICAL\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifndef STANDARD\n\tuniform float clearCoat;\n\tuniform float clearCoatRoughness;\n#endif\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \x3ccommon\x3e\n#include \x3cpacking\x3e\n#include \x3cdithering_pars_fragment\x3e\n#include \x3ccolor_pars_fragment\x3e\n#include \x3cuv_pars_fragment\x3e\n#include \x3cuv2_pars_fragment\x3e\n#include \x3cmap_pars_fragment\x3e\n#include \x3calphamap_pars_fragment\x3e\n#include \x3caomap_pars_fragment\x3e\n#include \x3clightmap_pars_fragment\x3e\n#include \x3cemissivemap_pars_fragment\x3e\n#include \x3cbsdfs\x3e\n#include \x3ccube_uv_reflection_fragment\x3e\n#include \x3cenvmap_pars_fragment\x3e\n#include \x3cenvmap_physical_pars_fragment\x3e\n#include \x3cfog_pars_fragment\x3e\n#include \x3clights_pars_begin\x3e\n#include \x3clights_physical_pars_fragment\x3e\n#include \x3cshadowmap_pars_fragment\x3e\n#include \x3cbumpmap_pars_fragment\x3e\n#include \x3cnormalmap_pars_fragment\x3e\n#include \x3croughnessmap_pars_fragment\x3e\n#include \x3cmetalnessmap_pars_fragment\x3e\n#include \x3clogdepthbuf_pars_fragment\x3e\n#include \x3cclipping_planes_pars_fragment\x3e\nvoid main() {\n\t#include \x3cclipping_planes_fragment\x3e\n\tvec4 diffuseColor \x3d vec4( diffuse, opacity );\n\tReflectedLight reflectedLight \x3d ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance \x3d emissive;\n\t#include \x3clogdepthbuf_fragment\x3e\n\t#include \x3cmap_fragment\x3e\n\t#include \x3ccolor_fragment\x3e\n\t#include \x3calphamap_fragment\x3e\n\t#include \x3calphatest_fragment\x3e\n\t#include \x3croughnessmap_fragment\x3e\n\t#include \x3cmetalnessmap_fragment\x3e\n\t#include \x3cnormal_fragment_begin\x3e\n\t#include \x3cnormal_fragment_maps\x3e\n\t#include \x3cemissivemap_fragment\x3e\n\t#include \x3clights_physical_fragment\x3e\n\t#include \x3clights_fragment_begin\x3e\n\t#include \x3clights_fragment_maps\x3e\n\t#include \x3clights_fragment_end\x3e\n\t#include \x3caomap_fragment\x3e\n\tvec3 outgoingLight \x3d reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\tgl_FragColor \x3d vec4( outgoingLight, diffuseColor.a );\n\t#include \x3ctonemapping_fragment\x3e\n\t#include \x3cencodings_fragment\x3e\n\t#include \x3cfog_fragment\x3e\n\t#include \x3cpremultiplied_alpha_fragment\x3e\n\t#include \x3cdithering_fragment\x3e\n}\n",meshphysical_vert:"#define PHYSICAL\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \x3ccommon\x3e\n#include \x3cuv_pars_vertex\x3e\n#include \x3cuv2_pars_vertex\x3e\n#include \x3cdisplacementmap_pars_vertex\x3e\n#include \x3ccolor_pars_vertex\x3e\n#include \x3cfog_pars_vertex\x3e\n#include \x3cmorphtarget_pars_vertex\x3e\n#include \x3cskinning_pars_vertex\x3e\n#include \x3cshadowmap_pars_vertex\x3e\n#include \x3clogdepthbuf_pars_vertex\x3e\n#include \x3cclipping_planes_pars_vertex\x3e\nvoid main() {\n\t#include \x3cuv_vertex\x3e\n\t#include \x3cuv2_vertex\x3e\n\t#include \x3ccolor_vertex\x3e\n\t#include \x3cbeginnormal_vertex\x3e\n\t#include \x3cmorphnormal_vertex\x3e\n\t#include \x3cskinbase_vertex\x3e\n\t#include \x3cskinnormal_vertex\x3e\n\t#include \x3cdefaultnormal_vertex\x3e\n#ifndef FLAT_SHADED\n\tvNormal \x3d normalize( transformedNormal );\n#endif\n\t#include \x3cbegin_vertex\x3e\n\t#include \x3cmorphtarget_vertex\x3e\n\t#include \x3cskinning_vertex\x3e\n\t#include \x3cdisplacementmap_vertex\x3e\n\t#include \x3cproject_vertex\x3e\n\t#include \x3clogdepthbuf_vertex\x3e\n\t#include \x3cclipping_planes_vertex\x3e\n\tvViewPosition \x3d - mvPosition.xyz;\n\t#include \x3cworldpos_vertex\x3e\n\t#include \x3cshadowmap_vertex\x3e\n\t#include \x3cfog_vertex\x3e\n}\n",normal_frag:"#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || ( defined( USE_NORMALMAP ) \x26\x26 ! defined( OBJECTSPACE_NORMALMAP ) )\n\tvarying vec3 vViewPosition;\n#endif\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \x3cpacking\x3e\n#include \x3cuv_pars_fragment\x3e\n#include \x3cbumpmap_pars_fragment\x3e\n#include \x3cnormalmap_pars_fragment\x3e\n#include \x3clogdepthbuf_pars_fragment\x3e\nvoid main() {\n\t#include \x3clogdepthbuf_fragment\x3e\n\t#include \x3cnormal_fragment_begin\x3e\n\t#include \x3cnormal_fragment_maps\x3e\n\tgl_FragColor \x3d vec4( packNormalToRGB( normal ), opacity );\n}\n",normal_vert:"#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || ( defined( USE_NORMALMAP ) \x26\x26 ! defined( OBJECTSPACE_NORMALMAP ) )\n\tvarying vec3 vViewPosition;\n#endif\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \x3cuv_pars_vertex\x3e\n#include \x3cdisplacementmap_pars_vertex\x3e\n#include \x3cmorphtarget_pars_vertex\x3e\n#include \x3cskinning_pars_vertex\x3e\n#include \x3clogdepthbuf_pars_vertex\x3e\nvoid main() {\n\t#include \x3cuv_vertex\x3e\n\t#include \x3cbeginnormal_vertex\x3e\n\t#include \x3cmorphnormal_vertex\x3e\n\t#include \x3cskinbase_vertex\x3e\n\t#include \x3cskinnormal_vertex\x3e\n\t#include \x3cdefaultnormal_vertex\x3e\n#ifndef FLAT_SHADED\n\tvNormal \x3d normalize( transformedNormal );\n#endif\n\t#include \x3cbegin_vertex\x3e\n\t#include \x3cmorphtarget_vertex\x3e\n\t#include \x3cskinning_vertex\x3e\n\t#include \x3cdisplacementmap_vertex\x3e\n\t#include \x3cproject_vertex\x3e\n\t#include \x3clogdepthbuf_vertex\x3e\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || ( defined( USE_NORMALMAP ) \x26\x26 ! defined( OBJECTSPACE_NORMALMAP ) )\n\tvViewPosition \x3d - mvPosition.xyz;\n#endif\n}\n",points_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \x3ccommon\x3e\n#include \x3ccolor_pars_fragment\x3e\n#include \x3cmap_particle_pars_fragment\x3e\n#include \x3cfog_pars_fragment\x3e\n#include \x3clogdepthbuf_pars_fragment\x3e\n#include \x3cclipping_planes_pars_fragment\x3e\nvoid main() {\n\t#include \x3cclipping_planes_fragment\x3e\n\tvec3 outgoingLight \x3d vec3( 0.0 );\n\tvec4 diffuseColor \x3d vec4( diffuse, opacity );\n\t#include \x3clogdepthbuf_fragment\x3e\n\t#include \x3cmap_particle_fragment\x3e\n\t#include \x3ccolor_fragment\x3e\n\t#include \x3calphatest_fragment\x3e\n\toutgoingLight \x3d diffuseColor.rgb;\n\tgl_FragColor \x3d vec4( outgoingLight, diffuseColor.a );\n\t#include \x3cpremultiplied_alpha_fragment\x3e\n\t#include \x3ctonemapping_fragment\x3e\n\t#include \x3cencodings_fragment\x3e\n\t#include \x3cfog_fragment\x3e\n}\n",points_vert:"uniform float size;\nuniform float scale;\n#include \x3ccommon\x3e\n#include \x3ccolor_pars_vertex\x3e\n#include \x3cfog_pars_vertex\x3e\n#include \x3cmorphtarget_pars_vertex\x3e\n#include \x3clogdepthbuf_pars_vertex\x3e\n#include \x3cclipping_planes_pars_vertex\x3e\nvoid main() {\n\t#include \x3ccolor_vertex\x3e\n\t#include \x3cbegin_vertex\x3e\n\t#include \x3cmorphtarget_vertex\x3e\n\t#include \x3cproject_vertex\x3e\n\tgl_PointSize \x3d size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective \x3d ( projectionMatrix[ 2 ][ 3 ] \x3d\x3d - 1.0 );\n\t\tif ( isPerspective ) gl_PointSize *\x3d ( scale / - mvPosition.z );\n\t#endif\n\t#include \x3clogdepthbuf_vertex\x3e\n\t#include \x3cclipping_planes_vertex\x3e\n\t#include \x3cworldpos_vertex\x3e\n\t#include \x3cfog_vertex\x3e\n}\n",shadow_frag:"uniform vec3 color;\nuniform float opacity;\n#include \x3ccommon\x3e\n#include \x3cpacking\x3e\n#include \x3cfog_pars_fragment\x3e\n#include \x3cbsdfs\x3e\n#include \x3clights_pars_begin\x3e\n#include \x3cshadowmap_pars_fragment\x3e\n#include \x3cshadowmask_pars_fragment\x3e\nvoid main() {\n\tgl_FragColor \x3d vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include \x3cfog_fragment\x3e\n}\n",shadow_vert:"#include \x3cfog_pars_vertex\x3e\n#include \x3cshadowmap_pars_vertex\x3e\nvoid main() {\n\t#include \x3cbegin_vertex\x3e\n\t#include \x3cproject_vertex\x3e\n\t#include \x3cworldpos_vertex\x3e\n\t#include \x3cshadowmap_vertex\x3e\n\t#include \x3cfog_vertex\x3e\n}\n",sprite_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \x3ccommon\x3e\n#include \x3cuv_pars_fragment\x3e\n#include \x3cmap_pars_fragment\x3e\n#include \x3cfog_pars_fragment\x3e\n#include \x3clogdepthbuf_pars_fragment\x3e\n#include \x3cclipping_planes_pars_fragment\x3e\nvoid main() {\n\t#include \x3cclipping_planes_fragment\x3e\n\tvec3 outgoingLight \x3d vec3( 0.0 );\n\tvec4 diffuseColor \x3d vec4( diffuse, opacity );\n\t#include \x3clogdepthbuf_fragment\x3e\n\t#include \x3cmap_fragment\x3e\n\t#include \x3calphatest_fragment\x3e\n\toutgoingLight \x3d diffuseColor.rgb;\n\tgl_FragColor \x3d vec4( outgoingLight, diffuseColor.a );\n\t#include \x3ctonemapping_fragment\x3e\n\t#include \x3cencodings_fragment\x3e\n\t#include \x3cfog_fragment\x3e\n}\n",sprite_vert:"uniform float rotation;\nuniform vec2 center;\n#include \x3ccommon\x3e\n#include \x3cuv_pars_vertex\x3e\n#include \x3cfog_pars_vertex\x3e\n#include \x3clogdepthbuf_pars_vertex\x3e\n#include \x3cclipping_planes_pars_vertex\x3e\nvoid main() {\n\t#include \x3cuv_vertex\x3e\n\tvec4 mvPosition \x3d modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x \x3d length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y \x3d length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective \x3d ( projectionMatrix[ 2 ][ 3 ] \x3d\x3d - 1.0 );\n\t\tif ( isPerspective ) scale *\x3d - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition \x3d ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x \x3d cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y \x3d sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy +\x3d rotatedPosition;\n\tgl_Position \x3d projectionMatrix * mvPosition;\n\t#include \x3clogdepthbuf_vertex\x3e\n\t#include \x3cclipping_planes_vertex\x3e\n\t#include \x3cfog_vertex\x3e\n}\n"},qb={merge:function(c){for(var g={},a=0;a<c.length;a++){var b=this.clone(c[a]),d;for(d in b)g[d]=b[d]}return g},clone:function(c){var g={},a;for(a in c){g[a]={};for(var b in c[a]){var d=c[a][b];d&&(d.isColor||d.isMatrix3||d.isMatrix4||d.isVector2||d.isVector3||d.isVector4||d.isTexture)?g[a][b]=d.clone():Array.isArray(d)?g[a][b]=d.slice():g[a][b]=d}}return g}},$f={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};Object.assign(u.prototype,{isColor:!0,r:1,g:1,b:1,set:function(c){c&&c.isColor?this.copy(c):"number"===typeof c?this.setHex(c):"string"===typeof c&&this.setStyle(c);return this},setScalar:function(c){this.b=this.g=this.r=c;return this},setHex:function(c){c=Math.floor(c);this.r=(c>>16&255)/255;this.g=(c>>8&255)/255;this.b=(c&255)/255;return this},setRGB:function(c,g,a){this.r=c;this.g=g;this.b=a;return this},setHSL:function(){function c(c,a,b){0>b&&(b+=1);1<b&&--b;return b<1/6?c+6*(a-c)*b:.5>b?a:b<2/3?c+6*(a-c)*(2/3-b):c}return function(g,a,b){g=Aa.euclideanModulo(g,1);a=Aa.clamp(a,0,1);b=Aa.clamp(b,0,1);0===a?this.r=this.g=this.b=b:(a=.5>=b?b*(1+a):b+a-b*a,b=2*b-a,this.r=c(b,a,g+1/3),this.g=c(b,a,g),this.b=c(b,a,g-1/3));return this}}(),setStyle:function(c){function g(g){void 0!==g&&1>parseFloat(g)&&console.warn("GLE.Color: Alpha component of "+c+" will be ignored.")}var a;if(a=/^((?:rgb|hsl)a?)\(\s*([^\)]*)\)/.exec(c)){var b=a[2];switch(a[1]){case "rgb":case "rgba":if(a=/^(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(b))return this.r=Math.min(255,parseInt(a[1],10))/255,this.g=Math.min(255,parseInt(a[2],10))/255,this.b=Math.min(255,parseInt(a[3],10))/255,g(a[5]),this;if(a=/^(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(b))return this.r=Math.min(100,parseInt(a[1],10))/100,this.g=Math.min(100,parseInt(a[2],10))/100,this.b=Math.min(100,parseInt(a[3],10))/100,g(a[5]),this;break;case "hsl":case "hsla":if(a=/^([0-9]*\.?[0-9]+)\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(b)){var b=parseFloat(a[1])/360,d=parseInt(a[2],10)/100,e=parseInt(a[3],10)/100;g(a[5]);return this.setHSL(b,d,e)}}}else if(a=/^\#([A-Fa-f0-9]+)$/.exec(c)){a=a[1];b=a.length;if(3===b)return this.r=parseInt(a.charAt(0)+a.charAt(0),16)/255,this.g=parseInt(a.charAt(1)+a.charAt(1),16)/255,this.b=parseInt(a.charAt(2)+a.charAt(2),16)/255,this;if(6===b)return this.r=parseInt(a.charAt(0)+a.charAt(1),16)/255,this.g=parseInt(a.charAt(2)+a.charAt(3),16)/255,this.b=parseInt(a.charAt(4)+a.charAt(5),16)/255,this}c&&0<c.length&&(a=$f[c],void 0!==a?this.setHex(a):console.warn("GLE.Color: Unknown color "+c));return this},clone:function(){return new this.constructor(this.r,this.g,this.b)},copy:function(c){this.r=c.r;this.g=c.g;this.b=c.b;return this},copyGammaToLinear:function(c,g){void 0===g&&(g=2);this.r=Math.pow(c.r,g);this.g=Math.pow(c.g,g);this.b=Math.pow(c.b,g);return this},copyLinearToGamma:function(c,g){void 0===g&&(g=2);var a=0<g?1/g:1;this.r=Math.pow(c.r,a);this.g=Math.pow(c.g,a);this.b=Math.pow(c.b,a);return this},convertGammaToLinear:function(c){this.copyGammaToLinear(this,c);return this},convertLinearToGamma:function(c){this.copyLinearToGamma(this,c);return this},copySRGBToLinear:function(){function c(c){return.04045>c?.0773993808*c:Math.pow(.9478672986*c+.0521327014,2.4)}return function(g){this.r=c(g.r);this.g=c(g.g);this.b=c(g.b);return this}}(),copyLinearToSRGB:function(){function c(c){return.0031308>c?12.92*c:1.055*Math.pow(c,.41666)-.055}return function(g){this.r=c(g.r);this.g=c(g.g);this.b=c(g.b);return this}}(),convertSRGBToLinear:function(){this.copySRGBToLinear(this);return this},convertLinearToSRGB:function(){this.copyLinearToSRGB(this);return this},getHex:function(){return 255*this.r<<16^255*this.g<<8^255*this.b<<0},getHexString:function(){return("000000"+this.getHex().toString(16)).slice(-6)},getHSL:function(c){void 0===c&&(console.warn("GLE.Color: .getHSL() target is now required"),c={h:0,s:0,l:0});var g=this.r,a=this.g,b=this.b,d=Math.max(g,a,b),e=Math.min(g,a,b),f,h=(e+d)/2;if(e===d)e=f=0;else{var k=d-e,e=.5>=h?k/(d+e):k/(2-d-e);switch(d){case g:f=(a-b)/k+(a<b?6:0);break;case a:f=(b-g)/k+2;break;case b:f=(g-a)/k+4}f/=6}c.h=f;c.s=e;c.l=h;return c},getStyle:function(){return"rgb("+(255*this.r|0)+","+(255*this.g|0)+","+(255*this.b|0)+")"},offsetHSL:function(){var c={};return function(g,a,b){this.getHSL(c);c.h+=g;c.s+=a;c.l+=b;this.setHSL(c.h,c.s,c.l);return this}}(),add:function(c){this.r+=c.r;this.g+=c.g;this.b+=c.b;return this},addColors:function(c,g){this.r=c.r+g.r;this.g=c.g+g.g;this.b=c.b+g.b;return this},addScalar:function(c){this.r+=c;this.g+=c;this.b+=c;return this},sub:function(c){this.r=Math.max(0,this.r-c.r);this.g=Math.max(0,this.g-c.g);this.b=Math.max(0,this.b-c.b);return this},multiply:function(c){this.r*=c.r;this.g*=c.g;this.b*=c.b;return this},multiplyScalar:function(c){this.r*=c;this.g*=c;this.b*=c;return this},lerp:function(c,g){this.r+=(c.r-this.r)*g;this.g+=(c.g-this.g)*g;this.b+=(c.b-this.b)*g;return this},lerpHSL:function(){var c={h:0,s:0,l:0},g={h:0,s:0,l:0};return function(a,b){this.getHSL(c);a.getHSL(g);var n=Aa.lerp(c.h,g.h,b),d=Aa.lerp(c.s,g.s,b),e=Aa.lerp(c.l,g.l,b);this.setHSL(n,d,e);return this}}(),equals:function(c){return c.r===this.r&&c.g===this.g&&c.b===this.b},fromArray:function(c,g){void 0===g&&(g=0);this.r=c[g];this.g=c[g+1];this.b=c[g+2];return this},toArray:function(c,g){void 0===c&&(c=[]);void 0===g&&(g=0);c[g]=this.r;c[g+1]=this.g;c[g+2]=this.b;return c},toJSON:function(){return this.getHex()}});var qa={common:{diffuse:{value:new u(15658734)},opacity:{value:1},map:{value:null},uvTransform:{value:new l},alphaMap:{value:null}},specularmap:{specularMap:{value:null}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},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 d(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:2.5E-4},fogNear:{value:1},fogFar:{value:2E3},fogColor:{value:new u(16777215)}},lights:{ambientLightColor:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{},shadow:{},shadowBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{},shadow:{},shadowBias:{},shadowRadius:{},shadowMapSize:{}}},spotShadowMap:{value:[]},spotShadowMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{},shadow:{},shadowBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}}},points:{diffuse:{value:new u(15658734)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},uvTransform:{value:new l}},sprite:{diffuse:{value:new u(15658734)},opacity:{value:1},center:{value:new d(.5,.5)},rotation:{value:0},map:{value:null},uvTransform:{value:new l}}},Dc={basic:{uniforms:qb.merge([qa.common,qa.specularmap,qa.envmap,qa.aomap,qa.lightmap,qa.fog]),vertexShader:Ca.meshbasic_vert,fragmentShader:Ca.meshbasic_frag},lambert:{uniforms:qb.merge([qa.common,qa.specularmap,qa.envmap,qa.aomap,qa.lightmap,qa.emissivemap,qa.fog,qa.lights,{emissive:{value:new u(0)}}]),vertexShader:Ca.meshlambert_vert,fragmentShader:Ca.meshlambert_frag},phong:{uniforms:qb.merge([qa.common,qa.specularmap,qa.envmap,qa.aomap,qa.lightmap,qa.emissivemap,qa.bumpmap,qa.normalmap,qa.displacementmap,qa.gradientmap,qa.fog,qa.lights,{emissive:{value:new u(0)},specular:{value:new u(1118481)},shininess:{value:30}}]),vertexShader:Ca.meshphong_vert,fragmentShader:Ca.meshphong_frag},standard:{uniforms:qb.merge([qa.common,qa.envmap,qa.aomap,qa.lightmap,qa.emissivemap,qa.bumpmap,qa.normalmap,qa.displacementmap,qa.roughnessmap,qa.metalnessmap,qa.fog,qa.lights,{emissive:{value:new u(0)},roughness:{value:.5},metalness:{value:.5},envMapIntensity:{value:1}}]),vertexShader:Ca.meshphysical_vert,fragmentShader:Ca.meshphysical_frag},matcap:{uniforms:qb.merge([qa.common,qa.bumpmap,qa.normalmap,qa.displacementmap,qa.fog,{matcap:{value:null}}]),vertexShader:Ca.meshmatcap_vert,fragmentShader:Ca.meshmatcap_frag},points:{uniforms:qb.merge([qa.points,qa.fog]),vertexShader:Ca.points_vert,fragmentShader:Ca.points_frag},dashed:{uniforms:qb.merge([qa.common,qa.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Ca.linedashed_vert,fragmentShader:Ca.linedashed_frag},depth:{uniforms:qb.merge([qa.common,qa.displacementmap]),vertexShader:Ca.depth_vert,fragmentShader:Ca.depth_frag},normal:{uniforms:qb.merge([qa.common,qa.bumpmap,qa.normalmap,qa.displacementmap,{opacity:{value:1}}]),vertexShader:Ca.normal_vert,fragmentShader:Ca.normal_frag},sprite:{uniforms:qb.merge([qa.sprite,qa.fog]),vertexShader:Ca.sprite_vert,fragmentShader:Ca.sprite_frag},background:{uniforms:{t2D:{value:null}},vertexShader:Ca.background_vert,fragmentShader:Ca.background_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Ca.cube_vert,fragmentShader:Ca.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Ca.equirect_vert,fragmentShader:Ca.equirect_frag},distanceRGBA:{uniforms:qb.merge([qa.common,qa.displacementmap,{referencePosition:{value:new h},nearDistance:{value:1},farDistance:{value:1E3}}]),vertexShader:Ca.distanceRGBA_vert,fragmentShader:Ca.distanceRGBA_frag},shadow:{uniforms:qb.merge([qa.lights,qa.fog,{color:{value:new u(0)},opacity:{value:1}}]),vertexShader:Ca.shadow_vert,fragmentShader:Ca.shadow_frag}};Dc.physical={uniforms:qb.merge([Dc.standard.uniforms,{clearCoat:{value:0},clearCoatRoughness:{value:0}}]),vertexShader:Ca.meshphysical_vert,fragmentShader:Ca.meshphysical_frag};Object.assign(C.prototype,{clone:function(){return(new this.constructor).copy(this)},copy:function(c){this.a=c.a;this.b=c.b;this.c=c.c;this.normal.copy(c.normal);this.color.copy(c.color);this.materialIndex=c.materialIndex;for(var g=0,a=c.vertexNormals.length;g<a;g++)this.vertexNormals[g]=c.vertexNormals[g].clone();g=0;for(a=c.vertexColors.length;g<a;g++)this.vertexColors[g]=c.vertexColors[g].clone();return this}});W.RotationOrders="XYZ YZX ZXY XZY YXZ ZYX".split(" ");W.DefaultOrder="XYZ";Object.defineProperties(W.prototype,{x:{get:function(){return this._x},set:function(c){this._x=c;this.onChangeCallback()}},y:{get:function(){return this._y},set:function(c){this._y=c;this.onChangeCallback()}},z:{get:function(){return this._z},set:function(c){this._z=c;this.onChangeCallback()}},order:{get:function(){return this._order},set:function(c){this._order=c;this.onChangeCallback()}}});Object.assign(W.prototype,{isEuler:!0,set:function(c,g,a,b){this._x=c;this._y=g;this._z=a;this._order=b||this._order;this.onChangeCallback();return this},clone:function(){return new this.constructor(this._x,this._y,this._z,this._order)},copy:function(c){this._x=c._x;this._y=c._y;this._z=c._z;this._order=c._order;this.onChangeCallback();return this},setFromRotationMatrix:function(c,g,a){var b=Aa.clamp,n=c.elements;c=n[0];var d=n[4],e=n[8],f=n[1],h=n[5],k=n[9],l=n[2],p=n[6],n=n[10];g=g||this._order;"XYZ"===g?(this._y=Math.asin(b(e,-1,1)),.99999>Math.abs(e)?(this._x=Math.atan2(-k,n),this._z=Math.atan2(-d,c)):(this._x=Math.atan2(p,h),this._z=0)):"YXZ"===g?(this._x=Math.asin(-b(k,-1,1)),.99999>Math.abs(k)?(this._y=Math.atan2(e,n),this._z=Math.atan2(f,h)):(this._y=Math.atan2(-l,c),this._z=0)):"ZXY"===g?(this._x=Math.asin(b(p,-1,1)),.99999>Math.abs(p)?(this._y=Math.atan2(-l,n),this._z=Math.atan2(-d,h)):(this._y=0,this._z=Math.atan2(f,c))):"ZYX"===g?(this._y=Math.asin(-b(l,-1,1)),.99999>Math.abs(l)?(this._x=Math.atan2(p,n),this._z=Math.atan2(f,c)):(this._x=0,this._z=Math.atan2(-d,h))):"YZX"===g?(this._z=Math.asin(b(f,-1,1)),.99999>Math.abs(f)?(this._x=Math.atan2(-k,h),this._y=Math.atan2(-l,c)):(this._x=0,this._y=Math.atan2(e,n))):"XZY"===g?(this._z=Math.asin(-b(d,-1,1)),.99999>Math.abs(d)?(this._x=Math.atan2(p,h),this._y=Math.atan2(e,c)):(this._x=Math.atan2(-k,n),this._y=0)):console.warn("GLE.Euler: .setFromRotationMatrix() given unsupported order: "+g);this._order=g;if(!1!==a)this.onChangeCallback();return this},setFromQuaternion:function(){var c=new e;return function(g,a,b){c.makeRotationFromQuaternion(g);return this.setFromRotationMatrix(c,a,b)}}(),setFromVector3:function(c,g){return this.set(c.x,c.y,c.z,g||this._order)},reorder:function(){var c=new f;return function(g){c.setFromEuler(this);return this.setFromQuaternion(c,g)}}(),equals:function(c){return c._x===this._x&&c._y===this._y&&c._z===this._z&&c._order===this._order},fromArray:function(c){this._x=c[0];this._y=c[1];this._z=c[2];void 0!==c[3]&&(this._order=c[3]);this.onChangeCallback();return this},toArray:function(c,g){void 0===c&&(c=[]);void 0===g&&(g=0);c[g]=this._x;c[g+1]=this._y;c[g+2]=this._z;c[g+3]=this._order;return c},toVector3:function(c){return c?c.set(this._x,this._y,this._z):new h(this._x,this._y,this._z)},onChange:function(c){this.onChangeCallback=c;return this},onChangeCallback:function(){}});Object.assign(aa.prototype,{set:function(c){this.mask=1<<c|0},enable:function(c){this.mask=this.mask|1<<c|0},toggle:function(c){this.mask^=1<<c|0},disable:function(c){this.mask&=~(1<<c|0)},test:function(c){return 0!==(this.mask&c.mask)}});var sf=0;F.DefaultUp=new h(0,1,0);F.DefaultMatrixAutoUpdate=!0;F.prototype=Object.assign(Object.create(b.prototype),{constructor:F,isObject3D:!0,onBeforeRender:function(){},onAfterRender:function(){},applyMatrix:function(c){this.matrix.multiplyMatrices(c,this.matrix);this.matrix.decompose(this.position,this.quaternion,this.scale)},applyQuaternion:function(c){this.quaternion.premultiply(c);return this},setRotationFromAxisAngle:function(c,g){this.quaternion.setFromAxisAngle(c,g)},setRotationFromEuler:function(c){this.quaternion.setFromEuler(c,!0)},setRotationFromMatrix:function(c){this.quaternion.setFromRotationMatrix(c)},setRotationFromQuaternion:function(c){this.quaternion.copy(c)},rotateOnAxis:function(){var c=new f;return function(g,a){c.setFromAxisAngle(g,a);this.quaternion.multiply(c);return this}}(),rotateOnWorldAxis:function(){var c=new f;return function(g,a){c.setFromAxisAngle(g,a);this.quaternion.premultiply(c);return this}}(),rotateX:function(){var c=new h(1,0,0);return function(g){return this.rotateOnAxis(c,g)}}(),rotateY:function(){var c=new h(0,1,0);return function(g){return this.rotateOnAxis(c,g)}}(),rotateZ:function(){var c=new h(0,0,1);return function(g){return this.rotateOnAxis(c,g)}}(),translateOnAxis:function(){var c=new h;return function(g,a){c.copy(g).applyQuaternion(this.quaternion);this.position.add(c.multiplyScalar(a));return this}}(),translateX:function(){var c=new h(1,0,0);return function(g){return this.translateOnAxis(c,g)}}(),translateY:function(){var c=new h(0,1,0);return function(g){return this.translateOnAxis(c,g)}}(),translateZ:function(){var c=new h(0,0,1);return function(g){return this.translateOnAxis(c,g)}}(),localToWorld:function(c){return c.applyMatrix4(this.matrixWorld)},worldToLocal:function(){var c=new e;return function(g){return g.applyMatrix4(c.getInverse(this.matrixWorld))}}(),lookAt:function(){var c=new f,g=new e,a=new h,b=new h;return function(n,d,e){n.isVector3?a.copy(n):a.set(n,d,e);n=this.parent;this.updateWorldMatrix(!0,!1);b.setFromMatrixPosition(this.matrixWorld);this.isCamera?g.lookAt(b,a,this.up):g.lookAt(a,b,this.up);this.quaternion.setFromRotationMatrix(g);n&&(g.extractRotation(n.matrixWorld),c.setFromRotationMatrix(g),this.quaternion.premultiply(c.inverse()))}}(),add:function(c){if(1<arguments.length){for(var g=0;g<arguments.length;g++)this.add(arguments[g]);return this}if(c===this)return console.error("GLE.Object3D.add: object can't be added as a child of itself.",c),this;c&&c.isObject3D?(null!==c.parent&&c.parent.remove(c),c.parent=this,c.dispatchEvent({type:"added"}),this.children.push(c)):console.error("GLE.Object3D.add: object not an instance of GLE.Object3D.",c);return this},remove:function(c){if(1<arguments.length){for(var g=0;g<arguments.length;g++)this.remove(arguments[g]);return this}g=this.children.indexOf(c);-1!==g&&(c.parent=null,c.dispatchEvent({type:"removed"}),this.children.splice(g,1));return this},getObjectById:function(c){return this.getObjectByProperty("id",c)},ge:function(c){return this.getObjectByProperty("name",c)},getObjectByProperty:function(c,g){if(this[c]===g)return this;for(var a=0,b=this.children.length;a<b;a++){var d=this.children[a].getObjectByProperty(c,g);if(void 0!==d)return d}},getWorldPosition:function(c){void 0===c&&(console.warn("GLE.Object3D: .getWorldPosition() target is now required"),c=new h);this.uld(!0);return c.setFromMatrixPosition(this.matrixWorld)},getWorldQuaternion:function(){var c=new h,g=new h;return function(a){void 0===a&&(console.warn("GLE.Object3D: .getWorldQuaternion() target is now required"),a=new f);this.uld(!0);this.matrixWorld.decompose(c,a,g);return a}}(),getWorldScale:function(){var c=new h,g=new f;return function(a){void 0===a&&(console.warn("GLE.Object3D: .getWorldScale() target is now required"),a=new h);this.uld(!0);this.matrixWorld.decompose(c,g,a);return a}}(),getWorldDirection:function(c){void 0===c&&(console.warn("GLE.Object3D: .getWorldDirection() target is now required"),c=new h);this.uld(!0);var g=this.matrixWorld.elements;return c.set(g[8],g[9],g[10]).normalize()},raycast:function(){},traverse:function(c){c(this);for(var g=this.children,a=0,b=g.length;a<b;a++)g[a].traverse(c)},traverseVisible:function(c){if(!1!==this.visible){c(this);for(var g=this.children,a=0,b=g.length;a<b;a++)g[a].traverseVisible(c)}},traverseAncestors:function(c){var a=this.parent;null!==a&&(c(a),a.traverseAncestors(c))},updateMatrix:function(){this.matrix.compose(this.position,this.quaternion,this.scale);this.mte=!0},uld:function(c){this.matrixAutoUpdate&&this.updateMatrix();if(this.mte||c)null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),this.mte=!1,c=!0;for(var a=this.children,b=0,d=a.length;b<d;b++)a[b].uld(c)},updateWorldMatrix:function(c,a){var g=this.parent;!0===c&&null!==g&&g.updateWorldMatrix(!0,!1);this.matrixAutoUpdate&&this.updateMatrix();null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix);if(!0===a)for(var g=this.children,b=0,d=g.length;b<d;b++)g[b].updateWorldMatrix(!1,!0)},toJSON:function(c){function a(a,g){void 0===a[g.uuid]&&(a[g.uuid]=g.toJSON(c));return g.uuid}function b(c){var a=[],g;for(g in c){var b=c[g];delete b.metadata;a.push(b)}return a}var d=void 0===c||"string"===typeof c,e={};d&&(c={geometries:{},materials:{},textures:{},images:{},shapes:{}},e.metadata={version:4.5,type:"Object",generator:"Object3D.toJSON"});var f={};f.uuid=this.uuid;f.type=this.type;""!==this.name&&(f.name=this.name);!0===this.castShadow&&(f.castShadow=!0);!0===this.receiveShadow&&(f.receiveShadow=!0);!1===this.visible&&(f.visible=!1);!1===this.frustumCulled&&(f.frustumCulled=!1);0!==this.renderOrder&&(f.renderOrder=this.renderOrder);"{}"!==JSON.stringify(this.userData)&&(f.userData=this.userData);f.layers=this.layers.mask;f.matrix=this.matrix.toArray();!1===this.matrixAutoUpdate&&(f.matrixAutoUpdate=!1);if(this.isMesh||this.isLine||this.isPoints){f.geometry=a(c.geometries,this.geometry);var h=this.geometry.parameters;if(void 0!==h&&void 0!==h.shapes)if(h=h.shapes,Array.isArray(h))for(var k=0,l=h.length;k<l;k++)a(c.shapes,h[k]);else a(c.shapes,h)}if(void 0!==this.material)if(Array.isArray(this.material)){h=[];k=0;for(l=this.material.length;k<l;k++)h.push(a(c.materials,this.material[k]));f.material=h}else f.material=a(c.materials,this.material);if(0<this.children.length)for(f.children=[],k=0;k<this.children.length;k++)f.children.push(this.children[k].toJSON(c).object);if(d){var d=b(c.geometries),k=b(c.materials),l=b(c.textures),p=b(c.images),h=b(c.shapes);0<d.length&&(e.geometries=d);0<k.length&&(e.materials=k);0<l.length&&(e.textures=l);0<p.length&&(e.images=p);0<h.length&&(e.shapes=h)}e.object=f;return e},clone:function(c){return(new this.constructor).copy(this,c)},copy:function(c,a){void 0===a&&(a=!0);this.name=c.name;this.up.copy(c.up);this.position.copy(c.position);this.quaternion.copy(c.quaternion);this.scale.copy(c.scale);this.matrix.copy(c.matrix);this.matrixWorld.copy(c.matrixWorld);this.matrixAutoUpdate=c.matrixAutoUpdate;this.mte=c.mte;this.layers.mask=c.layers.mask;this.visible=c.visible;this.castShadow=c.castShadow;this.receiveShadow=c.receiveShadow;this.frustumCulled=c.frustumCulled;this.renderOrder=c.renderOrder;this.userData=JSON.parse(JSON.stringify(c.userData));if(!0===a)for(var g=0;g<c.children.length;g++)this.add(c.children[g].clone());return this}});var pi=0;L.prototype=Object.assign(Object.create(b.prototype),{constructor:L,isGeometry:!0,applyMatrix:function(c){for(var a=(new l).getNormalMatrix(c),b=0,d=this.vertices.length;b<d;b++)this.vertices[b].applyMatrix4(c);b=0;for(d=this.faces.length;b<d;b++){c=this.faces[b];c.normal.applyMatrix3(a).normalize();for(var e=0,f=c.vertexNormals.length;e<f;e++)c.vertexNormals[e].applyMatrix3(a).normalize()}null!==this.boundingBox&&this.computeBoundingBox();null!==this.boundingSphere&&this.computeBoundingSphere();this.normalsNeedUpdate=this.verticesNeedUpdate=!0;return this},rotateX:function(){var c=new e;return function(a){c.makeRotationX(a);this.applyMatrix(c);return this}}(),rotateY:function(){var c=new e;return function(a){c.makeRotationY(a);this.applyMatrix(c);return this}}(),rotateZ:function(){var c=new e;return function(a){c.makeRotationZ(a);this.applyMatrix(c);return this}}(),translate:function(){var c=new e;return function(a,b,d){c.makeTranslation(a,b,d);this.applyMatrix(c);return this}}(),scale:function(){var c=new e;return function(a,b,d){c.makeScale(a,b,d);this.applyMatrix(c);return this}}(),lookAt:function(){var c=new F;return function(a){c.lookAt(a);c.updateMatrix();this.applyMatrix(c.matrix)}}(),fromBufferGeometry:function(c){function a(c,a,g,n){var d=void 0!==l?[q[c].clone(),q[a].clone(),q[g].clone()]:[],e=void 0!==p?[b.colors[c].clone(),b.colors[a].clone(),b.colors[g].clone()]:[];n=new C(c,a,g,d,e,n);b.faces.push(n);void 0!==m&&b.faceVertexUvs[0].push([v[c].clone(),v[a].clone(),v[g].clone()]);void 0!==z&&b.faceVertexUvs[1].push([r[c].clone(),r[a].clone(),r[g].clone()])}var b=this,e=null!==c.index?c.index.array:void 0,f=c.attributes,k=f.position.array,l=void 0!==f.normal?f.normal.array:void 0,p=void 0!==f.color?f.color.array:void 0,m=void 0!==f.uv?f.uv.array:void 0,z=void 0!==f.uv2?f.uv2.array:void 0;void 0!==z&&(this.faceVertexUvs[1]=[]);for(var q=[],v=[],r=[],E=f=0;f<k.length;f+=3,E+=2)b.vertices.push(new h(k[f],k[f+1],k[f+2])),void 0!==l&&q.push(new h(l[f],l[f+1],l[f+2])),void 0!==p&&b.colors.push(new u(p[f],p[f+1],p[f+2])),void 0!==m&&v.push(new d(m[E],m[E+1])),void 0!==z&&r.push(new d(z[E],z[E+1]));var w=c.groups;if(0<w.length)for(f=0;f<w.length;f++)for(var k=w[f],B=k.start,J=k.count,E=B,B=B+J;E<B;E+=3)void 0!==e?a(e[E],e[E+1],e[E+2],k.materialIndex):a(E,E+1,E+2,k.materialIndex);else if(void 0!==e)for(f=0;f<e.length;f+=3)a(e[f],e[f+1],e[f+2]);else for(f=0;f<k.length/3;f+=3)a(f,f+1,f+2);this.computeFaceNormals();null!==c.boundingBox&&(this.boundingBox=c.boundingBox.clone());null!==c.boundingSphere&&(this.boundingSphere=c.boundingSphere.clone());return this},center:function(){var c=new h;return function(){this.computeBoundingBox();this.boundingBox.getCenter(c).negate();this.translate(c.x,c.y,c.z);return this}}(),normalize:function(){this.computeBoundingSphere();var c=this.boundingSphere.center,a=this.boundingSphere.radius,a=0===a?1:1/a,b=new e;b.set(a,0,0,-a*c.x,0,a,0,-a*c.y,0,0,a,-a*c.z,0,0,0,1);this.applyMatrix(b);return this},computeFaceNormals:function(){for(var c=new h,a=new h,b=0,d=this.faces.length;b<d;b++){var e=this.faces[b],f=this.vertices[e.a],k=this.vertices[e.b];c.subVectors(this.vertices[e.c],k);a.subVectors(f,k);c.cross(a);c.normalize();e.normal.copy(c)}},computeVertexNormals:function(c){void 0===c&&(c=!0);var a,b,d;d=Array(this.vertices.length);a=0;for(b=this.vertices.length;a<b;a++)d[a]=new h;if(c){var e,f,k,l=new h,p=new h;c=0;for(a=this.faces.length;c<a;c++)b=this.faces[c],e=this.vertices[b.a],f=this.vertices[b.b],k=this.vertices[b.c],l.subVectors(k,f),p.subVectors(e,f),l.cross(p),d[b.a].add(l),d[b.b].add(l),d[b.c].add(l)}else for(this.computeFaceNormals(),c=0,a=this.faces.length;c<a;c++)b=this.faces[c],d[b.a].add(b.normal),d[b.b].add(b.normal),d[b.c].add(b.normal);a=0;for(b=this.vertices.length;a<b;a++)d[a].normalize();c=0;for(a=this.faces.length;c<a;c++)b=this.faces[c],e=b.vertexNormals,3===e.length?(e[0].copy(d[b.a]),e[1].copy(d[b.b]),e[2].copy(d[b.c])):(e[0]=d[b.a].clone(),e[1]=d[b.b].clone(),e[2]=d[b.c].clone());0<this.faces.length&&(this.normalsNeedUpdate=!0)},computeFlatVertexNormals:function(){var c,a,b;this.computeFaceNormals();c=0;for(a=this.faces.length;c<a;c++){b=this.faces[c];var d=b.vertexNormals;3===d.length?(d[0].copy(b.normal),d[1].copy(b.normal),d[2].copy(b.normal)):(d[0]=b.normal.clone(),d[1]=b.normal.clone(),d[2]=b.normal.clone())}0<this.faces.length&&(this.normalsNeedUpdate=!0)},computeMorphNormals:function(){var c,a,b,d,e;b=0;for(d=this.faces.length;b<d;b++)for(e=this.faces[b],e.__originalFaceNormal?e.__originalFaceNormal.copy(e.normal):e.__originalFaceNormal=e.normal.clone(),e.__originalVertexNormals||(e.__originalVertexNormals=[]),c=0,a=e.vertexNormals.length;c<a;c++)e.__originalVertexNormals[c]?e.__originalVertexNormals[c].copy(e.vertexNormals[c]):e.__originalVertexNormals[c]=e.vertexNormals[c].clone();var f=new L;f.faces=this.faces;c=0;for(a=this.morphTargets.length;c<a;c++){if(!this.morphNormals[c]){this.morphNormals[c]={};this.morphNormals[c].faceNormals=[];this.morphNormals[c].vertexNormals=[];e=this.morphNormals[c].faceNormals;var k=this.morphNormals[c].vertexNormals,l,p;b=0;for(d=this.faces.length;b<d;b++)l=new h,p={a:new h,b:new h,c:new h},e.push(l),k.push(p)}k=this.morphNormals[c];f.vertices=this.morphTargets[c].vertices;f.computeFaceNormals();f.computeVertexNormals();b=0;for(d=this.faces.length;b<d;b++)e=this.faces[b],l=k.faceNormals[b],p=k.vertexNormals[b],l.copy(e.normal),p.a.copy(e.vertexNormals[0]),p.b.copy(e.vertexNormals[1]),p.c.copy(e.vertexNormals[2])}b=0;for(d=this.faces.length;b<d;b++)e=this.faces[b],e.normal=e.__originalFaceNormal,e.vertexNormals=e.__originalVertexNormals},computeBoundingBox:function(){null===this.boundingBox&&(this.boundingBox=new B);this.boundingBox.setFromPoints(this.vertices)},computeBoundingSphere:function(){null===this.boundingSphere&&(this.boundingSphere=new w);this.boundingSphere.setFromPoints(this.vertices)},merge:function(c,a,b){if(c&&c.isGeometry){var g,n=this.vertices.length,d=this.vertices,e=c.vertices,f=this.faces,h=c.faces,k=this.faceVertexUvs[0],p=c.faceVertexUvs[0],m=this.colors,z=c.colors;void 0===b&&(b=0);void 0!==a&&(g=(new l).getNormalMatrix(a));c=0;for(var u=e.length;c<u;c++){var q=e[c].clone();void 0!==a&&q.applyMatrix4(a);d.push(q)}c=0;for(u=z.length;c<u;c++)m.push(z[c].clone());c=0;for(u=h.length;c<u;c++){var e=h[c],v=e.vertexNormals,z=e.vertexColors,m=new C(e.a+n,e.b+n,e.c+n);m.normal.copy(e.normal);void 0!==g&&m.normal.applyMatrix3(g).normalize();a=0;for(d=v.length;a<d;a++)q=v[a].clone(),void 0!==g&&q.applyMatrix3(g).normalize(),m.vertexNormals.push(q);m.color.copy(e.color);a=0;for(d=z.length;a<d;a++)q=z[a],m.vertexColors.push(q.clone());m.materialIndex=e.materialIndex+b;f.push(m)}c=0;for(u=p.length;c<u;c++)if(b=p[c],g=[],void 0!==b){a=0;for(d=b.length;a<d;a++)g.push(b[a].clone());k.push(g)}}else console.error("GLE.Geometry.merge(): geometry not an instance of GLE.Geometry.",c)},mergeMesh:function(c){c&&c.isMesh?(c.matrixAutoUpdate&&c.updateMatrix(),this.merge(c.geometry,c.matrix)):console.error("GLE.Geometry.mergeMesh(): mesh not an instance of GLE.Mesh.",c)},mergeVertices:function(){var c={},a=[],b=[],d,e=Math.pow(10,4),f,h;f=0;for(h=this.vertices.length;f<h;f++)d=this.vertices[f],d=Math.round(d.x*e)+"_"+Math.round(d.y*e)+"_"+Math.round(d.z*e),void 0===c[d]?(c[d]=f,a.push(this.vertices[f]),b[f]=a.length-1):b[f]=b[c[d]];c=[];f=0;for(h=this.faces.length;f<h;f++)for(e=this.faces[f],e.a=b[e.a],e.b=b[e.b],e.c=b[e.c],e=[e.a,e.b,e.c],d=0;3>d;d++)if(e[d]===e[(d+1)%3]){c.push(f);break}for(f=c.length-1;0<=f;f--)for(e=c[f],this.faces.splice(e,1),b=0,h=this.faceVertexUvs.length;b<h;b++)this.faceVertexUvs[b].splice(e,1);f=this.vertices.length-a.length;this.vertices=a;return f},setFromPoints:function(c){this.vertices=[];for(var a=0,b=c.length;a<b;a++){var d=c[a];this.vertices.push(new h(d.x,d.y,d.z||0))}return this},sortFacesByMaterialIndex:function(){for(var c=this.faces,a=c.length,b=0;b<a;b++)c[b]._id=b;c.sort(function(c,a){return c.materialIndex-a.materialIndex});var d=this.faceVertexUvs[0],e=this.faceVertexUvs[1],f,h;d&&d.length===a&&(f=[]);e&&e.length===a&&(h=[]);for(b=0;b<a;b++){var k=c[b]._id;f&&f.push(d[k]);h&&h.push(e[k])}f&&(this.faceVertexUvs[0]=f);h&&(this.faceVertexUvs[1]=h)},toJSON:function(){function c(c,a,g){return g?c|1<<a:c&~(1<<a)}function a(c){var a=c.x.toString()+c.y.toString()+c.z.toString();if(void 0!==p[a])return p[a];p[a]=l.length/3;l.push(c.x,c.y,c.z);return p[a]}function b(c){var a=c.r.toString()+c.g.toString()+c.b.toString();if(void 0!==z[a])return z[a];z[a]=m.length;m.push(c.getHex());return z[a]}function d(c){var a=c.x.toString()+c.y.toString();if(void 0!==q[a])return q[a];q[a]=u.length/2;u.push(c.x,c.y);return q[a]}var e={metadata:{version:4.5,type:"Geometry",generator:"Geometry.toJSON"}};e.uuid=this.uuid;e.type=this.type;""!==this.name&&(e.name=this.name);if(void 0!==this.parameters){var f=this.parameters,h;for(h in f)void 0!==f[h]&&(e[h]=f[h]);return e}f=[];for(h=0;h<this.vertices.length;h++){var k=this.vertices[h];f.push(k.x,k.y,k.z)}var k=[],l=[],p={},m=[],z={},u=[],q={};for(h=0;h<this.faces.length;h++){var v=this.faces[h],r=void 0!==this.faceVertexUvs[0][h],E=0<v.normal.length(),C=0<v.vertexNormals.length,w=1!==v.color.r||1!==v.color.g||1!==v.color.b,B=0<v.vertexColors.length,J=0,J=c(J,0,0),J=c(J,1,!0),J=c(J,2,!1),J=c(J,3,r),J=c(J,4,E),J=c(J,5,C),J=c(J,6,w),J=c(J,7,B);k.push(J);k.push(v.a,v.b,v.c);k.push(v.materialIndex);r&&(r=this.faceVertexUvs[0][h],k.push(d(r[0]),d(r[1]),d(r[2])));E&&k.push(a(v.normal));C&&(E=v.vertexNormals,k.push(a(E[0]),a(E[1]),a(E[2])));w&&k.push(b(v.color));B&&(v=v.vertexColors,k.push(b(v[0]),b(v[1]),b(v[2])))}e.data={};e.data.vertices=f;e.data.normals=l;0<m.length&&(e.data.colors=m);0<u.length&&(e.data.uvs=[u]);e.data.faces=k;return e},clone:function(){return(new L).copy(this)},copy:function(c){var a,b,d,e,f,h;this.vertices=[];this.colors=[];this.faces=[];this.faceVertexUvs=[[]];this.morphTargets=[];this.morphNormals=[];this.skinWeights=[];this.skinIndices=[];this.lineDistances=[];this.boundingSphere=this.boundingBox=null;this.name=c.name;d=c.vertices;a=0;for(b=d.length;a<b;a++)this.vertices.push(d[a].clone());d=c.colors;a=0;for(b=d.length;a<b;a++)this.colors.push(d[a].clone());d=c.faces;a=0;for(b=d.length;a<b;a++)this.faces.push(d[a].clone());a=0;for(b=c.faceVertexUvs.length;a<b;a++){var k=c.faceVertexUvs[a];void 0===this.faceVertexUvs[a]&&(this.faceVertexUvs[a]=[]);d=0;for(e=k.length;d<e;d++){var l=k[d],p=[];f=0;for(h=l.length;f<h;f++)p.push(l[f].clone());this.faceVertexUvs[a].push(p)}}f=c.morphTargets;a=0;for(b=f.length;a<b;a++){h={};h.name=f[a].name;if(void 0!==f[a].vertices)for(h.vertices=[],d=0,e=f[a].vertices.length;d<e;d++)h.vertices.push(f[a].vertices[d].clone());if(void 0!==f[a].normals)for(h.normals=[],d=0,e=f[a].normals.length;d<e;d++)h.normals.push(f[a].normals[d].clone());this.morphTargets.push(h)}f=c.morphNormals;a=0;for(b=f.length;a<b;a++){h={};if(void 0!==f[a].vertexNormals)for(h.vertexNormals=[],d=0,e=f[a].vertexNormals.length;d<e;d++)k=f[a].vertexNormals[d],l={},l.a=k.a.clone(),l.b=k.b.clone(),l.c=k.c.clone(),h.vertexNormals.push(l);if(void 0!==f[a].faceNormals)for(h.faceNormals=[],d=0,e=f[a].faceNormals.length;d<e;d++)h.faceNormals.push(f[a].faceNormals[d].clone());this.morphNormals.push(h)}d=c.skinWeights;a=0;for(b=d.length;a<b;a++)this.skinWeights.push(d[a].clone());d=c.skinIndices;a=0;for(b=d.length;a<b;a++)this.skinIndices.push(d[a].clone());d=c.lineDistances;a=0;for(b=d.length;a<b;a++)this.lineDistances.push(d[a]);a=c.boundingBox;null!==a&&(this.boundingBox=a.clone());a=c.boundingSphere;null!==a&&(this.boundingSphere=a.clone());this.elementsNeedUpdate=c.elementsNeedUpdate;this.verticesNeedUpdate=c.verticesNeedUpdate;this.uvsNeedUpdate=c.uvsNeedUpdate;this.normalsNeedUpdate=c.normalsNeedUpdate;this.colorsNeedUpdate=c.colorsNeedUpdate;this.lineDistancesNeedUpdate=c.lineDistancesNeedUpdate;this.groupsNeedUpdate=c.groupsNeedUpdate;return this},dispose:function(){this.dispatchEvent({type:"dispose"})}});Object.defineProperty(A.prototype,"needsUpdate",{set:function(c){!0===c&&this.version++}});Object.assign(A.prototype,{isBufferAttribute:!0,onUploadCallback:function(){},setArray:function(c){if(Array.isArray(c))throw new TypeError("GLE.BufferAttribute: array should be a Typed Array.");this.count=void 0!==c?c.length/this.itemSize:0;this.array=c;return this},setDynamic:function(c){this.dynamic=c;return this},copy:function(c){this.name=c.name;this.array=new c.array.constructor(c.array);this.itemSize=c.itemSize;this.count=c.count;this.normalized=c.normalized;this.dynamic=c.dynamic;return this},copyAt:function(c,a,b){c*=this.itemSize;b*=a.itemSize;for(var g=0,n=this.itemSize;g<n;g++)this.array[c+g]=a.array[b+g];return this},copyArray:function(c){this.array.set(c);return this},copyColorsArray:function(c){for(var a=this.array,b=0,d=0,e=c.length;d<e;d++){var f=c[d];void 0===f&&(console.warn("GLE.BufferAttribute.copyColorsArray(): color is undefined",d),f=new u);a[b++]=f.r;a[b++]=f.g;a[b++]=f.b}return this},copyVector2sArray:function(c){for(var a=this.array,b=0,e=0,f=c.length;e<f;e++){var h=c[e];void 0===h&&(console.warn("GLE.BufferAttribute.copyVector2sArray(): vector is undefined",e),h=new d);a[b++]=h.x;a[b++]=h.y}return this},copyVector3sArray:function(c){for(var a=this.array,b=0,d=0,e=c.length;d<e;d++){var f=c[d];void 0===f&&(console.warn("GLE.BufferAttribute.copyVector3sArray(): vector is undefined",d),f=new h);a[b++]=f.x;a[b++]=f.y;a[b++]=f.z}return this},copyVector4sArray:function(c){for(var a=this.array,b=0,d=0,e=c.length;d<e;d++){var f=c[d];void 0===f&&(console.warn("GLE.BufferAttribute.copyVector4sArray(): vector is undefined",d),f=new r);a[b++]=f.x;a[b++]=f.y;a[b++]=f.z;a[b++]=f.w}return this},set:function(c,a){void 0===a&&(a=0);this.array.set(c,a);return this},getX:function(c){return this.array[c*this.itemSize]},setX:function(c,a){this.array[c*this.itemSize]=a;return this},getY:function(c){return this.array[c*this.itemSize+1]},setY:function(c,a){this.array[c*this.itemSize+1]=a;return this},getZ:function(c){return this.array[c*this.itemSize+2]},setZ:function(c,a){this.array[c*this.itemSize+2]=a;return this},getW:function(c){return this.array[c*this.itemSize+3]},setW:function(c,a){this.array[c*this.itemSize+3]=a;return this},setXY:function(c,a,b){c*=this.itemSize;this.array[c+0]=a;this.array[c+1]=b;return this},setXYZ:function(c,a,b,d){c*=this.itemSize;this.array[c+0]=a;this.array[c+1]=b;this.array[c+2]=d;return this},setXYZW:function(c,a,b,d,e){c*=this.itemSize;this.array[c+0]=a;this.array[c+1]=b;this.array[c+2]=d;this.array[c+3]=e;return this},onUpload:function(c){this.onUploadCallback=c;return this},clone:function(){return(new this.constructor(this.array,this.itemSize)).copy(this)}});H.prototype=Object.create(A.prototype);H.prototype.constructor=H;D.prototype=Object.create(A.prototype);D.prototype.constructor=D;M.prototype=Object.create(A.prototype);M.prototype.constructor=M;N.prototype=Object.create(A.prototype);N.prototype.constructor=N;V.prototype=Object.create(A.prototype);V.prototype.constructor=V;Q.prototype=Object.create(A.prototype);Q.prototype.constructor=Q;J.prototype=Object.create(A.prototype);J.prototype.constructor=J;K.prototype=Object.create(A.prototype);K.prototype.constructor=K;ba.prototype=Object.create(A.prototype);ba.prototype.constructor=ba;Object.assign(ca.prototype,{computeGroups:function(c){var a,b=[],d=void 0;c=c.faces;for(var e=0;e<c.length;e++){var f=c[e];f.materialIndex!==d&&(d=f.materialIndex,void 0!==a&&(a.count=3*e-a.start,b.push(a)),a={start:3*e,materialIndex:d})}void 0!==a&&(a.count=3*e-a.start,b.push(a));this.groups=b},fromGeometry:function(c){var a=c.faces,b=c.vertices,e=c.faceVertexUvs,f=e[0]&&0<e[0].length,h=e[1]&&0<e[1].length,k=c.morphTargets,l=k.length,p;if(0<l){p=[];for(var m=0;m<l;m++)p[m]={name:k[m].name,data:[]};this.morphTargets.position=p}var z=c.morphNormals,u=z.length,v;if(0<u){v=[];for(m=0;m<u;m++)v[m]={name:z[m].name,data:[]};this.morphTargets.normal=v}var q=c.skinIndices,r=c.skinWeights,E=q.length===b.length,C=r.length===b.length;0<b.length&&0===a.length&&console.error("GLE.DirectGeometry: Faceless geometries are not supported.");for(m=0;m<a.length;m++){var w=a[m];this.vertices.push(b[w.a],b[w.b],b[w.c]);var B=w.vertexNormals;3===B.length?this.normals.push(B[0],B[1],B[2]):(B=w.normal,this.normals.push(B,B,B));B=w.vertexColors;3===B.length?this.colors.push(B[0],B[1],B[2]):(B=w.color,this.colors.push(B,B,B));!0===f&&(B=e[0][m],void 0!==B?this.uvs.push(B[0],B[1],B[2]):(console.warn("GLE.DirectGeometry.fromGeometry(): Undefined vertexUv ",m),this.uvs.push(new d,new d,new d)));!0===h&&(B=e[1][m],void 0!==B?this.uvs2.push(B[0],B[1],B[2]):(console.warn("GLE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ",m),this.uvs2.push(new d,new d,new d)));for(B=0;B<l;B++){var J=k[B].vertices;p[B].data.push(J[w.a],J[w.b],J[w.c])}for(B=0;B<u;B++)J=z[B].vertexNormals[m],v[B].data.push(J.a,J.b,J.c);E&&this.skinIndices.push(q[w.a],q[w.b],q[w.c]);C&&this.skinWeights.push(r[w.a],r[w.b],r[w.c])}this.computeGroups(c);this.verticesNeedUpdate=c.verticesNeedUpdate;this.normalsNeedUpdate=c.normalsNeedUpdate;this.colorsNeedUpdate=c.colorsNeedUpdate;this.uvsNeedUpdate=c.uvsNeedUpdate;this.groupsNeedUpdate=c.groupsNeedUpdate;return this}});var jh=1;R.prototype=Object.assign(Object.create(b.prototype),{constructor:R,isBufferGeometry:!0,getIndex:function(){return this.index},setIndex:function(c){Array.isArray(c)?this.index=new (65535<Na(c)?J:V)(c,1):this.index=c},addAttribute:function(c,a,b){if(!(a&&a.isBufferAttribute||a&&a.isInterleavedBufferAttribute))return console.warn("GLE.BufferGeometry: .addAttribute() now expects ( name, attribute )."),this.addAttribute(c,new A(a,b));if("index"===c)return console.warn("GLE.BufferGeometry.addAttribute: Use .setIndex() for index attribute."),this.setIndex(a),this;this.attributes[c]=a;return this},getAttribute:function(c){return this.attributes[c]},removeAttribute:function(c){delete this.attributes[c];return this},addGroup:function(c,a,b){this.groups.push({start:c,count:a,materialIndex:void 0!==b?b:0})},clearGroups:function(){this.groups=[]},setDrawRange:function(c,a){this.drawRange.start=c;this.drawRange.count=a},applyMatrix:function(c){var a=this.attributes.position;void 0!==a&&(c.applyToBufferAttribute(a),a.needsUpdate=!0);a=this.attributes.normal;void 0!==a&&((new l).getNormalMatrix(c).applyToBufferAttribute(a),a.needsUpdate=!0);null!==this.boundingBox&&this.computeBoundingBox();null!==this.boundingSphere&&this.computeBoundingSphere();return this},rotateX:function(){var c=new e;return function(a){c.makeRotationX(a);this.applyMatrix(c);return this}}(),rotateY:function(){var c=new e;return function(a){c.makeRotationY(a);this.applyMatrix(c);return this}}(),rotateZ:function(){var c=new e;return function(a){c.makeRotationZ(a);this.applyMatrix(c);return this}}(),translate:function(){var c=new e;return function(a,b,d){c.makeTranslation(a,b,d);this.applyMatrix(c);return this}}(),scale:function(){var c=new e;return function(a,b,d){c.makeScale(a,b,d);this.applyMatrix(c);return this}}(),lookAt:function(){var c=new F;return function(a){c.lookAt(a);c.updateMatrix();this.applyMatrix(c.matrix)}}(),center:function(){var c=new h;return function(){this.computeBoundingBox();this.boundingBox.getCenter(c).negate();this.translate(c.x,c.y,c.z);return this}}(),st:function(c){var a=c.geometry;if(c.isPoints||c.isLine){c=new K(3*a.vertices.length,3);var b=new K(3*a.colors.length,3);this.addAttribute("position",c.copyVector3sArray(a.vertices));this.addAttribute("color",b.copyColorsArray(a.colors));a.lineDistances&&a.lineDistances.length===a.vertices.length&&(c=new K(a.lineDistances.length,1),this.addAttribute("lineDistance",c.copyArray(a.lineDistances)));null!==a.boundingSphere&&(this.boundingSphere=a.boundingSphere.clone());null!==a.boundingBox&&(this.boundingBox=a.boundingBox.clone())}else c.isMesh&&a&&a.isGeometry&&this.fromGeometry(a);return this},setFromPoints:function(c){for(var a=[],b=0,d=c.length;b<d;b++){var e=c[b];a.push(e.x,e.y,e.z||0)}this.addAttribute("position",new K(a,3));return this},updateFromObject:function(c){var a=c.geometry;if(c.isMesh){var b=a.__directGeometry;!0===a.elementsNeedUpdate&&(b=void 0,a.elementsNeedUpdate=!1);if(void 0===b)return this.fromGeometry(a);b.verticesNeedUpdate=a.verticesNeedUpdate;b.normalsNeedUpdate=a.normalsNeedUpdate;b.colorsNeedUpdate=a.colorsNeedUpdate;b.uvsNeedUpdate=a.uvsNeedUpdate;b.groupsNeedUpdate=a.groupsNeedUpdate;a.verticesNeedUpdate=!1;a.normalsNeedUpdate=!1;a.colorsNeedUpdate=!1;a.uvsNeedUpdate=!1;a.groupsNeedUpdate=!1;a=b}!0===a.verticesNeedUpdate&&(b=this.attributes.position,void 0!==b&&(b.copyVector3sArray(a.vertices),b.needsUpdate=!0),a.verticesNeedUpdate=!1);!0===a.normalsNeedUpdate&&(b=this.attributes.normal,void 0!==b&&(b.copyVector3sArray(a.normals),b.needsUpdate=!0),a.normalsNeedUpdate=!1);!0===a.colorsNeedUpdate&&(b=this.attributes.color,void 0!==b&&(b.copyColorsArray(a.colors),b.needsUpdate=!0),a.colorsNeedUpdate=!1);a.uvsNeedUpdate&&(b=this.attributes.uv,void 0!==b&&(b.copyVector2sArray(a.uvs),b.needsUpdate=!0),a.uvsNeedUpdate=!1);a.lineDistancesNeedUpdate&&(b=this.attributes.lineDistance,void 0!==b&&(b.copyArray(a.lineDistances),b.needsUpdate=!0),a.lineDistancesNeedUpdate=!1);a.groupsNeedUpdate&&(a.computeGroups(c.geometry),this.groups=a.groups,a.groupsNeedUpdate=!1);return this},fromGeometry:function(c){c.__directGeometry=(new ca).fromGeometry(c);return this.fromDirectGeometry(c.__directGeometry)},fromDirectGeometry:function(c){var a=new Float32Array(3*c.vertices.length);this.addAttribute("position",(new A(a,3)).copyVector3sArray(c.vertices));0<c.normals.length&&(a=new Float32Array(3*c.normals.length),this.addAttribute("normal",(new A(a,3)).copyVector3sArray(c.normals)));0<c.colors.length&&(a=new Float32Array(3*c.colors.length),this.addAttribute("color",(new A(a,3)).copyColorsArray(c.colors)));0<c.uvs.length&&(a=new Float32Array(2*c.uvs.length),this.addAttribute("uv",(new A(a,2)).copyVector2sArray(c.uvs)));0<c.uvs2.length&&(a=new Float32Array(2*c.uvs2.length),this.addAttribute("uv2",(new A(a,2)).copyVector2sArray(c.uvs2)));this.groups=c.groups;for(var b in c.morphTargets){for(var a=[],d=c.morphTargets[b],e=0,f=d.length;e<f;e++){var h=d[e],k=new K(3*h.data.length,3);k.name=h.name;a.push(k.copyVector3sArray(h.data))}this.morphAttributes[b]=a}0<c.skinIndices.length&&(b=new K(4*c.skinIndices.length,4),this.addAttribute("skinIndex",b.copyVector4sArray(c.skinIndices)));0<c.skinWeights.length&&(b=new K(4*c.skinWeights.length,4),this.addAttribute("skinWeight",b.copyVector4sArray(c.skinWeights)));null!==c.boundingSphere&&(this.boundingSphere=c.boundingSphere.clone());null!==c.boundingBox&&(this.boundingBox=c.boundingBox.clone());return this},computeBoundingBox:function(){null===this.boundingBox&&(this.boundingBox=new B);var c=this.attributes.position;void 0!==c?this.boundingBox.setFromBufferAttribute(c):this.boundingBox.makeEmpty();(isNaN(this.boundingBox.min.x)||isNaN(this.boundingBox.min.y)||isNaN(this.boundingBox.min.z))&&console.error('GLE.BufferGeometry.computeBoundingBox: Computed min/max have NaN values. The "position" attribute is likely to have NaN values.',this)},computeBoundingSphere:function(){var c=new B,a=new h;return function(){null===this.boundingSphere&&(this.boundingSphere=new w);var g=this.attributes.position;if(g){var b=this.boundingSphere.center;c.setFromBufferAttribute(g);c.getCenter(b);for(var d=0,e=0,f=g.count;e<f;e++)a.x=g.getX(e),a.y=g.getY(e),a.z=g.getZ(e),d=Math.max(d,b.distanceToSquared(a));this.boundingSphere.radius=Math.sqrt(d);isNaN(this.boundingSphere.radius)&&console.error('GLE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this)}}}(),computeFaceNormals:function(){},computeVertexNormals:function(){var c=this.index,a=this.attributes;if(a.position){var b=a.position.array;if(void 0===a.normal)this.addAttribute("normal",new A(new Float32Array(b.length),3));else for(var d=a.normal.array,e=0,f=d.length;e<f;e++)d[e]=0;var d=a.normal.array,k,l,p=new h,m=new h,z=new h,u=new h,v=new h;if(c)for(var q=c.array,e=0,f=c.count;e<f;e+=3)c=3*q[e+0],k=3*q[e+1],l=3*q[e+2],p.fromArray(b,c),m.fromArray(b,k),z.fromArray(b,l),u.subVectors(z,m),v.subVectors(p,m),u.cross(v),d[c]+=u.x,d[c+1]+=u.y,d[c+2]+=u.z,d[k]+=u.x,d[k+1]+=u.y,d[k+2]+=u.z,d[l]+=u.x,d[l+1]+=u.y,d[l+2]+=u.z;else for(e=0,f=b.length;e<f;e+=9)p.fromArray(b,e),m.fromArray(b,e+3),z.fromArray(b,e+6),u.subVectors(z,m),v.subVectors(p,m),u.cross(v),d[e]=u.x,d[e+1]=u.y,d[e+2]=u.z,d[e+3]=u.x,d[e+4]=u.y,d[e+5]=u.z,d[e+6]=u.x,d[e+7]=u.y,d[e+8]=u.z;this.normalizeNormals();a.normal.needsUpdate=!0}},merge:function(c,a){if(c&&c.isBufferGeometry){void 0===a&&(a=0,console.warn("GLE.BufferGeometry.merge(): Overwriting original geometry, starting at offset\x3d0. Use BufferGeometryUtils.mergeBufferGeometries() for lossless merge."));var g=this.attributes,b;for(b in g)if(void 0!==c.attributes[b])for(var d=g[b].array,e=c.attributes[b],f=e.array,h=0,e=e.itemSize*a;h<f.length;h++,e++)d[e]=f[h];return this}console.error("GLE.BufferGeometry.merge(): geometry not an instance of GLE.BufferGeometry.",c)},normalizeNormals:function(){var c=new h;return function(){for(var a=this.attributes.normal,b=0,d=a.count;b<d;b++)c.x=a.getX(b),c.y=a.getY(b),c.z=a.getZ(b),c.normalize(),a.setXYZ(b,c.x,c.y,c.z)}}(),toNonIndexed:function(){if(null===this.index)return console.warn("GLE.BufferGeometry.toNonIndexed(): Geometry is already non-indexed."),this;var c=new R,a=this.index.array,b=this.attributes,d;for(d in b){for(var e=b[d],f=e.array,h=e.itemSize,k=new f.constructor(a.length*h),l,p=0,e=0,m=a.length;e<m;e++){l=a[e]*h;for(var z=0;z<h;z++)k[p++]=f[l++]}c.addAttribute(d,new A(k,h))}a=this.groups;e=0;for(m=a.length;e<m;e++)b=a[e],c.addGroup(b.start,b.count,b.materialIndex);return c},toJSON:function(){var c={metadata:{version:4.5,type:"BufferGeometry",generator:"BufferGeometry.toJSON"}};c.uuid=this.uuid;c.type=this.type;""!==this.name&&(c.name=this.name);0<Object.keys(this.userData).length&&(c.userData=this.userData);if(void 0!==this.parameters){var a=this.parameters,b;for(b in a)void 0!==a[b]&&(c[b]=a[b]);return c}c.data={attributes:{}};var d=this.index;null!==d&&(a=Array.prototype.slice.call(d.array),c.data.index={type:d.array.constructor.name,array:a});d=this.attributes;for(b in d){var e=d[b],a=Array.prototype.slice.call(e.array);c.data.attributes[b]={itemSize:e.itemSize,type:e.array.constructor.name,array:a,normalized:e.normalized}}b=this.groups;0<b.length&&(c.data.groups=JSON.parse(JSON.stringify(b)));b=this.boundingSphere;null!==b&&(c.data.boundingSphere={center:b.center.toArray(),radius:b.radius});return c},clone:function(){return(new R).copy(this)},copy:function(c){var a,b,d;this.index=null;this.attributes={};this.morphAttributes={};this.groups=[];this.boundingSphere=this.boundingBox=null;this.name=c.name;b=c.index;null!==b&&this.setIndex(b.clone());b=c.attributes;for(a in b)this.addAttribute(a,b[a].clone());var e=c.morphAttributes;for(a in e){var f=[],h=e[a];b=0;for(d=h.length;b<d;b++)f.push(h[b].clone());this.morphAttributes[a]=f}a=c.groups;b=0;for(d=a.length;b<d;b++)e=a[b],this.addGroup(e.start,e.count,e.materialIndex);a=c.boundingBox;null!==a&&(this.boundingBox=a.clone());a=c.boundingSphere;null!==a&&(this.boundingSphere=a.clone());this.drawRange.start=c.drawRange.start;this.drawRange.count=c.drawRange.count;this.userData=c.userData;return this},dispose:function(){this.dispatchEvent({type:"dispose"})}});Z.prototype=Object.create(L.prototype);Z.prototype.constructor=Z;ta.prototype=Object.create(R.prototype);ta.prototype.constructor=ta;da.prototype=Object.create(L.prototype);da.prototype.constructor=da;Y.prototype=Object.create(R.prototype);Y.prototype.constructor=Y;var mh=0;S.prototype=Object.assign(Object.create(b.prototype),{constructor:S,isMaterial:!0,onBeforeCompile:function(){},setValues:function(c){if(void 0!==c)for(var a in c){var b=c[a];if(void 0===b)console.warn("GLE.Material: '"+a+"' parameter is undefined.");else if("shading"===a)console.warn("GLE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=1===b?!0:!1;else{var d=this[a];void 0===d?console.warn("GLE."+this.type+": '"+a+"' is not a property of this material."):d&&d.isColor?d.set(b):d&&d.isVector3&&b&&b.isVector3?d.copy(b):this[a]="overdraw"===a?Number(b):b}}},toJSON:function(c){function a(c){var a=[],g;for(g in c){var b=c[g];delete b.metadata;a.push(b)}return a}var b=void 0===c||"string"===typeof c;b&&(c={textures:{},images:{}});var d={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};d.uuid=this.uuid;d.type=this.type;""!==this.name&&(d.name=this.name);this.color&&this.color.isColor&&(d.color=this.color.getHex());void 0!==this.roughness&&(d.roughness=this.roughness);void 0!==this.metalness&&(d.metalness=this.metalness);this.emissive&&this.emissive.isColor&&(d.emissive=this.emissive.getHex());1!==this.emissiveIntensity&&(d.emissiveIntensity=this.emissiveIntensity);this.specular&&this.specular.isColor&&(d.specular=this.specular.getHex());void 0!==this.shininess&&(d.shininess=this.shininess);void 0!==this.clearCoat&&(d.clearCoat=this.clearCoat);void 0!==this.clearCoatRoughness&&(d.clearCoatRoughness=this.clearCoatRoughness);this.map&&this.map.isTexture&&(d.map=this.map.toJSON(c).uuid);this.alphaMap&&this.alphaMap.isTexture&&(d.alphaMap=this.alphaMap.toJSON(c).uuid);this.lightMap&&this.lightMap.isTexture&&(d.lightMap=this.lightMap.toJSON(c).uuid);this.aoMap&&this.aoMap.isTexture&&(d.aoMap=this.aoMap.toJSON(c).uuid,d.aoMapIntensity=this.aoMapIntensity);this.bumpMap&&this.bumpMap.isTexture&&(d.bumpMap=this.bumpMap.toJSON(c).uuid,d.bumpScale=this.bumpScale);this.normalMap&&this.normalMap.isTexture&&(d.normalMap=this.normalMap.toJSON(c).uuid,d.normalMapType=this.normalMapType,d.normalScale=this.normalScale.toArray());this.displacementMap&&this.displacementMap.isTexture&&(d.displacementMap=this.displacementMap.toJSON(c).uuid,d.displacementScale=this.displacementScale,d.displacementBias=this.displacementBias);this.roughnessMap&&this.roughnessMap.isTexture&&(d.roughnessMap=this.roughnessMap.toJSON(c).uuid);this.metalnessMap&&this.metalnessMap.isTexture&&(d.metalnessMap=this.metalnessMap.toJSON(c).uuid);this.emissiveMap&&this.emissiveMap.isTexture&&(d.emissiveMap=this.emissiveMap.toJSON(c).uuid);this.specularMap&&this.specularMap.isTexture&&(d.specularMap=this.specularMap.toJSON(c).uuid);this.envMap&&this.envMap.isTexture&&(d.envMap=this.envMap.toJSON(c).uuid,d.reflectivity=this.reflectivity,void 0!==this.combine&&(d.combine=this.combine),void 0!==this.envMapIntensity&&(d.envMapIntensity=this.envMapIntensity));this.gradientMap&&this.gradientMap.isTexture&&(d.gradientMap=this.gradientMap.toJSON(c).uuid);void 0!==this.size&&(d.size=this.size);void 0!==this.sizeAttenuation&&(d.sizeAttenuation=this.sizeAttenuation);1!==this.blending&&(d.blending=this.blending);!0===this.flatShading&&(d.flatShading=this.flatShading);0!==this.side&&(d.side=this.side);0!==this.vertexColors&&(d.vertexColors=this.vertexColors);1>this.opacity&&(d.opacity=this.opacity);!0===this.transparent&&(d.transparent=this.transparent);d.depthFunc=this.depthFunc;d.depthTest=this.depthTest;d.depthWrite=this.depthWrite;0!==this.rotation&&(d.rotation=this.rotation);!0===this.polygonOffset&&(d.polygonOffset=!0);0!==this.polygonOffsetFactor&&(d.polygonOffsetFactor=this.polygonOffsetFactor);0!==this.polygonOffsetUnits&&(d.polygonOffsetUnits=this.polygonOffsetUnits);1!==this.linewidth&&(d.linewidth=this.linewidth);void 0!==this.dashSize&&(d.dashSize=this.dashSize);void 0!==this.gapSize&&(d.gapSize=this.gapSize);void 0!==this.scale&&(d.scale=this.scale);!0===this.dithering&&(d.dithering=!0);0<this.alphaTest&&(d.alphaTest=this.alphaTest);!0===this.premultipliedAlpha&&(d.premultipliedAlpha=this.premultipliedAlpha);!0===this.wireframe&&(d.wireframe=this.wireframe);1<this.wireframeLinewidth&&(d.wireframeLinewidth=this.wireframeLinewidth);"round"!==this.wireframeLinecap&&(d.wireframeLinecap=this.wireframeLinecap);"round"!==this.wireframeLinejoin&&(d.wireframeLinejoin=this.wireframeLinejoin);!0===this.morphTargets&&(d.morphTargets=!0);!0===this.skinning&&(d.skinning=!0);!1===this.visible&&(d.visible=!1);"{}"!==JSON.stringify(this.userData)&&(d.userData=this.userData);b&&(b=a(c.textures),c=a(c.images),0<b.length&&(d.textures=b),0<c.length&&(d.images=c));return d},clone:function(){return(new this.constructor).copy(this)},copy:function(c){this.name=c.name;this.fog=c.fog;this.lights=c.lights;this.blending=c.blending;this.side=c.side;this.flatShading=c.flatShading;this.vertexColors=c.vertexColors;this.opacity=c.opacity;this.transparent=c.transparent;this.blendSrc=c.blendSrc;this.blendDst=c.blendDst;this.blendEquation=c.blendEquation;this.blendSrcAlpha=c.blendSrcAlpha;this.blendDstAlpha=c.blendDstAlpha;this.blendEquationAlpha=c.blendEquationAlpha;this.depthFunc=c.depthFunc;this.depthTest=c.depthTest;this.depthWrite=c.depthWrite;this.colorWrite=c.colorWrite;this.precision=c.precision;this.polygonOffset=c.polygonOffset;this.polygonOffsetFactor=c.polygonOffsetFactor;this.polygonOffsetUnits=c.polygonOffsetUnits;this.dithering=c.dithering;this.alphaTest=c.alphaTest;this.premultipliedAlpha=c.premultipliedAlpha;this.overdraw=c.overdraw;this.visible=c.visible;this.userData=JSON.parse(JSON.stringify(c.userData));this.clipShadows=c.clipShadows;this.clipIntersection=c.clipIntersection;var a=c.cs,b=null;if(null!==a)for(var d=a.length,b=Array(d),e=0;e!==d;++e)b[e]=a[e].clone();this.cs=b;this.shadowSide=c.shadowSide;return this},dispose:function(){this.dispatchEvent({type:"dispose"})}});ga.prototype=Object.create(S.prototype);ga.prototype.constructor=ga;ga.prototype.isShaderMaterial=!0;ga.prototype.copy=function(c){S.prototype.copy.call(this,c);this.fragmentShader=c.fragmentShader;this.vertexShader=c.vertexShader;this.uniforms=qb.clone(c.uniforms);this.defines=Object.assign({},c.defines);this.wireframe=c.wireframe;this.wireframeLinewidth=c.wireframeLinewidth;this.lights=c.lights;this.clipping=c.clipping;this.skinning=c.skinning;this.morphTargets=c.morphTargets;this.morphNormals=c.morphNormals;this.extensions=c.extensions;return this};ga.prototype.toJSON=function(c){var a=S.prototype.toJSON.call(this,c);a.uniforms={};for(var b in this.uniforms){var d=this.uniforms[b].value;a.uniforms[b]=d.isTexture?{type:"t",value:d.toJSON(c).uuid}:d.isColor?{type:"c",value:d.getHex()}:d.isVector2?{type:"v2",value:d.toArray()}:d.isVector3?{type:"v3",value:d.toArray()}:d.isVector4?{type:"v4",value:d.toArray()}:d.isMatrix4?{type:"m4",value:d.toArray()}:{value:d}}0<Object.keys(this.defines).length&&(a.defines=this.defines);a.vertexShader=this.vertexShader;a.fragmentShader=this.fragmentShader;return a};Object.assign(ja.prototype,{set:function(c,a){this.origin.copy(c);this.direction.copy(a);return this},clone:function(){return(new this.constructor).copy(this)},copy:function(c){this.origin.copy(c.origin);this.direction.copy(c.direction);return this},at:function(c,a){void 0===a&&(console.warn("GLE.Ray: .at() target is now required"),a=new h);return a.copy(this.direction).multiplyScalar(c).add(this.origin)},lookAt:function(c){this.direction.copy(c).sub(this.origin).normalize();return this},recast:function(){var c=new h;return function(a){this.origin.copy(this.at(a,c));return this}}(),closestPointToPoint:function(c,a){void 0===a&&(console.warn("GLE.Ray: .closestPointToPoint() target is now required"),a=new h);a.subVectors(c,this.origin);var g=a.dot(this.direction);return 0>g?a.copy(this.origin):a.copy(this.direction).multiplyScalar(g).add(this.origin)},distanceToPoint:function(c){return Math.sqrt(this.distanceSqToPoint(c))},distanceSqToPoint:function(){var c=new h;return function(a){var g=c.subVectors(a,this.origin).dot(this.direction);if(0>g)return this.origin.distanceToSquared(a);c.copy(this.direction).multiplyScalar(g).add(this.origin);return c.distanceToSquared(a)}}(),distanceSqToSegment:function(){var c=new h,a=new h,b=new h;return function(g,d,n,e){c.copy(g).add(d).multiplyScalar(.5);a.copy(d).sub(g).normalize();b.copy(this.origin).sub(c);var f=.5*g.distanceTo(d),h=-this.direction.dot(a),k=b.dot(this.direction),t=-b.dot(a),l=b.lengthSq(),p=Math.abs(1-h*h),y;0<p?(g=h*t-k,d=h*k-t,y=f*p,0<=g?d>=-y?d<=y?(f=1/p,g*=f,d*=f,h=g*(g+h*d+2*k)+d*(h*g+d+2*t)+l):(d=f,g=Math.max(0,-(h*d+k)),h=-g*g+d*(d+2*t)+l):(d=-f,g=Math.max(0,-(h*d+k)),h=-g*g+d*(d+2*t)+l):d<=-y?(g=Math.max(0,-(-h*f+k)),d=0<g?-f:Math.min(Math.max(-f,-t),f),h=-g*g+d*(d+2*t)+l):d<=y?(g=0,d=Math.min(Math.max(-f,-t),f),h=d*(d+2*t)+l):(g=Math.max(0,-(h*f+k)),d=0<g?f:Math.min(Math.max(-f,-t),f),h=-g*g+d*(d+2*t)+l)):(d=0<h?-f:f,g=Math.max(0,-(h*d+k)),h=-g*g+d*(d+2*t)+l);n&&n.copy(this.direction).multiplyScalar(g).add(this.origin);e&&e.copy(a).multiplyScalar(d).add(c);return h}}(),intersectSphere:function(){var c=new h;return function(a,b){c.subVectors(a.center,this.origin);var g=c.dot(this.direction),d=c.dot(c)-g*g,n=a.radius*a.radius;if(d>n)return null;n=Math.sqrt(n-d);d=g-n;g+=n;return 0>d&&0>g?null:0>d?this.at(g,b):this.at(d,b)}}(),intersectsSphere:function(c){return this.distanceSqToPoint(c.center)<=c.radius*c.radius},distanceToPlane:function(c){var a=c.normal.dot(this.direction);if(0===a)return 0===c.distanceToPoint(this.origin)?0:null;c=-(this.origin.dot(c.normal)+c.constant)/a;return 0<=c?c:null},intersectPlane:function(c,a){var g=this.distanceToPlane(c);return null===g?null:this.at(g,a)},intersectsPlane:function(c){var a=c.distanceToPoint(this.origin);return 0===a||0>c.normal.dot(this.direction)*a?!0:!1},intersectBox:function(c,a){var g,b,d,e,f;b=1/this.direction.x;e=1/this.direction.y;f=1/this.direction.z;var h=this.origin;0<=b?(g=(c.min.x-h.x)*b,b*=c.max.x-h.x):(g=(c.max.x-h.x)*b,b*=c.min.x-h.x);0<=e?(d=(c.min.y-h.y)*e,e*=c.max.y-h.y):(d=(c.max.y-h.y)*e,e*=c.min.y-h.y);if(g>e||d>b)return null;if(d>g||g!==g)g=d;if(e<b||b!==b)b=e;0<=f?(d=(c.min.z-h.z)*f,f*=c.max.z-h.z):(d=(c.max.z-h.z)*f,f*=c.min.z-h.z);if(g>f||d>b)return null;if(d>g||g!==g)g=d;if(f<b||b!==b)b=f;return 0>b?null:this.at(0<=g?g:b,a)},intersectsBox:function(){var c=new h;return function(a){return null!==this.intersectBox(a,c)}}(),intersectTriangle:function(){var c=new h,a=new h,b=new h,d=new h;return function(g,n,e,f,h){a.subVectors(n,g);b.subVectors(e,g);d.crossVectors(a,b);n=this.direction.dot(d);if(0<n){if(f)return null;f=1}else if(0>n)f=-1,n=-n;else return null;c.subVectors(this.origin,g);g=f*this.direction.dot(b.crossVectors(c,b));if(0>g)return null;e=f*this.direction.dot(a.cross(c));if(0>e||g+e>n)return null;g=-f*c.dot(d);return 0>g?null:this.at(g/n,h)}}(),applyMatrix4:function(c){this.origin.applyMatrix4(c);this.direction.transformDirection(c);return this},equals:function(c){return c.origin.equals(this.origin)&&c.direction.equals(this.direction)}});Object.assign(ka,{getNormal:function(){var c=new h;return function(a,b,d,e){void 0===e&&(console.warn("GLE.Triangle: .getNormal() target is now required"),e=new h);e.subVectors(d,b);c.subVectors(a,b);e.cross(c);a=e.lengthSq();return 0<a?e.multiplyScalar(1/Math.sqrt(a)):e.set(0,0,0)}}(),getBarycoord:function(){var c=new h,a=new h,b=new h;return function(g,d,n,e,f){c.subVectors(e,d);a.subVectors(n,d);b.subVectors(g,d);g=c.dot(c);d=c.dot(a);n=c.dot(b);var k=a.dot(a);e=a.dot(b);var t=g*k-d*d;void 0===f&&(console.warn("GLE.Triangle: .getBarycoord() target is now required"),f=new h);if(0===t)return f.set(-2,-1,-1);t=1/t;k=(k*n-d*e)*t;g=(g*e-d*n)*t;return f.set(1-k-g,g,k)}}(),containsPoint:function(){var c=new h;return function(a,b,d,e){ka.getBarycoord(a,b,d,e,c);return 0<=c.x&&0<=c.y&&1>=c.x+c.y}}(),getUV:function(){var c=new h;return function(a,b,d,e,f,h,k,l){this.getBarycoord(a,b,d,e,c);l.set(0,0);l.addScaledVector(f,c.x);l.addScaledVector(h,c.y);l.addScaledVector(k,c.z);return l}}()});Object.assign(ka.prototype,{set:function(c,a,b){this.a.copy(c);this.b.copy(a);this.c.copy(b);return this},setFromPointsAndIndices:function(c,a,b,d){this.a.copy(c[a]);this.b.copy(c[b]);this.c.copy(c[d]);return this},clone:function(){return(new this.constructor).copy(this)},copy:function(c){this.a.copy(c.a);this.b.copy(c.b);this.c.copy(c.c);return this},getArea:function(){var c=new h,a=new h;return function(){c.subVectors(this.c,this.b);a.subVectors(this.a,this.b);return.5*c.cross(a).length()}}(),getMidpoint:function(c){void 0===c&&(console.warn("GLE.Triangle: .getMidpoint() target is now required"),c=new h);return c.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)},getNormal:function(c){return ka.getNormal(this.a,this.b,this.c,c)},getPlane:function(c){void 0===c&&(console.warn("GLE.Triangle: .getPlane() target is now required"),c=new h);return c.setFromCoplanarPoints(this.a,this.b,this.c)},getBarycoord:function(c,a){return ka.getBarycoord(c,this.a,this.b,this.c,a)},containsPoint:function(c){return ka.containsPoint(c,this.a,this.b,this.c)},getUV:function(c,a,b,d,e){return ka.getUV(c,this.a,this.b,this.c,a,b,d,e)},intersectsBox:function(c){return c.intersectsTriangle(this)},closestPointToPoint:function(){var c=new h,a=new h,b=new h,d=new h,e=new h,f=new h;return function(g,n){void 0===n&&(console.warn("GLE.Triangle: .closestPointToPoint() target is now required"),n=new h);var k=this.a,t=this.b,l=this.c,p;c.subVectors(t,k);a.subVectors(l,k);d.subVectors(g,k);var y=c.dot(d),m=a.dot(d);if(0>=y&&0>=m)return n.copy(k);e.subVectors(g,t);var z=c.dot(e),u=a.dot(e);if(0<=z&&u<=z)return n.copy(t);p=y*u-z*m;if(0>=p&&0<=y&&0>=z)return t=y/(y-z),n.copy(k).addScaledVector(c,t);f.subVectors(g,l);var v=c.dot(f),q=a.dot(f);if(0<=q&&v<=q)return n.copy(l);y=v*m-y*q;if(0>=y&&0<=m&&0>=q)return p=m/(m-q),n.copy(k).addScaledVector(a,p);m=z*q-v*u;if(0>=m&&0<=u-z&&0<=v-q)return b.subVectors(l,t),p=(u-z)/(u-z+(v-q)),n.copy(t).addScaledVector(b,p);l=1/(m+y+p);t=y*l;p*=l;return n.copy(k).addScaledVector(c,t).addScaledVector(a,p)}}(),equals:function(c){return c.a.equals(this.a)&&c.b.equals(this.b)&&c.c.equals(this.c)}});ha.prototype=Object.create(S.prototype);ha.prototype.constructor=ha;ha.prototype.isMal=!0;ha.prototype.copy=function(c){S.prototype.copy.call(this,c);this.color.copy(c.color);this.map=c.map;this.lightMap=c.lightMap;this.lightMapIntensity=c.lightMapIntensity;this.aoMap=c.aoMap;this.aoMapIntensity=c.aoMapIntensity;this.specularMap=c.specularMap;this.alphaMap=c.alphaMap;this.envMap=c.envMap;this.combine=c.combine;this.reflectivity=c.reflectivity;this.refractionRatio=c.refractionRatio;this.wireframe=c.wireframe;this.wireframeLinewidth=c.wireframeLinewidth;this.wireframeLinecap=c.wireframeLinecap;this.wireframeLinejoin=c.wireframeLinejoin;this.skinning=c.skinning;this.morphTargets=c.morphTargets;return this};na.prototype=Object.assign(Object.create(F.prototype),{constructor:na,isMesh:!0,setDrawMode:function(c){this.drawMode=c},copy:function(c){F.prototype.copy.call(this,c);this.drawMode=c.drawMode;void 0!==c.morphTargetInfluences&&(this.morphTargetInfluences=c.morphTargetInfluences.slice());void 0!==c.morphTargetDictionary&&(this.morphTargetDictionary=Object.assign({},c.morphTargetDictionary));return this},updateMorphTargets:function(){var c=this.geometry,a,b;if(c.isBufferGeometry){if(c=c.morphAttributes,a=Object.keys(c),0<a.length){var d=c[a[0]];if(void 0!==d)for(this.morphTargetInfluences=[],this.morphTargetDictionary={},c=0,a=d.length;c<a;c++)b=d[c].name||String(c),this.morphTargetInfluences.push(0),this.morphTargetDictionary[b]=c}}else if(d=c.morphTargets,void 0!==d&&0<d.length)for(this.morphTargetInfluences=[],this.morphTargetDictionary={},c=0,a=d.length;c<a;c++)b=d[c].name||String(c),this.morphTargetInfluences.push(0),this.morphTargetDictionary[b]=c},raycast:function(){function c(c,a,g,b,d,n,e,f){if(null===(1===a.side?b.intersectTriangle(e,n,d,!0,f):b.intersectTriangle(d,n,e,2!==a.side,f)))return null;J.copy(f);J.applyMatrix4(c.matrixWorld);a=g.ray.origin.distanceTo(J);return a<g.near||a>g.far?null:{distance:a,point:J.clone(),object:c}}function a(a,g,b,d,n,e,f,h,k){l.fromBufferAttribute(n,f);p.fromBufferAttribute(n,h);m.fromBufferAttribute(n,k);if(a=c(a,g,b,d,l,p,m,B))f=new C(f,h,k),ka.getNormal(l,p,m,f.normal),a.face=f;return a}var b=new e,f=new ja,k=new w,l=new h,p=new h,m=new h,z=new h,u=new h,v=new h,q=new d,r=new d,E=new d,B=new h,J=new h;return function(g,n){var e=this.geometry,h=this.material,t=this.matrixWorld;if(void 0!==h&&(null===e.boundingSphere&&e.computeBoundingSphere(),k.copy(e.boundingSphere),k.applyMatrix4(t),!1!==g.ray.intersectsSphere(k)&&(b.getInverse(t),f.copy(g.ray).applyMatrix4(b),null===e.boundingBox||!1!==f.intersectsBox(e.boundingBox))))if(e.isBufferGeometry){var y,I,C=e.index,w=e.attributes.position,J=e.attributes.uv,O=e.groups,e=e.drawRange,D,x,A,X,sa;if(null!==C)if(Array.isArray(h))for(D=0,A=O.length;D<A;D++)for(x=O[D],sa=h[x.materialIndex],t=Math.max(x.start,e.start),X=Math.min(x.start+x.count,e.start+e.count),x=t;x<X;x+=3){if(t=C.getX(x),y=C.getX(x+1),I=C.getX(x+2),t=a(this,sa,g,f,w,J,t,y,I))t.faceIndex=Math.floor(x/3),n.push(t)}else for(t=Math.max(0,e.start),X=Math.min(C.count,e.start+e.count),D=t,A=X;D<A;D+=3){if(t=C.getX(D),y=C.getX(D+1),I=C.getX(D+2),t=a(this,h,g,f,w,J,t,y,I))t.faceIndex=Math.floor(D/3),n.push(t)}else if(void 0!==w)if(Array.isArray(h))for(D=0,A=O.length;D<A;D++)for(x=O[D],sa=h[x.materialIndex],t=Math.max(x.start,e.start),X=Math.min(x.start+x.count,e.start+e.count),x=t;x<X;x+=3){if(t=x,y=x+1,I=x+2,t=a(this,sa,g,f,w,J,t,y,I))t.faceIndex=Math.floor(x/3),n.push(t)}else for(t=Math.max(0,e.start),X=Math.min(w.count,e.start+e.count),D=t,A=X;D<A;D+=3)if(t=D,y=D+1,I=D+2,t=a(this,h,g,f,w,J,t,y,I))t.faceIndex=Math.floor(D/3),n.push(t)}else if(e.isGeometry)for(w=Array.isArray(h),J=e.vertices,O=e.faces,t=e.faceVertexUvs[0],0<t.length&&(C=t),x=0,X=O.length;x<X;x++)if(y=O[x],t=w?h[y.materialIndex]:h,void 0!==t){D=J[y.a];A=J[y.b];sa=J[y.c];if(!0===t.morphTargets){I=e.morphTargets;var G=this.morphTargetInfluences;l.set(0,0,0);p.set(0,0,0);m.set(0,0,0);for(var xa=0,ea=I.length;xa<ea;xa++){var la=G[xa];if(0!==la){var K=I[xa].vertices;l.addScaledVector(z.subVectors(K[y.a],D),la);p.addScaledVector(u.subVectors(K[y.b],A),la);m.addScaledVector(v.subVectors(K[y.c],sa),la)}}l.add(D);p.add(A);m.add(sa);D=l;A=p;sa=m}if(t=c(this,t,g,f,D,A,sa,B))C&&C[x]&&(I=C[x],q.copy(I[0]),r.copy(I[1]),E.copy(I[2]),t.uv=ka.getUV(B,D,A,sa,q,r,E,new d)),t.face=y,t.faceIndex=x,n.push(t)}}}(),clone:function(){return(new this.constructor(this.geometry,this.material)).copy(this)}});Ua.prototype=Object.create(m.prototype);Ua.prototype.constructor=Ua;Ua.prototype.isCubeTexture=!0;Object.defineProperty(Ua.prototype,"images",{get:function(){return this.image},set:function(c){this.image=c}});kb.prototype=Object.create(m.prototype);kb.prototype.constructor=kb;kb.prototype.isTexture3D=!0;var vf=new m,oh=new kb,mg=new Ua,kg=[],lg=[],vi=new Float32Array(16),ui=new Float32Array(9),ti=new Float32Array(4);Ob.prototype.updateCache=function(c){var a=this.cache;c instanceof Float32Array&&a.length!==c.length&&(this.cache=new Float32Array(c.length));Ma(a,c)};wd.prototype.setValue=function(c,a,b){for(var g=this.seq,d=0,n=g.length;d!==n;++d){var e=g[d];e.setValue(c,a[e.id],b)}};var ph=/([\w\d_]+)(\])?(\[|\.)?/g;Xb.prototype.setValue=function(c,a,b){a=this.map[a];void 0!==a&&a.setValue(c,b,this.renderer)};Xb.prototype.setOptional=function(c,a,b){a=a[b];void 0!==a&&this.setValue(c,b,a)};Xb.upload=function(c,a,b,d){for(var g=0,n=a.length;g!==n;++g){var e=a[g],f=b[e.id];!1!==f.needsUpdate&&e.setValue(c,f.value,d)}};Xb.seqWithValue=function(c,a){for(var g=[],b=0,d=c.length;b!==d;++b){var e=c[b];e.id in a&&g.push(e)}return g};var qh=0,Rj=0;Bb.prototype=Object.create(S.prototype);Bb.prototype.constructor=Bb;Bb.prototype.isMeshDepthMaterial=!0;Bb.prototype.copy=function(c){S.prototype.copy.call(this,c);this.depthPacking=c.depthPacking;this.skinning=c.skinning;this.morphTargets=c.morphTargets;this.map=c.map;this.alphaMap=c.alphaMap;this.displacementMap=c.displacementMap;this.displacementScale=c.displacementScale;this.displacementBias=c.displacementBias;this.wireframe=c.wireframe;this.wireframeLinewidth=c.wireframeLinewidth;return this};Ib.prototype=Object.create(S.prototype);Ib.prototype.constructor=Ib;Ib.prototype.isMeshDistanceMaterial=!0;Ib.prototype.copy=function(c){S.prototype.copy.call(this,c);this.referencePosition.copy(c.referencePosition);this.nearDistance=c.nearDistance;this.farDistance=c.farDistance;this.skinning=c.skinning;this.morphTargets=c.morphTargets;this.map=c.map;this.alphaMap=c.alphaMap;this.displacementMap=c.displacementMap;this.displacementScale=c.displacementScale;this.displacementBias=c.displacementBias;return this};$b.prototype=Object.assign(Object.create(F.prototype),{constructor:$b,isGroup:!0});nb.prototype=Object.assign(Object.create(F.prototype),{constructor:nb,isCamera:!0,copy:function(c,a){F.prototype.copy.call(this,c,a);this.matrixWorldInverse.copy(c.matrixWorldInverse);this.projectionMatrix.copy(c.projectionMatrix);this.projectionMatrixInverse.copy(c.projectionMatrixInverse);return this},getWorldDirection:function(c){void 0===c&&(console.warn("GLE.Camera: .getWorldDirection() target is now required"),c=new h);this.uld(!0);var a=this.matrixWorld.elements;return c.set(-a[8],-a[9],-a[10]).normalize()},uld:function(c){F.prototype.uld.call(this,c);this.matrixWorldInverse.getInverse(this.matrixWorld)},clone:function(){return(new this.constructor).copy(this)}});Ra.prototype=Object.assign(Object.create(nb.prototype),{constructor:Ra,isPa:!0,copy:function(c,a){nb.prototype.copy.call(this,c,a);this.fov=c.fov;this.zoom=c.zoom;this.near=c.near;this.far=c.far;this.focus=c.focus;this.aspect=c.aspect;this.view=null===c.view?null:Object.assign({},c.view);this.filmGauge=c.filmGauge;this.filmOffset=c.filmOffset;return this},setFocalLength:function(c){c=.5*this.getFilmHeight()/c;this.fov=2*Aa.RAD2DEG*Math.atan(c);this.ux()},getFocalLength:function(){var c=Math.tan(.5*Aa.DEG2RAD*this.fov);return.5*this.getFilmHeight()/c},getEffectiveFOV:function(){return 2*Aa.RAD2DEG*Math.atan(Math.tan(.5*Aa.DEG2RAD*this.fov)/this.zoom)},getFilmWidth:function(){return this.filmGauge*Math.min(this.aspect,1)},getFilmHeight:function(){return this.filmGauge/Math.max(this.aspect,1)},setViewOffset:function(c,a,b,d,e,f){this.aspect=c/a;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=c;this.view.fullHeight=a;this.view.offsetX=b;this.view.offsetY=d;this.view.width=e;this.view.height=f;this.ux()},clearViewOffset:function(){null!==this.view&&(this.view.enabled=!1);this.ux()},ux:function(){var c=this.near,a=c*Math.tan(.5*Aa.DEG2RAD*this.fov)/this.zoom,b=2*a,d=this.aspect*b,e=-.5*d,f=this.view;if(null!==this.view&&this.view.enabled)var h=f.fullWidth,k=f.fullHeight,e=e+f.offsetX*d/h,a=a-f.offsetY*b/k,d=f.width/h*d,b=f.height/k*b;f=this.filmOffset;0!==f&&(e+=c*f/this.getFilmWidth());this.projectionMatrix.makePerspective(e,e+d,a,a-b,c,this.far);this.projectionMatrixInverse.getInverse(this.projectionMatrix)},toJSON:function(c){c=F.prototype.toJSON.call(this,c);c.object.fov=this.fov;c.object.zoom=this.zoom;c.object.near=this.near;c.object.far=this.far;c.object.focus=this.focus;c.object.aspect=this.aspect;null!==this.view&&(c.object.view=Object.assign({},this.view));c.object.filmGauge=this.filmGauge;c.object.filmOffset=this.filmOffset;return c}});Ne.prototype=Object.assign(Object.create(Ra.prototype),{constructor:Ne,isArrayCamera:!0});gd.prototype.isFogExp2=!0;gd.prototype.clone=function(){return new gd(this.color,this.density)};gd.prototype.toJSON=function(){return{type:"FogExp2",color:this.color.getHex(),density:this.density}};$d.prototype.isFog=!0;$d.prototype.clone=function(){return new $d(this.color,this.near,this.far)};$d.prototype.toJSON=function(){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}};Bf.prototype=Object.assign(Object.create(F.prototype),{constructor:Bf,copy:function(c,a){F.prototype.copy.call(this,c,a);null!==c.background&&(this.background=c.background.clone());null!==c.fog&&(this.fog=c.fog.clone());null!==c.overrideMaterial&&(this.overrideMaterial=c.overrideMaterial.clone());this.autoUpdate=c.autoUpdate;this.matrixAutoUpdate=c.matrixAutoUpdate;return this},toJSON:function(c){var a=F.prototype.toJSON.call(this,c);null!==this.background&&(a.object.background=this.background.toJSON(c));null!==this.fog&&(a.object.fog=this.fog.toJSON());return a}});Object.defineProperty(ae.prototype,"needsUpdate",{set:function(c){!0===c&&this.version++}});Object.assign(ae.prototype,{isInterleavedBuffer:!0,onUploadCallback:function(){},setArray:function(c){if(Array.isArray(c))throw new TypeError("GLE.BufferAttribute: array should be a Typed Array.");this.count=void 0!==c?c.length/this.stride:0;this.array=c;return this},setDynamic:function(c){this.dynamic=c;return this},copy:function(c){this.array=new c.array.constructor(c.array);this.count=c.count;this.stride=c.stride;this.dynamic=c.dynamic;return this},copyAt:function(c,a,b){c*=this.stride;b*=a.stride;for(var g=0,d=this.stride;g<d;g++)this.array[c+g]=a.array[b+g];return this},set:function(c,a){void 0===a&&(a=0);this.array.set(c,a);return this},clone:function(){return(new this.constructor).copy(this)},onUpload:function(c){this.onUploadCallback=c;return this}});Object.defineProperties(be.prototype,{count:{get:function(){return this.data.count}},array:{get:function(){return this.data.array}}});Object.assign(be.prototype,{isInterleavedBufferAttribute:!0,setX:function(c,a){this.data.array[c*this.data.stride+this.offset]=a;return this},setY:function(c,a){this.data.array[c*this.data.stride+this.offset+1]=a;return this},setZ:function(c,a){this.data.array[c*this.data.stride+this.offset+2]=a;return this},setW:function(c,a){this.data.array[c*this.data.stride+this.offset+3]=a;return this},getX:function(c){return this.data.array[c*this.data.stride+this.offset]},getY:function(c){return this.data.array[c*this.data.stride+this.offset+1]},getZ:function(c){return this.data.array[c*this.data.stride+this.offset+2]},getW:function(c){return this.data.array[c*this.data.stride+this.offset+3]},setXY:function(c,a,b){c=c*this.data.stride+this.offset;this.data.array[c+0]=a;this.data.array[c+1]=b;return this},setXYZ:function(c,a,b,d){c=c*this.data.stride+this.offset;this.data.array[c+0]=a;this.data.array[c+1]=b;this.data.array[c+2]=d;return this},setXYZW:function(c,a,b,d,e){c=c*this.data.stride+this.offset;this.data.array[c+0]=a;this.data.array[c+1]=b;this.data.array[c+2]=d;this.data.array[c+3]=e;return this}});Uc.prototype=Object.create(S.prototype);Uc.prototype.constructor=Uc;Uc.prototype.isSpriteMaterial=!0;Uc.prototype.copy=function(c){S.prototype.copy.call(this,c);this.color.copy(c.color);this.map=c.map;this.rotation=c.rotation;this.sizeAttenuation=c.sizeAttenuation;return this};var Oe;yd.prototype=Object.assign(Object.create(F.prototype),{constructor:yd,isSprite:!0,raycast:function(){function c(c,a,g,b,d,n){k.subVectors(c,g).addScalar(.5).multiply(b);void 0!==d?(l.x=n*k.x-d*k.y,l.y=d*k.x+n*k.y):l.copy(k);c.copy(a);c.x+=l.x;c.y+=l.y;c.applyMatrix4(p)}var a=new h,b=new h,f=new h,k=new d,l=new d,p=new e,m=new h,z=new h,u=new h,v=new d,q=new d,r=new d;return function(g,n){b.setFromMatrixScale(this.matrixWorld);p.getInverse(this.modelViewMatrix).premultiply(this.matrixWorld);f.setFromMatrixPosition(this.modelViewMatrix);var e=this.material.rotation,h,k;0!==e&&(k=Math.cos(e),h=Math.sin(e));e=this.center;c(m.set(-.5,-.5,0),f,e,b,h,k);c(z.set(.5,-.5,0),f,e,b,h,k);c(u.set(.5,.5,0),f,e,b,h,k);v.set(0,0);q.set(1,0);r.set(1,1);var t=g.ray.intersectTriangle(m,z,u,!1,a);if(null===t&&(c(z.set(-.5,.5,0),f,e,b,h,k),q.set(0,1),t=g.ray.intersectTriangle(m,u,z,!1,a),null===t))return;h=g.ray.origin.distanceTo(a);h<g.near||h>g.far||n.push({distance:h,point:a.clone(),uv:ka.getUV(a,m,z,u,v,q,r,new d),face:null,object:this})}}(),clone:function(){return(new this.constructor(this.material)).copy(this)},copy:function(c){F.prototype.copy.call(this,c);void 0!==c.center&&this.center.copy(c.center);return this}});ce.prototype=Object.assign(Object.create(F.prototype),{constructor:ce,copy:function(c){F.prototype.copy.call(this,c,!1);c=c.levels;for(var a=0,b=c.length;a<b;a++){var d=c[a];this.addLevel(d.object.clone(),d.distance)}return this},addLevel:function(c,a){void 0===a&&(a=0);a=Math.abs(a);for(var g=this.levels,b=0;b<g.length&&!(a<g[b].distance);b++);g.splice(b,0,{distance:a,object:c});this.add(c)},getObjectForDistance:function(c){for(var a=this.levels,b=1,d=a.length;b<d&&!(c<a[b].distance);b++);return a[b-1].object},raycast:function(){var c=new h;return function(a,b){c.setFromMatrixPosition(this.matrixWorld);var g=a.ray.origin.distanceTo(c);this.getObjectForDistance(g).raycast(a,b)}}(),update:function(){var c=new h,a=new h;return function(g){var b=this.levels;if(1<b.length){c.setFromMatrixPosition(g.matrixWorld);a.setFromMatrixPosition(this.matrixWorld);g=c.distanceTo(a);b[0].object.visible=!0;for(var d=1,n=b.length;d<n;d++)if(g>=b[d].distance)b[d-1].object.visible=!1,b[d].object.visible=!0;else break;for(;d<n;d++)b[d].object.visible=!1}}}(),toJSON:function(c){c=F.prototype.toJSON.call(this,c);c.object.levels=[];for(var a=this.levels,b=0,d=a.length;b<d;b++){var e=a[b];c.object.levels.push({object:e.object.uuid,distance:e.distance})}return c}});Object.assign(Fc.prototype,{calculateInverses:function(){this.boneInverses=[];for(var c=0,a=this.bones.length;c<a;c++){var b=new e;this.bones[c]&&b.getInverse(this.bones[c].matrixWorld);this.boneInverses.push(b)}},pose:function(){var c,a,b;a=0;for(b=this.bones.length;a<b;a++)(c=this.bones[a])&&c.matrixWorld.getInverse(this.boneInverses[a]);a=0;for(b=this.bones.length;a<b;a++)if(c=this.bones[a])c.parent&&c.parent.isBone?(c.matrix.getInverse(c.parent.matrixWorld),c.matrix.multiply(c.matrixWorld)):c.matrix.copy(c.matrixWorld),c.matrix.decompose(c.position,c.quaternion,c.scale)},update:function(){var c=new e,a=new e;return function(){for(var g=this.bones,b=this.boneInverses,d=this.boneMatrices,e=this.boneTexture,f=0,h=g.length;f<h;f++)c.multiplyMatrices(g[f]?g[f].matrixWorld:a,b[f]),c.toArray(d,16*f);void 0!==e&&(e.needsUpdate=!0)}}(),clone:function(){return new Fc(this.bones,this.boneInverses)},getBoneByName:function(c){for(var a=0,b=this.bones.length;a<b;a++){var d=this.bones[a];if(d.name===c)return d}}});ac.prototype=Object.assign(Object.create(F.prototype),{constructor:ac,isBone:!0});Vc.prototype=Object.assign(Object.create(na.prototype),{constructor:Vc,isSkinnedMesh:!0,initBones:function(){var c=[],a,b,d,e;if(this.geometry&&void 0!==this.geometry.bones){d=0;for(e=this.geometry.bones.length;d<e;d++)b=this.geometry.bones[d],a=new ac,c.push(a),a.name=b.name,a.position.fromArray(b.pos),a.quaternion.fromArray(b.rotq),void 0!==b.scl&&a.scale.fromArray(b.scl);d=0;for(e=this.geometry.bones.length;d<e;d++)b=this.geometry.bones[d],-1!==b.parent&&null!==b.parent&&void 0!==c[b.parent]?c[b.parent].add(c[d]):this.add(c[d])}this.uld(!0);return c},bind:function(c,a){this.skeleton=c;void 0===a&&(this.uld(!0),this.skeleton.calculateInverses(),a=this.matrixWorld);this.bindMatrix.copy(a);this.bindMatrixInverse.getInverse(a)},pose:function(){this.skeleton.pose()},normalizeSkinWeights:function(){var c,a;if(this.geometry&&this.geometry.isGeometry)for(a=0;a<this.geometry.skinWeights.length;a++){var b=this.geometry.skinWeights[a];c=1/b.manhattanLength();Infinity!==c?b.multiplyScalar(c):b.set(1,0,0,0)}else if(this.geometry&&this.geometry.isBufferGeometry){var b=new r,d=this.geometry.attributes.skinWeight;for(a=0;a<d.count;a++)b.x=d.getX(a),b.y=d.getY(a),b.z=d.getZ(a),b.w=d.getW(a),c=1/b.manhattanLength(),Infinity!==c?b.multiplyScalar(c):b.set(1,0,0,0),d.setXYZW(a,b.x,b.y,b.z,b.w)}},uld:function(c){na.prototype.uld.call(this,c);"attached"===this.bindMode?this.bindMatrixInverse.getInverse(this.matrixWorld):"detached"===this.bindMode?this.bindMatrixInverse.getInverse(this.bindMatrix):console.warn("GLE.SkinnedMesh: Unrecognized bindMode: "+this.bindMode)},clone:function(){return(new this.constructor(this.geometry,this.material)).copy(this)}});Da.prototype=Object.create(S.prototype);Da.prototype.constructor=Da;Da.prototype.isLineBasicMaterial=!0;Da.prototype.copy=function(c){S.prototype.copy.call(this,c);this.color.copy(c.color);this.linewidth=c.linewidth;this.linecap=c.linecap;this.linejoin=c.linejoin;return this};Pb.prototype=Object.assign(Object.create(F.prototype),{constructor:Pb,isLine:!0,computeLineDistances:function(){var c=new h,a=new h;return function(){var g=this.geometry;if(g.isBufferGeometry)if(null===g.index){for(var b=g.attributes.position,d=[0],e=1,f=b.count;e<f;e++)c.fromBufferAttribute(b,e-1),a.fromBufferAttribute(b,e),d[e]=d[e-1],d[e]+=c.distanceTo(a);g.addAttribute("lineDistance",new K(d,1))}else console.warn("GLE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");else if(g.isGeometry)for(b=g.vertices,d=g.lineDistances,d[0]=0,e=1,f=b.length;e<f;e++)d[e]=d[e-1],d[e]+=b[e-1].distanceTo(b[e]);return this}}(),raycast:function(){var c=new e,a=new ja,b=new w;return function(g,d){var e=g.linePrecision,n=this.geometry,f=this.matrixWorld;null===n.boundingSphere&&n.computeBoundingSphere();b.copy(n.boundingSphere);b.applyMatrix4(f);b.radius+=e;if(!1!==g.ray.intersectsSphere(b)){c.getInverse(f);a.copy(g.ray).applyMatrix4(c);var e=e/((this.scale.x+this.scale.y+this.scale.z)/3),e=e*e,k=new h,t=new h,f=new h,l=new h,p=this&&this.isLineSegments?2:1;if(n.isBufferGeometry){var m=n.index,y=n.attributes.position.array;if(null!==m)for(var m=m.array,n=0,z=m.length-1;n<z;n+=p){var u=m[n+1];k.fromArray(y,3*m[n]);t.fromArray(y,3*u);u=a.distanceSqToSegment(k,t,l,f);u>e||(l.applyMatrix4(this.matrixWorld),u=g.ray.origin.distanceTo(l),u<g.near||u>g.far||d.push({distance:u,point:f.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this}))}else for(n=0,z=y.length/3-1;n<z;n+=p)k.fromArray(y,3*n),t.fromArray(y,3*n+3),u=a.distanceSqToSegment(k,t,l,f),u>e||(l.applyMatrix4(this.matrixWorld),u=g.ray.origin.distanceTo(l),u<g.near||u>g.far||d.push({distance:u,point:f.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this}))}else if(n.isGeometry)for(k=n.vertices,t=k.length,n=0;n<t-1;n+=p)u=a.distanceSqToSegment(k[n],k[n+1],l,f),u>e||(l.applyMatrix4(this.matrixWorld),u=g.ray.origin.distanceTo(l),u<g.near||u>g.far||d.push({distance:u,point:f.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this}))}}}(),clone:function(){return(new this.constructor(this.geometry,this.material)).copy(this)}});Ha.prototype=Object.assign(Object.create(Pb.prototype),{constructor:Ha,isLineSegments:!0,computeLineDistances:function(){var c=new h,a=new h;return function(){var g=this.geometry;if(g.isBufferGeometry)if(null===g.index){for(var b=g.attributes.position,d=[],e=0,f=b.count;e<f;e+=2)c.fromBufferAttribute(b,e),a.fromBufferAttribute(b,e+1),d[e]=0===e?0:d[e-1],d[e+1]=d[e]+c.distanceTo(a);g.addAttribute("lineDistance",new K(d,1))}else console.warn("GLE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");else if(g.isGeometry)for(b=g.vertices,d=g.lineDistances,e=0,f=b.length;e<f;e+=2)c.copy(b[e]),a.copy(b[e+1]),d[e]=0===e?0:d[e-1],d[e+1]=d[e]+c.distanceTo(a);return this}}()});Cf.prototype=Object.assign(Object.create(Pb.prototype),{constructor:Cf,isLineLoop:!0});vc.prototype=Object.create(S.prototype);vc.prototype.constructor=vc;vc.prototype.isPointsMaterial=!0;vc.prototype.copy=function(c){S.prototype.copy.call(this,c);this.color.copy(c.color);this.map=c.map;this.size=c.size;this.sizeAttenuation=c.sizeAttenuation;this.morphTargets=c.morphTargets;return this};zd.prototype=Object.assign(Object.create(F.prototype),{constructor:zd,isPoints:!0,raycast:function(){var c=new e,a=new ja,b=new w;return function(g,d){function e(c,b){var e=a.distanceSqToPoint(c);if(e<l){a.closestPointToPoint(c,p);p.applyMatrix4(k);var f=g.ray.origin.distanceTo(p);f<g.near||f>g.far||d.push({distance:f,distanceToRay:Math.sqrt(e),point:p.clone(),index:b,face:null,object:n})}}var n=this,f=this.geometry,k=this.matrixWorld,t=g.params.Points.threshold;null===f.boundingSphere&&f.computeBoundingSphere();b.copy(f.boundingSphere);b.applyMatrix4(k);b.radius+=t;if(!1!==g.ray.intersectsSphere(b)){c.getInverse(k);a.copy(g.ray).applyMatrix4(c);var t=t/((this.scale.x+this.scale.y+this.scale.z)/3),l=t*t,t=new h,p=new h;if(f.isBufferGeometry){var m=f.index,f=f.attributes.position.array;if(null!==m)for(var y=m.array,m=0,z=y.length;m<z;m++){var u=y[m];t.fromArray(f,3*u);e(t,u)}else for(m=0,y=f.length/3;m<y;m++)t.fromArray(f,3*m),e(t,m)}else for(t=f.vertices,m=0,y=t.length;m<y;m++)e(t[m],m)}}}(),clone:function(){return(new this.constructor(this.geometry,this.material)).copy(this)}});qg.prototype=Object.assign(Object.create(m.prototype),{constructor:qg,isVideoTexture:!0,update:function(){var c=this.image;c.readyState>=c.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}});de.prototype=Object.create(m.prototype);de.prototype.constructor=de;de.prototype.isCompressedTexture=!0;Pe.prototype=Object.create(m.prototype);Pe.prototype.constructor=Pe;Pe.prototype.isCanvasTexture=!0;hd.prototype=Object.create(m.prototype);hd.prototype.constructor=hd;hd.prototype.isDepthTexture=!0;ee.prototype=Object.create(R.prototype);ee.prototype.constructor=ee;Df.prototype=Object.create(L.prototype);Df.prototype.constructor=Df;id.prototype=Object.create(R.prototype);id.prototype.constructor=id;jd.prototype=Object.create(L.prototype);jd.prototype.constructor=jd;bc.prototype=Object.create(R.prototype);bc.prototype.constructor=bc;Ef.prototype=Object.create(L.prototype);Ef.prototype.constructor=Ef;Ad.prototype=Object.create(bc.prototype);Ad.prototype.constructor=Ad;fe.prototype=Object.create(L.prototype);fe.prototype.constructor=fe;kd.prototype=Object.create(bc.prototype);kd.prototype.constructor=kd;ge.prototype=Object.create(L.prototype);ge.prototype.constructor=ge;Bd.prototype=Object.create(bc.prototype);Bd.prototype.constructor=Bd;wc.prototype=Object.create(L.prototype);wc.prototype.constructor=wc;Qe.prototype=Object.create(bc.prototype);Qe.prototype.constructor=Qe;Ff.prototype=Object.create(L.prototype);Ff.prototype.constructor=Ff;Re.prototype=Object.create(R.prototype);Re.prototype.constructor=Re;Gf.prototype=Object.create(L.prototype);Gf.prototype.constructor=Gf;Se.prototype=Object.create(R.prototype);Se.prototype.constructor=Se;Cd.prototype=Object.create(L.prototype);Cd.prototype.constructor=Cd;cc.prototype=Object.create(R.prototype);cc.prototype.constructor=cc;var Pi={triangulate:function(c,a,b){b=b||2;var g=a&&a.length,d=g?a[0]*b:c.length,e=Ai(c,0,d,b,!0),n=[];if(!e)return n;var f,h,k,l;if(g){var p=b,g=[],m,z,u;l=0;for(m=a.length;l<m;l++)z=a[l]*p,u=l<m-1?a[l+1]*p:c.length,z=Ai(c,z,u,p,!1),z===z.next&&(z.steiner=!0),g.push(Uj(z));g.sort(Di);for(l=0;l<g.length;l++){a=g[l];p=e;if(p=tg(a,p))a=Ci(p,a),If(a,a.next);e=If(e,e.next)}}if(c.length>80*b){f=k=c[0];h=g=c[1];for(p=b;p<d;p+=b)l=c[p],a=c[p+1],l<f&&(f=l),a<h&&(h=a),l>k&&(k=l),a>g&&(g=a);k=Math.max(k-f,g-h);k=0!==k?1/k:0}Te(e,n,b,f,h,k);return n}},dc={area:function(c){for(var a=c.length,b=0,d=a-1,e=0;e<a;d=e++)b+=c[d].x*c[e].y-c[e].x*c[d].y;return.5*b},isClockWise:function(c){return 0>dc.area(c)},triangulateShape:function(c,a){var g=[],b=[],d=[];Jf(c);Ei(g,c);var e=c.length;a.forEach(Jf);for(var f=0;f<a.length;f++)b.push(e),e+=a[f].length,Ei(g,a[f]);g=Pi.triangulate(g,b);for(f=0;f<g.length;f+=3)d.push(g.slice(f,f+3));return d}};ie.prototype=Object.create(L.prototype);ie.prototype.constructor=ie;ie.prototype.toJSON=function(){var c=L.prototype.toJSON.call(this);return Kf(this.parameters.shapes,this.parameters.options,c)};Wc.prototype=Object.create(R.prototype);Wc.prototype.constructor=Wc;Wc.prototype.toJSON=function(){var c=R.prototype.toJSON.call(this);return Kf(this.parameters.shapes,this.parameters.options,c)};var Fi={generateTopUV:function(c,a,b,e,f){c=a[3*e];e=a[3*e+1];var g=a[3*f];f=a[3*f+1];return[new d(a[3*b],a[3*b+1]),new d(c,e),new d(g,f)]},generateSideWallUV:function(c,a,b,e,f,h){c=a[3*b];var g=a[3*b+1];b=a[3*b+2];var n=a[3*e],k=a[3*e+1];e=a[3*e+2];var t=a[3*f],l=a[3*f+1];f=a[3*f+2];var p=a[3*h],m=a[3*h+1];a=a[3*h+2];return.01>Math.abs(g-k)?[new d(c,1-b),new d(n,1-e),new d(t,1-f),new d(p,1-a)]:[new d(g,1-b),new d(k,1-e),new d(l,1-f),new d(m,1-a)]}};Ue.prototype=Object.create(L.prototype);Ue.prototype.constructor=Ue;Ve.prototype=Object.create(Wc.prototype);Ve.prototype.constructor=Ve;je.prototype=Object.create(L.prototype);je.prototype.constructor=je;ab.prototype=Object.create(R.prototype);ab.prototype.constructor=ab;xc.prototype=Object.create(L.prototype);xc.prototype.constructor=xc;ke.prototype=Object.create(R.prototype);ke.prototype.constructor=ke;ub.prototype=Object.create(L.prototype);ub.prototype.constructor=ub;We.prototype=Object.create(R.prototype);We.prototype.constructor=We;le.prototype=Object.create(L.prototype);le.prototype.constructor=le;le.prototype.toJSON=function(){var c=L.prototype.toJSON.call(this);return vg(this.parameters.shapes,c)};Xc.prototype=Object.create(R.prototype);Xc.prototype.constructor=Xc;Xc.prototype.toJSON=function(){var c=R.prototype.toJSON.call(this);return vg(this.parameters.shapes,c)};me.prototype=Object.create(R.prototype);me.prototype.constructor=me;ne.prototype=Object.create(L.prototype);ne.prototype.constructor=ne;ld.prototype=Object.create(R.prototype);ld.prototype.constructor=ld;Lf.prototype=Object.create(ne.prototype);Lf.prototype.constructor=Lf;Xe.prototype=Object.create(ld.prototype);Xe.prototype.constructor=Xe;Mf.prototype=Object.create(L.prototype);Mf.prototype.constructor=Mf;Ye.prototype=Object.create(R.prototype);Ye.prototype.constructor=Ye;var Fb=Object.freeze({WireframeGeometry:ee,ParametricGeometry:Df,ParametricBufferGeometry:id,TetrahedronGeometry:Ef,TetrahedronBufferGeometry:Ad,OctahedronGeometry:fe,OctahedronBufferGeometry:kd,IcosahedronGeometry:ge,IcosahedronBufferGeometry:Bd,DodecahedronGeometry:wc,DodecahedronBufferGeometry:Qe,PolyhedronGeometry:jd,PolyhedronBufferGeometry:bc,TubeGeometry:Ff,TubeBufferGeometry:Re,TorusKnotGeometry:Gf,TorusKnotBufferGeometry:Se,TorusGeometry:Cd,TorusBufferGeometry:cc,TextGeometry:Ue,TextBufferGeometry:Ve,SphereGeometry:je,SphereBufferGeometry:ab,RingGeometry:xc,RingBufferGeometry:ke,PlaneGeometry:da,PlaneBufferGeometry:Y,LatheGeometry:ub,LatheBufferGeometry:We,ShapeGeometry:le,ShapeBufferGeometry:Xc,ExtrudeGeometry:ie,ExtrudeBufferGeometry:Wc,EdgesGeometry:me,ConeGeometry:Lf,ConeBufferGeometry:Xe,CylinderGeometry:ne,CylinderBufferGeometry:ld,CircleGeometry:Mf,CircleBufferGeometry:Ye,BoxGeometry:Z,By:ta});Yc.prototype=Object.create(S.prototype);Yc.prototype.constructor=Yc;Yc.prototype.isShadowMaterial=!0;Yc.prototype.copy=function(c){S.prototype.copy.call(this,c);this.color.copy(c.color);return this};Hc.prototype=Object.create(ga.prototype);Hc.prototype.constructor=Hc;Hc.prototype.isRawShaderMaterial=!0;ec.prototype=Object.create(S.prototype);ec.prototype.constructor=ec;ec.prototype.isMeshStandardMaterial=!0;ec.prototype.copy=function(c){S.prototype.copy.call(this,c);this.defines={STANDARD:""};this.color.copy(c.color);this.roughness=c.roughness;this.metalness=c.metalness;this.map=c.map;this.lightMap=c.lightMap;this.lightMapIntensity=c.lightMapIntensity;this.aoMap=c.aoMap;this.aoMapIntensity=c.aoMapIntensity;this.emissive.copy(c.emissive);this.emissiveMap=c.emissiveMap;this.emissiveIntensity=c.emissiveIntensity;this.bumpMap=c.bumpMap;this.bumpScale=c.bumpScale;this.normalMap=c.normalMap;this.normalMapType=c.normalMapType;this.normalScale.copy(c.normalScale);this.displacementMap=c.displacementMap;this.displacementScale=c.displacementScale;this.displacementBias=c.displacementBias;this.roughnessMap=c.roughnessMap;this.metalnessMap=c.metalnessMap;this.alphaMap=c.alphaMap;this.envMap=c.envMap;this.envMapIntensity=c.envMapIntensity;this.refractionRatio=c.refractionRatio;this.wireframe=c.wireframe;this.wireframeLinewidth=c.wireframeLinewidth;this.wireframeLinecap=c.wireframeLinecap;this.wireframeLinejoin=c.wireframeLinejoin;this.skinning=c.skinning;this.morphTargets=c.morphTargets;this.morphNormals=c.morphNormals;return this};md.prototype=Object.create(ec.prototype);md.prototype.constructor=md;md.prototype.isMeshPhysicalMaterial=!0;md.prototype.copy=function(c){ec.prototype.copy.call(this,c);this.defines={PHYSICAL:""};this.reflectivity=c.reflectivity;this.clearCoat=c.clearCoat;this.clearCoatRoughness=c.clearCoatRoughness;return this};yc.prototype=Object.create(S.prototype);yc.prototype.constructor=yc;yc.prototype.isMeshPhongMaterial=!0;yc.prototype.copy=function(c){S.prototype.copy.call(this,c);this.color.copy(c.color);this.specular.copy(c.specular);this.shininess=c.shininess;this.map=c.map;this.lightMap=c.lightMap;this.lightMapIntensity=c.lightMapIntensity;this.aoMap=c.aoMap;this.aoMapIntensity=c.aoMapIntensity;this.emissive.copy(c.emissive);this.emissiveMap=c.emissiveMap;this.emissiveIntensity=c.emissiveIntensity;this.bumpMap=c.bumpMap;this.bumpScale=c.bumpScale;this.normalMap=c.normalMap;this.normalMapType=c.normalMapType;this.normalScale.copy(c.normalScale);this.displacementMap=c.displacementMap;this.displacementScale=c.displacementScale;this.displacementBias=c.displacementBias;this.specularMap=c.specularMap;this.alphaMap=c.alphaMap;this.envMap=c.envMap;this.combine=c.combine;this.reflectivity=c.reflectivity;this.refractionRatio=c.refractionRatio;this.wireframe=c.wireframe;this.wireframeLinewidth=c.wireframeLinewidth;this.wireframeLinecap=c.wireframeLinecap;this.wireframeLinejoin=c.wireframeLinejoin;this.skinning=c.skinning;this.morphTargets=c.morphTargets;this.morphNormals=c.morphNormals;return this};Ed.prototype=Object.create(yc.prototype);Ed.prototype.constructor=Ed;Ed.prototype.isMeshToonMaterial=!0;Ed.prototype.copy=function(c){yc.prototype.copy.call(this,c);this.gradientMap=c.gradientMap;return this};Fd.prototype=Object.create(S.prototype);Fd.prototype.constructor=Fd;Fd.prototype.isMeshNormalMaterial=!0;Fd.prototype.copy=function(c){S.prototype.copy.call(this,c);this.bumpMap=c.bumpMap;this.bumpScale=c.bumpScale;this.normalMap=c.normalMap;this.normalMapType=c.normalMapType;this.normalScale.copy(c.normalScale);this.displacementMap=c.displacementMap;this.displacementScale=c.displacementScale;this.displacementBias=c.displacementBias;this.wireframe=c.wireframe;this.wireframeLinewidth=c.wireframeLinewidth;this.skinning=c.skinning;this.morphTargets=c.morphTargets;this.morphNormals=c.morphNormals;return this};Gd.prototype=Object.create(S.prototype);Gd.prototype.constructor=Gd;Gd.prototype.isMeshLambertMaterial=!0;Gd.prototype.copy=function(c){S.prototype.copy.call(this,c);this.color.copy(c.color);this.map=c.map;this.lightMap=c.lightMap;this.lightMapIntensity=c.lightMapIntensity;this.aoMap=c.aoMap;this.aoMapIntensity=c.aoMapIntensity;this.emissive.copy(c.emissive);this.emissiveMap=c.emissiveMap;this.emissiveIntensity=c.emissiveIntensity;this.specularMap=c.specularMap;this.alphaMap=c.alphaMap;this.envMap=c.envMap;this.combine=c.combine;this.reflectivity=c.reflectivity;this.refractionRatio=c.refractionRatio;this.wireframe=c.wireframe;this.wireframeLinewidth=c.wireframeLinewidth;this.wireframeLinecap=c.wireframeLinecap;this.wireframeLinejoin=c.wireframeLinejoin;this.skinning=c.skinning;this.morphTargets=c.morphTargets;this.morphNormals=c.morphNormals;return this};Hd.prototype=Object.create(S.prototype);Hd.prototype.constructor=Hd;Hd.prototype.isMeshMatcapMaterial=!0;Hd.prototype.copy=function(c){S.prototype.copy.call(this,c);this.defines={MATCAP:""};this.color.copy(c.color);this.map=this.matcap=c.map;this.bumpMap=c.bumpMap;this.bumpScale=c.bumpScale;this.normalMap=c.normalMap;this.normalMapType=c.normalMapType;this.normalScale.copy(c.normalScale);this.displacementMap=c.displacementMap;this.displacementScale=c.displacementScale;this.displacementBias=c.displacementBias;this.alphaMap=c.alphaMap;this.skinning=c.skinning;this.morphTargets=c.morphTargets;this.morphNormals=c.morphNormals;return this};Id.prototype=Object.create(Da.prototype);Id.prototype.constructor=Id;Id.prototype.isLineDashedMaterial=!0;Id.prototype.copy=function(c){Da.prototype.copy.call(this,c);this.scale=c.scale;this.dashSize=c.dashSize;this.gapSize=c.gapSize;return this};var Qi=Object.freeze({ShadowMaterial:Yc,SpriteMaterial:Uc,RawShaderMaterial:Hc,ShaderMaterial:ga,PointsMaterial:vc,MeshPhysicalMaterial:md,MeshStandardMaterial:ec,MeshPhongMaterial:yc,MeshToonMaterial:Ed,MeshNormalMaterial:Fd,MeshLambertMaterial:Gd,MeshDepthMaterial:Bb,MeshDistanceMaterial:Ib,Mal:ha,MeshMatcapMaterial:Hd,LineDashedMaterial:Id,LineBasicMaterial:Da,Material:S}),sd={enabled:!1,files:{},add:function(c,a){!1!==this.enabled&&(this.files[c]=a)},get:function(c){if(!1!==this.enabled)return this.files[c]},remove:function(c){delete this.files[c]},clear:function(){this.files={}}},yb=new wg,Bc={};Object.assign(ob.prototype,{load:function(c,a,b,d){void 0===c&&(c="");void 0!==this.path&&(c=this.path+c);c=this.manager.resolveURL(c);var g=this,e=sd.get(c);if(void 0!==e)return g.manager.itemStart(c),setTimeout(function(){a&&a(e);g.manager.itemEnd(c)},0),e;if(void 0!==Bc[c])Bc[c].push({onLoad:a,onProgress:b,onError:d});else{var n=c.match(/^data:(.*?)(;base64)?,(.*)$/);if(n){b=n[1];var f=!!n[2],n=n[3],n=window.decodeURIComponent(n);f&&(n=window.atob(n));try{var h,k=(this.responseType||"").toLowerCase();switch(k){case "arraybuffer":case "blob":for(var t=new Uint8Array(n.length),f=0;f<n.length;f++)t[f]=n.charCodeAt(f);h="blob"===k?new Blob([t.buffer],{type:b}):t.buffer;break;case "document":h=(new DOMParser).parseFromString(n,b);break;case "json":h=JSON.parse(n);break;default:h=n}window.setTimeout(function(){a&&a(h);g.manager.itemEnd(c)},0)}catch(lh){window.setTimeout(function(){d&&d(lh);g.manager.itemEnd(c);g.manager.itemError(c)},0)}}else{Bc[c]=[];Bc[c].push({onLoad:a,onProgress:b,onError:d});var l=new XMLHttpRequest;l.open("GET",c,!0);l.addEventListener("load",function(a){var b=this.response;sd.add(c,b);var d=Bc[c];delete Bc[c];if(200===this.status||0===this.status){0===this.status&&console.warn("GLE.FileLoader: HTTP Status 0 received.");for(var e=0,n=d.length;e<n;e++){var f=d[e];if(f.onLoad)f.onLoad(b)}g.manager.itemEnd(c)}else{e=0;for(n=d.length;e<n;e++)if(f=d[e],f.onError)f.onError(a);g.manager.itemEnd(c);g.manager.itemError(c)}},!1);l.addEventListener("progress",function(a){for(var g=Bc[c],b=0,d=g.length;b<d;b++){var e=g[b];if(e.onProgress)e.onProgress(a)}},!1);l.addEventListener("error",function(a){var b=Bc[c];delete Bc[c];for(var d=0,e=b.length;d<e;d++){var n=b[d];if(n.onError)n.onError(a)}g.manager.itemEnd(c);g.manager.itemError(c)},!1);l.addEventListener("abort",function(a){var b=Bc[c];delete Bc[c];for(var d=0,e=b.length;d<e;d++){var n=b[d];if(n.onError)n.onError(a)}g.manager.itemEnd(c);g.manager.itemError(c)},!1);void 0!==this.responseType&&(l.responseType=this.responseType);void 0!==this.withCredentials&&(l.withCredentials=this.withCredentials);l.overrideMimeType&&l.overrideMimeType(void 0!==this.mimeType?this.mimeType:"text/plain");for(f in this.requestHeader)l.setRequestHeader(f,this.requestHeader[f]);l.send(null)}g.manager.itemStart(c);return l}},setPath:function(c){this.path=c;return this},setResponseType:function(c){this.responseType=c;return this},setWithCredentials:function(c){this.withCredentials=c;return this},setMimeType:function(c){this.mimeType=c;return this},setRequestHeader:function(c){this.requestHeader=c;return this}});Object.assign(vh.prototype,{load:function(c,a,b,d){function g(g){h.load(c[g],function(c){c=e._parser(c,!0);n[g]={width:c.width,height:c.height,format:c.format,mipmaps:c.mipmaps};k+=1;6===k&&(1===c.mipmapCount&&(f.minFilter=1006),f.format=c.format,f.needsUpdate=!0,a&&a(f))},b,d)}var e=this,n=[],f=new de;f.image=n;var h=new ob(this.manager);h.setPath(this.path);h.setResponseType("arraybuffer");if(Array.isArray(c))for(var k=0,l=0,t=c.length;l<t;++l)g(l);else h.load(c,function(c){c=e._parser(c,!0);if(c.isCubemap)for(var g=c.mipmaps.length/c.mipmapCount,b=0;b<g;b++){n[b]={mipmaps:[]};for(var d=0;d<c.mipmapCount;d++)n[b].mipmaps.push(c.mipmaps[b*c.mipmapCount+d]),n[b].format=c.format,n[b].width=c.width,n[b].height=c.height}else f.image.width=c.width,f.image.height=c.height,f.mipmaps=c.mipmaps;1===c.mipmapCount&&(f.minFilter=1006);f.format=c.format;f.needsUpdate=!0;a&&a(f)},b,d);return f},setPath:function(c){this.path=c;return this}});Object.assign(xg.prototype,{load:function(c,a,b,d){var g=this,e=new G,n=new ob(this.manager);n.setResponseType("arraybuffer");n.load(c,function(c){if(c=g._parser(c))void 0!==c.image?e.image=c.image:void 0!==c.data&&(e.image.width=c.width,e.image.height=c.height,e.image.data=c.data),e.wrapS=void 0!==c.wrapS?c.wrapS:1001,e.wrapT=void 0!==c.wrapT?c.wrapT:1001,e.magFilter=void 0!==c.magFilter?c.magFilter:1006,e.minFilter=void 0!==c.minFilter?c.minFilter:1008,e.anisotropy=void 0!==c.anisotropy?c.anisotropy:1,void 0!==c.format&&(e.format=c.format),void 0!==c.type&&(e.type=c.type),void 0!==c.mipmaps&&(e.mipmaps=c.mipmaps),1===c.mipmapCount&&(e.minFilter=1006),e.needsUpdate=!0,a&&a(e,c)},b,d);return e}});Object.assign(vb.prototype,{crossOrigin:"anonymous",load:function(c,a,b,d){function g(){h.removeEventListener("load",g,!1);h.removeEventListener("error",e,!1);sd.add(c,this);a&&a(this);n.manager.itemEnd(c)}function e(a){h.removeEventListener("load",g,!1);h.removeEventListener("error",e,!1);d&&d(a);n.manager.itemEnd(c);n.manager.itemError(c)}void 0===c&&(c="");void 0!==this.path&&(c=this.path+c);c=this.manager.resolveURL(c);var n=this,f=sd.get(c);if(void 0!==f)return n.manager.itemStart(c),setTimeout(function(){a&&a(f);n.manager.itemEnd(c)},0),f;var h=document.createElementNS("http://www.w3.org/1999/xhtml","img");h.addEventListener("load",g,!1);h.addEventListener("error",e,!1);"data:"!==c.substr(0,5)&&void 0!==this.crossOrigin&&(h.crossOrigin=this.crossOrigin);n.manager.itemStart(c);h.src=c;return h},setCrossOrigin:function(c){this.crossOrigin=c;return this},setPath:function(c){this.path=c;return this}});Object.assign(yg.prototype,{crossOrigin:"anonymous",load:function(c,a,b,d){function g(g){n.load(c[g],function(c){e.images[g]=c;f++;6===f&&(e.needsUpdate=!0,a&&a(e))},void 0,d)}var e=new Ua,n=new vb(this.manager);n.setCrossOrigin(this.crossOrigin);n.setPath(this.path);var f=0;for(b=0;b<c.length;++b)g(b);return e},setCrossOrigin:function(c){this.crossOrigin=c;return this},setPath:function(c){this.path=c;return this}});Object.assign(Za.prototype,{crossOrigin:"anonymous",load:function(c,a,b,d){var g=new m,e=new vb(this.manager);e.setCrossOrigin(this.crossOrigin);e.setPath(this.path);e.load(c,function(b){g.image=b;b=0<c.search(/\.jpe?g$/i)||0===c.search(/^data\:image\/jpeg/);g.format=b?1022:1023;g.needsUpdate=!0;void 0!==a&&a(g)},b,d);return g},setCrossOrigin:function(c){this.crossOrigin=c;return this},setPath:function(c){this.path=c;return this}});Object.assign(ra.prototype,{getPoint:function(){console.warn("GLE.Curve: .getPoint() not implemented.");return null},getPointAt:function(c,a){var g=this.getUtoTmapping(c);return this.getPoint(g,a)},getPoints:function(c){void 0===c&&(c=5);for(var a=[],b=0;b<=c;b++)a.push(this.getPoint(b/c));return a},getSpacedPoints:function(c){void 0===c&&(c=5);for(var a=[],b=0;b<=c;b++)a.push(this.getPointAt(b/c));return a},getLength:function(){var c=this.getLengths();return c[c.length-1]},getLengths:function(c){void 0===c&&(c=this.arcLengthDivisions);if(this.cacheArcLengths&&this.cacheArcLengths.length===c+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;var a=[],b,d=this.getPoint(0),e,f=0;a.push(0);for(e=1;e<=c;e++)b=this.getPoint(e/c),f+=b.distanceTo(d),a.push(f),d=b;return this.cacheArcLengths=a},updateArcLengths:function(){this.needsUpdate=!0;this.getLengths()},getUtoTmapping:function(c,a){var g=this.getLengths(),b,d=g.length,e;e=a?a:c*g[d-1];for(var f=0,h=d-1,k;f<=h;)if(b=Math.floor(f+(h-f)/2),k=g[b]-e,0>k)f=b+1;else if(0<k)h=b-1;else{h=b;break}b=h;if(g[b]===e)return b/(d-1);f=g[b];return(b+(e-f)/(g[b+1]-f))/(d-1)},getTangent:function(c){var a=c-1E-4;c+=1E-4;0>a&&(a=0);1<c&&(c=1);a=this.getPoint(a);return this.getPoint(c).clone().sub(a).normalize()},getTangentAt:function(c){c=this.getUtoTmapping(c);return this.getTangent(c)},computeFrenetFrames:function(c,a){var g=new h,b=[],d=[],f=[],k=new h,l=new e,p,m;for(p=0;p<=c;p++)m=p/c,b[p]=this.getTangentAt(m),b[p].normalize();d[0]=new h;f[0]=new h;p=Number.MAX_VALUE;m=Math.abs(b[0].x);var z=Math.abs(b[0].y),u=Math.abs(b[0].z);m<=p&&(p=m,g.set(1,0,0));z<=p&&(p=z,g.set(0,1,0));u<=p&&g.set(0,0,1);k.crossVectors(b[0],g).normalize();d[0].crossVectors(b[0],k);f[0].crossVectors(b[0],d[0]);for(p=1;p<=c;p++)d[p]=d[p-1].clone(),f[p]=f[p-1].clone(),k.crossVectors(b[p-1],b[p]),k.length()>Number.EPSILON&&(k.normalize(),g=Math.acos(Aa.clamp(b[p-1].dot(b[p]),-1,1)),d[p].applyMatrix4(l.makeRotationAxis(k,g))),f[p].crossVectors(b[p],d[p]);if(!0===a)for(g=Math.acos(Aa.clamp(d[0].dot(d[c]),-1,1)),g/=c,0<b[0].dot(k.crossVectors(d[0],d[c]))&&(g=-g),p=1;p<=c;p++)d[p].applyMatrix4(l.makeRotationAxis(b[p],g*p)),f[p].crossVectors(b[p],d[p]);return{tangents:b,normals:d,binormals:f}},clone:function(){return(new this.constructor).copy(this)},copy:function(c){this.arcLengthDivisions=c.arcLengthDivisions;return this},toJSON:function(){var c={metadata:{version:4.5,type:"Curve",generator:"Curve.toJSON"}};c.arcLengthDivisions=this.arcLengthDivisions;c.type=this.type;return c},fromJSON:function(c){this.arcLengthDivisions=c.arcLengthDivisions;return this}});Rb.prototype=Object.create(ra.prototype);Rb.prototype.constructor=Rb;Rb.prototype.isEllipseCurve=!0;Rb.prototype.getPoint=function(c,a){for(var g=a||new d,b=2*Math.PI,e=this.aEndAngle-this.aStartAngle,f=Math.abs(e)<Number.EPSILON;0>e;)e+=b;for(;e>b;)e-=b;e<Number.EPSILON&&(e=f?0:b);!0!==this.aClockwise||f||(e=e===b?-b:e-b);var e=this.aStartAngle+c*e,b=this.aX+this.xRadius*Math.cos(e),h=this.aY+this.yRadius*Math.sin(e);if(0!==this.aRotation)var e=Math.cos(this.aRotation),f=Math.sin(this.aRotation),k=b-this.aX,h=h-this.aY,b=k*e-h*f+this.aX,h=k*f+h*e+this.aY;return g.set(b,h)};Rb.prototype.copy=function(c){ra.prototype.copy.call(this,c);this.aX=c.aX;this.aY=c.aY;this.xRadius=c.xRadius;this.yRadius=c.yRadius;this.aStartAngle=c.aStartAngle;this.aEndAngle=c.aEndAngle;this.aClockwise=c.aClockwise;this.aRotation=c.aRotation;return this};Rb.prototype.toJSON=function(){var c=ra.prototype.toJSON.call(this);c.aX=this.aX;c.aY=this.aY;c.xRadius=this.xRadius;c.yRadius=this.yRadius;c.aStartAngle=this.aStartAngle;c.aEndAngle=this.aEndAngle;c.aClockwise=this.aClockwise;c.aRotation=this.aRotation;return c};Rb.prototype.fromJSON=function(c){ra.prototype.fromJSON.call(this,c);this.aX=c.aX;this.aY=c.aY;this.xRadius=c.xRadius;this.yRadius=c.yRadius;this.aStartAngle=c.aStartAngle;this.aEndAngle=c.aEndAngle;this.aClockwise=c.aClockwise;this.aRotation=c.aRotation;return this};oe.prototype=Object.create(Rb.prototype);oe.prototype.constructor=oe;oe.prototype.isArcCurve=!0;var ag=new h,Og=new jc,Pg=new jc,kf=new jc;Jb.prototype=Object.create(ra.prototype);Jb.prototype.constructor=Jb;Jb.prototype.isCatmullRomCurve3=!0;Jb.prototype.getPoint=function(c,a){var g=a||new h,b=this.points,d=b.length,e=(d-(this.closed?0:1))*c,f=Math.floor(e),e=e-f;this.closed?f+=0<f?0:(Math.floor(Math.abs(f)/d)+1)*d:0===e&&f===d-1&&(f=d-2,e=1);var k,l,p;this.closed||0<f?k=b[(f-1)%d]:(ag.subVectors(b[0],b[1]).add(b[0]),k=ag);l=b[f%d];p=b[(f+1)%d];this.closed||f+2<d?b=b[(f+2)%d]:(ag.subVectors(b[d-1],b[d-2]).add(b[d-1]),b=ag);if("centripetal"===this.curveType||"chordal"===this.curveType){var m="chordal"===this.curveType?.5:.25,d=Math.pow(k.distanceToSquared(l),m),f=Math.pow(l.distanceToSquared(p),m),m=Math.pow(p.distanceToSquared(b),m);1E-4>f&&(f=1);1E-4>d&&(d=f);1E-4>m&&(m=f);Og.initNonuniformCatmullRom(k.x,l.x,p.x,b.x,d,f,m);Pg.initNonuniformCatmullRom(k.y,l.y,p.y,b.y,d,f,m);kf.initNonuniformCatmullRom(k.z,l.z,p.z,b.z,d,f,m)}else"catmullrom"===this.curveType&&(Og.initCatmullRom(k.x,l.x,p.x,b.x,this.tension),Pg.initCatmullRom(k.y,l.y,p.y,b.y,this.tension),kf.initCatmullRom(k.z,l.z,p.z,b.z,this.tension));g.set(Og.calc(e),Pg.calc(e),kf.calc(e));return g};Jb.prototype.copy=function(c){ra.prototype.copy.call(this,c);this.points=[];for(var a=0,b=c.points.length;a<b;a++)this.points.push(c.points[a].clone());this.closed=c.closed;this.curveType=c.curveType;this.tension=c.tension;return this};Jb.prototype.toJSON=function(){var c=ra.prototype.toJSON.call(this);c.points=[];for(var a=0,b=this.points.length;a<b;a++)c.points.push(this.points[a].toArray());c.closed=this.closed;c.curveType=this.curveType;c.tension=this.tension;return c};Jb.prototype.fromJSON=function(c){ra.prototype.fromJSON.call(this,c);this.points=[];for(var a=0,b=c.points.length;a<b;a++){var d=c.points[a];this.points.push((new h).fromArray(d))}this.closed=c.closed;this.curveType=c.curveType;this.tension=c.tension;return this};fc.prototype=Object.create(ra.prototype);fc.prototype.constructor=fc;fc.prototype.isCubicBezierCurve=!0;fc.prototype.getPoint=function(c,a){var g=a||new d,b=this.v0,e=this.v1,f=this.v2,h=this.v3;g.set(Ze(c,b.x,e.x,f.x,h.x),Ze(c,b.y,e.y,f.y,h.y));return g};fc.prototype.copy=function(c){ra.prototype.copy.call(this,c);this.v0.copy(c.v0);this.v1.copy(c.v1);this.v2.copy(c.v2);this.v3.copy(c.v3);return this};fc.prototype.toJSON=function(){var c=ra.prototype.toJSON.call(this);c.v0=this.v0.toArray();c.v1=this.v1.toArray();c.v2=this.v2.toArray();c.v3=this.v3.toArray();return c};fc.prototype.fromJSON=function(c){ra.prototype.fromJSON.call(this,c);this.v0.fromArray(c.v0);this.v1.fromArray(c.v1);this.v2.fromArray(c.v2);this.v3.fromArray(c.v3);return this};Kb.prototype=Object.create(ra.prototype);Kb.prototype.constructor=Kb;Kb.prototype.isCubicBezierCurve3=!0;Kb.prototype.getPoint=function(c,a){var g=a||new h,b=this.v0,d=this.v1,e=this.v2,f=this.v3;g.set(Ze(c,b.x,d.x,e.x,f.x),Ze(c,b.y,d.y,e.y,f.y),Ze(c,b.z,d.z,e.z,f.z));return g};Kb.prototype.copy=function(c){ra.prototype.copy.call(this,c);this.v0.copy(c.v0);this.v1.copy(c.v1);this.v2.copy(c.v2);this.v3.copy(c.v3);return this};Kb.prototype.toJSON=function(){var c=ra.prototype.toJSON.call(this);c.v0=this.v0.toArray();c.v1=this.v1.toArray();c.v2=this.v2.toArray();c.v3=this.v3.toArray();return c};Kb.prototype.fromJSON=function(c){ra.prototype.fromJSON.call(this,c);this.v0.fromArray(c.v0);this.v1.fromArray(c.v1);this.v2.fromArray(c.v2);this.v3.fromArray(c.v3);return this};Cb.prototype=Object.create(ra.prototype);Cb.prototype.constructor=Cb;Cb.prototype.isLineCurve=!0;Cb.prototype.getPoint=function(c,a){var g=a||new d;1===c?g.copy(this.v2):(g.copy(this.v2).sub(this.v1),g.multiplyScalar(c).add(this.v1));return g};Cb.prototype.getPointAt=function(c,a){return this.getPoint(c,a)};Cb.prototype.getTangent=function(){return this.v2.clone().sub(this.v1).normalize()};Cb.prototype.copy=function(c){ra.prototype.copy.call(this,c);this.v1.copy(c.v1);this.v2.copy(c.v2);return this};Cb.prototype.toJSON=function(){var c=ra.prototype.toJSON.call(this);c.v1=this.v1.toArray();c.v2=this.v2.toArray();return c};Cb.prototype.fromJSON=function(c){ra.prototype.fromJSON.call(this,c);this.v1.fromArray(c.v1);this.v2.fromArray(c.v2);return this};Lb.prototype=Object.create(ra.prototype);Lb.prototype.constructor=Lb;Lb.prototype.isLineCurve3=!0;Lb.prototype.getPoint=function(c,a){var g=a||new h;1===c?g.copy(this.v2):(g.copy(this.v2).sub(this.v1),g.multiplyScalar(c).add(this.v1));return g};Lb.prototype.getPointAt=function(c,a){return this.getPoint(c,a)};Lb.prototype.copy=function(c){ra.prototype.copy.call(this,c);this.v1.copy(c.v1);this.v2.copy(c.v2);return this};Lb.prototype.toJSON=function(){var c=ra.prototype.toJSON.call(this);c.v1=this.v1.toArray();c.v2=this.v2.toArray();return c};Lb.prototype.fromJSON=function(c){ra.prototype.fromJSON.call(this,c);this.v1.fromArray(c.v1);this.v2.fromArray(c.v2);return this};kc.prototype=Object.create(ra.prototype);kc.prototype.constructor=kc;kc.prototype.isQuadraticBezierCurve=!0;kc.prototype.getPoint=function(c,a){var g=a||new d,b=this.v0,e=this.v1,f=this.v2;g.set(Nf(c,b.x,e.x,f.x),Nf(c,b.y,e.y,f.y));return g};kc.prototype.copy=function(c){ra.prototype.copy.call(this,c);this.v0.copy(c.v0);this.v1.copy(c.v1);this.v2.copy(c.v2);return this};kc.prototype.toJSON=function(){var c=ra.prototype.toJSON.call(this);c.v0=this.v0.toArray();c.v1=this.v1.toArray();c.v2=this.v2.toArray();return c};kc.prototype.fromJSON=function(c){ra.prototype.fromJSON.call(this,c);this.v0.fromArray(c.v0);this.v1.fromArray(c.v1);this.v2.fromArray(c.v2);return this};lc.prototype=Object.create(ra.prototype);lc.prototype.constructor=lc;lc.prototype.isQuadraticBezierCurve3=!0;lc.prototype.getPoint=function(c,a){var g=a||new h,b=this.v0,d=this.v1,e=this.v2;g.set(Nf(c,b.x,d.x,e.x),Nf(c,b.y,d.y,e.y),Nf(c,b.z,d.z,e.z));return g};lc.prototype.copy=function(c){ra.prototype.copy.call(this,c);this.v0.copy(c.v0);this.v1.copy(c.v1);this.v2.copy(c.v2);return this};lc.prototype.toJSON=function(){var c=ra.prototype.toJSON.call(this);c.v0=this.v0.toArray();c.v1=this.v1.toArray();c.v2=this.v2.toArray();return c};lc.prototype.fromJSON=function(c){ra.prototype.fromJSON.call(this,c);this.v0.fromArray(c.v0);this.v1.fromArray(c.v1);this.v2.fromArray(c.v2);return this};gc.prototype=Object.create(ra.prototype);gc.prototype.constructor=gc;gc.prototype.isSplineCurve=!0;gc.prototype.getPoint=function(c,a){var g=a||new d,b=this.points,e=(b.length-1)*c,f=Math.floor(e),e=e-f,h=b[0===f?f:f-1],k=b[f],l=b[f>b.length-2?b.length-1:f+1],b=b[f>b.length-3?b.length-1:f+2];g.set(Gi(e,h.x,k.x,l.x,b.x),Gi(e,h.y,k.y,l.y,b.y));return g};gc.prototype.copy=function(c){ra.prototype.copy.call(this,c);this.points=[];for(var a=0,b=c.points.length;a<b;a++)this.points.push(c.points[a].clone());return this};gc.prototype.toJSON=function(){var c=ra.prototype.toJSON.call(this);c.points=[];for(var a=0,b=this.points.length;a<b;a++)c.points.push(this.points[a].toArray());return c};gc.prototype.fromJSON=function(c){ra.prototype.fromJSON.call(this,c);this.points=[];for(var a=0,b=c.points.length;a<b;a++){var e=c.points[a];this.points.push((new d).fromArray(e))}return this};var Gh=Object.freeze({ArcCurve:oe,CatmullRomCurve3:Jb,CubicBezierCurve:fc,CubicBezierCurve3:Kb,EllipseCurve:Rb,LineCurve:Cb,LineCurve3:Lb,QuadraticBezierCurve:kc,QuadraticBezierCurve3:lc,SplineCurve:gc});Ic.prototype=Object.assign(Object.create(ra.prototype),{constructor:Ic,add:function(c){this.curves.push(c)},closePath:function(){var c=this.curves[0].getPoint(0),a=this.curves[this.curves.length-1].getPoint(1);c.equals(a)||this.curves.push(new Cb(a,c))},getPoint:function(c){var a=c*this.getLength(),b=this.getCurveLengths();for(c=0;c<b.length;){if(b[c]>=a)return a=b[c]-a,c=this.curves[c],b=c.getLength(),c.getPointAt(0===b?0:1-a/b);c++}return null},getLength:function(){var c=this.getCurveLengths();return c[c.length-1]},updateArcLengths:function(){this.needsUpdate=!0;this.cacheLengths=null;this.getCurveLengths()},getCurveLengths:function(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;for(var c=[],a=0,b=0,d=this.curves.length;b<d;b++)a+=this.curves[b].getLength(),c.push(a);return this.cacheLengths=c},getSpacedPoints:function(c){void 0===c&&(c=40);for(var a=[],b=0;b<=c;b++)a.push(this.getPoint(b/c));this.autoClose&&a.push(a[0]);return a},getPoints:function(c){c=c||12;for(var a=[],b,d=0,e=this.curves;d<e.length;d++)for(var f=e[d],f=f.getPoints(f&&f.isEllipseCurve?2*c:f&&(f.isLineCurve||f.isLineCurve3)?1:f&&f.isSplineCurve?c*f.points.length:c),h=0;h<f.length;h++){var k=f[h];b&&b.equals(k)||(a.push(k),b=k)}this.autoClose&&1<a.length&&!a[a.length-1].equals(a[0])&&a.push(a[0]);return a},copy:function(c){ra.prototype.copy.call(this,c);this.curves=[];for(var a=0,b=c.curves.length;a<b;a++)this.curves.push(c.curves[a].clone());this.autoClose=c.autoClose;return this},toJSON:function(){var c=ra.prototype.toJSON.call(this);c.autoClose=this.autoClose;c.curves=[];for(var a=0,b=this.curves.length;a<b;a++)c.curves.push(this.curves[a].toJSON());return c},fromJSON:function(c){ra.prototype.fromJSON.call(this,c);this.autoClose=c.autoClose;this.curves=[];for(var a=0,b=c.curves.length;a<b;a++){var d=c.curves[a];this.curves.push((new Gh[d.type]).fromJSON(d))}return this}});zc.prototype=Object.assign(Object.create(Ic.prototype),{constructor:zc,setFromPoints:function(c){this.moveTo(c[0].x,c[0].y);for(var a=1,b=c.length;a<b;a++)this.lineTo(c[a].x,c[a].y)},moveTo:function(c,a){this.currentPoint.set(c,a)},lineTo:function(c,a){var g=new Cb(this.currentPoint.clone(),new d(c,a));this.curves.push(g);this.currentPoint.set(c,a)},quadraticCurveTo:function(c,a,b,e){c=new kc(this.currentPoint.clone(),new d(c,a),new d(b,e));this.curves.push(c);this.currentPoint.set(b,e)},bezierCurveTo:function(c,a,b,e,f,h){c=new fc(this.currentPoint.clone(),new d(c,a),new d(b,e),new d(f,h));this.curves.push(c);this.currentPoint.set(f,h)},splineThru:function(c){var a=[this.currentPoint.clone()].concat(c),a=new gc(a);this.curves.push(a);this.currentPoint.copy(c[c.length-1])},arc:function(c,a,b,d,e,f){this.absarc(c+this.currentPoint.x,a+this.currentPoint.y,b,d,e,f)},absarc:function(c,a,b,d,e,f){this.absellipse(c,a,b,b,d,e,f)},ellipse:function(c,a,b,d,e,f,h,k){this.absellipse(c+this.currentPoint.x,a+this.currentPoint.y,b,d,e,f,h,k)},absellipse:function(c,a,b,d,e,f,h,k){c=new Rb(c,a,b,d,e,f,h,k);0<this.curves.length&&(a=c.getPoint(0),a.equals(this.currentPoint)||this.lineTo(a.x,a.y));this.curves.push(c);c=c.getPoint(1);this.currentPoint.copy(c)},copy:function(c){Ic.prototype.copy.call(this,c);this.currentPoint.copy(c.currentPoint);return this},toJSON:function(){var c=Ic.prototype.toJSON.call(this);c.currentPoint=this.currentPoint.toArray();return c},fromJSON:function(c){Ic.prototype.fromJSON.call(this,c);this.currentPoint.fromArray(c.currentPoint);return this}});nd.prototype=Object.assign(Object.create(zc.prototype),{constructor:nd,getPointsHoles:function(c){for(var a=[],b=0,d=this.holes.length;b<d;b++)a[b]=this.holes[b].getPoints(c);return a},extractPoints:function(c){return{shape:this.getPoints(c),holes:this.getPointsHoles(c)}},copy:function(c){zc.prototype.copy.call(this,c);this.holes=[];for(var a=0,b=c.holes.length;a<b;a++)this.holes.push(c.holes[a].clone());return this},toJSON:function(){var c=zc.prototype.toJSON.call(this);c.uuid=this.uuid;c.holes=[];for(var a=0,b=this.holes.length;a<b;a++)c.holes.push(this.holes[a].toJSON());return c},fromJSON:function(c){zc.prototype.fromJSON.call(this,c);this.uuid=c.uuid;this.holes=[];for(var a=0,b=c.holes.length;a<b;a++){var d=c.holes[a];this.holes.push((new zc).fromJSON(d))}return this}});ib.prototype=Object.assign(Object.create(F.prototype),{constructor:ib,isLight:!0,copy:function(c){F.prototype.copy.call(this,c);this.color.copy(c.color);this.intensity=c.intensity;return this},toJSON:function(c){c=F.prototype.toJSON.call(this,c);c.object.color=this.color.getHex();c.object.intensity=this.intensity;void 0!==this.groundColor&&(c.object.groundColor=this.groundColor.getHex());void 0!==this.distance&&(c.object.distance=this.distance);void 0!==this.angle&&(c.object.angle=this.angle);void 0!==this.decay&&(c.object.decay=this.decay);void 0!==this.penumbra&&(c.object.penumbra=this.penumbra);void 0!==this.shadow&&(c.object.shadow=this.shadow.toJSON());return c}});Of.prototype=Object.assign(Object.create(ib.prototype),{constructor:Of,isHemisphereLight:!0,copy:function(c){ib.prototype.copy.call(this,c);this.groundColor.copy(c.groundColor);return this}});Object.assign(pe.prototype,{copy:function(c){this.camera=c.camera.clone();this.bias=c.bias;this.radius=c.radius;this.mapSize.copy(c.mapSize);return this},clone:function(){return(new this.constructor).copy(this)},toJSON:function(){var c={};0!==this.bias&&(c.bias=this.bias);1!==this.radius&&(c.radius=this.radius);if(512!==this.mapSize.x||512!==this.mapSize.y)c.mapSize=this.mapSize.toArray();c.camera=this.camera.toJSON(!1).object;delete c.camera.matrix;return c}});zg.prototype=Object.assign(Object.create(pe.prototype),{constructor:zg,isSpotLightShadow:!0,update:function(c){var a=this.camera,b=2*Aa.RAD2DEG*c.angle,d=this.mapSize.width/this.mapSize.height;c=c.distance||a.far;if(b!==a.fov||d!==a.aspect||c!==a.far)a.fov=b,a.aspect=d,a.far=c,a.ux()}});Mb.prototype=Object.assign(Object.create(ib.prototype),{constructor:Mb,isSpotLight:!0,copy:function(c){ib.prototype.copy.call(this,c);this.distance=c.distance;this.angle=c.angle;this.penumbra=c.penumbra;this.decay=c.decay;this.target=c.target.clone();this.shadow=c.shadow.clone();return this}});Ag.prototype=Object.assign(Object.create(ib.prototype),{constructor:Ag,isPointLight:!0,copy:function(c){ib.prototype.copy.call(this,c);this.distance=c.distance;this.decay=c.decay;this.shadow=c.shadow.clone();return this}});$e.prototype=Object.assign(Object.create(nb.prototype),{constructor:$e,isOrthographicCamera:!0,copy:function(c,a){nb.prototype.copy.call(this,c,a);this.left=c.left;this.right=c.right;this.top=c.top;this.bottom=c.bottom;this.near=c.near;this.far=c.far;this.zoom=c.zoom;this.view=null===c.view?null:Object.assign({},c.view);return this},setViewOffset:function(c,a,b,d,e,f){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=c;this.view.fullHeight=a;this.view.offsetX=b;this.view.offsetY=d;this.view.width=e;this.view.height=f;this.ux()},clearViewOffset:function(){null!==this.view&&(this.view.enabled=!1);this.ux()},ux:function(){var c=(this.right-this.left)/(2*this.zoom),a=(this.top-this.bottom)/(2*this.zoom),b=(this.right+this.left)/2,d=(this.top+this.bottom)/2,e=b-c,b=b+c,c=d+a,a=d-a;if(null!==this.view&&this.view.enabled)var b=this.zoom/(this.view.width/this.view.fullWidth),a=this.zoom/(this.view.height/this.view.fullHeight),f=(this.right-this.left)/this.view.width,d=(this.top-this.bottom)/this.view.height,e=e+this.view.offsetX/b*f,b=e+this.view.width/b*f,c=c-this.view.offsetY/a*d,a=c-this.view.height/a*d;this.projectionMatrix.makeOrthographic(e,b,c,a,this.near,this.far);this.projectionMatrixInverse.getInverse(this.projectionMatrix)},toJSON:function(c){c=F.prototype.toJSON.call(this,c);c.object.zoom=this.zoom;c.object.left=this.left;c.object.right=this.right;c.object.top=this.top;c.object.bottom=this.bottom;c.object.near=this.near;c.object.far=this.far;null!==this.view&&(c.object.view=Object.assign({},this.view));return c}});af.prototype=Object.assign(Object.create(pe.prototype),{constructor:af});Jd.prototype=Object.assign(Object.create(ib.prototype),{constructor:Jd,isDt:!0,copy:function(c){ib.prototype.copy.call(this,c);this.target=c.target.clone();this.shadow=c.shadow.clone();return this}});Pf.prototype=Object.assign(Object.create(ib.prototype),{constructor:Pf,isAmbientLight:!0});Bg.prototype=Object.assign(Object.create(ib.prototype),{constructor:Bg,isRectAreaLight:!0,copy:function(c){ib.prototype.copy.call(this,c);this.width=c.width;this.height=c.height;return this},toJSON:function(c){c=ib.prototype.toJSON.call(this,c);c.object.width=this.width;c.object.height=this.height;return c}});var wb={arraySlice:function(c,a,b){return wb.isTypedArray(c)?new c.constructor(c.subarray(a,void 0!==b?b:c.length)):c.slice(a,b)},convertArray:function(c,a,b){return!c||!b&&c.constructor===a?c:"number"===typeof a.BYTES_PER_ELEMENT?new a(c):Array.prototype.slice.call(c)},isTypedArray:function(c){return ArrayBuffer.isView(c)&&!(c instanceof DataView)},getKeyframeOrder:function(c){for(var a=c.length,b=Array(a),d=0;d!==a;++d)b[d]=d;b.sort(function(a,g){return c[a]-c[g]});return b},sortedArray:function(c,a,b){for(var g=c.length,d=new c.constructor(g),e=0,f=0;f!==g;++e)for(var n=b[e]*a,h=0;h!==a;++h)d[f++]=c[n+h];return d},flattenJSON:function(c,a,b,d){for(var g=1,e=c[0];void 0!==e&&void 0===e[d];)e=c[g++];if(void 0!==e){var f=e[d];if(void 0!==f)if(Array.isArray(f)){do f=e[d],void 0!==f&&(a.push(e.time),b.push.apply(b,f)),e=c[g++];while(void 0!==e)}else if(void 0!==f.toArray){do f=e[d],void 0!==f&&(a.push(e.time),f.toArray(b,b.length)),e=c[g++];while(void 0!==e)}else{do f=e[d],void 0!==f&&(a.push(e.time),b.push(f)),e=c[g++];while(void 0!==e)}}}};Object.assign(mc.prototype,{evaluate:function(c){var a=this.parameterPositions,b=this._cachedIndex,d=a[b],e=a[b-1];a:{b:{c:{d:if(!(c<d)){for(var f=b+2;;){if(void 0===d){if(c<e)break d;this._cachedIndex=b=a.length;return this.afternd_(b-1,c,e)}if(b===f)break;e=d;d=a[++b];if(c<d)break b}d=a.length;break c}if(c>=e)break a;else{f=a[1];c<f&&(b=2,e=f);for(f=b-2;;){if(void 0===e)return this._cachedIndex=0,this.beforeStart_(0,c,d);if(b===f)break;d=e;e=a[--b-1];if(c>=e)break b}d=b;b=0}}for(;b<d;)e=b+d>>>1,c<a[e]?d=e:b=e+1;d=a[b];e=a[b-1];if(void 0===e)return this._cachedIndex=0,this.beforeStart_(0,c,d);if(void 0===d)return this._cachedIndex=b=a.length,this.afternd_(b-1,e,c)}this._cachedIndex=b;this.intervalChanged_(b,e,d)}return this.interpolate_(b,e,c,d)},settings:null,DefaultSettings_:{},getSettings_:function(){return this.settings||this.DefaultSettings_},copySampleValue_:function(c){var a=this.resultBuffer,b=this.sampleValues,d=this.valueSize;c*=d;for(var e=0;e!==d;++e)a[e]=b[c+e];return a},interpolate_:function(){throw Error("call to abstract method");},intervalChanged_:function(){}});Object.assign(mc.prototype,{beforeStart_:mc.prototype.copySampleValue_,afternd_:mc.prototype.copySampleValue_});Qf.prototype=Object.assign(Object.create(mc.prototype),{constructor:Qf,DefaultSettings_:{endingStart:2400,endingEnd:2400},intervalChanged_:function(c,a,b){var g=this.parameterPositions,d=c-2,e=c+1,f=g[d],n=g[e];if(void 0===f)switch(this.getSettings_().endingStart){case 2401:d=c;f=2*a-b;break;case 2402:d=g.length-2;f=a+g[d]-g[d+1];break;default:d=c,f=b}if(void 0===n)switch(this.getSettings_().endingEnd){case 2401:e=c;n=2*b-a;break;case 2402:e=1;n=b+g[1]-g[0];break;default:e=c-1,n=a}c=.5*(b-a);g=this.valueSize;this._weightPrev=c/(a-f);this._weightNext=c/(n-b);this._offsetPrev=d*g;this._offsetNext=e*g},interpolate_:function(c,a,b,d){var g=this.resultBuffer,e=this.sampleValues,f=this.valueSize;c*=f;var n=c-f,h=this._offsetPrev,k=this._offsetNext,l=this._weightPrev,p=this._weightNext,t=(b-a)/(d-a);b=t*t;d=b*t;a=-l*d+2*l*b-l*t;l=(1+l)*d+(-1.5-2*l)*b+(-.5+l)*t+1;t=(-1-p)*d+(1.5+p)*b+.5*t;p=p*d-p*b;for(b=0;b!==f;++b)g[b]=a*e[h+b]+l*e[n+b]+t*e[c+b]+p*e[k+b];return g}});Rf.prototype=Object.assign(Object.create(mc.prototype),{constructor:Rf,interpolate_:function(c,a,b,d){var g=this.resultBuffer,e=this.sampleValues,f=this.valueSize;c*=f;var n=c-f;a=(b-a)/(d-a);b=1-a;for(d=0;d!==f;++d)g[d]=e[n+d]*b+e[c+d]*a;return g}});Cg.prototype=Object.assign(Object.create(mc.prototype),{constructor:Cg,interpolate_:function(c){return this.copySampleValue_(c-1)}});Object.assign(Db,{toJSON:function(c){var a=c.constructor;if(void 0!==a.toJSON)a=a.toJSON(c);else{var a={name:c.name,times:wb.convertArray(c.times,Array),values:wb.convertArray(c.values,Array)},b=c.getInterpolation();b!==c.DefaultInterpolation&&(a.interpolation=b)}a.type=c.ValueTypeName;return a}});Object.assign(Db.prototype,{constructor:Db,TimeBufferType:Float32Array,ValueBufferType:Float32Array,DefaultInterpolation:2301,InterpolantFactoryMethodDiscrete:function(c){return new Cg(this.times,this.values,this.getValueSize(),c)},InterpolantFactoryMethodLinear:function(c){return new Rf(this.times,this.values,this.getValueSize(),c)},InterpolantFactoryMethodSmooth:function(c){return new Qf(this.times,this.values,this.getValueSize(),c)},setInterpolation:function(c){var a;switch(c){case 2300:a=this.InterpolantFactoryMethodDiscrete;break;case 2301:a=this.InterpolantFactoryMethodLinear;break;case 2302:a=this.InterpolantFactoryMethodSmooth}if(void 0===a){a="unsupported interpolation for "+this.ValueTypeName+" keyframe track named "+this.name;if(void 0===this.createInterpolant)if(c!==this.DefaultInterpolation)this.setInterpolation(this.DefaultInterpolation);else throw Error(a);console.warn("GLE.KeyframeTrack:",a);return this}this.createInterpolant=a;return this},getInterpolation:function(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return 2300;case this.InterpolantFactoryMethodLinear:return 2301;case this.InterpolantFactoryMethodSmooth:return 2302}},getValueSize:function(){return this.values.length/this.times.length},shift:function(c){if(0!==c)for(var a=this.times,b=0,d=a.length;b!==d;++b)a[b]+=c;return this},scale:function(c){if(1!==c)for(var a=this.times,b=0,d=a.length;b!==d;++b)a[b]*=c;return this},trim:function(c,a){for(var g=this.times,b=g.length,d=0,e=b-1;d!==b&&g[d]<c;)++d;for(;-1!==e&&g[e]>a;)--e;++e;if(0!==d||e!==b)d>=e&&(e=Math.max(e,1),d=e-1),b=this.getValueSize(),this.times=wb.arraySlice(g,d,e),this.values=wb.arraySlice(this.values,d*b,e*b);return this},validate:function(){var c=!0,a=this.getValueSize();0!==a-Math.floor(a)&&(console.error("GLE.KeyframeTrack: Invalid value size in track.",this),c=!1);var b=this.times,a=this.values,d=b.length;0===d&&(console.error("GLE.KeyframeTrack: Track is empty.",this),c=!1);for(var e=null,f=0;f!==d;f++){var h=b[f];if("number"===typeof h&&isNaN(h)){console.error("GLE.KeyframeTrack: Time is not a valid number.",this,f,h);c=!1;break}if(null!==e&&e>h){console.error("GLE.KeyframeTrack: Out of order keys.",this,f,h,e);c=!1;break}e=h}if(void 0!==a&&wb.isTypedArray(a))for(f=0,b=a.length;f!==b;++f)if(d=a[f],isNaN(d)){console.error("GLE.KeyframeTrack: Value is not a valid number.",this,f,d);c=!1;break}return c},optimize:function(){for(var c=this.times,a=this.values,b=this.getValueSize(),d=2302===this.getInterpolation(),e=1,f=c.length-1,h=1;h<f;++h){var k=!1,l=c[h];if(l!==c[h+1]&&(1!==h||l!==l[0]))if(d)k=!0;else for(var p=h*b,m=p-b,z=p+b,l=0;l!==b;++l){var u=a[p+l];if(u!==a[m+l]||u!==a[z+l]){k=!0;break}}if(k){if(h!==e)for(c[e]=c[h],k=h*b,p=e*b,l=0;l!==b;++l)a[p+l]=a[k+l];++e}}if(0<f){c[e]=c[f];k=f*b;p=e*b;for(l=0;l!==b;++l)a[p+l]=a[k+l];++e}e!==c.length&&(this.times=wb.arraySlice(c,0,e),this.values=wb.arraySlice(a,0,e*b));return this}});Sf.prototype=Object.assign(Object.create(Db.prototype),{constructor:Sf,ValueTypeName:"bool",ValueBufferType:Array,DefaultInterpolation:2300,InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0});od.prototype=Object.assign(Object.create(Db.prototype),{constructor:od,ValueTypeName:"color"});Kd.prototype=Object.assign(Object.create(Db.prototype),{constructor:Kd,ValueTypeName:"number"});bf.prototype=Object.assign(Object.create(mc.prototype),{constructor:bf,interpolate_:function(c,a,b,d){var g=this.resultBuffer,e=this.sampleValues,n=this.valueSize;c*=n;a=(b-a)/(d-a);for(b=c+n;c!==b;c+=4)f.slerpFlat(g,0,e,c-n,e,c,a);return g}});qe.prototype=Object.assign(Object.create(Db.prototype),{constructor:qe,ValueTypeName:"quaternion",DefaultInterpolation:2301,InterpolantFactoryMethodLinear:function(c){return new bf(this.times,this.values,this.getValueSize(),c)},InterpolantFactoryMethodSmooth:void 0});Tf.prototype=Object.assign(Object.create(Db.prototype),{constructor:Tf,ValueTypeName:"string",ValueBufferType:Array,DefaultInterpolation:2300,InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0});re.prototype=Object.assign(Object.create(Db.prototype),{constructor:re,ValueTypeName:"vector"});Object.assign(nc,{parse:function(c){for(var a=[],b=c.tracks,d=1/(c.fps||1),e=0,f=b.length;e!==f;++e)a.push(Ii(b[e]).scale(d));return new nc(c.name,c.duration,a)},toJSON:function(c){var a=[],b=c.tracks;c={name:c.name,duration:c.duration,tracks:a,uuid:c.uuid};for(var d=0,e=b.length;d!==e;++d)a.push(Db.toJSON(b[d]));return c},CreateFromMorphTargetSequence:function(c,a,b,d){for(var g=a.length,e=[],f=0;f<g;f++){var n=[],h=[];n.push((f+g-1)%g,f,(f+1)%g);h.push(0,1,0);var k=wb.getKeyframeOrder(n),n=wb.sortedArray(n,1,k),h=wb.sortedArray(h,1,k);d||0!==n[0]||(n.push(g),h.push(h[0]));e.push((new Kd(".morphTargetInfluences["+a[f].name+"]",n,h)).scale(1/b))}return new nc(c,-1,e)},findByName:function(c,a){var g=c;Array.isArray(c)||(g=c.geometry&&c.geometry.animations||c.animations);for(var b=0;b<g.length;b++)if(g[b].name===a)return g[b];return null},CreateClipsFromMorphTargetSequences:function(c,a,b){for(var g={},d=/^([\w-]*?)([\d]+)$/,e=0,f=c.length;e<f;e++){var n=c[e],h=n.name.match(d);if(h&&1<h.length){var k=h[1];(h=g[k])||(g[k]=h=[]);h.push(n)}}c=[];for(k in g)c.push(nc.CreateFromMorphTargetSequence(k,g[k],a,b));return c},parseAnimation:function(c,a){if(!c)return console.error("GLE.AnimationClip: No animation in JSONLoader data."),null;for(var g=function(c,a,g,b,d){if(0!==g.length){var e=[],f=[];wb.flattenJSON(g,e,f,b);0!==e.length&&d.push(new c(a,e,f))}},b=[],d=c.name||"default",e=c.length||-1,f=c.fps||30,h=c.hierarchy||[],k=0;k<h.length;k++){var l=h[k].keys;if(l&&0!==l.length)if(l[0].morphTargets){for(var e={},p=0;p<l.length;p++)if(l[p].morphTargets)for(var m=0;m<l[p].morphTargets.length;m++)e[l[p].morphTargets[m]]=-1;for(var z in e){for(var u=[],v=[],m=0;m!==l[p].morphTargets.length;++m){var q=l[p];u.push(q.time);v.push(q.morphTarget===z?1:0)}b.push(new Kd(".morphTargetInfluence["+z+"]",u,v))}e=e.length*(f||1)}else p=".bones["+a[k].name+"]",g(re,p+".position",l,"pos",b),g(qe,p+".quaternion",l,"rot",b),g(re,p+".scale",l,"scl",b)}return 0===b.length?null:new nc(d,e,b)}});Object.assign(nc.prototype,{resetDuration:function(){for(var c=0,a=0,b=this.tracks.length;a!==b;++a)var d=this.tracks[a],c=Math.max(c,d.times[d.times.length-1]);this.duration=c;return this},trim:function(){for(var c=0;c<this.tracks.length;c++)this.tracks[c].trim(0,this.duration);return this},validate:function(){for(var c=!0,a=0;a<this.tracks.length;a++)c=c&&this.tracks[a].validate();return c},optimize:function(){for(var c=0;c<this.tracks.length;c++)this.tracks[c].optimize();return this}});Object.assign(Uf.prototype,{load:function(c,a,b,d){var g=this;(new ob(g.manager)).load(c,function(c){a(g.parse(JSON.parse(c)))},b,d)},setTextures:function(c){this.textures=c},parse:function(c){function a(c){void 0===b[c]&&console.warn("GLE.MaterialLoader: Undefined texture",c);return b[c]}var b=this.textures,f=new Qi[c.type];void 0!==c.uuid&&(f.uuid=c.uuid);void 0!==c.name&&(f.name=c.name);void 0!==c.color&&f.color.setHex(c.color);void 0!==c.roughness&&(f.roughness=c.roughness);void 0!==c.metalness&&(f.metalness=c.metalness);void 0!==c.emissive&&f.emissive.setHex(c.emissive);void 0!==c.specular&&f.specular.setHex(c.specular);void 0!==c.shininess&&(f.shininess=c.shininess);void 0!==c.clearCoat&&(f.clearCoat=c.clearCoat);void 0!==c.clearCoatRoughness&&(f.clearCoatRoughness=c.clearCoatRoughness);void 0!==c.vertexColors&&(f.vertexColors=c.vertexColors);void 0!==c.fog&&(f.fog=c.fog);void 0!==c.flatShading&&(f.flatShading=c.flatShading);void 0!==c.blending&&(f.blending=c.blending);void 0!==c.combine&&(f.combine=c.combine);void 0!==c.side&&(f.side=c.side);void 0!==c.opacity&&(f.opacity=c.opacity);void 0!==c.transparent&&(f.transparent=c.transparent);void 0!==c.alphaTest&&(f.alphaTest=c.alphaTest);void 0!==c.depthTest&&(f.depthTest=c.depthTest);void 0!==c.depthWrite&&(f.depthWrite=c.depthWrite);void 0!==c.colorWrite&&(f.colorWrite=c.colorWrite);void 0!==c.wireframe&&(f.wireframe=c.wireframe);void 0!==c.wireframeLinewidth&&(f.wireframeLinewidth=c.wireframeLinewidth);void 0!==c.wireframeLinecap&&(f.wireframeLinecap=c.wireframeLinecap);void 0!==c.wireframeLinejoin&&(f.wireframeLinejoin=c.wireframeLinejoin);void 0!==c.rotation&&(f.rotation=c.rotation);1!==c.linewidth&&(f.linewidth=c.linewidth);void 0!==c.dashSize&&(f.dashSize=c.dashSize);void 0!==c.gapSize&&(f.gapSize=c.gapSize);void 0!==c.scale&&(f.scale=c.scale);void 0!==c.polygonOffset&&(f.polygonOffset=c.polygonOffset);void 0!==c.polygonOffsetFactor&&(f.polygonOffsetFactor=c.polygonOffsetFactor);void 0!==c.polygonOffsetUnits&&(f.polygonOffsetUnits=c.polygonOffsetUnits);void 0!==c.skinning&&(f.skinning=c.skinning);void 0!==c.morphTargets&&(f.morphTargets=c.morphTargets);void 0!==c.dithering&&(f.dithering=c.dithering);void 0!==c.visible&&(f.visible=c.visible);void 0!==c.userData&&(f.userData=c.userData);if(void 0!==c.uniforms)for(var k in c.uniforms){var l=c.uniforms[k];f.uniforms[k]={};switch(l.type){case "t":f.uniforms[k].value=a(l.value);break;case "c":f.uniforms[k].value=(new u).setHex(l.value);break;case "v2":f.uniforms[k].value=(new d).fromArray(l.value);break;case "v3":f.uniforms[k].value=(new h).fromArray(l.value);break;case "v4":f.uniforms[k].value=(new r).fromArray(l.value);break;case "m4":f.uniforms[k].value=(new e).fromArray(l.value);break;default:f.uniforms[k].value=l.value}}void 0!==c.defines&&(f.defines=c.defines);void 0!==c.vertexShader&&(f.vertexShader=c.vertexShader);void 0!==c.fragmentShader&&(f.fragmentShader=c.fragmentShader);void 0!==c.shading&&(f.flatShading=1===c.shading);void 0!==c.size&&(f.size=c.size);void 0!==c.sizeAttenuation&&(f.sizeAttenuation=c.sizeAttenuation);void 0!==c.map&&(f.map=a(c.map));void 0!==c.alphaMap&&(f.alphaMap=a(c.alphaMap),f.transparent=!0);void 0!==c.bumpMap&&(f.bumpMap=a(c.bumpMap));void 0!==c.bumpScale&&(f.bumpScale=c.bumpScale);void 0!==c.normalMap&&(f.normalMap=a(c.normalMap));void 0!==c.normalMapType&&(f.normalMapType=c.normalMapType);void 0!==c.normalScale&&(k=c.normalScale,!1===Array.isArray(k)&&(k=[k,k]),f.normalScale=(new d).fromArray(k));void 0!==c.displacementMap&&(f.displacementMap=a(c.displacementMap));void 0!==c.displacementScale&&(f.displacementScale=c.displacementScale);void 0!==c.displacementBias&&(f.displacementBias=c.displacementBias);void 0!==c.roughnessMap&&(f.roughnessMap=a(c.roughnessMap));void 0!==c.metalnessMap&&(f.metalnessMap=a(c.metalnessMap));void 0!==c.emissiveMap&&(f.emissiveMap=a(c.emissiveMap));void 0!==c.emissiveIntensity&&(f.emissiveIntensity=c.emissiveIntensity);void 0!==c.specularMap&&(f.specularMap=a(c.specularMap));void 0!==c.envMap&&(f.envMap=a(c.envMap));void 0!==c.envMapIntensity&&(f.envMapIntensity=c.envMapIntensity);void 0!==c.reflectivity&&(f.reflectivity=c.reflectivity);void 0!==c.lightMap&&(f.lightMap=a(c.lightMap));void 0!==c.lightMapIntensity&&(f.lightMapIntensity=c.lightMapIntensity);void 0!==c.aoMap&&(f.aoMap=a(c.aoMap));void 0!==c.aoMapIntensity&&(f.aoMapIntensity=c.aoMapIntensity);void 0!==c.gradientMap&&(f.gradientMap=a(c.gradientMap));return f}});Object.assign(Dg.prototype,{load:function(c,a,b,d){var g=this;(new ob(g.manager)).load(c,function(c){a(g.parse(JSON.parse(c)))},b,d)},parse:function(c){var a=new R,b=c.data.index;void 0!==b&&(b=new Rd[b.type](b.array),a.setIndex(new A(b,1)));var d=c.data.attributes,e;for(e in d){var f=d[e],b=new Rd[f.type](f.array);a.addAttribute(e,new A(b,f.itemSize,f.normalized))}e=c.data.groups||c.data.drawcalls||c.data.offsets;if(void 0!==e)for(b=0,d=e.length;b!==d;++b)f=e[b],a.addGroup(f.start,f.count,f.materialIndex);c=c.data.boundingSphere;void 0!==c&&(e=new h,void 0!==c.center&&e.fromArray(c.center),a.boundingSphere=new w(e,c.radius));return a}});var Rd={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:"undefined"!==typeof Uint8ClampedArray?Uint8ClampedArray:Uint8Array,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};pd.Handlers={handlers:[],add:function(c,a){this.handlers.push(c,a)},get:function(c){for(var a=this.handlers,b=0,d=a.length;b<d;b+=2){var e=a[b+1];if(a[b].test(c))return e}return null}};Object.assign(pd.prototype,{crossOrigin:"anonymous",onLoadStart:function(){},onLoadProgress:function(){},onLoadComplete:function(){},initMaterials:function(c,a,b){for(var g=[],d=0;d<c.length;++d)g[d]=this.createMaterial(c[d],a,b);return g},createMaterial:function(){var c={NoBlending:0,NormalBlending:1,AdditiveBlending:2,SubtractiveBlending:3,MultiplyBlending:4,CustomBlending:5},a=new u,b=new Za,d=new Uf;return function(g,e,f){function n(c,a,g,d,n){c=e+c;var k=pd.Handlers.get(c);null!==k?c=k.load(c):(b.setCrossOrigin(f),c=b.load(c));void 0!==a&&(c.repeat.fromArray(a),1!==a[0]&&(c.wrapS=1E3),1!==a[1]&&(c.wrapT=1E3));void 0!==g&&c.offset.fromArray(g);void 0!==d&&("repeat"===d[0]&&(c.wrapS=1E3),"mirror"===d[0]&&(c.wrapS=1002),"repeat"===d[1]&&(c.wrapT=1E3),"mirror"===d[1]&&(c.wrapT=1002));void 0!==n&&(c.anisotropy=n);a=Aa.generateUUID();h[a]=c;return a}var h={},k={uuid:Aa.generateUUID(),type:"MeshLambertMaterial"},l;for(l in g){var p=g[l];switch(l){case "DbgColor":case "DbgIndex":case "opticalDensity":case "illumination":break;case "DbgName":k.name=p;break;case "blending":k.blending=c[p];break;case "colorAmbient":case "mapAmbient":console.warn("GLE.Loader.createMaterial:",l,"is no longer supported.");break;case "colorDiffuse":k.color=a.fromArray(p).getHex();break;case "colorSpecular":k.specular=a.fromArray(p).getHex();break;case "colorEmissive":k.emissive=a.fromArray(p).getHex();break;case "specularCoef":k.shininess=p;break;case "shading":"basic"===p.toLowerCase()&&(k.type="Mal");"phong"===p.toLowerCase()&&(k.type="MeshPhongMaterial");"standard"===p.toLowerCase()&&(k.type="MeshStandardMaterial");break;case "mapDiffuse":k.map=n(p,g.mapDiffuseRepeat,g.mapDiffuseOffset,g.mapDiffuseWrap,g.mapDiffuseAnisotropy);break;case "mapDiffuseRepeat":case "mapDiffuseOffset":case "mapDiffuseWrap":case "mapDiffuseAnisotropy":break;case "mapEmissive":k.emissiveMap=n(p,g.mapEmissiveRepeat,g.mapEmissiveOffset,g.mapEmissiveWrap,g.mapEmissiveAnisotropy);break;case "mapEmissiveRepeat":case "mapEmissiveOffset":case "mapEmissiveWrap":case "mapEmissiveAnisotropy":break;case "mapLight":k.lightMap=n(p,g.mapLightRepeat,g.mapLightOffset,g.mapLightWrap,g.mapLightAnisotropy);break;case "mapLightRepeat":case "mapLightOffset":case "mapLightWrap":case "mapLightAnisotropy":break;case "mapAO":k.aoMap=n(p,g.mapAORepeat,g.mapAOOffset,g.mapAOWrap,g.mapAOAnisotropy);break;case "mapAORepeat":case "mapAOOffset":case "mapAOWrap":case "mapAOAnisotropy":break;case "mapBump":k.bumpMap=n(p,g.mapBumpRepeat,g.mapBumpOffset,g.mapBumpWrap,g.mapBumpAnisotropy);break;case "mapBumpScale":k.bumpScale=p;break;case "mapBumpRepeat":case "mapBumpOffset":case "mapBumpWrap":case "mapBumpAnisotropy":break;case "mapNormal":k.normalMap=n(p,g.mapNormalRepeat,g.mapNormalOffset,g.mapNormalWrap,g.mapNormalAnisotropy);break;case "mapNormalFactor":k.normalScale=p;break;case "mapNormalRepeat":case "mapNormalOffset":case "mapNormalWrap":case "mapNormalAnisotropy":break;case "mapSpecular":k.specularMap=n(p,g.mapSpecularRepeat,g.mapSpecularOffset,g.mapSpecularWrap,g.mapSpecularAnisotropy);break;case "mapSpecularRepeat":case "mapSpecularOffset":case "mapSpecularWrap":case "mapSpecularAnisotropy":break;case "mapMetalness":k.metalnessMap=n(p,g.mapMetalnessRepeat,g.mapMetalnessOffset,g.mapMetalnessWrap,g.mapMetalnessAnisotropy);break;case "mapMetalnessRepeat":case "mapMetalnessOffset":case "mapMetalnessWrap":case "mapMetalnessAnisotropy":break;case "mapRoughness":k.roughnessMap=n(p,g.mapRoughnessRepeat,g.mapRoughnessOffset,g.mapRoughnessWrap,g.mapRoughnessAnisotropy);break;case "mapRoughnessRepeat":case "mapRoughnessOffset":case "mapRoughnessWrap":case "mapRoughnessAnisotropy":break;case "mapAlpha":k.alphaMap=n(p,g.mapAlphaRepeat,g.mapAlphaOffset,g.mapAlphaWrap,g.mapAlphaAnisotropy);break;case "mapAlphaRepeat":case "mapAlphaOffset":case "mapAlphaWrap":case "mapAlphaAnisotropy":break;case "flipSided":k.side=1;break;case "doubleSided":k.side=2;break;case "transparency":console.warn("GLE.Loader.createMaterial: transparency has been renamed to opacity");k.opacity=p;break;case "depthTest":case "depthWrite":case "colorWrite":case "opacity":case "reflectivity":case "transparent":case "visible":case "wireframe":k[l]=p;break;case "vertexColors":!0===p&&(k.vertexColors=2);"face"===p&&(k.vertexColors=1);break;default:console.error("GLE.Loader.createMaterial: Unsupported",l,p)}}"Mal"===k.type&&delete k.emissive;"MeshPhongMaterial"!==k.type&&delete k.specular;1>k.opacity&&(k.transparent=!0);d.setTextures(h);return d.parse(k)}}()});var Sd={decodeText:function(c){if("undefined"!==typeof TextDecoder)return(new TextDecoder).decode(c);for(var a="",b=0,d=c.length;b<d;b++)a+=String.fromCharCode(c[b]);return decodeURIComponent(escape(a))},extractUrlBase:function(c){var a=c.lastIndexOf("/");return-1===a?"./":c.substr(0,a+1)}};Object.assign(cf.prototype,{crossOrigin:"anonymous",load:function(c,a,b,d){var g=this,e=this.texturePath&&"string"===typeof this.texturePath?this.texturePath:Sd.extractUrlBase(c),f=new ob(this.manager);f.setWithCredentials(this.withCredentials);f.load(c,function(b){b=JSON.parse(b);var d=b.metadata;if(void 0!==d&&(d=d.type,void 0!==d&&"object"===d.toLowerCase())){console.error("GLE.JSONLoader: "+c+" should be loaded with GLE.ObjectLoader instead.");return}b=g.parse(b,e);a(b.geometry,b.materials)},b,d)},setCrossOrigin:function(c){this.crossOrigin=c;return this},setTexturePath:function(c){this.texturePath=c;return this},parse:function(){return function(c,a){void 0!==c.data&&(c=c.data);c.scale=void 0!==c.scale?1/c.scale:1;var g=new L,b=c,e,f,k,l,p,m,z,v,q,E,w,B,J,D,x=b.faces;q=b.vertices;var A=b.normals,X=b.colors;m=b.scale;var sa=0;if(void 0!==b.uvs){for(e=0;e<b.uvs.length;e++)b.uvs[e].length&&sa++;for(e=0;e<sa;e++)g.faceVertexUvs[e]=[]}l=0;for(p=q.length;l<p;)e=new h,e.x=q[l++]*m,e.y=q[l++]*m,e.z=q[l++]*m,g.vertices.push(e);l=0;for(p=x.length;l<p;)if(q=x[l++],E=q&1,k=q&2,e=q&8,z=q&16,w=q&32,m=q&64,q&=128,E){E=new C;E.a=x[l];E.b=x[l+1];E.c=x[l+3];B=new C;B.a=x[l+1];B.b=x[l+2];B.c=x[l+3];l+=4;k&&(k=x[l++],E.materialIndex=k,B.materialIndex=k);k=g.faces.length;if(e)for(e=0;e<sa;e++)for(J=b.uvs[e],g.faceVertexUvs[e][k]=[],g.faceVertexUvs[e][k+1]=[],f=0;4>f;f++)v=x[l++],D=J[2*v],v=J[2*v+1],D=new d(D,v),2!==f&&g.faceVertexUvs[e][k].push(D),0!==f&&g.faceVertexUvs[e][k+1].push(D);z&&(z=3*x[l++],E.normal.set(A[z++],A[z++],A[z]),B.normal.copy(E.normal));if(w)for(e=0;4>e;e++)z=3*x[l++],w=new h(A[z++],A[z++],A[z]),2!==e&&E.vertexNormals.push(w),0!==e&&B.vertexNormals.push(w);m&&(m=x[l++],m=X[m],E.color.setHex(m),B.color.setHex(m));if(q)for(e=0;4>e;e++)m=x[l++],m=X[m],2!==e&&E.vertexColors.push(new u(m)),0!==e&&B.vertexColors.push(new u(m));g.faces.push(E);g.faces.push(B)}else{E=new C;E.a=x[l++];E.b=x[l++];E.c=x[l++];k&&(k=x[l++],E.materialIndex=k);k=g.faces.length;if(e)for(e=0;e<sa;e++)for(J=b.uvs[e],g.faceVertexUvs[e][k]=[],f=0;3>f;f++)v=x[l++],D=J[2*v],v=J[2*v+1],D=new d(D,v),g.faceVertexUvs[e][k].push(D);z&&(z=3*x[l++],E.normal.set(A[z++],A[z++],A[z]));if(w)for(e=0;3>e;e++)z=3*x[l++],w=new h(A[z++],A[z++],A[z]),E.vertexNormals.push(w);m&&(m=x[l++],E.color.setHex(X[m]));if(q)for(e=0;3>e;e++)m=x[l++],E.vertexColors.push(new u(X[m]));g.faces.push(E)}b=c;l=void 0!==b.influencesPerVertex?b.influencesPerVertex:2;if(b.skinWeights)for(p=0,x=b.skinWeights.length;p<x;p+=l)g.skinWeights.push(new r(b.skinWeights[p],1<l?b.skinWeights[p+1]:0,2<l?b.skinWeights[p+2]:0,3<l?b.skinWeights[p+3]:0));if(b.skinIndices)for(p=0,x=b.skinIndices.length;p<x;p+=l)g.skinIndices.push(new r(b.skinIndices[p],1<l?b.skinIndices[p+1]:0,2<l?b.skinIndices[p+2]:0,3<l?b.skinIndices[p+3]:0));g.bones=b.bones;g.bones&&0<g.bones.length&&(g.skinWeights.length!==g.skinIndices.length||g.skinIndices.length!==g.vertices.length)&&console.warn("When skinning, number of vertices ("+g.vertices.length+"), skinIndices ("+g.skinIndices.length+"), and skinWeights ("+g.skinWeights.length+") should match.");p=c;x=p.scale;if(void 0!==p.morphTargets)for(b=0,l=p.morphTargets.length;b<l;b++)for(g.morphTargets[b]={},g.morphTargets[b].name=p.morphTargets[b].name,g.morphTargets[b].vertices=[],A=g.morphTargets[b].vertices,X=p.morphTargets[b].vertices,sa=0,q=X.length;sa<q;sa+=3)m=new h,m.x=X[sa]*x,m.y=X[sa+1]*x,m.z=X[sa+2]*x,A.push(m);if(void 0!==p.morphColors&&0<p.morphColors.length)for(console.warn('GLE.JSONLoader: "morphColors" no longer supported. Using them as face colors.'),x=g.faces,p=p.morphColors[0].colors,b=0,l=x.length;b<l;b++)x[b].color.fromArray(p,3*b);p=c;b=[];l=[];void 0!==p.animation&&l.push(p.animation);void 0!==p.animations&&(p.animations.length?l=l.concat(p.animations):l.push(p.animations));for(p=0;p<l.length;p++)(x=nc.parseAnimation(l[p],g.bones))&&b.push(x);g.morphTargets&&(l=nc.CreateClipsFromMorphTargetSequences(g.morphTargets,10),b=b.concat(l));0<b.length&&(g.animations=b);g.computeFaceNormals();g.computeBoundingSphere();if(void 0===c.materials||0===c.materials.length)return{geometry:g};b=pd.prototype.initMaterials(c.materials,a,this.crossOrigin);return{geometry:g,materials:b}}}()});Object.assign(wh.prototype,{crossOrigin:"anonymous",load:function(c,a,b,d){""===this.texturePath&&(this.texturePath=c.substring(0,c.lastIndexOf("/")+1));var g=this;(new ob(g.manager)).load(c,function(b){var e=null;try{e=JSON.parse(b)}catch(ea){void 0!==d&&d(ea);console.error("GLE:ObjectLoader: Can't parse "+c+".",ea.message);return}b=e.metadata;void 0===b||void 0===b.type||"geometry"===b.type.toLowerCase()?console.error("GLE.ObjectLoader: Can't load "+c+". Use GLE.JSONLoader instead."):g.parse(e,a)},b,d)},setTexturePath:function(c){this.texturePath=c;return this},setCrossOrigin:function(c){this.crossOrigin=c;return this},parse:function(c,a){var b=this.parseShape(c.shapes),b=this.parseGeometries(c.geometries,b),g=this.parseImages(c.images,function(){void 0!==a&&a(d)}),g=this.parseTextures(c.textures,g),g=this.parseMaterials(c.materials,g),d=this.parseObject(c.object,b,g);c.animations&&(d.animations=this.parseAnimations(c.animations));void 0!==c.images&&0!==c.images.length||void 0===a||a(d);return d},parseShape:function(c){var a={};if(void 0!==c)for(var b=0,d=c.length;b<d;b++){var e=(new nd).fromJSON(c[b]);a[e.uuid]=e}return a},parseGeometries:function(c,a){var b={};if(void 0!==c)for(var g=new cf,d=new Dg,e=0,f=c.length;e<f;e++){var h,k=c[e];switch(k.type){case "PlaneGeometry":case "PlaneBufferGeometry":h=new Fb[k.type](k.width,k.height,k.widthSegments,k.heightSegments);break;case "BoxGeometry":case "By":case "CubeGeometry":h=new Fb[k.type](k.width,k.height,k.depth,k.widthSegments,k.heightSegments,k.depthSegments);break;case "CircleGeometry":case "CircleBufferGeometry":h=new Fb[k.type](k.radius,k.segments,k.thetaStart,k.thetaLength);break;case "CylinderGeometry":case "CylinderBufferGeometry":h=new Fb[k.type](k.radiusTop,k.radiusBottom,k.height,k.radialSegments,k.heightSegments,k.openEnded,k.thetaStart,k.thetaLength);break;case "ConeGeometry":case "ConeBufferGeometry":h=new Fb[k.type](k.radius,k.height,k.radialSegments,k.heightSegments,k.openEnded,k.thetaStart,k.thetaLength);break;case "SphereGeometry":case "SphereBufferGeometry":h=new Fb[k.type](k.radius,k.widthSegments,k.heightSegments,k.phiStart,k.phiLength,k.thetaStart,k.thetaLength);break;case "DodecahedronGeometry":case "DodecahedronBufferGeometry":case "IcosahedronGeometry":case "IcosahedronBufferGeometry":case "OctahedronGeometry":case "OctahedronBufferGeometry":case "TetrahedronGeometry":case "TetrahedronBufferGeometry":h=new Fb[k.type](k.radius,k.detail);break;case "RingGeometry":case "RingBufferGeometry":h=new Fb[k.type](k.innerRadius,k.outerRadius,k.thetaSegments,k.phiSegments,k.thetaStart,k.thetaLength);break;case "TorusGeometry":case "TorusBufferGeometry":h=new Fb[k.type](k.radius,k.tube,k.radialSegments,k.tubularSegments,k.arc);break;case "TorusKnotGeometry":case "TorusKnotBufferGeometry":h=new Fb[k.type](k.radius,k.tube,k.tubularSegments,k.radialSegments,k.p,k.q);break;case "LatheGeometry":case "LatheBufferGeometry":h=new Fb[k.type](k.points,k.segments,k.phiStart,k.phiLength);break;case "PolyhedronGeometry":case "PolyhedronBufferGeometry":h=new Fb[k.type](k.vertices,k.indices,k.radius,k.details);break;case "ShapeGeometry":case "ShapeBufferGeometry":h=[];for(var l=0,p=k.shapes.length;l<p;l++){var m=a[k.shapes[l]];h.push(m)}h=new Fb[k.type](h,k.curveSegments);break;case "ExtrudeGeometry":case "ExtrudeBufferGeometry":h=[];l=0;for(p=k.shapes.length;l<p;l++)m=a[k.shapes[l]],h.push(m);l=k.options.extrudePath;void 0!==l&&(k.options.extrudePath=(new Gh[l.type]).fromJSON(l));h=new Fb[k.type](h,k.options);break;case "BufferGeometry":h=d.parse(k);break;case "Geometry":h=g.parse(k,this.texturePath).geometry;break;default:console.warn('GLE.ObjectLoader: Unsupported geometry type "'+k.type+'"');continue}h.uuid=k.uuid;void 0!==k.name&&(h.name=k.name);!0===h.isBufferGeometry&&void 0!==k.userData&&(h.userData=k.userData);b[k.uuid]=h}return b},parseMaterials:function(c,a){var b={};if(void 0!==c){var g=new Uf;g.setTextures(a);for(var d=0,e=c.length;d<e;d++){var f=c[d];if("MultiMaterial"===f.type){for(var k=[],h=0;h<f.materials.length;h++)k.push(g.parse(f.materials[h]));b[f.uuid]=k}else b[f.uuid]=g.parse(f)}}return b},parseAnimations:function(c){for(var a=[],b=0;b<c.length;b++){var d=c[b],e=nc.parse(d);void 0!==d.uuid&&(e.uuid=d.uuid);a.push(e)}return a},parseImages:function(c,a){function b(c){g.manager.itemStart(c);return f.load(c,function(){g.manager.itemEnd(c)},void 0,function(){g.manager.itemEnd(c);g.manager.itemError(c)})}var g=this,d={};if(void 0!==c&&0<c.length){var e=new wg(a),f=new vb(e);f.setCrossOrigin(this.crossOrigin);for(var e=0,k=c.length;e<k;e++){var h=c[e],l=h.url;if(Array.isArray(l)){d[h.uuid]=[];for(var p=0,m=l.length;p<m;p++){var z=l[p],z=/^(\/\/)|([a-z]+:(\/\/)?)/i.test(z)?z:g.texturePath+z;d[h.uuid].push(b(z))}}else z=/^(\/\/)|([a-z]+:(\/\/)?)/i.test(h.url)?h.url:g.texturePath+h.url,d[h.uuid]=b(z)}}return d},parseTextures:function(c,a){function b(c,a){if("number"===typeof c)return c;console.warn("GLE.ObjectLoader.parseTexture: Constant should be in numeric form.",c);return a[c]}var g={};if(void 0!==c)for(var d=0,e=c.length;d<e;d++){var f=c[d];void 0===f.image&&console.warn('GLE.ObjectLoader: No "image" specified for',f.uuid);void 0===a[f.image]&&console.warn("GLE.ObjectLoader: Undefined image",f.image);var k;k=Array.isArray(a[f.image])?new Ua(a[f.image]):new m(a[f.image]);k.needsUpdate=!0;k.uuid=f.uuid;void 0!==f.name&&(k.name=f.name);void 0!==f.mapping&&(k.mapping=b(f.mapping,Vj));void 0!==f.offset&&k.offset.fromArray(f.offset);void 0!==f.repeat&&k.repeat.fromArray(f.repeat);void 0!==f.center&&k.center.fromArray(f.center);void 0!==f.rotation&&(k.rotation=f.rotation);void 0!==f.wrap&&(k.wrapS=b(f.wrap[0],Hh),k.wrapT=b(f.wrap[1],Hh));void 0!==f.format&&(k.format=f.format);void 0!==f.minFilter&&(k.minFilter=b(f.minFilter,Qg));void 0!==f.magFilter&&(k.magFilter=b(f.magFilter,Qg));void 0!==f.anisotropy&&(k.anisotropy=f.anisotropy);void 0!==f.flipY&&(k.flipY=f.flipY);g[f.uuid]=k}return g},parseObject:function(c,a,b){function g(c){void 0===a[c]&&console.warn("GLE.ObjectLoader: Undefined geometry",c);return a[c]}function d(c){if(void 0!==c){if(Array.isArray(c)){for(var a=[],g=0,d=c.length;g<d;g++){var e=c[g];void 0===b[e]&&console.warn("GLE.ObjectLoader: Undefined material",e);a.push(b[e])}return a}void 0===b[c]&&console.warn("GLE.ObjectLoader: Undefined material",c);return b[c]}}var e;switch(c.type){case "Scene":e=new Bf;void 0!==c.background&&Number.isInteger(c.background)&&(e.background=new u(c.background));void 0!==c.fog&&("Fog"===c.fog.type?e.fog=new $d(c.fog.color,c.fog.near,c.fog.far):"FogExp2"===c.fog.type&&(e.fog=new gd(c.fog.color,c.fog.density)));break;case "Pa":e=new Ra(c.fov,c.aspect,c.near,c.far);void 0!==c.focus&&(e.focus=c.focus);void 0!==c.zoom&&(e.zoom=c.zoom);void 0!==c.filmGauge&&(e.filmGauge=c.filmGauge);void 0!==c.filmOffset&&(e.filmOffset=c.filmOffset);void 0!==c.view&&(e.view=Object.assign({},c.view));break;case "OrthographicCamera":e=new $e(c.left,c.right,c.top,c.bottom,c.near,c.far);void 0!==c.zoom&&(e.zoom=c.zoom);void 0!==c.view&&(e.view=Object.assign({},c.view));break;case "AmbientLight":e=new Pf(c.color,c.intensity);break;case "Dt":e=new Jd(c.color,c.intensity);break;case "PointLight":e=new Ag(c.color,c.intensity,c.distance,c.decay);break;case "RectAreaLight":e=new Bg(c.color,c.intensity,c.width,c.height);break;case "SpotLight":e=new Mb(c.color,c.intensity,c.distance,c.angle,c.penumbra,c.decay);break;case "HemisphereLight":e=new Of(c.color,c.groundColor,c.intensity);break;case "SkinnedMesh":console.warn("GLE.ObjectLoader.parseObject() does not support SkinnedMesh yet.");case "Mesh":e=g(c.geometry);var f=d(c.material);e=e.bones&&0<e.bones.length?new Vc(e,f):new na(e,f);break;case "LOD":e=new ce;break;case "Line":e=new Pb(g(c.geometry),d(c.material),c.mode);break;case "LineLoop":e=new Cf(g(c.geometry),d(c.material));break;case "LineSegments":e=new Ha(g(c.geometry),d(c.material));break;case "PointCloud":case "Points":e=new zd(g(c.geometry),d(c.material));break;case "Sprite":e=new yd(d(c.material));break;case "Group":e=new $b;break;default:e=new F}e.uuid=c.uuid;void 0!==c.name&&(e.name=c.name);void 0!==c.matrix?(e.matrix.fromArray(c.matrix),void 0!==c.matrixAutoUpdate&&(e.matrixAutoUpdate=c.matrixAutoUpdate),e.matrixAutoUpdate&&e.matrix.decompose(e.position,e.quaternion,e.scale)):(void 0!==c.position&&e.position.fromArray(c.position),void 0!==c.rotation&&e.rotation.fromArray(c.rotation),void 0!==c.quaternion&&e.quaternion.fromArray(c.quaternion),void 0!==c.scale&&e.scale.fromArray(c.scale));void 0!==c.castShadow&&(e.castShadow=c.castShadow);void 0!==c.receiveShadow&&(e.receiveShadow=c.receiveShadow);c.shadow&&(void 0!==c.shadow.bias&&(e.shadow.bias=c.shadow.bias),void 0!==c.shadow.radius&&(e.shadow.radius=c.shadow.radius),void 0!==c.shadow.mapSize&&e.shadow.mapSize.fromArray(c.shadow.mapSize),void 0!==c.shadow.camera&&(e.shadow.camera=this.parseObject(c.shadow.camera)));void 0!==c.visible&&(e.visible=c.visible);void 0!==c.frustumCulled&&(e.frustumCulled=c.frustumCulled);void 0!==c.renderOrder&&(e.renderOrder=c.renderOrder);void 0!==c.userData&&(e.userData=c.userData);void 0!==c.layers&&(e.layers.mask=c.layers);if(void 0!==c.children)for(var f=c.children,n=0;n<f.length;n++)e.add(this.parseObject(f[n],a,b));if("LOD"===c.type)for(c=c.levels,f=0;f<c.length;f++){var n=c[f],k=e.getObjectByProperty("uuid",n.object);void 0!==k&&e.addLevel(k,n.distance)}return e}});var Vj={UVMapping:300,CubeReflectionMapping:301,CubeRefractionMapping:302,EquirectangularReflectionMapping:303,EquirectangularRefractionMapping:304,SphericalReflectionMapping:305,CubeUVReflectionMapping:306,CubeUVRefractionMapping:307},Hh={RepeatWrapping:1E3,ClampToEdgeWrapping:1001,MirroredRepeatWrapping:1002},Qg={Nr:1003,NearestMipMapNr:1004,NearestMipMapLinearFilter:1005,LinearFilter:1006,LinearMipMapNr:1007,LinearMipMapLinearFilter:1008};Eg.prototype={constructor:Eg,setOptions:function(c){this.options=c;return this},load:function(c,a,b,d){void 0===c&&(c="");void 0!==this.path&&(c=this.path+c);c=this.manager.resolveURL(c);var g=this,e=sd.get(c);if(void 0!==e)return g.manager.itemStart(c),setTimeout(function(){a&&a(e);g.manager.itemEnd(c)},0),e;fetch(c).then(function(c){return c.blob()}).then(function(c){return createImageBitmap(c,g.options)}).then(function(b){sd.add(c,b);a&&a(b);g.manager.itemEnd(c)})["catch"](function(a){d&&d(a);g.manager.itemEnd(c);g.manager.itemError(c)})},setCrossOrigin:function(){return this},setPath:function(c){this.path=c;return this}};Object.assign(Fg.prototype,{moveTo:function(c,a){this.currentPath=new zc;this.subPaths.push(this.currentPath);this.currentPath.moveTo(c,a)},lineTo:function(c,a){this.currentPath.lineTo(c,a)},quadraticCurveTo:function(c,a,b,d){this.currentPath.quadraticCurveTo(c,a,b,d)},bezierCurveTo:function(c,a,b,d,e,f){this.currentPath.bezierCurveTo(c,a,b,d,e,f)},splineThru:function(c){this.currentPath.splineThru(c)},toShapes:function(c,a){function b(c){for(var a=[],b=0,g=c.length;b<g;b++){var d=c[b],e=new nd;e.curves=d.curves;a.push(e)}return a}function g(c,a){for(var b=a.length,g=!1,d=b-1,e=0;e<b;d=e++){var f=a[d],n=a[e],k=n.x-f.x,h=n.y-f.y;if(Math.abs(h)>Number.EPSILON){if(0>h&&(f=a[e],k=-k,n=a[d],h=-h),!(c.y<f.y||c.y>n.y))if(c.y===f.y){if(c.x===f.x)return!0}else{d=h*(c.x-f.x)-k*(c.y-f.y);if(0===d)return!0;0>d||(g=!g)}}else if(c.y===f.y&&(n.x<=c.x&&c.x<=f.x||f.x<=c.x&&c.x<=n.x))return!0}return g}var d=dc.isClockWise,e=this.subPaths;if(0===e.length)return[];if(!0===a)return b(e);var f,k,h,l=[];if(1===e.length)return k=e[0],h=new nd,h.curves=k.curves,l.push(h),l;var p=!d(e[0].getPoints()),p=c?!p:p;h=[];var m=[],z=[],u=0,q;m[u]=void 0;z[u]=[];for(var v=0,r=e.length;v<r;v++)k=e[v],q=k.getPoints(),f=d(q),(f=c?!f:f)?(!p&&m[u]&&u++,m[u]={s:new nd,p:q},m[u].s.curves=k.curves,p&&u++,z[u]=[]):z[u].push({h:k,p:q[0]});if(!m[0])return b(e);if(1<m.length){v=!1;k=[];d=0;for(e=m.length;d<e;d++)h[d]=[];d=0;for(e=m.length;d<e;d++)for(f=z[d],p=0;p<f.length;p++){u=f[p];q=!0;for(r=0;r<m.length;r++)g(u.p,m[r].p)&&(d!==r&&k.push({froms:d,tos:r,hole:p}),q?(q=!1,h[r].push(u)):v=!0);q&&h[d].push(u)}0<k.length&&(v||(z=h))}v=0;for(d=m.length;v<d;v++)for(h=m[v].s,l.push(h),k=z[v],e=0,f=k.length;e<f;e++)h.holes.push(k[e].h);return l}});Object.assign(Gg.prototype,{isFont:!0,generateShapes:function(c,a){void 0===a&&(a=100);for(var b=[],g=a,d=this.data,e=Array.from?Array.from(c):String(c).split(""),f=g/d.resolution,k=(d.boundingBox.yMax-d.boundingBox.yMin+d.underlineThickness)*f,g=[],h=0,l=0,p=0;p<e.length;p++){var m=e[p];if("\n"===m)h=0,l-=k;else{var z;z=f;var u=h,q=l;if(m=d.glyphs[m]||d.glyphs["?"]){var v=new Fg,r,E,C,w,B,x;if(m.o)for(var J=m._cachedOutline||(m._cachedOutline=m.o.split(" ")),D=0,A=J.length;D<A;)switch(J[D++]){case "m":r=J[D++]*z+u;E=J[D++]*z+q;v.moveTo(r,E);break;case "l":r=J[D++]*z+u;E=J[D++]*z+q;v.lineTo(r,E);break;case "q":r=J[D++]*z+u;E=J[D++]*z+q;C=J[D++]*z+u;w=J[D++]*z+q;v.quadraticCurveTo(C,w,r,E);break;case "b":r=J[D++]*z+u,E=J[D++]*z+q,C=J[D++]*z+u,w=J[D++]*z+q,B=J[D++]*z+u,x=J[D++]*z+q,v.bezierCurveTo(C,w,B,x,r,E)}z={offsetX:m.ha*z,path:v}}else z=void 0;h+=z.offsetX;g.push(z.path)}}d=0;for(e=g.length;d<e;d++)Array.prototype.push.apply(b,g[d].toShapes());return b}});Object.assign(Ji.prototype,{load:function(c,a,b,d){var g=this,e=new ob(this.manager);e.setPath(this.path);e.load(c,function(c){var b;try{b=JSON.parse(c)}catch(ma){console.warn("GLE.FontLoader: typeface.js support is being deprecated. Use typeface.json instead."),b=JSON.parse(c.substring(65,c.length-2))}c=g.parse(b);a&&a(c)},b,d)},parse:function(c){return new Gg(c)},setPath:function(c){this.path=c;return this}});var bg,Hg={getContext:function(){void 0===bg&&(bg=new (window.AudioContext||window.webkitAudioContext));return bg},setContext:function(c){bg=c}};Object.assign(xh.prototype,{load:function(c,a,b,d){var g=new ob(this.manager);g.setResponseType("arraybuffer");g.load(c,function(c){c=c.slice(0);Hg.getContext().decodeAudioData(c,function(c){a(c)})},b,d)}});Object.assign(yh.prototype,{update:function(){var c,a,b,d,f,k,h,l,p=new e,m=new e;return function(g){if(c!==this||a!==g.focus||b!==g.fov||d!==g.aspect*this.aspect||f!==g.near||k!==g.far||h!==g.zoom||l!==this.eyeSep){c=this;a=g.focus;b=g.fov;d=g.aspect*this.aspect;f=g.near;k=g.far;h=g.zoom;var e=g.projectionMatrix.clone();l=this.eyeSep/2;var n=l*f/a,z=f*Math.tan(Aa.DEG2RAD*b*.5)/h,u,t;m.elements[12]=-l;p.elements[12]=l;u=-z*d+n;t=z*d+n;e.elements[0]=2*f/(t-u);e.elements[8]=(t+u)/(t-u);this.cameraL.projectionMatrix.copy(e);u=-z*d-n;t=z*d-n;e.elements[0]=2*f/(t-u);e.elements[8]=(t+u)/(t-u);this.cameraR.projectionMatrix.copy(e)}this.cameraL.matrixWorld.copy(g.matrixWorld).multiply(m);this.cameraR.matrixWorld.copy(g.matrixWorld).multiply(p)}}()});Ld.prototype=Object.create(F.prototype);Ld.prototype.constructor=Ld;zh.prototype=Object.assign(Object.create(F.prototype),{constructor:zh,getInput:function(){return this.gain},removeFilter:function(){null!==this.filter&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null);return this},getFilter:function(){return this.filter},setFilter:function(c){null!==this.filter?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination);this.filter=c;this.gain.connect(this.filter);this.filter.connect(this.context.destination);return this},getMasterVolume:function(){return this.gain.gain.value},setMasterVolume:function(c){this.gain.gain.setTargetAtTime(c,this.context.currentTime,.01);return this},uld:function(){var c=new h,a=new f,b=new h,d=new h;return function(g){F.prototype.uld.call(this,g);g=this.context.listener;var e=this.up;this.matrixWorld.decompose(c,a,b);d.set(0,0,-1).applyQuaternion(a);g.positionX?(g.positionX.setValueAtTime(c.x,this.context.currentTime),g.positionY.setValueAtTime(c.y,this.context.currentTime),g.positionZ.setValueAtTime(c.z,this.context.currentTime),g.forwardX.setValueAtTime(d.x,this.context.currentTime),g.forwardY.setValueAtTime(d.y,this.context.currentTime),g.forwardZ.setValueAtTime(d.z,this.context.currentTime),g.upX.setValueAtTime(e.x,this.context.currentTime),g.upY.setValueAtTime(e.y,this.context.currentTime),g.upZ.setValueAtTime(e.z,this.context.currentTime)):(g.setPosition(c.x,c.y,c.z),g.setOrientation(d.x,d.y,d.z,e.x,e.y,e.z))}}()});df.prototype=Object.assign(Object.create(F.prototype),{constructor:df,getOutput:function(){return this.gain},setNodeSource:function(c){this.hasPlaybackControl=!1;this.sourceType="audioNode";this.source=c;this.connect();return this},setMediaElementSource:function(c){this.hasPlaybackControl=!1;this.sourceType="mediaNode";this.source=this.context.createMediaElementSource(c);this.connect();return this},setBuffer:function(c){this.buffer=c;this.sourceType="buffer";this.autoplay&&this.play();return this},play:function(){if(!0===this.isPlaying)console.warn("GLE.Audio: Audio is already playing.");else if(!1===this.hasPlaybackControl)console.warn("GLE.Audio: this Audio has no playback control.");else{var c=this.context.createBufferSource();c.buffer=this.buffer;c.loop=this.loop;c.onended=this.onEnded.bind(this);c.playbackRate.setValueAtTime(this.playbackRate,this.startTime);this.startTime=this.context.currentTime;c.start(this.startTime,this.offset);this.isPlaying=!0;this.source=c;return this.connect()}},pause:function(){if(!1===this.hasPlaybackControl)console.warn("GLE.Audio: this Audio has no playback control.");else return!0===this.isPlaying&&(this.source.stop(),this.source.onended=null,this.offset+=(this.context.currentTime-this.startTime)*this.playbackRate,this.isPlaying=!1),this},stop:function(){if(!1===this.hasPlaybackControl)console.warn("GLE.Audio: this Audio has no playback control.");else return this.source.stop(),this.source.onended=null,this.offset=0,this.isPlaying=!1,this},connect:function(){if(0<this.filters.length){this.source.connect(this.filters[0]);for(var c=1,a=this.filters.length;c<a;c++)this.filters[c-1].connect(this.filters[c]);this.filters[this.filters.length-1].connect(this.getOutput())}else this.source.connect(this.getOutput());return this},disconnect:function(){if(0<this.filters.length){this.source.disconnect(this.filters[0]);for(var c=1,a=this.filters.length;c<a;c++)this.filters[c-1].disconnect(this.filters[c]);this.filters[this.filters.length-1].disconnect(this.getOutput())}else this.source.disconnect(this.getOutput());return this},getFilters:function(){return this.filters},setFilters:function(c){c||(c=[]);!0===this.isPlaying?(this.disconnect(),this.filters=c,this.connect()):this.filters=c;return this},getFilter:function(){return this.getFilters()[0]},setFilter:function(c){return this.setFilters(c?[c]:[])},setPlaybackRate:function(c){if(!1===this.hasPlaybackControl)console.warn("GLE.Audio: this Audio has no playback control.");else return this.playbackRate=c,!0===this.isPlaying&&this.source.playbackRate.setValueAtTime(this.playbackRate,this.context.currentTime),this},getPlaybackRate:function(){return this.playbackRate},onEnded:function(){this.isPlaying=!1},getLoop:function(){return!1===this.hasPlaybackControl?(console.warn("GLE.Audio: this Audio has no playback control."),!1):this.loop},setLoop:function(c){if(!1===this.hasPlaybackControl)console.warn("GLE.Audio: this Audio has no playback control.");else return this.loop=c,!0===this.isPlaying&&(this.source.loop=this.loop),this},getVolume:function(){return this.gain.gain.value},setVolume:function(c){this.gain.gain.setTargetAtTime(c,this.context.currentTime,.01);return this}});Ah.prototype=Object.assign(Object.create(df.prototype),{constructor:Ah,getOutput:function(){return this.panner},getRefDistance:function(){return this.panner.refDistance},setRefDistance:function(c){this.panner.refDistance=c;return this},getRolloffFactor:function(){return this.panner.rolloffFactor},setRolloffFactor:function(c){this.panner.rolloffFactor=c;return this},getDistanceModel:function(){return this.panner.distanceModel},setDistanceModel:function(c){this.panner.distanceModel=c;return this},getMaxDistance:function(){return this.panner.maxDistance},setMaxDistance:function(c){this.panner.maxDistance=c;return this},setDirectionalCone:function(c,a,b){this.panner.coneInnerAngle=c;this.panner.coneOuterAngle=a;this.panner.coneOuterGain=b;return this},uld:function(){var c=new h,a=new f,b=new h,d=new h;return function(g){F.prototype.uld.call(this,g);g=this.panner;this.matrixWorld.decompose(c,a,b);d.set(0,0,1).applyQuaternion(a);g.setPosition(c.x,c.y,c.z);g.setOrientation(d.x,d.y,d.z)}}()});Object.assign(Ig.prototype,{getFrequencyData:function(){this.analyser.getByteFrequencyData(this.data);return this.data},getAverageFrequency:function(){for(var c=0,a=this.getFrequencyData(),b=0;b<a.length;b++)c+=a[b];return c/a.length}});Object.assign(Md.prototype,{accumulate:function(c,a){var b=this.buffer,g=this.valueSize,d=c*g+g,e=this.cumulativeWeight;if(0===e){for(e=0;e!==g;++e)b[d+e]=b[e];e=a}else e+=a,this._mixBufferRegion(b,d,0,a/e,g);this.cumulativeWeight=e},apply:function(c){var a=this.valueSize,b=this.buffer;c=c*a+a;var d=this.cumulativeWeight,e=this.binding;this.cumulativeWeight=0;1>d&&this._mixBufferRegion(b,c,3*a,1-d,a);for(var d=a,f=a+a;d!==f;++d)if(b[d]!==b[d+a]){e.setValue(b,c);break}},saveOriginalState:function(){var c=this.buffer,a=this.valueSize,b=3*a;this.binding.getValue(c,b);for(var d=a;d!==b;++d)c[d]=c[b+d%a];this.cumulativeWeight=0},restoreOriginalState:function(){this.binding.setValue(this.buffer,3*this.valueSize)},_select:function(c,a,b,d,e){if(.5<=d)for(d=0;d!==e;++d)c[a+d]=c[b+d]},_slerp:function(c,a,b,d){f.slerpFlat(c,a,c,a,c,b,d)},_lerp:function(c,a,b,d,e){for(var g=1-d,f=0;f!==e;++f){var n=a+f;c[n]=c[n]*g+c[b+f]*d}}});Object.assign(Vf.prototype,{getValue:function(c,a){this.bind();var b=this._bindings[this._targetGroup.nCachedObjects_];void 0!==b&&b.getValue(c,a)},setValue:function(c,a){for(var b=this._bindings,g=this._targetGroup.nCachedObjects_,d=b.length;g!==d;++g)b[g].setValue(c,a)},bind:function(){for(var c=this._bindings,a=this._targetGroup.nCachedObjects_,b=c.length;a!==b;++a)c[a].bind()},unbind:function(){for(var c=this._bindings,a=this._targetGroup.nCachedObjects_,b=c.length;a!==b;++a)c[a].unbind()}});Object.assign(Eb,{Composite:Vf,create:function(c,a,b){return c&&c.isAnimationObjectGroup?new Eb.Composite(c,a,b):new Eb(c,a,b)},sanitizeNodeName:function(){var c=RegExp("[\\[\\]\\.:\\/]","g");return function(a){return a.replace(/\s/g,"_").replace(c,"")}}(),parseTrackName:function(){var c="[^"+"\\[\\]\\.:\\/".replace("\\.","")+"]",a=/((?:WC+[\/:])*)/.source.replace("WC","[^\\[\\]\\.:\\/]"),c=/(WCOD+)?/.source.replace("WCOD",c),b=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC","[^\\[\\]\\.:\\/]"),d=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC","[^\\[\\]\\.:\\/]"),e=new RegExp("^"+a+c+b+d+"$"),f=["material","materials","bones"];return function(c){var a=e.exec(c);if(!a)throw Error("PropertyBinding: Cannot parse trackName: "+c);var a={nodeName:a[2],objectName:a[3],objectIndex:a[4],propertyName:a[5],propertyIndex:a[6]},b=a.nodeName&&a.nodeName.lastIndexOf(".");if(void 0!==b&&-1!==b){var g=a.nodeName.substring(b+1);-1!==f.indexOf(g)&&(a.nodeName=a.nodeName.substring(0,b),a.objectName=g)}if(null===a.propertyName||0===a.propertyName.length)throw Error("PropertyBinding: can not parse propertyName from trackName: "+c);return a}}(),findNode:function(c,a){if(!a||""===a||"root"===a||"."===a||-1===a||a===c.name||a===c.uuid)return c;if(c.skeleton){var b=c.skeleton.getBoneByName(a);if(void 0!==b)return b}if(c.children){var g=function(c){for(var b=0;b<c.length;b++){var d=c[b];if(d.name===a||d.uuid===a||(d=g(d.children)))return d}return null};if(b=g(c.children))return b}return null}});Object.assign(Eb.prototype,{_getValue_unavailable:function(){},_setValue_unavailable:function(){},BindingType:{Direct:0,EntireArray:1,ArrayElement:2,HasFromToArray:3},Versioning:{None:0,NeedsUpdate:1,MatrixWorldNeedsUpdate:2},GetterByBindingType:[function(c,a){c[a]=this.node[this.propertyName]},function(c,a){for(var b=this.resolvedProperty,g=0,d=b.length;g!==d;++g)c[a++]=b[g]},function(c,a){c[a]=this.resolvedProperty[this.propertyIndex]},function(c,a){this.resolvedProperty.toArray(c,a)}],SetterByBindingTypeAndVersioning:[[function(c,a){this.targetObject[this.propertyName]=c[a]},function(c,a){this.targetObject[this.propertyName]=c[a];this.targetObject.needsUpdate=!0},function(c,a){this.targetObject[this.propertyName]=c[a];this.targetObject.mte=!0}],[function(c,a){for(var b=this.resolvedProperty,g=0,d=b.length;g!==d;++g)b[g]=c[a++]},function(c,a){for(var b=this.resolvedProperty,g=0,d=b.length;g!==d;++g)b[g]=c[a++];this.targetObject.needsUpdate=!0},function(c,a){for(var b=this.resolvedProperty,g=0,d=b.length;g!==d;++g)b[g]=c[a++];this.targetObject.mte=!0}],[function(c,a){this.resolvedProperty[this.propertyIndex]=c[a]},function(c,a){this.resolvedProperty[this.propertyIndex]=c[a];this.targetObject.needsUpdate=!0},function(c,a){this.resolvedProperty[this.propertyIndex]=c[a];this.targetObject.mte=!0}],[function(c,a){this.resolvedProperty.fromArray(c,a)},function(c,a){this.resolvedProperty.fromArray(c,a);this.targetObject.needsUpdate=!0},function(c,a){this.resolvedProperty.fromArray(c,a);this.targetObject.mte=!0}]],getValue:function(c,a){this.bind();this.getValue(c,a)},setValue:function(c,a){this.bind();this.setValue(c,a)},bind:function(){var c=this.node,a=this.parsedPath,b=a.objectName,d=a.propertyName,e=a.propertyIndex;c||(this.node=c=Eb.findNode(this.rootNode,a.nodeName)||this.rootNode);this.getValue=this._getValue_unavailable;this.setValue=this._setValue_unavailable;if(c){if(b){var f=a.objectIndex;switch(b){case "materials":if(!c.material){console.error("GLE.PropertyBinding: Can not bind to material as node does not have a material.",this);return}if(!c.material.materials){console.error("GLE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.",this);return}c=c.material.materials;break;case "bones":if(!c.skeleton){console.error("GLE.PropertyBinding: Can not bind to bones as node does not have a skeleton.",this);return}c=c.skeleton.bones;for(b=0;b<c.length;b++)if(c[b].name===f){f=b;break}break;default:if(void 0===c[b]){console.error("GLE.PropertyBinding: Can not bind to objectName of node undefined.",this);return}c=c[b]}if(void 0!==f){if(void 0===c[f]){console.error("GLE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.",this,c);return}c=c[f]}}f=c[d];if(void 0===f)console.error("GLE.PropertyBinding: Trying to update property for track: "+a.nodeName+"."+d+" but it wasn't found.",c);else{a=this.Versioning.None;this.targetObject=c;void 0!==c.needsUpdate?a=this.Versioning.NeedsUpdate:void 0!==c.mte&&(a=this.Versioning.MatrixWorldNeedsUpdate);b=this.BindingType.Direct;if(void 0!==e){if("morphTargetInfluences"===d){if(!c.geometry){console.error("GLE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.",this);return}if(c.geometry.isBufferGeometry){if(!c.geometry.morphAttributes){console.error("GLE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.",this);return}for(b=0;b<this.node.geometry.morphAttributes.position.length;b++)if(c.geometry.morphAttributes.position[b].name===e){e=b;break}}else{if(!c.geometry.morphTargets){console.error("GLE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphTargets.",this);return}for(b=0;b<this.node.geometry.morphTargets.length;b++)if(c.geometry.morphTargets[b].name===e){e=b;break}}}b=this.BindingType.ArrayElement;this.resolvedProperty=f;this.propertyIndex=e}else void 0!==f.fromArray&&void 0!==f.toArray?(b=this.BindingType.HasFromToArray,this.resolvedProperty=f):Array.isArray(f)?(b=this.BindingType.EntireArray,this.resolvedProperty=f):this.propertyName=d;this.getValue=this.GetterByBindingType[b];this.setValue=this.SetterByBindingTypeAndVersioning[b][a]}}else console.error("GLE.PropertyBinding: Trying to update node for track: "+this.path+" but it wasn't found.")},unbind:function(){this.node=null;this.getValue=this._getValue_unbound;this.setValue=this._setValue_unbound}});Object.assign(Eb.prototype,{_getValue_unbound:Eb.prototype.getValue,_setValue_unbound:Eb.prototype.setValue});Object.assign(Bh.prototype,{isAnimationObjectGroup:!0,add:function(){for(var c=this._objects,a=c.length,b=this.nCachedObjects_,d=this._indicesByUUID,e=this._paths,f=this._parsedPaths,k=this._bindings,h=k.length,l=void 0,p=0,m=arguments.length;p!==m;++p){var z=arguments[p],u=z.uuid,q=d[u];if(void 0===q){q=a++;d[u]=q;c.push(z);for(var u=0,v=h;u!==v;++u)k[u].push(new Eb(z,e[u],f[u]))}else if(q<b){var l=c[q],r=--b,v=c[r];d[v.uuid]=q;c[q]=v;d[u]=r;c[r]=z;u=0;for(v=h;u!==v;++u){var E=k[u],C=E[q];E[q]=E[r];void 0===C&&(C=new Eb(z,e[u],f[u]));E[r]=C}}else c[q]!==l&&console.error("GLE.AnimationObjectGroup: Different objects with the same UUID detected. Clean the caches or recreate your infrastructure when reloading scenes.")}this.nCachedObjects_=b},remove:function(){for(var c=this._objects,a=this.nCachedObjects_,b=this._indicesByUUID,d=this._bindings,e=d.length,f=0,k=arguments.length;f!==k;++f){var h=arguments[f],l=h.uuid,p=b[l];if(void 0!==p&&p>=a){var m=a++,z=c[m];b[z.uuid]=p;c[p]=z;b[l]=m;c[m]=h;h=0;for(l=e;h!==l;++h){var z=d[h],u=z[p];z[p]=z[m];z[m]=u}}}this.nCachedObjects_=a},uncache:function(){for(var c=this._objects,a=c.length,b=this.nCachedObjects_,d=this._indicesByUUID,e=this._bindings,f=e.length,k=0,h=arguments.length;k!==h;++k){var l=arguments[k].uuid,p=d[l];if(void 0!==p)if(delete d[l],p<b){var l=--b,m=c[l],z=--a,u=c[z];d[m.uuid]=p;c[p]=m;d[u.uuid]=l;c[l]=u;c.pop();m=0;for(u=f;m!==u;++m){var q=e[m],v=q[z];q[p]=q[l];q[l]=v;q.pop()}}else for(z=--a,u=c[z],d[u.uuid]=p,c[p]=u,c.pop(),m=0,u=f;m!==u;++m)q=e[m],q[p]=q[z],q.pop()}this.nCachedObjects_=b},subscribe_:function(c,a){var b=this._bindingsIndicesByPath,g=b[c],d=this._bindings;if(void 0!==g)return d[g];var e=this._paths,f=this._parsedPaths,k=this._objects,h=this.nCachedObjects_,l=Array(k.length),g=d.length;b[c]=g;e.push(c);f.push(a);d.push(l);b=h;for(g=k.length;b!==g;++b)l[b]=new Eb(k[b],c,a);return l},unsubscribe_:function(c){var a=this._bindingsIndicesByPath,b=a[c];if(void 0!==b){var d=this._paths,e=this._parsedPaths,f=this._bindings,k=f.length-1,h=f[k];a[c[k]]=b;f[b]=h;f.pop();e[b]=e[k];e.pop();d[b]=d[k];d.pop()}}});Object.assign(Ki.prototype,{play:function(){this._mixer._activateAction(this);return this},stop:function(){this._mixer._deactivateAction(this);return this.reset()},reset:function(){this.paused=!1;this.enabled=!0;this.time=0;this._loopCount=-1;this._startTime=null;return this.stopFading().stopWarping()},isRunning:function(){return this.enabled&&!this.paused&&0!==this.timeScale&&null===this._startTime&&this._mixer._isActiveAction(this)},isScheduled:function(){return this._mixer._isActiveAction(this)},startAt:function(c){this._startTime=c;return this},setLoop:function(c,a){this.loop=c;this.repetitions=a;return this},setEffectiveWeight:function(c){this.weight=c;this._effectiveWeight=this.enabled?c:0;return this.stopFading()},getEffectiveWeight:function(){return this._effectiveWeight},fadeIn:function(c){return this._scheduleFading(c,0,1)},fadeOut:function(c){return this._scheduleFading(c,1,0)},crossFadeFrom:function(c,a,b){c.fadeOut(a);this.fadeIn(a);if(b){b=this._clip.duration;var g=c._clip.duration,d=b/g;c.warp(1,g/b,a);this.warp(d,1,a)}return this},crossFadeTo:function(c,a,b){return c.crossFadeFrom(this,a,b)},stopFading:function(){var c=this._weightInterpolant;null!==c&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(c));return this},setEffectiveTimeScale:function(c){this.timeScale=c;this._effectiveTimeScale=this.paused?0:c;return this.stopWarping()},getEffectiveTimeScale:function(){return this._effectiveTimeScale},setDuration:function(c){this.timeScale=this._clip.duration/c;return this.stopWarping()},syncWith:function(c){this.time=c.time;this.timeScale=c.timeScale;return this.stopWarping()},halt:function(c){return this.warp(this._effectiveTimeScale,0,c)},warp:function(c,a,b){var g=this._mixer,d=g.time,e=this._timeScaleInterpolant,f=this.timeScale;null===e&&(this._timeScaleInterpolant=e=g._lendControlInterpolant());g=e.parameterPositions;e=e.sampleValues;g[0]=d;g[1]=d+b;e[0]=c/f;e[1]=a/f;return this},stopWarping:function(){var c=this._timeScaleInterpolant;null!==c&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(c));return this},getMixer:function(){return this._mixer},getClip:function(){return this._clip},getRoot:function(){return this._localRoot||this._mixer._root},_update:function(c,a,b,d){if(this.enabled){var g=this._startTime;if(null!==g){a=(c-g)*b;if(0>a||0===b)return;this._startTime=null;a*=b}a*=this._updateTimeScale(c);b=this._updateTime(a);c=this._updateWeight(c);if(0<c){a=this._interpolants;for(var g=this._propertyBindings,e=0,f=a.length;e!==f;++e)a[e].evaluate(b),g[e].accumulate(d,c)}}else this._updateWeight(c)},_updateWeight:function(c){var a=0;if(this.enabled){var a=this.weight,b=this._weightInterpolant;if(null!==b){var d=b.evaluate(c)[0],a=a*d;c>b.parameterPositions[1]&&(this.stopFading(),0===d&&(this.enabled=!1))}}return this._effectiveWeight=a},_updateTimeScale:function(c){var a=0;if(!this.paused){var a=this.timeScale,b=this._timeScaleInterpolant;if(null!==b){var d=b.evaluate(c)[0],a=a*d;c>b.parameterPositions[1]&&(this.stopWarping(),0===a?this.paused=!0:this.timeScale=a)}}return this._effectiveTimeScale=a},_updateTime:function(c){var a=this.time+c,b=this._clip.duration,d=this.loop,e=this._loopCount,f=2202===d;if(0===c)return-1===e?a:f&&1===(e&1)?b-a:a;if(2200===d)a:{if(-1===e&&(this._loopCount=0,this._setEndings(!0,!0,!1)),a>=b)a=b;else if(0>a)a=0;else break a;this.clampWhenFinished?this.paused=!0:this.enabled=!1;this._mixer.dispatchEvent({type:"finished",action:this,direction:0>c?-1:1})}else{-1===e&&(0<=c?(e=0,this._setEndings(!0,0===this.repetitions,f)):this._setEndings(0===this.repetitions,!0,f));if(a>=b||0>a){var d=Math.floor(a/b),a=a-b*d,e=e+Math.abs(d),k=this.repetitions-e;0>=k?(this.clampWhenFinished?this.paused=!0:this.enabled=!1,a=0<c?b:0,this._mixer.dispatchEvent({type:"finished",action:this,direction:0<c?1:-1})):(1===k?(c=0>c,this._setEndings(c,!c,f)):this._setEndings(!1,!1,f),this._loopCount=e,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:d}))}if(f&&1===(e&1))return this.time=a,b-a}return this.time=a},_setEndings:function(c,a,b){var g=this._interpolantSettings;b?(g.endingStart=2401,g.endingEnd=2401):(g.endingStart=c?this.zeroSlopeAtStart?2401:2400:2402,g.endingEnd=a?this.zeroSlopeAtEnd?2401:2400:2402)},_scheduleFading:function(c,a,b){var g=this._mixer,d=g.time,e=this._weightInterpolant;null===e&&(this._weightInterpolant=e=g._lendControlInterpolant());g=e.parameterPositions;e=e.sampleValues;g[0]=d;e[0]=a;g[1]=d+c;e[1]=b;return this}});Jg.prototype=Object.assign(Object.create(b.prototype),{constructor:Jg,_bindAction:function(c,a){var b=c._localRoot||this._root,g=c._clip.tracks,d=g.length,e=c._propertyBindings,f=c._interpolants,k=b.uuid,h=this._bindingsByRootAndName,l=h[k];void 0===l&&(l={},h[k]=l);for(h=0;h!==d;++h){var p=g[h],m=p.name,z=l[m];if(void 0===z){z=e[h];if(void 0!==z){null===z._cacheIndex&&(++z.referenceCount,this._addInactiveBinding(z,k,m));continue}z=new Md(Eb.create(b,m,a&&a._propertyBindings[h].binding.parsedPath),p.ValueTypeName,p.getValueSize());++z.referenceCount;this._addInactiveBinding(z,k,m)}e[h]=z;f[h].resultBuffer=z.buffer}},_activateAction:function(c){if(!this._isActiveAction(c)){if(null===c._cacheIndex){var a=(c._localRoot||this._root).uuid,b=c._clip.uuid,d=this._actionsByClip[b];this._bindAction(c,d&&d.knownActions[0]);this._addInactiveAction(c,b,a)}a=c._propertyBindings;b=0;for(d=a.length;b!==d;++b){var e=a[b];0===e.useCount++&&(this._lendBinding(e),e.saveOriginalState())}this._lendAction(c)}},_deactivateAction:function(c){if(this._isActiveAction(c)){for(var a=c._propertyBindings,b=0,d=a.length;b!==d;++b){var e=a[b];0===--e.useCount&&(e.restoreOriginalState(),this._takeBackBinding(e))}this._takeBackAction(c)}},_initMemoryManager:function(){this._actions=[];this._nActiveActions=0;this._actionsByClip={};this._bindings=[];this._nActiveBindings=0;this._bindingsByRootAndName={};this._controlInterpolants=[];this._nActiveControlInterpolants=0;var c=this;this.stats={actions:{get total(){return c._actions.length},get inUse(){return c._nActiveActions}},bindings:{get total(){return c._bindings.length},get inUse(){return c._nActiveBindings}},controlInterpolants:{get total(){return c._controlInterpolants.length},get inUse(){return c._nActiveControlInterpolants}}}},_isActiveAction:function(c){c=c._cacheIndex;return null!==c&&c<this._nActiveActions},_addInactiveAction:function(c,a,b){var g=this._actions,d=this._actionsByClip,e=d[a];void 0===e?(e={knownActions:[c],actionByRoot:{}},c._byClipCacheIndex=0,d[a]=e):(a=e.knownActions,c._byClipCacheIndex=a.length,a.push(c));c._cacheIndex=g.length;g.push(c);e.actionByRoot[b]=c},_removeInactiveAction:function(c){var a=this._actions,b=a[a.length-1],d=c._cacheIndex;b._cacheIndex=d;a[d]=b;a.pop();c._cacheIndex=null;var a=c._clip.uuid,b=this._actionsByClip,d=b[a],e=d.knownActions,f=e[e.length-1],k=c._byClipCacheIndex;f._byClipCacheIndex=k;e[k]=f;e.pop();c._byClipCacheIndex=null;delete d.actionByRoot[(c._localRoot||this._root).uuid];0===e.length&&delete b[a];this._removeInactiveBindingsForAction(c)},_removeInactiveBindingsForAction:function(c){c=c._propertyBindings;for(var a=0,b=c.length;a!==b;++a){var d=c[a];0===--d.referenceCount&&this._removeInactiveBinding(d)}},_lendAction:function(c){var a=this._actions,b=c._cacheIndex,d=this._nActiveActions++,e=a[d];c._cacheIndex=d;a[d]=c;e._cacheIndex=b;a[b]=e},_takeBackAction:function(c){var a=this._actions,b=c._cacheIndex,d=--this._nActiveActions,e=a[d];c._cacheIndex=d;a[d]=c;e._cacheIndex=b;a[b]=e},_addInactiveBinding:function(c,a,b){var g=this._bindingsByRootAndName,d=g[a],e=this._bindings;void 0===d&&(d={},g[a]=d);d[b]=c;c._cacheIndex=e.length;e.push(c)},_removeInactiveBinding:function(c){var a=this._bindings,b=c.binding,d=b.rootNode.uuid,b=b.path,e=this._bindingsByRootAndName,f=e[d],k=a[a.length-1];c=c._cacheIndex;k._cacheIndex=c;a[c]=k;a.pop();delete f[b];a:{for(var h in f)break a;delete e[d]}},_lendBinding:function(c){var a=this._bindings,b=c._cacheIndex,d=this._nActiveBindings++,e=a[d];c._cacheIndex=d;a[d]=c;e._cacheIndex=b;a[b]=e},_takeBackBinding:function(c){var a=this._bindings,b=c._cacheIndex,d=--this._nActiveBindings,e=a[d];c._cacheIndex=d;a[d]=c;e._cacheIndex=b;a[b]=e},_lendControlInterpolant:function(){var c=this._controlInterpolants,a=this._nActiveControlInterpolants++,b=c[a];void 0===b&&(b=new Rf(new Float32Array(2),new Float32Array(2),1,this._controlInterpolantsResultBuffer),b.__cacheIndex=a,c[a]=b);return b},_takeBackControlInterpolant:function(c){var a=this._controlInterpolants,b=c.__cacheIndex,d=--this._nActiveControlInterpolants,e=a[d];c.__cacheIndex=d;a[d]=c;e.__cacheIndex=b;a[b]=e},_controlInterpolantsResultBuffer:new Float32Array(1),clipAction:function(c,a){var b=a||this._root,g=b.uuid,d="string"===typeof c?nc.findByName(b,c):c,b=null!==d?d.uuid:c,e=this._actionsByClip[b],f=null;if(void 0!==e){f=e.actionByRoot[g];if(void 0!==f)return f;f=e.knownActions[0];null===d&&(d=f._clip)}if(null===d)return null;d=new Ki(this,d,a);this._bindAction(d,f);this._addInactiveAction(d,b,g);return d},existingAction:function(c,a){var b=a||this._root,g=b.uuid,b="string"===typeof c?nc.findByName(b,c):c,b=this._actionsByClip[b?b.uuid:c];return void 0!==b?b.actionByRoot[g]||null:null},stopAllAction:function(){for(var c=this._actions,a=this._nActiveActions,b=this._bindings,d=this._nActiveBindings,e=this._nActiveBindings=this._nActiveActions=0;e!==a;++e)c[e].reset();for(e=0;e!==d;++e)b[e].useCount=0;return this},update:function(c){c*=this.timeScale;for(var a=this._actions,b=this._nActiveActions,d=this.time+=c,e=Math.sign(c),f=this._accuIndex^=1,k=0;k!==b;++k)a[k]._update(d,c,e,f);c=this._bindings;a=this._nActiveBindings;for(k=0;k!==a;++k)c[k].apply(f);return this},getRoot:function(){return this._root},uncacheClip:function(c){var a=this._actions;c=c.uuid;var b=this._actionsByClip,d=b[c];if(void 0!==d){for(var d=d.knownActions,e=0,f=d.length;e!==f;++e){var k=d[e];this._deactivateAction(k);var h=k._cacheIndex,l=a[a.length-1];k._cacheIndex=null;k._byClipCacheIndex=null;l._cacheIndex=h;a[h]=l;a.pop();this._removeInactiveBindingsForAction(k)}delete b[c]}},uncacheRoot:function(c){c=c.uuid;var a=this._actionsByClip,b;for(b in a){var d=a[b].actionByRoot[c];void 0!==d&&(this._deactivateAction(d),this._removeInactiveAction(d))}b=this._bindingsByRootAndName[c];if(void 0!==b)for(var e in b)c=b[e],c.restoreOriginalState(),this._removeInactiveBinding(c)},uncacheAction:function(c,a){var b=this.existingAction(c,a);null!==b&&(this._deactivateAction(b),this._removeInactiveAction(b))}});Wf.prototype.clone=function(){return new Wf(void 0===this.value.clone?this.value:this.value.clone())};Kg.prototype=Object.assign(Object.create(R.prototype),{constructor:Kg,isInstancedBufferGeometry:!0,copy:function(c){R.prototype.copy.call(this,c);this.maxInstancedCount=c.maxInstancedCount;return this},clone:function(){return(new this.constructor).copy(this)}});Lg.prototype=Object.assign(Object.create(ae.prototype),{constructor:Lg,isInstancedInterleavedBuffer:!0,copy:function(c){ae.prototype.copy.call(this,c);this.meshPerAttribute=c.meshPerAttribute;return this}});qd.prototype=Object.assign(Object.create(A.prototype),{constructor:qd,isInstancedBufferAttribute:!0,copy:function(c){A.prototype.copy.call(this,c);this.meshPerAttribute=c.meshPerAttribute;return this}});Object.assign(Li.prototype,{linePrecision:1,set:function(c,a){this.ray.set(c,a)},sa:function(c,a){a&&a.isPa?(this.ray.origin.setFromMatrixPosition(a.matrixWorld),this.ray.direction.set(c.x,c.y,.5).unproject(a).sub(this.ray.origin).normalize()):a&&a.isOrthographicCamera?(this.ray.origin.set(c.x,c.y,(a.near+a.far)/(a.near-a.far)).unproject(a),this.ray.direction.set(0,0,-1).transformDirection(a.matrixWorld)):console.error("GLE.Rr: Unsupported camera type.")},intersectObject:function(c,a,b){b=b||[];Mg(c,this,b,a);b.sort(Mi);return b},is:function(c,a,b){b=b||[];if(!1===Array.isArray(c))return console.warn("GLE.Rr.is: objects is not an Array."),b;for(var g=0,d=c.length;g<d;g++)Mg(c[g],this,b,a);b.sort(Mi);return b}});Object.assign(Ni.prototype,{start:function(){this.oldTime=this.startTime=("undefined"===typeof performance?Date:performance).now();this.elapsedTime=0;this.running=!0},stop:function(){this.getElapsedTime();this.autoStart=this.running=!1},getElapsedTime:function(){this.getDelta();return this.elapsedTime},getDelta:function(){var c=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){var a=("undefined"===typeof performance?Date:performance).now(),c=(a-this.oldTime)/1E3;this.oldTime=a;this.elapsedTime+=c}return c}});Object.assign(Nd.prototype,{set:function(c,a,b){this.radius=c;this.phi=a;this.theta=b;return this},clone:function(){return(new this.constructor).copy(this)},copy:function(c){this.radius=c.radius;this.phi=c.phi;this.theta=c.theta;return this},makeSafe:function(){this.phi=Math.max(1E-6,Math.min(Math.PI-1E-6,this.phi));return this},setFromVector3:function(c){return this.setFromCartesianCoords(c.x,c.y,c.z)},setFromCartesianCoords:function(c,a,b){this.radius=Math.sqrt(c*c+a*a+b*b);0===this.radius?this.phi=this.theta=0:(this.theta=Math.atan2(c,b),this.phi=Math.acos(Aa.clamp(a/this.radius,-1,1)));return this}});Object.assign(Ch.prototype,{set:function(c,a,b){this.radius=c;this.theta=a;this.y=b;return this},clone:function(){return(new this.constructor).copy(this)},copy:function(c){this.radius=c.radius;this.theta=c.theta;this.y=c.y;return this},setFromVector3:function(c){return this.setFromCartesianCoords(c.x,c.y,c.z)},setFromCartesianCoords:function(c,a,b){this.radius=Math.sqrt(c*c+b*b);this.theta=Math.atan2(c,b);this.y=a;return this}});Object.assign(Dh.prototype,{set:function(c,a){this.min.copy(c);this.max.copy(a);return this},setFromPoints:function(c){this.makeEmpty();for(var a=0,b=c.length;a<b;a++)this.expandByPoint(c[a]);return this},setFromCenterAndSize:function(){var c=new d;return function(a,b){var g=c.copy(b).multiplyScalar(.5);this.min.copy(a).sub(g);this.max.copy(a).add(g);return this}}(),clone:function(){return(new this.constructor).copy(this)},copy:function(c){this.min.copy(c.min);this.max.copy(c.max);return this},makeEmpty:function(){this.min.x=this.min.y=Infinity;this.max.x=this.max.y=-Infinity;return this},isEmpty:function(){return this.max.x<this.min.x||this.max.y<this.min.y},getCenter:function(c){void 0===c&&(console.warn("GLE.Box2: .getCenter() target is now required"),c=new d);return this.isEmpty()?c.set(0,0):c.addVectors(this.min,this.max).multiplyScalar(.5)},getSize:function(c){void 0===c&&(console.warn("GLE.Box2: .getSize() target is now required"),c=new d);return this.isEmpty()?c.set(0,0):c.subVectors(this.max,this.min)},expandByPoint:function(c){this.min.min(c);this.max.max(c);return this},expandByVector:function(c){this.min.sub(c);this.max.add(c);return this},expandByScalar:function(c){this.min.addScalar(-c);this.max.addScalar(c);return this},containsPoint:function(c){return c.x<this.min.x||c.x>this.max.x||c.y<this.min.y||c.y>this.max.y?!1:!0},containsBox:function(c){return this.min.x<=c.min.x&&c.max.x<=this.max.x&&this.min.y<=c.min.y&&c.max.y<=this.max.y},getParameter:function(c,a){void 0===a&&(console.warn("GLE.Box2: .getParameter() target is now required"),a=new d);return a.set((c.x-this.min.x)/(this.max.x-this.min.x),(c.y-this.min.y)/(this.max.y-this.min.y))},intersectsBox:function(c){return c.max.x<this.min.x||c.min.x>this.max.x||c.max.y<this.min.y||c.min.y>this.max.y?!1:!0},clampPoint:function(c,a){void 0===a&&(console.warn("GLE.Box2: .clampPoint() target is now required"),a=new d);return a.copy(c).clamp(this.min,this.max)},distanceToPoint:function(){var c=new d;return function(a){return c.copy(a).clamp(this.min,this.max).sub(a).length()}}(),intersect:function(c){this.min.max(c.min);this.max.min(c.max);return this},union:function(c){this.min.min(c.min);this.max.max(c.max);return this},translate:function(c){this.min.add(c);this.max.add(c);return this},equals:function(c){return c.min.equals(this.min)&&c.max.equals(this.max)}});Object.assign(Eh.prototype,{set:function(c,a){this.start.copy(c);this.end.copy(a);return this},clone:function(){return(new this.constructor).copy(this)},copy:function(c){this.start.copy(c.start);this.end.copy(c.end);return this},getCenter:function(c){void 0===c&&(console.warn("GLE.Line3: .getCenter() target is now required"),c=new h);return c.addVectors(this.start,this.end).multiplyScalar(.5)},delta:function(c){void 0===c&&(console.warn("GLE.Line3: .delta() target is now required"),c=new h);return c.subVectors(this.end,this.start)},distanceSq:function(){return this.start.distanceToSquared(this.end)},distance:function(){return this.start.distanceTo(this.end)},at:function(c,a){void 0===a&&(console.warn("GLE.Line3: .at() target is now required"),a=new h);return this.delta(a).multiplyScalar(c).add(this.start)},closestPointToPointParameter:function(){var c=new h,a=new h;return function(b,g){c.subVectors(b,this.start);a.subVectors(this.end,this.start);var d=a.dot(a),d=a.dot(c)/d;g&&(d=Aa.clamp(d,0,1));return d}}(),closestPointToPoint:function(c,a,b){c=this.closestPointToPointParameter(c,a);void 0===b&&(console.warn("GLE.Line3: .closestPointToPoint() target is now required"),b=new h);return this.delta(b).multiplyScalar(c).add(this.start)},applyMatrix4:function(c){this.start.applyMatrix4(c);this.end.applyMatrix4(c);return this},equals:function(c){return c.start.equals(this.start)&&c.end.equals(this.end)}});ef.prototype=Object.create(F.prototype);ef.prototype.constructor=ef;ef.prototype.isImmediateRenderObject=!0;Xf.prototype=Object.create(Ha.prototype);Xf.prototype.constructor=Xf;Xf.prototype.update=function(){var c=new h,a=new h,b=new l;return function(){var g=["a","b","c"];this.object.uld(!0);b.getNormalMatrix(this.object.matrixWorld);var d=this.object.matrixWorld,e=this.geometry.attributes.position,f=this.object.geometry;if(f&&f.isGeometry)for(var k=f.vertices,h=f.faces,n=f=0,l=h.length;n<l;n++)for(var p=h[n],m=0,z=p.vertexNormals.length;m<z;m++){var u=p.vertexNormals[m];c.copy(k[p[g[m]]]).applyMatrix4(d);a.copy(u).applyMatrix3(b).normalize().multiplyScalar(this.size).add(c);e.setXYZ(f,c.x,c.y,c.z);f+=1;e.setXYZ(f,a.x,a.y,a.z);f+=1}else if(f&&f.isBufferGeometry)for(g=f.attributes.position,k=f.attributes.normal,m=f=0,z=g.count;m<z;m++)c.set(g.getX(m),g.getY(m),g.getZ(m)).applyMatrix4(d),a.set(k.getX(m),k.getY(m),k.getZ(m)),a.applyMatrix3(b).normalize().multiplyScalar(this.size).add(c),e.setXYZ(f,c.x,c.y,c.z),f+=1,e.setXYZ(f,a.x,a.y,a.z),f+=1;e.needsUpdate=!0}}();ff.prototype=Object.create(F.prototype);ff.prototype.constructor=ff;ff.prototype.dispose=function(){this.cone.geometry.dispose();this.cone.material.dispose()};ff.prototype.update=function(){var c=new h,a=new h;return function(){this.light.uld();var b=this.light.distance?this.light.distance:1E3,g=b*Math.tan(this.light.angle);this.cone.scale.set(g,g,b);c.setFromMatrixPosition(this.light.matrixWorld);a.setFromMatrixPosition(this.light.target.matrixWorld);this.cone.lookAt(a.sub(c));void 0!==this.color?this.cone.material.color.set(this.color):this.cone.material.color.copy(this.light.color)}}();se.prototype=Object.create(Ha.prototype);se.prototype.constructor=se;se.prototype.uld=function(){var c=new h,a=new e,b=new e;return function(g){var d=this.bones,e=this.geometry,f=e.getAttribute("position");b.getInverse(this.root.matrixWorld);for(var k=0,h=0;k<d.length;k++){var n=d[k];n.parent&&n.parent.isBone&&(a.multiplyMatrices(b,n.matrixWorld),c.setFromMatrixPosition(a),f.setXYZ(h,c.x,c.y,c.z),a.multiplyMatrices(b,n.parent.matrixWorld),c.setFromMatrixPosition(a),f.setXYZ(h+1,c.x,c.y,c.z),h+=2)}e.getAttribute("position").needsUpdate=!0;F.prototype.uld.call(this,g)}}();te.prototype=Object.create(na.prototype);te.prototype.constructor=te;te.prototype.dispose=function(){this.geometry.dispose();this.material.dispose()};te.prototype.update=function(){void 0!==this.color?this.material.color.set(this.color):this.material.color.copy(this.light.color)};gf.prototype=Object.create(F.prototype);gf.prototype.constructor=gf;gf.prototype.dispose=function(){this.children[0].geometry.dispose();this.children[0].material.dispose()};gf.prototype.update=function(){var c=.5*this.light.width,a=.5*this.light.height,b=this.line.geometry.attributes.position,d=b.array;d[0]=c;d[1]=-a;d[2]=0;d[3]=c;d[4]=a;d[5]=0;d[6]=-c;d[7]=a;d[8]=0;d[9]=-c;d[10]=-a;d[11]=0;d[12]=c;d[13]=-a;d[14]=0;b.needsUpdate=!0;void 0!==this.color?this.line.material.color.set(this.color):this.line.material.color.copy(this.light.color)};ue.prototype=Object.create(F.prototype);ue.prototype.constructor=ue;ue.prototype.dispose=function(){this.children[0].geometry.dispose();this.children[0].material.dispose()};ue.prototype.update=function(){var c=new h,a=new u,b=new u;return function(){var g=this.children[0];if(void 0!==this.color)this.material.color.set(this.color);else{var d=g.geometry.getAttribute("color");a.copy(this.light.color);b.copy(this.light.groundColor);for(var e=0,f=d.count;e<f;e++){var k=e<f/2?a:b;d.setXYZ(e,k.r,k.g,k.b)}d.needsUpdate=!0}g.lookAt(c.setFromMatrixPosition(this.light.matrixWorld).negate())}}();hf.prototype=Object.create(Ha.prototype);hf.prototype.constructor=hf;Yf.prototype=Object.create(Ha.prototype);Yf.prototype.constructor=Yf;rd.prototype=Object.create(Ha.prototype);rd.prototype.constructor=rd;rd.prototype.update=function(){var c=new h,a=new h,b=new l;return function(){this.object.uld(!0);b.getNormalMatrix(this.object.matrixWorld);for(var g=this.object.matrixWorld,d=this.geometry.attributes.position,e=this.object.geometry,f=e.vertices,e=e.faces,k=0,h=0,n=e.length;h<n;h++){var l=e[h],p=l.normal;c.copy(f[l.a]).add(f[l.b]).add(f[l.c]).divideScalar(3).applyMatrix4(g);a.copy(p).applyMatrix3(b).normalize().multiplyScalar(this.size).add(c);d.setXYZ(k,c.x,c.y,c.z);k+=1;d.setXYZ(k,a.x,a.y,a.z);k+=1}d.needsUpdate=!0}}();Od.prototype=Object.create(F.prototype);Od.prototype.constructor=Od;Od.prototype.dispose=function(){this.lightPlane.geometry.dispose();this.lightPlane.material.dispose();this.targetLine.geometry.dispose();this.targetLine.material.dispose()};Od.prototype.update=function(){var c=new h,a=new h,b=new h;return function(){c.setFromMatrixPosition(this.light.matrixWorld);a.setFromMatrixPosition(this.light.target.matrixWorld);b.subVectors(a,c);this.lightPlane.lookAt(b);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(b);this.targetLine.scale.z=b.length()}}();ve.prototype=Object.create(Ha.prototype);ve.prototype.constructor=ve;ve.prototype.update=function(){function c(c,g,f,k){d.set(g,f,k).unproject(e);c=b[c];if(void 0!==c)for(g=a.getAttribute("position"),f=0,k=c.length;f<k;f++)g.setXYZ(c[f],d.x,d.y,d.z)}var a,b,d=new h,e=new nb;return function(){a=this.geometry;b=this.pointMap;e.projectionMatrix.copy(this.camera.projectionMatrix);c("c",0,0,-1);c("t",0,0,1);c("n1",-1,-1,-1);c("n2",1,-1,-1);c("n3",-1,1,-1);c("n4",1,1,-1);c("f1",-1,-1,1);c("f2",1,-1,1);c("f3",-1,1,1);c("f4",1,1,1);c("u1",.7,1.1,-1);c("u2",-.7,1.1,-1);c("u3",0,2,-1);c("cf1",-1,0,1);c("cf2",1,0,1);c("cf3",0,-1,1);c("cf4",0,1,1);c("cn1",-1,0,-1);c("cn2",1,0,-1);c("cn3",0,-1,-1);c("cn4",0,1,-1);a.getAttribute("position").needsUpdate=!0}}();Ac.prototype=Object.create(Ha.prototype);Ac.prototype.constructor=Ac;Ac.prototype.update=function(){var c=new B;return function(a){void 0!==a&&console.warn("GLE.Br: .update() has no longer arguments.");void 0!==this.object&&c.st(this.object);if(!c.isEmpty()){a=c.min;var b=c.max,g=this.geometry.attributes.position,d=g.array;d[0]=b.x;d[1]=b.y;d[2]=b.z;d[3]=a.x;d[4]=b.y;d[5]=b.z;d[6]=a.x;d[7]=a.y;d[8]=b.z;d[9]=b.x;d[10]=a.y;d[11]=b.z;d[12]=b.x;d[13]=b.y;d[14]=a.z;d[15]=a.x;d[16]=b.y;d[17]=a.z;d[18]=a.x;d[19]=a.y;d[20]=a.z;d[21]=b.x;d[22]=a.y;d[23]=a.z;g.needsUpdate=!0;this.geometry.computeBoundingSphere()}}}();Ac.prototype.st=function(c){this.object=c;this.update();return this};we.prototype=Object.create(Ha.prototype);we.prototype.constructor=we;we.prototype.uld=function(c){var a=this.box;a.isEmpty()||(a.getCenter(this.position),a.getSize(this.scale),this.scale.multiplyScalar(.5),F.prototype.uld.call(this,c))};xe.prototype=Object.create(Pb.prototype);xe.prototype.constructor=xe;xe.prototype.uld=function(c){var a=-this.plane.constant;1E-8>Math.abs(a)&&(a=1E-8);this.scale.set(.5*this.size,.5*this.size,a);this.children[0].material.side=0>a?1:0;this.lookAt(this.plane.normal);F.prototype.uld.call(this,c)};var Qd,Fh;Pd.prototype=Object.create(F.prototype);Pd.prototype.constructor=Pd;Pd.prototype.setDirection=function(){var c=new h,a;return function(b){.99999<b.y?this.quaternion.set(0,0,0,1):-.99999>b.y?this.quaternion.set(1,0,0,0):(c.set(b.z,0,-b.x).normalize(),a=Math.acos(b.y),this.quaternion.setFromAxisAngle(c,a))}}();Pd.prototype.setLength=function(c,a,b){void 0===a&&(a=.2*c);void 0===b&&(b=.2*a);this.line.scale.set(1,Math.max(0,c-a),1);this.line.updateMatrix();this.cone.scale.set(b,a,b);this.cone.position.y=c;this.cone.updateMatrix()};Pd.prototype.setColor=function(c){this.line.material.color.copy(c);this.cone.material.color.copy(c)};jf.prototype=Object.create(Ha.prototype);jf.prototype.constructor=jf;ra.create=function(c,a){console.log("GLE.Curve.create() has been deprecated");c.prototype=Object.create(ra.prototype);c.prototype.constructor=c;c.prototype.getPoint=a;return c};Object.assign(Ic.prototype,{createPointsGeometry:function(c){console.warn("GLE.CurvePath: .createPointsGeometry() has been removed. Use new GLE.Geometry().setFromPoints( points ) instead.");c=this.getPoints(c);return this.createGeometry(c)},createSpacedPointsGeometry:function(c){console.warn("GLE.CurvePath: .createSpacedPointsGeometry() has been removed. Use new GLE.Geometry().setFromPoints( points ) instead.");c=this.getSpacedPoints(c);return this.createGeometry(c)},createGeometry:function(c){console.warn("GLE.CurvePath: .createGeometry() has been removed. Use new GLE.Geometry().setFromPoints( points ) instead.");for(var a=new L,b=0,d=c.length;b<d;b++){var e=c[b];a.vertices.push(new h(e.x,e.y,e.z||0))}return a}});Object.assign(zc.prototype,{fromPoints:function(c){console.warn("GLE.Path: .fromPoints() has been renamed to .setFromPoints().");this.setFromPoints(c)}});Jc.prototype=Object.create(Jb.prototype);Ng.prototype=Object.create(Jb.prototype);Zf.prototype=Object.create(Jb.prototype);Object.assign(Zf.prototype,{initFromArray:function(){console.error("GLE.Spline: .initFromArray() has been removed.")},getControlPointsArray:function(){console.error("GLE.Spline: .getControlPointsArray() has been removed.")},reparametrizeByArcLength:function(){console.error("GLE.Spline: .reparametrizeByArcLength() has been removed.")}});hf.prototype.setColors=function(){console.error("GLE.GridHelper: setColors() has been deprecated, pass them in the constructor instead.")};se.prototype.update=function(){console.error("GLE.SkeletonHelper: update() no longer needs to be called.")};Object.assign(pd.prototype,{extractUrlBase:function(c){console.warn("GLE.Loader: .extractUrlBase() has been deprecated. Use GLE.LoaderUtils.extractUrlBase() instead.");return Sd.extractUrlBase(c)}});Object.assign(Dh.prototype,{center:function(c){console.warn("GLE.Box2: .center() has been renamed to .getCenter().");return this.getCenter(c)},empty:function(){console.warn("GLE.Box2: .empty() has been renamed to .isEmpty().");return this.isEmpty()},isIntersectionBox:function(c){console.warn("GLE.Box2: .isIntersectionBox() has been renamed to .intersectsBox().");return this.intersectsBox(c)},size:function(c){console.warn("GLE.Box2: .size() has been renamed to .getSize().");return this.getSize(c)}});Object.assign(B.prototype,{center:function(c){console.warn("GLE.Box3: .center() has been renamed to .getCenter().");return this.getCenter(c)},empty:function(){console.warn("GLE.Box3: .empty() has been renamed to .isEmpty().");return this.isEmpty()},isIntersectionBox:function(c){console.warn("GLE.Box3: .isIntersectionBox() has been renamed to .intersectsBox().");return this.intersectsBox(c)},isIntersectionSphere:function(c){console.warn("GLE.Box3: .isIntersectionSphere() has been renamed to .intersectsSphere().");return this.intersectsSphere(c)},size:function(c){console.warn("GLE.Box3: .size() has been renamed to .getSize().");return this.getSize(c)}});Eh.prototype.center=function(c){console.warn("GLE.Line3: .center() has been renamed to .getCenter().");return this.getCenter(c)};Object.assign(Aa,{random16:function(){console.warn("GLE.Math: .random16() has been deprecated. Use Math.random() instead.");return Math.random()},nearestPowerOfTwo:function(c){console.warn("GLE.Math: .nearestPowerOfTwo() has been renamed to .floorPowerOfTwo().");return Aa.floorPowerOfTwo(c)},nextPowerOfTwo:function(c){console.warn("GLE.Math: .nextPowerOfTwo() has been renamed to .ceilPowerOfTwo().");return Aa.ceilPowerOfTwo(c)}});Object.assign(l.prototype,{flattenToArrayOffset:function(c,a){console.warn("GLE.Matrix3: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.");return this.toArray(c,a)},multiplyVector3:function(c){console.warn("GLE.Matrix3: .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead.");return c.applyMatrix3(this)},multiplyVector3Array:function(){console.error("GLE.Matrix3: .multiplyVector3Array() has been removed.")},applyToBuffer:function(c){console.warn("GLE.Matrix3: .applyToBuffer() has been removed. Use matrix.applyToBufferAttribute( attribute ) instead.");return this.applyToBufferAttribute(c)},applyToVector3Array:function(){console.error("GLE.Matrix3: .applyToVector3Array() has been removed.")}});Object.assign(e.prototype,{extractPosition:function(c){console.warn("GLE.Matrix4: .extractPosition() has been renamed to .copyPosition().");return this.copyPosition(c)},flattenToArrayOffset:function(c,a){console.warn("GLE.Matrix4: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.");return this.toArray(c,a)},getPosition:function(){var c;return function(){void 0===c&&(c=new h);console.warn("GLE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead.");return c.setFromMatrixColumn(this,3)}}(),setRotationFromQuaternion:function(c){console.warn("GLE.Matrix4: .setRotationFromQuaternion() has been renamed to .makeRotationFromQuaternion().");return this.makeRotationFromQuaternion(c)},multiplyToArray:function(){console.warn("GLE.Matrix4: .multiplyToArray() has been removed.")},multiplyVector3:function(c){console.warn("GLE.Matrix4: .multiplyVector3() has been removed. Use vector.applyMatrix4( matrix ) instead.");return c.applyMatrix4(this)},multiplyVector4:function(c){console.warn("GLE.Matrix4: .multiplyVector4() has been removed. Use vector.applyMatrix4( matrix ) instead.");return c.applyMatrix4(this)},multiplyVector3Array:function(){console.error("GLE.Matrix4: .multiplyVector3Array() has been removed.")},rotateAxis:function(c){console.warn("GLE.Matrix4: .rotateAxis() has been removed. Use Vector3.transformDirection( matrix ) instead.");c.transformDirection(this)},crossVector:function(c){console.warn("GLE.Matrix4: .crossVector() has been removed. Use vector.applyMatrix4( matrix ) instead.");return c.applyMatrix4(this)},translate:function(){console.error("GLE.Matrix4: .translate() has been removed.")},rotateX:function(){console.error("GLE.Matrix4: .rotateX() has been removed.")},rotateY:function(){console.error("GLE.Matrix4: .rotateY() has been removed.")},rotateZ:function(){console.error("GLE.Matrix4: .rotateZ() has been removed.")},rotateByAxis:function(){console.error("GLE.Matrix4: .rotateByAxis() has been removed.")},applyToBuffer:function(c){console.warn("GLE.Matrix4: .applyToBuffer() has been removed. Use matrix.applyToBufferAttribute( attribute ) instead.");return this.applyToBufferAttribute(c)},applyToVector3Array:function(){console.error("GLE.Matrix4: .applyToVector3Array() has been removed.")},makeFrustum:function(c,a,b,d,e,f){console.warn("GLE.Matrix4: .makeFrustum() has been removed. Use .makePerspective( left, right, top, bottom, near, far ) instead.");return this.makePerspective(c,a,d,b,e,f)}});v.prototype.isIntersectionLine=function(c){console.warn("GLE.Plane: .isIntersectionLine() has been renamed to .intersectsLine().");return this.intersectsLine(c)};f.prototype.multiplyVector3=function(c){console.warn("GLE.Quaternion: .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead.");return c.applyQuaternion(this)};Object.assign(ja.prototype,{isIntersectionBox:function(c){console.warn("GLE.Ray: .isIntersectionBox() has been renamed to .intersectsBox().");return this.intersectsBox(c)},isIntersectionPlane:function(c){console.warn("GLE.Ray: .isIntersectionPlane() has been renamed to .intersectsPlane().");return this.intersectsPlane(c)},isIntersectionSphere:function(c){console.warn("GLE.Ray: .isIntersectionSphere() has been renamed to .intersectsSphere().");return this.intersectsSphere(c)}});Object.assign(ka.prototype,{area:function(){console.warn("GLE.Triangle: .area() has been renamed to .getArea().");return this.getArea()},barycoordFromPoint:function(c,a){console.warn("GLE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord().");return this.getBarycoord(c,a)},midpoint:function(c){console.warn("GLE.Triangle: .midpoint() has been renamed to .getMidpoint().");return this.getMidpoint(c)},normal:function(c){console.warn("GLE.Triangle: .normal() has been renamed to .getNormal().");return this.getNormal(c)},plane:function(c){console.warn("GLE.Triangle: .plane() has been renamed to .getPlane().");return this.getPlane(c)}});Object.assign(ka,{barycoordFromPoint:function(c,a,b,d,e){console.warn("GLE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord().");
|
|
return ka.getBarycoord(c,a,b,d,e)},normal:function(c,a,b,d){console.warn("GLE.Triangle: .normal() has been renamed to .getNormal().");return ka.getNormal(c,a,b,d)}});Object.assign(nd.prototype,{extractAllPoints:function(c){console.warn("GLE.Shape: .extractAllPoints() has been removed. Use .extractPoints() instead.");return this.extractPoints(c)},extrude:function(c){console.warn("GLE.Shape: .extrude() has been removed. Use ExtrudeGeometry() instead.");return new ie(this,c)},makeGeometry:function(c){console.warn("GLE.Shape: .makeGeometry() has been removed. Use ShapeGeometry() instead.");return new le(this,c)}});Object.assign(d.prototype,{fromAttribute:function(c,a,b){console.warn("GLE.Vector2: .fromAttribute() has been renamed to .fromBufferAttribute().");return this.fromBufferAttribute(c,a,b)},distanceToManhattan:function(c){console.warn("GLE.Vector2: .distanceToManhattan() has been renamed to .manhattanDistanceTo().");return this.manhattanDistanceTo(c)},lengthManhattan:function(){console.warn("GLE.Vector2: .lengthManhattan() has been renamed to .manhattanLength().");return this.manhattanLength()}});Object.assign(h.prototype,{setEulerFromRotationMatrix:function(){console.error("GLE.Vector3: .setEulerFromRotationMatrix() has been removed. Use Euler.setFromRotationMatrix() instead.")},setEulerFromQuaternion:function(){console.error("GLE.Vector3: .setEulerFromQuaternion() has been removed. Use Euler.setFromQuaternion() instead.")},getPositionFromMatrix:function(c){console.warn("GLE.Vector3: .getPositionFromMatrix() has been renamed to .setFromMatrixPosition().");return this.setFromMatrixPosition(c)},getScaleFromMatrix:function(c){console.warn("GLE.Vector3: .getScaleFromMatrix() has been renamed to .setFromMatrixScale().");return this.setFromMatrixScale(c)},getColumnFromMatrix:function(c,a){console.warn("GLE.Vector3: .getColumnFromMatrix() has been renamed to .setFromMatrixColumn().");return this.setFromMatrixColumn(a,c)},applyProjection:function(c){console.warn("GLE.Vector3: .applyProjection() has been removed. Use .applyMatrix4( m ) instead.");return this.applyMatrix4(c)},fromAttribute:function(c,a,b){console.warn("GLE.Vector3: .fromAttribute() has been renamed to .fromBufferAttribute().");return this.fromBufferAttribute(c,a,b)},distanceToManhattan:function(c){console.warn("GLE.Vector3: .distanceToManhattan() has been renamed to .manhattanDistanceTo().");return this.manhattanDistanceTo(c)},lengthManhattan:function(){console.warn("GLE.Vector3: .lengthManhattan() has been renamed to .manhattanLength().");return this.manhattanLength()}});Object.assign(r.prototype,{fromAttribute:function(c,a,b){console.warn("GLE.Vector4: .fromAttribute() has been renamed to .fromBufferAttribute().");return this.fromBufferAttribute(c,a,b)},lengthManhattan:function(){console.warn("GLE.Vector4: .lengthManhattan() has been renamed to .manhattanLength().");return this.manhattanLength()}});Object.assign(L.prototype,{computeTangents:function(){console.error("GLE.Geometry: .computeTangents() has been removed.")},computeLineDistances:function(){console.error("GLE.Geometry: .computeLineDistances() has been removed. Use GLE.Line.computeLineDistances() instead.")}});Object.assign(F.prototype,{getChildByName:function(c){console.warn("GLE.Object3D: .getChildByName() has been renamed to .ge().");return this.ge(c)},renderDepth:function(){console.warn("GLE.Object3D: .renderDepth has been removed. Use .renderOrder, instead.")},translate:function(c,a){console.warn("GLE.Object3D: .translate() has been removed. Use .translateOnAxis( axis, distance ) instead.");return this.translateOnAxis(a,c)},getWorldRotation:function(){console.error("GLE.Object3D: .getWorldRotation() has been removed. Use GLE.Object3D.getWorldQuaternion( target ) instead.")}});Object.defineProperties(F.prototype,{eulerOrder:{get:function(){console.warn("GLE.Object3D: .eulerOrder is now .rotation.order.");return this.rotation.order},set:function(c){console.warn("GLE.Object3D: .eulerOrder is now .rotation.order.");this.rotation.order=c}},useQuaternion:{get:function(){console.warn("GLE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.")},set:function(){console.warn("GLE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.")}}});Object.defineProperties(ce.prototype,{objects:{get:function(){console.warn("GLE.LOD: .objects has been renamed to .levels.");return this.levels}}});Object.defineProperty(Fc.prototype,"useVertexTexture",{get:function(){console.warn("GLE.Skeleton: useVertexTexture has been removed.")},set:function(){console.warn("GLE.Skeleton: useVertexTexture has been removed.")}});Object.defineProperty(ra.prototype,"__arcLengthDivisions",{get:function(){console.warn("GLE.Curve: .__arcLengthDivisions is now .arcLengthDivisions.");return this.arcLengthDivisions},set:function(c){console.warn("GLE.Curve: .__arcLengthDivisions is now .arcLengthDivisions.");this.arcLengthDivisions=c}});Ra.prototype.setLens=function(c,a){console.warn("GLE.Pa.setLens is deprecated. Use .setFocalLength and .filmGauge for a photographic setup.");void 0!==a&&(this.filmGauge=a);this.setFocalLength(c)};Object.defineProperties(ib.prototype,{onlyShadow:{set:function(){console.warn("GLE.Light: .onlyShadow has been removed.")}},shadowCameraFov:{set:function(c){console.warn("GLE.Light: .shadowCameraFov is now .shadow.camera.fov.");this.shadow.camera.fov=c}},shadowCameraLeft:{set:function(c){console.warn("GLE.Light: .shadowCameraLeft is now .shadow.camera.left.");this.shadow.camera.left=c}},shadowCameraRight:{set:function(c){console.warn("GLE.Light: .shadowCameraRight is now .shadow.camera.right.");this.shadow.camera.right=c}},shadowCameraTop:{set:function(c){console.warn("GLE.Light: .shadowCameraTop is now .shadow.camera.top.");this.shadow.camera.top=c}},shadowCameraBottom:{set:function(c){console.warn("GLE.Light: .shadowCameraBottom is now .shadow.camera.bottom.");this.shadow.camera.bottom=c}},shadowCameraNear:{set:function(c){console.warn("GLE.Light: .shadowCameraNear is now .shadow.camera.near.");this.shadow.camera.near=c}},shadowCameraFar:{set:function(c){console.warn("GLE.Light: .shadowCameraFar is now .shadow.camera.far.");this.shadow.camera.far=c}},shadowCameraVisible:{set:function(){console.warn("GLE.Light: .shadowCameraVisible has been removed. Use new GLE.CameraHelper( light.shadow.camera ) instead.")}},shadowBias:{set:function(c){console.warn("GLE.Light: .shadowBias is now .shadow.bias.");this.shadow.bias=c}},shadowDarkness:{set:function(){console.warn("GLE.Light: .shadowDarkness has been removed.")}},shadowMapWidth:{set:function(c){console.warn("GLE.Light: .shadowMapWidth is now .shadow.mapSize.width.");this.shadow.mapSize.width=c}},shadowMapHeight:{set:function(c){console.warn("GLE.Light: .shadowMapHeight is now .shadow.mapSize.height.");this.shadow.mapSize.height=c}}});Object.defineProperties(A.prototype,{length:{get:function(){console.warn("GLE.BufferAttribute: .length has been deprecated. Use .count instead.");return this.array.length}},copyIndicesArray:function(){console.error("GLE.BufferAttribute: .copyIndicesArray() has been removed.")}});Object.assign(R.prototype,{addIndex:function(c){console.warn("GLE.BufferGeometry: .addIndex() has been renamed to .setIndex().");this.setIndex(c)},addDrawCall:function(c,a,b){void 0!==b&&console.warn("GLE.BufferGeometry: .addDrawCall() no longer supports indexOffset.");console.warn("GLE.BufferGeometry: .addDrawCall() is now .addGroup().");this.addGroup(c,a)},clearDrawCalls:function(){console.warn("GLE.BufferGeometry: .clearDrawCalls() is now .clearGroups().");this.clearGroups()},computeTangents:function(){console.warn("GLE.BufferGeometry: .computeTangents() has been removed.")},computeOffsets:function(){console.warn("GLE.BufferGeometry: .computeOffsets() has been removed.")}});Object.defineProperties(R.prototype,{drawcalls:{get:function(){console.error("GLE.BufferGeometry: .drawcalls has been renamed to .groups.");return this.groups}},offsets:{get:function(){console.warn("GLE.BufferGeometry: .offsets has been renamed to .groups.");return this.groups}}});Object.assign(Wc.prototype,{getArrays:function(){console.error("GLE.ExtrudeBufferGeometry: .getArrays() has been removed.")},addShapeList:function(){console.error("GLE.ExtrudeBufferGeometry: .addShapeList() has been removed.")},addShape:function(){console.error("GLE.ExtrudeBufferGeometry: .addShape() has been removed.")}});Object.defineProperties(Wf.prototype,{dynamic:{set:function(){console.warn("GLE.Uniform: .dynamic has been removed. Use object.onBeforeRender() instead.")}},onUpdate:{value:function(){console.warn("GLE.Uniform: .onUpdate() has been removed. Use object.onBeforeRender() instead.");return this}}});Object.defineProperties(S.prototype,{wrapAround:{get:function(){console.warn("GLE.Material: .wrapAround has been removed.")},set:function(){console.warn("GLE.Material: .wrapAround has been removed.")}},wrapRGB:{get:function(){console.warn("GLE.Material: .wrapRGB has been removed.");return new u}},shading:{get:function(){console.error("GLE."+this.type+": .shading has been removed. Use the boolean .flatShading instead.")},set:function(c){console.warn("GLE."+this.type+": .shading has been removed. Use the boolean .flatShading instead.");this.flatShading=1===c}}});Object.defineProperties(yc.prototype,{metal:{get:function(){console.warn("GLE.MeshPhongMaterial: .metal has been removed. Use GLE.MeshStandardMaterial instead.");return!1},set:function(){console.warn("GLE.MeshPhongMaterial: .metal has been removed. Use GLE.MeshStandardMaterial instead")}}});Object.defineProperties(ga.prototype,{derivatives:{get:function(){console.warn("GLE.ShaderMaterial: .derivatives has been moved to .extensions.derivatives.");return this.extensions.derivatives},set:function(c){console.warn("GLE. ShaderMaterial: .derivatives has been moved to .extensions.derivatives.");this.extensions.derivatives=c}}});Object.assign(Tc.prototype,{clearTarget:function(c,a,b,d){console.warn("GLE.Wr: .clearTarget() has been deprecated. Use .setRenderTarget() and .clear() instead.");this.setRenderTarget(c);this.clear(a,b,d)},animate:function(c){console.warn("GLE.Wr: .animate() is now .setAnimationLoop().");this.setAnimationLoop(c)},getCurrentRenderTarget:function(){console.warn("GLE.Wr: .getCurrentRenderTarget() is now .getRenderTarget().");return this.getRenderTarget()},getMaxAnisotropy:function(){console.warn("GLE.Wr: .getMaxAnisotropy() is now .capabilities.getMaxAnisotropy().");return this.capabilities.getMaxAnisotropy()},getPrecision:function(){console.warn("GLE.Wr: .getPrecision() is now .capabilities.precision.");return this.capabilities.precision},resetGLState:function(){console.warn("GLE.Wr: .resetGLState() is now .state.reset().");return this.state.reset()},supportsFloatTextures:function(){console.warn("GLE.Wr: .supportsFloatTextures() is now .extensions.get( 'OES_texture_float' ).");return this.extensions.get("OES_texture_float")},supportsHalfFloatTextures:function(){console.warn("GLE.Wr: .supportsHalfFloatTextures() is now .extensions.get( 'OES_texture_half_float' ).");return this.extensions.get("OES_texture_half_float")},supportsStandardDerivatives:function(){console.warn("GLE.Wr: .supportsStandardDerivatives() is now .extensions.get( 'OES_standard_derivatives' ).");return this.extensions.get("OES_standard_derivatives")},supportsCompressedTextureS3TC:function(){console.warn("GLE.Wr: .supportsCompressedTextureS3TC() is now .extensions.get( 'WEBGL_compressed_texture_s3tc' ).");return this.extensions.get("WEBGL_compressed_texture_s3tc")},supportsCompressedTexturePVRTC:function(){console.warn("GLE.Wr: .supportsCompressedTexturePVRTC() is now .extensions.get( 'WEBGL_compressed_texture_pvrtc' ).");return this.extensions.get("WEBGL_compressed_texture_pvrtc")},supportsBlendMinMax:function(){console.warn("GLE.Wr: .supportsBlendMinMax() is now .extensions.get( 'EXT_blend_minmax' ).");return this.extensions.get("EXT_blend_minmax")},supportsVertexTextures:function(){console.warn("GLE.Wr: .supportsVertexTextures() is now .capabilities.vertexTextures.");return this.capabilities.vertexTextures},supportsInstancedArrays:function(){console.warn("GLE.Wr: .supportsInstancedArrays() is now .extensions.get( 'ANGLE_instanced_arrays' ).");return this.extensions.get("ANGLE_instanced_arrays")},enableScissorTest:function(c){console.warn("GLE.Wr: .enableScissorTest() is now .setScissorTest().");this.setScissorTest(c)},initMaterial:function(){console.warn("GLE.Wr: .initMaterial() has been removed.")},addPrePlugin:function(){console.warn("GLE.Wr: .addPrePlugin() has been removed.")},addPostPlugin:function(){console.warn("GLE.Wr: .addPostPlugin() has been removed.")},updateShadowMap:function(){console.warn("GLE.Wr: .updateShadowMap() has been removed.")},setFaceCulling:function(){console.warn("GLE.Wr: .setFaceCulling() has been removed.")}});Object.defineProperties(Tc.prototype,{shadowMapEnabled:{get:function(){return this.shadowMap.enabled},set:function(c){console.warn("GLE.Wr: .shadowMapEnabled is now .shadowMap.enabled.");this.shadowMap.enabled=c}},shadowMapType:{get:function(){return this.shadowMap.type},set:function(c){console.warn("GLE.Wr: .shadowMapType is now .shadowMap.type.");this.shadowMap.type=c}},shadowMapCullFace:{get:function(){console.warn("GLE.Wr: .shadowMapCullFace has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("GLE.Wr: .shadowMapCullFace has been removed. Set Material.shadowSide instead.")}}});Object.defineProperties(rh.prototype,{cullFace:{get:function(){console.warn("GLE.Wr: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("GLE.Wr: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.")}},renderReverseSided:{get:function(){console.warn("GLE.Wr: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("GLE.Wr: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.")}},renderSingleSided:{get:function(){console.warn("GLE.Wr: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("GLE.Wr: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.")}}});Object.defineProperties(q.prototype,{wrapS:{get:function(){console.warn("GLE.Wt: .wrapS is now .texture.wrapS.");return this.texture.wrapS},set:function(c){console.warn("GLE.Wt: .wrapS is now .texture.wrapS.");this.texture.wrapS=c}},wrapT:{get:function(){console.warn("GLE.Wt: .wrapT is now .texture.wrapT.");return this.texture.wrapT},set:function(c){console.warn("GLE.Wt: .wrapT is now .texture.wrapT.");this.texture.wrapT=c}},magFilter:{get:function(){console.warn("GLE.Wt: .magFilter is now .texture.magFilter.");return this.texture.magFilter},set:function(c){console.warn("GLE.Wt: .magFilter is now .texture.magFilter.");this.texture.magFilter=c}},minFilter:{get:function(){console.warn("GLE.Wt: .minFilter is now .texture.minFilter.");return this.texture.minFilter},set:function(c){console.warn("GLE.Wt: .minFilter is now .texture.minFilter.");this.texture.minFilter=c}},anisotropy:{get:function(){console.warn("GLE.Wt: .anisotropy is now .texture.anisotropy.");return this.texture.anisotropy},set:function(c){console.warn("GLE.Wt: .anisotropy is now .texture.anisotropy.");this.texture.anisotropy=c}},offset:{get:function(){console.warn("GLE.Wt: .offset is now .texture.offset.");return this.texture.offset},set:function(c){console.warn("GLE.Wt: .offset is now .texture.offset.");this.texture.offset=c}},repeat:{get:function(){console.warn("GLE.Wt: .repeat is now .texture.repeat.");return this.texture.repeat},set:function(c){console.warn("GLE.Wt: .repeat is now .texture.repeat.");this.texture.repeat=c}},format:{get:function(){console.warn("GLE.Wt: .format is now .texture.format.");return this.texture.format},set:function(c){console.warn("GLE.Wt: .format is now .texture.format.");this.texture.format=c}},type:{get:function(){console.warn("GLE.Wt: .type is now .texture.type.");return this.texture.type},set:function(c){console.warn("GLE.Wt: .type is now .texture.type.");this.texture.type=c}},generateMipmaps:{get:function(){console.warn("GLE.Wt: .generateMipmaps is now .texture.generateMipmaps.");return this.texture.generateMipmaps},set:function(c){console.warn("GLE.Wt: .generateMipmaps is now .texture.generateMipmaps.");this.texture.generateMipmaps=c}}});Object.defineProperties(Zd.prototype,{standing:{set:function(){console.warn("GLE.WebVRManager: .standing has been removed.")}},userHeight:{set:function(){console.warn("GLE.WebVRManager: .userHeight has been removed.")}}});df.prototype.load=function(c){console.warn("GLE.Audio: .load has been deprecated. Use GLE.AudioLoader instead.");var a=this;(new xh).load(c,function(c){a.setBuffer(c)});return this};Ig.prototype.getData=function(){console.warn("GLE.AudioAnalyser: .getData() is now .getFrequencyData().");return this.getFrequencyData()};Ld.prototype.updateCubeMap=function(c,a){console.warn("GLE.CubeCamera: .updateCubeMap() is now .update().");return this.update(c,a)};Kc.crossOrigin=void 0;Kc.loadTexture=function(c,a,b,d){console.warn("GLE.ImageUtils.loadTexture has been deprecated. Use GLE.TextureLoader() instead.");var g=new Za;g.setCrossOrigin(this.crossOrigin);c=g.load(c,b,void 0,d);a&&(c.mapping=a);return c};Kc.loadTextureCube=function(c,a,b,d){console.warn("GLE.ImageUtils.loadTextureCube has been deprecated. Use GLE.CubeTextureLoader() instead.");var g=new yg;g.setCrossOrigin(this.crossOrigin);c=g.load(c,b,void 0,d);a&&(c.mapping=a);return c};Kc.loadCompressedTexture=function(){console.error("GLE.ImageUtils.loadCompressedTexture has been removed. Use GLE.DDSLoader instead.")};Kc.loadCompressedTextureCube=function(){console.error("GLE.ImageUtils.loadCompressedTextureCube has been removed. Use GLE.DDSLoader instead.")};a.WtCube=x;a.Wt=q;a.Wr=Tc;a.ShaderLib=Dc;a.UniformsLib=qa;a.UniformsUtils=qb;a.ShaderChunk=Ca;a.FogExp2=gd;a.Fog=$d;a.Scene=Bf;a.Sprite=yd;a.LOD=ce;a.SkinnedMesh=Vc;a.Skeleton=Fc;a.Bone=ac;a.Mesh=na;a.LineSegments=Ha;a.LineLoop=Cf;a.Line=Pb;a.Points=zd;a.Group=$b;a.VideoTexture=qg;a.DataTexture=G;a.Texture3D=kb;a.CompressedTexture=de;a.CubeTexture=Ua;a.CanvasTexture=Pe;a.DepthTexture=hd;a.Texture=m;a.CompressedTextureLoader=vh;a.DataTextureLoader=xg;a.CubeTextureLoader=yg;a.TextureLoader=Za;a.ObjectLoader=wh;a.MaterialLoader=Uf;a.BufferGeometryLoader=Dg;a.DefaultLr=yb;a.Lr=wg;a.JSONLoader=cf;a.Ir=vb;a.ImageBitmapLoader=Eg;a.FontLoader=Ji;a.FileLoader=ob;a.Loader=pd;a.LoaderUtils=Sd;a.Cache=sd;a.AudioLoader=xh;a.SpotLightShadow=zg;a.SpotLight=Mb;a.PointLight=Ag;a.RectAreaLight=Bg;a.HemisphereLight=Of;a.DtShadow=af;a.Dt=Jd;a.AmbientLight=Pf;a.LightShadow=pe;a.Light=ib;a.StereoCamera=yh;a.Pa=Ra;a.OrthographicCamera=$e;a.CubeCamera=Ld;a.ArrayCamera=Ne;a.Camera=nb;a.AudioListener=zh;a.PositionalAudio=Ah;a.AudioContext=Hg;a.AudioAnalyser=Ig;a.Audio=df;a.VectorKeyframeTrack=re;a.StringKeyframeTrack=Tf;a.QuaternionKeyframeTrack=qe;a.NumberKeyframeTrack=Kd;a.ColorKeyframeTrack=od;a.BooleanKeyframeTrack=Sf;a.PropertyMixer=Md;a.PropertyBinding=Eb;a.KeyframeTrack=Db;a.AnimationUtils=wb;a.AnimationObjectGroup=Bh;a.AnimationMixer=Jg;a.AnimationClip=nc;a.Uniform=Wf;a.InstancedBufferGeometry=Kg;a.BufferGeometry=R;a.Geometry=L;a.InterleavedBufferAttribute=be;a.InstancedInterleavedBuffer=Lg;a.InterleavedBuffer=ae;a.InstancedBufferAttribute=qd;a.Face3=C;a.Object3D=F;a.Rr=Li;a.Layers=aa;a.EventDispatcher=b;a.Clock=Ni;a.QuaternionLinearInterpolant=bf;a.LinearInterpolant=Rf;a.DiscreteInterpolant=Cg;a.CubicInterpolant=Qf;a.Interpolant=mc;a.Triangle=ka;a.Math=Aa;a.Spherical=Nd;a.Cylindrical=Ch;a.Plane=v;a.Frustum=k;a.Sphere=w;a.Ray=ja;a.Matrix4=e;a.Matrix3=l;a.Box3=B;a.Box2=Dh;a.Line3=Eh;a.Euler=W;a.Vector4=r;a.Vector3=h;a.Vector2=d;a.Quaternion=f;a.Color=u;a.ImmediateRenderObject=ef;a.VertexNormalsHelper=Xf;a.SpotLightHelper=ff;a.SkeletonHelper=se;a.PointLightHelper=te;a.RectAreaLightHelper=gf;a.HemisphereLightHelper=ue;a.GridHelper=hf;a.PolarGridHelper=Yf;a.FaceNormalsHelper=rd;a.DtHelper=Od;a.CameraHelper=ve;a.Br=Ac;a.Box3Helper=we;a.pr=xe;a.ArrowHelper=Pd;a.AxesHelper=jf;a.Shape=nd;a.Path=zc;a.ShapePath=Fg;a.Font=Gg;a.CurvePath=Ic;a.Curve=ra;a.ImageUtils=Kc;a.ShapeUtils=dc;a.WebGLUtils=uh;a.WireframeGeometry=ee;a.ParametricGeometry=Df;a.ParametricBufferGeometry=id;a.TetrahedronGeometry=Ef;a.TetrahedronBufferGeometry=Ad;a.OctahedronGeometry=fe;a.OctahedronBufferGeometry=kd;a.IcosahedronGeometry=ge;a.IcosahedronBufferGeometry=Bd;a.DodecahedronGeometry=wc;a.DodecahedronBufferGeometry=Qe;a.PolyhedronGeometry=jd;a.PolyhedronBufferGeometry=bc;a.TubeGeometry=Ff;a.TubeBufferGeometry=Re;a.TorusKnotGeometry=Gf;a.TorusKnotBufferGeometry=Se;a.TorusGeometry=Cd;a.TorusBufferGeometry=cc;a.TextGeometry=Ue;a.TextBufferGeometry=Ve;a.SphereGeometry=je;a.SphereBufferGeometry=ab;a.RingGeometry=xc;a.RingBufferGeometry=ke;a.PlaneGeometry=da;a.PlaneBufferGeometry=Y;a.LatheGeometry=ub;a.LatheBufferGeometry=We;a.ShapeGeometry=le;a.ShapeBufferGeometry=Xc;a.ExtrudeGeometry=ie;a.ExtrudeBufferGeometry=Wc;a.EdgesGeometry=me;a.ConeGeometry=Lf;a.ConeBufferGeometry=Xe;a.CylinderGeometry=ne;a.CylinderBufferGeometry=ld;a.CircleGeometry=Mf;a.CircleBufferGeometry=Ye;a.BoxGeometry=Z;a.By=ta;a.ShadowMaterial=Yc;a.SpriteMaterial=Uc;a.RawShaderMaterial=Hc;a.ShaderMaterial=ga;a.PointsMaterial=vc;a.MeshPhysicalMaterial=md;a.MeshStandardMaterial=ec;a.MeshPhongMaterial=yc;a.MeshToonMaterial=Ed;a.MeshNormalMaterial=Fd;a.MeshLambertMaterial=Gd;a.MeshDepthMaterial=Bb;a.MeshDistanceMaterial=Ib;a.Mal=ha;a.MeshMatcapMaterial=Hd;a.LineDashedMaterial=Id;a.LineBasicMaterial=Da;a.Material=S;a.Float64BufferAttribute=ba;a.Float32BufferAttribute=K;a.Uint32BufferAttribute=J;a.Int32BufferAttribute=Q;a.Uint16BufferAttribute=V;a.Int16BufferAttribute=N;a.Uint8ClampedBufferAttribute=M;a.Uint8BufferAttribute=D;a.Int8BufferAttribute=H;a.BufferAttribute=A;a.ArcCurve=oe;a.CatmullRomCurve3=Jb;a.CubicBezierCurve=fc;a.CubicBezierCurve3=Kb;a.EllipseCurve=Rb;a.LineCurve=Cb;a.LineCurve3=Lb;a.QuadraticBezierCurve=kc;a.QuadraticBezierCurve3=lc;a.SplineCurve=gc;a.REVISION="97dev";a.MOUSE={LEFT:0,MIDDLE:1,RIGHT:2};a.CullFaceNone=0;a.CullFaceBack=1;a.CullFaceFront=2;a.CullFaceFrontBack=3;a.FrontFaceDirectionCW=0;a.FrontFaceDirectionCCW=1;a.BasicShadowMap=0;a.PCFShadowMap=1;a.PCFSoftShadowMap=2;a.FrontSide=0;a.BackSide=1;a.DoubleSide=2;a.FlatShading=1;a.SmoothShading=2;a.NoColors=0;a.FaceColors=1;a.VertexColors=2;a.NoBlending=0;a.NormalBlending=1;a.AdditiveBlending=2;a.SubtractiveBlending=3;a.MultiplyBlending=4;a.CustomBlending=5;a.AddEquation=100;a.SubtractEquation=101;a.ReverseSubtractEquation=102;a.MinEquation=103;a.MaxEquation=104;a.ZeroFactor=200;a.OneFactor=201;a.SrcColorFactor=202;a.OneMinusSrcColorFactor=203;a.SrcAlphaFactor=204;a.OneMinusSrcAlphaFactor=205;a.DstAlphaFactor=206;a.OneMinusDstAlphaFactor=207;a.DstColorFactor=208;a.OneMinusDstColorFactor=209;a.SrcAlphaSaturateFactor=210;a.NeverDepth=0;a.AlwaysDepth=1;a.LessDepth=2;a.LessEqualDepth=3;a.EqualDepth=4;a.GreaterEqualDepth=5;a.GreaterDepth=6;a.NotEqualDepth=7;a.MultiplyOperation=0;a.MixOperation=1;a.AddOperation=2;a.NoToneMapping=0;a.LinearToneMapping=1;a.ReinhardToneMapping=2;a.Uncharted2ToneMapping=3;a.CineonToneMapping=4;a.UVMapping=300;a.CubeReflectionMapping=301;a.CubeRefractionMapping=302;a.EquirectangularReflectionMapping=303;a.EquirectangularRefractionMapping=304;a.SphericalReflectionMapping=305;a.CubeUVReflectionMapping=306;a.CubeUVRefractionMapping=307;a.RepeatWrapping=1E3;a.ClampToEdgeWrapping=1001;a.MirroredRepeatWrapping=1002;a.Nr=1003;a.NearestMipMapNr=1004;a.NearestMipMapLinearFilter=1005;a.LinearFilter=1006;a.LinearMipMapNr=1007;a.LinearMipMapLinearFilter=1008;a.UnsignedByteType=1009;a.ByteType=1010;a.ShortType=1011;a.UnsignedShortType=1012;a.IntType=1013;a.UnsignedIntType=1014;a.FloatType=1015;a.HalfFloatType=1016;a.UnsignedShort4444Type=1017;a.UnsignedShort5551Type=1018;a.UnsignedShort565Type=1019;a.UnsignedInt248Type=1020;a.AlphaFormat=1021;a.RGBFormat=1022;a.RGBAFormat=1023;a.LuminanceFormat=1024;a.LuminanceAlphaFormat=1025;a.RGBEFormat=1023;a.DepthFormat=1026;a.DepthStencilFormat=1027;a.RedFormat=1028;a.RGB_S3TC_DXT1_Format=33776;a.RGBA_S3TC_DXT1_Format=33777;a.RGBA_S3TC_DXT3_Format=33778;a.RGBA_S3TC_DXT5_Format=33779;a.RGB_PVRTC_4BPPV1_Format=35840;a.RGB_PVRTC_2BPPV1_Format=35841;a.RGBA_PVRTC_4BPPV1_Format=35842;a.RGBA_PVRTC_2BPPV1_Format=35843;a.RGB_ETC1_Format=36196;a.RGBA_ASTC_4x4_Format=37808;a.RGBA_ASTC_5x4_Format=37809;a.RGBA_ASTC_5x5_Format=37810;a.RGBA_ASTC_6x5_Format=37811;a.RGBA_ASTC_6x6_Format=37812;a.RGBA_ASTC_8x5_Format=37813;a.RGBA_ASTC_8x6_Format=37814;a.RGBA_ASTC_8x8_Format=37815;a.RGBA_ASTC_10x5_Format=37816;a.RGBA_ASTC_10x6_Format=37817;a.RGBA_ASTC_10x8_Format=37818;a.RGBA_ASTC_10x10_Format=37819;a.RGBA_ASTC_12x10_Format=37820;a.RGBA_ASTC_12x12_Format=37821;a.LoopOnce=2200;a.LoopRepeat=2201;a.LoopPingPong=2202;a.InterpolateDiscrete=2300;a.InterpolateLinear=2301;a.InterpolateSmooth=2302;a.ZeroCurvatureEnding=2400;a.ZeroSlopeEnding=2401;a.WrapAroundEnding=2402;a.TrianglesDrawMode=0;a.TriangleStripDrawMode=1;a.TriangleFanDrawMode=2;a.LinearEncoding=3E3;a.sRGBEncoding=3001;a.GammaEncoding=3007;a.RGBEEncoding=3002;a.LogLuvEncoding=3003;a.RGBM7Encoding=3004;a.RGBM16Encoding=3005;a.RGBDEncoding=3006;a.BasicDepthPacking=3200;a.RGBADepthPacking=3201;a.TangentSpaceNormalMap=0;a.ObjectSpaceNormalMap=1;a.CubeGeometry=Z;a.Face4=function(c,a,b,d,e,f,k){console.warn("GLE.Face4 has been removed. A GLE.Face3 will be created instead.");return new C(c,a,b,e,f,k)};a.LineStrip=0;a.LinePieces=1;a.MeshFaceMaterial=function(c){console.warn("GLE.MeshFaceMaterial has been removed. Use an Array instead.");return c};a.MultiMaterial=function(c){void 0===c&&(c=[]);console.warn("GLE.MultiMaterial has been removed. Use an Array instead.");c.isMultiMaterial=!0;c.materials=c;c.clone=function(){return c.slice()};return c};a.PointCloud=function(c,a){console.warn("GLE.PointCloud has been renamed to GLE.Points.");return new zd(c,a)};a.Particle=function(c){console.warn("GLE.Particle has been renamed to GLE.Sprite.");return new yd(c)};a.ParticleSystem=function(c,a){console.warn("GLE.ParticleSystem has been renamed to GLE.Points.");return new zd(c,a)};a.PointCloudMaterial=function(c){console.warn("GLE.PointCloudMaterial has been renamed to GLE.PointsMaterial.");return new vc(c)};a.ParticleBasicMaterial=function(c){console.warn("GLE.ParticleBasicMaterial has been renamed to GLE.PointsMaterial.");return new vc(c)};a.ParticleSystemMaterial=function(c){console.warn("GLE.ParticleSystemMaterial has been renamed to GLE.PointsMaterial.");return new vc(c)};a.Vertex=function(c,a,b){console.warn("GLE.Vertex has been removed. Use GLE.Vector3 instead.");return new h(c,a,b)};a.DynamicBufferAttribute=function(c,a){console.warn("GLE.DynamicBufferAttribute has been removed. Use new GLE.BufferAttribute().setDynamic( true ) instead.");return(new A(c,a)).setDynamic(!0)};a.Int8Attribute=function(c,a){console.warn("GLE.Int8Attribute has been removed. Use new GLE.Int8BufferAttribute() instead.");return new H(c,a)};a.Uint8Attribute=function(c,a){console.warn("GLE.Uint8Attribute has been removed. Use new GLE.Uint8BufferAttribute() instead.");return new D(c,a)};a.Uint8ClampedAttribute=function(c,a){console.warn("GLE.Uint8ClampedAttribute has been removed. Use new GLE.Uint8ClampedBufferAttribute() instead.");return new M(c,a)};a.Int16Attribute=function(c,a){console.warn("GLE.Int16Attribute has been removed. Use new GLE.Int16BufferAttribute() instead.");return new N(c,a)};a.Uint16Attribute=function(c,a){console.warn("GLE.Uint16Attribute has been removed. Use new GLE.Uint16BufferAttribute() instead.");return new V(c,a)};a.Int32Attribute=function(c,a){console.warn("GLE.Int32Attribute has been removed. Use new GLE.Int32BufferAttribute() instead.");return new Q(c,a)};a.Uint32Attribute=function(c,a){console.warn("GLE.Uint32Attribute has been removed. Use new GLE.Uint32BufferAttribute() instead.");return new J(c,a)};a.Float32Attribute=function(c,a){console.warn("GLE.Float32Attribute has been removed. Use new GLE.Float32BufferAttribute() instead.");return new K(c,a)};a.Float64Attribute=function(c,a){console.warn("GLE.Float64Attribute has been removed. Use new GLE.Float64BufferAttribute() instead.");return new ba(c,a)};a.ClosedSplineCurve3=Jc;a.SplineCurve3=Ng;a.Spline=Zf;a.Ar=function(c){console.warn("GLE.Ar has been renamed to GLE.AxesHelper.");return new jf(c)};a.BoundingBr=function(c,a){console.warn("GLE.BoundingBr has been deprecated. Creating a GLE.Br instead.");return new Ac(c,a)};a.EdgesHelper=function(c,a){console.warn("GLE.EdgesHelper has been removed. Use GLE.EdgesGeometry instead.");return new Ha(new me(c.geometry),new Da({color:void 0!==a?a:16777215}))};a.WireframeHelper=function(c,a){console.warn("GLE.WireframeHelper has been removed. Use GLE.WireframeGeometry instead.");return new Ha(new ee(c.geometry),new Da({color:void 0!==a?a:16777215}))};a.XHRLoader=function(c){console.warn("GLE.XHRLoader has been renamed to GLE.FileLoader.");return new ob(c)};a.BinaryTextureLoader=function(c){console.warn("GLE.BinaryTextureLoader has been renamed to GLE.DataTextureLoader.");return new xg(c)};a.GeometryUtils={merge:function(c,a,b){console.warn("GLE.GeometryUtils: .merge() has been moved to Geometry. Use geometry.merge( geometry2, matrix, materialIndexOffset ) instead.");var g;a.isMesh&&(a.matrixAutoUpdate&&a.updateMatrix(),g=a.matrix,a=a.geometry);c.merge(a,g,b)},center:function(c){console.warn("GLE.GeometryUtils: .center() has been moved to Geometry. Use geometry.center() instead.");return c.center()}};a.Projector=function(){console.error("GLE.Projector has been moved to /examples/js/renderers/Projector.js.");this.projectVector=function(c,a){console.warn("GLE.Projector: .projectVector() is now vector.project().");c.project(a)};this.unprojectVector=function(c,a){console.warn("GLE.Projector: .unprojectVector() is now vector.unproject().");c.unproject(a)};this.pickingRay=function(){console.error("GLE.Projector: .pickingRay() is now raycaster.sa().")}};a.CanvasRenderer=function(){console.error("GLE.CanvasRenderer has been moved to /examples/js/renderers/CanvasRenderer.js");this.domElement=document.createElementNS("http://www.w3.org/1999/xhtml","canvas");this.clear=function(){};this.render=function(){};this.sr=function(){};this.setSize=function(){}};a.SceneUtils={createMultiMaterialObject:function(){console.error("GLE.SceneUtils has been moved to /examples/js/utils/SceneUtils.js")},detach:function(){console.error("GLE.SceneUtils has been moved to /examples/js/utils/SceneUtils.js")},attach:function(){console.error("GLE.SceneUtils has been moved to /examples/js/utils/SceneUtils.js")}};a.LensFlare=function(){console.error("GLE.LensFlare has been moved to /examples/js/objects/Lensflare.js")};Object.defineProperty(a,"__esModule",{value:!0})});var _gsScope="undefined"!=typeof module&&module.exports&&"undefined"!=typeof global?global:this||window;(_gsScope._gsQueue||(_gsScope._gsQueue=[])).push(function(){_gsScope._gsDefine("TnMax",["core.Animation","core.SimpleTimeline","TnLite"],function(a,b,d){var e=function(a){var b,d=[],e=a.length;for(b=0;b!==e;d.push(a[b++]));return d},f=function(a,b,d){var e,f,k=a.cycle;for(e in k)f=k[e],a[e]="function"==typeof f?f(d,b[d]):f[d%f.length];delete a.cycle},h=function(a,b,e){d.call(this,a,b,e);this._cycle=0;this._yoyo=!0===this.vars.yoyo;this._repeat=this.vars.repeat||0;this._repeatDelay=this.vars.repeatDelay||0;this._dirty=!0;this.render=h.prototype.render},l=d._internals,m=l.isSelector,r=l.isArray,q=h.prototype=d.to({},.1,{}),x=[];h.version="1.19.1";q.constructor=h;q.kill()._gc=!1;h.killTnsOf=h.killDelayedCallsTo=d.killTnsOf;h.getTnsOf=d.getTnsOf;h.lagSmoothing=d.lagSmoothing;h.ticker=d.ticker;h.render=d.render;q.invalidate=function(){return this._yoyo=!0===this.vars.yoyo,this._repeat=this.vars.repeat||0,this._repeatDelay=this.vars.repeatDelay||0,this._uncache(!0),d.prototype.invalidate.call(this)};q.updateTo=function(a,b){var e,f=this.ratio,k=this.vars.immediateRender||a.immediateRender;b&&this._startTime<this._timeline._time&&(this._startTime=this._timeline._time,this._uncache(!1),this._gc?this._enabled(!0,!1):this._timeline.insert(this,this._startTime-this._delay));for(e in a)this.vars[e]=a[e];if(this._initted||k)if(b)this._initted=!1,k&&this.render(0,!0,!0);else if(this._gc&&this._enabled(!0,!1),this._notifyPluginsOfEnabled&&this._firstPT&&d._onPluginEvent("_onDisable",this),.998<this._time/this._duration)e=this._totalTime,this.render(0,!0,!1),this._initted=!1,this.render(e,!0,!1);else if(this._initted=!1,this._init(),0<this._time||k)for(f=1/(1-f),k=this._firstPT;k;)e=k.s+k.c,k.c*=f,k.s=e-k.c,k=k._next;return this};q.render=function(a,b,d){this._initted||0===this._duration&&this.vars.repeat&&this.invalidate();var e,f,k,h,m,u,q,v=this._dirty?this.totalDuration():this._totalDuration,r=this._time,w=this._totalTime,B=this._cycle,x=this._duration,G=this._rawPrevTime;if(a>=v-1E-7&&0<=a?(this._totalTime=v,this._cycle=this._repeat,this._yoyo&&0!==(1&this._cycle)?(this._time=0,this.ratio=this._ease._calcEnd?this._ease.getRatio(0):0):(this._time=x,this.ratio=this._ease._calcEnd?this._ease.getRatio(1):1),this._reversed||(e=!0,f="onComplete",d=d||this._timeline.autoRemoveChildren),0===x&&(this._initted||!this.vars.lazy||d)&&(this._startTime===this._timeline._duration&&(a=0),(0>G||0>=a&&-1E-7<=a||1E-10===G&&"isPause"!==this.data)&&G!==a&&(d=!0,1E-10<G&&(f="onReverseComplete")),this._rawPrevTime=q=!b||a||G===a?a:1E-10)):1E-7>a?(this._totalTime=this._time=this._cycle=0,this.ratio=this._ease._calcEnd?this._ease.getRatio(0):0,(0!==w||0===x&&0<G)&&(f="onReverseComplete",e=this._reversed),0>a&&(this._active=!1,0===x&&(this._initted||!this.vars.lazy||d)&&(0<=G&&(d=!0),this._rawPrevTime=q=!b||a||G===a?a:1E-10)),this._initted||(d=!0)):(this._totalTime=this._time=a,0!==this._repeat&&(k=x+this._repeatDelay,this._cycle=this._totalTime/k>>0,0!==this._cycle&&this._cycle===this._totalTime/k&&a>=w&&this._cycle--,this._time=this._totalTime-this._cycle*k,this._yoyo&&0!==(1&this._cycle)&&(this._time=x-this._time),this._time>x?this._time=x:0>this._time&&(this._time=0)),this._easeType?(h=this._time/x,m=this._easeType,u=this._easePower,(1===m||3===m&&.5<=h)&&(h=1-h),3===m&&(h*=2),1===u?h*=h:2===u?h*=h*h:3===u?h*=h*h*h:4===u&&(h*=h*h*h*h),1===m?this.ratio=1-h:2===m?this.ratio=h:.5>this._time/x?this.ratio=h/2:this.ratio=1-h/2):this.ratio=this._ease.getRatio(this._time/x)),r===this._time&&!d&&B===this._cycle)return void(w!==this._totalTime&&this._onUpdate&&(b||this._callback("onUpdate")));if(!this._initted){if(this._init(),!this._initted||this._gc)return;if(!d&&this._firstPT&&(!1!==this.vars.lazy&&this._duration||this.vars.lazy&&!this._duration))return this._time=r,this._totalTime=w,this._rawPrevTime=G,this._cycle=B,l.lazyTns.push(this),void(this._lazy=[a,b]);this._time&&!e?this.ratio=this._ease.getRatio(this._time/x):e&&this._ease._calcEnd&&(this.ratio=this._ease.getRatio(0===this._time?0:1))}!1!==this._lazy&&(this._lazy=!1);this._active||!this._paused&&this._time!==r&&0<=a&&(this._active=!0);0!==w||(2===this._initted&&0<a&&this._init(),this._startAt&&(0<=a?this._startAt.render(a,b,d):f||(f="_dummyGS")),!this.vars.onStart||0===this._totalTime&&0!==x||!b&&this._callback("onStart"));for(k=this._firstPT;k;)k.f?k.t[k.p](k.c*this.ratio+k.s):k.t[k.p]=k.c*this.ratio+k.s,k=k._next;this._onUpdate&&(0>a&&this._startAt&&this._startTime&&this._startAt.render(a,b,d),b||(this._totalTime!==w||f)&&this._callback("onUpdate"));this._cycle!==B&&(b||this._gc||this.vars.onRepeat&&this._callback("onRepeat"));f&&(!this._gc||d)&&(0>a&&this._startAt&&!this._onUpdate&&this._startTime&&this._startAt.render(a,b,d),e&&(this._timeline.autoRemoveChildren&&this._enabled(!1,!1),this._active=!1),!b&&this.vars[f]&&this._callback(f),0===x&&1E-10===this._rawPrevTime&&1E-10!==q&&(this._rawPrevTime=0))};h.to=function(a,b,d){return new h(a,b,d)};h.from=function(a,b,d){return d.runBackwards=!0,d.immediateRender=0!=d.immediateRender,new h(a,b,d)};h.fromTo=function(a,b,d,e){return e.startAt=d,e.immediateRender=0!=e.immediateRender&&0!=d.immediateRender,new h(a,b,e)};h.staggerTo=h.allTo=function(a,b,l,p,q,C,w){p=p||0;var k,u,v,E,B=0,D=[],G=function(){l.onComplete&&l.onComplete.apply(l.onCompleteScope||this,arguments);q.apply(w||l.callbackScope||this,C||x)},W=l.cycle,V=l.startAt&&l.startAt.cycle;r(a)||("string"==typeof a&&(a=d.selector(a)||a),m(a)&&(a=e(a)));a=a||[];0>p&&(a=e(a),a.reverse(),p*=-1);k=a.length-1;for(v=0;k>=v;v++){u={};for(E in l)u[E]=l[E];if(W&&(f(u,a,v),null!=u.duration&&(b=u.duration,delete u.duration)),V){V=u.startAt={};for(E in l.startAt)V[E]=l.startAt[E];f(u.startAt,a,v)}u.delay=B+(u.delay||0);v===k&&q&&(u.onComplete=G);D[v]=new h(a[v],b,u);B+=p}return D};h.staggerFrom=h.allFrom=function(a,b,d,e,f,l,m){return d.runBackwards=!0,d.immediateRender=0!=d.immediateRender,h.staggerTo(a,b,d,e,f,l,m)};h.staggerFromTo=h.allFromTo=function(a,b,d,e,f,l,m,q){return e.startAt=d,e.immediateRender=0!=e.immediateRender&&0!=d.immediateRender,h.staggerTo(a,b,e,f,l,m,q)};h.delayedCall=function(a,b,d,e,f){return new h(b,0,{delay:a,onComplete:b,onCompleteParams:d,callbackScope:e,onReverseComplete:b,onReverseCompleteParams:d,immediateRender:!1,useFrames:f,overwrite:0})};h.set=function(a,b){return new h(a,0,b)};h.isTning=function(a){return 0<d.getTnsOf(a,!0).length};var G=function(a,b){for(var e=[],f=0,k=a._first;k;)k instanceof d?e[f++]=k:(b&&(e[f++]=k),e=e.concat(G(k,b)),f=e.length),k=k._next;return e},B=h.getAllTns=function(b){return G(a._rootTimeline,b).concat(G(a._rootFramesTimeline,b))};h.killAll=function(a,d,e,f){null==d&&(d=!0);null==e&&(e=!0);var k,h,l=B(0!=f),p=l.length,m=d&&e&&f;for(h=0;p>h;h++)f=l[h],(m||f instanceof b||(k=f.target===f.vars.onComplete)&&e||d&&!k)&&(a?f.totalTime(f._reversed?0:f.totalDuration()):f._enabled(!1,!1))};h.killChildTnsOf=function(a,b){if(null!=a){var f,k,q,v=l.tnLookup;if("string"==typeof a&&(a=d.selector(a)||a),m(a)&&(a=e(a)),r(a))for(k=a.length;-1<--k;)h.killChildTnsOf(a[k],b);else{f=[];for(q in v)for(k=v[q].target.parentNode;k;)k===a&&(f=f.concat(v[q].tns)),k=k.parentNode;q=f.length;for(k=0;q>k;k++)b&&f[k].totalTime(f[k].totalDuration()),f[k]._enabled(!1,!1)}}};var w=function(a,d,e,f){d=!1!==d;e=!1!==e;f=!1!==f;for(var k,h=B(f),l=d&&e&&f,p=h.length;-1<--p;)f=h[p],(l||f instanceof b||(k=f.target===f.vars.onComplete)&&e||d&&!k)&&f.paused(a)};return h.pauseAll=function(a,b,d){w(!0,a,b,d)},h.resumeAll=function(a,b,d){w(!1,a,b,d)},h.globalTimeScale=function(b){var e=a._rootTimeline,f=d.ticker.time;return arguments.length?(b=b||1E-10,e._startTime=f-(f-e._startTime)*e._timeScale/b,e=a._rootFramesTimeline,f=d.ticker.frame,e._startTime=f-(f-e._startTime)*e._timeScale/b,e._timeScale=a._rootTimeline._timeScale=b,b):e._timeScale},q.progress=function(a,b){return arguments.length?this.totalTime(this.duration()*(this._yoyo&&0!==(1&this._cycle)?1-a:a)+this._cycle*(this._duration+this._repeatDelay),b):this._time/this.duration()},q.totalProgress=function(a,b){return arguments.length?this.totalTime(this.totalDuration()*a,b):this._totalTime/this.totalDuration()},q.time=function(a,b){return arguments.length?(this._dirty&&this.totalDuration(),a>this._duration&&(a=this._duration),this._yoyo&&0!==(1&this._cycle)?a=this._duration-a+this._cycle*(this._duration+this._repeatDelay):0!==this._repeat&&(a+=this._cycle*(this._duration+this._repeatDelay)),this.totalTime(a,b)):this._time},q.duration=function(b){return arguments.length?a.prototype.duration.call(this,b):this._duration},q.totalDuration=function(a){return arguments.length?-1===this._repeat?this:this.duration((a-this._repeat*this._repeatDelay)/(this._repeat+1)):(this._dirty&&(this._totalDuration=-1===this._repeat?999999999999:this._duration*(this._repeat+1)+this._repeatDelay*this._repeat,this._dirty=!1),this._totalDuration)},q.repeat=function(a){return arguments.length?(this._repeat=a,this._uncache(!0)):this._repeat},q.repeatDelay=function(a){return arguments.length?(this._repeatDelay=a,this._uncache(!0)):this._repeatDelay},q.yoyo=function(a){return arguments.length?(this._yoyo=a,this):this._yoyo},h},!0);_gsScope._gsDefine("TimelineLite",["core.Animation","core.SimpleTimeline","TnLite"],function(a,b,d){var e=function(a){b.call(this,a);this._labels={};this.autoRemoveChildren=!0===this.vars.autoRemoveChildren;this.smoothChildTiming=!0===this.vars.smoothChildTiming;this._sortChildren=!0;this._onUpdate=this.vars.onUpdate;var d,e=this.vars;for(d in e)a=e[d],m(a)&&-1!==a.join("").indexOf("{self}")&&(e[d]=this._swapSelfInParams(a));m(e.tns)&&this.add(e.tns,0,e.align,e.stagger)},f=d._internals,h=e._internals={},l=f.isSelector,m=f.isArray,r=f.lazyTns,q=f.lazyRender,x=_gsScope._gsDefine.globals,G=function(a){var b,d={};for(b in a)d[b]=a[b];return d},B=function(a,b,d){var e,f,k=a.cycle;for(e in k)f=k[e],a[e]="function"==typeof f?f(d,b[d]):f[d%f.length];delete a.cycle},w=h.pauseCallback=function(){},v=function(a){var b,d=[],e=a.length;for(b=0;b!==e;d.push(a[b++]));return d},f=e.prototype=new b;return e.version="1.19.1",f.constructor=e,f.kill()._gc=f._forcingPlayhead=f._hasPause=!1,f.to=function(a,b,e,f){var k=e.repeat&&x.TnMax||d;return b?this.add(new k(a,b,e),f):this.set(a,e,f)},f.from=function(a,b,e,f){return this.add((e.repeat&&x.TnMax||d).from(a,b,e),f)},f.fromTo=function(a,b,e,f,h){var k=f.repeat&&x.TnMax||d;return b?this.add(k.fromTo(a,b,e,f),h):this.set(a,f,h)},f.staggerTo=function(a,b,f,h,m,q,r,w){w=new e({onComplete:q,onCompleteParams:r,callbackScope:w,smoothChildTiming:this.smoothChildTiming});var k=f.cycle;"string"==typeof a&&(a=d.selector(a)||a);a=a||[];l(a)&&(a=v(a));h=h||0;0>h&&(a=v(a),a.reverse(),h*=-1);for(r=0;r<a.length;r++)q=G(f),q.startAt&&(q.startAt=G(q.startAt),q.startAt.cycle&&B(q.startAt,a,r)),k&&(B(q,a,r),null!=q.duration&&(b=q.duration,delete q.duration)),w.to(a[r],b,q,r*h);return this.add(w,m)},f.staggerFrom=function(a,b,d,e,f,h,l,m){return d.immediateRender=0!=d.immediateRender,d.runBackwards=!0,this.staggerTo(a,b,d,e,f,h,l,m)},f.staggerFromTo=function(a,b,d,e,f,h,l,m,q){return e.startAt=d,e.immediateRender=0!=e.immediateRender&&0!=d.immediateRender,this.staggerTo(a,b,e,f,h,l,m,q)},f.call=function(a,b,e,f){return this.add(d.delayedCall(0,a,b,e),f)},f.set=function(a,b,e){return e=this._parseTimeOrLabel(e,0,!0),null==b.immediateRender&&(b.immediateRender=e===this._time&&!this._paused),this.add(new d(a,0,b),e)},e.exportRoot=function(a,b){a=a||{};null==a.smoothChildTiming&&(a.smoothChildTiming=!0);var f,h,k=new e(a),l=k._timeline;null==b&&(b=!0);l._remove(k,!0);k._startTime=0;k._rawPrevTime=k._time=k._totalTime=l._time;for(f=l._first;f;)h=f._next,b&&f instanceof d&&f.target===f.vars.onComplete||k.add(f,f._startTime-f._delay),f=h;return l.add(k,0),k},f.add=function(f,h,l,q){var k,p,u;if("number"!=typeof h&&(h=this._parseTimeOrLabel(h,0,!0,f)),!(f instanceof a)){if(f instanceof Array||f&&f.push&&m(f)){l=l||"normal";q=q||0;k=f.length;for(p=0;k>p;p++)m(u=f[p])&&(u=new e({tns:u})),this.add(u,h),"string"!=typeof u&&"function"!=typeof u&&("sequence"===l?h=u._startTime+u.totalDuration()/u._timeScale:"start"===l&&(u._startTime-=u.delay())),h+=q;return this._uncache(!0)}if("string"==typeof f)return this.addLabel(f,h);if("function"!=typeof f)throw"Cannot add "+f+" into the timeline; it is not a tn, timeline, function, or string.";f=d.delayedCall(0,f)}if(b.prototype.add.call(this,f,h),(this._gc||this._time===this._duration)&&!this._paused&&this._duration<this.duration())for(l=this,f=l.rawTime()>f._startTime;l._timeline;)f&&l._timeline.smoothChildTiming?l.totalTime(l._totalTime,!0):l._gc&&l._enabled(!0,!1),l=l._timeline;return this},f.remove=function(b){if(b instanceof a){this._remove(b,!1);var d=b._timeline=b.vars.useFrames?a._rootFramesTimeline:a._rootTimeline;return b._startTime=(b._paused?b._pauseTime:d._time)-(b._reversed?b.totalDuration()-b._totalTime:b._totalTime)/b._timeScale,this}if(b instanceof Array||b&&b.push&&m(b)){for(d=b.length;-1<--d;)this.remove(b[d]);return this}return"string"==typeof b?this.removeLabel(b):this.kill(null,b)},f._remove=function(a,d){b.prototype._remove.call(this,a,d);return this._last?this._time>this.duration()&&(this._time=this._duration,this._totalTime=this._totalDuration):this._time=this._totalTime=this._duration=this._totalDuration=0,this},f.append=function(a,b){return this.add(a,this._parseTimeOrLabel(null,b,!0,a))},f.insert=f.insertMultiple=function(a,b,d,e){return this.add(a,b||0,d,e)},f.appendMultiple=function(a,b,d,e){return this.add(a,this._parseTimeOrLabel(null,b,!0,a),d,e)},f.addLabel=function(a,b){return this._labels[a]=this._parseTimeOrLabel(b),this},f.addPause=function(a,b,e,f){e=d.delayedCall(0,w,e,f||this);return e.vars.onComplete=e.vars.onReverseComplete=b,e.data="isPause",this._hasPause=!0,this.add(e,a)},f.removeLabel=function(a){return delete this._labels[a],this},f.getLabelTime=function(a){return null!=this._labels[a]?this._labels[a]:-1},f._parseTimeOrLabel=function(b,d,e,f){var h;if(f instanceof a&&f.timeline===this)this.remove(f);else if(f&&(f instanceof Array||f.push&&m(f)))for(h=f.length;-1<--h;)f[h]instanceof a&&f[h].timeline===this&&this.remove(f[h]);if("string"==typeof d)return this._parseTimeOrLabel(d,e&&"number"==typeof b&&null==this._labels[d]?b-this.duration():0,e);if(d=d||0,"string"!=typeof b||!isNaN(b)&&null==this._labels[b])null==b&&(b=this.duration());else{if(h=b.indexOf("\x3d"),-1===h)return null==this._labels[b]?e?this._labels[b]=this.duration()+d:d:this._labels[b]+d;d=parseInt(b.charAt(h-1)+"1",10)*Number(b.substr(h+1));b=1<h?this._parseTimeOrLabel(b.substr(0,h-1),0,e):this.duration()}return Number(b)+d},f.seek=function(a,b){return this.totalTime("number"==typeof a?a:this._parseTimeOrLabel(a),!1!==b)},f.stop=function(){return this.paused(!0)},f.gotoAndPlay=function(a,b){return this.play(a,b)},f.gotoAndStop=function(a,b){return this.pause(a,b)},f.render=function(a,b,d){this._gc&&this._enabled(!0,!1);var e,f,h,k,l,m,p,u=this._dirty?this.totalDuration():this._totalDuration,v=this._time,w=this._startTime,B=this._timeScale,x=this._paused;if(a>=u-1E-7&&0<=a)this._totalTime=this._time=u,this._reversed||this._hasPausedChild()||(f=!0,k="onComplete",l=!!this._timeline.autoRemoveChildren,0===this._duration&&(0>=a&&-1E-7<=a||0>this._rawPrevTime||1E-10===this._rawPrevTime)&&this._rawPrevTime!==a&&this._first&&(l=!0,1E-10<this._rawPrevTime&&(k="onReverseComplete"))),this._rawPrevTime=this._duration||!b||a||this._rawPrevTime===a?a:1E-10,a=u+1E-4;else if(1E-7>a)if(this._totalTime=this._time=0,(0!==v||0===this._duration&&1E-10!==this._rawPrevTime&&(0<this._rawPrevTime||0>a&&0<=this._rawPrevTime))&&(k="onReverseComplete",f=this._reversed),0>a)this._active=!1,this._timeline.autoRemoveChildren&&this._reversed?(l=f=!0,k="onReverseComplete"):0<=this._rawPrevTime&&this._first&&(l=!0),this._rawPrevTime=a;else{if(this._rawPrevTime=this._duration||!b||a||this._rawPrevTime===a?a:1E-10,0===a&&f)for(e=this._first;e&&0===e._startTime;)e._duration||(f=!1),e=e._next;a=0;this._initted||(l=!0)}else{if(this._hasPause&&!this._forcingPlayhead&&!b){if(a>=v)for(e=this._first;e&&e._startTime<=a&&!m;)e._duration||"isPause"!==e.data||e.ratio||0===e._startTime&&0===this._rawPrevTime||(m=e),e=e._next;else for(e=this._last;e&&e._startTime>=a&&!m;)e._duration||"isPause"===e.data&&0<e._rawPrevTime&&(m=e),e=e._prev;m&&(this._time=a=m._startTime,this._totalTime=a+this._cycle*(this._totalDuration+this._repeatDelay))}this._totalTime=this._time=this._rawPrevTime=a}if(this._time!==v&&this._first||d||l||m){if(this._initted||(this._initted=!0),this._active||!this._paused&&this._time!==v&&0<a&&(this._active=!0),0===v&&this.vars.onStart&&(0===this._time&&this._duration||b||this._callback("onStart")),p=this._time,p>=v)for(e=this._first;e&&(h=e._next,p===this._time&&(!this._paused||x));)(e._active||e._startTime<=p&&!e._paused&&!e._gc)&&(m===e&&this.pause(),e._reversed?e.render((e._dirty?e.totalDuration():e._totalDuration)-(a-e._startTime)*e._timeScale,b,d):e.render((a-e._startTime)*e._timeScale,b,d)),e=h;else for(e=this._last;e&&(h=e._prev,p===this._time&&(!this._paused||x));){if(e._active||e._startTime<=v&&!e._paused&&!e._gc){if(m===e){for(m=e._prev;m&&m.endTime()>this._time;)m.render(m._reversed?m.totalDuration()-(a-m._startTime)*m._timeScale:(a-m._startTime)*m._timeScale,b,d),m=m._prev;m=null;this.pause()}e._reversed?e.render((e._dirty?e.totalDuration():e._totalDuration)-(a-e._startTime)*e._timeScale,b,d):e.render((a-e._startTime)*e._timeScale,b,d)}e=h}this._onUpdate&&(b||(r.length&&q(),this._callback("onUpdate")));k&&(this._gc||(w===this._startTime||B!==this._timeScale)&&(0===this._time||u>=this.totalDuration())&&(f&&(r.length&&q(),this._timeline.autoRemoveChildren&&this._enabled(!1,!1),this._active=!1),!b&&this.vars[k]&&this._callback(k)))}},f._hasPausedChild=function(){for(var a=this._first;a;){if(a._paused||a instanceof e&&a._hasPausedChild())return!0;a=a._next}return!1},f.getChildren=function(a,b,e,f){f=f||-9999999999;for(var h=[],k=this._first,l=0;k;)k._startTime<f||(k instanceof d?!1!==b&&(h[l++]=k):(!1!==e&&(h[l++]=k),!1!==a&&(h=h.concat(k.getChildren(!0,b,e)),l=h.length))),k=k._next;return h},f.getTnsOf=function(a,b){var e,f,h=this._gc,k=[],l=0;h&&this._enabled(!0,!0);e=d.getTnsOf(a);for(f=e.length;-1<--f;)(e[f].timeline===this||b&&this._contains(e[f]))&&(k[l++]=e[f]);return h&&this._enabled(!1,!0),k},f.recent=function(){return this._recent},f._contains=function(a){for(a=a.timeline;a;){if(a===this)return!0;a=a.timeline}return!1},f.shiftChildren=function(a,b,d){d=d||0;for(var e,f=this._first,h=this._labels;f;)f._startTime>=d&&(f._startTime+=a),f=f._next;if(b)for(e in h)h[e]>=d&&(h[e]+=a);return this._uncache(!0)},f._kill=function(a,b){if(!a&&!b)return this._enabled(!1,!1);for(var d=b?this.getTnsOf(b):this.getChildren(!0,!0,!1),e=d.length,f=!1;-1<--e;)d[e]._kill(a,b)&&(f=!0);return f},f.clear=function(a){var b=this.getChildren(!1,!0,!0),d=b.length;for(this._time=this._totalTime=0;-1<--d;)b[d]._enabled(!1,!1);return!1!==a&&(this._labels={}),this._uncache(!0)},f.invalidate=function(){for(var b=this._first;b;)b.invalidate(),b=b._next;return a.prototype.invalidate.call(this)},f._enabled=function(a,d){if(a===this._gc)for(var e=this._first;e;)e._enabled(a,!0),e=e._next;return b.prototype._enabled.call(this,a,d)},f.totalTime=function(b,d,e){this._forcingPlayhead=!0;var f=a.prototype.totalTime.apply(this,arguments);return this._forcingPlayhead=!1,f},f.duration=function(a){return arguments.length?(0!==this.duration()&&0!==a&&this.timeScale(this._duration/a),this):(this._dirty&&this.totalDuration(),this._duration)},f.totalDuration=function(a){if(!arguments.length){if(this._dirty){var b,d,e=0;d=this._last;for(var f=999999999999;d;)b=d._prev,d._dirty&&d.totalDuration(),d._startTime>f&&this._sortChildren&&!d._paused?this.add(d,d._startTime-d._delay):f=d._startTime,0>d._startTime&&!d._paused&&(e-=d._startTime,this._timeline.smoothChildTiming&&(this._startTime+=d._startTime/this._timeScale),this.shiftChildren(-d._startTime,!1,-9999999999),f=0),d=d._startTime+d._totalDuration/d._timeScale,d>e&&(e=d),d=b;this._duration=this._totalDuration=e;this._dirty=!1}return this._totalDuration}return a&&this.totalDuration()?this.timeScale(this._totalDuration/a):this},f.paused=function(b){if(!b)for(var d=this._first,e=this._time;d;)d._startTime===e&&"isPause"===d.data&&(d._rawPrevTime=0),d=d._next;return a.prototype.paused.apply(this,arguments)},f.usesFrames=function(){for(var b=this._timeline;b._timeline;)b=b._timeline;return b===a._rootFramesTimeline},f.rawTime=function(a){return a&&(this._paused||this._repeat&&0<this.time()&&1>this.totalProgress())?this._totalTime%(this._duration+this._repeatDelay):this._paused?this._totalTime:(this._timeline.rawTime(a)-this._startTime)*this._timeScale},e},!0);_gsScope._gsDefine("TimelineMax",["TimelineLite","TnLite","easing.Ease"],function(a,b,d){var e=function(b){a.call(this,b);this._repeat=this.vars.repeat||0;this._repeatDelay=this.vars.repeatDelay||0;this._cycle=0;this._yoyo=!0===this.vars.yoyo;this._dirty=!0},f=b._internals,h=f.lazyTns,l=f.lazyRender,m=_gsScope._gsDefine.globals,r=new d(null,null,1,0);d=e.prototype=new a;return d.constructor=e,d.kill()._gc=!1,e.version="1.19.1",d.invalidate=function(){return this._yoyo=!0===this.vars.yoyo,this._repeat=this.vars.repeat||0,this._repeatDelay=this.vars.repeatDelay||0,this._uncache(!0),a.prototype.invalidate.call(this)},d.addCallback=function(a,d,e,f){return this.add(b.delayedCall(0,a,e,f),d)},d.removeCallback=function(a,b){if(a)if(null==b)this._kill(null,a);else for(var d=this.getTnsOf(a,!1),e=d.length,f=this._parseTimeOrLabel(b);-1<--e;)d[e]._startTime===f&&d[e]._enabled(!1,!1);return this},d.removePause=function(b){return this.removeCallback(a._internals.pauseCallback,b)},d.tnTo=function(a,d){d=d||{};var e,f,h,l={ease:r,useFrames:this.usesFrames(),immediateRender:!1},k=d.repeat&&m.TnMax||b;for(f in d)l[f]=d[f];return l.time=this._parseTimeOrLabel(a),e=Math.abs(Number(l.time)-this._time)/this._timeScale||.001,h=new k(this,e,l),l.onStart=function(){h.target.paused(!0);h.vars.time!==h.target.time()&&e===h.duration()&&h.duration(Math.abs(h.vars.time-h.target.time())/h.target._timeScale);d.onStart&&d.onStart.apply(d.onStartScope||d.callbackScope||h,d.onStartParams||[])},h},d.tnFromTo=function(a,b,d){d=d||{};a=this._parseTimeOrLabel(a);d.startAt={onComplete:this.seek,onCompleteParams:[a],callbackScope:this};d.immediateRender=!1!==d.immediateRender;b=this.tnTo(b,d);return b.duration(Math.abs(b.vars.time-a)/this._timeScale||.001)},d.render=function(a,b,d){this._gc&&this._enabled(!0,!1);var e,f,m,k,u,p,q,r=this._dirty?this.totalDuration():this._totalDuration,x=this._duration,G=this._time,F=this._totalTime,L=this._startTime,A=this._timeScale,H=this._rawPrevTime,D=this._paused,M=this._cycle;if(a>=r-1E-7&&0<=a)this._locked||(this._totalTime=r,this._cycle=this._repeat),this._reversed||this._hasPausedChild()||(f=!0,k="onComplete",u=!!this._timeline.autoRemoveChildren,0===this._duration&&(0>=a&&-1E-7<=a||0>H||1E-10===H)&&H!==a&&this._first&&(u=!0,1E-10<H&&(k="onReverseComplete"))),this._rawPrevTime=this._duration||!b||a||this._rawPrevTime===a?a:1E-10,this._yoyo&&0!==(1&this._cycle)?this._time=a=0:(this._time=x,a=x+1E-4);else if(1E-7>a)if(this._locked||(this._totalTime=this._cycle=0),this._time=0,(0!==G||0===x&&1E-10!==H&&(0<H||0>a&&0<=H)&&!this._locked)&&(k="onReverseComplete",f=this._reversed),0>a)this._active=!1,this._timeline.autoRemoveChildren&&this._reversed?(u=f=!0,k="onReverseComplete"):0<=H&&this._first&&(u=!0),this._rawPrevTime=a;else{if(this._rawPrevTime=x||!b||a||this._rawPrevTime===a?a:1E-10,0===a&&f)for(e=this._first;e&&0===e._startTime;)e._duration||(f=!1),e=e._next;a=0;this._initted||(u=!0)}else if(0===x&&0>H&&(u=!0),this._time=this._rawPrevTime=a,this._locked||(this._totalTime=a,0!==this._repeat&&(e=x+this._repeatDelay,this._cycle=this._totalTime/e>>0,0!==this._cycle&&this._cycle===this._totalTime/e&&a>=F&&this._cycle--,this._time=this._totalTime-this._cycle*e,this._yoyo&&0!==(1&this._cycle)&&(this._time=x-this._time),this._time>x?(this._time=x,a=x+1E-4):0>this._time?this._time=a=0:a=this._time)),this._hasPause&&!this._forcingPlayhead&&!b&&x>a){if(a=this._time,a>=G||this._repeat&&M!==this._cycle)for(e=this._first;e&&e._startTime<=a&&!p;)e._duration||"isPause"!==e.data||e.ratio||0===e._startTime&&0===this._rawPrevTime||(p=e),e=e._next;else for(e=this._last;e&&e._startTime>=a&&!p;)e._duration||"isPause"===e.data&&0<e._rawPrevTime&&(p=e),e=e._prev;p&&(this._time=a=p._startTime,this._totalTime=a+this._cycle*(this._totalDuration+this._repeatDelay))}if(this._cycle!==M&&!this._locked){e=this._yoyo&&0!==(1&M);var N=e===(this._yoyo&&0!==(1&this._cycle)),V=this._totalTime,Q=this._cycle,J=this._rawPrevTime,K=this._time;if((this._totalTime=M*x,this._cycle<M?e=!e:this._totalTime+=x,this._time=G,this._rawPrevTime=0===x?H-1E-4:H,this._cycle=M,this._locked=!0,G=e?0:x,this.render(G,b,0===x),b||this._gc||this.vars.onRepeat&&(this._cycle=Q,this._locked=!1,this._callback("onRepeat")),G!==this._time)||(N&&(this._cycle=M,this._locked=!0,G=e?x+1E-4:-1E-4,this.render(G,!0,!1)),this._locked=!1,this._paused&&!D))return;this._time=K;this._totalTime=V;this._cycle=Q;this._rawPrevTime=J}if(!(this._time!==G&&this._first||d||u||p))return void(F!==this._totalTime&&this._onUpdate&&(b||this._callback("onUpdate")));if(this._initted||(this._initted=!0),this._active||!this._paused&&this._totalTime!==F&&0<a&&(this._active=!0),0===F&&this.vars.onStart&&(0===this._totalTime&&this._totalDuration||b||this._callback("onStart")),q=this._time,q>=G)for(e=this._first;e&&(m=e._next,q===this._time&&(!this._paused||D));)(e._active||e._startTime<=this._time&&!e._paused&&!e._gc)&&(p===e&&this.pause(),e._reversed?e.render((e._dirty?e.totalDuration():e._totalDuration)-(a-e._startTime)*e._timeScale,b,d):e.render((a-e._startTime)*e._timeScale,b,d)),e=m;else for(e=this._last;e&&(m=e._prev,q===this._time&&(!this._paused||D));){if(e._active||e._startTime<=G&&!e._paused&&!e._gc){if(p===e){for(p=e._prev;p&&p.endTime()>this._time;)p.render(p._reversed?p.totalDuration()-(a-p._startTime)*p._timeScale:(a-p._startTime)*p._timeScale,b,d),p=p._prev;p=null;this.pause()}e._reversed?e.render((e._dirty?e.totalDuration():e._totalDuration)-(a-e._startTime)*e._timeScale,b,d):e.render((a-e._startTime)*e._timeScale,b,d)}e=m}this._onUpdate&&(b||(h.length&&l(),this._callback("onUpdate")));k&&(this._locked||this._gc||(L===this._startTime||A!==this._timeScale)&&(0===this._time||r>=this.totalDuration())&&(f&&(h.length&&l(),this._timeline.autoRemoveChildren&&this._enabled(!1,!1),this._active=!1),!b&&this.vars[k]&&this._callback(k)))},d.getActive=function(a,b,d){null==a&&(a=!0);null==b&&(b=!0);null==d&&(d=!1);var e=[];d=this.getChildren(a,b,d);var f=0,h=d.length;for(a=0;h>a;a++)b=d[a],b.isActive()&&(e[f++]=b);return e},d.getLabelAfter=function(a){a||0!==a&&(a=this._time);var b,d=this.getLabelsArray(),e=d.length;for(b=0;e>b;b++)if(d[b].time>a)return d[b].name;return null},d.getLabelBefore=function(a){null==a&&(a=this._time);for(var b=this.getLabelsArray(),d=b.length;-1<--d;)if(b[d].time<a)return b[d].name;return null},d.getLabelsArray=function(){var a,b=[],d=0;for(a in this._labels)b[d++]={time:this._labels[a],name:a};return b.sort(function(a,b){return a.time-b.time}),b},d.invalidate=function(){return this._locked=!1,a.prototype.invalidate.call(this)},d.progress=function(a,b){return arguments.length?this.totalTime(this.duration()*(this._yoyo&&0!==(1&this._cycle)?1-a:a)+this._cycle*(this._duration+this._repeatDelay),b):this._time/this.duration()},d.totalProgress=function(a,b){return arguments.length?this.totalTime(this.totalDuration()*a,b):this._totalTime/this.totalDuration()},d.totalDuration=function(b){return arguments.length?-1!==this._repeat&&b?this.timeScale(this.totalDuration()/b):this:(this._dirty&&(a.prototype.totalDuration.call(this),this._totalDuration=-1===this._repeat?999999999999:this._duration*(this._repeat+1)+this._repeatDelay*this._repeat),this._totalDuration)},d.time=function(a,b){return arguments.length?(this._dirty&&this.totalDuration(),a>this._duration&&(a=this._duration),this._yoyo&&0!==(1&this._cycle)?a=this._duration-a+this._cycle*(this._duration+this._repeatDelay):0!==this._repeat&&(a+=this._cycle*(this._duration+this._repeatDelay)),this.totalTime(a,b)):this._time},d.repeat=function(a){return arguments.length?(this._repeat=a,this._uncache(!0)):this._repeat},d.repeatDelay=function(a){return arguments.length?(this._repeatDelay=a,this._uncache(!0)):this._repeatDelay},d.yoyo=function(a){return arguments.length?(this._yoyo=a,this):this._yoyo},d.currentLabel=function(a){return arguments.length?this.seek(a,!0):this.getLabelBefore(this._time+1E-8)},e},!0);(function(){var a=180/Math.PI,b=[],d=[],e=[],f={},h=_gsScope._gsDefine.globals,l=function(a,b,d,e){d===e&&(d=e-(e-b)/1E6);a===b&&(b=a+(d-a)/1E6);this.a=a;this.b=b;this.c=d;this.d=e;this.da=e-a;this.ca=d-a;this.ba=b-a},m=function(a,b,d,e){var f={a:a},h={},l={},m={c:e},q=(a+b)/2,r=(b+d)/2;d=(d+e)/2;b=(q+r)/2;var r=(r+d)/2,v=(r-b)/8;return f.b=q+(a-q)/4,h.b=b+v,f.c=h.a=(f.b+h.b)/2,h.c=l.a=(b+r)/2,l.b=r-v,m.b=d+(e-d)/4,l.c=m.a=(l.b+m.b)/2,[f,h,l,m]},r=function(a,h,q,r,k,u){var p,v,w,x,B={},G=[],L=u||a[0];k="string"==typeof k?","+k+",":",x,y,z,left,top,right,bottom,marginTop,marginLeft,marginRight,marginBottom,paddingLeft,paddingTop,paddingRight,paddingBottom,backgroundPosition,backgroundPosition_y,";null==h&&(h=1);for(v in a[0])G.push(v);if(1<a.length){w=a[a.length-1];x=!0;for(p=G.length;-1<--p;)if(v=G[p],.05<Math.abs(L[v]-w[v])){x=!1;break}x&&(a=a.concat(),u&&a.unshift(u),a.push(a[1]),u=a[a.length-3])}b.length=d.length=e.length=0;for(p=G.length;-1<--p;){v=G[p];f[v]=-1!==k.indexOf(","+v+",");w=v;var L=a,A=v,H=f[v],D=u,M=void 0,N,V,Q=void 0;V=void 0;var J=[];if(D)for(L=[D].concat(L),N=L.length;-1<--N;)"string"==typeof(V=L[N][A])&&"\x3d"===V.charAt(1)&&(L[N][A]=D[A]+Number(V.charAt(0)+V.substr(2)));if(M=L.length-2,0>M)L=(J[0]=new l(L[0][A],0,0,L[-1>M?0:1][A]),J);else{for(N=0;M>N;N++)D=L[N][A],V=L[N+1][A],J[N]=new l(D,0,0,V),H&&(Q=L[N+2][A],b[N]=(b[N]||0)+(V-D)*(V-D),d[N]=(d[N]||0)+(Q-V)*(Q-V));L=(J[N]=new l(L[N][A],0,0,L[N+1][A]),J)}B[w]=L}for(p=b.length;-1<--p;)b[p]=Math.sqrt(b[p]),d[p]=Math.sqrt(d[p]);if(!r){for(p=G.length;-1<--p;)if(f[v])for(a=B[G[p]],w=a.length-1,k=0;w>k;k++)u=a[k+1].da/d[k]+a[k].da/b[k]||0,e[k]=(e[k]||0)+u*u;for(p=e.length;-1<--p;)e[p]=Math.sqrt(e[p])}p=G.length;for(k=q?4:1;-1<--p;){v=G[p];u=a=B[v];w=h;L=q;A=r;v=f[v];for(var K,ba=V=D=J=void 0,ca=void 0,Na=void 0,R=void 0,Z=u.length-1,ta=0,da=u[0].a,H=0;Z>H;H++)Q=u[ta],M=Q.a,N=Q.d,K=u[ta+1].d,v?(ca=b[H],Na=d[H],R=(Na+ca)*w*.25/(A?.5:e[H]||.5),J=N-(N-M)*(A?.5*w:0!==ca?R/ca:0),D=N+(K-N)*(A?.5*w:0!==Na?R/Na:0),V=N-(J+((D-J)*(3*ca/(ca+Na)+.5)/4||0))):(J=N-(N-M)*w*.5,D=N+(K-N)*w*.5,V=N-(J+D)/2),J+=V,D+=V,Q.c=K=J,0!==H?Q.b=da:Q.b=da=Q.a+.6*(Q.c-Q.a),Q.da=N-M,Q.ca=K-M,Q.ba=da-M,L?(ba=m(M,da,K,N),u.splice(ta,1,ba[0],ba[1],ba[2],ba[3]),ta+=4):ta++,da=D;Q=u[ta];Q.b=da;Q.c=da+.4*(Q.d-da);Q.da=Q.d-Q.a;Q.ca=Q.c-Q.a;Q.ba=da-Q.a;L&&(ba=m(Q.a,da,Q.c,Q.d),u.splice(ta,1,ba[0],ba[1],ba[2],ba[3]));x&&(a.splice(0,k),a.splice(a.length-k,k))}return B},q=_gsScope._gsDefine.plugin({propName:"bezier",priority:-1,version:"1.3.7",API:2,global:!0,init:function(a,b,d){this._target=a;b instanceof Array&&(b={values:b});this._func={};this._mod={};this._props=[];this._timeRes=null==b.timeResolution?6:parseInt(b.timeResolution,10);var e,f,h,m,q,w=b.values||[],x={};h=w[0];this._autoRotate=(f=b.autoRotate||d.vars.orientToBezier)?f instanceof Array?f:[["x","y","rotation",!0===f?0:Number(f)||0]]:null;for(e in h)this._props.push(e);for(h=this._props.length;-1<--h;)e=this._props[h],this._overwriteProps.push(e),f=this._func[e]="function"==typeof a[e],x[e]=f?a[e.indexOf("set")||"function"!=typeof a["get"+e.substr(3)]?e:"get"+e.substr(3)]():parseFloat(a[e]),q||x[e]!==w[0][e]&&(q=x);if("cubic"!==b.type&&"quadratic"!==b.type&&"soft"!==b.type)x=r(w,isNaN(b.curviness)?1:b.curviness,!1,"thruBasic"===b.type,b.correlate,q);else{h=w;var w=(w=b.type)||"soft",B,G,L,A,H,D,M;b={};q="cubic"===w?3:2;var N="soft"===w,V=[];if(N&&x&&(h=[x].concat(h)),null==h||h.length<q+1)throw"invalid Bezier data";for(B in h[0])V.push(B);for(A=V.length;-1<--A;){B=V[A];b[B]=f=[];M=0;D=h.length;for(H=0;D>H;H++)w=null==x?h[H][B]:"string"==typeof(G=h[H][B])&&"\x3d"===G.charAt(1)?x[B]+Number(G.charAt(0)+G.substr(2)):Number(G),N&&1<H&&D-1>H&&(f[M++]=(w+f[M-2])/2),f[M++]=w;D=M-q+1;for(H=M=0;D>H;H+=q)w=f[H],B=f[H+1],G=f[H+2],L=2===q?0:f[H+3],f[M++]=G=3===q?new l(w,B,G,L):new l(w,(2*B+w)/3,(2*B+G)/3,G);f.length=M}x=b}if(this._beziers=x,this._segCount=this._beziers[e].length,this._timeRes){f=this._beziers;e=this._timeRes;e=e>>0||6;x=[];B=[];h=G=0;b=e-1;q=[];w=[];for(m in f){A=f[m];H=x;D=e;var Q,J,K,ba,ca,V=1/D;for(L=A.length;-1<--L;)for(K=A[L],J=K.a,M=K.d-J,N=K.c-J,K=K.b-J,J=0,ba=1;D>=ba;ba++)Q=V*ba,ca=1-Q,Q=J-(J=(Q*Q*M+3*ca*(Q*N+ca*K))*Q),ca=L*D+ba-1,H[ca]=(H[ca]||0)+Q*Q}f=x.length;for(m=0;f>m;m++)G+=Math.sqrt(x[m]),A=m%e,w[A]=G,A===b&&(h+=G,A=m/e>>0,q[A]=w,B[A]=h,G=0,w=[]);this._length=h;this._lengths=B;this._segments=q;this._l1=this._li=this._s1=this._si=0;this._l2=this._lengths[0];this._curSeg=this._segments[0];this._s2=this._curSeg[0];this._prec=1/this._curSeg.length}if(f=this._autoRotate)for(this._initialRotations=[],f[0]instanceof Array||(this._autoRotate=f=[f]),h=f.length;-1<--h;){for(m=0;3>m;m++)e=f[h][m],this._func[e]="function"==typeof a[e]?a[e.indexOf("set")||"function"!=typeof a["get"+e.substr(3)]?e:"get"+e.substr(3)]:!1;e=f[h][2];this._initialRotations[h]=(this._func[e]?this._func[e].call(this._target):this._target[e])||0;this._overwriteProps.push(e)}return this._startRatio=d.vars.runBackwards?1:0,!0},set:function(b){var d,e,f,h,l,m;l=this._segCount;var q=this._func,r=this._target,x=b!==this._startRatio;if(this._timeRes){if(d=this._lengths,h=this._curSeg,b*=this._length,f=this._li,b>this._l2&&l-1>f){for(--l;l>f&&(this._l2=d[++f])<=b;);this._l1=d[f-1];this._li=f;this._curSeg=h=this._segments[f];this._s2=h[this._s1=this._si=0]}else if(b<this._l1&&0<f){for(;0<f&&(this._l1=d[--f])>=b;);0===f&&b<this._l1?this._l1=0:f++;this._l2=d[f];this._li=f;this._curSeg=h=this._segments[f];this._s1=h[(this._si=h.length-1)-1]||0;this._s2=h[this._si]}if(d=f,b-=this._l1,f=this._si,b>this._s2&&f<h.length-1){for(l=h.length-1;l>f&&(this._s2=h[++f])<=b;);this._s1=h[f-1];this._si=f}else if(b<this._s1&&0<f){for(;0<f&&(this._s1=h[--f])>=b;);0===f&&b<this._s1?this._s1=0:f++;this._s2=h[f];this._si=f}l=(f+(b-this._s1)/(this._s2-this._s1))*this._prec||0}else d=0>b?0:1<=b?l-1:l*b>>0,l*=b-1/l*d;e=1-l;for(f=this._props.length;-1<--f;)b=this._props[f],h=this._beziers[b][d],m=(l*l*h.da+3*e*(l*h.ca+e*h.ba))*l+h.a,this._mod[b]&&(m=this._mod[b](m,r)),q[b]?r[b](m):r[b]=m;if(this._autoRotate){var G,F,L,A,H,D,M=this._autoRotate;for(f=M.length;-1<--f;)b=M[f][2],H=M[f][3]||0,D=!0===M[f][4]?1:a,h=this._beziers[M[f][0]],e=this._beziers[M[f][1]],h&&e&&(h=h[d],e=e[d],G=h.a+(h.b-h.a)*l,L=h.b+(h.c-h.b)*l,G+=(L-G)*l,L+=(h.c+(h.d-h.c)*l-L)*l,F=e.a+(e.b-e.a)*l,A=e.b+(e.c-e.b)*l,F+=(A-F)*l,A+=(e.c+(e.d-e.c)*l-A)*l,m=x?Math.atan2(A-F,L-G)*D+H:this._initialRotations[f],this._mod[b]&&(m=this._mod[b](m,r)),q[b]?r[b](m):r[b]=m)}}}),x=q.prototype;q.bezierThrough=r;q.cubicToQuadratic=m;q._autoCSS=!0;q.quadraticToCubic=function(a,b,d){return new l(a,(2*b+a)/3,(2*b+d)/3,d)};q._cssRegister=function(){var a=h.CSSPlugin;if(a){var a=a._internals,b=a._parseToProxy,d=a._setPluginRatio,e=a.CSSPropTn;a._registerComplexSpecialProp("bezier",{parser:function(a,f,h,l,m,r){f instanceof Array&&(f={values:f});r=new q;var k,p,u=f.values,v=u.length-1,w=[],x={};if(0>v)return m;for(h=0;v>=h;h++)p=b(a,u[h],l,m,r,v!==h),w[h]=p.end;for(k in f)x[k]=f[k];return x.values=w,m=new e(a,"bezier",0,0,p.pt,2),m.data=p,m.plugin=r,m.setRatio=d,0===x.autoRotate&&(x.autoRotate=!0),!x.autoRotate||x.autoRotate instanceof Array||(h=!0===x.autoRotate?0:Number(x.autoRotate),x.autoRotate=null!=p.end.left?[["left","top","rotation",h,!1]]:null!=p.end.x?[["x","y","rotation",h,!1]]:!1),x.autoRotate&&(l._transform||l._enableTransforms(!1),p.autoRotate=l._target._gsTransform,p.proxy.rotation=p.autoRotate.rotation||0,l._overwriteProps.push("rotation")),r._onInitTn(p.proxy,x,l._tn),m}})}};x._mod=function(a){for(var b,d=this._overwriteProps,e=d.length;-1<--e;)(b=a[d[e]])&&"function"==typeof b&&(this._mod[d[e]]=b)};x._kill=function(a){var b,d,e=this._props;for(b in this._beziers)if(b in a)for(delete this._beziers[b],delete this._func[b],d=e.length;-1<--d;)e[d]===b&&e.splice(d,1);if(e=this._autoRotate)for(d=e.length;-1<--d;)a[e[d][2]]&&e.splice(d,1);return this._super._kill.call(this,a)}})();_gsScope._gsDefine("plugins.CSSPlugin",["plugins.TnPlugin","TnLite"],function(a,b){var d,e,f,h,l=function(){a.call(this,"css");this._overwriteProps.length=0;this.setRatio=l.prototype.setRatio},m=_gsScope._gsDefine.globals,r={},q=l.prototype=new a("css");q.constructor=l;l.version="1.19.1";l.API=2;l.defaultTransformPerspective=0;l.defaultSkewType="compensated";l.defaultSmoothOrigin=!0;q="px";l.suffixMap={top:q,right:q,bottom:q,left:q,width:q,height:q,fontSize:q,padding:q,margin:q,perspective:q,lineHeight:""};var x,G,B,w,v,k,u,p,E=/(?:\-|\.|\b)(\d|\.|e\-)+/g,C=/(?:\d|\-\d|\.\d|\-\.\d|\+=\d|\-=\d|\+=.\d|\-=\.\d)+/g,W=/(?:\+=|\-=|\-|\b)[\d\-\.]+[a-zA-Z0-9]*(?:%|\b)/gi,aa=/(?![+-]?\d*\.?\d+|[+-]|e[+-]\d+)[^0-9]/g,F=/(?:\d|\-|\+|=|#|\.)*/g,L=/opacity *= *([^)]*)/i,A=/opacity:([^;]*)/i,H=/alpha\(opacity *=.+?\)/i,D=/^(rgb|hsl)/,M=/([A-Z])/g,N=/-([a-z])/gi,V=/(^(?:url\(\"|url\())|(?:(\"\))$|\)$)/gi,Q=function(a,b){return b.toUpperCase()},J=/(?:Left|Right|Width)/i,K=/(M11|M12|M21|M22)=[\d\-\.e]+/gi,ba=/progid\:DXImageTransform\.Microsoft\.Matrix\(.+?\)/i,ca=/,(?=[^\)]*(?:\(|$))/gi,Na=/[\s,\(]/i,R=Math.PI/180,Z=180/Math.PI,ta={},da={style:{}},Y=_gsScope.document||{createElement:function(){return da}},S=function(a,b){return Y.createElementNS?Y.createElementNS(b||"http://www.w3.org/1999/xhtml",a):Y.createElement(a)},ga=S("div"),ja=S("img"),ka=l._internals={_specialProps:r},ha=(_gsScope.navigator||{}).userAgent||"",na=function(){var a=ha.indexOf("Android"),b=S("a");return B=-1!==ha.indexOf("Safari")&&-1===ha.indexOf("Chrome")&&(-1===a||3<parseFloat(ha.substr(a+8,2))),v=B&&6>parseFloat(ha.substr(ha.indexOf("Version/")+8,2)),w=-1!==ha.indexOf("Firefox"),(/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(ha)||/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(ha))&&(k=parseFloat(RegExp.$1)),b?(b.style.cssText="top:1px;opacity:.55;",/^0.55/.test(b.style.opacity)):!1}(),Oa=function(a){return L.test("string"==typeof a?a:(a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100:1},Ea="",X="",Hb=function(a,b){b=b||ga;var d,e,f=b.style;if(void 0!==f[a])return a;a=a.charAt(0).toUpperCase()+a.substr(1);d=["O","Moz","ms","Ms","Webkit"];for(e=5;-1<--e&&void 0===f[d[e]+a];);return 0<=e?(X=3===e?"ms":d[e],Ea="-"+X.toLowerCase()+"-",X+a):null},ua=Y.defaultView?Y.defaultView.getComputedStyle:function(){},z=l.getStyle=function(a,b,d,e,f){var h;return na||"opacity"!==b?(!e&&a.style[b]?h=a.style[b]:(d=d||ua(a))?h=d[b]||d.getPropertyValue(b)||d.getPropertyValue(b.replace(M,"-$1").toLowerCase()):a.currentStyle&&(h=a.currentStyle[b]),null==f||h&&"none"!==h&&"auto"!==h&&"auto auto"!==h?h:f):Oa(a)},la=ka.convertToPixels=function(a,d,e,f,h){if("px"===f||!f)return e;if("auto"===f||!e)return 0;var k,m,p,q=J.test(d),u=a;k=ga.style;var r=0>e,v=1===e;if(r&&(e=-e),v&&(e*=100),"%"===f&&-1!==d.indexOf("border"))k=e/100*(q?a.clientWidth:a.clientHeight);else{if(k.cssText="border:0 solid red;position:"+z(a,"position")+";line-height:0;","%"!==f&&u.appendChild&&"v"!==f.charAt(0)&&"rem"!==f)k[q?"borderLeftWidth":"borderTopWidth"]=e+f;else{if(u=a.parentNode||Y.body,m=u._gsCache,p=b.ticker.frame,m&&q&&m.time===p)return m.width*e/100;k[q?"width":"height"]=e+f}u.appendChild(ga);k=parseFloat(ga[q?"offsetWidth":"offsetHeight"]);u.removeChild(ga);q&&"%"===f&&!1!==l.cacheWidths&&(m=u._gsCache=u._gsCache||{},m.time=p,m.width=k/e*100);0!==k||h||(k=la(a,d,e,f,!0))}return v&&(k/=100),r?-k:k},fa=ka.calculateOffset=function(a,b,d){if("absolute"!==z(a,"position",d))return 0;var e="left"===b?"Left":"Top";d=z(a,"margin"+e,d);return a["offset"+e]-(la(a,b,parseFloat(d),d.replace(F,""))||0)},T=function(a,b){var d,e,f,h={};if(b=b||ua(a,null))if(d=b.length)for(;-1<--d;)f=b[d],-1!==f.indexOf("-transform")&&uc!==f||(h[f.replace(N,Q)]=b.getPropertyValue(f));else for(d in b)-1!==d.indexOf("Transform")&&eb!==d||(h[d]=b[d]);else if(b=a.currentStyle||a.style)for(d in b)"string"==typeof d&&void 0===h[d]&&(h[d.replace(N,Q)]=b[d]);return na||(h.opacity=Oa(a)),e=Rc(a,b,!1),h.rotation=e.rotation,h.skewX=e.skewX,h.scaleX=e.scaleX,h.scaleY=e.scaleY,h.x=e.x,h.y=e.y,Wb&&(h.z=e.z,h.rotationX=e.rotationX,h.rotationY=e.rotationY,h.scaleZ=e.scaleZ),h.filters&&delete h.filters,h},Ie=function(a,b,d,e,f){var h,l,k,m={},p=a.style;for(l in d)"cssText"!==l&&"length"!==l&&isNaN(l)&&(b[l]!==(h=d[l])||f&&f[l])&&-1===l.indexOf("Origin")&&("number"==typeof h||"string"==typeof h)&&(m[l]="auto"!==h||"left"!==l&&"top"!==l?""!==h&&"auto"!==h&&"none"!==h||"string"!=typeof b[l]||""===b[l].replace(aa,"")?h:0:fa(a,l),void 0!==p[l]&&(k=new Oc(p,l,p[l],k)));if(e)for(l in e)"className"!==l&&(m[l]=e[l]);return{difs:m,firstMPT:k}},nh={width:["Left","Right"],height:["Top","Bottom"]},Ua=["marginLeft","marginRight","marginTop","marginBottom"],kb=function(a,b){if("contain"===a||"auto"===a||"auto auto"===a)return a+" ";null!=a&&""!==a||(a="0 0");var d,e=a.split(" ");d=-1!==a.indexOf("left")?"0%":-1!==a.indexOf("right")?"100%":e[0];var f=-1!==a.indexOf("top")?"0%":-1!==a.indexOf("bottom")?"100%":e[1];if(3<e.length&&!b){e=a.split(", ").join(",").split(",");a=[];for(d=0;d<e.length;d++)a.push(kb(e[d]));return a.join(",")}return null==f?f="center"===d?"50%":"0":"center"===f&&(f="50%"),("center"===d||isNaN(parseFloat(d))&&-1===(d+"").indexOf("\x3d"))&&(d="50%"),a=d+" "+f+(2<e.length?" "+e[2]:""),b&&(b.oxp=-1!==d.indexOf("%"),b.oyp=-1!==f.indexOf("%"),b.oxr="\x3d"===d.charAt(1),b.oyr="\x3d"===f.charAt(1),b.ox=parseFloat(d.replace(aa,"")),b.oy=parseFloat(f.replace(aa,"")),b.v=a),b||a},za=function(a,b){return"function"==typeof a&&(a=a(p,u)),"string"==typeof a&&"\x3d"===a.charAt(1)?parseInt(a.charAt(0)+"1",10)*parseFloat(a.substr(2)):parseFloat(a)-parseFloat(b)||0},wa=function(a,b){return"function"==typeof a&&(a=a(p,u)),null==a?b:"string"==typeof a&&"\x3d"===a.charAt(1)?parseInt(a.charAt(0)+"1",10)*parseFloat(a.substr(2))+b:parseFloat(a)||0},Ma=function(a,b,d,e){var f,h,l,k;return"function"==typeof a&&(a=a(p,u)),null==a?l=b:"number"==typeof a?l=a:(f=a.split("_"),k="\x3d"===a.charAt(1),h=(k?parseInt(a.charAt(0)+"1",10)*parseFloat(f[0].substr(2)):parseFloat(f[0]))*(-1===a.indexOf("rad")?1:Z)-(k?0:b),f.length&&(e&&(e[d]=b+h),-1!==a.indexOf("short")&&(h%=360,h!==h%180&&(h=0>h?h+360:h-360)),-1!==a.indexOf("_cw")&&0>h?h=(h+3599999999640)%360-360*(h/360|0):-1!==a.indexOf("ccw")&&0<h&&(h=(h-3599999999640)%360-360*(h/360|0))),l=b+h),1E-6>l&&-1E-6<l&&(l=0),l},Va={aqua:[0,255,255],lime:[0,255,0],silver:[192,192,192],black:[0,0,0],maroon:[128,0,0],teal:[0,128,128],blue:[0,0,255],navy:[0,0,128],white:[255,255,255],fuchsia:[255,0,255],olive:[128,128,0],yellow:[255,255,0],orange:[255,165,0],gray:[128,128,128],purple:[128,0,128],green:[0,128,0],red:[255,0,0],pink:[255,192,203],cyan:[0,255,255],transparent:[255,255,255,0]},Je=function(a,b,d){return a=0>a?a+1:1<a?a-1:a,255*(1>6*a?b+(d-b)*a*6:.5>a?d:2>3*a?b+(d-b)*(2/3-a)*6:b)+.5|0},ud=l.parseColor=function(a,b){var d,e,f,h,l,k,m,p,z,q,u;if(a)if("number"==typeof a)d=[a>>16,a>>8&255,255&a];else{if(","===a.charAt(a.length-1)&&(a=a.substr(0,a.length-1)),Va[a])d=Va[a];else if("#"===a.charAt(0))4===a.length&&(e=a.charAt(1),f=a.charAt(2),h=a.charAt(3),a="#"+e+e+f+f+h+h),a=parseInt(a.substr(1),16),d=[a>>16,a>>8&255,255&a];else if("hsl"===a.substr(0,3))if(d=u=a.match(E),b){if(-1!==a.indexOf("\x3d"))return a.match(C)}else l=Number(d[0])%360/360,k=Number(d[1])/100,m=Number(d[2])/100,f=.5>=m?m*(k+1):m+k-m*k,e=2*m-f,3<d.length&&(d[3]=Number(a[3])),d[0]=Je(l+1/3,e,f),d[1]=Je(l,e,f),d[2]=Je(l-1/3,e,f);else d=a.match(E)||Va.transparent;d[0]=Number(d[0]);d[1]=Number(d[1]);d[2]=Number(d[2]);3<d.length&&(d[3]=Number(d[3]))}else d=Va.black;return b&&!u&&(e=d[0]/255,f=d[1]/255,h=d[2]/255,p=Math.max(e,f,h),z=Math.min(e,f,h),m=(p+z)/2,p===z?l=k=0:(q=p-z,k=.5<m?q/(2-p-z):q/(p+z),l=p===e?(f-h)/q+(h>f?6:0):p===f?(h-e)/q+2:(e-f)/q+4,l*=60),d[0]=l+.5|0,d[1]=100*k+.5|0,d[2]=100*m+.5|0),d},Nc=function(a,b){var d,e,f,h=a.match(hb)||[],l=0,k=h.length?"":a;for(d=0;d<h.length;d++)e=h[d],f=a.substr(l,a.indexOf(e,l)-l),l+=f.length+e.length,e=ud(e,b),3===e.length&&e.push(1),k+=f+(b?"hsla("+e[0]+","+e[1]+"%,"+e[2]+"%,"+e[3]:"rgba("+e.join(","))+")";return k+a.substr(l)},hb="(?:\\b(?:(?:rgb|rgba|hsl|hsla)\\(.+?\\))|\\B#(?:[0-9a-f]{3}){1,2}\\b";for(q in Va)hb+="|"+q+"\\b";hb=new RegExp(hb+")","gi");l.colorStringFilter=function(a){var b,d=a[0]+a[1];hb.test(d)&&(b=-1!==d.indexOf("hsl(")||-1!==d.indexOf("hsla("),a[0]=Nc(a[0],b),a[1]=Nc(a[1],b));hb.lastIndex=0};b.defaultStringFilter||(b.defaultStringFilter=l.colorStringFilter);var tc=function(a,b,d,e){if(null==a)return function(a){return a};var f,h=b?(a.match(hb)||[""])[0]:"",l=a.split(h).join("").match(W)||[],k=a.substr(0,a.indexOf(l[0])),m=")"===a.charAt(a.length-1)?")":"",p=-1!==a.indexOf(" ")?" ":",",z=l.length,q=0<z?l[0].replace(E,""):"";return z?f=b?function(a){var b,u,r;if("number"==typeof a)a+=q;else if(e&&ca.test(a)){a=a.replace(ca,"|").split("|");for(r=0;r<a.length;r++)a[r]=f(a[r]);return a.join(",")}if(b=(a.match(hb)||[h])[0],u=a.split(b).join("").match(W)||[],r=u.length,z>r--)for(;++r<z;)u[r]=d?u[(r-1)/2|0]:l[r];return k+u.join(p)+p+b+m+(-1!==a.indexOf("inset")?" inset":"")}:function(a){var b,h;if("number"==typeof a)a+=q;else if(e&&ca.test(a)){a=a.replace(ca,"|").split("|");for(h=0;h<a.length;h++)a[h]=f(a[h]);return a.join(",")}if(b=a.match(W)||[],h=b.length,z>h--)for(;++h<z;)b[h]=d?b[(h-1)/2|0]:l[h];return k+b.join(p)+m}:function(a){return a}},vd=function(a){return a=a.split(","),function(b,d,e,f,h,l,k){e=(d+"").split(" ");k={};for(d=0;4>d;d++)k[a[d]]=e[d]=e[d]||e[(d-1)/2>>0];return f.parse(b,k,h,l)}},Oc=(ka._setPluginRatio=function(a){this.plugin.setRatio(a);var b,d,e;e=this.data;for(var f=e.proxy,h=e.firstMPT;h;)b=f[h.v],h.r?b=Math.round(b):1E-6>b&&-1E-6<b&&(b=0),h.t[h.p]=b,h=h._next;if(e.autoRotate&&(e.autoRotate.rotation=e.mod?e.mod(f.rotation,this.t):f.rotation),1===a||0===a)for(h=e.firstMPT,e=1===a?"e":"b";h;){if(d=h.t,d.type){if(1===d.type){b=d.xs0+d.s+d.xs1;for(a=1;a<d.l;a++)b+=d["xn"+a]+d["xs"+(a+1)];d[e]=b}}else d[e]=d.s+d.xs0;h=h._next}},function(a,b,d,e,f){this.t=a;this.p=b;this.v=d;this.r=f;e&&(e._prev=this,this._next=e)}),db=(ka._parseToProxy=function(a,b,d,e,f,h){var l,k,m,p=e,z={},q={};k=d._transform;var u=ta;d._transform=null;ta=b;e=a=d.parse(a,b,e,f);ta=u;for(h&&(d._transform=k,p&&(p._prev=null,p._prev&&(p._prev._next=null)));e&&e!==p;){if(1>=e.type&&(l=e.p,q[l]=e.s+e.c,z[l]=e.s,h||(m=new Oc(e,"s",l,m,e.r),e.c=0),1===e.type))for(d=e.l;0<--d;)k="xn"+d,l=e.p+"_"+k,q[l]=e.data[k],z[l]=e[k],h||(m=new Oc(e,k,l,m,e.rxp[k]));e=e._next}return{proxy:z,end:q,firstMPT:m,pt:a}},ka.CSSPropTn=function(a,b,e,f,l,k,m,p,z,q,u){this.t=a;this.p=b;this.s=e;this.c=f;this.n=m||b;a instanceof db||h.push(this.n);this.r=p;this.type=k||0;z&&(this.pr=z,d=!0);this.b=void 0===q?e:q;this.e=void 0===u?e+f:u;l&&(this._next=l,l._prev=this)}),bd=function(a,b,d,e,f,h){a=new db(a,b,d,e-d,f,-1,h);return a.b=d,a.e=a.xs0=e,a},Pc=l.parseComplex=function(a,b,d,e,f,h,k,m,z,q){d=d||h||"";"function"==typeof e&&(e=e(p,u));k=new db(a,b,0,0,k,q?2:1,null,!1,m,d,e);e+="";f&&hb.test(e+d)&&(e=[d,e],l.colorStringFilter(e),d=e[0],e=e[1]);var r,v,w,J,D;a=d.split(", ").join(",").split(" ");b=e.split(", ").join(",").split(" ");m=a.length;var A=!1!==x;(-1!==e.indexOf(",")||-1!==d.indexOf(","))&&(a=a.join(" ").replace(ca,", ").split(" "),b=b.join(" ").replace(ca,", ").split(" "),m=a.length);m!==b.length&&(a=(h||"").split(" "),m=a.length);k.plugin=z;k.setRatio=q;for(d=hb.lastIndex=0;m>d;d++)if(r=a[d],z=b[d],w=parseFloat(r),w||0===w)k.appendXtra("",w,za(z,w),z.replace(C,""),A&&-1!==z.indexOf("px"),!0);else if(f&&hb.test(r))q=z.indexOf(")")+1,q=")"+(q?z.substr(q):""),J=-1!==z.indexOf("hsl")&&na,r=ud(r,J),z=ud(z,J),(h=6<r.length+z.length)&&!na&&0===z[3]?(k["xs"+k.l]+=k.l?" transparent":"transparent",k.e=k.e.split(b[d]).join("transparent")):(na||(h=!1),J?k.appendXtra(h?"hsla(":"hsl(",r[0],za(z[0],r[0]),",",!1,!0).appendXtra("",r[1],za(z[1],r[1]),"%,",!1).appendXtra("",r[2],za(z[2],r[2]),h?"%,":"%"+q,!1):k.appendXtra(h?"rgba(":"rgb(",r[0],z[0]-r[0],",",!0,!0).appendXtra("",r[1],z[1]-r[1],",",!0).appendXtra("",r[2],z[2]-r[2],h?",":q,!0),h&&(r=4>r.length?1:r[3],k.appendXtra("",r,(4>z.length?1:z[3])-r,q,!1))),hb.lastIndex=0;else if(h=r.match(E)){if(v=z.match(C),!v||v.length!==h.length)return k;for(z=q=0;z<h.length;z++)D=h[z],J=r.indexOf(D,q),k.appendXtra(r.substr(q,J-q),Number(D),za(v[z],D),"",A&&"px"===r.substr(J+D.length,2),0===z),q=J+D.length;k["xs"+k.l]+=r.substr(q)}else k["xs"+k.l]+=k.l||k["xs"+k.l]?" "+z:z;if(-1!==e.indexOf("\x3d")&&k.data){q=k.xs0+k.data.s;for(d=1;d<k.l;d++)q+=k["xs"+d]+k.data["xn"+d];k.e=q+k["xs"+d]}return k.l||(k.type=-1,k.xs0=k.e),k.xfirst||k},lb=9,q=db.prototype;for(q.l=q.pr=0;0<--lb;)q["xn"+lb]=0,q["xs"+lb]="";q.xs0="";q._next=q._prev=q.xfirst=q.data=q.plugin=q.setRatio=q.rxp=null;q.appendXtra=function(a,b,d,e,f,h){var k=this.l;return this["xs"+k]+=h&&(k||this["xs"+k])?" "+a:a||"",d||0===k||this.plugin?(this.l++,this.type=this.setRatio?2:1,this["xs"+this.l]=e||"",0<k?(this.data["xn"+k]=b+d,this.rxp["xn"+k]=f,this["xn"+k]=b,this.plugin||(this.xfirst=new db(this,"xn"+k,b,d,this.xfirst||this,0,this.n,f,this.pr),this.xfirst.xs0=0),this):(this.data={s:b+d},this.rxp={},this.s=b,this.c=d,this.r=f,this)):(this["xs"+k]+=b+(e||""),this)};var wf=function(a,b){b=b||{};this.p=b.prefix?Hb(a)||a:a;r[a]=r[this.p]=this;this.format=b.formatter||tc(b.defaultValue,b.color,b.collapsible,b.multi);b.parser&&(this.parse=b.parser);this.clrs=b.color;this.multi=b.multi;this.keyword=b.keyword;this.dflt=b.defaultValue;this.pr=b.priority||0},Sa=ka._registerComplexSpecialProp=function(a,b,d){"object"!=typeof b&&(b={parser:d});var e=a.split(","),f=b.defaultValue;d=d||[f];for(a=0;a<e.length;a++)b.prefix=0===a&&b.prefix,b.defaultValue=d[a]||f,new wf(e[a],b)},ng=ka._registerPluginProp=function(a){if(!r[a]){var b=a.charAt(0).toUpperCase()+a.substr(1)+"Plugin";Sa(a,{parser:function(a,d,e,f,h,k,l){var p=m.com.greensock.plugins[b];p?a=(p._cssRegister(),r[e].parse(a,d,e,f,h,k,l)):(_gsScope.console&&console.log("Error: "+b+" js file not loaded."),a=h);return a}})}},q=wf.prototype;q.parseComplex=function(a,b,d,e,f,h){var k,l,m,p,z,q,u=this.keyword;if(this.multi&&(ca.test(d)||ca.test(b)?(l=b.replace(ca,"|").split("|"),m=d.replace(ca,"|").split("|")):u&&(l=[b],m=[d])),m){p=m.length>l.length?m.length:l.length;for(k=0;p>k;k++)b=l[k]=l[k]||this.dflt,d=m[k]=m[k]||this.dflt,u&&(z=b.indexOf(u),q=d.indexOf(u),z!==q&&(-1===q?l[k]=l[k].split(u).join(""):-1===z&&(l[k]+=" "+u)));b=l.join(", ");d=m.join(", ")}return Pc(a,this.p,b,d,this.clrs,this.dflt,e,this.pr,f,h)};q.parse=function(a,b,d,e,h,k,l){return this.parseComplex(a.style,this.format(z(a,this.p,f,!1,this.dflt)),this.format(b),h,k)};l.registerSpecialProp=function(a,b,d){Sa(a,{parser:function(a,e,f,h,k,l,m){k=new db(a,f,0,0,k,2,f,!1,d);return k.plugin=l,k.setRatio=b(a,e,h._tn,f),k},priority:d})};l.useSVGTransformAttr=!0;var Qc,cd="scaleX scaleY scaleZ x y z skewX skewY rotation rotationX rotationY perspective xPercent yPercent".split(" "),eb=Hb("transform"),uc=Ea+"transform",Vb=Hb("transformOrigin"),Wb=null!==Hb("perspective"),Xd=ka.Transform=function(){this.perspective=parseFloat(l.defaultTransformPerspective)||0;this.force3D=!1!==l.defaultForce3D&&Wb?l.defaultForce3D||"auto":!1},xf=_gsScope.SVGElement,dd=function(a,b,d){var e;a=Y.createElementNS("http://www.w3.org/2000/svg",a);var f=/([a-z])([A-Z])/g;for(e in d)a.setAttributeNS(null,e.replace(f,"$1-$2").toLowerCase(),d[e]);return b.appendChild(a),a},fb=Y.documentElement||{},yf=function(){var a,b,d,e=k||/Android/i.test(ha)&&!_gsScope.chrome;return Y.createElementNS&&!e&&(a=dd("svg",fb),b=dd("rect",a,{width:100,height:50,x:100}),d=b.getBoundingClientRect().width,b.style[Vb]="50% 50%",b.style[eb]="scaleX(0.5)",e=d===b.getBoundingClientRect().width&&!(w&&Wb),fb.removeChild(a)),e}(),Ke=function(a,b,d,e,f,h){var k,m,p,z,q,u,r,v,w,J,x,E,D,C=a._gsTransform,A=Xb(a,!0);C&&(E=C.xOrigin,D=C.yOrigin);(!e||2>(k=e.split(" ")).length)&&(u=a.getBBox(),0===u.x&&0===u.y&&0===u.width+u.height&&(u={x:parseFloat(a.hasAttribute("x")?a.getAttribute("x"):a.hasAttribute("cx")?a.getAttribute("cx"):0)||0,y:parseFloat(a.hasAttribute("y")?a.getAttribute("y"):a.hasAttribute("cy")?a.getAttribute("cy"):0)||0,width:0,height:0}),b=kb(b).split(" "),k=[(-1!==b[0].indexOf("%")?parseFloat(b[0])/100*u.width:parseFloat(b[0]))+u.x,(-1!==b[1].indexOf("%")?parseFloat(b[1])/100*u.height:parseFloat(b[1]))+u.y]);d.xOrigin=b=parseFloat(k[0]);d.yOrigin=z=parseFloat(k[1]);e&&A!==wd&&(q=A[0],u=A[1],r=A[2],v=A[3],w=A[4],J=A[5],x=q*v-u*r,x&&(m=v/x*b+-r/x*z+(r*J-v*w)/x,p=-u/x*b+q/x*z-(q*J-u*w)/x,b=d.xOrigin=k[0]=m,z=d.yOrigin=k[1]=p));C&&(h&&(d.xOffset=C.xOffset,d.yOffset=C.yOffset,C=d),f||!1!==f&&!1!==l.defaultSmoothOrigin?(m=b-E,p=z-D,C.xOffset+=m*A[0]+p*A[2]-m,C.yOffset+=m*A[1]+p*A[3]-p):C.xOffset=C.yOffset=0);h||a.setAttribute("data-svg-origin",k.join(" "))},Yd=function(a){var b,d=S("svg",this.ownerSVGElement.getAttribute("xmlns")||"http://www.w3.org/2000/svg"),e=this.parentNode,f=this.nextSibling,h=this.style.cssText;if(fb.appendChild(d),d.appendChild(this),this.style.display="block",a)try{b=this.getBBox(),this._originalGetBBox=this.getBBox,this.getBBox=Yd}catch(Sc){}else this._originalGetBBox&&(b=this._originalGetBBox());return f?e.insertBefore(this,f):e.appendChild(this),fb.removeChild(d),this.style.cssText=h,b},Ob=function(a){var b;if(b=xf&&a.getCTM)try{b=a.getBBox()}catch(tb){b=Yd.call(a,!0)}return!(!b||a.parentNode&&!a.ownerSVGElement)},wd=[1,0,0,1,0,0],Xb=function(a,b){var d,e,f,h,k,l,m=a._gsTransform||new Xd,p=a.style;if(eb?e=z(a,uc,null,!0):a.currentStyle&&(e=a.currentStyle.filter.match(K),e=e&&4===e.length?[e[0].substr(4),Number(e[2].substr(4)),Number(e[1].substr(4)),e[3].substr(4),m.x||0,m.y||0].join():""),d=!e||"none"===e||"matrix(1, 0, 0, 1, 0, 0)"===e,d&&eb&&((l="none"===ua(a).display)||!a.parentNode)&&(l&&(h=p.display,p.display="block"),a.parentNode||(k=1,fb.appendChild(a)),e=z(a,uc,null,!0),d=!e||"none"===e||"matrix(1, 0, 0, 1, 0, 0)"===e,h?p.display=h:l&&ed(p,"display"),k&&fb.removeChild(a)),(m.svg||a.getCTM&&Ob(a))&&(d&&-1!==(p[eb]+"").indexOf("matrix")&&(e=p[eb],d=0),f=a.getAttribute("transform"),d&&f&&(-1!==f.indexOf("matrix")?(e=f,d=0):-1!==f.indexOf("translate")&&(e="matrix(1,0,0,1,"+f.match(/(?:\-|\b)[\d\-\.e]+\b/gi).join(",")+")",d=0))),d)return wd;f=(e||"").match(E)||[];for(lb=f.length;-1<--lb;)h=Number(f[lb]),f[lb]=(k=h-(h|=0))?(1E5*k+(0>k?-.5:.5)|0)/1E5+h:h;return b&&6<f.length?[f[0],f[1],f[4],f[5],f[12],f[13]]:f},Rc=ka.getTransform=function(a,d,e,f){if(a._gsTransform&&e&&!f)return a._gsTransform;var h,k,m,p=e?a._gsTransform||new Xd:new Xd,q=0>p.scaleX,u=Wb?parseFloat(z(a,Vb,d,!1,"0 0 0").split(" ")[2])||p.zOrigin||0:0,r=parseFloat(l.defaultTransformPerspective)||0;if(p.svg=!(!a.getCTM||!Ob(a)),p.svg&&(Ke(a,z(a,Vb,d,!1,"50% 50%")+"",p,a.getAttribute("data-svg-origin")),Qc=l.useSVGTransformAttr||yf),h=Xb(a),h!==wd){if(16===h.length){var v,w,J,x,r=h[0];d=h[1];f=h[2];var E=h[3],C=h[4],D=h[5],A=h[6],X=h[7],B=h[8],la=h[9],K=h[10],fa=h[12],T=h[13],G=h[14],ua=h[11],ba=Math.atan2(A,K);p.zOrigin&&(G=-p.zOrigin,fa=B*G-h[12],T=la*G-h[13],G=K*G+p.zOrigin-h[14]);p.rotationX=ba*Z;ba&&(x=Math.cos(-ba),m=Math.sin(-ba),v=C*x+B*m,w=D*x+la*m,J=A*x+K*m,B=C*-m+B*x,la=D*-m+la*x,K=A*-m+K*x,ua=X*-m+ua*x,C=v,D=w,A=J);ba=Math.atan2(-f,K);p.rotationY=ba*Z;ba&&(x=Math.cos(-ba),m=Math.sin(-ba),v=r*x-B*m,w=d*x-la*m,J=f*x-K*m,la=d*m+la*x,K=f*m+K*x,ua=E*m+ua*x,r=v,d=w,f=J);ba=Math.atan2(d,r);p.rotation=ba*Z;ba&&(x=Math.cos(-ba),m=Math.sin(-ba),r=r*x+C*m,w=d*x+D*m,D=d*-m+D*x,A=f*-m+A*x,d=w);p.rotationX&&359.9<Math.abs(p.rotationX)+Math.abs(p.rotation)&&(p.rotationX=p.rotation=0,p.rotationY=180-p.rotationY);p.scaleX=(1E5*Math.sqrt(r*r+d*d)+.5|0)/1E5;p.scaleY=(1E5*Math.sqrt(D*D+la*la)+.5|0)/1E5;p.scaleZ=(1E5*Math.sqrt(A*A+K*K)+.5|0)/1E5;p.rotationX||p.rotationY?p.skewX=0:(p.skewX=C||D?Math.atan2(C,D)*Z+p.rotation:p.skewX||0,90<Math.abs(p.skewX)&&270>Math.abs(p.skewX)&&(q?(p.scaleX*=-1,p.skewX+=0>=p.rotation?180:-180,p.rotation+=0>=p.rotation?180:-180):(p.scaleY*=-1,p.skewX+=0>=p.skewX?180:-180)));p.perspective=ua?1/(0>ua?-ua:ua):0;p.x=fa;p.y=T;p.z=G;p.svg&&(p.x-=p.xOrigin-(p.xOrigin*r-p.yOrigin*C),p.y-=p.yOrigin-(p.yOrigin*d-p.xOrigin*D))}else Wb&&!f&&h.length&&p.x===h[4]&&p.y===h[5]&&(p.rotationX||p.rotationY)||(v=(x=6<=h.length)?h[0]:1,w=h[1]||0,J=h[2]||0,x=x?h[3]:1,p.x=h[4]||0,p.y=h[5]||0,h=Math.sqrt(v*v+w*w),m=Math.sqrt(x*x+J*J),d=v||w?Math.atan2(w,v)*Z:p.rotation||0,f=J||x?Math.atan2(J,x)*Z+d:p.skewX||0,90<Math.abs(f)&&270>Math.abs(f)&&(q?(h*=-1,f+=0>=d?180:-180,d+=0>=d?180:-180):(m*=-1,f+=0>=f?180:-180)),p.scaleX=h,p.scaleY=m,p.rotation=d,p.skewX=f,Wb&&(p.rotationX=p.rotationY=p.z=0,p.perspective=r,p.scaleZ=1),p.svg&&(p.x-=p.xOrigin-(p.xOrigin*v+p.yOrigin*J),p.y-=p.yOrigin-(p.xOrigin*w+p.yOrigin*x)));p.zOrigin=u;for(k in p)2E-5>p[k]&&-2E-5<p[k]&&(p[k]=0)}return e&&(a._gsTransform=p,p.svg&&(Qc&&a.style[eb]?b.delayedCall(.001,function(){ed(a.style,eb)}):!Qc&&a.getAttribute("transform")&&b.delayedCall(.001,function(){a.removeAttribute("transform")}))),p},Yb=function(a){var b,d,e=this.data,f=-e.rotation*R,h=f+e.skewX*R,l=(Math.cos(f)*e.scaleX*1E5|0)/1E5,m=(Math.sin(f)*e.scaleX*1E5|0)/1E5,p=(Math.sin(h)*-e.scaleY*1E5|0)/1E5,z=(Math.cos(h)*e.scaleY*1E5|0)/1E5,h=this.t.style;if(f=this.t.currentStyle){d=m;m=-p;p=-d;b=f.filter;h.filter="";var q,u;d=this.t.offsetWidth;var r=this.t.offsetHeight,v="absolute"!==f.position,w="progid:DXImageTransform.Microsoft.Matrix(M11\x3d"+l+", M12\x3d"+m+", M21\x3d"+p+", M22\x3d"+z,x=e.x+d*e.xPercent/100,J=e.y+r*e.yPercent/100;if(null!=e.ox&&(q=(e.oxp?d*e.ox*.01:e.ox)-d/2,u=(e.oyp?r*e.oy*.01:e.oy)-r/2,x+=q-(q*l+u*m),J+=u-(q*p+u*z)),v?(q=d/2,u=r/2,w+=", Dx\x3d"+(q-(q*l+u*m)+x)+", Dy\x3d"+(u-(q*p+u*z)+J)+")"):w+=", sizingMethod\x3d'auto expand')",-1!==b.indexOf("DXImageTransform.Microsoft.Matrix(")?h.filter=b.replace(ba,w):h.filter=w+" "+b,(0===a||1===a)&&1===l&&0===m&&0===p&&1===z&&(v&&-1===w.indexOf("Dx\x3d0, Dy\x3d0")||L.test(b)&&100!==parseFloat(RegExp.$1)||-1===b.indexOf(b.indexOf("Alpha"))&&h.removeAttribute("filter")),!v)for(a=8>k?1:-1,q=e.ieOffsetX||0,u=e.ieOffsetY||0,e.ieOffsetX=Math.round((d-((0>l?-l:l)*d+(0>m?-m:m)*r))/2+x),e.ieOffsetY=Math.round((r-((0>z?-z:z)*r+(0>p?-p:p)*d))/2+J),lb=0;4>lb;lb++)l=Ua[lb],m=f[l],d=-1!==m.indexOf("px")?parseFloat(m):la(this.t,l,parseFloat(m),m.replace(F,""))||0,m=d!==e[l]?2>lb?-e.ieOffsetX:-e.ieOffsetY:2>lb?q-e.ieOffsetX:u-e.ieOffsetY,h[l]=(e[l]=Math.round(d-m*(0===lb||2===lb?1:a)))+"px"}},Le=ka.set3DTransformRatio=ka.setTransformRatio=function(a){var b,d,e,f,h,k,l,m,p,z,q,u,r,v,x,J,C,D=this.data,E=this.t.style,A=D.rotation,X=D.rotationX,B=D.rotationY,la=D.scaleX,K=D.scaleY,fa=D.scaleZ,G=D.x,T=D.y,ua=D.z,ba=D.svg,ca=D.perspective;l=D.force3D;m=D.skewY;p=D.skewX;if(m&&(p+=m,A+=m),!((1!==a&&0!==a||"auto"!==l||this.tn._totalTime!==this.tn._totalDuration&&this.tn._totalTime)&&l||ua||ca||B||X)&&1===fa||Qc&&ba||!Wb)return void(A||p||ba?(A*=R,k=p*R,d=Math.cos(A)*la,f=Math.sin(A)*la,e=Math.sin(A-k)*-K,h=Math.cos(A-k)*K,k&&"simple"===D.skewType&&(b=Math.tan(k-m*R),b=Math.sqrt(1+b*b),e*=b,h*=b,m&&(b=Math.tan(m*R),b=Math.sqrt(1+b*b),d*=b,f*=b)),ba&&(G+=D.xOrigin-(D.xOrigin*d+D.yOrigin*e)+D.xOffset,T+=D.yOrigin-(D.xOrigin*f+D.yOrigin*h)+D.yOffset,Qc&&(D.xPercent||D.yPercent)&&(v=this.t.getBBox(),G+=.01*D.xPercent*v.width,T+=.01*D.yPercent*v.height),v=1E-6,v>G&&G>-v&&(G=0),v>T&&T>-v&&(T=0)),r=(1E5*d|0)/1E5+","+(1E5*f|0)/1E5+","+(1E5*e|0)/1E5+","+(1E5*h|0)/1E5+","+G+","+T+")",ba&&Qc?this.t.setAttribute("transform","matrix("+r):E[eb]=(D.xPercent||D.yPercent?"translate("+D.xPercent+"%,"+D.yPercent+"%) matrix(":"matrix(")+r):E[eb]=(D.xPercent||D.yPercent?"translate("+D.xPercent+"%,"+D.yPercent+"%) matrix(":"matrix(")+la+",0,0,"+K+","+G+","+T+")");if(w&&(v=1E-4,v>la&&la>-v&&(la=fa=2E-5),v>K&&K>-v&&(K=fa=2E-5),!ca||D.z||D.rotationX||D.rotationY||(ca=0)),A||p)A*=R,x=d=Math.cos(A),J=f=Math.sin(A),p&&(A-=p*R,x=Math.cos(A),J=Math.sin(A),"simple"===D.skewType&&(b=Math.tan((p-m)*R),b=Math.sqrt(1+b*b),x*=b,J*=b,D.skewY&&(b=Math.tan(m*R),b=Math.sqrt(1+b*b),d*=b,f*=b))),e=-J,h=x;else{if(!(B||X||1!==fa||ca||ba))return void(E[eb]=(D.xPercent||D.yPercent?"translate("+D.xPercent+"%,"+D.yPercent+"%) translate3d(":"translate3d(")+G+"px,"+T+"px,"+ua+"px)"+(1!==la||1!==K?" scale("+la+","+K+")":""));d=h=1;e=f=0}p=1;a=k=l=m=z=q=0;u=ca?-1/ca:0;r=D.zOrigin;v=1E-6;(A=B*R)&&(x=Math.cos(A),J=Math.sin(A),l=-J,z=u*-J,a=d*J,k=f*J,p=x,u*=x,d*=x,f*=x);(A=X*R)&&(x=Math.cos(A),J=Math.sin(A),b=e*x+a*J,C=h*x+k*J,m=p*J,q=u*J,a=e*-J+a*x,k=h*-J+k*x,p*=x,u*=x,e=b,h=C);1!==fa&&(a*=fa,k*=fa,p*=fa,u*=fa);1!==K&&(e*=K,h*=K,m*=K,q*=K);1!==la&&(d*=la,f*=la,l*=la,z*=la);(r||ba)&&(r&&(G+=a*-r,T+=k*-r,ua+=p*-r+r),ba&&(G+=D.xOrigin-(D.xOrigin*d+D.yOrigin*e)+D.xOffset,T+=D.yOrigin-(D.xOrigin*f+D.yOrigin*h)+D.yOffset),v>G&&G>-v&&(G="0"),v>T&&T>-v&&(T="0"),v>ua&&ua>-v&&(ua=0));r=D.xPercent||D.yPercent?"translate("+D.xPercent+"%,"+D.yPercent+"%) matrix3d(":"matrix3d(";r=r+((v>d&&d>-v?"0":d)+","+(v>f&&f>-v?"0":f)+","+(v>l&&l>-v?"0":l))+(","+(v>z&&z>-v?"0":z)+","+(v>e&&e>-v?"0":e)+","+(v>h&&h>-v?"0":h));X||B||1!==fa?(r+=","+(v>m&&m>-v?"0":m)+","+(v>q&&q>-v?"0":q)+","+(v>a&&a>-v?"0":a),r+=","+(v>k&&k>-v?"0":k)+","+(v>p&&p>-v?"0":p)+","+(v>u&&u>-v?"0":u)+","):r+=",0,0,0,0,1,0,";r+=G+","+T+","+ua+","+(ca?1+-ua/ca:1)+")";E[eb]=r},q=Xd.prototype;q.x=q.y=q.z=q.skewX=q.skewY=q.rotation=q.rotationX=q.rotationY=q.zOrigin=q.xPercent=q.yPercent=q.xOffset=q.yOffset=0;q.scaleX=q.scaleY=q.scaleZ=1;Sa("transform,scale,scaleX,scaleY,scaleZ,x,y,z,rotation,rotationX,rotationY,rotationZ,skewX,skewY,shortRotation,shortRotationX,shortRotationY,shortRotationZ,transformOrigin,svgOrigin,transformPerspective,directionalRotation,parseTransform,force3D,skewType,xPercent,yPercent,smoothOrigin",{parser:function(a,b,d,e,h,k,m){if(e._lastParsedTransform===m)return h;e._lastParsedTransform=m;var q,r=m.scale&&"function"==typeof m.scale?m.scale:0;"function"==typeof m[d]&&(q=m[d],m[d]=b);r&&(m.scale=r(p,a));var v,w,x,J,D,C,E,A;b=a._gsTransform;var X=a.style,B=cd.length,la={},K=Rc(a,f,!0,m.parseTransform),fa=m.transform&&("function"==typeof m.transform?m.transform(p,u):m.transform);if(e._transform=K,fa&&"string"==typeof fa&&eb)w=ga.style,w[eb]=fa,w.display="block",w.position="absolute",Y.body.appendChild(ga),v=Rc(ga,null,!1),K.svg&&(D=K.xOrigin,C=K.yOrigin,v.x-=K.xOffset,v.y-=K.yOffset,(m.transformOrigin||m.svgOrigin)&&(fa={},Ke(a,kb(m.transformOrigin),fa,m.svgOrigin,m.smoothOrigin,!0),D=fa.xOrigin,C=fa.yOrigin,v.x-=fa.xOffset-K.xOffset,v.y-=fa.yOffset-K.yOffset),(D||C)&&(E=Xb(ga,!0),v.x-=D-(D*E[0]+C*E[2]),v.y-=C-(D*E[1]+C*E[3]))),Y.body.removeChild(ga),v.perspective||(v.perspective=K.perspective),null!=m.xPercent&&(v.xPercent=wa(m.xPercent,K.xPercent)),null!=m.yPercent&&(v.yPercent=wa(m.yPercent,K.yPercent));else if("object"==typeof m){if(v={scaleX:wa(null!=m.scaleX?m.scaleX:m.scale,K.scaleX),scaleY:wa(null!=m.scaleY?m.scaleY:m.scale,K.scaleY),scaleZ:wa(m.scaleZ,K.scaleZ),x:wa(m.x,K.x),y:wa(m.y,K.y),z:wa(m.z,K.z),xPercent:wa(m.xPercent,K.xPercent),yPercent:wa(m.yPercent,K.yPercent),perspective:wa(m.transformPerspective,K.perspective)},x=m.directionalRotation,null!=x)if("object"==typeof x)for(w in x)m[w]=x[w];else m.rotation=x;"string"==typeof m.x&&-1!==m.x.indexOf("%")&&(v.x=0,v.xPercent=wa(m.x,K.xPercent));"string"==typeof m.y&&-1!==m.y.indexOf("%")&&(v.y=0,v.yPercent=wa(m.y,K.yPercent));v.rotation=Ma("rotation"in m?m.rotation:"shortRotation"in m?m.shortRotation+"_short":"rotationZ"in m?m.rotationZ:K.rotation,K.rotation,"rotation",la);Wb&&(v.rotationX=Ma("rotationX"in m?m.rotationX:"shortRotationX"in m?m.shortRotationX+"_short":K.rotationX||0,K.rotationX,"rotationX",la),v.rotationY=Ma("rotationY"in m?m.rotationY:"shortRotationY"in m?m.shortRotationY+"_short":K.rotationY||0,K.rotationY,"rotationY",la));v.skewX=Ma(m.skewX,K.skewX);v.skewY=Ma(m.skewY,K.skewY)}Wb&&null!=m.force3D&&(K.force3D=m.force3D,J=!0);K.skewType=m.skewType||K.skewType||l.defaultSkewType;for((x=K.force3D||K.z||K.rotationX||K.rotationY||v.z||v.rotationX||v.rotationY||v.perspective)||null==m.scale||(v.scaleZ=1);-1<--B;)A=cd[B],fa=v[A]-K[A],(1E-6<fa||-1E-6>fa||null!=m[A]||null!=ta[A])&&(J=!0,h=new db(K,A,K[A],fa,h),A in la&&(h.e=la[A]),h.xs0=0,h.plugin=k,e._overwriteProps.push(h.n));return fa=m.transformOrigin,K.svg&&(fa||m.svgOrigin)&&(D=K.xOffset,C=K.yOffset,Ke(a,kb(fa),v,m.svgOrigin,m.smoothOrigin),h=bd(K,"xOrigin",(b?K:v).xOrigin,v.xOrigin,h,"transformOrigin"),h=bd(K,"yOrigin",(b?K:v).yOrigin,v.yOrigin,h,"transformOrigin"),(D!==K.xOffset||C!==K.yOffset)&&(h=bd(K,"xOffset",b?D:K.xOffset,K.xOffset,h,"transformOrigin"),h=bd(K,"yOffset",b?C:K.yOffset,K.yOffset,h,"transformOrigin")),fa="0px 0px"),(fa||Wb&&x&&K.zOrigin)&&(eb?(J=!0,A=Vb,fa=(fa||z(a,A,f,!1,"50% 50%"))+"",h=new db(X,A,0,0,h,-1,"transformOrigin"),h.b=X[A],h.plugin=k,Wb?(w=K.zOrigin,fa=fa.split(" "),K.zOrigin=(2<fa.length&&(0===w||"0px"!==fa[2])?parseFloat(fa[2]):w)||0,h.xs0=h.e=fa[0]+" "+(fa[1]||"50%")+" 0px",h=new db(K,"zOrigin",0,0,h,-1,h.n),h.b=w,h.xs0=h.e=K.zOrigin):h.xs0=h.e=fa):kb(fa+"",K)),J&&(e._transformType=K.svg&&Qc||!x&&3!==this._transformType?2:3),q&&(m[d]=q),r&&(m.scale=r),h},prefix:!0});Sa("boxShadow",{defaultValue:"0px 0px 0px 0px #999",prefix:!0,color:!0,multi:!0,keyword:"inset"});Sa("borderRadius",{defaultValue:"0px",parser:function(a,b,d,h,k,l){b=this.format(b);var m,p,q,u,r,v,w,x,J,D,C,E,A,X=["borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius"],B=a.style;h=parseFloat(a.offsetWidth);l=parseFloat(a.offsetHeight);b=b.split(" ");for(m=0;m<X.length;m++)this.p.indexOf("border")&&(X[m]=Hb(X[m])),u=q=z(a,X[m],f,!1,"0px"),-1!==u.indexOf(" ")&&(q=u.split(" "),u=q[0],q=q[1]),r=p=b[m],v=parseFloat(u),J=u.substr((v+"").length),(D="\x3d"===r.charAt(1))?(w=parseInt(r.charAt(0)+"1",10),r=r.substr(2),w*=parseFloat(r),x=r.substr((w+"").length-(0>w?1:0))||""):(w=parseFloat(r),x=r.substr((w+"").length)),""===x&&(x=e[d]||J),x!==J&&(C=la(a,"borderLeft",v,J),E=la(a,"borderTop",v,J),"%"===x?(u=C/h*100+"%",q=E/l*100+"%"):"em"===x?(A=la(a,"borderLeft",1,"em"),u=C/A+"em",q=E/A+"em"):(u=C+"px",q=E+"px"),D&&(r=parseFloat(u)+w+x,p=parseFloat(q)+w+x)),k=Pc(B,X[m],u+" "+q,r+" "+p,!1,"0px",k);return k},prefix:!0,formatter:tc("0px 0px 0px 0px",!1,!0)});Sa("borderBottomLeftRadius,borderBottomRightRadius,borderTopLeftRadius,borderTopRightRadius",{defaultValue:"0px",parser:function(a,b,d,e,h,k){return Pc(a.style,d,this.format(z(a,d,f,!1,"0px 0px")),this.format(b),!1,"0px",h)},prefix:!0,formatter:tc("0px 0px",!1,!0)});Sa("backgroundPosition",{defaultValue:"0 0",parser:function(a,b,d,e,h,l){var m,p,q;d=f||ua(a,null);d=this.format((d?k?d.getPropertyValue("background-position-x")+" "+d.getPropertyValue("background-position-y"):d.getPropertyValue("background-position"):a.currentStyle.backgroundPositionX+" "+a.currentStyle.backgroundPositionY)||"0 0");var u=this.format(b);if(-1!==d.indexOf("%")!=(-1!==u.indexOf("%"))&&2>u.split(",").length&&(m=z(a,"backgroundImage").replace(V,""),m&&"none"!==m)){b=d.split(" ");e=u.split(" ");ja.setAttribute("src",m);for(m=2;-1<--m;)d=b[m],p=-1!==d.indexOf("%"),p!==(-1!==e[m].indexOf("%"))&&(q=0===m?a.offsetWidth-ja.width:a.offsetHeight-ja.height,b[m]=p?parseFloat(d)/100*q+"px":parseFloat(d)/q*100+"%");d=b.join(" ")}return this.parseComplex(a.style,d,u,h,l)},formatter:kb});Sa("backgroundSize",{defaultValue:"0 0",formatter:function(a){return a+="",kb(-1===a.indexOf(" ")?a+" "+a:a)}});Sa("perspective",{defaultValue:"0px",prefix:!0});Sa("perspectiveOrigin",{defaultValue:"50% 50%",prefix:!0});Sa("transformStyle",{prefix:!0});Sa("backfaceVisibility",{prefix:!0});Sa("userSelect",{prefix:!0});Sa("margin",{parser:vd("marginTop,marginRight,marginBottom,marginLeft")});Sa("padding",{parser:vd("paddingTop,paddingRight,paddingBottom,paddingLeft")});Sa("clip",{defaultValue:"rect(0px,0px,0px,0px)",parser:function(a,b,d,e,h,l){var m,p,q;return 9>k?(p=a.currentStyle,q=8>k?" ":",",m="rect("+p.clipTop+q+p.clipRight+q+p.clipBottom+q+p.clipLeft+")",b=this.format(b).split(",").join(q)):(m=this.format(z(a,this.p,f,!1,this.dflt)),b=this.format(b)),this.parseComplex(a.style,m,b,h,l)}});Sa("textShadow",{defaultValue:"0px 0px 0px #999",color:!0,multi:!0});Sa("autoRound,strictUnits",{parser:function(a,b,d,e,f){return f}});Sa("border",{defaultValue:"0px solid #000",parser:function(a,b,d,e,h,k){d=z(a,"borderTopWidth",f,!1,"0px");b=this.format(b).split(" ");e=b[0].replace(F,"");return"px"!==e&&(d=parseFloat(d)/la(a,"borderTopWidth",1,e)+e),this.parseComplex(a.style,this.format(d+" "+z(a,"borderTopStyle",f,!1,"solid")+" "+z(a,"borderTopColor",f,!1,"#000")),b.join(" "),h,k)},color:!0,formatter:function(a){var b=a.split(" ");return b[0]+" "+(b[1]||"solid")+" "+(a.match(hb)||["#000"])[0]}});Sa("borderWidth",{parser:vd("borderTopWidth,borderRightWidth,borderBottomWidth,borderLeftWidth")});Sa("float,cssFloat,styleFloat",{parser:function(a,b,d,e,f,h){a=a.style;e="cssFloat"in a?"cssFloat":"styleFloat";return new db(a,e,0,0,f,-1,d,!1,0,a[e],b)}});var xd=function(a){var b,d=this.t,e=d.filter||z(this.data,"filter")||"";a=this.s+this.c*a|0;100===a&&(-1===e.indexOf("atrix(")&&-1===e.indexOf("radient(")&&-1===e.indexOf("oader(")?(d.removeAttribute("filter"),b=!z(this.data,"filter")):(d.filter=e.replace(H,""),b=!0));b||(this.xn1&&(d.filter=e=e||"alpha(opacity\x3d"+a+")"),-1===e.indexOf("pacity")?0===a&&this.xn1||(d.filter=e+" alpha(opacity\x3d"+a+")"):d.filter=e.replace(L,"opacity\x3d"+a))};Sa("opacity,alpha,autoAlpha",{defaultValue:"1",parser:function(a,b,d,e,h,k){var l=parseFloat(z(a,"opacity",f,!1,"1")),m=a.style,p="autoAlpha"===d;return"string"==typeof b&&"\x3d"===b.charAt(1)&&(b=("-"===b.charAt(0)?-1:1)*parseFloat(b.substr(2))+l),p&&1===l&&"hidden"===z(a,"visibility",f)&&0!==b&&(l=0),na?h=new db(m,"opacity",l,b-l,h):(h=new db(m,"opacity",100*l,100*(b-l),h),h.xn1=p?1:0,m.zoom=1,h.type=2,h.b="alpha(opacity\x3d"+h.s+")",h.e="alpha(opacity\x3d"+(h.s+h.c)+")",h.data=a,h.plugin=k,h.setRatio=xd),p&&(h=new db(m,"visibility",0,0,h,-1,null,!1,0,0!==l?"inherit":"hidden",0===b?"hidden":"inherit"),h.xs0="inherit",e._overwriteProps.push(h.n),e._overwriteProps.push(d)),h}});var ed=function(a,b){b&&(a.removeProperty?(("ms"===b.substr(0,2)||"webkit"===b.substr(0,6))&&(b="-"+b),a.removeProperty(b.replace(M,"-$1").toLowerCase())):a.removeAttribute(b))},zf=function(a){if(this.t._gsClassPT=this,1===a||0===a){this.t.setAttribute("class",0===a?this.b:this.e);for(var b=this.data,d=this.t.style;b;)b.v?d[b.p]=b.v:ed(d,b.p),b=b._next;1===a&&this.t._gsClassPT===this&&(this.t._gsClassPT=null)}else this.t.getAttribute("class")!==this.e&&this.t.setAttribute("class",this.e)};Sa("className",{parser:function(a,b,e,h,k,l,m){var p,z,q,u,r=a.getAttribute("class")||"",v=a.style.cssText;if(k=h._classNamePT=new db(a,e,0,0,k,2),k.setRatio=zf,k.pr=-11,d=!0,k.b=r,e=T(a,f),z=a._gsClassPT){q={};for(u=z.data;u;)q[u.p]=1,u=u._next;z.setRatio(1)}return a._gsClassPT=k,k.e="\x3d"!==b.charAt(1)?b:r.replace(new RegExp("(?:\\s|^)"+b.substr(2)+"(?![\\w-])"),"")+("+"===b.charAt(0)?" "+b.substr(2):""),a.setAttribute("class",k.e),p=Ie(a,e,T(a),m,q),a.setAttribute("class",r),k.data=p.firstMPT,a.style.cssText=v,k.xfirst=h.parse(a,p.difs,k,l)}});var og=function(a){if((1===a||0===a)&&this.data._totalTime===this.data._totalDuration&&"isFromStart"!==this.data.data){var b,d,e,f,h=this.t.style,k=r.transform.parse;if("all"===this.e)h.cssText="",e=!0;else for(a=this.e.split(" ").join("").split(","),d=a.length;-1<--d;)b=a[d],r[b]&&(r[b].parse===k?e=!0:b="transformOrigin"===b?Vb:r[b].p),ed(h,b);e&&(ed(h,eb),f=this.t._gsTransform,f&&(f.svg&&(this.t.removeAttribute("data-svg-origin"),this.t.removeAttribute("transform")),delete this.t._gsTransform))}};Sa("clearProps",{parser:function(a,b,e,f,h){return h=new db(a,e,0,0,h,2),h.setRatio=og,h.e=b,h.pr=-10,h.data=f._tn,d=!0,h}});q=["bezier","throwProps","physicsProps","physics2D"];for(lb=q.length;lb--;)ng(q[lb]);q=l.prototype;q._firstPT=q._lastParsedTransform=q._transform=null;q._onInitTn=function(a,b,k,m){if(!a.nodeType)return!1;this._target=u=a;this._tn=k;this._vars=b;p=m;x=b.autoRound;d=!1;e=b.suffixMap||l.suffixMap;f=ua(a,"");h=this._overwriteProps;var q,w,J,D,C;m=a.style;if(G&&""===m.zIndex&&(q=z(a,"zIndex",f),("auto"===q||""===q)&&this._addLazySet(m,"zIndex",0)),"string"==typeof b&&(D=m.cssText,q=T(a,f),m.cssText=D+";"+b,q=Ie(a,q,T(a)).difs,!na&&A.test(b)&&(q.opacity=parseFloat(RegExp.$1)),b=q,m.cssText=D),b.className?this._firstPT=w=r.className.parse(a,b.className,"className",this,null,null,b):this._firstPT=w=this.parse(a,b,null),this._transformType){b=3===this._transformType;eb?B&&(G=!0,""===m.zIndex&&(J=z(a,"zIndex",f),("auto"===J||""===J)&&this._addLazySet(m,"zIndex",0)),v&&this._addLazySet(m,"WebkitBackfaceVisibility",this._vars.WebkitBackfaceVisibility||(b?"visible":"hidden"))):m.zoom=1;for(J=w;J&&J._next;)J=J._next;b=new db(a,"transform",0,0,null,2);this._linkCSSP(b,null,J);b.setRatio=eb?Le:Yb;b.data=this._transform||Rc(a,f,!0);b.tn=k;b.pr=-1;h.pop()}if(d){for(;w;){a=w._next;for(J=D;J&&J.pr>w.pr;)J=J._next;(w._prev=J?J._prev:C)?w._prev._next=w:D=w;(w._next=J)?J._prev=w:C=w;w=a}this._firstPT=D}return!0};q.parse=function(a,b,d,h){var k,l,m,q,v,w,J,C,E,A=a.style;for(k in b){v=b[k];"function"==typeof v&&(v=v(p,u));if(l=r[k])d=l.parse(a,v,k,this,d,h,b);else if(l=z(a,k,f)+"",C="string"==typeof v,"color"===k||"fill"===k||"stroke"===k||-1!==k.indexOf("Color")||C&&D.test(v))C||(v=ud(v),v=(3<v.length?"rgba(":"rgb(")+v.join(",")+")"),d=Pc(A,k,l,v,!0,"transparent",d,0,h);else if(C&&Na.test(v))d=Pc(A,k,l,v,!0,null,d,0,h);else{w=(m=parseFloat(l))||0===m?l.substr((m+"").length):"";if(""===l||"auto"===l)if("width"===k||"height"===k){m=a;var X=k;w=f;if("svg"===(m.nodeName+"").toLowerCase())m=(w||ua(m))[X]||0;else if(m.getCTM&&Ob(m))m=m.getBBox()[X]||0;else{E=parseFloat("width"===X?m.offsetWidth:m.offsetHeight);var X=nh[X],B=X.length;for(w=w||ua(m,null);-1<--B;)E-=parseFloat(z(m,"padding"+X[B],w,!0))||0,E-=parseFloat(z(m,"border"+X[B]+"Width",w,!0))||0;m=E}w="px"}else"left"===k||"top"===k?(m=fa(a,k,f),w="px"):(m="opacity"!==k?0:1,w="");(E=C&&"\x3d"===v.charAt(1))?(q=parseInt(v.charAt(0)+"1",10),v=v.substr(2),q*=parseFloat(v),J=v.replace(F,"")):(q=parseFloat(v),J=C?v.replace(F,""):"");""===J&&(J=k in e?e[k]:w);v=q||0===q?(E?q+m:q)+J:b[k];w!==J&&""!==J&&(q||0===q)&&m&&(m=la(a,k,m,w),"%"===J?(m/=la(a,k,100,"%")/100,!0!==b.strictUnits&&(l=m+"%")):"em"===J||"rem"===J||"vw"===J||"vh"===J?m/=la(a,k,1,J):"px"!==J&&(q=la(a,k,q,J),J="px"),E&&(q||0===q)&&(v=q+m+J));E&&(q+=m);!m&&0!==m||!q&&0!==q?void 0!==A[k]&&(v||"NaN"!=v+""&&null!=v)?(d=new db(A,k,q||m||0,0,d,-1,k,!1,0,l,v),d.xs0="none"!==v||"display"!==k&&-1===k.indexOf("Style")?v:l):_gsScope.console&&console.log("invalid "+k+" tn value: "+b[k]):(d=new db(A,k,m,q-m,d,0,k,!1!==x&&("px"===J||"zIndex"===k),0,l,v),d.xs0=J)}h&&d&&!d.plugin&&(d.plugin=h)}return d};q.setRatio=function(a){var b,d,e,f=this._firstPT;if(1!==a||this._tn._time!==this._tn._duration&&0!==this._tn._time)if(a||this._tn._time!==this._tn._duration&&0!==this._tn._time||-1E-6===this._tn._rawPrevTime)for(;f;){if(b=f.c*a+f.s,f.r?b=Math.round(b):1E-6>b&&-1E-6<b&&(b=0),f.type)if(1===f.type)if(e=f.l,2===e)f.t[f.p]=f.xs0+b+f.xs1+f.xn1+f.xs2;else if(3===e)f.t[f.p]=f.xs0+b+f.xs1+f.xn1+f.xs2+f.xn2+f.xs3;else if(4===e)f.t[f.p]=f.xs0+b+f.xs1+f.xn1+f.xs2+f.xn2+f.xs3+f.xn3+f.xs4;else if(5===e)f.t[f.p]=f.xs0+b+f.xs1+f.xn1+f.xs2+f.xn2+f.xs3+f.xn3+f.xs4+f.xn4+f.xs5;else{d=f.xs0+b+f.xs1;for(e=1;e<f.l;e++)d+=f["xn"+e]+f["xs"+(e+1)];f.t[f.p]=d}else-1===f.type?f.t[f.p]=f.xs0:f.setRatio&&f.setRatio(a);else f.t[f.p]=b+f.xs0;f=f._next}else for(;f;)2!==f.type?f.t[f.p]=f.b:f.setRatio(a),f=f._next;else for(;f;){if(2!==f.type)if(f.r&&-1!==f.type)if(b=Math.round(f.s+f.c),f.type){if(1===f.type){d=f.xs0+b+f.xs1;for(e=1;e<f.l;e++)d+=f["xn"+e]+f["xs"+(e+1)];f.t[f.p]=d}}else f.t[f.p]=b+f.xs0;else f.t[f.p]=f.e;else f.setRatio(a);f=f._next}};q._enableTransforms=function(a){this._transform=this._transform||Rc(this._target,f,!0);this._transformType=this._transform.svg&&Qc||!a&&3!==this._transformType?2:3};var Me=function(a){this.t[this.p]=this.e;this.data._linkCSSP(this,this._next,null,!0)};q._addLazySet=function(a,b,d){a=this._firstPT=new db(a,b,0,0,this._firstPT,2);a.e=d;a.setRatio=Me;a.data=this};q._linkCSSP=function(a,b,d,e){return a&&(b&&(b._prev=a),a._next&&(a._next._prev=a._prev),a._prev?a._prev._next=a._next:this._firstPT===a&&(this._firstPT=a._next,e=!0),d?d._next=a:e||null!==this._firstPT||(this._firstPT=a),a._next=b,a._prev=d),a};q._mod=function(a){for(var b=this._firstPT;b;)"function"==typeof a[b.p]&&a[b.p]===Math.round&&(b.r=1),b=b._next};q._kill=function(b){var d,e,f,h=b;if(b.autoAlpha||b.alpha){h={};for(e in b)h[e]=b[e];h.opacity=1;h.autoAlpha&&(h.visibility=1)}b.className&&(d=this._classNamePT)&&(f=d.xfirst,f&&f._prev?this._linkCSSP(f._prev,d._next,f._prev._prev):f===this._firstPT&&(this._firstPT=d._next),d._next&&this._linkCSSP(d._next,d._next._next,f._prev),this._classNamePT=null);for(d=this._firstPT;d;)d.plugin&&d.plugin!==e&&d.plugin._kill&&(d.plugin._kill(b),e=d.plugin),d=d._next;return a.prototype._kill.call(this,h)};var sb=function(a,b,d){var e,f,h;if(a.slice)for(e=a.length;-1<--e;)sb(a[e],b,d);else for(a=a.childNodes,e=a.length;-1<--e;)f=a[e],h=f.type,f.style&&(b.push(T(f)),d&&d.push(f)),1!==h&&9!==h&&11!==h||!f.childNodes.length||sb(f,b,d)};return l.cascadeTo=function(a,d,e){var f,h,k;k=b.to(a,d,e);var l=[k],m=[],p=[],z=[],q=b._internals.reservedProps;a=k._targets||k.target;sb(a,m,z);k.render(d,!0,!0);sb(a,p);k.render(0,!0,!0);k._enabled(!0);for(a=z.length;-1<--a;)if(f=Ie(z[a],m[a],p[a]),f.firstMPT){f=f.difs;for(h in e)q[h]&&(f[h]=e[h]);k={};for(h in f)k[h]=m[a][h];l.push(b.fromTo(z[a],d,k,f))}return l},a.activate([l]),l},!0);(function(){var a=_gsScope._gsDefine.plugin({propName:"roundProps",version:"1.6.0",priority:-1,API:2,init:function(a,d,e){return this._tn=e,!0}}).prototype;a._onInitAllProps=function(){for(var a,d,e,f=this._tn,h=f.vars.roundProps.join?f.vars.roundProps:f.vars.roundProps.split(","),l=h.length,m={},r=f._propLookup.roundProps;-1<--l;)m[h[l]]=Math.round;for(l=h.length;-1<--l;)for(a=h[l],d=f._firstPT;d;){e=d._next;if(d.pg)d.t._mod(m);else if(d.n===a)if(2===d.f&&d.t)for(d=d.t._firstPT;d;)d.f||d.blob||(d.m=Math.round),d=d._next;else this._add(d.t,a,d.s,d.c),e&&(e._prev=d._prev),d._prev?d._prev._next=e:f._firstPT===d&&(f._firstPT=e),d._next=d._prev=null,f._propLookup[a]=r;d=e}return!1};a._add=function(a,d,e,f){this._addTn(a,d,e,e+f,d,Math.round);this._overwriteProps.push(d)}})();(function(){_gsScope._gsDefine.plugin({propName:"attr",API:2,version:"0.6.0",init:function(a,b,d,e){var f;if("function"!=typeof a.setAttribute)return!1;for(f in b)d=b[f],"function"==typeof d&&(d=d(e,a)),this._addTn(a,"setAttribute",a.getAttribute(f)+"",d+"",f,!1,f),this._overwriteProps.push(f);return!0}})})();_gsScope._gsDefine.plugin({propName:"directionalRotation",version:"0.3.0",API:2,init:function(a,b,d,e){"object"!=typeof b&&(b={rotation:b});this.finals={};var f,h,l,m,r,q;d=!0===b.useRadians?2*Math.PI:360;for(f in b)"useRadians"!==f&&(m=b[f],"function"==typeof m&&(m=m(e,a)),q=(m+"").split("_"),h=q[0],l=parseFloat("function"!=typeof a[f]?a[f]:a[f.indexOf("set")||"function"!=typeof a["get"+f.substr(3)]?f:"get"+f.substr(3)]()),m=this.finals[f]="string"==typeof h&&"\x3d"===h.charAt(1)?l+parseInt(h.charAt(0)+"1",10)*Number(h.substr(2)):Number(h)||0,r=m-l,q.length&&(h=q.join("_"),-1!==h.indexOf("short")&&(r%=d,r!==r%(d/2)&&(r=0>r?r+d:r-d)),-1!==h.indexOf("_cw")&&0>r?r=(r+9999999999*d)%d-(r/d|0)*d:-1!==h.indexOf("ccw")&&0<r&&(r=(r-9999999999*d)%d-(r/d|0)*d)),(1E-6<r||-1E-6>r)&&(this._addTn(a,f,l,l+r,f),this._overwriteProps.push(f)));return!0},set:function(a){if(1!==a)this._super.setRatio.call(this,a);else for(a=this._firstPT;a;)a.f?a.t[a.p](this.finals[a.p]):a.t[a.p]=this.finals[a.p],a=a._next}})._autoCSS=!0;_gsScope._gsDefine("easing.Back",["easing.Ease"],function(a){var b,d,e,f=_gsScope.GreenSockGlobals||_gsScope,h=2*Math.PI,l=Math.PI/2,m=f.com.greensock._class,r=function(b,d){var e=m("easing."+b,function(){},!0),f=e.prototype=new a;return f.constructor=e,f.getRatio=d,e},q=a.register||function(){},x=function(a,b,d,e,f){b=m("easing."+a,{easeOut:new b,easeIn:new d,easeInOut:new e},!0);return q(b,a),b},G=function(a,b,d){this.t=a;this.v=b;d&&(this.next=d,d.prev=this,this.c=d.v-b,this.gap=d.t-a)},B=function(b,d){var e=m("easing."+b,function(a){this._p1=a||0===a?a:1.70158;this._p2=1.525*this._p1},!0),f=e.prototype=new a;return f.constructor=e,f.getRatio=d,f.config=function(a){return new e(a)},e},B=x("Back",B("BackOut",function(a){return--a*a*((this._p1+1)*a+this._p1)+1}),B("BackIn",function(a){return a*a*((this._p1+1)*a-this._p1)}),B("BackInOut",function(a){return 1>(a*=2)?.5*a*a*((this._p2+1)*a-this._p2):.5*((a-=2)*a*((this._p2+1)*a+this._p2)+2)})),w=m("easing.SlowMo",function(a,b,d){null==a?a=.7:1<a&&(a=1);this._p=1!==a?b||0===b?b:.7:0;this._p1=(1-a)/2;this._p2=a;this._p3=this._p1+this._p2;this._calcEnd=!0===d},!0),v=w.prototype=new a;return v.constructor=w,v.getRatio=function(a){var b=a+(.5-a)*this._p;return a<this._p1?this._calcEnd?1-(a=1-a/this._p1)*a:b-(a=1-a/this._p1)*a*a*a*b:a>this._p3?this._calcEnd?1-(a=(a-this._p3)/this._p1)*a:b+(a-b)*(a=(a-this._p3)/this._p1)*a*a*a:this._calcEnd?1:b},w.ease=new w(.7,.7),v.config=w.config=function(a,b,d){return new w(a,b,d)},b=m("easing.SteppedEase",function(a){a=a||1;this._p1=1/a;this._p2=a+1},!0),v=b.prototype=new a,v.constructor=b,v.getRatio=function(a){return 0>a?a=0:1<=a&&(a=.999999999),(this._p2*a>>0)*this._p1},v.config=b.config=function(a){return new b(a)},d=m("easing.RoughEase",function(b){b=b||{};for(var d,e,f,h,l=b.taper||"none",k=[],m=0,q=h=0|(b.points||20),r=!1!==b.randomize,v=!0===b.clamp,w=b.template instanceof a?b.template:null,x="number"==typeof b.strength?.4*b.strength:.4;-1<--q;)b=r?Math.random():1/h*q,d=w?w.getRatio(b):b,"none"===l?e=x:"out"===l?(f=1-b,e=f*f*x):"in"===l?e=b*b*x:.5>b?(f=2*b,e=f*f*.5*x):(f=2*(1-b),e=f*f*.5*x),r?d+=Math.random()*e-.5*e:q%2?d+=.5*e:d-=.5*e,v&&(1<d?d=1:0>d&&(d=0)),k[m++]={x:b,y:d};k.sort(function(a,b){return a.x-b.x});e=new G(1,1,null);for(q=h;-1<--q;)h=k[q],e=new G(h.x,h.y,e);this._prev=new G(0,0,0!==e.t?e:e.next)},!0),v=d.prototype=new a,v.constructor=d,v.getRatio=function(a){var b=this._prev;if(a>b.t){for(;b.next&&a>=b.t;)b=b.next;b=b.prev}else for(;b.prev&&a<=b.t;)b=b.prev;return this._prev=b,b.v+(a-b.t)/b.gap*b.c},v.config=function(a){return new d(a)},d.ease=new d,x("Bounce",r("BounceOut",function(a){return 1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375}),r("BounceIn",function(a){return(a=1-a)<1/2.75?1-7.5625*a*a:2/2.75>a?1-(7.5625*(a-=1.5/2.75)*a+.75):2.5/2.75>a?1-(7.5625*(a-=2.25/2.75)*a+.9375):1-(7.5625*(a-=2.625/2.75)*a+.984375)}),r("BounceInOut",function(a){var b=.5>a;return a=b?1-2*a:2*a-1,a=1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375,b?.5*(1-a):.5*a+.5})),x("Circ",r("CircOut",function(a){return Math.sqrt(1- --a*a)}),r("CircIn",function(a){return-(Math.sqrt(1-a*a)-1)}),r("CircInOut",function(a){return 1>(a*=2)?-.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1)})),e=function(b,d,e){var f=m("easing."+b,function(a,b){this._p1=1<=a?a:1;this._p2=(b||e)/(1>a?a:1);this._p3=this._p2/h*(Math.asin(1/this._p1)||0);this._p2=h/this._p2},!0);b=f.prototype=new a;return b.constructor=f,b.getRatio=d,b.config=function(a,b){return new f(a,b)},f},x("Elastic",e("ElasticOut",function(a){return this._p1*Math.pow(2,-10*a)*Math.sin((a-this._p3)*this._p2)+1},.3),e("ElasticIn",function(a){return-(this._p1*Math.pow(2,10*--a)*Math.sin((a-this._p3)*this._p2))},.3),e("ElasticInOut",function(a){return 1>(a*=2)?-.5*this._p1*Math.pow(2,10*--a)*Math.sin((a-this._p3)*this._p2):this._p1*Math.pow(2,-10*--a)*Math.sin((a-this._p3)*this._p2)*.5+1},.45)),x("Expo",r("ExpoOut",function(a){return 1-Math.pow(2,-10*a)}),r("ExpoIn",function(a){return Math.pow(2,10*(a-1))-.001}),r("ExpoInOut",function(a){return 1>(a*=2)?.5*Math.pow(2,10*(a-1)):.5*(2-Math.pow(2,-10*(a-1)))})),x("Sine",r("SineOut",function(a){return Math.sin(a*l)}),r("SineIn",function(a){return-Math.cos(a*l)+1}),r("SineInOut",function(a){return-.5*(Math.cos(Math.PI*a)-1)})),m("easing.EaseLookup",{find:function(b){return a.map[b]}},!0),q(f.SlowMo,"SlowMo","ease,"),q(d,"RoughEase","ease,"),q(b,"SteppedEase","ease,"),B},!0)});_gsScope._gsDefine&&_gsScope._gsQueue.pop()();(function(a,b){var d={},e=a.document,f=a.GreenSockGlobals=a.GreenSockGlobals||a;if(!f.TnLite){var h,l,m,r,q,x=function(a){var b=a.split("."),d=f;for(a=0;a<b.length;a++)d[b[a]]=d=d[b[a]]||{};return d},G=x("com.greensock"),B=function(a){var b,d=[],e=a.length;for(b=0;b!==e;d.push(a[b++]));return d},w=function(){},v=function(){var a=Object.prototype.toString,b=a.call([]);return function(d){return null!=d&&(d instanceof Array||"object"==typeof d&&!!d.push&&a.call(d)===b)}}(),k={},u=function(e,h,l,m){this.sc=k[e]?k[e].sc:[];k[e]=this;this.gsClass=null;this.func=l;var p=[];this.check=function(z){for(var q,r,v,w,J,D=h.length,C=D;-1<--D;)(q=k[h[D]]||new u(h[D],[])).gsClass?(p[D]=q.gsClass,C--):z&&q.sc.push(this);if(0===C&&l){if(r=("com.greensock."+e).split("."),v=r.pop(),w=x(r.join("."))[v]=this.gsClass=l.apply(l,p),m)if(f[v]=d[v]=w,J="undefined"!=typeof module&&module.exports,!J&&"function"==typeof define&&define.amd)define((a.GreenSockAMDPath?a.GreenSockAMDPath+"/":"")+e.split(".").pop(),[],function(){return w});else if(J)if(e===b)for(D in module.exports=d[b]=w,d)w[D]=d[D];else d[b]&&(d[b][v]=w);for(D=0;D<this.sc.length;D++)this.sc[D].check()}};this.check(!0)},p=a._gsDefine=function(a,b,d,e){return new u(a,b,d,e)},E=G._class=function(a,b,d){return b=b||function(){},p(a,[],function(){return b},d),b};p.globals=f;var C=[0,0,1,1],W=E("easing.Ease",function(a,b,d,e){this._func=a;this._type=d||0;this._power=e||0;this._params=b?C.concat(b):C},!0),aa=W.map={},F=W.register=function(a,b,d,e){var f,h,l;b=b.split(",");for(var k=b.length,m=(d||"easeIn,easeOut,easeInOut").split(",");-1<--k;)for(f=b[k],d=e?E("easing."+f,null,!0):G.easing[f]||{},h=m.length;-1<--h;)l=m[h],aa[f+"."+l]=aa[l+f]=d[l]=a.getRatio?a:a[l]||new a};m=W.prototype;m._calcEnd=!1;m.getRatio=function(a){if(this._func)return this._params[0]=a,this._func.apply(null,this._params);var b=this._type,d=this._power,e=1===b?1-a:2===b?a:.5>a?2*a:2*(1-a);return 1===d?e*=e:2===d?e*=e*e:3===d?e*=e*e*e:4===d&&(e*=e*e*e*e),1===b?1-e:2===b?e:.5>a?e/2:1-e/2};h=["Linear","Quad","Cubic","Quart","Quint,Strong"];for(l=h.length;-1<--l;)m=h[l]+",Power"+l,F(new W(null,null,1,l),m,"easeOut",!0),F(new W(null,null,2,l),m,"easeIn"+(0===l?",easeNone":"")),F(new W(null,null,3,l),m,"easeInOut");aa.linear=G.easing.Linear.easeIn;aa.swing=G.easing.Quad.easeInOut;var L=E("events.EventDispatcher",function(a){this._listeners={};this._eventTarget=a||this});m=L.prototype;m.addEventListener=function(a,b,d,e,f){f=f||0;var h,l=this._listeners[a],k=0;this!==r||q||r.wake();null==l&&(this._listeners[a]=l=[]);for(h=l.length;-1<--h;)a=l[h],a.c===b&&a.s===d?l.splice(h,1):0===k&&a.pr<f&&(k=h+1);l.splice(k,0,{c:b,s:d,up:e,pr:f})};m.removeEventListener=function(a,b){var d,e=this._listeners[a];if(e)for(d=e.length;-1<--d;)if(e[d].c===b)return void e.splice(d,1)};m.dispatchEvent=function(a){var b,d,e,f=this._listeners[a];if(f)for(b=f.length,1<b&&(f=f.slice(0)),d=this._eventTarget;-1<--b;)(e=f[b])&&(e.up?e.c.call(e.s||d,{type:a,target:d}):e.c.call(e.s||d))};var A=a.requestAnimationFrame,H=a.cancelAnimationFrame,D=Date.now||function(){return(new Date).getTime()},M=D();h=["ms","moz","webkit","o"];for(l=h.length;-1<--l&&!A;)A=a[h[l]+"RequestAnimationFrame"],H=a[h[l]+"CancelAnimationFrame"]||a[h[l]+"CancelRequestAnimationFrame"];E("Ticker",function(a,b){var d,f,h,l,k,m=this,p=D(),z=!1!==b&&A?"auto":!1,u=500,v=33,J=function(a){var b,e;b=D()-M;b>u&&(p+=b-v);M+=b;m.time=(M-p)/1E3;b=m.time-k;(!d||0<b||!0===a)&&(m.frame++,k+=b+(b>=l?.004:l-b),e=!0);!0!==a&&(h=f(J));e&&m.dispatchEvent("tick")};L.call(m);m.time=m.frame=0;m.tick=function(){J(!0)};m.lagSmoothing=function(a,b){u=a||1E10;v=Math.min(b,u,0)};m.sleep=function(){null!=h&&(z&&H?H(h):clearTimeout(h),f=w,h=null,m===r&&(q=!1))};m.wake=function(a){null!==h?m.sleep():a?p+=-M+(M=D()):10<m.frame&&(M=D()-u+5);f=0===d?w:z&&A?A:function(a){return setTimeout(a,1E3*(k-m.time)+1|0)};m===r&&(q=!0);J(2)};m.fps=function(a){return arguments.length?(d=a,l=1/(d||60),k=this.time+l,void m.wake()):d};m.useRAF=function(a){return arguments.length?(m.sleep(),z=a,void m.fps(d)):z};m.fps(a);setTimeout(function(){"auto"===z&&5>m.frame&&"hidden"!==e.visibilityState&&m.useRAF(!1)},1500)});m=G.Ticker.prototype=new G.events.EventDispatcher;m.constructor=G.Ticker;var N=E("core.Animation",function(a,b){if(this.vars=b=b||{},this._duration=this._totalDuration=a||0,this._delay=Number(b.delay)||0,this._timeScale=1,this._active=!0===b.immediateRender,this.data=b.data,this._reversed=!0===b.reversed,ka){q||r.wake();var d=this.vars.useFrames?ja:ka;d.add(this,d._time);this.vars.paused&&this.paused(!0)}});r=N.ticker=new G.Ticker;m=N.prototype;m._dirty=m._gc=m._initted=m._paused=!1;m._totalTime=m._time=0;m._rawPrevTime=-1;m._next=m._last=m._onUpdate=m._timeline=m.timeline=null;m._paused=!1;var V=function(){q&&2E3<D()-M&&r.wake();setTimeout(V,2E3)};V();m.play=function(a,b){return null!=a&&this.seek(a,b),this.reversed(!1).paused(!1)};m.pause=function(a,b){return null!=a&&this.seek(a,b),this.paused(!0)};m.resume=function(a,b){return null!=a&&this.seek(a,b),this.paused(!1)};m.seek=function(a,b){return this.totalTime(Number(a),!1!==b)};m.restart=function(a,b){return this.reversed(!1).paused(!1).totalTime(a?-this._delay:0,!1!==b,!0)};m.reverse=function(a,b){return null!=a&&this.seek(a||this.totalDuration(),b),this.reversed(!0).paused(!1)};m.render=function(a,b,d){};m.invalidate=function(){return this._time=this._totalTime=0,this._initted=this._gc=!1,this._rawPrevTime=-1,(this._gc||!this.timeline)&&this._enabled(!0),this};m.isActive=function(){var a,b=this._timeline,d=this._startTime;return!b||!this._gc&&!this._paused&&b.isActive()&&(a=b.rawTime(!0))>=d&&a<d+this.totalDuration()/this._timeScale};m._enabled=function(a,b){return q||r.wake(),this._gc=!a,this._active=this.isActive(),!0!==b&&(a&&!this.timeline?this._timeline.add(this,this._startTime-this._delay):!a&&this.timeline&&this._timeline._remove(this,!0)),!1};m._kill=function(a,b){return this._enabled(!1,!1)};m.kill=function(a,b){return this._kill(a,b),this};m._uncache=function(a){for(a=a?this:this.timeline;a;)a._dirty=!0,a=a.timeline;return this};m._swapSelfInParams=function(a){for(var b=a.length,d=a.concat();-1<--b;)"{self}"===a[b]&&(d[b]=this);return d};m._callback=function(a){var b=this.vars,d=b[a],e=b[a+"Params"];a=b[a+"Scope"]||b.callbackScope||this;switch(e?e.length:0){case 0:d.call(a);break;case 1:d.call(a,e[0]);break;case 2:d.call(a,e[0],e[1]);break;default:d.apply(a,e)}};m.eventCallback=function(a,b,d,e){if("on"===(a||"").substr(0,2)){var f=this.vars;if(1===arguments.length)return f[a];null==b?delete f[a]:(f[a]=b,f[a+"Params"]=v(d)&&-1!==d.join("").indexOf("{self}")?this._swapSelfInParams(d):d,f[a+"Scope"]=e);"onUpdate"===a&&(this._onUpdate=b)}return this};m.delay=function(a){return arguments.length?(this._timeline.smoothChildTiming&&this.startTime(this._startTime+a-this._delay),this._delay=a,this):this._delay};m.duration=function(a){return arguments.length?(this._duration=this._totalDuration=a,this._uncache(!0),this._timeline.smoothChildTiming&&0<this._time&&this._time<this._duration&&0!==a&&this.totalTime(a/this._duration*this._totalTime,!0),this):(this._dirty=!1,this._duration)};m.totalDuration=function(a){return this._dirty=!1,arguments.length?this.duration(a):this._totalDuration};m.time=function(a,b){return arguments.length?(this._dirty&&this.totalDuration(),this.totalTime(a>this._duration?this._duration:a,b)):this._time};m.totalTime=function(a,b,d){if(q||r.wake(),!arguments.length)return this._totalTime;if(this._timeline){if(0>a&&!d&&(a+=this.totalDuration()),this._timeline.smoothChildTiming){this._dirty&&this.totalDuration();var e=this._totalDuration,f=this._timeline;if(a>e&&!d&&(a=e),this._startTime=(this._paused?this._pauseTime:f._time)-(this._reversed?e-a:a)/this._timeScale,f._dirty||this._uncache(!1),f._timeline)for(;f._timeline;)f._timeline._time!==(f._startTime+f._totalTime)/f._timeScale&&f.totalTime(f._totalTime,!0),f=f._timeline}this._gc&&this._enabled(!0,!1);(this._totalTime!==a||0===this._duration)&&(K.length&&na(),this.render(a,b,!1),K.length&&na())}return this};m.progress=m.totalProgress=function(a,b){var d=this.duration();return arguments.length?this.totalTime(d*a,b):d?this._time/d:this.ratio};m.startTime=function(a){return arguments.length?(a!==this._startTime&&(this._startTime=a,this.timeline&&this.timeline._sortChildren&&this.timeline.add(this,a-this._delay)),this):this._startTime};m.endTime=function(a){return this._startTime+(0!=a?this.totalDuration():this.duration())/this._timeScale};m.timeScale=function(a){if(!arguments.length)return this._timeScale;if(a=a||1E-10,this._timeline&&this._timeline.smoothChildTiming){var b=this._pauseTime,b=b||0===b?b:this._timeline.totalTime();this._startTime=b-(b-this._startTime)*this._timeScale/a}return this._timeScale=a,this._uncache(!1)};m.reversed=function(a){return arguments.length?(a!=this._reversed&&(this._reversed=a,this.totalTime(this._timeline&&!this._timeline.smoothChildTiming?this.totalDuration()-this._totalTime:this._totalTime,!0)),this):this._reversed};m.paused=function(a){if(!arguments.length)return this._paused;var b,d,e=this._timeline;return a!=this._paused&&e&&(q||a||r.wake(),b=e.rawTime(),d=b-this._pauseTime,!a&&e.smoothChildTiming&&(this._startTime+=d,this._uncache(!1)),this._pauseTime=a?b:null,this._paused=a,this._active=this.isActive(),!a&&0!==d&&this._initted&&this.duration()&&(b=e.smoothChildTiming?this._totalTime:(b-this._startTime)/this._timeScale,this.render(b,b===this._totalTime,!0))),this._gc&&!a&&this._enabled(!0,!1),this};h=E("core.SimpleTimeline",function(a){N.call(this,0,a);this.autoRemoveChildren=this.smoothChildTiming=!0});m=h.prototype=new N;m.constructor=h;m.kill()._gc=!1;m._first=m._last=m._recent=null;m._sortChildren=!1;m.add=m.insert=function(a,b,d,e){if(a._startTime=Number(b||0)+a._delay,a._paused&&this!==a._timeline&&(a._pauseTime=a._startTime+(this.rawTime()-a._startTime)/a._timeScale),a.timeline&&a.timeline._remove(a,!0),a.timeline=a._timeline=this,a._gc&&a._enabled(!0,!0),b=this._last,this._sortChildren)for(d=a._startTime;b&&b._startTime>d;)b=b._prev;return b?(a._next=b._next,b._next=a):(a._next=this._first,this._first=a),a._next?a._next._prev=a:this._last=a,a._prev=b,this._recent=a,this._timeline&&this._uncache(!0),this};m._remove=function(a,b){return a.timeline===this&&(b||a._enabled(!1,!0),a._prev?a._prev._next=a._next:this._first===a&&(this._first=a._next),a._next?a._next._prev=a._prev:this._last===a&&(this._last=a._prev),a._next=a._prev=a.timeline=null,a===this._recent&&(this._recent=this._last),this._timeline&&this._uncache(!0)),this};m.render=function(a,b,d){var e,f=this._first;for(this._totalTime=this._time=this._rawPrevTime=a;f;)e=f._next,(f._active||a>=f._startTime&&!f._paused)&&(f._reversed?f.render((f._dirty?f.totalDuration():f._totalDuration)-(a-f._startTime)*f._timeScale,b,d):f.render((a-f._startTime)*f._timeScale,b,d)),f=e};m.rawTime=function(){return q||r.wake(),this._totalTime};var Q=E("TnLite",function(b,d,e){if(N.call(this,d,e),this.render=Q.prototype.render,null==b)throw"Cannot tn a null target.";this.target=b="string"!=typeof b?b:Q.selector(b)||b;var f,h;f=b.jquery||b.length&&b!==a&&b[0]&&(b[0]===a||b[0].nodeType&&b[0].style&&!b.nodeType);e=this.vars.overwrite;if(this._overwrite=e=null==e?ga[Q.defaultOverwrite]:"number"==typeof e?e>>0:ga[e],(f||b instanceof Array||b.push&&v(b))&&"number"!=typeof b[0])for(this._targets=h=B(b),this._propLookup=[],this._siblings=[],b=0;b<h.length;b++)(f=h[b])?"string"!=typeof f?f.length&&f!==a&&f[0]&&(f[0]===a||f[0].nodeType&&f[0].style&&!f.nodeType)?(h.splice(b--,1),this._targets=h=h.concat(B(f))):(this._siblings[b]=Oa(f,this,!1),1===e&&1<this._siblings[b].length&&X(f,this,null,1,this._siblings[b])):(f=h[b--]=Q.selector(f),"string"==typeof f&&h.splice(b+1,1)):h.splice(b--,1);else this._propLookup={},this._siblings=Oa(b,this,!1),1===e&&1<this._siblings.length&&X(b,this,null,1,this._siblings);(this.vars.immediateRender||0===d&&0===this._delay&&!1!==this.vars.immediateRender)&&(this._time=-1E-10,this.render(Math.min(0,-this._delay)))},!0),J=function(b){return b&&b.length&&b!==a&&b[0]&&(b[0]===a||b[0].nodeType&&b[0].style&&!b.nodeType)};m=Q.prototype=new N;m.constructor=Q;m.kill()._gc=!1;m.ratio=0;m._firstPT=m._targets=m._overwrittenProps=m._startAt=null;m._notifyPluginsOfEnabled=m._lazy=!1;Q.version="1.19.1";Q.defaultEase=m._ease=new W(null,null,1,1);Q.defaultOverwrite="auto";Q.ticker=r;Q.autoSleep=120;Q.lagSmoothing=function(a,b){r.lagSmoothing(a,b)};Q.selector=a.$||a.jQuery||function(b){var d=a.$||a.jQuery;return d?(Q.selector=d,d(b)):"undefined"==typeof e?b:e.querySelectorAll?e.querySelectorAll(b):e.getElementById("#"===b.charAt(0)?b.substr(1):b)};var K=[],ba={},ca=/(?:(-|-=|\+=)?\d*\.?\d*(?:e[\-+]?\d+)?)[0-9]/gi,Na=function(a){for(var b,d=this._firstPT;d;)b=d.blob?1===a?this.end:a?this.join(""):this.start:d.c*a+d.s,d.m?b=d.m(b,this._target||d.t):1E-6>b&&-1E-6<b&&!d.blob&&(b=0),d.f?d.fp?d.t[d.p](d.fp,b):d.t[d.p](b):d.t[d.p]=b,d=d._next},R=function(a,b,d,e){var f,h,l,k,m=[],p=0,q="",z=0;m.start=a;m.end=b;a=m[0]=a+"";b=m[1]=b+"";d&&(d(m),a=m[0],b=m[1]);m.length=0;a=a.match(ca)||[];d=b.match(ca)||[];e&&(e._next=null,e.blob=1,m._firstPT=m._applyPT=e);h=d.length;for(e=0;h>e;e++)k=d[e],l=b.substr(p,b.indexOf(k,p)-p),q+=l||!e?l:",",p+=l.length,z?z=(z+1)%5:"rgba("===l.substr(-5)&&(z=1),k===a[e]||a.length<=e?q+=k:(q&&(m.push(q),q=""),f=parseFloat(a[e]),m.push(f),m._firstPT={_next:m._firstPT,t:m,p:m.length-1,s:f,c:("\x3d"===k.charAt(1)?parseInt(k.charAt(0)+"1",10)*parseFloat(k.substr(2)):parseFloat(k)-f)||0,f:0,m:z&&4>z?Math.round:0}),p+=k.length;return q+=b.substr(p),q&&m.push(q),m.setRatio=Na,m},Z=function(a,b,d,e,f,h,l,k,m){"function"==typeof e&&(e=e(m||0,a));var p;m=typeof a[b];var q="function"!==m?"":b.indexOf("set")||"function"!=typeof a["get"+b.substr(3)]?b:"get"+b.substr(3);d="get"!==d?d:q?l?a[q](l):a[q]():a[b];q="string"==typeof e&&"\x3d"===e.charAt(1);a={t:a,p:b,s:d,f:"function"===m,pg:0,n:f||b,m:h?"function"==typeof h?h:Math.round:0,pr:0,c:q?parseInt(e.charAt(0)+"1",10)*parseFloat(e.substr(2)):parseFloat(e)-d||0};return("number"!=typeof d||"number"!=typeof e&&!q)&&(l||isNaN(d)||!q&&isNaN(e)||"boolean"==typeof d||"boolean"==typeof e?(a.fp=l,p=R(d,q?a.s+a.c:e,k||Q.defaultStringFilter,a),a={t:p,p:"setRatio",s:0,c:1,f:2,pg:0,n:f||b,pr:0,m:0}):(a.s=parseFloat(d),q||(a.c=parseFloat(e)-a.s||0))),a.c?((a._next=this._firstPT)&&(a._next._prev=a),this._firstPT=a,a):void 0};l=Q._internals={isArray:v,isSelector:J,lazyTns:K,blobDif:R};var ta=Q._plugins={},da=l.tnLookup={},Y=0,S=l.reservedProps={ease:1,delay:1,overwrite:1,onComplete:1,onCompleteParams:1,onCompleteScope:1,useFrames:1,runBackwards:1,startAt:1,onUpdate:1,onUpdateParams:1,onUpdateScope:1,onStart:1,onStartParams:1,onStartScope:1,onReverseComplete:1,onReverseCompleteParams:1,onReverseCompleteScope:1,onRepeat:1,onRepeatParams:1,onRepeatScope:1,easeParams:1,yoyo:1,immediateRender:1,repeat:1,repeatDelay:1,data:1,paused:1,reversed:1,autoCSS:1,lazy:1,onOverwrite:1,callbackScope:1,stringFilter:1,id:1},ga={none:0,all:1,auto:2,concurrent:3,allOnStart:4,preexisting:5,"true":1,"false":0},ja=N._rootFramesTimeline=new h,ka=N._rootTimeline=new h,ha=30,na=l.lazyRender=function(){var a,b=K.length;for(ba={};-1<--b;)(a=K[b])&&!1!==a._lazy&&(a.render(a._lazy[0],a._lazy[1],!0),a._lazy=!1);K.length=0};ka._startTime=r.time;ja._startTime=r.frame;ka._active=ja._active=!0;setTimeout(na,1);N._updateRoot=Q.render=function(){var a,b,d;if(K.length&&na(),ka.render((r.time-ka._startTime)*ka._timeScale,!1,!1),ja.render((r.frame-ja._startTime)*ja._timeScale,!1,!1),K.length&&na(),r.frame>=ha){ha=r.frame+(parseInt(Q.autoSleep,10)||120);for(d in da){b=da[d].tns;for(a=b.length;-1<--a;)b[a]._gc&&b.splice(a,1);0===b.length&&delete da[d]}if(d=ka._first,(!d||d._paused)&&Q.autoSleep&&!ja._first&&1===r._listeners.tick.length){for(;d&&d._paused;)d=d._next;d||r.sleep()}}};r.addEventListener("tick",N._updateRoot);var Oa=function(a,b,d){var e,f,h=a._gsTnID;if(da[h||(a._gsTnID=h="t"+Y++)]||(da[h]={target:a,tns:[]}),b&&(e=da[h].tns,e[f=e.length]=b,d))for(;-1<--f;)e[f]===b&&e.splice(f,1);return da[h].tns},Ea=function(a,b,d,e){var f,h,l=a.vars.onOverwrite;return l&&(f=l(a,b,d,e)),l=Q.onOverwrite,l&&(h=l(a,b,d,e)),!1!==f&&!1!==h},X=function(a,b,d,e,f){var h,l,k;if(1===e||4<=e){d=f.length;for(h=0;d>h;h++)if((k=f[h])!==b)k._gc||k._kill(null,a,b)&&(l=!0);else if(5===e)break;return l}var m,p=b._startTime+1E-10,q=[],z=0,r=0===b._duration;for(h=f.length;-1<--h;)(k=f[h])===b||k._gc||k._paused||(k._timeline!==b._timeline?(m=m||Hb(b,0,r),0===Hb(k,m,r)&&(q[z++]=k)):k._startTime<=p&&k._startTime+k.totalDuration()/k._timeScale>p&&((r||!k._initted)&&2E-10>=p-k._startTime||(q[z++]=k)));for(h=z;-1<--h;)(k=q[h],2===e&&k._kill(d,a,b)&&(l=!0),2!==e||!k._firstPT&&k._initted)&&(2===e||Ea(k,b))&&k._enabled(!1,!1)&&(l=!0);return l},Hb=function(a,b,d){for(var e=a._timeline,f=e._timeScale,h=a._startTime;e._timeline;){if(h+=e._startTime,f*=e._timeScale,e._paused)return-100;e=e._timeline}return h/=f,h>b?h-b:d&&h===b||!a._initted&&2E-10>h-b?1E-10:(h+=a.totalDuration()/a._timeScale/f)>b+1E-10?0:h-b-1E-10};m._init=function(){var a,b,d,e,f=this.vars,h=this._overwrittenProps,l=this._duration;e=!!f.immediateRender;var k=f.ease;if(f.startAt){this._startAt&&(this._startAt.render(-1,!0),this._startAt.kill());d={};for(a in f.startAt)d[a]=f.startAt[a];if(d.overwrite=!1,d.immediateRender=!0,d.lazy=e&&!1!==f.lazy,d.startAt=d.delay=null,this._startAt=Q.to(this.target,0,d),e)if(0<this._time)this._startAt=null;else if(0!==l)return}else if(f.runBackwards&&0!==l)if(this._startAt)this._startAt.render(-1,!0),this._startAt.kill(),this._startAt=null;else{0!==this._time&&(e=!1);d={};for(a in f)S[a]&&"autoCSS"!==a||(d[a]=f[a]);if(d.overwrite=0,d.data="isFromStart",d.lazy=e&&!1!==f.lazy,d.immediateRender=e,this._startAt=Q.to(this.target,0,d),e){if(0===this._time)return}else this._startAt._init(),this._startAt._enabled(!1),this.vars.immediateRender&&(this._startAt=null)}if(this._ease=k=k?k instanceof W?k:"function"==typeof k?new W(k,f.easeParams):aa[k]||Q.defaultEase:Q.defaultEase,f.easeParams instanceof Array&&k.config&&(this._ease=k.config.apply(k,f.easeParams)),this._easeType=this._ease._type,this._easePower=this._ease._power,this._firstPT=null,this._targets)for(e=this._targets.length,a=0;e>a;a++)this._initProps(this._targets[a],this._propLookup[a]={},this._siblings[a],h?h[a]:null,a)&&(b=!0);else b=this._initProps(this.target,this._propLookup,this._siblings,h,0);if(b&&Q._onPluginEvent("_onInitAllProps",this),h&&(this._firstPT||"function"!=typeof this.target&&this._enabled(!1,!1)),f.runBackwards)for(d=this._firstPT;d;)d.s+=d.c,d.c=-d.c,d=d._next;this._onUpdate=f.onUpdate;this._initted=!0};m._initProps=function(b,d,e,f,h){var l,k,m,p,q;if(null==b)return!1;ba[b._gsTnID]&&na();if(!this.vars.css&&b.style&&b!==a&&b.nodeType&&ta.css&&!1!==this.vars.autoCSS){k=this.vars;var r={};for(q in k)S[q]||q in b&&"transform"!==q&&"x"!==q&&"y"!==q&&"width"!==q&&"height"!==q&&"className"!==q&&"border"!==q||!(!ta[q]||ta[q]&&ta[q]._autoCSS)||(r[q]=k[q],delete k[q]);k.css=r}for(l in this.vars)if(k=this.vars[l],S[l])k&&(k instanceof Array||k.push&&v(k))&&-1!==k.join("").indexOf("{self}")&&(this.vars[l]=this._swapSelfInParams(k,this));else if(ta[l]&&(p=new ta[l])._onInitTn(b,this.vars[l],this,h)){this._firstPT=q={_next:this._firstPT,t:p,p:"setRatio",s:0,c:1,f:1,n:l,pg:1,pr:p._priority,m:0};for(k=p._overwriteProps.length;-1<--k;)d[p._overwriteProps[k]]=this._firstPT;(p._priority||p._onInitAllProps)&&(m=!0);(p._onDisable||p._onEnable)&&(this._notifyPluginsOfEnabled=!0);q._next&&(q._next._prev=q)}else d[l]=Z.call(this,b,l,"get",k,l,0,null,this.vars.stringFilter,h);return f&&this._kill(f,b)?this._initProps(b,d,e,f,h):1<this._overwrite&&this._firstPT&&1<e.length&&X(b,this,d,this._overwrite,e)?(this._kill(d,b),this._initProps(b,d,e,f,h)):(this._firstPT&&(!1!==this.vars.lazy&&this._duration||this.vars.lazy&&!this._duration)&&(ba[b._gsTnID]=!0),m)};m.render=function(a,b,d){var e,f,h,l,k=this._time,m=this._duration;h=this._rawPrevTime;if(a>=m-1E-7&&0<=a)this._totalTime=this._time=m,this.ratio=this._ease._calcEnd?this._ease.getRatio(1):1,this._reversed||(e=!0,f="onComplete",d=d||this._timeline.autoRemoveChildren),0===m&&(this._initted||!this.vars.lazy||d)&&(this._startTime===this._timeline._duration&&(a=0),(0>h||0>=a&&-1E-7<=a||1E-10===h&&"isPause"!==this.data)&&h!==a&&(d=!0,1E-10<h&&(f="onReverseComplete")),this._rawPrevTime=l=!b||a||h===a?a:1E-10);else if(1E-7>a)this._totalTime=this._time=0,this.ratio=this._ease._calcEnd?this._ease.getRatio(0):0,(0!==k||0===m&&0<h)&&(f="onReverseComplete",e=this._reversed),0>a&&(this._active=!1,0===m&&(this._initted||!this.vars.lazy||d)&&(0<=h&&(1E-10!==h||"isPause"!==this.data)&&(d=!0),this._rawPrevTime=l=!b||a||h===a?a:1E-10)),this._initted||(d=!0);else if(this._totalTime=this._time=a,this._easeType){var p=a/m,q=this._easeType,r=this._easePower;(1===q||3===q&&.5<=p)&&(p=1-p);3===q&&(p*=2);1===r?p*=p:2===r?p*=p*p:3===r?p*=p*p*p:4===r&&(p*=p*p*p*p);1===q?this.ratio=1-p:2===q?this.ratio=p:.5>a/m?this.ratio=p/2:this.ratio=1-p/2}else this.ratio=this._ease.getRatio(a/m);if(this._time!==k||d){if(!this._initted){if(this._init(),!this._initted||this._gc)return;if(!d&&this._firstPT&&(!1!==this.vars.lazy&&this._duration||this.vars.lazy&&!this._duration))return this._time=this._totalTime=k,this._rawPrevTime=h,K.push(this),void(this._lazy=[a,b]);this._time&&!e?this.ratio=this._ease.getRatio(this._time/m):e&&this._ease._calcEnd&&(this.ratio=this._ease.getRatio(0===this._time?0:1))}!1!==this._lazy&&(this._lazy=!1);this._active||!this._paused&&this._time!==k&&0<=a&&(this._active=!0);0!==k||(this._startAt&&(0<=a?this._startAt.render(a,b,d):f||(f="_dummyGS")),!this.vars.onStart||0===this._time&&0!==m||!b&&this._callback("onStart"));for(h=this._firstPT;h;)h.f?h.t[h.p](h.c*this.ratio+h.s):h.t[h.p]=h.c*this.ratio+h.s,h=h._next;this._onUpdate&&(0>a&&this._startAt&&-1E-4!==a&&this._startAt.render(a,b,d),b||(this._time!==k||e||d)&&this._callback("onUpdate"));f&&(!this._gc||d)&&(0>a&&this._startAt&&!this._onUpdate&&-1E-4!==a&&this._startAt.render(a,b,d),e&&(this._timeline.autoRemoveChildren&&this._enabled(!1,!1),this._active=!1),!b&&this.vars[f]&&this._callback(f),0===m&&1E-10===this._rawPrevTime&&1E-10!==l&&(this._rawPrevTime=0))}};m._kill=function(a,b,d){if("all"===a&&(a=null),null==a&&(null==b||b===this.target))return this._lazy=!1,this._enabled(!1,!1);b="string"!=typeof b?b||this._targets||this.target:Q.selector(b)||b;var e,f,h,l,k,m,p,q,r=d&&this._time&&d._startTime===this._startTime&&this._timeline===d._timeline;if((v(b)||J(b))&&"number"!=typeof b[0])for(e=b.length;-1<--e;)this._kill(a,b[e],d)&&(m=!0);else{if(this._targets)for(e=this._targets.length;-1<--e;){if(b===this._targets[e]){k=this._propLookup[e]||{};this._overwrittenProps=this._overwrittenProps||[];f=this._overwrittenProps[e]=a?this._overwrittenProps[e]||{}:"all";break}}else{if(b!==this.target)return!1;k=this._propLookup;f=this._overwrittenProps=a?this._overwrittenProps||{}:"all"}if(k){if(e=a||k,p=a!==f&&"all"!==f&&a!==k&&("object"!=typeof a||!a._tempKill),d&&(Q.onOverwrite||this.vars.onOverwrite)){for(h in e)k[h]&&(q||(q=[]),q.push(h));if((q||!a)&&!Ea(this,d,b,q))return!1}for(h in e)(l=k[h])&&(r&&(l.f?l.t[l.p](l.s):l.t[l.p]=l.s,m=!0),l.pg&&l.t._kill(e)&&(m=!0),l.pg&&0!==l.t._overwriteProps.length||(l._prev?l._prev._next=l._next:l===this._firstPT&&(this._firstPT=l._next),l._next&&(l._next._prev=l._prev),l._next=l._prev=null),delete k[h]),p&&(f[h]=1);!this._firstPT&&this._initted&&this._enabled(!1,!1)}}return m};m.invalidate=function(){return this._notifyPluginsOfEnabled&&Q._onPluginEvent("_onDisable",this),this._firstPT=this._overwrittenProps=this._startAt=this._onUpdate=null,this._notifyPluginsOfEnabled=this._active=this._lazy=!1,this._propLookup=this._targets?{}:[],N.prototype.invalidate.call(this),this.vars.immediateRender&&(this._time=-1E-10,this.render(Math.min(0,-this._delay))),this};m._enabled=function(a,b){if(q||r.wake(),a&&this._gc){var d,e=this._targets;if(e)for(d=e.length;-1<--d;)this._siblings[d]=Oa(e[d],this,!0);else this._siblings=Oa(this.target,this,!0)}return N.prototype._enabled.call(this,a,b),this._notifyPluginsOfEnabled&&this._firstPT?Q._onPluginEvent(a?"_onEnable":"_onDisable",this):!1};Q.to=function(a,b,d){return new Q(a,b,d)};Q.from=function(a,b,d){return d.runBackwards=!0,d.immediateRender=0!=d.immediateRender,new Q(a,b,d)};Q.fromTo=function(a,b,d,e){return e.startAt=d,e.immediateRender=0!=e.immediateRender&&0!=d.immediateRender,new Q(a,b,e)};Q.delayedCall=function(a,b,d,e,f){return new Q(b,0,{delay:a,onComplete:b,onCompleteParams:d,callbackScope:e,onReverseComplete:b,onReverseCompleteParams:d,immediateRender:!1,lazy:!1,useFrames:f,overwrite:0})};Q.set=function(a,b){return new Q(a,0,b)};Q.getTnsOf=function(a,b){if(null==a)return[];a="string"!=typeof a?a:Q.selector(a)||a;var d,e,f,h;if((v(a)||J(a))&&"number"!=typeof a[0]){d=a.length;for(e=[];-1<--d;)e=e.concat(Q.getTnsOf(a[d],b));for(d=e.length;-1<--d;)for(h=e[d],f=d;-1<--f;)h===e[f]&&e.splice(d,1)}else for(e=Oa(a).concat(),d=e.length;-1<--d;)(e[d]._gc||b&&!e[d].isActive())&&e.splice(d,1);return e};Q.killTnsOf=Q.killDelayedCallsTo=function(a,b,d){"object"==typeof b&&(d=b,b=!1);b=Q.getTnsOf(a,b);for(var e=b.length;-1<--e;)b[e]._kill(d,a)};var ua=E("plugins.TnPlugin",function(a,b){this._overwriteProps=(a||"").split(",");this._propName=this._overwriteProps[0];this._priority=b||0;this._super=ua.prototype},!0);if(m=ua.prototype,ua.version="1.19.0",ua.API=2,m._firstPT=null,m._addTn=Z,m.setRatio=Na,m._kill=function(a){var b,d=this._overwriteProps,e=this._firstPT;if(null!=a[this._propName])this._overwriteProps=[];else for(b=d.length;-1<--b;)null!=a[d[b]]&&d.splice(b,1);for(;e;)null!=a[e.n]&&(e._next&&(e._next._prev=e._prev),e._prev?(e._prev._next=e._next,e._prev=null):this._firstPT===e&&(this._firstPT=e._next)),e=e._next;return!1},m._mod=m._roundProps=function(a){for(var b,d=this._firstPT;d;)(b=a[this._propName]||null!=d.n&&a[d.n.split(this._propName+"_").join("")])&&"function"==typeof b&&(2===d.f?d.t._applyPT.m=b:d.m=b),d=d._next},Q._onPluginEvent=function(a,b){var d,e,f,h,l,k=b._firstPT;if("_onInitAllProps"===a){for(;k;){l=k._next;for(e=f;e&&e.pr>k.pr;)e=e._next;(k._prev=e?e._prev:h)?k._prev._next=k:f=k;(k._next=e)?e._prev=k:h=k;k=l}k=b._firstPT=f}for(;k;)k.pg&&"function"==typeof k.t[a]&&k.t[a]()&&(d=!0),k=k._next;return d},ua.activate=function(a){for(var b=a.length;-1<--b;)a[b].API===ua.API&&(ta[(new a[b])._propName]=a[b]);return!0},p.plugin=function(a){if(!(a&&a.propName&&a.init&&a.API))throw"illegal plugin definition.";var b,d=a.propName,e=a.priority||0,f=a.overwriteProps,h={init:"_onInitTn",set:"setRatio",kill:"_kill",round:"_mod",mod:"_mod",initAll:"_onInitAllProps"},l=E("plugins."+d.charAt(0).toUpperCase()+d.substr(1)+"Plugin",function(){ua.call(this,d,e);this._overwriteProps=f||[]},!0===a.global),k=l.prototype=new ua(d);k.constructor=l;l.API=a.API;for(b in h)"function"==typeof a[b]&&(k[h[b]]=a[b]);return l.version=a.version,ua.activate([l]),l},h=a._gsQueue){for(l=0;l<h.length;l++)h[l]();for(m in k)k[m].func||a.console.log("GSAP encountered missing dependency: "+m)}q=!1}})("undefined"!=typeof module&&module.exports&&"undefined"!=typeof global?global:this||window,"TnMax");var G_0,G_1,G_2,GLE_topCamera,G_3,G_4,G_5,G_6,G_7=!0,G_8=[],G_9=[],G_92=[],G_54=[],G_10=[],G_11=[],G_12=[],G_13,G_18,G_14,G_15,G_16,G_17=!0,G_19=!1,G_20=!1,G_21=!1,G_55=!0,G_22=!1,G_23=!0,G_24=!1,G_25=!1,G_26=!0,G_27=0,G_28=!0,GLE_bRect=!1,GLE_bRecting=!1,GLE_RectMode=0,GLE_AutoCorrection=!0,G_29=11584734,GLE_BACK_ALPHA=1,G_30,G_31,G_32,G_34,G_35,G_36,G_53,G_38,G_39,G_40,G_41=0,G_42=0,G_43=0,G_411=0,G_421=0,G_431=0,G_44=[],G_45=[],G_46=[],G_47=[],G_48,G_50=[],G_51=[],G_49=0,G_52=1E3,G_56=1,G_58=(new Date).getTime(),GLE_LoadNum=0,GLE_RenderMode=0,GLE_Unit=1,GLE_PanSpeed=1,GLE_AngleLimit=36E3,GLE_PrimitiveViewAngle=45,GLE_PrimitiveViewDistance=1.2,GLE_bLogo=!0,GLE_bNeedCamera=!0,GLE_RightArrays={1001:[46],1002:[13,14,15,29,30,31,32,33,34,35,46],1003:[46],1004:[13,14,15,33,34,35,46]},GLE_RightArray=[],GLE_Version="4.2.48",GLE_bVerify=!0,GLE_lastPivot="",GLE_zd=1,GLE_anchorArray=[],GLE_MapTexture,textureSize=128*window.devicePixelRatio,vector=new GLE.Vector2,GLE_v1,GLE_v2,GLE_v3,GLE_v4,GLE_MouseMode=0,GLE_bKeyBoard=!0,GLE_bMeasureWord=!0,G_71,GLE_bSvg=!1,G_59,G_60,G_61,GLE_mindivWidth=-149,GLE_mindivHeight=-99,GLE_windowWidth=298,GLE_windowHeight=198,G_62=0,G_63=0,GLE_translatex=0,GLE_translatey=0,GLE_rotatez=-45,GLE_Mixer,GLE_ZoomDistance=1E3,GLE_AniManager=new TimelineMax;function ShowMeasureWord(a){GLE_bMeasureWord=a}function SetKeyBoardEnable(a){GLE_bKeyBoard=a}function GetVersion(){return GLE_Version}function SetMouseMode(a){GLE_MouseMode=a}function CalcFinishBox(){for(var a=0;a<G_8.length;a++)for(var b=0;b<G_8[a].length;b++){var d=G_34.ge(G_10[a]+"_"+G_8[a][b].model);if(d){a=(new GLE.Box3).st(d);console.log(a);return}}}function EngineInit(a,b,d){G_15=a;G_14=[];G_0=document.getElementById(G_15);G_2=new GLE.Pa(45,G_0.offsetWidth/G_0.offsetHeight,1E-6,1E5);GLE_topCamera=new GLE.Pa(45,G_0.offsetWidth/G_0.offsetWidth,1E-6,1E5);G_3=new GLE.Scene;a=new GLE.Geometry;var e=new GLE.Mal({color:16711680});G_35=new GLE.Mesh(a,e);G_3.add(G_35);G_36=new GLE.Mesh(a,e);G_35.add(G_36);G_34=new GLE.Mesh(a,e);G_36.add(G_34);a=new GLE.Mesh(a,e);a.name="LightActor";G_34.add(a);G_30=new GLE.Dt(16777215,1.6);G_30.position.set(0,0,100);G_34.add(G_30);G_31=new GLE.Dt(16777215,4);G_31.position.set(0,0,-100);G_34.add(G_31);a=new GLE.Dt(16777215,2);a.position.set(0,-100,0);G_34.add(a);e=new GLE.Dt(16777215,2);e.position.set(0,100,0);G_34.add(e);G_30.target=G_34;G_31.target=G_34;a.target=G_34;e.target=G_34;G_16=new GLE.Rr;G_4=new GLE.Wr({alpha:!0,antialias:!0,precision:"highp",preserveDrawingBuffer:!0});G_4.so(1*window.devicePixelRatio);G_4.setSize(G_0.offsetWidth,G_0.offsetHeight);G_4.sr(G_29,GLE_BACK_ALPHA);G_4.ld=!0;G_0.appendChild(G_4.domElement);G_4.sortObjects=!0;G_6=new GLE.Wt(G_0.offsetWidth,G_0.offsetHeight);G_6.texture.minFilter=GLE.Nr;G_53=new GLE.Box3;G_53.min.x=0;G_53.min.y=0;G_53.min.z=0;G_53.max.x=0;G_53.max.y=0;G_53.max.z=0;G_1=new Stats;G_21&&G_0.appendChild(G_1.dom);window.addEventListener("resize",onWindowResize,!1);G_5=new GLE.Ts(G_2,G_4.domElement,new GLE.Vector3(0,0,0));G_5.rd=1;G_5.zd=1;G_5.pd=1;G_5.sg=!1;G_48=new GLE.AxesHelper(300);G_35.add(G_48);a=new GLE.ShaderMaterial({uniforms:{texture1:{value:null}},vertexShader:"varying vec2 vUv; \r\n void main(){ \r\n vUv \x3d uv; \r\n gl_Position \x3d vec4( position, 1.0 ); \r\n }",fragmentShader:"uniform sampler2D texture1; \r\n varying vec2 vUv; \r\n void main(void){ \r\n gl_FragColor \x3d texture2D(texture1, vUv); \r\n }",side:GLE.FrontSide});e=new Float32Array(18);e[0]=-1;e[1]=1;e[2]=0;e[3]=-1;e[4]=-1;e[5]=0;e[6]=1;e[7]=1;e[8]=0;e[9]=-1;e[10]=-1;e[11]=0;e[12]=1;e[13]=-1;e[14]=0;e[15]=1;e[16]=1;e[17]=0;var f=new Float32Array(12);f[0]=0;f[1]=1;f[2]=0;f[3]=0;f[4]=1;f[5]=1;f[6]=0;f[7]=0;f[8]=1;f[9]=0;f[10]=1;f[11]=1;var h=new GLE.BufferGeometry;h.addAttribute("position",new GLE.Float32BufferAttribute(e,3));h.addAttribute("uv",new GLE.Float32BufferAttribute(f,2));a=new GLE.Mesh(h,a);a.name="back";a.renderOrder=-100;a.material.depthTest=!1;a.material.depthWrite=!1;a.material.transparent=!1;a.visible=!1;a.frustumCulled=!1;G_3.add(a);a=new GLE.ShaderMaterial({uniforms:{texture1:{value:null}},vertexShader:"varying vec2 vUv; \r\n void main(){ \r\n vUv \x3d uv; \r\n gl_Position \x3d vec4( position, 1.0 ); \r\n }",fragmentShader:"uniform sampler2D texture1; \r\n varying vec2 vUv; \r\n void main(void){ \r\n gl_FragColor \x3d texture2D(texture1, vUv); \r\n }",side:GLE.FrontSide});e=new Float32Array(18);e[0]=-1;e[1]=1;e[2]=0;e[3]=-1;e[4]=-1;e[5]=0;e[6]=1;e[7]=1;e[8]=0;e[9]=-1;e[10]=-1;e[11]=0;e[12]=1;e[13]=-1;e[14]=0;e[15]=1;e[16]=1;e[17]=0;f=new Float32Array(12);f[0]=0;f[1]=1;f[2]=0;f[3]=0;f[4]=1;f[5]=1;f[6]=0;f[7]=0;f[8]=1;f[9]=0;f[10]=1;f[11]=1;h=new GLE.BufferGeometry;h.addAttribute("position",new GLE.Float32BufferAttribute(e,3));h.addAttribute("uv",new GLE.Float32BufferAttribute(f,2));a=new GLE.Mesh(h,a);a.name="myback";a.renderOrder=-199;a.material.depthTest=!1;a.material.depthWrite=!1;a.material.transparent=!0;new GLE.TextureLoader;var l=a.material.uniforms,e=new Image;l.texture1.value=new GLE.Texture(e);e.onload=function(){l.texture1.value.needsUpdate=!0};e.src="data:image/png;base64,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0p8zAABCJWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS41LWMwMjEgNzkuMTU0OTExLCAyMDEzLzEwLzI5LTExOjQ3OjE2ICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICAgICAgICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICAgICAgICAgIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxOC0xMC0xMFQxNjozMyswODowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TWV0YWRhdGFEYXRlPjIwMTgtMTAtMTFUMTE6MjE6NTkrMDg6MDA8L3htcDpNZXRhZGF0YURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE4LTEwLTExVDExOjIxOjU5KzA4OjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDo3OGZkZWNjNS0wYzA1LTk3NGEtYmVkOC0zNGJhNzk4YTIzMDc8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnhtcC5kaWQ6MDc2MkMwMTg2N0NDRTgxMUI1RjhEMDdDNTRCNDVFM0Y8L3htcE1NOkRvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+eG1wLmRpZDowNzYyQzAxODY3Q0NFODExQjVGOEQwN0M1NEI0NUUzRjwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDowNzYyQzAxODY3Q0NFODExQjVGOEQwN0M1NEI0NUUzRjwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxOC0xMC0xMFQxNjozMyswODowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjFjMDBkMmYzLTdkOGItZjg0MC1iYWQ0LTlhMmY1ZmRkZDZhMDwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxOC0xMC0xMFQxNjo1MjoxNCswODowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6ZDMzZDA1OTItYjBmYi1kMTRiLWI2MDctMDgzYTI2ODNlN2E5PC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE4LTEwLTExVDExOjIxOjU5KzA4OjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y29udmVydGVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpwYXJhbWV0ZXJzPmZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5kZXJpdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpwYXJhbWV0ZXJzPmNvbnZlcnRlZCBmcm9tIGFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5waG90b3Nob3AgdG8gaW1hZ2UvcG5nPC9zdEV2dDpwYXJhbWV0ZXJzPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo3OGZkZWNjNS0wYzA1LTk3NGEtYmVkOC0zNGJhNzk4YTIzMDc8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTgtMTAtMTFUMTE6MjE6NTkrMDg6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHhtcE1NOkRlcml2ZWRGcm9tIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgPHN0UmVmOmluc3RhbmNlSUQ+eG1wLmlpZDpkMzNkMDU5Mi1iMGZiLWQxNGItYjYwNy0wODNhMjY4M2U3YTk8L3N0UmVmOmluc3RhbmNlSUQ+CiAgICAgICAgICAgIDxzdFJlZjpkb2N1bWVudElEPnhtcC5kaWQ6MDc2MkMwMTg2N0NDRTgxMUI1RjhEMDdDNTRCNDVFM0Y8L3N0UmVmOmRvY3VtZW50SUQ+CiAgICAgICAgICAgIDxzdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+eG1wLmRpZDowNzYyQzAxODY3Q0NFODExQjVGOEQwN0M1NEI0NUUzRjwvc3RSZWY6b3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8L3htcE1NOkRlcml2ZWRGcm9tPgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8cGhvdG9zaG9wOklDQ1Byb2ZpbGU+c1JHQiBJRUM2MTk2Ni0yLjE8L3Bob3Rvc2hvcDpJQ0NQcm9maWxlPgogICAgICAgICA8cGhvdG9zaG9wOkRvY3VtZW50QW5jZXN0b3JzPgogICAgICAgICAgICA8cmRmOkJhZz4KICAgICAgICAgICAgICAgPHJkZjpsaT54bXAuZGlkOjFkZjMzMWFkLTY5Y2ItMTY0NC04NTgzLWNkNjk1ZjMwNTlhMjwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpPnhtcC5kaWQ6MzI1OWIzY2QtZDJhZC1lMTQyLWEwZmMtZjA0ZTNlYTM0M2EwPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOkJhZz4KICAgICAgICAgPC9waG90b3Nob3A6RG9jdW1lbnRBbmNlc3RvcnM+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjE5MjA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+MTA4MDwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+XIjjhgAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAFtYUlEQVR42uz993ZcV75ne84IeEPvvUhKpExKmUopT1Xdqtvjdr9Nj9H9bv0Q3bfr1DmZSnnRiKL3noQNRET/sb67YzMSBGFJmPkZAwNAIGLHDhAiObV/XKvxw2+XkCRJ0pY0DMy/7yf9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";a.frustumCulled=!1;G_3.add(a);G_4.domElement.addEventListener("mousedown",onClick1,!0);G_4.domElement.addEventListener("mouseup",onClick,!0);G_4.domElement.addEventListener("mousemove",onClick2,!0);animate();window.Promise=window.ES6Promise;ReadyForRect();b&&ViewCubeInit(d)}function ShowAxis(a){G_48.visible=a}function ShowScene(a){G_34.visible=a}function ReadyForRect(){window.onload=function(){document.onmousedown=function(a){if(GLE_bRect&&!GLE_bRecting){GLE_bRecting=!0;var b=a.clientX,d=a.clientY,e=document.createElement("div");e.className="tempDiv";e.style.left=a.clientX+"px";e.style.top=a.clientY+"px";e.style.cssText="border: 3px dashed blue;background: #5a72f8;position: absolute;width: 0;height: 0;filter: alpha(opacity:10);opacity: 0.1";document.onmousemove=function(a){document.body.appendChild(e);0==a.buttons?(e.parentNode.removeChild(e),document.onmousemove=null,document.onmouseup=null,b=a.clientX,d=a.clientY,GLE_bRecting=!1):(e.style.left=Math.min(a.clientX,b)+"px",e.style.top=Math.min(a.clientY,d)+"px",e.style.width=Math.abs(b-a.clientX)+"px",e.style.height=Math.abs(d-a.clientY)+"px",document.onmouseup=function(){var f,l,m,r;b<a.clientX?(f=b,m=a.clientX-b):(f=a.clientX,m=b-a.clientX);d<a.clientY?(l=d,r=a.clientY-d):(l=a.clientY,r=d-a.clientY);RectCheck(GLE_RectMode,f,l,m,r);e.parentNode.removeChild(e);document.onmousemove=null;document.onmouseup=null;GLE_bRecting=!1})}}}}}function CloseRectCheck(){GLE_bRect=!1;document.onmousemove=null;document.onmouseup=null;GLE_bRecting=!1}function StartRectCheck(a){GLE_RectMode=a;GLE_bRect=!0}function SetBackGroundImg(a){var b=new GLE.TextureLoader;G_3.ge("back").material.uniforms.texture1.value=b.load(a);G_3.ge("back").visible=!0}function RemoveBackGroundImg(){G_3.ge("back").material.uniforms.texture1.value=null;G_3.ge("back").visible=!1}function onWindowResize(){G_2.aspect=G_0.offsetWidth/G_0.offsetHeight;G_2.ux();GLE_topCamera.aspect=G_0.offsetWidth/G_0.offsetHeight;GLE_topCamera.ux();G_4.setSize(G_0.offsetWidth,G_0.offsetHeight);G_6=new GLE.Wt(G_0.offsetWidth,G_0.offsetHeight)}function SetPrimitiveView(a,b){GLE_PrimitiveViewAngle=a;GLE_PrimitiveViewDistance=b}function SetUnit(a){GLE_Unit=a}function SetRenderMode(a){GLE_RenderMode=a}function GetCameraDistance(){return M_distance([G_35.position.x,G_35.position.y,G_35.position.z],[G_2.position.x,G_2.position.y,G_2.position.z])}function animate(){var a=GetCameraDistance();0<a&&(G_5.zd=1<a/G_56?1*GLE_zd:GLE_zd*a/G_56);.3>a&&(G_5.zd=.3*GLE_zd);requestAnimationFrame(animate);render();G_21&&G_1.update();G_28&&G_5.update()}function LodProcess(){for(var a=0;a<G_8.length;a++)for(var b=0;b<G_8[a].length;b++)G_34.ge(G_10[a]+"_"+G_8[a][b].model)&&G_8[a][b].bbox&&G_2.getWorldPosition().distanceTo(G_35.position)}function G_compare(a){return function(b,d){return b[a]-d[a]}}var bprocess=!1;function LodProcess1(){if(!bprocess){bprocess=!0;G_7=!1;for(var a=[],b,d=0;d<G_8.length;d++)for(var e=0;e<G_8[d].length;e++){var f=G_8[d][e].model.lastIndexOf("/");b=G_8[d][e].model.lastIndexOf(".");b=G_8[d][e].model.substr(f+1,b-f-1);if(G_34.ge(G_10[d]+"_"+b+"-low")){var f=(new GLE.Box3).st(G_34.ge(G_10[d]+"_"+b+"-low")),f=new GLE.Vector3((f.min.x+f.max.x)/2,(f.min.y+f.max.y)/2,(f.min.z+f.max.z)/2),h=new GLE.Vector3;G_2.getWorldPosition(h);f=h.distanceTo(f);a.push({name:G_10[d]+"_"+b+"-low",dis:f,index:"box"+e,tx:d})}G_34.ge(G_10[d]+"_"+b+"-medium")&&(f=(new GLE.Box3).st(G_34.ge(G_10[d]+"_"+b+"-medium")),f=new GLE.Vector3((f.min.x+f.max.x)/2,(f.min.y+f.max.y)/2,(f.min.z+f.max.z)/2),h=new GLE.Vector3,G_2.getWorldPosition(h),f=h.distanceTo(f),a.push({name:G_10[d]+"_"+b+"-medium",dis:f,index:"box"+e,tx:d}));G_34.ge(G_10[d]+"_"+b+"-high")&&(f=(new GLE.Box3).st(G_34.ge(G_10[d]+"_"+b+"-high")),f=new GLE.Vector3((f.min.x+f.max.x)/2,(f.min.y+f.max.y)/2,(f.min.z+f.max.z)/2),h=new GLE.Vector3,G_2.getWorldPosition(h),f=h.distanceTo(f),a.push({name:G_10[d]+"_"+b+"-high",dis:f,index:"box"+e,tx:d}))}a.sort(G_compare("dis"));for(d=0;d<a.length;d++)e=G_34.ge(a[d].name),10>d?e&&0>a[d].name.indexOf("-high")&&(b=a[d].name.indexOf("_"),e=a[d].name.substr(0,b),b=("ids/"+a[d].name.substr(b+1,a[d].name.length)).replace("-low",".glb").replace("-medium",".glb").replace("-high",".glb"),LoadSingleObj(G_12[a[d].tx],b,e,"high",a[d].name)):e&&0>a[d].name.indexOf("-low")&&(b=a[d].name.indexOf("_"),e=a[d].name.substr(0,b),b=("ids/"+a[d].name.substr(b+1,a[d].name.length)).replace("-low",".glb").replace("-medium",".glb").replace("-high",".glb"),LoadSingleObj(G_12[a[d].tx],b,e,"low",a[d].name));G_7=!0;bprocess=!1}}function DeleteModel(a){if(a=G_34.ge(a))G_34.remove(a),a.geometry.dispose(),a.material.dispose()}function render(){G_7&&(G_4.setViewport(0,0,G_0.offsetWidth,G_0.offsetHeight),G_4.render(G_3,G_2),TN.update())}function mapProcess(){G_4.setViewport(G_0.offsetWidth-200,0,200,200);G_4.render(G_3,GLE_topCamera)}function ik0(a){}function GetMeshById(a){var b;b=a.toString().split("_");var d=parseInt(b[1]);for(a=0;a<G_10.length;a++)if(b[0]==G_10[a])for(var e=0;e<G_8[a].length;e++)for(var f=0;f<G_8[a][e].ids.length/3;f++)if(d==G_8[a][e].ids[3*f]){b=new Float32Array(3*(G_8[a][e].ids[3*f+2]-G_8[a][e].ids[3*f+1]));for(var d=G_34.ge(G_10[a]+"_"+G_8[a][e].model).geometry.attributes.position.array,h=G_8[a][e].ids[3*f+1];h<G_8[a][e].ids[3*f+2];h++){var l=h-G_8[a][e].ids[3*f+1];b[3*l]=d[3*h];b[3*l+1]=d[3*h+1];b[3*l+2]=d[3*h+2]}return b}}function ik1(a){if(G_7){G_58=(new Date).getTime();G_7=!1;G_3.ge("back").visible=!1;var b=new GLE.Vector2;b.x=(a.pageX-G_4.domElement.getBoundingClientRect().left)/G_4.domElement.offsetWidth*2-1;b.y=2*-((a.pageY-G_4.domElement.getBoundingClientRect().top)/G_4.domElement.offsetHeight)+1;G_16.sa(b,G_2);a=[];for(b=0;b<G_34.children.length;b++)"Mesh"!=G_34.children[b].type&&"Scene"!=G_34.children[b].type||a.push(G_34.children[b]);a=G_16.is(a,!0);G_7=!0;G_3.ge("back").material.uniforms.texture1.value&&(G_3.ge("back").visible=!0);0<a.length?OnClickPosition(G_35.position.x+","+G_35.position.y+","+G_35.position.z+","+G_35.rotation.x+","+G_35.rotation.y+","+G_35.rotation.z+","+a[0].point.x+","+a[0].point.y+","+a[0].point.z):OnClickBlank()}}function RectCheck(a,b,d,e,f){if(G_7){G_7=!1;G_3.ge("back").visible=!1;G_3.ge("myback")&&(G_3.ge("myback").visible=!1);G_3.ge("LightActor")&&(G_3.ge("LightActor").visible=!1);var h;if(h=G_48.visible?!0:!1)G_48.visible=!1;for(var l=0;l<G_8.length;l++)for(var m=0;m<G_8[l].length;m++){var r=G_34.ge(G_10[l]+"_"+G_8[l][m].model);1==GLE_RenderMode&&(r.ge("edge").visible=!1);r.material.uniforms&&(r.material.uniforms.bid.value=1);1==a&&(r.material.wireframe=!0)}G_4.sr(0,1);G_4.render(G_3,G_2,G_6);var q=new Uint8Array(4*e*f);G_4.rls(G_6,b-G_4.domElement.getBoundingClientRect().left,G_6.height-(d-G_4.domElement.getBoundingClientRect().top)-f,1*e,1*f,q);for(l=0;l<G_8.length;l++)for(m=0;m<G_8[l].length;m++)r=G_34.ge(G_10[l]+"_"+G_8[l][m].model),r.material.uniforms&&(r.material.uniforms.bid.value=2);G_4.render(G_3,G_2,G_6);m=new Uint8Array(4*e*f);G_4.rls(G_6,b-G_4.domElement.getBoundingClientRect().left,G_6.height-(d-G_4.domElement.getBoundingClientRect().top)-f,1*e,f,m);b="";for(l=0;l<q.length/4;l++)if(0!=q[4*l]||0!=q[4*l+1]||0!=q[4*l+2])d=q[4*l]-1,d=G_10[d]+"_"+G_8[d][256*q[4*l+1]+q[4*l+2]].ids[3*(m[4*l+1]<<8|m[4*l+2])],-1===b.indexOf(d)&&(b+="#",b+=d);b=b.substr(1,b.length-1);h&&(G_48.visible=!0);for(l=0;l<G_8.length;l++)for(m=0;m<G_8[l].length;m++)r=G_34.ge(G_10[l]+"_"+G_8[l][m].model),1==GLE_RenderMode&&r.ge("edge")&&(r.ge("edge").visible=!0),r.material.uniforms&&(r.material.uniforms.bid.value=0),1==a&&(r.material.wireframe=!1);G_4.sr(G_29,GLE_BACK_ALPHA);G_7=!0;G_3.ge("back").material.uniforms.texture1.value&&(G_3.ge("back").visible=!0);G_3.ge("myback")&&(G_3.ge("myback").visible=!0);G_3.ge("LightActor")&&(G_3.ge("LightActor").visible=!0);OnSelectionChanged(b)}}function ik2(a){if(G_7){var b=new GLE.Vector2;b.x=(a.pageX-G_4.domElement.getBoundingClientRect().left)/G_4.domElement.offsetWidth*2-1;b.y=2*-((a.pageY-G_4.domElement.getBoundingClientRect().top)/G_4.domElement.offsetHeight)+1;G_16.sa(b,G_2);var d=[];G_34.traverse(function(a){a instanceof GLE.Mesh&&(-1<a.name.indexOf("ACT_")||-1<a.name.indexOf("GLB_"))&&d.push(a)});if(0<d.length&&(b=G_16.is(d,!0),0<b.length)){for(var e=0;e<GLE_RightArray.length;e++)32==GLE_RightArray[e]&&0;OnAnchorClick(b[0].object.name.substr(4,b[0].object.name.length-4));return}G_7=!1;G_3.ge("back").visible=!1;G_3.ge("myback")&&(G_3.ge("myback").visible=!1);G_3.ge("LightActor")&&(G_3.ge("LightActor").visible=!1);if(needAxis=G_48.visible?!0:!1)G_48.visible=!1;for(e=0;e<G_34.children.length;e++)if("Mesh"==G_34.children[e].type){var f=G_34.children[e];1==GLE_RenderMode&&f.ge("edge")&&(f.ge("edge").visible=!1);-1<f.name.indexOf("-low")||-1<f.name.indexOf("-medium")||-1<f.name.indexOf("-high")||-1<f.name.indexOf("Light")||""==f.name?f.visible=!1:f.material.uniforms&&(f.material.uniforms.bid.value=1)}G_4.autoClear=!0;G_4.sr(0,1);G_4.render(G_3,G_2,G_6);e=new Uint8Array(4);G_4.rls(G_6,a.pageX-G_4.domElement.getBoundingClientRect().left,G_6.height-(a.pageY-G_4.domElement.getBoundingClientRect().top),1,1,e);if(0==e[0]&&0==e[1]&&0==e[2]){needAxis&&(G_48.visible=!0);for(e=0;e<G_34.children.length;e++)"Mesh"==G_34.children[e].type&&(f=G_34.children[e],1==GLE_RenderMode&&f.ge("edge")&&(f.ge("edge").visible=!0),-1<f.name.indexOf("-low")||-1<f.name.indexOf("-medium")||-1<f.name.indexOf("-high")||-1<f.name.indexOf("Light")||""==f.name?f.visible=!0:f.material.uniforms&&(f.material.uniforms.bid.value=0));G_4.sr(G_29,GLE_BACK_ALPHA);G_7=!0;e=G_3.ge("back").material.uniforms;e.texture1.value&&(G_3.ge("back").visible=!0);G_3.ge("myback")&&(G_3.ge("myback").visible=!0);G_3.ge("LightActor")&&(G_3.ge("LightActor").visible=!0);OnClickBlank()}else if(0!=e[0]||0!=e[1]||0!=e[2]){b=e[0]-1;e=256*e[1]+e[2];f=G_34.ge(G_10[b]+"_"+G_8[b][e].model);f.material.uniforms.bid.value=2;f.visible=!0;G_4.render(G_3,G_2,G_6);f=new Uint8Array(4);G_4.rls(G_6,a.pageX-G_4.domElement.getBoundingClientRect().left,G_6.height-(a.pageY-G_4.domElement.getBoundingClientRect().top),1,1,f);a=G_8[b][e].ids[3*(f[1]<<8|f[2])];needAxis&&(G_48.visible=!0);for(e=0;e<G_34.children.length;e++)"Mesh"==G_34.children[e].type&&(f=G_34.children[e],1==GLE_RenderMode&&f.ge("edge")&&(f.ge("edge").visible=!0),-1<f.name.indexOf("-low")||-1<f.name.indexOf("-medium")||-1<f.name.indexOf("-high")||-1<f.name.indexOf("Light")||""==f.name?f.visible=!0:f.material.uniforms&&(f.material.uniforms.bid.value=0));G_4.sr(G_29,GLE_BACK_ALPHA);G_7=!0;e=G_3.ge("back").material.uniforms;e.texture1.value&&(G_3.ge("back").visible=!0);G_3.ge("myback")&&(G_3.ge("myback").visible=!0);G_3.ge("LightActor")&&(G_3.ge("LightActor").visible=!0);OnSelectionChanged(G_10[b]+"_"+a)}}}function ik3(a){if(G_7){var b=new GLE.Vector2;b.x=(a.pageX-G_4.domElement.getBoundingClientRect().left)/G_4.domElement.offsetWidth*2-1;b.y=2*-((a.pageY-G_4.domElement.getBoundingClientRect().top)/G_4.domElement.offsetHeight)+1;G_16.sa(b,G_2);var d=[];G_34.traverse(function(a){a instanceof GLE.Mesh&&-1<a.name.indexOf("ACT_")&&d.push(a)});if(0<d.length){var e=G_16.is(d,!1);if(0<e.length){OnAnchorClick(e[0].object.name.substr(4,e[0].object.name.length-4));return}}G_7=!1;G_3.ge("back").visible=!1;G_3.ge("myback")&&(G_3.ge("myback").visible=!1);G_3.ge("LightActor")&&(G_3.ge("LightActor").visible=!1);if(needAxis=G_48.visible?!0:!1)G_48.visible=!1;for(b=0;b<G_34.children.length;b++)if("Mesh"==G_34.children[b].type){var f=G_34.children[b];1==GLE_RenderMode&&f.ge("edge")&&(f.ge("edge").visible=!1);-1<f.name.indexOf("-low")||-1<f.name.indexOf("-medium")||-1<f.name.indexOf("-high")||-1<f.name.indexOf("Light")||""==f.name?f.visible=!1:f.material.uniforms&&(f.material.uniforms.bid.value=1)}G_4.autoClear=!0;G_4.sr(0,1);G_4.render(G_3,G_2,G_6);e=new Uint8Array(4);G_4.rls(G_6,a.pageX-G_4.domElement.getBoundingClientRect().left,G_6.height-(a.pageY-G_4.domElement.getBoundingClientRect().top),1,1,e);if(0==e[0]&&0==e[1]&&0==e[2]){needAxis&&(G_48.visible=!0);for(b=0;b<G_34.children.length;b++)"Mesh"==G_34.children[b].type&&(f=G_34.children[b],1==GLE_RenderMode&&f.ge("edge")&&(f.ge("edge").visible=!0),-1<f.name.indexOf("-low")||-1<f.name.indexOf("-medium")||-1<f.name.indexOf("-high")||-1<f.name.indexOf("Light")||""==f.name?f.visible=!0:f.material.uniforms&&(f.material.uniforms.bid.value=0));G_4.sr(G_29,GLE_BACK_ALPHA);G_7=!0;b=G_3.ge("back").material.uniforms;b.texture1.value&&(G_3.ge("back").visible=!0);G_3.ge("myback")&&(G_3.ge("myback").visible=!0);G_3.ge("LightActor")&&(G_3.ge("LightActor").visible=!0);OnClickBlank()}else{var h=e[0]-1,l=256*e[1]+e[2],e=G_34.ge(G_10[h]+"_"+G_8[h][l].model);e.material.uniforms.bid.value=2;e.visible=!0;G_4.render(G_3,G_2,G_6);b=new Uint8Array(4);G_4.rls(G_6,a.pageX-G_4.domElement.getBoundingClientRect().left,G_6.height-(a.pageY-G_4.domElement.getBoundingClientRect().top),1,1,b);l=G_8[h][l].ids[3*(b[1]<<8|b[2])];needAxis&&(G_48.visible=!0);for(b=0;b<G_34.children.length;b++)"Mesh"==G_34.children[b].type&&(f=G_34.children[b],1==GLE_RenderMode&&f.ge("edge")&&(f.ge("edge").visible=!0),-1<f.name.indexOf("-low")||-1<f.name.indexOf("-medium")||-1<f.name.indexOf("-high")||-1<f.name.indexOf("Light")||""==f.name?f.visible=!0:f.material.uniforms&&(f.material.uniforms.bid.value=0));G_4.sr(G_29,GLE_BACK_ALPHA);G_7=!0;b=G_3.ge("back").material.uniforms;b.texture1.value&&(G_3.ge("back").visible=!0);b=new GLE.Vector2;b.x=(a.pageX-G_4.domElement.getBoundingClientRect().left)/G_4.domElement.offsetWidth*2-1;b.y=2*-((a.pageY-G_4.domElement.getBoundingClientRect().top)/G_4.domElement.offsetHeight)+1;G_16.sa(b,G_2);a=[];a.push(e);e=G_16.is(a,!1);0<e.length?OnClickPosition(G_35.position.x+","+G_35.position.y+","+G_35.position.z+","+G_35.rotation.x+","+G_35.rotation.y+","+G_35.rotation.z+","+e[0].point.x+","+e[0].point.y+","+e[0].point.z):OnClickBlank();G_3.ge("myback")&&(G_3.ge("myback").visible=!0);G_3.ge("LightActor")&&(G_3.ge("LightActor").visible=!0);OnSelectionChanged(G_10[h]+"_"+l)}}}function ik4(a,b){b||(b=1);1==b&&1<G_50.length&&4==G_49&&ClearMeasure();1==b&&2<G_50.length&&5==G_49&&ClearMeasure();if(!(G_50.length>2*b-1&&4==G_49||G_50.length>3*b-1&&5==G_49))if(GLE_AutoCorrection){G_7=!1;G_3.ge("back").visible=!1;if(needAxis=G_48.visible?!0:!1)G_48.visible=!1;for(var d=0;d<G_8.length;d++)for(var e=0;e<G_8[d].length;e++){var f=G_34.ge(G_10[d]+"_"+G_8[d][e].model);1==GLE_RenderMode&&(f.ge("edge").visible=!1);f.material.uniforms&&(f.material.uniforms.bid.value=1)}for(d=0;d<G_50.length/2;d++)G_34.ge("result"+d)&&(G_34.ge("result"+d).visible=!1),G_34.ge("angle"+d)&&(G_34.ge("angle"+d).visible=!1);G_34.ge("mypoint")&&(G_34.ge("mypoint").visible=!1);G_4.sr(0,1);G_4.render(G_3,G_2,G_6);d=new Uint8Array(4);G_4.rls(G_6,a.pageX-G_4.domElement.getBoundingClientRect().left,G_6.height-(a.pageY-G_4.domElement.getBoundingClientRect().top),1,1,d);if(0==d[0]&&0==d[1]&&0==d[2]){needAxis&&(G_48.visible=!0);for(d=0;d<G_8.length;d++)for(e=0;e<G_8[d].length;e++)f=G_34.ge(G_10[d]+"_"+G_8[d][e].model),1==GLE_RenderMode&&f.ge("edge")&&(f.ge("edge").visible=!0),f.material.uniforms&&(f.material.uniforms.bid.value=0);for(d=0;d<G_50.length/2;d++)G_34.ge("result"+d)&&(G_34.ge("result"+d).visible=!0),G_34.ge("angle"+d)&&(G_34.ge("angle"+d).visible=!0);G_34.ge("mypoint")&&(G_34.ge("mypoint").visible=!0);G_4.sr(G_29,GLE_BACK_ALPHA);G_7=!0;d=G_3.ge("back").material.uniforms;d.texture1.value&&(G_3.ge("back").visible=!0)}else{var h=d[0]-1,l=256*d[1]+d[2],m=G_34.ge(G_10[h]+"_"+G_8[h][l].model);m.material.uniforms.bid.value=2;for(d=0;d<G_8.length;d++)for(e=0;e<G_8[d].length;e++)G_34.ge(G_10[d]+"_"+G_8[d][e].model);m.visible=!0;G_4.render(G_3,G_2,G_6);d=new Uint8Array(4);G_4.rls(G_6,a.pageX-G_4.domElement.getBoundingClientRect().left,G_6.height-(a.pageY-G_4.domElement.getBoundingClientRect().top),1,1,d);l=G_10[h]+"_"+G_8[h][l].ids[3*(d[1]<<8|d[2])];needAxis&&(G_48.visible=!0);for(d=0;d<G_8.length;d++)for(e=0;e<G_8[d].length;e++)f=G_34.ge(G_10[d]+"_"+G_8[d][e].model),1==GLE_RenderMode&&f.ge("edge")&&(f.ge("edge").visible=!0),f.material.uniforms&&(f.material.uniforms.bid.value=0);G_4.sr(G_29,GLE_BACK_ALPHA);G_7=!0;d=G_3.ge("back").material.uniforms;d.texture1.value&&(G_3.ge("back").visible=!0);d=new GLE.Vector2;d.x=(a.pageX-G_4.domElement.getBoundingClientRect().left)/G_4.domElement.offsetWidth*2-1;d.y=2*-((a.pageY-G_4.domElement.getBoundingClientRect().top)/G_4.domElement.offsetHeight)+1;G_16.sa(d,G_2);e=[];e.push(m);h=G_16.is(e,!1);if(0<h.length){m=[];for(d=0;d<G_10.length;d++)for(e=0;e<G_8[d].length;e++)for(var f=G_34.ge(G_10[d]+"_"+G_8[d][e].model),f=f.geometry.attributes.position.array,r=0;r<G_8[d][e].ids.length/3;r++){var q;q=l.toString().split("_");if(q[0]==G_10[d]&&parseInt(q[1])==G_8[d][e].ids[3*r])for(q=G_8[d][e].ids[3*r+1];q<G_8[d][e].ids[3*r+2];q++)m.push(f[3*q]),m.push(f[3*q+1]),m.push(f[3*q+2])}new GLE.Geometry;e=new GLE.Vector3(h[0].point.x,h[0].point.y,h[0].point.z);d=new GLE.Matrix4;e.applyMatrix4(d.getInverse(G_35.matrixWorld));l=e.x;d=e.y;e=e.z;l-=G_36.position.x;d-=G_36.position.y;e-=G_36.position.z;h=Infinity;f=new GLE.Vector3(0,0,0);l=new GLE.Vector3(l,d,e);for(d=0;d<m.length/3;d++)e=new GLE.Vector3(m[3*d],m[3*d+1],m[3*d+2]),l.distanceTo(e)<h&&(h=l.distanceTo(e),f=e);for(d=0;d<G_50.length/2;d++)G_34.ge("result"+d)&&(G_34.ge("result"+d).visible=!0),G_34.ge("angle"+d)&&(G_34.ge("angle"+d).visible=!0);G_34.ge("mypoint")&&(G_34.ge("mypoint").visible=!0);G_50.push(f);G_34.remove(G_34.ge("mypoint"));G_34.remove(G_34.ge("myline"));if(4==G_49){if(DrawPoints(G_50,"0xff9900"),DrawLineSegments(G_50),1<G_50.length&&(d=[],d.push(G_50[1]),d.push(new GLE.Vector3(G_50[0].x,G_50[1].y,G_50[1].z)),DrawDashLineSegments(d,"#ff0000","x"),d=[],d.push(new GLE.Vector3(G_50[0].x,G_50[1].y,G_50[1].z)),d.push(new GLE.Vector3(G_50[0].x,G_50[0].y,G_50[1].z)),DrawDashLineSegments(d,"#00ff00","y"),d=[],d.push(new GLE.Vector3(G_50[0].x,G_50[0].y,G_50[1].z)),d.push(new GLE.Vector3(G_50[0].x,G_50[0].y,G_50[0].z)),DrawDashLineSegments(d,"#0000ff","z")),0==G_50.length%2){d=G_50.length/2-1;m=new GLE.Vector3(G_50[2*d].x,G_50[2*d].y,G_50[2*d].z);l=new GLE.Vector3(G_50[2*d+1].x,G_50[2*d+1].y,G_50[2*d+1].z);e=new GLE.Vector3((m.x+l.x)/2,(m.y+l.y)/2,(m.z+l.z)/2);h=(m.distanceTo(l)/1E3).toFixed(3)+"\u7c73";GLE_bMeasureWord&&DrawWords(e,h,"result"+d,"#ff9900");e=new GLE.Vector3(G_50[2*d].x,G_50[2*d+1].y,G_50[2*d+1].z);h=new GLE.Vector3(G_50[2*d+1].x,G_50[2*d+1].y,G_50[2*d+1].z);f=new GLE.Vector3((e.x+h.x)/2,(e.y+h.y)/2,(e.z+h.z)/2);r=(e.distanceTo(h)/1E3).toFixed(3)+"\u7c73";GLE_bMeasureWord&&DrawWords0(f,r,"result"+(d+1),"#ff0000");f=new GLE.Vector3(G_50[2*d].x,G_50[2*d+1].y,G_50[2*d+1].z);r=new GLE.Vector3(G_50[2*d].x,G_50[2*d].y,G_50[2*d+1].z);q=new GLE.Vector3((f.x+r.x)/2,(f.y+r.y)/2,(f.z+r.z)/2);var x=(f.distanceTo(r)/1E3).toFixed(3)+"\u7c73";GLE_bMeasureWord&&DrawWords0(q,x,"result"+(d+2),"#00ff00");q=new GLE.Vector3(G_50[2*d].x,G_50[2*d].y,G_50[2*d+1].z);var x=new GLE.Vector3(G_50[2*d].x,G_50[2*d].y,G_50[2*d].z),G=new GLE.Vector3((q.x+x.x)/2,(q.y+x.y)/2,(q.z+x.z)/2),B=(q.distanceTo(x)/1E3).toFixed(3)+"\u7c73";GLE_bMeasureWord&&DrawWords0(G,B,"result"+(d+3),"#0000ff");for(d=0;d<GLE_RightArray.length;d++)if(15==GLE_RightArray[d])return;OnMeasureResult((m.distanceTo(l)/1E3).toFixed(3)+","+(e.distanceTo(h)/1E3).toFixed(3)+","+(f.distanceTo(r)/1E3).toFixed(3)+","+(q.distanceTo(x)/1E3).toFixed(3))}}else if(DrawPoints(G_50),0==G_50.length%3){d=G_50.length/3-1;m=new GLE.Vector3(G_50[3*d].x,G_50[3*d].y,G_50[3*d].z);l=new GLE.Vector3(G_50[3*d+1].x,G_50[3*d+1].y,G_50[3*d+1].z);f=new GLE.Vector3(G_50[3*d+2].x,G_50[3*d+2].y,G_50[3*d+2].z);e=new GLE.Vector3((m.x+l.x+f.x)/3,(m.y+l.y+f.y)/3,(m.z+l.z+f.z)/3);h=M_GetAngle([m.x,m.y,m.z],[l.x,l.y,l.z],[f.x,f.y,f.z]).toFixed(3)+"\u00b0";GLE_bMeasureWord&&DrawWords(e,h,"result"+d);DrawLineSegments1([m,l,f],"angle"+d);for(d=0;d<GLE_RightArray.length;d++)if(15==GLE_RightArray[d])return;OnMeasureResult(M_GetAngle([m.x,m.y,m.z],[l.x,l.y,l.z],[f.x,f.y,f.z]).toFixed(3))}}else OnClickBlank()}}else{G_7=!1;G_3.ge("back").visible=!1;d=new GLE.Vector2;d.x=(a.pageX-G_4.domElement.getBoundingClientRect().left)/G_4.domElement.offsetWidth*2-1;d.y=2*-((a.pageY-G_4.domElement.getBoundingClientRect().top)/G_4.domElement.offsetHeight)+1;G_16.sa(d,G_2);e=[];for(d=0;d<G_34.children.length;d++)"Mesh"==G_34.children[d].type&&e.push(G_34.children[d]);h=G_16.is(e,!1);G_7=!0;d=G_3.ge("back").material.uniforms;d.texture1.value&&(G_3.ge("back").visible=!0);if(0<h.length)if(new GLE.Geometry,e=new GLE.Vector3(h[0].point.x,h[0].point.y,h[0].point.z),d=new GLE.Matrix4,e.applyMatrix4(d.getInverse(G_35.matrixWorld)),l=e.x,d=e.y,e=e.z,l-=G_36.position.x,d-=G_36.position.y,e-=G_36.position.z,G_50.push(new GLE.Vector3(l,d,e)),G_34.remove(G_34.ge("mypoint")),G_34.remove(G_34.ge("myline")),4==G_49){if(DrawPoints(G_50,"0xff9900"),DrawLineSegments(G_50),1<G_50.length&&(d=[],d.push(G_50[1]),d.push(new GLE.Vector3(G_50[0].x,G_50[1].y,G_50[1].z)),DrawDashLineSegments(d,"#ff0000","x"),d=[],d.push(new GLE.Vector3(G_50[0].x,G_50[1].y,G_50[1].z)),d.push(new GLE.Vector3(G_50[0].x,G_50[0].y,G_50[1].z)),DrawDashLineSegments(d,"#00ff00","y"),d=[],d.push(new GLE.Vector3(G_50[0].x,G_50[0].y,G_50[1].z)),d.push(new GLE.Vector3(G_50[0].x,G_50[0].y,G_50[0].z)),DrawDashLineSegments(d,"#0000ff","z")),0==G_50.length%2){d=G_50.length/2-1;m=new GLE.Vector3(G_50[2*d].x,G_50[2*d].y,G_50[2*d].z);l=new GLE.Vector3(G_50[2*d+1].x,G_50[2*d+1].y,G_50[2*d+1].z);e=new GLE.Vector3((m.x+l.x)/2,(m.y+l.y)/2,(m.z+l.z)/2);h=(m.distanceTo(l)/1E3).toFixed(3)+"\u7c73";GLE_bMeasureWord&&DrawWords(e,h,"result"+d,"#ff9900");e=new GLE.Vector3(G_50[2*d].x,G_50[2*d+1].y,G_50[2*d+1].z);h=new GLE.Vector3(G_50[2*d+1].x,G_50[2*d+1].y,G_50[2*d+1].z);f=new GLE.Vector3((e.x+h.x)/2,(e.y+h.y)/2,(e.z+h.z)/2);r=(e.distanceTo(h)/1E3).toFixed(3)+"\u7c73";GLE_bMeasureWord&&DrawWords0(f,r,"result"+(d+1),"#ff0000");f=new GLE.Vector3(G_50[2*d].x,G_50[2*d+1].y,G_50[2*d+1].z);r=new GLE.Vector3(G_50[2*d].x,G_50[2*d].y,G_50[2*d+1].z);q=new GLE.Vector3((f.x+r.x)/2,(f.y+r.y)/2,(f.z+r.z)/2);x=(f.distanceTo(r)/1E3).toFixed(3)+"\u7c73";GLE_bMeasureWord&&DrawWords0(q,x,"result"+(d+2),"#00ff00");q=new GLE.Vector3(G_50[2*d].x,G_50[2*d].y,G_50[2*d+1].z);x=new GLE.Vector3(G_50[2*d].x,G_50[2*d].y,G_50[2*d].z);G=new GLE.Vector3((q.x+x.x)/2,(q.y+x.y)/2,(q.z+x.z)/2);B=(q.distanceTo(x)/1E3).toFixed(3)+"\u7c73";GLE_bMeasureWord&&DrawWords0(G,B,"result"+(d+3),"#0000ff");for(d=0;d<GLE_RightArray.length;d++)if(15==GLE_RightArray[d])return;OnMeasureResult((m.distanceTo(l)/1E3).toFixed(3)+","+(e.distanceTo(h)/1E3).toFixed(3)+","+(f.distanceTo(r)/1E3).toFixed(3)+","+(q.distanceTo(x)/1E3).toFixed(3))}}else if(DrawPoints(G_50),0==G_50.length%3){d=G_50.length/3-1;m=new GLE.Vector3(G_50[3*d].x,G_50[3*d].y,G_50[3*d].z);l=new GLE.Vector3(G_50[3*d+1].x,G_50[3*d+1].y,G_50[3*d+1].z);f=new GLE.Vector3(G_50[3*d+2].x,G_50[3*d+2].y,G_50[3*d+2].z);e=new GLE.Vector3((m.x+l.x+f.x)/3,(m.y+l.y+f.y)/3,(m.z+l.z+f.z)/3);h=M_GetAngle([m.x,m.y,m.z],[l.x,l.y,l.z],[f.x,f.y,f.z]).toFixed(3)+"\u00b0";GLE_bMeasureWord&&DrawWords(e,h,"result"+d);DrawLineSegments1([m,l,f],"angle"+d);for(d=0;d<GLE_RightArray.length;d++)if(15==GLE_RightArray[d])return;OnMeasureResult(M_GetAngle([m.x,m.y,m.z],[l.x,l.y,l.z],[f.x,f.y,f.z]).toFixed(3))}}}function ik5(a){if(G_7){G_58=(new Date).getTime();G_7=!1;G_3.ge("back").visible=!1;G_34.ge("myline")&&(G_34.ge("myline").visible=!1);G_34.ge("mytrig")&&(G_34.ge("mytrig").visible=!1);if(needAxis=G_48.visible?!0:!1)G_48.visible=!1;for(var b=0;b<G_34.children.length;b++)if("Mesh"==G_34.children[b].type){var d=G_34.children[b];1==GLE_RenderMode&&(d.ge("edge").visible=!1);-1<d.name.indexOf("-low")||-1<d.name.indexOf("-medium")||-1<d.name.indexOf("-high")||-1<d.name.indexOf("Light")||""==d.name?d.visible=!1:d.material.uniforms&&(d.material.uniforms.bid.value=1)}G_4.sr(0,1);G_4.render(G_3,G_2,G_6);b=new Uint8Array(4);G_4.rls(G_6,a.pageX-G_4.domElement.getBoundingClientRect().left,G_6.height-(a.pageY-G_4.domElement.getBoundingClientRect().top),1,1,b);if(0==b[0]&&0==b[1]&&0==b[2]){needAxis&&(G_48.visible=!0);for(b=0;b<G_34.children.length;b++)"Mesh"==G_34.children[b].type&&(d=G_34.children[b],1==GLE_RenderMode&&d.ge("edge")&&(d.ge("edge").visible=!0),-1<d.name.indexOf("-low")||-1<d.name.indexOf("-medium")||-1<d.name.indexOf("-high")||-1<d.name.indexOf("Light")||""==d.name?d.visible=!0:d.material.uniforms&&(d.material.uniforms.bid.value=0));G_4.sr(G_29,GLE_BACK_ALPHA);G_34.ge("myline")&&(G_34.ge("myline").visible=!0);G_34.ge("mytrig")&&(G_34.ge("mytrig").visible=!0);G_7=!0;b=G_3.ge("back").material.uniforms;b.texture1.value&&(G_3.ge("back").visible=!0)}else{var e=b[0]-1,b=256*b[1]+b[2],f=G_34.ge(G_10[e]+"_"+G_8[e][b].model);f.material.uniforms.bid.value=2;f.visible=!0;G_4.render(G_3,G_2,G_6);var h=new Uint8Array(4);G_4.rls(G_6,a.pageX-G_4.domElement.getBoundingClientRect().left,G_6.height-(a.pageY-G_4.domElement.getBoundingClientRect().top),1,1,h);h=G_8[e][b].ids[3*(h[1]<<8|h[2])];needAxis&&(G_48.visible=!0);for(b=0;b<G_34.children.length;b++)"Mesh"==G_34.children[b].type&&(d=G_34.children[b],1==GLE_RenderMode&&d.ge("edge")&&(d.ge("edge").visible=!0),-1<d.name.indexOf("-low")||-1<d.name.indexOf("-medium")||-1<d.name.indexOf("-high")||-1<d.name.indexOf("Light")||""==d.name?d.visible=!0:d.material.uniforms&&(d.material.uniforms.bid.value=0));G_4.sr(G_29,GLE_BACK_ALPHA);G_34.ge("myline")&&(G_34.ge("myline").visible=!0);G_34.ge("mytrig")&&(G_34.ge("mytrig").visible=!0);G_7=!0;b=G_3.ge("back").material.uniforms;b.texture1.value&&(G_3.ge("back").visible=!0);b=new GLE.Vector2;b.x=(a.pageX-G_4.domElement.getBoundingClientRect().left)/G_4.domElement.offsetWidth*2-1;b.y=2*-((a.pageY-G_4.domElement.getBoundingClientRect().top)/G_4.domElement.offsetHeight)+1;G_16.sa(b,G_2);b=[];b.push(f);b=G_16.is(b,!1);if(0<b.length){b=new GLE.Vector3(b[0].point.x,b[0].point.y,b[0].point.z);a=new GLE.Matrix4;b.applyMatrix4(a.getInverse(G_35.matrixWorld));var f=b.x,l=b.y,m=b.z,f=f-G_36.position.x,l=l-G_36.position.y,m=m-G_36.position.z;a=[];for(b=0;b<G_10.length;b++)if(G_10[e]==G_10[b])for(var r=0;r<G_8[b].length;r++)for(var q=0;q<G_8[b][r].ids.length/3;q++)if(h==G_8[b][r].ids[3*q])for(var d=G_34.ge(G_10[b]+"_"+G_8[b][r].model),d=d.geometry.attributes.position.array,x=G_8[b][r].ids[3*q+1];x<G_8[b][r].ids[3*q+2];x++){var G=new GLE.Vector3(d[3*x],d[3*x+1],d[3*x+2]);a.push(G)}if(6==G_49){e=[];for(b=r=0;b<a.length/3;b++)M_JudgePlane([a[3*b].x,a[3*b].y,a[3*b].z],[a[3*b+1].x,a[3*b+1].y,a[3*b+1].z],[a[3*b+2].x,a[3*b+2].y,a[3*b+2].z],[f,l,m])&&(e.push(new GLE.Vector3(a[3*b].x,a[3*b].y,a[3*b].z)),e.push(new GLE.Vector3(a[3*b+1].x,a[3*b+1].y,a[3*b+1].z)),e.push(new GLE.Vector3(a[3*b+2].x,a[3*b+2].y,a[3*b+2].z)),r+=M_GetArea([a[3*b].x,a[3*b].y,a[3*b].z],[a[3*b+1].x,a[3*b+1].y,a[3*b+1].z],[a[3*b+2].x,a[3*b+2].y,a[3*b+2].z]));G_34.remove(G_34.ge("areaResult"));G_34.remove(G_34.ge("mytrig"));G_34.remove(G_34.ge("area"));$("#area-canvas").remove();$("#areaResult-canvas").remove();DrawTrigs(e);h=new GLE.Vector3(0,0,0);for(b=m=l=f=0;b<e.length;b++)f+=e[b].x,l+=e[b].y,m+=e[b].z;h.x=f/e.length;h.y=l/e.length;h.z=m/e.length;b=(parseFloat(r)/1E6).toFixed(3)+"\u5e73\u65b9\u7c73";GLE_bMeasureWord&&DrawWords(h,b,"areaResult");for(b=0;b<GLE_RightArray.length;b++)if(15==GLE_RightArray[b])return;OnMeasureResult((parseFloat(r)/1E6).toFixed(3))}if(7==G_49){e=[];for(b=r=0;b<a.length/3;b++)e.push(new GLE.Vector3(a[3*b].x,a[3*b].y,a[3*b].z)),e.push(new GLE.Vector3(a[3*b+1].x,a[3*b+1].y,a[3*b+1].z)),e.push(new GLE.Vector3(a[3*b+2].x,a[3*b+2].y,a[3*b+2].z)),r+=M_GetArea([a[3*b].x,a[3*b].y,a[3*b].z],[a[3*b+1].x,a[3*b+1].y,a[3*b+1].z],[a[3*b+2].x,a[3*b+2].y,a[3*b+2].z]);G_34.remove(G_34.ge("areaResult"));G_34.remove(G_34.ge("mytrig"));G_34.remove(G_34.ge("area"));$("#area-canvas").remove();$("#areaResult-canvas").remove();DrawTrigs(e);h=new GLE.Vector3(0,0,0);for(b=m=l=f=0;b<e.length;b++)f+=e[b].x,l+=e[b].y,m+=e[b].z;h.x=f/e.length;h.y=l/e.length;h.z=m/e.length;b=(parseFloat(r)/1E6).toFixed(3)+"\u5e73\u65b9\u7c73";GLE_bMeasureWord&&DrawWords(h,b,"areaResult");for(b=0;b<GLE_RightArray.length;b++)if(15==GLE_RightArray[b])return;OnMeasureResult((parseFloat(r)/1E6).toFixed(3))}if(8==G_49){e=[];for(b=r=0;b<a.length/3;b++)e.push(new GLE.Vector3(a[3*b].x,a[3*b].y,a[3*b].z)),e.push(new GLE.Vector3(a[3*b+1].x,a[3*b+1].y,a[3*b+1].z)),e.push(new GLE.Vector3(a[3*b+2].x,a[3*b+2].y,a[3*b+2].z)),r+=CalculateVolume(new GLE.Vector3(a[3*b].x,a[3*b].y,a[3*b].z),new GLE.Vector3(a[3*b+1].x,a[3*b+1].y,a[3*b+1].z),new GLE.Vector3(a[3*b+2].x,a[3*b+2].y,a[3*b+2].z));G_34.remove(G_34.ge("areaResult"));G_34.remove(G_34.ge("mytrig"));G_34.remove(G_34.ge("area"));$("#area-canvas").remove();$("#areaResult-canvas").remove();DrawTrigs(e);h=new GLE.Vector3(0,0,0);q=new GLE.Vector3(e[0].x,e[0].y,e[0].z);d=new GLE.Vector3(e[0].x,e[0].y,e[0].z);for(b=m=l=f=0;b<e.length;b++)f+=e[b].x,l+=e[b].y,m+=e[b].z,e[b].x<q.x&&(q.x=e[b].x),e[b].y<q.y&&(q.y=e[b].y),e[b].z<q.z&&(q.z=e[b].z),e[b].x>d.x&&(d.x=e[b].x),e[b].y>d.y&&(d.y=e[b].y),e[b].z>d.z&&(d.z=e[b].z);h.x=f/e.length;h.y=l/e.length;h.z=m/e.length;e=(parseFloat(r)/1E9).toFixed(3);GLE_bMeasureWord&&DrawWords(h,e+"\u7acb\u65b9\u7c73","areaResult");for(b=0;b<GLE_RightArray.length;b++)if(15==GLE_RightArray[b])return;OnMeasureResult(e)}if(9==G_49){e=[];for(b=r=0;b<a.length/3;b++)e.push(new GLE.Vector3(a[3*b].x,a[3*b].y,a[3*b].z)),e.push(new GLE.Vector3(a[3*b+1].x,a[3*b+1].y,a[3*b+1].z)),e.push(new GLE.Vector3(a[3*b+2].x,a[3*b+2].y,a[3*b+2].z)),r+=CalculateVolume(new GLE.Vector3(a[3*b].x,a[3*b].y,a[3*b].z),new GLE.Vector3(a[3*b+1].x,a[3*b+1].y,a[3*b+1].z),new GLE.Vector3(a[3*b+2].x,a[3*b+2].y,a[3*b+2].z));G_34.remove(G_34.ge("areaResult"));G_34.remove(G_34.ge("mytrig"));G_34.remove(G_34.ge("area"));$("#area-canvas").remove();$("#areaResult-canvas").remove();DrawTrigs(e);h=new GLE.Vector3(0,0,0);q=new GLE.Vector3(e[0].x,e[0].y,e[0].z);d=new GLE.Vector3(e[0].x,e[0].y,e[0].z);for(b=m=l=f=0;b<e.length;b++)f+=e[b].x,l+=e[b].y,m+=e[b].z,e[b].x<q.x&&(q.x=e[b].x),e[b].y<q.y&&(q.y=e[b].y),e[b].z<q.z&&(q.z=e[b].z),e[b].x>d.x&&(d.x=e[b].x),e[b].y>d.y&&(d.y=e[b].y),e[b].z>d.z&&(d.z=e[b].z);h.x=f/e.length;h.y=l/e.length;h.z=m/e.length;e=r/1E9;b=(G_52/1E3*e).toFixed(3)+"\u5428";GLE_bMeasureWord&&DrawWords(h,b,"areaResult");for(b=0;b<GLE_RightArray.length;b++)if(15==GLE_RightArray[b])return;OnMeasureResult((G_52/1E3*e).toFixed(3))}}else OnClickBlank()}}}function DrawPoints(a,b){var d=new GLE.Geometry,e=new GLE.Mal({color:16750848}),d=new GLE.Mesh(d,e);d.name="mypoint";G_34.add(d);for(e=0;e<a.length;e++){var f=new GLE.SphereBufferGeometry(.5,16,8),h=new GLE.Mesh(f,new GLE.Mal({color:16711680}));b&&(h=new GLE.Mesh(f,new GLE.Mal({color:16750848})));h.scale.x=60;h.scale.y=60;h.scale.z=60;h.position.x=a[e].x;h.position.y=a[e].y;h.position.z=a[e].z;h.material.transparent=!0;h.material.side=GLE.DoubleSide;h.material.alphaTest=.1;h.material.depthTest=!1;h.material.depthWrite=!1;h.renderOrder=10;d.add(h)}}function DrawLineSegments(a,b){var d=new GLE.Geometry,e=new GLE.LineBasicMaterial({color:16750848});b&&(e=new GLE.LineBasicMaterial({color:b}));for(var f=0;f<a.length;f++)d.vertices.push(a[f]);d=new GLE.LineSegments(d,e);d.material.transparent=!0;d.material.side=GLE.DoubleSide;d.material.alphaTest=.1;d.material.depthTest=!1;d.material.depthWrite=!1;d.renderOrder=10;d.name="myline";G_34.add(d)}function DrawDashLineSegments(a,b,d){var e=new GLE.Geometry,f=new GLE.LineBasicMaterial({color:16750848});b&&(f=new GLE.LineBasicMaterial({color:b}));b=[];b.push(new GLE.Vector3(a[0].x,a[0].y,a[0].z));b.push(new GLE.Vector3(a[1].x,a[1].y,a[1].z));if("x"==d)for(b[0].x>b[1].x&&(a=b[0].x,b[0].x=b[1].x,b[1].x=a),a=0;150*a+b[0].x<b[1].x;a++)e.vertices.push(new GLE.Vector3(b[0].x+150*a,b[0].y,b[0].z)),b[0].x+150*a+100>b[1].x?e.vertices.push(new GLE.Vector3(b[1].x,b[0].y,b[0].z)):e.vertices.push(new GLE.Vector3(b[0].x+150*a+100,b[0].y,b[0].z));else if("y"==d)for(b[0].y>b[1].y&&(a=b[0].y,b[0].y=b[1].y,b[1].y=a),a=0;150*a+b[0].y<b[1].y;a++)e.vertices.push(new GLE.Vector3(b[0].x,b[0].y+150*a,b[0].z)),b[0].y+150*a+100>b[1].y?e.vertices.push(new GLE.Vector3(b[0].x,b[1].y,b[0].z)):e.vertices.push(new GLE.Vector3(b[0].x,b[0].y+150*a+100,b[0].z));else if("z"==d)for(b[0].z>b[1].z&&(a=b[0].z,b[0].z=b[1].z,b[1].z=a),a=0;150*a+b[0].z<b[1].z;a++)e.vertices.push(new GLE.Vector3(b[0].x,b[0].y,b[0].z+150*a)),b[0].z+150*a+100>b[1].z?e.vertices.push(new GLE.Vector3(b[0].x,b[0].y,b[1].z)):e.vertices.push(new GLE.Vector3(b[0].x,b[0].y,b[0].z+150*a+100));e=new GLE.LineSegments(e,f);e.material.transparent=!0;e.material.side=GLE.DoubleSide;e.material.alphaTest=.1;e.material.depthTest=!1;e.material.depthWrite=!1;e.renderOrder=10;G_34.ge("myline").add(e)}function DrawLineSegments1(a,b){for(var d=new GLE.Geometry,e=new GLE.LineBasicMaterial({color:16711935}),f=0;f<a.length;f++)d.vertices.push(a[f]);d=new GLE.Line(d,e);d.material.transparent=!0;d.material.side=GLE.DoubleSide;d.material.alphaTest=.1;d.material.depthTest=!1;d.material.depthWrite=!1;d.renderOrder=10;d.name=b;G_34.add(d)}function DrawLines(a){for(var b=new GLE.Geometry,d=new GLE.LineBasicMaterial({color:16711935}),e=0;e<a.length;e++)b.vertices.push(a[e]);a=new GLE.LineLoop(b,d);a.material.transparent=!0;a.material.side=GLE.DoubleSide;a.material.alphaTest=.1;a.material.depthTest=!1;a.material.depthWrite=!1;a.renderOrder=10;a.name="myline";G_34.add(a)}function DrawMesh(a){var b=new GLE.BufferGeometry;b.addAttribute("position",(new GLE.Float32BufferAttribute(a,3)).onUpload(disposeArray));a=new GLE.Mesh(b,new GLE.Mal({color:255}));a.material.depthTest=!1;a.material.depthWrite=!1;a.renderOrder=10;G_34.add(a)}function DrawTrigs(a){for(var b=new GLE.Geometry,d=0;d<a.length/3;d++)b.vertices.push(a[3*d]),b.vertices.push(a[3*d+1]),b.vertices.push(a[3*d+2]),b.faces.push(new GLE.Face3(3*d,3*d+1,3*d+2));a=new GLE.Mal({color:255});b.computeBoundingSphere();b=new GLE.Mesh(b,a);b.material.transparent=!0;b.material.side=GLE.DoubleSide;b.material.alphaTest=.1;b.material.depthTest=!1;b.material.depthWrite=!1;b.material.opacity=.3;b.renderOrder=19;b.name="mytrig";G_34.add(b)}function DrawWords(a,b,d,e){var f='\x3ccanvas id\x3d"'+d+'-canvas" height\x3d"32" width\x3d"128" style\x3d"display:block;position: absolute;top:0px;"\x3e\x3c/canvas\x3e';null==G_0?document.getElementsByTagName("body")[0].innerHTML+=f:$("#"+G_15).append(f);f=document.getElementById(d+"-canvas");f.style.zIndex="-1";G_18=f.getContext("2d");f=new GLE.Texture(f);G_18.font="20px Arial";G_18.fillStyle=e?e:"#ff0000";G_18.textAlign="center";G_18.fillText(b,64,24);f.needsUpdate=!0;b=new GLE.PlaneGeometry(2E3,640);e=new GLE.Mal;b=new GLE.Mesh(b,e);b.rotation.x=.5*Math.PI;b.position.x=a.x;b.position.y=a.y;b.position.z=a.z;b.material.map=f;b.material.transparent=!0;b.material.map.needsUpdate=!0;b.material.side=GLE.DoubleSide;b.material.alphaTest=.5;b.material.depthTest=!1;b.material.depthWrite=!1;b.renderOrder=10;b.rotation.y-=G_35.rotation.z;b.name=d;G_34.add(b)}function DrawWords0(a,b,d,e){var f='\x3ccanvas id\x3d"'+d+'-canvas" height\x3d"32" width\x3d"128" style\x3d"display:block;position: absolute;top:0px;"\x3e\x3c/canvas\x3e';null==G_0?document.getElementsByTagName("body")[0].innerHTML+=f:$("#"+G_15).append(f);f=document.getElementById(d+"-canvas");f.style.zIndex="-1";G_18=f.getContext("2d");f=new GLE.Texture(f);G_18.font="20px Arial";G_18.fillStyle=e?e:"#ff0000";G_18.textAlign="center";G_18.fillText(b,64,24);f.needsUpdate=!0;b=new GLE.PlaneGeometry(1700,544);e=new GLE.Mal;b=new GLE.Mesh(b,e);b.rotation.x=.5*Math.PI;b.position.x=a.x;b.position.y=a.y;b.position.z=a.z;b.material.map=f;b.material.transparent=!0;b.material.map.needsUpdate=!0;b.material.side=GLE.DoubleSide;b.material.alphaTest=.5;b.material.depthTest=!1;b.material.depthWrite=!1;b.renderOrder=10;b.rotation.y-=G_35.rotation.z;b.name=d;G_34.add(b)}function ClearMeasure(){G_34.remove(G_34.ge("mypoint"));G_34.remove(G_34.ge("myline"));G_34.remove(G_34.ge("area"));G_34.remove(G_34.ge("areaResult"));G_34.remove(G_34.ge("mytrig"));$("#area-canvas").remove();$("#areaResult-canvas").remove();for(var a=0;a<G_50.length/2+3;a++)$("#result"+a+"-canvas").remove(),G_34.remove(G_34.ge("result"+a));for(a=0;a<G_50.length/2;a++)G_34.remove(G_34.ge("angle"+a));G_50=[]}var mytime=0,currentPoint=null;function onClick2(a){GLE_cubeScene&&ReSetCubeActorColor();GLE_cubeScene&&GLE_cubeScene.ge("viewcube")&&(GLE_cubeScene.ge("cube-home").visible=!1,GLE_cubeScene.ge("viewcube").material.uniforms.color.value.w=.9)}function onClick1(a){currentPoint=a}function onClick(a){if(currentPoint&&a.clientX){var b=Math.abs(currentPoint.clientX-a.clientX),d=Math.abs(currentPoint.clientY-a.clientY);if(!(50<Math.sqrt(b*b+d*d))&&(mytime=(new Date).valueOf(),G_23))if(0==G_49)ik0(a);else if(1==G_49)ik1(a);else if(2==G_49)ik2(a);else if(3==G_49)ik3(a);else if(4==G_49||5==G_49){for(b=0;b<GLE_RightArray.length;b++)if(13==GLE_RightArray[b])return;ik4(a)}else if(6==G_49||7==G_49||8==G_49||9==G_49){for(b=0;b<GLE_RightArray.length;b++)if(13==GLE_RightArray[b])return;ik5(a)}}}function transformMat4(a,b,d){var e=b[0],f=b[1];b=b[2];var h=d[3]*e+d[7]*f+d[11]*b+d[15],h=h||1;a[0]=(d[0]*e+d[4]*f+d[8]*b+d[12])/h;a[1]=(d[1]*e+d[5]*f+d[9]*b+d[13])/h;a[2]=(d[2]*e+d[6]*f+d[10]*b+d[14])/h;return a}function CalculateVolume(a,b,d){return 1/6*(-(d.x*b.y*a.z)+b.x*d.y*a.z+d.x*a.y*b.z-a.x*d.y*b.z-b.x*a.y*d.z+a.x*b.y*d.z)}function CalcCamera(a){if(a){a=new GLE.Vector3(G_2.position.x,G_2.position.y,G_2.position.z);var b=new GLE.Matrix4;a.applyMatrix4(b.getInverse(G_35.matrixWorld));var b=new GLE.Vector3(G_2.getWorldDirection().x,G_2.getWorldDirection().y,G_2.getWorldDirection().z),d=new GLE.Matrix4;b.applyMatrix4(d.getInverse(G_35.matrixWorld));b=new GLE.By(500,500,500);d=new GLE.Mal({color:16776960});b=new GLE.Mesh(b,d);b.position.x=a.x;b.position.y=a.y;b.position.z=a.z;G_35.add(b);a=new GLE.By(100,100,100);d=new GLE.Mal({color:16711680});a=new GLE.Mesh(a,d);a.position.y=300;b.add(a);b.rotation.z=-G_35.rotation.z;mapUpdate1()}else mapUpdate0()}function LoadSingleObj(a,b,d,e,f){b=b.replace(/.glb/g,"-"+e+".glb");JSZipUtils.getBinaryContent(a+b,function(h,l){JSZip.loadAsync(l).then(function(h){var l=b.lastIndexOf("/"),m=b.lastIndexOf("."),x=b.substr(l+1,m-l-1);h.file(x+".ver").async("arraybuffer").then(function(b){h.file(x+".pos").async("arraybuffer").then(function(l){h.file(x+".tex").async("arraybuffer").then(function(m){h.file(x+".tpos").async("arraybuffer").then(function(h){var k=new Float32Array(b),q=new Uint32Array(l),p=new Float32Array(m),r=new Uint32Array(h);h=new Float32Array(3*q.length);var v=new Float32Array(2*r.length);for(i=0;i<q.length;i++){var w=q[i],B=k[3*w+1],G=k[3*w+2];h[3*i+0]=k[3*w+0]*GLE_Unit;h[3*i+1]=B*GLE_Unit;h[3*i+2]=G*GLE_Unit}for(i=0;i<r.length;i++)k=r[i],v[2*i+0]=p[2*k+0],v[2*i+1]=p[2*k+1];p=new GLE.TextureLoader;k={texture0:{value:null}};k.texture0.value=p.load(a+"textures/"+x.replace("-"+e,"")+"_0.jpg");k.texture0.value.wrapS=k.texture0.value.wrapT=GLE.RepeatWrapping;p=new GLE.ShaderMaterial({uniforms:k,vertexShader:"varying vec2 vUv; \r\n void main(){ \r\n vUv \x3d uv; \r\n gl_Position \x3d projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); \r\n }",fragmentShader:"uniform sampler2D texture0; \r\n varying vec2 vUv; \r\n void main(void){ \r\n gl_FragColor \x3d texture2D(texture0, vUv); \r\n }",side:GLE.DoubleSide,transparent:!0,wireframe:!1});k=new GLE.BufferGeometry;k.addAttribute("position",(new GLE.Float32BufferAttribute(h,3)).onUpload(disposeArray1));k.addAttribute("uv",(new GLE.Float32BufferAttribute(v,2)).onUpload(disposeArray));h=new GLE.Mesh(k,p);h.name=d+"_"+x;h.frustumCulled=!1;G_34.add(h);DeleteModel(f)})})})})})})}function LoadSvg(a,b,d,e,f){a=document.getElementById(G_15);e=a.childNodes;for(f=0;f<e.length;f++)a.removeChild(e[f]);GLE_bSvg=!0;b+=d;var h=document.getElementById(G_15);h.innerHTML="";d="html, body {height: 100%;}html, body, div, svg {margin: 0;padding: 0;}.red {fill: #FF0000;stroke: #FF0000;}.green {fill: #00ff00;stroke: #00ff00;}.blue {fill: #0000ff;stroke: #0000ff;}"+("#"+G_15+"{ overflow:hidden;width:100%; height:100%;margin:auto 0 }");d3.select(h).append("style").html(d);h.oncontextmenu=function(){event.returnValue=!1};d3.svg(b).then(function(a){a=a.getElementsByTagName("svg");var b=d3.select("#"+h.id).append("svg").attr("id","svg"+h.id),d=b.append("g").attr("id","g"+h.id);d.html(a["0"].innerHTML);var e=d.select("rect").attr("height"),f=d.select("rect").attr("width");a=h.offsetHeight-0;var l=h.offsetWidth-0;console.log("clientWidth:"+l+",clientHeight:"+document.body.clientHeight);b.attr("preserveAspectRatio","xMinYMin meet").attr("width",l).attr("hieght",a).attr("viewBox","0 0 "+l+" "+a+"");var B=d3.zoom().duration(750).on("zoom",function(){d.attr("transform",d3.zoomTransform(b.node()))}),w=a/e,v=(l-f*a/e)/2;b.call(B).call(B.transform,d3.zoomIdentity.translate(v,0).scale(w));window.onresize=function(){var a=document.documentElement.clientWidth,d=document.documentElement.clientHeight;b.attr("preserveAspectRatio","xMinYMin meet").attr("width",a).attr("hieght",d).attr("viewBox","0 0 "+a+" "+d+"");w=d/e;v=(a-f*d/e)/2;b.call(B).call(B.transform,d3.zoomIdentity.translate(v,0).scale(w))}});h.addEventListener("click",onSvgClick,!0)}var GLE_SvgColorArray=[];function onSvgClick(a){a.target.nodeName.toLocaleLowerCase();a=a.srcElement.id;if(""==a)for(a=0;a<GLE_SvgColorArray.length;a++)d3.select(document.getElementById(GLE_SvgColorArray[a])).attr("class","");else GLE_SvgColorArray.push(a),d3.select(document.getElementById(a)).attr("class","green")}function LoadObj(a,b,d,e,f){d=d.replace(/.glb/g,"-low.glb");JSZipUtils.getBinaryContent(b+d,function(h,l){JSZip.loadAsync(l).then(function(h){var l=d.lastIndexOf("/"),m=d.lastIndexOf("."),x=d.substr(l+1,m-l-1);h.file(x+".ver").async("arraybuffer").then(function(d){h.file(x+".pos").async("arraybuffer").then(function(l){h.file(x+".tex").async("arraybuffer").then(function(m){h.file(x+".tpos").async("arraybuffer").then(function(h){var k=new Float32Array(d),q=new Uint32Array(l),p=new Float32Array(m),r=new Uint32Array(h);h=new Float32Array(3*q.length);var v=new Float32Array(2*r.length);for(i=0;i<q.length;i++){var w=q[i],B=k[3*w+1],G=k[3*w+2];h[3*i+0]=k[3*w+0]*GLE_Unit;h[3*i+1]=B*GLE_Unit;h[3*i+2]=G*GLE_Unit}for(i=0;i<r.length;i++)k=r[i],v[2*i+0]=p[2*k+0],v[2*i+1]=p[2*k+1];p=new GLE.TextureLoader;k={texture0:{value:null}};k.texture0.value=p.load(b+"textures/"+x.replace("-low","")+"_0.jpg");k.texture0.value.wrapS=k.texture0.value.wrapT=GLE.RepeatWrapping;p=new GLE.ShaderMaterial({uniforms:k,vertexShader:"varying vec2 vUv; \r\n void main(){ \r\n vUv \x3d uv; \r\n gl_Position \x3d projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); \r\n }",fragmentShader:"uniform sampler2D texture0; \r\n varying vec2 vUv; \r\n void main(void){ \r\n gl_FragColor \x3d texture2D(texture0, vUv); \r\n }",side:GLE.DoubleSide,transparent:!0,wireframe:!1});k=new GLE.BufferGeometry;k.addAttribute("position",(new GLE.Float32BufferAttribute(h,3)).onUpload(disposeArray1));k.addAttribute("uv",(new GLE.Float32BufferAttribute(v,2)).onUpload(disposeArray));h=new GLE.Mesh(k,p);h.name=e+"_"+x;h.frustumCulled=!1;G_34.add(h);h=(new GLE.Box3).st(h);.01>Math.abs(G_53.min.x)&&.01>Math.abs(G_53.min.y)&&.01>Math.abs(G_53.min.z)&&.01>Math.abs(G_53.max.x)&&.01>Math.abs(G_53.max.y)&&.01>Math.abs(G_53.max.z)&&(G_53=h);h.min.x<G_53.min.x&&(G_53.min.x=h.min.x);h.min.y<G_53.min.y&&(G_53.min.y=h.min.y);h.min.z<G_53.min.z&&(G_53.min.z=h.min.z);h.max.x>G_53.max.x&&(G_53.max.x=h.max.x);h.max.y>G_53.max.y&&(G_53.max.y=h.max.y);h.max.z>G_53.max.z&&(G_53.max.z=h.max.z);G_22&&(h=new GLE.Box3Helper(h,16711680),G_34.add(h));ZoomFitAll();GLE_LoadNum--;0==GLE_LoadNum?(G_7=!0,UpdateOrder(),OnLoadModelEnd(e)):(f++,LoadObj(a,b,a[f].model,e,f))})})})})})})}function SceneAnimationPlay(){tmpAnimation.reset();tmpAnimation.play()}var tmpAnimation;function LoadGLB(a,b,d,e,f){var h=new GLE.Lr,l=new GLE.Gr(h),m=[],m=d.split("/");l.load(b+m[1],function(b){G_8.push([]);G_10.push("GLB_"+e);G_12.push("");G_9.push([]);var d=b.scene;d.scale.x=1E3;d.scale.y=1E3;d.scale.z=1E3;if(0<b.animations.length){GLE_Mixer=new GLE.AnimationMixer(d);tmpAnimation=GLE_Mixer.clipAction(b.animations[0]);var h=new GLE.Clock;(new TN.Tn(0)).to(0,1E4).delay(0).easing(TN.Easing.Linear.None).repeat(Infinity).start().onUpdate(function(a){a=h.getDelta();GLE_Mixer.update(a)})}d.rotation.x=Math.PI/2;d.children[0].name="GLB_"+e;G_34.add(d);.01>G_53.min.x&&.01>G_53.min.y&&.01>G_53.min.z&&.01>G_53.max.x&&.01>G_53.max.y&&.01>G_53.max.z&&(G_53=(new GLE.Box3).st(d,!0));G_22&&(b=new GLE.Box3Helper(G_53,16711680),G_34.add(b));d.traverse(function(a){a instanceof GLE.Mesh?(a.name="GLB_"+e,a.material.side=GLE.DoubleSide,a.material.transparent=!0,a.material.depthTest=!0,a.material.depthWrite=!0,G_11.length<G_10.length&&G_11.push(a.material),a=new GLE.Vector3,G_53.getSize(a),G_32=a.length(),G_7=!0,GLE_bNeedCamera&&ZoomFitAll()):a.name="GLB_"+e});G_23=!0;f<a.length-1?(f++,LoadGLB(a,G_13,a[f].model,e,f)):(GLB_needUpdate=!0,OnLoadModelEnd(e))});h.onLoad=function(){G_23=!0}}function AddModel(a,b,d,e){GLE_bNeedCamera=0==d?d:!0;d=a.lastIndexOf("/");G_13=a.substr(0,d+1);$.getJSON(a,function(a){if("obj"==a[0].type)GLE_LoadNum=a.length,G_10.push(b),G_12.push(G_13),G_8.push(a),LoadObj(a,G_13,a[0].model,b,0);else if("svg"==a[0].type)LoadSvg(a,G_13,a[0].model,b,0);else if("glb"==a[0].type)LoadGLB(a,G_13,a[0].model,b,0);else{var d=new GLE.LineBasicMaterial({color:6710886});if(!e)for(var f=0;f<a.length;f++){var m=a[f].model;"space"==m.substring(m.length-5,m.length)&&(a.splice(f,1),f--)}for(f=0;f<a.length;f++)if(m=a[f].textures,!a[f])for(var r=0;r<m.length;r++)m[r]||m.splice(r,1);G_10.push(b);G_8.push(a);GLE_LoadNum=a.length;G_7=!1;LoadId2(a,G_13+"ids/"+a[0].model+".glb",b,d,0)}})}function disposeArray(){this.array=null}function disposeArray1(){}function SetBright(a){for(var b=0;b<G_8.length;b++)for(var d=0;d<G_8[b].length;d++)G_34.ge(G_10[b]+"_"+G_8[b][d].model).material.uniforms.bright.value=a}function LoadId3(a,b,d,e,f,h,l,m){b.file(f+".pos").async("arraybuffer").then(function(r){b.file(f+".mati").async("arraybuffer").then(function(q){b.file(f+".color").async("arraybuffer").then(function(x){b.file(f+".id").async("arraybuffer").then(function(G){b.file(f+".normal").async("arraybuffer").then(function(b){var w=new Uint32Array(r),v=new Uint32Array(q),k=new Uint8Array(x),u=new Uint32Array(G);b=new Uint8Array(b);for(var p=new Uint8Array(k.length/4*3),E=new Uint8Array(k.length),C=new Float32Array(3*w.length),B=0;B<E.length;B++)E[B]=255;for(var aa=-1,B=0;B<G_10.length;B++)if(h==G_10[B]){aa=B;break}G_8[aa][m].ids=u;parseInt(65536*(aa+1)+m);for(var F=[],B=0;B<u.length/3;B++){var L=parseInt(B/256),A=B-256*L;F.push(u[3*B]);F.push(0);for(j=u[3*B+1];j<u[3*B+2];j++)p[3*j]=255,p[3*j+1]=L,p[3*j+2]=A}G_8[aa][m].vstate=F;for(B=0;B<w.length;B++)u=w[B],u=[d[3*u+0],d[3*u+1],d[3*u+2]],F=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],L=v[B],0<e.length&&16*L<e.length&&(F[0]=e[16*L+0],F[1]=e[16*L+1],F[2]=e[16*L+2],F[3]=e[16*L+3],F[4]=e[16*L+4],F[5]=e[16*L+5],F[6]=e[16*L+6],F[7]=e[16*L+7],F[8]=e[16*L+8],F[9]=e[16*L+9],F[10]=e[16*L+10],F[11]=e[16*L+11],F[12]=e[16*L+12],F[13]=e[16*L+13],F[14]=e[16*L+14],F[15]=e[16*L+15]),u=transformMat4(u,u,F),C[3*B+0]=u[0]*GLE_Unit,C[3*B+1]=u[1]*GLE_Unit,C[3*B+2]=u[2]*GLE_Unit,isNaN(u[0])&&(C[3*B+0]=0,C[3*B+1]=0,C[3*B+2]=0);(new GLE.Box3).setFromArray(C);new GLE.TextureLoader;w={bright:{value:1},bid:{value:0},mc:{value:parseInt(65536*(aa+1)+m)},color:{value:new GLE.Vector4(1,1,1,1)},bclip:{value:!1},clip1:{value:new GLE.Vector4(0,0,0,0)},clip2:{value:new GLE.Vector4(0,0,0,0)},clip3:{value:new GLE.Vector4(0,0,0,0)},clip4:{value:new GLE.Vector4(0,0,0,0)},clip5:{value:new GLE.Vector4(0,0,0,0)},clip6:{value:new GLE.Vector4(0,0,0,0)}};w=new GLE.ShaderMaterial({uniforms:w,vertexShader:" \r\n varying vec3 vid; \r\n attribute vec3 id; \r\n varying vec4 vcolor; \r\n attribute vec4 acolor; \r\n varying vec4 fcolor; \r\n attribute vec4 pcolor; \r\n varying vec3 vPosition; \r\n varying vec3 vNormal; \r\n attribute vec3 anormal; \r\n void main(){ \r\n vid \x3d id; \r\n vNormal \x3d anormal; \r\n vcolor \x3d acolor; \r\n fcolor \x3d pcolor; \r\n vPosition \x3d position; \r\n vec4 mvPosition \x3d projectionMatrix*modelViewMatrix * vec4( position, 1.0 ); \r\n gl_Position \x3d mvPosition;}",fragmentShader:" \r\n uniform float bright; \r\n uniform int bid; \r\n uniform int mc; \r\n uniform vec4 color; \r\n uniform bool bclip; \r\n uniform vec4 clip1; \r\n uniform vec4 clip2; \r\n uniform vec4 clip3; \r\n uniform vec4 clip4; \r\n uniform vec4 clip5; \r\n uniform vec4 clip6; \r\n varying vec3 vid; \r\n varying vec4 vcolor; \r\n varying vec4 fcolor; \r\n varying vec3 vPosition; \r\n varying vec3 vNormal; \r\n void main(void){ \r\n if(bclip) \r\n { \r\n if (length(clip1) \x3e 0.001) \r\n { \r\n vec4 c1 \x3d clip1; \r\n vec3 x \x3d vPosition; \r\n float distance1 \x3d (dot(c1.xyz, x) + c1.w) / length(c1.xyz); \r\n if (distance1 \x3c 0.0) \r\n { \r\n discard; \r\n } \r\n } \r\n if (length(clip2) \x3e 0.001) \r\n { \r\n vec4 c1 \x3d clip2; \r\n vec3 x \x3d vPosition; \r\n float distance1 \x3d (dot(c1.xyz, x) + c1.w) / length(c1.xyz); \r\n if (distance1 \x3c 0.0) \r\n { \r\n discard; \r\n } \r\n } \r\n if (length(clip3) \x3e 0.001) \r\n { \r\n vec4 c1 \x3d clip3; \r\n vec3 x \x3d vPosition; \r\n float distance1 \x3d (dot(c1.xyz, x) + c1.w) / length(c1.xyz); \r\n if (distance1 \x3c 0.0) \r\n { \r\n discard; \r\n } \r\n } \r\n if (length(clip4) \x3e 0.001) \r\n { \r\n vec4 c1 \x3d clip4; \r\n vec3 x \x3d vPosition; \r\n float distance1 \x3d (dot(c1.xyz, x) + c1.w) / length(c1.xyz); \r\n if (distance1 \x3c 0.0) \r\n { \r\n discard; \r\n } \r\n } \r\n if (length(clip5) \x3e 0.001) \r\n { \r\n vec4 c1 \x3d clip5; \r\n vec3 x \x3d vPosition; \r\n float distance1 \x3d (dot(c1.xyz, x) + c1.w) / length(c1.xyz); \r\n if (distance1 \x3c 0.0) \r\n { \r\n discard; \r\n } \r\n } \r\n if (length(clip6) \x3e 0.001) \r\n { \r\n vec4 c1 \x3d clip6; \r\n vec3 x \x3d vPosition; \r\n float distance1 \x3d (dot(c1.xyz, x) + c1.w) / length(c1.xyz); \r\n if (distance1 \x3c 0.0) \r\n { \r\n discard; \r\n } \r\n } \r\n } \r\n if(bid \x3d\x3d 0){ \r\n vec3 lightADirection \x3d normalize(vec3(0,10000,5000)); \r\n float lightWeightA \x3d max(dot(vNormal/vec3(255.0,255.0,255.0), lightADirection) * 0.4, 0.0); \r\n vec3 lightBDirection \x3d normalize(vec3(0,-10000,5000)); \r\n float lightWeightB \x3d max(dot(vNormal/vec3(255.0,255.0,255.0), lightBDirection) * 0.4, 0.0); \r\n vec3 lightCDirection \x3d normalize(vec3(10000,0,5000)); \r\n float lightWeightC \x3d max(dot(vNormal/vec3(255.0,255.0,255.0), lightCDirection) * 0.3, 0.0); \r\n vec3 lightDDirection \x3d normalize(vec3(-10000,0,5000)); \r\n float lightWeightD \x3d max(dot(vNormal/vec3(255.0,255.0,255.0), lightDDirection) * 0.3, 0.0); \r\n float lightWeighting \x3d lightWeightA + lightWeightB+lightWeightC + lightWeightD + 0.45*bright; \r\n if(vcolor.r\x3c254.99 || vcolor.g\x3c254.99 || vcolor.b\x3c254.99){ \r\n gl_FragColor \x3d vec4(lightWeighting*vcolor.r / 255.0, lightWeighting*vcolor.g / 255.0, lightWeighting*vcolor.b / 255.0, vcolor.a / 255.0); \r\n }else if(vcolor.a\x3c254.99){ \r\n gl_FragColor \x3d vec4(fcolor.r / 255.0, fcolor.g / 255.0, fcolor.b / 255.0, fcolor.a / 255.0)*vec4(lightWeighting,lightWeighting,lightWeighting,vcolor.a/255.0); \r\n } \r\n else \r\n { \r\n gl_FragColor \x3dvec4(lightWeighting*fcolor.r / 255.0, lightWeighting*fcolor.g / 255.0,lightWeighting*fcolor.b / 255.0, fcolor.a / 255.0) * color*1.0; } \r\n } \r\n else if (bid \x3d\x3d 1) \r\n {\r\n int r \x3d mc / 65536;\r\n int g \x3d (mc - r * 65536) / 256;\r\n int b \x3d mc - r * 65536 - g * 256;\r\n gl_FragColor \x3d vec4(float(r) / 255.0, float(g) / 255.0, float(b) / 255.0, 1.0);\r\n }\r\n else {\r\n gl_FragColor \x3d vec4(vid.r / 255.0, vid.g / 255.0, vid.b / 255.0, 1.0);\r\n }\r\n }",side:GLE.DoubleSide,transparent:!0});w.depthTest=!0;w.depthWrite=!0;v=new GLE.BufferGeometry;v.addAttribute("position",(new GLE.Float32BufferAttribute(C,3)).onUpload(disposeArray1));v.addAttribute("anormal",(new GLE.Uint8BufferAttribute(b,3)).onUpload(disposeArray));v.addAttribute("id",(new GLE.Uint8BufferAttribute(p,3)).onUpload(disposeArray));v.addAttribute("acolor",(new GLE.Uint8BufferAttribute(E,4)).onUpload(disposeArray1));v.addAttribute("pcolor",(new GLE.Uint8BufferAttribute(k,4)).onUpload(disposeArray1));new GLE.PointsMaterial({color:16711680});k=new GLE.Mesh(v,w);k.name=h+"_"+f;k.frustumCulled=!1;G_34.add(k);k=(new GLE.Box3).st(k);a[m].box&&(k=(new GLE.Box3).setFromArray(a[m].box));.01>Math.abs(G_53.min.x)&&.01>Math.abs(G_53.min.y)&&.01>Math.abs(G_53.min.z)&&.01>Math.abs(G_53.max.x)&&.01>Math.abs(G_53.max.y)&&.01>Math.abs(G_53.max.z)&&(G_53=k);k.min.x<G_53.min.x&&(G_53.min.x=k.min.x);k.min.y<G_53.min.y&&(G_53.min.y=k.min.y);k.min.z<G_53.min.z&&(G_53.min.z=k.min.z);k.max.x>G_53.max.x&&(G_53.max.x=k.max.x);k.max.y>G_53.max.y&&(G_53.max.y=k.max.y);k.max.z>G_53.max.z&&(G_53.max.z=k.max.z);GLE_LoadNum--;G_22&&(k=new GLE.Box3Helper(G_53,16711680),G_34.add(k));if(1==m||0==m%20)GLE_bNeedCamera&&ZoomFitAll(),G_4.render(G_3,G_2),VerifyEngine(),1==m&&UpdateOrder();0==GLE_LoadNum?(OnLoadModelProcess(1-GLE_LoadNum/a.length),GetBBox(),1==a.length&&UpdateOrder(),GLE_bNeedCamera&&ZoomFitAll(),VerifyEngine(),G_7=!0,render(),OnLoadModelEnd(h)):(m++,OnLoadModelProcess(1-GLE_LoadNum/a.length),LoadId2(a,G_13+"ids/"+a[m].model+".glb",h,l,m))})})})})})}function LoadId4(a,b,d,e,f,h,l,m){b.file(f+".pos").async("arraybuffer").then(function(r){b.file(f+".mati").async("arraybuffer").then(function(q){b.file(f+".color").async("arraybuffer").then(function(x){b.file(f+".id").async("arraybuffer").then(function(G){b.file(f+".edge").async("arraybuffer").then(function(B){b.file(f+".edgei").async("arraybuffer").then(function(b){var v=new Uint32Array(r),k=new Uint32Array(q),u=new Uint8Array(x),p=new Uint32Array(G),w=new Uint32Array(B),C=new Uint32Array(b),W=new Uint8Array(u.length/4*3),aa=new Uint8Array(u.length);b=new Float32Array(3*v.length);for(var F=0;F<aa.length;F++)aa[F]=255;for(var L=-1,F=0;F<G_10.length;F++)if(h==G_10[F]){L=F;break}G_8[L][m].ids=p;G_8[L][m].eids=C;C=[];parseInt(65536*(L+1)+m);for(F=0;F<p.length/3;F++){var A=parseInt(F/256),H=F-256*A;C.push(p[3*F]);C.push(0);for(j=p[3*F+1];j<p[3*F+2];j++)W[3*j]=255,W[3*j+1]=A,W[3*j+2]=H}G_8[L][m].vstate=C;for(F=0;F<v.length;F++)p=v[F],p=[d[3*p+0],d[3*p+1],d[3*p+2]],C=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],A=k[F],0<e.length&&16*A<e.length&&(C[0]=e[16*A+0],C[1]=e[16*A+1],C[2]=e[16*A+2],C[3]=e[16*A+3],C[4]=e[16*A+4],C[5]=e[16*A+5],C[6]=e[16*A+6],C[7]=e[16*A+7],C[8]=e[16*A+8],C[9]=e[16*A+9],C[10]=e[16*A+10],C[11]=e[16*A+11],C[12]=e[16*A+12],C[13]=e[16*A+13],C[14]=e[16*A+14],C[15]=e[16*A+15]),p=transformMat4(p,p,C),b[3*F+0]=p[0]*GLE_Unit,b[3*F+1]=p[1]*GLE_Unit,b[3*F+2]=p[2]*GLE_Unit;new GLE.TextureLoader;F={bid:{value:0},mc:{value:parseInt(65536*(L+1)+m)},color:{value:new GLE.Vector4(1,1,1,1)},bclip:{value:!1},clip1:{value:new GLE.Vector4(0,0,0,0)},clip2:{value:new GLE.Vector4(0,0,0,0)},clip3:{value:new GLE.Vector4(0,0,0,0)},clip4:{value:new GLE.Vector4(0,0,0,0)},clip5:{value:new GLE.Vector4(0,0,0,0)},clip6:{value:new GLE.Vector4(0,0,0,0)}};F=new GLE.ShaderMaterial({uniforms:F,vertexShader:" \r\n varying vec3 vid; \r\n attribute vec3 id; \r\n varying vec4 vcolor; \r\n attribute vec4 acolor; \r\n varying vec4 fcolor; \r\n attribute vec4 pcolor; \r\n varying vec3 vPosition; \r\n void main(){ \r\n vid \x3d id; \r\n vcolor \x3d acolor; \r\n fcolor \x3d pcolor; \r\n vPosition \x3d position; \r\n vec4 mvPosition \x3d modelViewMatrix * vec4( position, 1.0 ); \r\n gl_Position \x3d projectionMatrix * mvPosition;}",fragmentShader:" \r\n uniform int bid; \r\n uniform int mc; \r\n uniform vec4 color; \r\n uniform bool bclip; \r\n uniform vec4 clip1; \r\n uniform vec4 clip2; \r\n uniform vec4 clip3; \r\n uniform vec4 clip4; \r\n uniform vec4 clip5; \r\n uniform vec4 clip6; \r\n varying vec3 vid; \r\n varying vec4 vcolor; \r\n varying vec4 fcolor; \r\n varying vec3 vPosition; \r\n void main(void){ \r\n if(bclip) \r\n { \r\n if (length(clip1) \x3e 0.001) \r\n { \r\n vec4 c1 \x3d clip1; \r\n vec3 x \x3d vPosition; \r\n float distance1 \x3d (dot(c1.xyz, x) + c1.w) / length(c1.xyz); \r\n if (distance1 \x3c 0.0) \r\n { \r\n discard; \r\n } \r\n } \r\n if (length(clip2) \x3e 0.001) \r\n { \r\n vec4 c1 \x3d clip2; \r\n vec3 x \x3d vPosition; \r\n float distance1 \x3d (dot(c1.xyz, x) + c1.w) / length(c1.xyz); \r\n if (distance1 \x3c 0.0) \r\n { \r\n discard; \r\n } \r\n } \r\n if (length(clip3) \x3e 0.001) \r\n { \r\n vec4 c1 \x3d clip3; \r\n vec3 x \x3d vPosition; \r\n float distance1 \x3d (dot(c1.xyz, x) + c1.w) / length(c1.xyz); \r\n if (distance1 \x3c 0.0) \r\n { \r\n discard; \r\n } \r\n } \r\n if (length(clip4) \x3e 0.001) \r\n { \r\n vec4 c1 \x3d clip4; \r\n vec3 x \x3d vPosition; \r\n float distance1 \x3d (dot(c1.xyz, x) + c1.w) / length(c1.xyz); \r\n if (distance1 \x3c 0.0) \r\n { \r\n discard; \r\n } \r\n } \r\n if (length(clip5) \x3e 0.001) \r\n { \r\n vec4 c1 \x3d clip5; \r\n vec3 x \x3d vPosition; \r\n float distance1 \x3d (dot(c1.xyz, x) + c1.w) / length(c1.xyz); \r\n if (distance1 \x3c 0.0) \r\n { \r\n discard; \r\n } \r\n } \r\n if (length(clip6) \x3e 0.001) \r\n { \r\n vec4 c1 \x3d clip6; \r\n vec3 x \x3d vPosition; \r\n float distance1 \x3d (dot(c1.xyz, x) + c1.w) / length(c1.xyz); \r\n if (distance1 \x3c 0.0) \r\n { \r\n discard; \r\n } \r\n } \r\n } \r\n if(bid \x3d\x3d 0){ \r\n if(vcolor.r\x3c254.99 || vcolor.g\x3c254.99 || vcolor.b\x3c254.99){ \r\n gl_FragColor \x3d vec4(vcolor.r / 255.0, vcolor.g / 255.0, vcolor.b / 255.0, vcolor.a / 255.0); \r\n }else if(vcolor.a\x3c254.99){ \r\n gl_FragColor \x3d vec4(fcolor.r / 255.0, fcolor.g / 255.0, fcolor.b / 255.0, fcolor.a / 255.0)*vec4(1.0,1.0,1.0,vcolor.a/255.0); \r\n } \r\n else \r\n { \r\n gl_FragColor \x3dvec4(fcolor.r / 255.0, fcolor.g / 255.0,fcolor.b / 255.0, fcolor.a / 255.0) * color; \r\n } \r\n } \r\n else if (bid \x3d\x3d 1) \r\n {\r\n int r \x3d mc / 65536;\r\n int g \x3d (mc - r * 65536) / 256;\r\n int b \x3d mc - r * 65536 - g * 256;\r\n gl_FragColor \x3d vec4(float(r) / 255.0, float(g) / 255.0, float(b) / 255.0, 1.0);\r\n }\r\n else {\r\n gl_FragColor \x3d vec4(vid.r / 255.0, vid.g / 255.0, vid.b / 255.0, 1.0);\r\n }\r\n }",side:GLE.DoubleSide,transparent:!0});v=new GLE.BufferGeometry;v.addAttribute("position",(new GLE.Float32BufferAttribute(b,3)).onUpload(disposeArray1));v.addAttribute("id",(new GLE.Uint8BufferAttribute(W,3)).onUpload(disposeArray));v.addAttribute("acolor",(new GLE.Uint8BufferAttribute(aa,4)).onUpload(disposeArray1));v.addAttribute("pcolor",(new GLE.Uint8BufferAttribute(u,4)).onUpload(disposeArray1));new GLE.PointsMaterial({color:16711680});u={color:{value:new GLE.Vector4(.5,0,.5,.5)}};new GLE.ShaderMaterial({uniforms:u,vertexShader:" \r\n void main(){ \r\n vec3 position1 \x3d vec3(position.x,position.y,position.z); \r\n vec4 mvPosition \x3d modelViewMatrix * vec4( position1, 1.0 ); \r\n gl_Position \x3d projectionMatrix * mvPosition;}",fragmentShader:" \r\n uniform vec4 color; \r\n void main(void){ \r\n gl_FragColor \x3d color; \r\n }",side:GLE.FrontSide});u=new GLE.Mesh(v,F);u.name=h+"_"+f;u.frustumCulled=!1;u.castShadow=!1;G_34.add(u);W=new Float32Array(3*w.length);for(F=0;F<w.length;F++)W[3*F]=b[3*w[F]],W[3*F+1]=b[3*w[F]+1],W[3*F+2]=b[3*w[F]+2];w=new GLE.BufferGeometry;w.addAttribute("position",(new GLE.Float32BufferAttribute(W,3)).onUpload(disposeArray1));w=new GLE.LineSegments(w,l);w.name="edge";w.material.depthTest=!0;w.material.depthWrite=!0;w.renderOrder=100;w.frustumCulled=!1;u.add(w);w=(new GLE.Box3).st(u);.01>Math.abs(G_53.min.x)&&.01>Math.abs(G_53.min.y)&&.01>Math.abs(G_53.min.z)&&.01>Math.abs(G_53.max.x)&&.01>Math.abs(G_53.max.y)&&.01>Math.abs(G_53.max.z)&&(G_53=w);w.min.x<G_53.min.x&&(G_53.min.x=w.min.x);w.min.y<G_53.min.y&&(G_53.min.y=w.min.y);w.min.z<G_53.min.z&&(G_53.min.z=w.min.z);w.max.x>G_53.max.x&&(G_53.max.x=w.max.x);w.max.y>G_53.max.y&&(G_53.max.y=w.max.y);w.max.z>G_53.max.z&&(G_53.max.z=w.max.z);GLE_LoadNum--;if(1==m||0==m%20)GLE_bNeedCamera&&ZoomFitAll(),G_4.render(G_3,G_2),VerifyEngine(),1==m&&UpdateOrder();0==GLE_LoadNum?(OnLoadModelProcess(1-GLE_LoadNum/a.length),GetBBox(),GLE_bNeedCamera&&ZoomFitAll(),VerifyEngine(),G_7=!0,OnLoadModelEnd(h)):(G_22&&(w=new GLE.Box3Helper(G_53,16711680),G_34.add(w)),m++,OnLoadModelProcess(1-GLE_LoadNum/a.length),LoadId2(a,G_13+"ids/"+a[m].model+".glb",h,l,m))})})})})})})}function LoadId5(a,b,d,e,f,h,l,m){b.file(f+".pos").async("arraybuffer").then(function(r){b.file(f+".mati").async("arraybuffer").then(function(q){b.file(f+".color").async("arraybuffer").then(function(x){b.file(f+".id").async("arraybuffer").then(function(G){b.file(f+".normal").async("arraybuffer").then(function(B){b.file(f+".tex").async("arraybuffer").then(function(w){b.file(f+".tpos").async("arraybuffer").then(function(v){b.file(f+".tnum").async("arraybuffer").then(function(b){var k=new Uint32Array(r),p=new Uint32Array(q),E=new Uint8Array(x),C=new Uint32Array(G),W=new Uint8Array(B),aa=new Uint8Array(E.length/4*3),F=new Uint8Array(E.length),L=new Float32Array(3*k.length),A=new Float32Array(w),H=new Uint32Array(v),D=new Uint16Array(b);b=new Uint8Array(2*D.length);for(var M=0;M<D.length;M++)b[2*M]=D[M],b[2*M+1]=D[M];D=new Float32Array(2*H.length);for(M=0;M<H.length;M++){var N=H[M];D[2*M+0]=A[2*N+0];D[2*M+1]=1-A[2*N+1]}for(M=0;M<F.length;M++)F[M]=255;A=-1;for(M=0;M<G_10.length;M++)if(h==G_10[M]){A=M;break}G_8[A][m].ids=C;parseInt(65536*(A+1)+m);H=[];for(M=0;M<C.length/3;M++){var N=parseInt(M/256),V=M-256*N;H.push(C[3*M]);H.push(0);for(j=C[3*M+1];j<C[3*M+2];j++)aa[3*j]=255,aa[3*j+1]=N,aa[3*j+2]=V}G_8[A][m].vstate=H;for(M=0;M<k.length;M++)C=k[M],C=[d[3*C+0],d[3*C+1],d[3*C+2]],H=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],N=p[M],0<e.length&&16*N<e.length&&(H[0]=e[16*N+0],H[1]=e[16*N+1],H[2]=e[16*N+2],H[3]=e[16*N+3],H[4]=e[16*N+4],H[5]=e[16*N+5],H[6]=e[16*N+6],H[7]=e[16*N+7],H[8]=e[16*N+8],H[9]=e[16*N+9],H[10]=e[16*N+10],H[11]=e[16*N+11],H[12]=e[16*N+12],H[13]=e[16*N+13],H[14]=e[16*N+14],H[15]=e[16*N+15]),C=transformMat4(C,C,H),L[3*M+0]=C[0]*GLE_Unit,L[3*M+1]=C[1]*GLE_Unit,L[3*M+2]=C[2]*GLE_Unit,isNaN(C[0])&&(L[3*M+0]=0,L[3*M+1]=0,L[3*M+2]=0);k=new GLE.TextureLoader;p={bid:{value:0},mc:{value:parseInt(65536*(A+1)+m)},color:{value:new GLE.Vector4(1,1,1,1)},bclip:{value:!1},clip1:{value:new GLE.Vector4(0,0,0,0)},clip2:{value:new GLE.Vector4(0,0,0,0)},clip3:{value:new GLE.Vector4(0,0,0,0)},clip4:{value:new GLE.Vector4(0,0,0,0)},clip5:{value:new GLE.Vector4(0,0,0,0)},clip6:{value:new GLE.Vector4(0,0,0,0)}};C="";if(G_8[A][m].textures&&1<G_8[A][m].textures.length)for(G_8[A][m].textures.splice(0,1),M=0;M<G_8[A][m].textures.length;M++)0==M?(p.texture0={value:null},p.texture0.value=k.load(G_13+G_8[A][m].textures[M]),C+="uniform sampler2D texture0;",p.texture0.value.wrapS=p.texture0.value.wrapT=GLE.RepeatWrapping):1==M?(p.texture1={value:null},p.texture1.value=k.load(G_13+G_8[A][m].textures[M]),C+="uniform sampler2D texture1;",p.texture1.value.wrapS=p.texture1.value.wrapT=GLE.RepeatWrapping):2==M?(p.texture2={value:null},p.texture2.value=k.load(G_13+G_8[A][m].textures[M]),C+="uniform sampler2D texture2;",p.texture2.value.wrapS=p.texture2.value.wrapT=GLE.RepeatWrapping):3==M?(p.texture3={value:null},p.texture3.value=k.load(G_13+G_8[A][m].textures[M]),C+="uniform sampler2D texture3;",p.texture3.value.wrapS=p.texture3.value.wrapT=GLE.RepeatWrapping):4==M?(p.texture4={value:null},p.texture4.value=k.load(G_13+G_8[A][m].textures[M]),C+="uniform sampler2D texture4;",p.texture4.value.wrapS=p.texture4.value.wrapT=GLE.RepeatWrapping):5==M?(p.texture5={value:null},p.texture5.value=k.load(G_13+G_8[A][m].textures[M]),C+="uniform sampler2D texture5;",p.texture5.value.wrapS=p.texture5.value.wrapT=GLE.RepeatWrapping):6==M?(p.texture6={value:null},p.texture6.value=k.load(G_13+G_8[A][m].textures[M]),C+="uniform sampler2D texture6;",p.texture6.value.wrapS=p.texture6.value.wrapT=GLE.RepeatWrapping):7==M?(p.texture7={value:null},p.texture7.value=k.load(G_13+G_8[A][m].textures[M]),C+="uniform sampler2D texture7;",p.texture7.value.wrapS=p.texture7.value.wrapT=GLE.RepeatWrapping):8==M?(p.texture8={value:null},p.texture8.value=k.load(G_13+G_8[A][m].textures[M]),C+="uniform sampler2D texture8;",p.texture8.value.wrapS=p.texture8.value.wrapT=GLE.RepeatWrapping):9==M?(p.texture9={value:null},p.texture9.value=k.load(G_13+G_8[A][m].textures[M]),C+="uniform sampler2D texture9;",p.texture9.value.wrapS=p.texture9.value.wrapT=GLE.RepeatWrapping):10==M?(p.texture10={value:null},p.texture10.value=k.load(G_13+G_8[A][m].textures[M]),C+="uniform sampler2D texture10;",p.texture10.value.wrapS=p.texture10.value.wrapT=GLE.RepeatWrapping):11==M?(p.texture11={value:null},p.texture11.value=k.load(G_13+G_8[A][m].textures[M]),C+="uniform sampler2D texture11;",p.texture11.value.wrapS=p.texture11.value.wrapT=GLE.RepeatWrapping):12==M?(p.texture12={value:null},p.texture12.value=k.load(G_13+G_8[A][m].textures[M]),C+="uniform sampler2D texture12;",p.texture12.value.wrapS=p.texture12.value.wrapT=GLE.RepeatWrapping):13==M?(p.texture13={value:null},p.texture13.value=k.load(G_13+G_8[A][m].textures[M]),C+="uniform sampler2D texture13;",p.texture13.value.wrapS=p.texture13.value.wrapT=GLE.RepeatWrapping):14==M?(p.texture14={value:null},p.texture14.value=k.load(G_13+G_8[A][m].textures[M]),C+="uniform sampler2D texture14;",p.texture14.value.wrapS=p.texture14.value.wrapT=GLE.RepeatWrapping):15==M&&(p.texture15={value:null},p.texture15.value=k.load(G_13+G_8[A][m].textures[M]),C+="uniform sampler2D texture15;",p.texture15.value.wrapS=p.texture15.value.wrapT=GLE.RepeatWrapping);C+="varying vec2 vUv; \r\n varying vec2 tnum; \r\n uniform int bid; \r\n uniform int mc; \r\n uniform vec4 color; \r\n uniform bool bclip; \r\n uniform vec4 clip1; \r\n uniform vec4 clip2; \r\n uniform vec4 clip3; \r\n uniform vec4 clip4; \r\n uniform vec4 clip5; \r\n uniform vec4 clip6; \r\n varying vec3 vid; \r\n varying vec4 vcolor; \r\n varying vec4 fcolor; \r\n varying vec3 vPosition; \r\n varying vec3 vNormal; \r\n void main(void){ \r\n if(bclip) \r\n { \r\n if (length(clip1) \x3e 0.001) \r\n { \r\n vec4 c1 \x3d clip1; \r\n vec3 x \x3d vPosition; \r\n float distance1 \x3d (dot(c1.xyz, x) + c1.w) / length(c1.xyz); \r\n if (distance1 \x3c 0.0) \r\n { \r\n discard; \r\n } \r\n } \r\n if (length(clip2) \x3e 0.001) \r\n { \r\n vec4 c1 \x3d clip2; \r\n vec3 x \x3d vPosition; \r\n float distance1 \x3d (dot(c1.xyz, x) + c1.w) / length(c1.xyz); \r\n if (distance1 \x3c 0.0) \r\n { \r\n discard; \r\n } \r\n } \r\n if (length(clip3) \x3e 0.001) \r\n { \r\n vec4 c1 \x3d clip3; \r\n vec3 x \x3d vPosition; \r\n float distance1 \x3d (dot(c1.xyz, x) + c1.w) / length(c1.xyz); \r\n if (distance1 \x3c 0.0) \r\n { \r\n discard; \r\n } \r\n } \r\n if (length(clip4) \x3e 0.001) \r\n { \r\n vec4 c1 \x3d clip4; \r\n vec3 x \x3d vPosition; \r\n float distance1 \x3d (dot(c1.xyz, x) + c1.w) / length(c1.xyz); \r\n if (distance1 \x3c 0.0) \r\n { \r\n discard; \r\n } \r\n } \r\n if (length(clip5) \x3e 0.001) \r\n { \r\n vec4 c1 \x3d clip5; \r\n vec3 x \x3d vPosition; \r\n float distance1 \x3d (dot(c1.xyz, x) + c1.w) / length(c1.xyz); \r\n if (distance1 \x3c 0.0) \r\n { \r\n discard; \r\n } \r\n } \r\n if (length(clip6) \x3e 0.001) \r\n { \r\n vec4 c1 \x3d clip6; \r\n vec3 x \x3d vPosition; \r\n float distance1 \x3d (dot(c1.xyz, x) + c1.w) / length(c1.xyz); \r\n if (distance1 \x3c 0.0) \r\n { \r\n discard; \r\n } \r\n } \r\n } \r\n if(bid \x3d\x3d 0){ \r\n vec3 lightADirection \x3d normalize(vec3(0,10000,10000)); \r\n float lightWeightA \x3d max(dot(vNormal/vec3(255.0,255.0,255.0), lightADirection) * 0.4, 0.0); \r\n vec3 lightBDirection \x3d normalize(vec3(0,-10000,10000)); \r\n float lightWeightB \x3d max(dot(vNormal/vec3(255.0,255.0,255.0), lightBDirection) * 0.4, 0.0); \r\n float lightWeighting \x3d lightWeightA + lightWeightB + 0.7; \r\n if(vcolor.r\x3c254.99 || vcolor.g\x3c254.99 || vcolor.b\x3c254.99){ \r\n gl_FragColor \x3d vec4(lightWeighting*vcolor.r / 255.0, lightWeighting*vcolor.g / 255.0, lightWeighting*vcolor.b / 255.0, vcolor.a / 255.0); \r\n }else if(vcolor.a\x3c254.99){ \r\n gl_FragColor \x3d vec4(fcolor.r / 255.0, fcolor.g / 255.0, fcolor.b / 255.0, fcolor.a / 255.0)*vec4(lightWeighting,lightWeighting,lightWeighting,vcolor.a/255.0); \r\n } \r\n else \r\n { \r\n float tvalue \x3d float(tnum.x); \r\n if(tvalue \x3c 0.01){ \r\n gl_FragColor \x3dvec4(lightWeighting*fcolor.r / 255.0, lightWeighting*fcolor.g / 255.0,lightWeighting*fcolor.b / 255.0, fcolor.a / 255.0) * color; \r\n }";G_8[A][m].textures&&0<G_8[A][m].textures.length&&G_8[A][m].textures[0]&&0<G_8[A][m].textures[0].length&&(1==G_8[A][m].textures.length&&(C+="else if(tvalue \x3e 0.99 \x26\x26 tvalue \x3c 1.01){ \r\n gl_FragColor \x3d texture2D(texture0, vUv); \r\n }"),2==G_8[A][m].textures.length&&(C+="else if(tvalue \x3e 0.99 \x26\x26 tvalue \x3c 1.01){ \r\n gl_FragColor \x3d texture2D(texture0, vUv); \r\n } \r\n else if(tvalue \x3e 1.99 \x26\x26 tvalue \x3c 2.01){ \r\n gl_FragColor \x3d texture2D(texture1, vUv); \r\n }"),3==G_8[A][m].textures.length&&(C+="else if(tvalue \x3e 0.99 \x26\x26 tvalue \x3c 1.01){ \r\n gl_FragColor \x3d texture2D(texture0, vUv); \r\n } \r\n else if(tvalue \x3e 1.99 \x26\x26 tvalue \x3c 2.01){ \r\n gl_FragColor \x3d texture2D(texture1, vUv); \r\n } \r\n else if(tvalue \x3e 2.99 \x26\x26 tvalue \x3c 3.01){ \r\n gl_FragColor \x3d texture2D(texture2, vUv); \r\n } \r\n "),4==G_8[A][m].textures.length&&(C+="else if(tvalue \x3e 0.99 \x26\x26 tvalue \x3c 1.01){ \r\n gl_FragColor \x3d texture2D(texture0, vUv); \r\n } \r\n else if(tvalue \x3e 1.99 \x26\x26 tvalue \x3c 2.01){ \r\n gl_FragColor \x3d texture2D(texture1, vUv); \r\n } \r\n else if(tvalue \x3e 2.99 \x26\x26 tvalue \x3c 3.01){ \r\n gl_FragColor \x3d texture2D(texture2, vUv); \r\n } \r\n else if(tvalue \x3e 3.99 \x26\x26 tvalue \x3c 4.01){ \r\n gl_FragColor \x3d texture2D(texture3, vUv); \r\n } \r\n "),5==G_8[A][m].textures.length&&(C+="else if(tvalue \x3e 0.99 \x26\x26 tvalue \x3c 1.01){ \r\n gl_FragColor \x3d texture2D(texture0, vUv); \r\n } \r\n else if(tvalue \x3e 1.99 \x26\x26 tvalue \x3c 2.01){ \r\n gl_FragColor \x3d texture2D(texture1, vUv); \r\n } \r\n else if(tvalue \x3e 2.99 \x26\x26 tvalue \x3c 3.01){ \r\n gl_FragColor \x3d texture2D(texture2, vUv); \r\n } \r\n else if(tvalue \x3e 3.99 \x26\x26 tvalue \x3c 4.01){ \r\n gl_FragColor \x3d texture2D(texture3, vUv); \r\n } \r\n else if(tvalue \x3e 4.99 \x26\x26 tvalue \x3c 5.01){ \r\n gl_FragColor \x3d texture2D(texture4, vUv); \r\n } \r\n "),6==G_8[A][m].textures.length&&(C+="else if(tvalue \x3e 0.99 \x26\x26 tvalue \x3c 1.01){ \r\n gl_FragColor \x3d texture2D(texture0, vUv); \r\n } \r\n else if(tvalue \x3e 1.99 \x26\x26 tvalue \x3c 2.01){ \r\n gl_FragColor \x3d texture2D(texture1, vUv); \r\n } \r\n else if(tvalue \x3e 2.99 \x26\x26 tvalue \x3c 3.01){ \r\n gl_FragColor \x3d texture2D(texture2, vUv); \r\n } \r\n else if(tvalue \x3e 3.99 \x26\x26 tvalue \x3c 4.01){ \r\n gl_FragColor \x3d texture2D(texture3, vUv); \r\n } \r\n else if(tvalue \x3e 4.99 \x26\x26 tvalue \x3c 5.01){ \r\n gl_FragColor \x3d texture2D(texture4, vUv); \r\n } \r\n else if(tvalue \x3e 5.99 \x26\x26 tvalue \x3c 6.01){ \r\n gl_FragColor \x3d texture2D(texture5, vUv); \r\n } \r\n "),7==G_8[A][m].textures.length&&(C+="else if(tvalue \x3e 0.99 \x26\x26 tvalue \x3c 1.01){ \r\n gl_FragColor \x3d texture2D(texture0, vUv); \r\n } \r\n else if(tvalue \x3e 1.99 \x26\x26 tvalue \x3c 2.01){ \r\n gl_FragColor \x3d texture2D(texture1, vUv); \r\n } \r\n else if(tvalue \x3e 2.99 \x26\x26 tvalue \x3c 3.01){ \r\n gl_FragColor \x3d texture2D(texture2, vUv); \r\n } \r\n else if(tvalue \x3e 3.99 \x26\x26 tvalue \x3c 4.01){ \r\n gl_FragColor \x3d texture2D(texture3, vUv); \r\n } \r\n else if(tvalue \x3e 4.99 \x26\x26 tvalue \x3c 5.01){ \r\n gl_FragColor \x3d texture2D(texture4, vUv); \r\n } \r\n else if(tvalue \x3e 5.99 \x26\x26 tvalue \x3c 6.01){ \r\n gl_FragColor \x3d texture2D(texture5, vUv); \r\n } \r\n else if(tvalue \x3e 6.99 \x26\x26 tvalue \x3c 7.01){ \r\n gl_FragColor \x3d texture2D(texture6, vUv); \r\n } \r\n "),8==G_8[A][m].textures.length&&(C+="else if(tvalue \x3e 0.99 \x26\x26 tvalue \x3c 1.01){ \r\n gl_FragColor \x3d texture2D(texture0, vUv); \r\n } \r\n else if(tvalue \x3e 1.99 \x26\x26 tvalue \x3c 2.01){ \r\n gl_FragColor \x3d texture2D(texture1, vUv); \r\n } \r\n else if(tvalue \x3e 2.99 \x26\x26 tvalue \x3c 3.01){ \r\n gl_FragColor \x3d texture2D(texture2, vUv); \r\n } \r\n else if(tvalue \x3e 3.99 \x26\x26 tvalue \x3c 4.01){ \r\n gl_FragColor \x3d texture2D(texture3, vUv); \r\n } \r\n else if(tvalue \x3e 4.99 \x26\x26 tvalue \x3c 5.01){ \r\n gl_FragColor \x3d texture2D(texture4, vUv); \r\n } \r\n else if(tvalue \x3e 5.99 \x26\x26 tvalue \x3c 6.01){ \r\n gl_FragColor \x3d texture2D(texture5, vUv); \r\n } \r\n else if(tvalue \x3e 6.99 \x26\x26 tvalue \x3c 7.01){ \r\n gl_FragColor \x3d texture2D(texture6, vUv); \r\n } \r\n else if(tvalue \x3e 7.99 \x26\x26 tvalue \x3c 8.01){ \r\n gl_FragColor \x3d texture2D(texture7, vUv); \r\n } \r\n "),9==G_8[A][m].textures.length&&(C+="else if(tvalue \x3e 0.99 \x26\x26 tvalue \x3c 1.01){ \r\n gl_FragColor \x3d texture2D(texture0, vUv); \r\n } \r\n else if(tvalue \x3e 1.99 \x26\x26 tvalue \x3c 2.01){ \r\n gl_FragColor \x3d texture2D(texture1, vUv); \r\n } \r\n else if(tvalue \x3e 2.99 \x26\x26 tvalue \x3c 3.01){ \r\n gl_FragColor \x3d texture2D(texture2, vUv); \r\n } \r\n else if(tvalue \x3e 3.99 \x26\x26 tvalue \x3c 4.01){ \r\n gl_FragColor \x3d texture2D(texture3, vUv); \r\n } \r\n else if(tvalue \x3e 4.99 \x26\x26 tvalue \x3c 5.01){ \r\n gl_FragColor \x3d texture2D(texture4, vUv); \r\n } \r\n else if(tvalue \x3e 5.99 \x26\x26 tvalue \x3c 6.01){ \r\n gl_FragColor \x3d texture2D(texture5, vUv); \r\n } \r\n else if(tvalue \x3e 6.99 \x26\x26 tvalue \x3c 7.01){ \r\n gl_FragColor \x3d texture2D(texture6, vUv); \r\n } \r\n else if(tvalue \x3e 7.99 \x26\x26 tvalue \x3c 8.01){ \r\n gl_FragColor \x3d texture2D(texture7, vUv); \r\n } \r\n else if(tvalue \x3e 8.99 \x26\x26 tvalue \x3c 9.01){ \r\n gl_FragColor \x3d texture2D(texture8, vUv); \r\n } \r\n "),10==G_8[A][m].textures.length&&(C+="else if(tvalue \x3e 0.99 \x26\x26 tvalue \x3c 1.01){ \r\n gl_FragColor \x3d texture2D(texture0, vUv); \r\n } \r\n else if(tvalue \x3e 1.99 \x26\x26 tvalue \x3c 2.01){ \r\n gl_FragColor \x3d texture2D(texture1, vUv); \r\n } \r\n else if(tvalue \x3e 2.99 \x26\x26 tvalue \x3c 3.01){ \r\n gl_FragColor \x3d texture2D(texture2, vUv); \r\n } \r\n else if(tvalue \x3e 3.99 \x26\x26 tvalue \x3c 4.01){ \r\n gl_FragColor \x3d texture2D(texture3, vUv); \r\n } \r\n else if(tvalue \x3e 4.99 \x26\x26 tvalue \x3c 5.01){ \r\n gl_FragColor \x3d texture2D(texture4, vUv); \r\n } \r\n else if(tvalue \x3e 5.99 \x26\x26 tvalue \x3c 6.01){ \r\n gl_FragColor \x3d texture2D(texture5, vUv); \r\n } \r\n else if(tvalue \x3e 6.99 \x26\x26 tvalue \x3c 7.01){ \r\n gl_FragColor \x3d texture2D(texture6, vUv); \r\n } \r\n else if(tvalue \x3e 7.99 \x26\x26 tvalue \x3c 8.01){ \r\n gl_FragColor \x3d texture2D(texture7, vUv); \r\n } \r\n else if(tvalue \x3e 8.99 \x26\x26 tvalue \x3c 9.01){ \r\n gl_FragColor \x3d texture2D(texture8, vUv); \r\n } \r\n else if(tvalue \x3e 9.99 \x26\x26 tvalue \x3c 10.01){ \r\n gl_FragColor \x3d texture2D(texture9, vUv); \r\n } \r\n "),11==G_8[A][m].textures.length&&(C+="else if(tvalue \x3e 0.99 \x26\x26 tvalue \x3c 1.01){ \r\n gl_FragColor \x3d texture2D(texture0, vUv); \r\n } \r\n else if(tvalue \x3e 1.99 \x26\x26 tvalue \x3c 2.01){ \r\n gl_FragColor \x3d texture2D(texture1, vUv); \r\n } \r\n else if(tvalue \x3e 2.99 \x26\x26 tvalue \x3c 3.01){ \r\n gl_FragColor \x3d texture2D(texture2, vUv); \r\n } \r\n else if(tvalue \x3e 3.99 \x26\x26 tvalue \x3c 4.01){ \r\n gl_FragColor \x3d texture2D(texture3, vUv); \r\n } \r\n else if(tvalue \x3e 4.99 \x26\x26 tvalue \x3c 5.01){ \r\n gl_FragColor \x3d texture2D(texture4, vUv); \r\n } \r\n else if(tvalue \x3e 5.99 \x26\x26 tvalue \x3c 6.01){ \r\n gl_FragColor \x3d texture2D(texture5, vUv); \r\n } \r\n else if(tvalue \x3e 6.99 \x26\x26 tvalue \x3c 7.01){ \r\n gl_FragColor \x3d texture2D(texture6, vUv); \r\n } \r\n else if(tvalue \x3e 7.99 \x26\x26 tvalue \x3c 8.01){ \r\n gl_FragColor \x3d texture2D(texture7, vUv); \r\n } \r\n else if(tvalue \x3e 8.99 \x26\x26 tvalue \x3c 9.01){ \r\n gl_FragColor \x3d texture2D(texture8, vUv); \r\n } \r\n else if(tvalue \x3e 9.99 \x26\x26 tvalue \x3c 10.01){ \r\n gl_FragColor \x3d texture2D(texture9, vUv); \r\n } \r\n else if(tvalue \x3e 10.99 \x26\x26 tvalue \x3c 11.01){ \r\n gl_FragColor \x3d texture2D(texture10, vUv); \r\n } \r\n "),12==G_8[A][m].textures.length&&(C+="else if(tvalue \x3e 0.99 \x26\x26 tvalue \x3c 1.01){ \r\n gl_FragColor \x3d texture2D(texture0, vUv); \r\n } \r\n else if(tvalue \x3e 1.99 \x26\x26 tvalue \x3c 2.01){ \r\n gl_FragColor \x3d texture2D(texture1, vUv); \r\n } \r\n else if(tvalue \x3e 2.99 \x26\x26 tvalue \x3c 3.01){ \r\n gl_FragColor \x3d texture2D(texture2, vUv); \r\n } \r\n else if(tvalue \x3e 3.99 \x26\x26 tvalue \x3c 4.01){ \r\n gl_FragColor \x3d texture2D(texture3, vUv); \r\n } \r\n else if(tvalue \x3e 4.99 \x26\x26 tvalue \x3c 5.01){ \r\n gl_FragColor \x3d texture2D(texture4, vUv); \r\n } \r\n else if(tvalue \x3e 5.99 \x26\x26 tvalue \x3c 6.01){ \r\n gl_FragColor \x3d texture2D(texture5, vUv); \r\n } \r\n else if(tvalue \x3e 6.99 \x26\x26 tvalue \x3c 7.01){ \r\n gl_FragColor \x3d texture2D(texture6, vUv); \r\n } \r\n else if(tvalue \x3e 7.99 \x26\x26 tvalue \x3c 8.01){ \r\n gl_FragColor \x3d texture2D(texture7, vUv); \r\n } \r\n else if(tvalue \x3e 8.99 \x26\x26 tvalue \x3c 9.01){ \r\n gl_FragColor \x3d texture2D(texture8, vUv); \r\n } \r\n else if(tvalue \x3e 9.99 \x26\x26 tvalue \x3c 10.01){ \r\n gl_FragColor \x3d texture2D(texture9, vUv); \r\n } \r\n else if(tvalue \x3e 10.99 \x26\x26 tvalue \x3c 11.01){ \r\n gl_FragColor \x3d texture2D(texture10, vUv); \r\n } \r\n else if(tvalue \x3e 11.99 \x26\x26 tvalue \x3c 12.01){ \r\n gl_FragColor \x3d texture2D(texture11, vUv); \r\n } \r\n "),13==G_8[A][m].textures.length&&(C+="else if(tvalue \x3e 0.99 \x26\x26 tvalue \x3c 1.01){ \r\n gl_FragColor \x3d texture2D(texture0, vUv); \r\n } \r\n else if(tvalue \x3e 1.99 \x26\x26 tvalue \x3c 2.01){ \r\n gl_FragColor \x3d texture2D(texture1, vUv); \r\n } \r\n else if(tvalue \x3e 2.99 \x26\x26 tvalue \x3c 3.01){ \r\n gl_FragColor \x3d texture2D(texture2, vUv); \r\n } \r\n else if(tvalue \x3e 3.99 \x26\x26 tvalue \x3c 4.01){ \r\n gl_FragColor \x3d texture2D(texture3, vUv); \r\n } \r\n else if(tvalue \x3e 4.99 \x26\x26 tvalue \x3c 5.01){ \r\n gl_FragColor \x3d texture2D(texture4, vUv); \r\n } \r\n else if(tvalue \x3e 5.99 \x26\x26 tvalue \x3c 6.01){ \r\n gl_FragColor \x3d texture2D(texture5, vUv); \r\n } \r\n else if(tvalue \x3e 6.99 \x26\x26 tvalue \x3c 7.01){ \r\n gl_FragColor \x3d texture2D(texture6, vUv); \r\n } \r\n else if(tvalue \x3e 7.99 \x26\x26 tvalue \x3c 8.01){ \r\n gl_FragColor \x3d texture2D(texture7, vUv); \r\n } \r\n else if(tvalue \x3e 8.99 \x26\x26 tvalue \x3c 9.01){ \r\n gl_FragColor \x3d texture2D(texture8, vUv); \r\n } \r\n else if(tvalue \x3e 9.99 \x26\x26 tvalue \x3c 10.01){ \r\n gl_FragColor \x3d texture2D(texture9, vUv); \r\n } \r\n else if(tvalue \x3e 10.99 \x26\x26 tvalue \x3c 11.01){ \r\n gl_FragColor \x3d texture2D(texture10, vUv); \r\n } \r\n else if(tvalue \x3e 11.99 \x26\x26 tvalue \x3c 12.01){ \r\n gl_FragColor \x3d texture2D(texture11, vUv); \r\n } \r\n else if(tvalue \x3e 12.99 \x26\x26 tvalue \x3c 13.01){ \r\n gl_FragColor \x3d texture2D(texture12, vUv); \r\n } \r\n "),14==G_8[A][m].textures.length&&(C+="else if(tvalue \x3e 0.99 \x26\x26 tvalue \x3c 1.01){ \r\n gl_FragColor \x3d texture2D(texture0, vUv); \r\n } \r\n else if(tvalue \x3e 1.99 \x26\x26 tvalue \x3c 2.01){ \r\n gl_FragColor \x3d texture2D(texture1, vUv); \r\n } \r\n else if(tvalue \x3e 2.99 \x26\x26 tvalue \x3c 3.01){ \r\n gl_FragColor \x3d texture2D(texture2, vUv); \r\n } \r\n else if(tvalue \x3e 3.99 \x26\x26 tvalue \x3c 4.01){ \r\n gl_FragColor \x3d texture2D(texture3, vUv); \r\n } \r\n else if(tvalue \x3e 4.99 \x26\x26 tvalue \x3c 5.01){ \r\n gl_FragColor \x3d texture2D(texture4, vUv); \r\n } \r\n else if(tvalue \x3e 5.99 \x26\x26 tvalue \x3c 6.01){ \r\n gl_FragColor \x3d texture2D(texture5, vUv); \r\n } \r\n else if(tvalue \x3e 6.99 \x26\x26 tvalue \x3c 7.01){ \r\n gl_FragColor \x3d texture2D(texture6, vUv); \r\n } \r\n else if(tvalue \x3e 7.99 \x26\x26 tvalue \x3c 8.01){ \r\n gl_FragColor \x3d texture2D(texture7, vUv); \r\n } \r\n else if(tvalue \x3e 8.99 \x26\x26 tvalue \x3c 9.01){ \r\n gl_FragColor \x3d texture2D(texture8, vUv); \r\n } \r\n else if(tvalue \x3e 9.99 \x26\x26 tvalue \x3c 10.01){ \r\n gl_FragColor \x3d texture2D(texture9, vUv); \r\n } \r\n else if(tvalue \x3e 10.99 \x26\x26 tvalue \x3c 11.01){ \r\n gl_FragColor \x3d texture2D(texture10, vUv); \r\n } \r\n else if(tvalue \x3e 11.99 \x26\x26 tvalue \x3c 12.01){ \r\n gl_FragColor \x3d texture2D(texture11, vUv); \r\n } \r\n else if(tvalue \x3e 12.99 \x26\x26 tvalue \x3c 13.01){ \r\n gl_FragColor \x3d texture2D(texture12, vUv); \r\n } \r\n else if(tvalue \x3e 13.99 \x26\x26 tvalue \x3c 14.01){ \r\n gl_FragColor \x3d texture2D(texture13, vUv); \r\n } \r\n "),15==G_8[A][m].textures.length&&(C+="else if(tvalue \x3e 0.99 \x26\x26 tvalue \x3c 1.01){ \r\n gl_FragColor \x3d texture2D(texture0, vUv); \r\n } \r\n else if(tvalue \x3e 1.99 \x26\x26 tvalue \x3c 2.01){ \r\n gl_FragColor \x3d texture2D(texture1, vUv); \r\n } \r\n else if(tvalue \x3e 2.99 \x26\x26 tvalue \x3c 3.01){ \r\n gl_FragColor \x3d texture2D(texture2, vUv); \r\n } \r\n else if(tvalue \x3e 3.99 \x26\x26 tvalue \x3c 4.01){ \r\n gl_FragColor \x3d texture2D(texture3, vUv); \r\n } \r\n else if(tvalue \x3e 4.99 \x26\x26 tvalue \x3c 5.01){ \r\n gl_FragColor \x3d texture2D(texture4, vUv); \r\n } \r\n else if(tvalue \x3e 5.99 \x26\x26 tvalue \x3c 6.01){ \r\n gl_FragColor \x3d texture2D(texture5, vUv); \r\n } \r\n else if(tvalue \x3e 6.99 \x26\x26 tvalue \x3c 7.01){ \r\n gl_FragColor \x3d texture2D(texture6, vUv); \r\n } \r\n else if(tvalue \x3e 7.99 \x26\x26 tvalue \x3c 8.01){ \r\n gl_FragColor \x3d texture2D(texture7, vUv); \r\n } \r\n else if(tvalue \x3e 8.99 \x26\x26 tvalue \x3c 9.01){ \r\n gl_FragColor \x3d texture2D(texture8, vUv); \r\n } \r\n else if(tvalue \x3e 9.99 \x26\x26 tvalue \x3c 10.01){ \r\n gl_FragColor \x3d texture2D(texture9, vUv); \r\n } \r\n else if(tvalue \x3e 10.99 \x26\x26 tvalue \x3c 11.01){ \r\n gl_FragColor \x3d texture2D(texture10, vUv); \r\n } \r\n else if(tvalue \x3e 11.99 \x26\x26 tvalue \x3c 12.01){ \r\n gl_FragColor \x3d texture2D(texture11, vUv); \r\n } \r\n else if(tvalue \x3e 12.99 \x26\x26 tvalue \x3c 13.01){ \r\n gl_FragColor \x3d texture2D(texture12, vUv); \r\n } \r\n else if(tvalue \x3e 13.99 \x26\x26 tvalue \x3c 14.01){ \r\n gl_FragColor \x3d texture2D(texture13, vUv); \r\n } \r\n else if(tvalue \x3e 14.99 \x26\x26 tvalue \x3c 15.01){ \r\n gl_FragColor \x3d texture2D(texture14, vUv); \r\n } \r\n "),16==G_8[A][m].textures.length&&(C+="else if(tvalue \x3e 0.99 \x26\x26 tvalue \x3c 1.01){ \r\n gl_FragColor \x3d texture2D(texture0, vUv); \r\n } \r\n else if(tvalue \x3e 1.99 \x26\x26 tvalue \x3c 2.01){ \r\n gl_FragColor \x3d texture2D(texture1, vUv); \r\n } \r\n else if(tvalue \x3e 2.99 \x26\x26 tvalue \x3c 3.01){ \r\n gl_FragColor \x3d texture2D(texture2, vUv); \r\n } \r\n else if(tvalue \x3e 3.99 \x26\x26 tvalue \x3c 4.01){ \r\n gl_FragColor \x3d texture2D(texture3, vUv); \r\n } \r\n else if(tvalue \x3e 4.99 \x26\x26 tvalue \x3c 5.01){ \r\n gl_FragColor \x3d texture2D(texture4, vUv); \r\n } \r\n else if(tvalue \x3e 5.99 \x26\x26 tvalue \x3c 6.01){ \r\n gl_FragColor \x3d texture2D(texture5, vUv); \r\n } \r\n else if(tvalue \x3e 6.99 \x26\x26 tvalue \x3c 7.01){ \r\n gl_FragColor \x3d texture2D(texture6, vUv); \r\n } \r\n else if(tvalue \x3e 7.99 \x26\x26 tvalue \x3c 8.01){ \r\n gl_FragColor \x3d texture2D(texture7, vUv); \r\n } \r\n else if(tvalue \x3e 8.99 \x26\x26 tvalue \x3c 9.01){ \r\n gl_FragColor \x3d texture2D(texture8, vUv); \r\n } \r\n else if(tvalue \x3e 9.99 \x26\x26 tvalue \x3c 10.01){ \r\n gl_FragColor \x3d texture2D(texture9, vUv); \r\n } \r\n else if(tvalue \x3e 10.99 \x26\x26 tvalue \x3c 11.01){ \r\n gl_FragColor \x3d texture2D(texture10, vUv); \r\n } \r\n else if(tvalue \x3e 11.99 \x26\x26 tvalue \x3c 12.01){ \r\n gl_FragColor \x3d texture2D(texture11, vUv); \r\n } \r\n else if(tvalue \x3e 12.99 \x26\x26 tvalue \x3c 13.01){ \r\n gl_FragColor \x3d texture2D(texture12, vUv); \r\n } \r\n else if(tvalue \x3e 13.99 \x26\x26 tvalue \x3c 14.01){ \r\n gl_FragColor \x3d texture2D(texture13, vUv); \r\n } \r\n else if(tvalue \x3e 14.99 \x26\x26 tvalue \x3c 15.01){ \r\n gl_FragColor \x3d texture2D(texture14, vUv); \r\n } \r\n else if(tvalue \x3e 15.99 \x26\x26 tvalue \x3c 16.01){ \r\n gl_FragColor \x3d texture2D(texture15, vUv); \r\n } "));M=new GLE.ShaderMaterial({uniforms:p,vertexShader:" \r\n varying vec2 vUv; \r\n varying vec2 tnum; \r\n attribute vec2 num; \r\n varying vec3 vid; \r\n attribute vec3 id; \r\n varying vec4 vcolor; \r\n attribute vec4 acolor; \r\n varying vec4 fcolor; \r\n attribute vec4 pcolor; \r\n varying vec3 vPosition; \r\n varying vec3 vNormal; \r\n attribute vec3 anormal; \r\n void main(){ \r\n vUv \x3d uv; \r\n tnum \x3d num; \r\n vid \x3d id; \r\n vNormal \x3d anormal; \r\n vcolor \x3d acolor; \r\n fcolor \x3d pcolor; \r\n vPosition \x3d position; \r\n vec4 mvPosition \x3d projectionMatrix*modelViewMatrix * vec4( position, 1.0 ); \r\n gl_Position \x3d mvPosition;}",fragmentShader:C+"else { \r\n gl_FragColor \x3dvec4(lightWeighting*fcolor.r / 255.0, lightWeighting*fcolor.g / 255.0,lightWeighting*fcolor.b / 255.0, fcolor.a / 255.0) * color; \r\n } \r\n } \r\n } \r\n else if (bid \x3d\x3d 1) \r\n {\r\n int r \x3d mc / 65536;\r\n int g \x3d (mc - r * 65536) / 256;\r\n int b \x3d mc - r * 65536 - g * 256;\r\n gl_FragColor \x3d vec4(float(r) / 255.0, float(g) / 255.0, float(b) / 255.0, 1.0);\r\n }\r\n else {\r\n gl_FragColor \x3d vec4(vid.r / 255.0, vid.g / 255.0, vid.b / 255.0, 1.0);\r\n }\r\n }",side:GLE.DoubleSide,transparent:!0});k=new GLE.BufferGeometry;k.addAttribute("position",(new GLE.Float32BufferAttribute(L,3)).onUpload(disposeArray1));k.addAttribute("anormal",(new GLE.Uint8BufferAttribute(W,3)).onUpload(disposeArray));k.addAttribute("id",(new GLE.Uint8BufferAttribute(aa,3)).onUpload(disposeArray));k.addAttribute("acolor",(new GLE.Uint8BufferAttribute(F,4)).onUpload(disposeArray1));k.addAttribute("pcolor",(new GLE.Uint8BufferAttribute(E,4)).onUpload(disposeArray1));k.addAttribute("uv",(new GLE.Float32BufferAttribute(D,2)).onUpload(disposeArray));k.addAttribute("num",(new GLE.Uint8BufferAttribute(b,2)).onUpload(disposeArray));new GLE.PointsMaterial({color:16711680});E=new GLE.Mesh(k,M);E.name=h+"_"+f;E.frustumCulled=!1;E.castShadow=!0;G_34.add(E);E=(new GLE.Box3).st(E);.01>Math.abs(G_53.min.x)&&.01>Math.abs(G_53.min.y)&&.01>Math.abs(G_53.min.z)&&.01>Math.abs(G_53.max.x)&&.01>Math.abs(G_53.max.y)&&.01>Math.abs(G_53.max.z)&&(G_53=E);E.min.x<G_53.min.x&&(G_53.min.x=E.min.x);E.min.y<G_53.min.y&&(G_53.min.y=E.min.y);E.min.z<G_53.min.z&&(G_53.min.z=E.min.z);E.max.x>G_53.max.x&&(G_53.max.x=E.max.x);E.max.y>G_53.max.y&&(G_53.max.y=E.max.y);E.max.z>G_53.max.z&&(G_53.max.z=E.max.z);GLE_LoadNum--;if(1==m||0==m%20)GLE_bNeedCamera&&ZoomFitAll(),G_4.render(G_3,G_2),VerifyEngine(),1==m&&UpdateOrder();0==GLE_LoadNum?(OnLoadModelProcess(1-GLE_LoadNum/a.length),GetBBox(),GLE_bNeedCamera&&ZoomFitAll(),VerifyEngine(),G_7=!0,OnLoadModelEnd(h)):(G_22&&(E=new GLE.Box3Helper(G_53,16711680),G_34.add(E)),m++,OnLoadModelProcess(1-GLE_LoadNum/a.length),LoadId2(a,G_13+"ids/"+a[m].model+".glb",h,l,m))})})})})})})})})}function LoadId2(a,b,d,e,f){JSZipUtils.getBinaryContent(b,function(h,l){JSZip.loadAsync(l).then(function(h){var l=b.lastIndexOf("/"),m=b.lastIndexOf("."),x=b.substr(l+1,m-l-1);h.file(x+".ver").async("arraybuffer").then(function(b){if(h.file(x+".mat"))h.file(x+".mat").async("arraybuffer").then(function(l){var k=new Float32Array(b);l=new Float32Array(l);h.file(x+".normal")||(GLE_RenderMode=1);0==GLE_RenderMode?LoadId3(a,h,k,l,x,d,e,f):1==GLE_RenderMode?LoadId4(a,h,k,l,x,d,e,f):h.file(x+".tex")?LoadId5(a,h,k,l,x,d,e,f):(GLE_RenderMode=0,LoadId3(a,h,k,l,x,d,e,f))});else{var l=new Float32Array(b),m=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];h.file(x+".normal")||(GLE_RenderMode=1);0==GLE_RenderMode?LoadId3(a,h,l,m,x,d,e,f):1==GLE_RenderMode?LoadId4(a,h,l,m,x,d,e,f):h.file(x+".tex")?LoadId5(a,h,l,m,x,d,e,f):(GLE_RenderMode=0,LoadId3(a,h,l,m,x,d,e,f))}})})})}function LoadTest(a){JSZipUtils.getBinaryContent(a,function(b,d){JSZip.loadAsync(d).then(function(b){var d=a.lastIndexOf("/"),e=a.lastIndexOf("."),l=a.substr(d+1,e-d-1);b.file(l+".ver").async("arraybuffer").then(function(a){b.file(l+".mat").async("arraybuffer").then(function(d){b.file(l+".pos").async("arraybuffer").then(function(e){b.file(l+".mati").async("arraybuffer").then(function(f){b.file(l+".color").async("arraybuffer").then(function(h){b.file(l+".id").async("arraybuffer").then(function(m){b.file(l+".edge").async("arraybuffer").then(function(q){b.file(l+".edgei").async("arraybuffer").then(function(b){var l=new GLE.LineBasicMaterial({color:6710886}),r=new Float32Array(a),p=new Float32Array(d),v=new Uint32Array(e),w=new Uint32Array(f),x=new Uint8Array(h),B=new Uint32Array(m),G=new Uint32Array(q);new Uint32Array(b);var L=new Uint8Array(x.length/4*3),A=new Uint8Array(x.length);b=new Float32Array(3*v.length);UpdateOrder();for(var H=0;H<A.length;H++)A[H]=255;for(H=0;H<G_10.length&&tag!=G_10[H];H++);for(var D=[],H=0;H<B.length/3;H++){var M=parseInt(H/256),N=H-256*M;D.push(B[3*H]);D.push(0);for(j=B[3*H+1];j<B[3*H+2];j++)L[3*j]=255,L[3*j+1]=M,L[3*j+2]=N}for(H=0;H<v.length;H++)B=v[H],B=[r[3*B+0],r[3*B+1],r[3*B+2]],D=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],M=w[H],0<p.length&&16*M<p.length&&(D[0]=p[16*M+0],D[1]=p[16*M+1],D[2]=p[16*M+2],D[3]=p[16*M+3],D[4]=p[16*M+4],D[5]=p[16*M+5],D[6]=p[16*M+6],D[7]=p[16*M+7],D[8]=p[16*M+8],D[9]=p[16*M+9],D[10]=p[16*M+10],D[11]=p[16*M+11],D[12]=p[16*M+12],D[13]=p[16*M+13],D[14]=p[16*M+14],D[15]=p[16*M+15]),B=transformMat4(B,B,D),b[3*H+0]=B[0],b[3*H+1]=B[1],b[3*H+2]=B[2];new GLE.TextureLoader;H={bid:{value:0},mc:{value:65537},color:{value:new GLE.Vector4(1,1,1,1)},bclip:{value:!1},clip1:{value:new GLE.Vector4(0,0,0,0)},clip2:{value:new GLE.Vector4(0,0,0,0)},clip3:{value:new GLE.Vector4(0,0,0,0)},clip4:{value:new GLE.Vector4(0,0,0,0)},clip5:{value:new GLE.Vector4(0,0,0,0)},clip6:{value:new GLE.Vector4(0,0,0,0)}};H=new GLE.ShaderMaterial({uniforms:H,vertexShader:" \r\n varying lowp vec3 vid; \r\n attribute lowp vec3 id; \r\n varying lowp vec4 vcolor; \r\n attribute lowp vec4 acolor; \r\n varying lowp vec4 fcolor; \r\n attribute lowp vec4 pcolor; \r\n varying vec3 vPosition; \r\n void main(){ \r\n vid \x3d id; \r\n vcolor \x3d acolor; \r\n fcolor \x3d pcolor; \r\n vPosition \x3d position; \r\n vec4 mvPosition \x3d modelViewMatrix * vec4( position, 1.0 ); \r\n gl_Position \x3d projectionMatrix * mvPosition;}",fragmentShader:" \r\n uniform int bid; \r\n uniform int mc; \r\n uniform vec4 color; \r\n uniform bool bclip; \r\n uniform vec4 clip1; \r\n uniform vec4 clip2; \r\n uniform vec4 clip3; \r\n uniform vec4 clip4; \r\n uniform vec4 clip5; \r\n uniform vec4 clip6; \r\n varying lowp vec3 vid; \r\n varying lowp vec4 vcolor; \r\n varying lowp vec4 fcolor; \r\n varying vec3 vPosition; \r\n void main(void){ \r\n if(bid \x3d\x3d 0){ \r\n if(bclip) \r\n { \r\n if (length(clip1) \x3e 0.001) \r\n { \r\n vec4 c1 \x3d clip1; \r\n vec3 x \x3d vPosition; \r\n float distance1 \x3d (dot(c1.xyz, x) + c1.w) / length(c1.xyz); \r\n if (distance1 \x3c 0.0) \r\n { \r\n discard; \r\n } \r\n } \r\n if (length(clip2) \x3e 0.001) \r\n { \r\n vec4 c1 \x3d clip2; \r\n vec3 x \x3d vPosition; \r\n float distance1 \x3d (dot(c1.xyz, x) + c1.w) / length(c1.xyz); \r\n if (distance1 \x3c 0.0) \r\n { \r\n discard; \r\n } \r\n } \r\n if (length(clip3) \x3e 0.001) \r\n { \r\n vec4 c1 \x3d clip3; \r\n vec3 x \x3d vPosition; \r\n float distance1 \x3d (dot(c1.xyz, x) + c1.w) / length(c1.xyz); \r\n if (distance1 \x3c 0.0) \r\n { \r\n discard; \r\n } \r\n } \r\n if (length(clip4) \x3e 0.001) \r\n { \r\n vec4 c1 \x3d clip4; \r\n vec3 x \x3d vPosition; \r\n float distance1 \x3d (dot(c1.xyz, x) + c1.w) / length(c1.xyz); \r\n if (distance1 \x3c 0.0) \r\n { \r\n discard; \r\n } \r\n } \r\n if (length(clip5) \x3e 0.001) \r\n { \r\n vec4 c1 \x3d clip5; \r\n vec3 x \x3d vPosition; \r\n float distance1 \x3d (dot(c1.xyz, x) + c1.w) / length(c1.xyz); \r\n if (distance1 \x3c 0.0) \r\n { \r\n discard; \r\n } \r\n } \r\n if (length(clip6) \x3e 0.001) \r\n { \r\n vec4 c1 \x3d clip6; \r\n vec3 x \x3d vPosition; \r\n float distance1 \x3d (dot(c1.xyz, x) + c1.w) / length(c1.xyz); \r\n if (distance1 \x3c 0.0) \r\n { \r\n discard; \r\n } \r\n } \r\n } \r\n if(vcolor.r\x3c254.99 || vcolor.g\x3c254.99 || vcolor.b\x3c254.99){ \r\n gl_FragColor \x3d vec4(vcolor.r / 255.0, vcolor.g / 255.0, vcolor.b / 255.0, vcolor.a / 255.0); \r\n }else if(vcolor.a\x3c254.99){ \r\n gl_FragColor \x3d vec4(fcolor.r / 255.0, fcolor.g / 255.0, fcolor.b / 255.0, fcolor.a / 255.0)*vec4(1.0,1.0,1.0,vcolor.a/255.0); \r\n } \r\n else \r\n { \r\n gl_FragColor \x3dvec4(fcolor.r / 255.0, fcolor.g / 255.0, fcolor.b / 255.0, fcolor.a / 255.0) * color; \r\n } \r\n } \r\n else if (bid \x3d\x3d 1) \r\n {\r\n int r \x3d mc / 65536;\r\n int g \x3d (mc - r * 65536) / 256;\r\n int b \x3d mc - r * 65536 - g * 256;\r\n gl_FragColor \x3d vec4(float(r) / 255.0, float(g) / 255.0, float(b) / 255.0, 1.0);\r\n }\r\n else {\r\n gl_FragColor \x3d vec4(vid.r / 255.0, vid.g / 255.0, vid.b / 255.0, 1.0);\r\n }\r\n }",side:GLE.DoubleSide,transparent:!0});r=new GLE.BufferGeometry;r.addAttribute("position",(new GLE.Float32BufferAttribute(b,3)).onUpload(disposeArray1));r.addAttribute("id",(new GLE.Uint8BufferAttribute(L,3)).onUpload(disposeArray));r.addAttribute("acolor",(new GLE.Uint8BufferAttribute(A,4)).onUpload(disposeArray1));r.addAttribute("pcolor",(new GLE.Uint8BufferAttribute(x,4)).onUpload(disposeArray1));new GLE.Mal({color:16711680});new GLE.PointsMaterial({color:16711680});x=new GLE.Mesh(r,H);G_34.add(x);L=new Float32Array(3*G.length);for(H=0;H<G.length;H++)L[3*H]=b[3*G[H]],L[3*H+1]=b[3*G[H]+1],L[3*H+2]=b[3*G[H]+2];G={color:{value:new GLE.Vector4(.5,.5,.5,.5)}};new GLE.ShaderMaterial({uniforms:G,vertexShader:" \r\n void main(){ \r\n vec3 position1 \x3d vec3(position.x,position.y,position.z); \r\n vec4 mvPosition \x3d modelViewMatrix * vec4( position1, 1.0 ); \r\n gl_Position \x3d projectionMatrix * mvPosition;}",fragmentShader:" \r\n uniform vec4 color; \r\n void main(void){ \r\n gl_FragColor \x3d color; \r\n }",side:GLE.FrontSide});G=new GLE.BufferGeometry;G.addAttribute("position",(new GLE.Float32BufferAttribute(L,3)).onUpload(disposeArray1));l=new GLE.LineSegments(G,l);l.name="edge";x.add(l);l=(new GLE.Box3).st(x);.01>Math.abs(G_53.min.x)&&.01>Math.abs(G_53.min.y)&&.01>Math.abs(G_53.min.z)&&.01>Math.abs(G_53.max.x)&&.01>Math.abs(G_53.max.y)&&.01>Math.abs(G_53.max.z)&&(G_53=l);l.min.x<G_53.min.x&&(G_53.min.x=l.min.x);l.min.y<G_53.min.y&&(G_53.min.y=l.min.y);l.min.z<G_53.min.z&&(G_53.min.z=l.min.z);l.max.x>G_53.max.x&&(G_53.max.x=l.max.x);l.max.y>G_53.max.y&&(G_53.max.y=l.max.y);l.max.z>G_53.max.z&&(G_53.max.z=l.max.z);G_22&&(l=new GLE.Box3Helper(G_53,16711680),G_34.add(l));GetBBox();ZoomFitAll();VerifyEngine();G_7=!0;OnLoadModelEnd("test")})})})})})})})})})})}function LoadTest1(a){JSZipUtils.getBinaryContent(a,function(b,d){JSZip.loadAsync(d).then(function(b){var d=a.lastIndexOf("/"),e=a.lastIndexOf("."),l=a.substr(d+1,e-d-1);b.file(l+".ver").async("arraybuffer").then(function(a){b.file(l+".mat").async("arraybuffer").then(function(d){b.file(l+".pos").async("arraybuffer").then(function(e){b.file(l+".mati").async("arraybuffer").then(function(f){b.file(l+".color").async("arraybuffer").then(function(h){b.file(l+".edge").async("arraybuffer").then(function(b){new GLE.LineBasicMaterial({color:6710886});var l=new Float32Array(a),m=new Float32Array(d),k=new Uint32Array(e),q=new Uint32Array(f),p=new Uint8Array(h);b=new Uint32Array(b);for(var r=new Float32Array(3*k.length),x=0;x<k.length;x++){var B=k[x],B=[l[3*B+0],l[3*B+1],l[3*B+2]],G=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],F=q[x];0<m.length&&16*F<m.length&&(G[0]=m[16*F+0],G[1]=m[16*F+1],G[2]=m[16*F+2],G[3]=m[16*F+3],G[4]=m[16*F+4],G[5]=m[16*F+5],G[6]=m[16*F+6],G[7]=m[16*F+7],G[8]=m[16*F+8],G[9]=m[16*F+9],G[10]=m[16*F+10],G[11]=m[16*F+11],G[12]=m[16*F+12],G[13]=m[16*F+13],G[14]=m[16*F+14],G[15]=m[16*F+15]);B=transformMat4(B,B,G);r[3*x+0]=B[0];r[3*x+1]=B[1];r[3*x+2]=B[2]}new GLE.TextureLoader;x={bid:{value:0},mc:{value:65537},color:{value:new GLE.Vector4(1,1,1,1)},bclip:{value:!1},clip1:{value:new GLE.Vector4(0,0,0,0)},clip2:{value:new GLE.Vector4(0,0,0,0)},clip3:{value:new GLE.Vector4(0,0,0,0)},clip4:{value:new GLE.Vector4(0,0,0,0)},clip5:{value:new GLE.Vector4(0,0,0,0)},clip6:{value:new GLE.Vector4(0,0,0,0)}};x=new GLE.ShaderMaterial({uniforms:x,vertexShader:" \r\n varying lowp vec3 vid; \r\n attribute lowp vec3 id; \r\n varying lowp vec4 vcolor; \r\n attribute lowp vec4 acolor; \r\n varying lowp vec4 fcolor; \r\n attribute lowp vec4 pcolor; \r\n varying vec3 vPosition; \r\n void main(){ \r\n vid \x3d id; \r\n vcolor \x3d acolor; \r\n fcolor \x3d pcolor; \r\n vPosition \x3d position; \r\n vec4 mvPosition \x3d modelViewMatrix * vec4( position, 1.0 ); \r\n gl_Position \x3d projectionMatrix * mvPosition;}",fragmentShader:" \r\n uniform int bid; \r\n uniform int mc; \r\n uniform vec4 color; \r\n uniform bool bclip; \r\n uniform vec4 clip1; \r\n uniform vec4 clip2; \r\n uniform vec4 clip3; \r\n uniform vec4 clip4; \r\n uniform vec4 clip5; \r\n uniform vec4 clip6; \r\n varying lowp vec3 vid; \r\n varying lowp vec4 vcolor; \r\n varying lowp vec4 fcolor; \r\n varying vec3 vPosition; \r\n void main(void){ \r\n gl_FragColor \x3dvec4(fcolor.r / 255.0, fcolor.g / 255.0, fcolor.b / 255.0, fcolor.a / 255.0); \r\n return; \r\n if(bid \x3d\x3d 0){ \r\n if(bclip) \r\n { \r\n if (length(clip1) \x3e 0.001) \r\n { \r\n vec4 c1 \x3d clip1; \r\n vec3 x \x3d vPosition; \r\n float distance1 \x3d (dot(c1.xyz, x) + c1.w) / length(c1.xyz); \r\n if (distance1 \x3c 0.0) \r\n { \r\n discard; \r\n } \r\n } \r\n if (length(clip2) \x3e 0.001) \r\n { \r\n vec4 c1 \x3d clip2; \r\n vec3 x \x3d vPosition; \r\n float distance1 \x3d (dot(c1.xyz, x) + c1.w) / length(c1.xyz); \r\n if (distance1 \x3c 0.0) \r\n { \r\n discard; \r\n } \r\n } \r\n if (length(clip3) \x3e 0.001) \r\n { \r\n vec4 c1 \x3d clip3; \r\n vec3 x \x3d vPosition; \r\n float distance1 \x3d (dot(c1.xyz, x) + c1.w) / length(c1.xyz); \r\n if (distance1 \x3c 0.0) \r\n { \r\n discard; \r\n } \r\n } \r\n if (length(clip4) \x3e 0.001) \r\n { \r\n vec4 c1 \x3d clip4; \r\n vec3 x \x3d vPosition; \r\n float distance1 \x3d (dot(c1.xyz, x) + c1.w) / length(c1.xyz); \r\n if (distance1 \x3c 0.0) \r\n { \r\n discard; \r\n } \r\n } \r\n if (length(clip5) \x3e 0.001) \r\n { \r\n vec4 c1 \x3d clip5; \r\n vec3 x \x3d vPosition; \r\n float distance1 \x3d (dot(c1.xyz, x) + c1.w) / length(c1.xyz); \r\n if (distance1 \x3c 0.0) \r\n { \r\n discard; \r\n } \r\n } \r\n if (length(clip6) \x3e 0.001) \r\n { \r\n vec4 c1 \x3d clip6; \r\n vec3 x \x3d vPosition; \r\n float distance1 \x3d (dot(c1.xyz, x) + c1.w) / length(c1.xyz); \r\n if (distance1 \x3c 0.0) \r\n { \r\n discard; \r\n } \r\n } \r\n } \r\n if(vcolor.r\x3c254.99 || vcolor.g\x3c254.99 || vcolor.b\x3c254.99){ \r\n gl_FragColor \x3d vec4(vcolor.r / 255.0, vcolor.g / 255.0, vcolor.b / 255.0, vcolor.a / 255.0); \r\n }else if(vcolor.a\x3c254.99){ \r\n gl_FragColor \x3d vec4(fcolor.r / 255.0, fcolor.g / 255.0, fcolor.b / 255.0, fcolor.a / 255.0)*vec4(1.0,1.0,1.0,vcolor.a/255.0); \r\n } \r\n else \r\n { \r\n gl_FragColor \x3dvec4(fcolor.r / 255.0, fcolor.g / 255.0, fcolor.b / 255.0, fcolor.a / 255.0) * color; \r\n } \r\n } \r\n else if (bid \x3d\x3d 1) \r\n {\r\n int r \x3d mc / 65536;\r\n int g \x3d (mc - r * 65536) / 256;\r\n int b \x3d mc - r * 65536 - g * 256;\r\n gl_FragColor \x3d vec4(float(r) / 255.0, float(g) / 255.0, float(b) / 255.0, 1.0);\r\n }\r\n else {\r\n gl_FragColor \x3d vec4(vid.r / 255.0, vid.g / 255.0, vid.b / 255.0, 1.0);\r\n }\r\n }",side:GLE.DoubleSide,transparent:!0});l=new GLE.BufferGeometry;l.addAttribute("position",(new GLE.Float32BufferAttribute(r,3)).onUpload(disposeArray1));l.addAttribute("pcolor",(new GLE.Uint8BufferAttribute(p,4)).onUpload(disposeArray1));(new GLE.Mal({color:11184810})).side=GLE.DoubleSide;p=new GLE.Mesh(l,x);G_34.add(p);for(var l=new Float32Array(3*b.length),x=0;x<b.length;x++)l[3*x]=r[3*b[x]],l[3*x+1]=r[3*b[x]+1],l[3*x+2]=r[3*b[x]+2];b=new GLE.LineBasicMaterial({color:6710886});r=new GLE.BufferGeometry;r.addAttribute("position",(new GLE.Float32BufferAttribute(l,3)).onUpload(disposeArray1));b=new GLE.LineSegments(r,b);b.name="edge";p.add(b);b=(new GLE.Box3).st(p);.01>Math.abs(G_53.min.x)&&.01>Math.abs(G_53.min.y)&&.01>Math.abs(G_53.min.z)&&.01>Math.abs(G_53.max.x)&&.01>Math.abs(G_53.max.y)&&.01>Math.abs(G_53.max.z)&&(G_53=b);b.min.x<G_53.min.x&&(G_53.min.x=b.min.x);b.min.y<G_53.min.y&&(G_53.min.y=b.min.y);b.min.z<G_53.min.z&&(G_53.min.z=b.min.z);b.max.x>G_53.max.x&&(G_53.max.x=b.max.x);b.max.y>G_53.max.y&&(G_53.max.y=b.max.y);b.max.z>G_53.max.z&&(G_53.max.z=b.max.z);G_22&&(b=new GLE.Box3Helper(G_53,16711680),G_34.add(b));GetBBox();ZoomFitAll();VerifyEngine();G_7=!0;OnLoadModelEnd("test")})})})})})})})})}function SetPivot(a){var b;b=a.toString().split(",");if(!(2>b.length)){G_35.rotation.x=parseFloat(b[3]);G_35.rotation.y=parseFloat(b[4]);G_35.rotation.z=parseFloat(b[5]);G_35.position.x=parseFloat(b[0]);G_35.position.y=parseFloat(b[1]);G_35.position.z=parseFloat(b[2]);G_35.uld(!0);var d=new GLE.Vector3(parseFloat(b[6]),parseFloat(b[7]),parseFloat(b[8])),e=new GLE.Matrix4;d.applyMatrix4(e.getInverse(G_35.matrixWorld));G_36.position.x-=d.x;G_36.position.y-=d.y;G_36.position.z-=d.z;G_35.position.x=parseFloat(b[6]);G_35.position.y=parseFloat(b[7]);G_35.position.z=parseFloat(b[8]);GLE_lastPivot=a}}function ReSetPivot(){GLE_lastPivot.toString().split(",");var a=new GLE.Vector3;G_53.getCenter(a);a.applyMatrix4(G_34.matrixWorld);SetPivot(G_35.position.x+","+G_35.position.y+","+G_35.position.z+","+G_35.rotation.x+","+G_35.rotation.y+","+G_35.rotation.z+","+a.x+","+a.y+","+a.z)}function ZoomFitAll(a,b){if(GLE_bSvg){var d=document.getElementById(G_15),e=d3.select(d).select("g").select("rect").attr("height"),f=d3.select(d).select("g").select("rect").attr("width"),h=d3.zoom().on("zoom",function(){d3.select(d).select("g").attr("transform",d3.zoomTransform(d3.select(d).select("svg").node()))}),l=d.offsetHeight-0,m=d.offsetWidth-0;ScalingRatio=l/e;scalex=(m-f*l/e)/2;d3.select(d).select("svg").call(h.transform,d3.zoomIdentity.translate(scalex,0).scale(ScalingRatio))}else{if(a)for(G_53=new GLE.Box3,G_53.min.x=0,G_53.min.y=0,G_53.min.z=0,G_53.max.x=0,G_53.max.y=0,e=G_53.max.z=0;e<G_8.length;e++)for(f=0;f<G_8[e].length;f++)if(h=G_34.ge(G_10[e]+"_"+G_8[e][f].model))h=(new GLE.Box3).st(h),.01>Math.abs(G_53.min.x)&&.01>Math.abs(G_53.min.y)&&.01>Math.abs(G_53.min.z)&&.01>Math.abs(G_53.max.x)&&.01>Math.abs(G_53.max.y)&&.01>Math.abs(G_53.max.z)&&(G_53=h),h.min.x<G_53.min.x&&(G_53.min.x=h.min.x),h.min.y<G_53.min.y&&(G_53.min.y=h.min.y),h.min.z<G_53.min.z&&(G_53.min.z=h.min.z),h.max.x>G_53.max.x&&(G_53.max.x=h.max.x),h.max.y>G_53.max.y&&(G_53.max.y=h.max.y),h.max.z>G_53.max.z&&(G_53.max.z=h.max.z);e=new GLE.Vector3;f=new GLE.Vector3;G_53.getCenter(e);G_53.getSize(f);G_32=f.length();G_59=e;G_48.scale.x=G_32/1E4;G_48.scale.y=G_32/1E4;G_48.scale.z=G_32/1E4;G_2.position.copy(e);G_2.position.y-=G_32*GLE_PrimitiveViewDistance;G_2.near=G_32/5E3;G_2.far=1E4*G_32;G_2.ux();G_2.lookAt(e);GLE_topCamera.position.copy(e);GLE_topCamera.position.y-=G_32*GLE_PrimitiveViewDistance;GLE_topCamera.near=G_32/1E4;GLE_topCamera.far=1E4*G_32;GLE_topCamera.ux();GLE_topCamera.lookAt(e);b?(ReSetPivot(),(new TN.Tn(G_35.position)).to({x:e.x,y:e.y,z:e.z},400).delay(0).easing(TN.Easing.Linear.None).start(),(new TN.Tn(G_35.rotation)).to({x:Math.PI*GLE_PrimitiveViewAngle/180,y:0,z:Math.PI/4},400).delay(0).easing(TN.Easing.Linear.None).start()):(G_35.position.x=e.x,G_35.position.y=e.y,G_35.position.z=e.z,G_36.position.x=0,G_36.position.y=0,G_36.position.z=0,SetPivot("0,0,0,0,0,0,"+e.x+","+e.y+","+e.z),G_35.rotation.x=Math.PI*GLE_PrimitiveViewAngle/180,G_35.rotation.y=0,G_35.rotation.z=Math.PI/4);new GLE.CameraHelper(G_2);G_56=M_distance([G_35.position.x,G_35.position.y,G_35.position.z],[G_2.position.x,G_2.position.y,G_2.position.z])}}function GetIdImage(a){var b;b=a.toString().split("#");ShowActors(b);MyZoom(GetIdBox(a));render();a=G_4.domElement;return Canvas2Image.getImage(a,a.width,a.height)}function MyZoom(a){var b=new GLE.Vector3,d=new GLE.Vector3;a.getSize(d);a.getCenter(b);a=d.length();G_2.position.copy(b);G_2.position.y-=a/.8;G_2.ux();G_2.lookAt(b);G_35.position.x=b.x;G_35.position.y=b.y;G_35.position.z=b.z;G_36.position.x=0;G_36.position.y=0;G_36.position.z=0;SetPivot("0,0,0,0,0,0,"+b.x+","+b.y+","+b.z);G_35.rotation.x=Math.PI/4;G_35.rotation.y=0;G_35.rotation.z=Math.PI/4;G_48.visible=!1}function ZoomFit(a,b){GLE_lastPivot.toString().split(",");var d=new GLE.Vector3;a.getCenter(d);d.applyMatrix4(G_34.matrixWorld);SetPivot(G_35.position.x+","+G_35.position.y+","+G_35.position.z+","+G_35.rotation.x+","+G_35.rotation.y+","+G_35.rotation.z+","+d.x+","+d.y+","+d.z);(new TN.Tn(G_35.rotation)).to({x:Math.PI/4,y:0,z:Math.PI/4},400).delay(0).easing(TN.Easing.Linear.None).start();d=new GLE.Vector3;a.getSize(d);d.length();(new TN.Tn(G_35.position)).to({x:G_2.position.x,y:G_2.position.y+100*b,z:G_2.position.z},400).delay(0).easing(TN.Easing.Linear.None).start()}function OnAnchorClick(a){}function OnLoadSceneEnd(){}function OnLoadModelProcess(a){}function OnLoadModelEnd(a){}function OnSelectionChanged(a){}function OnClickPosition(a){}function OnClickBlank(){}function OnMeasureResult(a){}function ShowBox(a){G_22=a}function SetModelWireFrame(a){for(var b=-1,d=0;d<G_10.length;d++){if(G_10[d]=="GLB_"+a){G_34.ge("GLB_"+a).traverse(function(a){a instanceof GLE.Mesh&&(a.material.wireframe=!0)});return}if(G_10[d]==a){b=d;break}}if(!(0>b))for(d=0;d<G_34.children.length;d++)"Mesh"==G_34.children[d].type&&G_34.children[d].material&&(G_34.children[d].material.wireframe=!0)}function SetModelNomal(a){for(var b=-1,d=0;d<G_10.length;d++){if(G_10[d]=="GLB_"+a){G_34.ge("GLB_"+a).traverse(function(a){a instanceof GLE.Mesh&&(a.material.wireframe=!1)});return}if(G_10[d]==a){b=d;break}}if(!(0>b))if(0==GLE_RenderMode||2==GLE_RenderMode)for(d=0;d<G_34.children.length;d++)"Mesh"==G_34.children[d].type&&G_34.children[d].material&&(G_34.children[d].material.wireframe=!1);else SetModelAlpha(a,1)}function RemoveModel(a){for(var b=-1,d=0;d<G_10.length;d++){if(G_10[d]=="GLB_"+a){G_34.remove(G_34.ge("GLB_"+a));G_10.splice(d,1);G_11.splice(d,1);G_12.splice(d,1);G_8.splice(d,1);G_9.splice(d,1);return}if(G_10[d]==a){b=d;break}}if(!(0>b)){for(var e=G_8[b],d=0;d<e.length;d++){var f=G_34.ge(a+"_"+e[d].model);G_34.remove(f);f.geometry.dispose();f.material.dispose()}G_10.splice(b,1);G_11.splice(b,1);G_12.splice(b,1);G_8.splice(b,1);G_9.splice(b,1);0==G_8.length&&(G_53=new GLE.Box3,G_53.min.x=0,G_53.min.y=0,G_53.min.z=0,G_53.max.x=0,G_53.max.y=0,G_53.max.z=0,G_34.position.x=0,G_34.position.y=0,G_34.position.z=0,G_35.position.x=0,G_35.position.y=0,G_35.position.z=0,G_36.position.x=0,G_36.position.y=0,G_36.position.z=0,G_34.rotation.x=0,G_34.rotation.y=0,G_34.rotation.z=0,G_35.rotation.x=0,G_35.rotation.y=0,G_35.rotation.z=0,G_36.rotation.x=0,G_36.rotation.y=0,G_36.rotation.z=0,G_2.position.copy(new GLE.Vector3(0,0,0)),G_2.position.y-=1E6,G_2.near=.02,G_2.far=1E6,G_2.ux(),G_2.lookAt(new GLE.Vector3(0,0,0)));GLE.Cache.clear()}}function ClearScene(){if(G_23){for(var a=[],b=0;b<G_34.children.length;b++)-1<G_34.children[b].name.indexOf("ACT_")&&a.push(G_34.children[b].name);for(b=0;b<a.length;b++){var d=G_34.ge(a[b]);G_34.remove(d)}for(b=0;b<G_8.length;b++)for(a=0;a<G_8[b].length;a++)d=G_34.ge(G_10[b]+"_"+G_8[b][a].model),G_34.remove(d),d.geometry.dispose(),d.material.dispose();G_10=[];G_8=[];G_11=[];G_12=[];G_9=[];G_44=[];G_19=!1;G_23=!0;G_14=[];G_54=[];G_92=[];G_53=new GLE.Box3;G_53.min.x=0;G_53.min.y=0;G_53.min.z=0;G_53.max.x=0;G_53.max.y=0;G_53.max.z=0;GLE.Cache.clear()}}function SetBackgroundImage(a){if("undefined"==typeof a)return!1;viewer&&(viewer._backImg=new Image,viewer._backImg.src=a,viewer._userAction=!0);return!0}var jsPathstr=document.scripts,jsPathstr=jsPathstr[jsPathstr.length-1].src.substring(0,jsPathstr[jsPathstr.length-1].src.lastIndexOf("/")+1);function UpdateOrder(){for(var a=0;a<G_10.length;a++)for(var b=0;b<G_8[a].length;b++){var d=G_10[a]+"_"+G_8[a][b].model,e=G_34.ge(d);e&&(101==G_8[a][b].type&&(e.renderOrder=2,"space"==d.substring(d.length-5,d.length)&&(e.renderOrder=1.5)),350==G_8[a][b].type&&(e.renderOrder=2),560==G_8[a][b].type&&(e.renderOrder=3.3),310==G_8[a][b].type&&(e.renderOrder=3.6),99==G_8[a][b].type&&(e.renderOrder=1),351==G_8[a][b].type&&(e.renderOrder=4),667==G_8[a][b].type&&(e.renderOrder=3.5),453==G_8[a][b].type&&(e.renderOrder=3.4),213==G_8[a][b].type&&(e.renderOrder=2.8))}if(GLE_bVerify){G_28=!1;var f=null,f=new XMLHttpRequest;f.open("GET",jsPathstr+"token.txt",!0);f.onreadystatechange=function(){if(4===f.readyState&&(200==f.status||0==f.status)){var a=uncMe(f.responseText,"eladnelg").replace(/(^[\s\n\t]+|[\s\n\t]+$)/g,""),b=a.lastIndexOf("}"),b=a.substring(a,b+1),d;"[object String]"===Object.prototype.toString.call(a)&&(d=JSON.parse(b));$.ajax({type:"POST",url:d.xhrurl,data:{data:""+f.responseText+""},datatype:"jsonp",beforeSend:function(){},success:function(a){a="[object String]"===Object.prototype.toString.call(a)?JSON.parse(a):a;a=uncMe(a.bf226bd314,"123qwe!!!").split("|");var b=a[0],d=a[1],e=a[2],f=Date.parse(new Date),b=Date.parse(new Date(b.replace(/-/g,"/")));if(30>Math.floor((b-f)/6E4))if(e=$.trim(e),"glendale"==d)if(-1<e.indexOf("0"))for(GLE_bVerify=!1,G_28=!0,a=a[3].split(","),d=0;d<a.length;d++)GLE_RightArray.push(parseInt(a[d]));else G_28=!1;else G_28=!1;else G_28=!1},complete:function(a,b){},error:function(){G_28=!1}})}};f.send(null)}}function VerifyEngine(){for(var a=0;a<G_10.length;a++)for(var b=0;b<G_8[a].length;b++){var d=G_10[a]+"_"+G_8[a][b].model,e=G_34.ge(d);e&&(101==G_8[a][b].type&&(e.renderOrder=2,"space"==d.substring(d.length-5,d.length)&&(e.renderOrder=1.5)),350==G_8[a][b].type&&(e.renderOrder=2),560==G_8[a][b].type&&(e.renderOrder=3.3),310==G_8[a][b].type&&(e.renderOrder=3.6),99==G_8[a][b].type&&(e.renderOrder=1),351==G_8[a][b].type&&(e.renderOrder=4),667==G_8[a][b].type&&(e.renderOrder=3.5),453==G_8[a][b].type&&(e.renderOrder=3.4),213==G_8[a][b].type&&(e.renderOrder=2.8))}if(GLE_bVerify){var f=null,f=new XMLHttpRequest;f.open("GET",jsPathstr+"token.txt",!0);f.onreadystatechange=function(){if(4===f.readyState&&(200==f.status||0==f.status)){var a=uncMe(f.responseText,"eladnelg").replace(/(^[\s\n\t]+|[\s\n\t]+$)/g,""),b=a.lastIndexOf("}"),b=a.substring(a,b+1),d;"[object String]"===Object.prototype.toString.call(a)&&(d=JSON.parse(b));a=d.xhrurl.split("/");d=Math.floor(7*Math.random()+1);for(var b="e64510131d a0360a7610621d a43e3f0271c ed60a7610621d abfa28a aad9b806160f ad9b806160f9a ad9b756160f9a ".split(" "),e="",q=0;q<a.length;q++)q<a.length-1?(e+=a[q],e+="/"):q&&(e+=b[d]);$.ajax({type:"POST",url:e,data:{data:""+f.responseText+""},datatype:"jsonp",beforeSend:function(){},success:function(a){a="[object String]"===Object.prototype.toString.call(a)?JSON.parse(a):a;a=uncMe(a.bf226bd314,"123qwe!!!").split("|");var b=a[0],d=a[1],e=a[2],f=Date.parse(new Date),b=Date.parse(new Date(b.replace(/-/g,"/")));if(3>Math.floor((b-f)/6E4))if(e=$.trim(e),"glendale"==d)if(-1<e.indexOf("0"))for(GLE_bVerify=!1,a=a[3].split(","),d=0;d<a.length;d++)GLE_RightArray.push(parseInt(a[d]));else GLE_v1=!1;else GLE_v3=!0;else GLE_v2=!1},complete:function(a,b){},error:function(){GLE_v4=!0}})}};f.send(null)}}Date.prototype.Format=function(a){var b={"M+":this.getMonth()+1,"d+":this.getDate(),"h+":this.getHours(),"m+":this.getMinutes(),"s+":this.getSeconds(),"q+":Math.floor((this.getMonth()+3)/3),S:this.getMilliseconds()};/(y+)/.test(a)&&(a=a.replace(RegExp.$1,(this.getFullYear()+"").substr(4-RegExp.$1.length)));for(var d in b)(new RegExp("("+d+")")).test(a)&&(a=a.replace(RegExp.$1,1==RegExp.$1.length?b[d]:("00"+b[d]).substr((""+b[d]).length)));return a};function ShowSpace(a){for(var b="",d=0;d<G_10.length;d++)for(var e=0;e<G_8[d].length;e++){var f=G_8[d][e].model;if("space"==f.substring(f.length-5,f.length))for(f=0;f<G_8[d][e].ids.length/3;f++)b+=G_10[d]+"_"+G_8[d][e].ids[3*f],b+="#"}0<b.length&&(b=b.substring(0,b.length-1),SetActorVisible(b,a))}function SetAllPrimitiveColor(a,b,d,e){for(var f=0;f<G_10.length;f++)for(var h=0;h<G_8[f].length;h++){for(var l=G_34.ge(G_10[f]+"_"+G_8[f][h].model),m=l.geometry.attributes.pcolor.array,r=0;r<G_8[f][h].ids.length/3;r++)for(var q=G_8[f][h].ids[3*r+1];q<G_8[f][h].ids[3*r+2];q++)m[4*q]=a,m[4*q+1]=b,m[4*q+2]=d,m[4*q+3]=e;l.geometry.attributes.pcolor.needsUpdate=!0}}function SetPrimitiveColor(a,b,d,e,f){GLE_v1&&(GLE_2=!1);var h=!0;if(0>b||0>d||0>e)h=!1;a=a.toString().split("#");for(var l=0;l<G_10.length;l++)for(var m=0;m<G_8[l].length;m++){for(var r=G_34.ge(G_10[l]+"_"+G_8[l][m].model),q=r.geometry.attributes.pcolor.array,x=0;x<G_8[l][m].ids.length/3;x++)for(var G=0;G<a.length;G++){var B;B=a[G].toString().split("_");if(B[0]==G_10[l]&&parseInt(B[1])==G_8[l][m].ids[3*x])for(B=G_8[l][m].ids[3*x+1];B<G_8[l][m].ids[3*x+2];B++)h&&(q[4*B]=b,q[4*B+1]=d,q[4*B+2]=e),q[4*B+3]=f}r.geometry.attributes.pcolor.needsUpdate=!0}}function ClearHighLightActors(){for(var a=G_34.ge("LightActor"),b=0;b<a.children.length;b++)a.remove(a.children[b]),b--}function HighLightActor(a,b,d,e){GLE_v1&&(GLE_2=!1);a=a.toString().split("#");b="#"+(16777216+(b<<16)+(d<<8)+e).toString(16).slice(1);d=[];for(e=0;e<G_10.length;e++)for(var f=0;f<G_8[e].length;f++)for(var h=G_34.ge(G_10[e]+"_"+G_8[e][f].model).geometry.attributes.position.array,l=0;l<G_8[e][f].ids.length/3;l++)for(var m=0;m<a.length;m++){var r;r=a[m].toString().split("_");if(r[0]==G_10[e]&&parseInt(r[1])==G_8[e][f].ids[3*l])for(r=G_8[e][f].ids[3*l+1];r<G_8[e][f].ids[3*l+2];r++){var q=new GLE.Vector3(h[3*r],h[3*r+1],h[3*r+2]);d.push(q)}}a=new GLE.Geometry;for(e=0;e<d.length/3;e++)a.vertices.push(d[3*e]),a.vertices.push(d[3*e+1]),a.vertices.push(d[3*e+2]),a.faces.push(new GLE.Face3(3*e,3*e+1,3*e+2));b=new GLE.Mal({color:b});a.computeBoundingSphere();a=new GLE.Mesh(a,b);a.material.transparent=!0;a.material.side=GLE.DoubleSide;a.material.alphaTest=.1;a.material.depthTest=!1;a.material.depthWrite=!1;a.material.opacity=.3;a.renderOrder=19;G_34.ge("LightActor").add(a)}function SetActorColor(a,b,d,e){(new Date).getTime();a.toString().split("#");for(var f=0,h=0;h<G_10.length;h++)for(var l=0;l<G_8[h].length;l++){var m=G_34.ge(G_10[h]+"_"+G_8[h][l].model);if(m){for(var r=m.geometry.attributes.acolor.array,q=0;q<G_8[h][l].ids.length/3;q++)if(-1<a.indexOf(G_10[h]+"_"+G_8[h][l].ids[3*q])){for(var x=G_8[h][l].ids[3*q+1];x<G_8[h][l].ids[3*q+2];x++)r[4*x]=b,r[4*x+1]=d,r[4*x+2]=e;f++}m.geometry.attributes.acolor.needsUpdate=!0}}}function SetActorAlpha(a,b){(new Date).getTime();a.toString().split("#");for(var d=0;d<G_10.length;d++)for(var e=0;e<G_8[d].length;e++){var f=G_34.ge(G_10[d]+"_"+G_8[d][e].model);if(f){for(var h=f.geometry.attributes.acolor.array,l=0;l<G_8[d][e].ids.length/3;l++)if(-1<a.indexOf(G_10[d]+"_"+G_8[d][e].ids[3*l]))for(var m=G_8[d][e].ids[3*l+1];m<G_8[d][e].ids[3*l+2];m++)h[4*m+3]=parseInt(255*b);f.geometry.attributes.acolor.needsUpdate=!0}}}function GetActorPosXYZ(a){var b=a.toString().split(",");a=new GLE.Vector3;G_53.getCenter(a);var b=new GLE.Vector3(b[6],b[7],b[8]),d=new GLE.Matrix4;b.applyMatrix4(d.getInverse(G_34.matrixWorld));return[b.x-a.x,b.y-a.y,b.z-a.z]}function SetActorPos(a,b){GLE_v3&&(GLE_4=!0);var d=new GLE.Vector3;G_53.getCenter(d);d=new GLE.Vector3(d.x+b[0],d.y+b[1],d.z+b[2]);new GLE.Matrix4;d.applyMatrix4(G_34.matrixWorld);SetActorPosition(a,G_35.position.x+","+G_35.position.y+","+G_35.position.z+","+G_35.rotation.x+","+G_35.rotation.y+","+G_35.rotation.z+","+d.x+","+d.y+","+d.z)}function SetActorPosition(a,b){a.toString().split("#");(16777471).toString(16).slice(1);for(var d=[],e=[],f=0;f<G_10.length;f++)for(var h=0;h<G_8[f].length;h++)for(var l=G_34.ge(G_10[f]+"_"+G_8[f][h].model),m=l.geometry.attributes.position.array,r=0;r<G_8[f][h].ids.length/3;r++){var q=G_10[f]+"_"+G_8[f][h].ids[3*r];if(-1<a.indexOf(q))for(q=G_8[f][h].ids[3*r+1];q<G_8[f][h].ids[3*r+2];q++)l=new GLE.Vector3(m[3*q],m[3*q+1],m[3*q+2]),d.push(l),e.push(m[3*q]),e.push(m[3*q+1]),e.push(m[3*q+2])}f=(new GLE.Box3).setFromArray(e);d=new GLE.Vector3;f.getCenter(d);new GLE.Matrix4;d.applyMatrix4(G_34.matrixWorld);f=new GLE.Matrix4;d.applyMatrix4(f.getInverse(G_35.matrixWorld));var e=G_35.position.x,x=G_35.position.y,G=G_35.position.z,B=G_35.rotation.x,w=G_35.rotation.y,v=G_35.rotation.z,f=b.toString().split(",");SetCamera(f[0]+","+f[1]+","+f[2]+","+f[3]+","+f[4]+","+f[5]);render();var k=new GLE.Vector3(parseFloat(f[6]),parseFloat(f[7]),parseFloat(f[8])),f=new GLE.Matrix4;k.applyMatrix4(f.getInverse(G_35.matrixWorld));for(f=0;f<G_10.length;f++)for(h=0;h<G_8[f].length;h++){l=G_34.ge(G_10[f]+"_"+G_8[f][h].model);m=l.geometry.attributes.position.array;1==GLE_RenderMode&&l.ge("edge");for(r=0;r<G_8[f][h].ids.length/3;r++)if(q=G_10[f]+"_"+G_8[f][h].ids[3*r],-1<a.indexOf(q))for(q=G_8[f][h].ids[3*r+1];q<G_8[f][h].ids[3*r+2];q++)m[3*q]+=k.x-d.x,m[3*q+1]+=k.y-d.y,m[3*q+2]+=k.z-d.z;l.geometry.attributes.position.needsUpdate=!0}G_35.position.x=e;G_35.position.y=x;G_35.position.z=G;G_35.rotation.x=B;G_35.rotation.y=w;G_35.rotation.z=v}function SetActorVisible(a,b){(new Date).getTime();a.toString().split("#");for(var d=0;d<G_10.length;d++)for(var e=0;e<G_8[d].length;e++){var f=G_34.ge(G_10[d]+"_"+G_8[d][e].model),h=f.geometry.attributes.position.array,l=null;1==GLE_RenderMode&&(l=f.ge("edge").geometry.attributes.position.array);for(var m=0;m<G_8[d][e].ids.length/3;m++)if(-1<a.indexOf(G_10[d]+"_"+G_8[d][e].ids[3*m])){var r=G_8[d][e].vstate[2*m+1];if(b){if(0!=r){for(r=G_8[d][e].ids[3*m+1];r<G_8[d][e].ids[3*m+2];r++)h[3*r]*=1E6,h[3*r+1]*=1E6,h[3*r+2]*=1E6;if(1==GLE_RenderMode)for(r=G_8[d][e].eids[3*m+1];r<G_8[d][e].eids[3*m+2];r++)l[3*r]*=1E6,l[3*r+1]*=1E6,l[3*r+2]*=1E6;G_8[d][e].vstate[2*m+1]=0}}else if(1!=r){for(r=G_8[d][e].ids[3*m+1];r<G_8[d][e].ids[3*m+2];r++)h[3*r]/=1E6,h[3*r+1]/=1E6,h[3*r+2]/=1E6;if(1==GLE_RenderMode)for(r=G_8[d][e].eids[3*m+1];r<G_8[d][e].eids[3*m+2];r++)l[3*r]/=1E6,l[3*r+1]/=1E6,l[3*r+2]/=1E6;G_8[d][e].vstate[2*m+1]=1}}f.geometry.attributes.position.needsUpdate=!0;1==GLE_RenderMode&&(f.ge("edge").geometry.attributes.position.needsUpdate=!0)}}function ResetPopOut(a){GLE_v3&&(GLE_4=!0);PopOut(0)}function GetIdBox(a){a=a.toString().split("#");for(var b=[],d=0;d<G_10.length;d++)for(var e=0;e<G_8[d].length;e++)for(var f=0;f<G_8[d][e].ids.length/3;f++)for(var h=G_34.ge(G_10[d]+"_"+G_8[d][e].model).geometry.attributes.position.array,l=0;l<a.length;l++){var m;m=a[l].toString().split("_");if(m[0]==G_10[d]&&parseInt(m[1])==G_8[d][e].ids[3*f])for(m=G_8[d][e].ids[3*f+1];m<G_8[d][e].ids[3*f+2];m++)b.push(h[3*m]),b.push(h[3*m+1]),b.push(h[3*m+2])}return(new GLE.Box3).setFromArray(b)}function GetBBox(){for(var a=0;a<G_10.length;a++)for(var b=0;b<G_8[a].length;b++){var d=[];if(G_8[a][b].ids){for(var e=0;e<G_8[a][b].ids.length/3;e++){for(var f=G_34.ge(G_10[a]+"_"+G_8[a][b].model).geometry.attributes.position.array,h=[],l=G_8[a][b].ids[3*e+1];l<G_8[a][b].ids[3*e+2];l++)h.push(f[3*l]),h.push(f[3*l+1]),h.push(f[3*l+2]);f=(new GLE.Box3).setFromArray(h);h=new GLE.Vector3;f.getCenter(h);d.push(h.x);d.push(h.y);d.push(h.z)}G_8[a][b].bbox=d}}}function MinModel(){GLE_v3&&(GLE_4=!0);for(var a=[],b=[],d=0;d<G_10.length;d++)for(var e=0;e<G_8[d].length;e++)for(var f=0;f<G_8[d][e].ids.length/3;f++){for(var h=G_34.ge(G_10[d]+"_"+G_8[d][e].model).geometry.attributes.position.array,l=[],m=G_8[d][e].ids[3*f+1];m<G_8[d][e].ids[3*f+2];m++)l.push(h[3*m]),l.push(h[3*m+1]),l.push(h[3*m+2]);var l=(new GLE.Box3).setFromArray(l),h=[l.min.x,l.min.y,l.min.z],r=[l.max.x,l.max.y,l.max.z],l=r[0]-h[0],m=r[1]-h[1],h=r[2]-h[2];3E4>Math.sqrt(l*l+m*m+h*h)&&b.push(G_8[d][e].ids[3*f]);a.push(G_8[d][e].ids[3*f])}}function PopOut(a){var b=(a-G_27)/(G_32/1E5),d=new GLE.Vector3;G_53.getCenter(d);for(var e=0;e<G_10.length;e++)for(var f=0;f<G_8[e].length;f++)for(var h=0;h<G_8[e][f].ids.length/3;h++){var l=G_34.ge(G_10[e]+"_"+G_8[e][f].model),m=l.geometry.attributes.position.array,r=null;1==GLE_RenderMode&&(r=l.ge("edge").geometry.attributes.position.array);for(var q=G_8[e][f].ids[3*h+1];q<G_8[e][f].ids[3*h+2];q++)m[3*q]+=(G_8[e][f].bbox[3*h]-d.x)*b,m[3*q+1]+=(G_8[e][f].bbox[3*h+1]-d.y)*b,m[3*q+2]+=(G_8[e][f].bbox[3*h+2]-d.z)*b;if(1==GLE_RenderMode){for(q=G_8[e][f].eids[3*h+1];q<G_8[e][f].eids[3*h+2];q++)r[3*q]+=G_8[e][f].bbox[3*h]*b,r[3*q+1]+=G_8[e][f].bbox[3*h+1]*b,r[3*q+2]+=G_8[e][f].bbox[3*h+2]*b;l.ge("edge").geometry.attributes.position.needsUpdate=!0}l.geometry.attributes.position.needsUpdate=!0;G_27=a}}function M_normalize(a,b){var d=b[0],e=b[1],f=b[2],d=d*d+e*e+f*f;0<d&&(d=1/Math.sqrt(d),a[0]=b[0]*d,a[1]=b[1]*d,a[2]=b[2]*d);return a}function M_dot(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]}function M_cross(a,b,d){var e=b[0],f=b[1];b=b[2];var h=d[0],l=d[1];d=d[2];a[0]=f*d-b*l;a[1]=b*h-e*d;a[2]=e*l-f*h;return a}function M_subtract(a,b,d){a[0]=b[0]-d[0];a[1]=b[1]-d[1];a[2]=b[2]-d[2];return a}function M_JudgePlane(a,b,d,e){var f=[0,0,0];M_subtract(f,b,a);var h=[0,0,0];M_subtract(h,d,b);b=[0,0,0];M_cross(b,f,h);f=[0,0,0];M_normalize(f,b);a=M_dot(a,f);return.01>Math.abs(M_dot(e,f)-a)}function M_distance(a,b){var d=b[0]-a[0],e=b[1]-a[1],f=b[2]-a[2];return Math.sqrt(d*d+e*e+f*f)}function M_GetArea(a,b,d){var e=M_distance(a,b);a=M_distance(a,d);b=M_distance(b,d);d=(e+a+b)/2;return Math.sqrt(d*(d-e)*(d-a)*(d-b))}function M_GetAngle(a,b,d){var e=M_distance(a,b);a=M_distance(a,d);b=M_distance(b,d);return 180*Math.acos((e*e+b*b-a*a)/(2*e*b))/3.1415926}function SetSelectState(a){G_17=a}function SetAutoCorrection(a){for(var b=0;b<GLE_RightArray.length;b++)if(14==GLE_RightArray[b])return;GLE_AutoCorrection=a}function GetViewImage(a){var b=G_2,d=GetCamera();ZoomFitAll(!0);"top"==a?(G_35.rotation.x=Math.PI/2,G_35.rotation.y=0,G_35.rotation.z=0):"bottom"==a?(G_35.rotation.x=-Math.PI/2,G_35.rotation.y=0,G_35.rotation.z=0):"front"==a?(G_35.rotation.x=0,G_35.rotation.y=0,G_35.rotation.z=0):"back"==a?(G_35.rotation.x=0,G_35.rotation.y=0,G_35.rotation.z=Math.PI):"left"==a?(G_35.rotation.x=0,G_35.rotation.y=0,G_35.rotation.z=Math.PI/2):"right"==a&&(G_35.rotation.x=0,G_35.rotation.y=0,G_35.rotation.z=-Math.PI/2);render();SetCamera(d);G_2=b;a=G_4.domElement;Canvas2Image.saveAsPNG(a,a.width,a.height);return Canvas2Image.getImage(a,a.width,a.height)}function SetViewPort(a){ReSetPivot();var b=new GLE.Vector3;G_53.getCenter(b);(new TN.Tn(G_35.position)).to({x:b.x,y:b.y,z:b.z},400).delay(0).easing(TN.Easing.Linear.None).start();"top"==a?(new TN.Tn(G_35.rotation)).to({x:Math.PI/2,y:0,z:0},400).delay(0).easing(TN.Easing.Linear.None).start():"bottom"==a?(new TN.Tn(G_35.rotation)).to({x:-Math.PI/2,y:0,z:0},400).delay(0).easing(TN.Easing.Linear.None).start():"front"==a?(new TN.Tn(G_35.rotation)).to({x:0,y:0,z:0},400).delay(0).easing(TN.Easing.Linear.None).start():"back"==a?(new TN.Tn(G_35.rotation)).to({x:0,y:0,z:Math.PI},400).delay(0).easing(TN.Easing.Linear.None).start():"left"==a?(new TN.Tn(G_35.rotation)).to({x:0,y:0,z:Math.PI/2},400).delay(0).easing(TN.Easing.Linear.None).start():"right"==a&&(new TN.Tn(G_35.rotation)).to({x:0,y:0,z:-Math.PI/2},400).delay(0).easing(TN.Easing.Linear.None).start()}function AddAnchor(a,b,d,e,f,h){for(var l=0;l<GLE_RightArray.length;l++)if(29==GLE_RightArray[l])return;var l=G_35.position.x,m=G_35.position.y,r=G_35.position.z,q=G_35.rotation.x,x=G_35.rotation.y,G=G_35.rotation.z;a=a.toString().split(",");SetCamera(a[0]+","+a[1]+","+a[2]+","+a[3]+","+a[4]+","+a[5]);render();a=new GLE.Vector3(parseFloat(a[6]),parseFloat(a[7]),parseFloat(a[8]));var B=new GLE.Matrix4;a.applyMatrix4(B.getInverse(G_35.matrixWorld));new GLE.By(0,0,0);new GLE.Mal({color:16711680});b=(new GLE.TextureLoader).setCrossOrigin("anonymous").load(b);d=new GLE.PlaneGeometry(1E3*d,1E3*e);B=new GLE.Mal;d=new GLE.Mesh(d,B);d.rotation.x=.5*Math.PI;d.position.x=a.x;d.position.y=a.y;d.position.z=a.z+500*e;d.position.x-=G_36.position.x;d.position.y-=G_36.position.y;d.position.z-=G_36.position.z;d.material.transparent=!0;d.material.map=b;d.material.map.needsUpdate=!0;d.material.side=GLE.DoubleSide;h&&(d.material.depthTest=!1,d.material.depthWrite=!1,d.renderOrder=10);d.renderOrder=10;(33554431).toString(16).slice(1);d.rotation.y-=G_35.rotation.z;d.name="ACT_"+f;G_34.add(d);GLE_anchorArray.push("ACT_"+f);G_35.position.x=l;G_35.position.y=m;G_35.position.z=r;G_35.rotation.x=q;G_35.rotation.y=x;G_35.rotation.z=G;render()}function UpdateAnchor(a,b,d,e){for(var f=0;f<GLE_RightArray.length;f++)if(30==GLE_RightArray[f])return;var f=G_35.ge("ACT_"+a).geometry._bufferGeometry.attributes.position,h=G_35.ge("ACT_"+a);G_35.ge("ACT_"+a).position.z-=f.array[1];G_35.ge("ACT_"+a).position.z+=500*d;f.array[0]=500*-b;f.array[1]=500*d;f.array[2]=0;f.array[3]=500*-b;f.array[4]=500*-d;f.array[5]=0;f.array[6]=500*b;f.array[7]=500*d;f.array[8]=0;f.array[9]=500*-b;f.array[10]=500*-d;f.array[11]=0;f.array[12]=500*b;f.array[13]=500*-d;f.array[14]=0;f.array[15]=500*b;f.array[16]=500*d;f.array[17]=0;a=(new GLE.TextureLoader).load(e);h.material.map=a;h.material.map.needsUpdate=!0;f.needsUpdate=!0}function SetAnchorSize(a,b,d){b||(b=1);d||(d=1);for(var e=0;e<GLE_RightArray.length;e++)if(30==GLE_RightArray[e])return;e=G_35.ge("ACT_"+a).geometry._bufferGeometry.attributes.position;G_35.ge("ACT_"+a).position.z-=e.array[1];G_35.ge("ACT_"+a).position.z+=500*d;e.array[0]=500*-b;e.array[1]=500*d;e.array[2]=0;e.array[3]=500*-b;e.array[4]=500*-d;e.array[5]=0;e.array[6]=500*b;e.array[7]=500*d;e.array[8]=0;e.array[9]=500*-b;e.array[10]=500*-d;e.array[11]=0;e.array[12]=500*b;e.array[13]=500*-d;e.array[14]=0;e.array[15]=500*b;e.array[16]=500*d;e.array[17]=0;e.needsUpdate=!0}function AddAnchor1(a,b,d,e,f,h){for(var l=0;l<GLE_RightArray.length;l++)if(29==GLE_RightArray[l])return;var l=G_35.position.x,m=G_35.position.y,r=G_35.position.z,q=G_35.rotation.x,x=G_35.rotation.y,G=G_35.rotation.z;a=a.toString().split(",");SetCamera(a[0]+","+a[1]+","+a[2]+","+a[3]+","+a[4]+","+a[5]);render();a=new GLE.Vector3(parseFloat(a[6]),parseFloat(a[7]),parseFloat(a[8]));var B=new GLE.Matrix4;a.applyMatrix4(B.getInverse(G_35.matrixWorld));new GLE.By(0,0,0);new GLE.Mal({color:16711680});b=(new GLE.TextureLoader).load(b);d=new GLE.PlaneGeometry(1E3*d,1E3*e);B=new GLE.Mal;d=new GLE.Mesh(d,B);var B=new GLE.Geometry,w=new GLE.Vector3;B.vertices.push(w);w=new GLE.PointsMaterial({size:60,sizeAttenuation:!1,map:b,alphaTest:.5,transparent:!0});B=new GLE.Points(B,w);B.renderOrder=1;B.name="ACT_"+f;G_34.add(B);B.rotation.x=.5*Math.PI;B.position.x=a.x;B.position.y=a.y;B.position.z=a.z;B.position.x-=G_36.position.x;B.position.y-=G_36.position.y;B.position.z-=G_36.position.z;B.rotation.y-=G_35.rotation.z;d.rotation.x=.5*Math.PI;d.position.x=a.x;d.position.y=a.y;d.position.z=a.z+500*e;d.position.x-=G_36.position.x;d.position.y-=G_36.position.y;d.position.z-=G_36.position.z;d.material.transparent=!0;d.material.map=b;d.material.map.needsUpdate=!0;d.material.side=GLE.DoubleSide;d.material.alphaTest=.5;h&&(d.material.depthTest=!1,d.material.depthWrite=!1,d.renderOrder=10);e="0x"+(33554431).toString(16).slice(1);d.material.color.setHex(e);d.rotation.y-=G_35.rotation.z;d.name="ACT_"+f;GLE_anchorArray.push("ACT_"+f);G_35.position.x=l;G_35.position.y=m;G_35.position.z=r;G_35.rotation.x=q;G_35.rotation.y=x;G_35.rotation.z=G}function RemoveAnchor(a){for(var b=0;b<GLE_RightArray.length;b++)if(30==GLE_RightArray[b])return;G_34.remove(G_35.ge("ACT_"+a))}function ClearAnchor(){for(var a=0;a<GLE_RightArray.length;a++)if(30==GLE_RightArray[a])return;for(a=0;a<GLE_anchorArray.length;a++)G_35.ge(GLE_anchorArray[a])&&G_34.remove(G_35.ge(GLE_anchorArray[a]));GLE_anchorArray=[]}function ShowAnchor(a,b){for(var d=0;d<GLE_RightArray.length;d++)if(31==GLE_RightArray[d])return;G_34.ge("ACT_"+a).visible=b}function ShowAllAnchor(a){for(var b=0;b<G_34.children.length;b++)-1<G_34.children[b].name.indexOf("ACT_")&&(G_34.children[b].visible=a)}function SetBackGroundColor(a,b,d,e){G_29="#"+(16777216+(a<<16)+(b<<8)+d).toString(16).slice(1);GLE_BACK_ALPHA="undefined"==typeof e?1:e;G_4.sr(G_29,GLE_BACK_ALPHA)}function ReSetBackGroundColor(){G_4.sr(G_29,GLE_BACK_ALPHA)}function SaveImage(){render();var a=G_4.domElement;Canvas2Image.saveAsPNG(a,a.width,a.height)}function GetImage(){render();var a=G_4.domElement;return Canvas2Image.getImage(a,a.width,a.height)}function SetLight(a,b,d,e){a="0x"+(16777216+(a<<16)+(b<<8)+d).toString(16).slice(1);G_30.color.setHex(a);G_31.color.setHex(a);G_30.intensity=2*e;G_31.intensity=2*e}function ResetLight(){G_30.color.setHex(16777215);G_31.color.setHex(16777215);G_30.intensity=2;G_31.intensity=2}function GetTypeById(a){a=a.toString().split("#");for(var b=0;b<G_10.length;b++)for(var d=0;d<G_8[b].length;d++){G_34.ge(G_10[b]+"_"+G_8[b][d].model);for(var e=0;e<G_8[b][d].ids.length/3;e++)for(var f=0;f<a.length;f++){var h;h=a[f].toString().split("_");if(h[0]==G_10[b]&&parseInt(h[1])==G_8[b][d].ids[3*e])return G_8[b][d].type}}}function SetTypeColor(a,b,d,e){for(var f=[],h=0;h<G_8[0].length;h++)G_8[0][h].type==a&&f.push(G_8[0][h]);G_14.push([b,d,e,255]);for(h=0;h<G_14.length;h++)G_18.fillStyle="rgba("+G_14[h][0]+","+G_14[h][1]+","+G_14[h][2]+",1.0)",G_18.fillRect(h,127,1,1);a=1/256+(G_14.length-1)/128;b=1/256;for(h=0;h<f.length;h++){d=G_3.ge(f[h].model);e=d.geometry.attributes.uv.array;for(var l=0;l<e.length/2;l++)e[2*l]=a,e[2*l+1]=b;d.geometry.attributes.uv.needsUpdate=!0;d.material.map.needsUpdate=!0}}function SetModelPosition(a,b,d,e){d=-1;for(b=0;b<G_10.length;b++){if(G_10[b]=="GLB_"+a){G_34.ge("GLB_"+a).traverse(function(a){});return}if(G_10[b]==a){d=b;break}}if(!(0>d))for(a=G_8[d],b=0;b<a.length;b++)G_3.ge(a[b].model)&&(d=G_3.ge(a[b].model),d.position.z-=1E3),G_3.ge(a[b].model.replace("big/","small/"))&&(d=G_3.ge(a[b].model.replace("big/","small/")),d.position.z-=1E3)}function SetModelRotation(a,b,d,e){d=-1;for(b=0;b<G_10.length;b++){if(G_10[b]=="GLB_"+a){G_34.ge("GLB_"+a).traverse(function(a){});return}if(G_10[b]==a){d=b;break}}if(!(0>d))for(a=G_8[d],b=0;b<a.length;b++)G_3.ge(a[b].model)&&(d=G_3.ge(a[b].model),d.rotation.z-=.2),G_3.ge(a[b].model.replace("big/","small/"))&&(d=G_3.ge(a[b].model.replace("big/","small/")),d.rotation.z-=.2)}function SetModelScale(a,b,d,e){d=-1;for(b=0;b<G_10.length;b++){if(G_10[b]=="GLB_"+a){G_34.ge("GLB_"+a).traverse(function(a){});return}if(G_10[b]==a){d=b;break}}if(!(0>d))for(a=G_8[d],b=0;b<a.length;b++)G_3.ge(a[b].model)&&(d=G_3.ge(a[b].model),d.scale.z*=1.2),G_3.ge(a[b].model.replace("big/","small/"))&&(d=G_3.ge(a[b].model.replace("big/","small/")),d.scale.z*=1.2)}function SetModelAlpha(a,b){for(var d=-1,e=0;e<G_10.length;e++){if(G_10[e]=="GLB_"+a){G_34.ge("GLB_"+a).traverse(function(a){a instanceof GLE.Mesh&&(a.material.opacity=b,a.material.transparent=!0)});return}if(G_10[e]==a){d=e;break}}if(!(0>d))for(var f=G_8[d],e=0;e<f.length;e++){var h=G_34.ge(G_10[d]+"_"+f[e].model);h&&(h.material.uniforms.color.value.w=b)}}function SetModelColor(a,b,d,e){for(var f=-1,h=0;h<G_10.length;h++){if(G_10[h]=="GLB_"+a){G_34.ge("GLB_"+a).traverse(function(a){if(a instanceof GLE.Mesh){var f="0x"+(16777216+(b<<16)+(d<<8)+e).toString(16).slice(1);a.material.emissive.setHex(f);255==b&&255==d&&255==e&&a.material.emissive.setHex("0x000000")}});return}if(G_10[h]==a){f=h;break}}if(!(0>f))for(h=0;h<G_34.children.length;h++)"Mesh"==G_34.children[h].type&&G_34.children[h].material&&G_34.children[h].material.uniforms&&G_34.children[h].material.uniforms.color&&(G_34.children[h].material.uniforms.color.value.x=b/255,G_34.children[h].material.uniforms.color.value.y=d/255,G_34.children[h].material.uniforms.color.value.z=e/255)}function SetModelVisible(a,b){for(var d=-1,e=0;e<G_10.length;e++){if(G_10[e]=="GLB_"+a){d=G_34.ge("GLB_"+a);d.visible=b;d.traverse(function(a){a instanceof GLE.Mesh&&(a.visible=b)});return}if(G_10[e]==a){d=e;break}}if(!(0>d))for(e=0;e<G_8[d].length;e++){var f=G_34.ge(G_10[d]+"_"+G_8[d][e].model);if(f){var h=f.geometry.attributes.position.array,l=null;1==GLE_RenderMode&&(l=f.ge("edge").geometry.attributes.position.array);for(var m=0;m<G_8[d][e].ids.length/3;m++){var r=G_8[d][e].vstate[2*m+1];if(b){if(0!=r){for(r=G_8[d][e].ids[3*m+1];r<G_8[d][e].ids[3*m+2];r++)h[3*r]*=1E6,h[3*r+1]*=1E6,h[3*r+2]*=1E6;if(1==GLE_RenderMode)for(r=G_8[d][e].eids[3*m+1];r<G_8[d][e].eids[3*m+2];r++)l[3*r]*=1E6,l[3*r+1]*=1E6,l[3*r+2]*=1E6;G_8[d][e].vstate[2*m+1]=0}}else if(1!=r){for(r=G_8[d][e].ids[3*m+1];r<G_8[d][e].ids[3*m+2];r++)h[3*r]/=1E6,h[3*r+1]/=1E6,h[3*r+2]/=1E6;if(1==GLE_RenderMode)for(r=G_8[d][e].eids[3*m+1];r<G_8[d][e].eids[3*m+2];r++)l[3*r]/=1E6,l[3*r+1]/=1E6,l[3*r+2]/=1E6;G_8[d][e].vstate[2*m+1]=1}}f.geometry.attributes.position.needsUpdate=!0;1==GLE_RenderMode&&(f.ge("edge").geometry.attributes.position.needsUpdate=!0)}}}function ResetClip(){var a=Object.freeze([]);G_4.cs=a;for(a=0;a<G_8.length;a++)for(var b=0;b<G_8[a].length;b++){var d=G_34.ge(G_10[a]+"_"+G_8[a][b].model);d&&(d.material.uniforms.bclip.value=!1,d.material.uniforms.clip1.value=new GLE.Vector4(0,0,0,0),d.material.uniforms.clip2.value=new GLE.Vector4(0,0,0,0),d.material.uniforms.clip3.value=new GLE.Vector4(0,0,0,0),d.material.uniforms.clip4.value=new GLE.Vector4(0,0,0,0),d.material.uniforms.clip5.value=new GLE.Vector4(0,0,0,0),d.material.uniforms.clip6.value=new GLE.Vector4(0,0,0,0))}G_24=!1}function MyClip(){var a=new GLE.Vector3(Math.cos(G_35.rotation.z),Math.sin(G_35.rotation.z)*Math.cos(G_35.rotation.x),Math.sin(G_35.rotation.z)*Math.sin(G_35.rotation.x));G_38=new GLE.Plane(a,-G_36.position.x-1*(G_53.min.x+G_41*(G_53.max.x-G_53.min.x)));G_38.translate(G_35.position);a=new GLE.Vector3(-Math.cos(G_35.rotation.z),-Math.sin(G_35.rotation.z)*Math.cos(G_35.rotation.x),-Math.sin(G_35.rotation.z)*Math.sin(G_35.rotation.x));G_381=new GLE.Plane(a,-G_36.position.x-1*(G_53.min.x+G_411*(G_53.max.x-G_53.min.x)));G_381.translate(G_35.position);var b=new GLE.Vector3(Math.cos(G_35.rotation.z),Math.sin(G_35.rotation.z),0),a=new GLE.Vector3(0,0,1),d=Math.PI/2;b.applyAxisAngle(a,d);b=new GLE.Vector3(b.x,b.y*Math.cos(G_35.rotation.x),b.y*Math.sin(G_35.rotation.x));G_39=new GLE.Plane(b,-G_36.position.y-1*(G_53.min.y+G_42*(G_53.max.y-G_53.min.y)));G_39.translate(G_35.position);b=new GLE.Vector3(-Math.cos(G_35.rotation.z),-Math.sin(G_35.rotation.z),0);a=new GLE.Vector3(0,0,1);d=Math.PI/2;b.applyAxisAngle(a,d);b=new GLE.Vector3(b.x,b.y*Math.cos(G_35.rotation.x),b.y*Math.sin(G_35.rotation.x));G_391=new GLE.Plane(b,-G_36.position.y-1*(G_53.min.y+G_421*(G_53.max.y-G_53.min.y)));G_391.translate(G_35.position);a=new GLE.Vector3(0,Math.sin(-G_35.rotation.x),Math.cos(-G_35.rotation.x));G_40=new GLE.Plane(a,-G_36.position.z-1*(G_53.min.z+G_43*(G_53.max.z-G_53.min.z)));G_40.translate(G_35.position);a=new GLE.Vector3(0,-Math.sin(-G_35.rotation.x),-Math.cos(-G_35.rotation.x));G_401=new GLE.Plane(a,-G_36.position.z-1*(G_53.min.z+G_431*(G_53.max.z-G_53.min.z)));G_401.translate(G_35.position);G_4.cs=[G_38,G_39,G_40,G_381,G_391,G_401]}function PlateClip(a,b){"x-min"==a&&(G_41=b);"y-min"==a&&(G_42=b);"z-min"==a&&(G_43=b);"x-max"==a&&(G_411=b);"y-max"==a&&(G_421=b);"z-max"==a&&(G_431=b);MyClip();for(var d=0;d<G_8.length;d++)for(var e=0;e<G_8[d].length;e++){var f=G_34.ge(G_10[d]+"_"+G_8[d][e].model);f&&(f.material.uniforms.bclip.value=!0,f.material.uniforms.clip1.value=new GLE.Vector4(1,0,0,-G_53.min.x-G_41*(G_53.max.x-G_53.min.x)),f.material.uniforms.clip2.value=new GLE.Vector4(-1,0,0,G_53.max.x-G_411*(G_53.max.x-G_53.min.x)),f.material.uniforms.clip3.value=new GLE.Vector4(0,1,0,-G_53.min.y-G_42*(G_53.max.y-G_53.min.y)),f.material.uniforms.clip4.value=new GLE.Vector4(0,-1,0,G_53.max.y-G_421*(G_53.max.y-G_53.min.y)),f.material.uniforms.clip5.value=new GLE.Vector4(0,0,1,-G_53.min.z-G_43*(G_53.max.z-G_53.min.z)),f.material.uniforms.clip6.value=new GLE.Vector4(0,0,-1,G_53.max.z-G_431*(G_53.max.z-G_53.min.z)))}G_24=!0}function ResetActor(a){a=a.toString().split("_");for(var b=parseInt(a[1]),d=0;d<G_10.length;d++)if(a[0]==G_10[d])for(var e=0;e<G_8[d].length;e++)for(var f=0;f<G_8[d][e].ids.length/3;f++)if(b==G_8[d][e].ids[3*f]){var h=G_34.ge(G_10[d]+"_"+G_8[d][e].model),l=h.geometry.attributes.acolor.array,m=h.geometry.attributes.position.array,r=null;1==GLE_RenderMode&&(r=h.ge("edge").geometry.attributes.position.array);for(var q=G_8[d][e].ids[3*f+1];q<G_8[d][e].ids[3*f+2];q++)l[4*q]=255,l[4*q+1]=255,l[4*q+2]=255,l[4*q+3]=255;if(0!=G_8[d][e].vstate[2*f+1]){for(q=G_8[d][e].ids[3*f+1];q<G_8[d][e].ids[3*f+2];q++)m[3*q]*=1E6,m[3*q+1]*=1E6,m[3*q+2]*=1E6;if(1==GLE_RenderMode)for(q=G_8[d][e].eids[3*f+1];q<G_8[d][e].eids[3*f+2];q++)r[3*q]*=1E6,r[3*q+1]*=1E6,r[3*q+2]*=1E6;G_8[d][e].vstate[2*f+1]=0}h.geometry.attributes.acolor.needsUpdate=!0;h.geometry.attributes.position.needsUpdate=!0;1==GLE_RenderMode&&(h.ge("edge").geometry.attributes.position.needsUpdate=!0)}}function ResetAllActor(a){for(var b=0;b<G_10.length;b++)if(!a||G_10[b]==a)for(var d=0;d<G_8[b].length;d++)for(var e=0;e<G_8[b][d].ids.length/3;e++){var f=G_34.ge(G_10[b]+"_"+G_8[b][d].model),h=f.geometry.attributes.acolor.array,l=f.geometry.attributes.position.array,m=null;1==GLE_RenderMode&&(m=f.ge("edge").geometry.attributes.position.array);for(var r=G_8[b][d].ids[3*e+1];r<G_8[b][d].ids[3*e+2];r++)h[4*r]=255,h[4*r+1]=255,h[4*r+2]=255,h[4*r+3]=255;if(0!=G_8[b][d].vstate[2*e+1]){for(r=G_8[b][d].ids[3*e+1];r<G_8[b][d].ids[3*e+2];r++)l[3*r]*=1E6,l[3*r+1]*=1E6,l[3*r+2]*=1E6;if(1==GLE_RenderMode)for(r=G_8[b][d].eids[3*e+1];r<G_8[b][d].eids[3*e+2];r++)m[3*r]*=1E6,m[3*r+1]*=1E6,m[3*r+2]*=1E6;G_8[b][d].vstate[2*e+1]=0}f.geometry.attributes.acolor.needsUpdate=!0;f.geometry.attributes.position.needsUpdate=!0;1==GLE_RenderMode&&(f.ge("edge").geometry.attributes.position.needsUpdate=!0)}}function GetCamera(){for(var a=0;a<GLE_RightArray.length;a++)if(33==GLE_RightArray[a])return;return G_35.position.x+","+G_35.position.y+","+G_35.position.z+","+G_35.rotation.x+","+G_35.rotation.y+","+G_35.rotation.z}function SetCamera(a){for(var b=0;b<GLE_RightArray.length;b++)if(34==GLE_RightArray[b])return;a=a.toString().split(",");G_35.position.x=parseFloat(a[0]);G_35.position.y=parseFloat(a[1]);G_35.position.z=parseFloat(a[2]);G_35.rotation.x=parseFloat(a[3]);G_35.rotation.y=parseFloat(a[4]);G_35.rotation.z=parseFloat(a[5]);return 0}function LatLonToVec(a,b,d){var e;e=Math.sin(GLE.Math.degToRad(a));var f=Math.cos(GLE.Math.degToRad(a)),h=6378137/Math.sqrt(1-.006694380004260835*e*e);a=(.9933056199957392*h+d)*e;e=(h+d)*f*Math.cos(GLE.Math.degToRad(b));b=(h+d)*f*Math.sin(GLE.Math.degToRad(b));return[e,b,a]}function GetVolumeById(a){var b;b=a.toString().split("_");var d=parseInt(b[1]);for(a=0;a<G_10.length;a++)if(b[0]==G_10[a])for(var e=0;e<G_8[a].length;e++)for(var f=0;f<G_8[a][e].ids.length/3;f++)if(d==G_8[a][e].ids[3*f]){b=G_34.ge(G_10[a]+"_"+G_8[a][e].model);d=b.geometry.attributes.position.array;b.geometry.attributes.acolor.needsUpdate=!0;b=[];for(var h=G_8[a][e].ids[3*f+1];h<G_8[a][e].ids[3*f+2];h++){var l=new GLE.Vector3(d[3*h],d[3*h+1],d[3*h+2]);b.push(l)}e=[];for(a=f=0;a<b.length/3;a++)e.push(new GLE.Vector3(b[3*a].x,b[3*a].y,b[3*a].z)),e.push(new GLE.Vector3(b[3*a+1].x,b[3*a+1].y,b[3*a+1].z)),e.push(new GLE.Vector3(b[3*a+2].x,b[3*a+2].y,b[3*a+2].z)),f+=CalculateVolume(new GLE.Vector3(b[3*a].x,b[3*a].y,b[3*a].z),new GLE.Vector3(b[3*a+1].x,b[3*a+1].y,b[3*a+1].z),new GLE.Vector3(b[3*a+2].x,b[3*a+2].y,b[3*a+2].z));return(parseFloat(f)/1E9).toFixed(3)}}function GetAreaById(a){var b;b=a.toString().split("_");var d=parseInt(b[1]);for(a=0;a<G_10.length;a++)if(b[0]==G_10[a])for(var e=0;e<G_8[a].length;e++)for(var f=0;f<G_8[a][e].ids.length/3;f++)if(d==G_8[a][e].ids[3*f]){b=G_34.ge(G_10[a]+"_"+G_8[a][e].model);d=b.geometry.attributes.position.array;b.geometry.attributes.acolor.needsUpdate=!0;b=[];for(var h=G_8[a][e].ids[3*f+1];h<G_8[a][e].ids[3*f+2];h++){var l=new GLE.Vector3(d[3*h],d[3*h+1],d[3*h+2]);b.push(l)}e=[];for(a=f=0;a<b.length/3;a++)e.push(new GLE.Vector3(b[3*a].x,b[3*a].y,b[3*a].z)),e.push(new GLE.Vector3(b[3*a+1].x,b[3*a+1].y,b[3*a+1].z)),e.push(new GLE.Vector3(b[3*a+2].x,b[3*a+2].y,b[3*a+2].z)),f+=M_GetArea([b[3*a].x,b[3*a].y,b[3*a].z],[b[3*a+1].x,b[3*a+1].y,b[3*a+1].z],[b[3*a+2].x,b[3*a+2].y,b[3*a+2].z]);return(parseFloat(f)/1E6).toFixed(3)}}function GetPosByRevitPos(a){new GLE.Matrix4;a=new GLE.Vector3(1E3*a[0],1E3*a[1],1E3*a[2]);a.applyMatrix4(G_34.matrixWorld);return G_35.position.x+","+G_35.position.y+","+G_35.position.z+","+G_35.rotation.x+","+G_35.rotation.y+","+G_35.rotation.z+","+a.x+","+a.y+","+a.z}function GetRevitPosByPos(a){a=a.toString().split(",");a=new GLE.Vector3(parseFloat(a[6]),parseFloat(a[7]),parseFloat(a[8]));var b=new GLE.Matrix4;a.applyMatrix4(b.getInverse(G_34.matrixWorld));return[(a.x/1E3).toFixed(3),(a.y/1E3).toFixed(3),(a.z/1E3).toFixed(3)]}function GetCenterPosById(a){var b;b=a.toString().split("_");var d=parseInt(b[1]);for(a=0;a<G_10.length;a++)if(b[0]==G_10[a])for(var e=0;e<G_8[a].length;e++)for(var f=0;f<G_8[a][e].ids.length/3;f++)if(d==G_8[a][e].ids[3*f]){d=G_34.ge(G_10[a]+"_"+G_8[a][e].model);b=d.geometry.attributes.position.array;d.geometry.attributes.acolor.needsUpdate=!0;for(var d=[],h=G_8[a][e].ids[3*f+1];h<G_8[a][e].ids[3*f+2];h++)d.push(b[3*h]),d.push(b[3*h+1]),d.push(b[3*h+2]);a=(new GLE.Box3).setFromArray(d);e=new GLE.Vector3;a.getCenter(e);new GLE.Matrix4;e.applyMatrix4(G_34.matrixWorld);return G_35.position.x+","+G_35.position.y+","+G_35.position.z+","+G_35.rotation.x+","+G_35.rotation.y+","+G_35.rotation.z+","+e.x+","+e.y+","+e.z}}function GetPosById(a){var b;b=a.toString().split("_");var d=parseInt(b[1]);for(a=0;a<G_10.length;a++)if(b[0]==G_10[a])for(var e=0;e<G_8[a].length;e++)for(var f=0;f<G_8[a][e].ids.length/3;f++)if(d==G_8[a][e].ids[3*f]){d=G_34.ge(G_10[a]+"_"+G_8[a][e].model);b=d.geometry.attributes.position.array;d.geometry.attributes.acolor.needsUpdate=!0;for(var d=[],h=G_8[a][e].ids[3*f+1];h<G_8[a][e].ids[3*f+2];h++)d.push(b[3*h]),d.push(b[3*h+1]),d.push(b[3*h+2]);a=(new GLE.Box3).setFromArray(d);e=new GLE.Vector3(a.min.x,a.min.y,a.min.z);f=new GLE.Vector3(a.max.x,a.min.y,a.min.z);b=new GLE.Vector3(a.max.x,a.max.y,a.min.z);var d=new GLE.Vector3(a.min.x,a.max.y,a.min.z),h=new GLE.Vector3(a.min.x,a.min.y,a.max.z),l=new GLE.Vector3(a.max.x,a.min.y,a.max.z),m=new GLE.Vector3(a.max.x,a.max.y,a.max.z),r=new GLE.Vector3(a.min.x,a.max.y,a.max.z),q=new GLE.Vector3;a.getCenter(q);return e.x+","+e.y+","+e.z+","+f.x+","+f.y+","+f.z+","+b.x+","+b.y+","+b.z+","+d.x+","+d.y+","+d.z+","+h.x+","+h.y+","+h.z+","+l.x+","+l.y+","+l.z+","+m.x+","+m.y+","+m.z+","+r.x+","+r.y+","+r.z+","+q.x+","+q.y+","+q.z}}function ZoomTo(a,b){b||(b=1);var d;d=a.toString().split("_");for(var e=parseInt(d[1]),f=0;f<G_10.length;f++)if(d[0]==G_10[f])for(var h=0;h<G_8[f].length;h++)for(var l=0;l<G_8[f][h].ids.length/3;l++)if(e==G_8[f][h].ids[3*l]){e=G_34.ge(G_10[f]+"_"+G_8[f][h].model);d=e.geometry.attributes.position.array;e.geometry.attributes.acolor.needsUpdate=!0;for(var e=[],m=G_8[f][h].ids[3*l+1];m<G_8[f][h].ids[3*l+2];m++)e.push(d[3*m]),e.push(d[3*m+1]),e.push(d[3*m+2]);f=(new GLE.Box3).setFromArray(e);ZoomFit(f,b);f=new GLE.Box3Helper(f,16711680);f.material.depthTest=!1;f.material.depthWrite=!1;f.renderOrder=100;return}}function SetZoomSpeed(a){GLE_zd=G_5.zd=a}function SetRotateSpeed(a){G_5.rd=a}function SetRotateLimit(a){GLE_AngleLimit=a}function SetPanSpeed(a){GLE_PanSpeed=a}function DisableUpDown(){G_26=!1}function EnableUpDown(){G_26=!0}function ShowActors(a){for(var b=0;b<G_10.length;b++)for(var d=0;d<G_8[b].length;d++)for(var e=0;e<G_8[b][d].ids.length/3;e++){for(var f=G_10[b]+"_"+G_8[b][d].ids[3*e],h=!1,l=0;l<a.length;l++)if(a[l]==f){h=!0;break}if(h){if(l=G_8[b][d].vstate[2*e+1],0!=l){var f=G_34.ge(G_10[b]+"_"+G_8[b][d].model),h=f.geometry.attributes.position.array,m=null;1==GLE_RenderMode&&(m=f.ge("edge").geometry.attributes.position.array);for(l=G_8[b][d].ids[3*e+1];l<G_8[b][d].ids[3*e+2];l++)h[3*l]*=1E6,h[3*l+1]*=1E6,h[3*l+2]*=1E6;if(1==GLE_RenderMode)for(l=G_8[b][d].eids[3*e+1];l<G_8[b][d].eids[3*e+2];l++)m[3*l]*=1E6,m[3*l+1]*=1E6,m[3*l+2]*=1E6;G_8[b][d].vstate[2*e+1]=0;f.geometry.attributes.position.needsUpdate=!0;1==GLE_RenderMode&&(f.ge("edge").geometry.attributes.position.needsUpdate=!0)}}else if(l=G_8[b][d].vstate[2*e+1],0==l){f=G_34.ge(G_10[b]+"_"+G_8[b][d].model);h=f.geometry.attributes.position.array;m=null;1==GLE_RenderMode&&(m=f.ge("edge").geometry.attributes.position.array);for(l=G_8[b][d].ids[3*e+1];l<G_8[b][d].ids[3*e+2];l++)h[3*l]/=1E6,h[3*l+1]/=1E6,h[3*l+2]/=1E6;if(1==GLE_RenderMode)for(l=G_8[b][d].eids[3*e+1];l<G_8[b][d].eids[3*e+2];l++)m[3*l]/=1E6,m[3*l+1]/=1E6,m[3*l+2]/=1E6;G_8[b][d].vstate[2*e+1]=1;f.geometry.attributes.position.needsUpdate=!0;1==GLE_RenderMode&&(f.ge("edge").geometry.attributes.position.needsUpdate=!0)}}}function FlyPause(){GLE_AniManager.pause()}function FlyResume(){GLE_AniManager.resume()}function FlyStop(){GLE_AniManager.clear()}var GLE_AniProper;function FlyAnimation(a,b){for(var d=0;d<GLE_RightArray.length;d++)if(35==GLE_RightArray[d])return;GLE_AniManager=new TimelineMax;for(d=0;d<a.length;d++){var e=[],e=a[d].toString().split(","),f=parseFloat(e[0]),h=parseFloat(e[1]),l=parseFloat(e[2]),m=parseFloat(e[3]),r=parseFloat(e[4]),e=parseFloat(e[5]);if(0<d&&1<a.length){var q=[],q=a[d-1].toString().split(","),x=parseFloat(q[0]),G=parseFloat(q[1]),B=parseFloat(q[2]),w=parseFloat(q[3]),v=parseFloat(q[4]),q=parseFloat(q[5]);G_35.position.x=x;G_35.position.y=G;G_35.position.z=B;G_35.rotation.x=w;G_35.rotation.y=v;G_35.rotation.z=q;1==d&&(GLE_AniProper={pX:x,pY:G,pZ:B,rX:w,rY:v,rZ:q});GLE_AniManager.to(GLE_AniProper,.001*b/(a.length-1),{pX:f,pY:h,pZ:l,rX:m,rY:r,rZ:e,ease:Linear.easeNone,onUpdate:function(){G_35.position.x=GLE_AniProper.pX;G_35.position.y=GLE_AniProper.pY;G_35.position.z=GLE_AniProper.pZ;G_35.rotation.x=GLE_AniProper.rX;G_35.rotation.y=GLE_AniProper.rY;G_35.rotation.z=GLE_AniProper.rZ},onComplete:function(){}})}else(new TN.Tn(G_35.position)).to({x:f,y:h,z:l},1).easing(TN.Easing.Linear.None).start(),(new TN.Tn(G_35.rotation)).to({x:m,y:r,z:e},1).easing(TN.Easing.Linear.None).start()}}function SetClickMode(a){G_49=a;ClearMeasure()}function SetThickness(a){G_52=a}var SetPositionccod=function(a,b,d){ccod.call(this);this.type="SetPositionccod";this.name="Set Position";this.updatable=!0;this.object=a;void 0!==a&&void 0!==b&&(this.oldPosition=a.position.clone(),this.newPosition=b.clone());void 0!==d&&(this.oldPosition=d.clone())};SetPositionccod.prototype={executejson:function(){if(null!=this.json){ccod.prototype.fromJSON.call(this,this.json);for(var a=this.json.objectName.replace("scene_",""),b=0;b<G_34.children.length;b++)if(-1<G_34.children[b].name.indexOf(a+"_")||-1<G_34.children[b].name.indexOf(a))this.object=G_34.children[b],this.oldPosition=(new GLE.Vector3).fromArray(this.json.oldPosition),this.newPosition=(new GLE.Vector3).fromArray(this.json.newPosition),this.object.position.copy(this.newPosition),this.object.uld(!0)}}};var SetRotationccod=function(a,b,d){ccod.call(this);this.type="SetRotationccod";this.name="Set Rotation";this.updatable=!0;this.object=a;void 0!==a&&void 0!==b&&(this.oldRotation=a.rotation.clone(),this.newRotation=b.clone());void 0!==d&&(this.oldRotation=d.clone())};SetRotationccod.prototype={executejson:function(){if(null!=this.json){ccod.prototype.fromJSON.call(this,this.json);for(var a=this.json.objectName.replace("scene_",""),b=0;b<G_34.children.length;b++)if(-1<G_34.children[b].name.indexOf(a+"_")||-1<G_34.children[b].name.indexOf(a))this.object=G_34.children[b],this.oldRotation=(new GLE.Euler).fromArray(this.json.oldRotation),this.newRotation=(new GLE.Euler).fromArray(this.json.newRotation),this.object.rotation.copy(this.newRotation),this.object.uld(!0)}}};var SetScaleccod=function(a,b,d){ccod.call(this);this.type="SetScaleccod";this.name="Set Scale";this.updatable=!0;this.object=a;void 0!==a&&void 0!==b&&(this.oldScale=a.scale.clone(),this.newScale=b.clone());void 0!==d&&(this.oldScale=d.clone())};SetScaleccod.prototype={executejson:function(){if(null!=this.json){ccod.prototype.fromJSON.call(this,this.json);for(var a=this.json.objectName.replace("scene_",""),b=0;b<G_34.children.length;b++)if(-1<G_34.children[b].name.indexOf(a+"_")||-1<G_34.children[b].name.indexOf(a))this.object=G_34.children[b],this.oldScale=(new GLE.Vector3).fromArray(this.json.oldScale),this.newScale=(new GLE.Vector3).fromArray(this.json.newScale),this.object.scale.copy(this.newScale),this.object.uld(!0)}}};var SetValueccod=function(a,b,d){ccod.call(this);this.type="SetValueccod";this.name="Set "+b;this.updatable=!0;this.object=a;this.attributeName=b;this.oldValue=void 0!==a?a[b]:void 0;this.newValue=d};SetValueccod.prototype={executejson:function(){}};var ccod=function(){this.id=-1;this.updatable=this.inMemory=!1;this.name=this.type=""};ccod.prototype.toJSON=function(){var a={};a.type=this.type;a.id=this.id;a.name=this.name;return a};ccod.prototype.fromJSON=function(a){this.inMemory=!0;this.type=a.type;this.id=a.id;this.name=a.name};G_71=function(){this.undos=[];this.redos=[];this.lastCmdTime=new Date;this.idCounter=0;this.G_71Disabled=!1;ccod()};G_71.prototype={recovery:function(a){if(void 0!==a)for(var b=0;b<a.undos.length;b++){var d=a.undos[b],e=new window[d.type];e.json=d;e.id=d.id;e.name=d.name;this.undos.push(e);this.idCounter=d.id>this.idCounter?d.id:this.idCounter;e.executejson()}}};function loadEdit(a){G_71=new G_71;$.getJSON(a,function(a){G_71.recovery(a)})}function ChangeCameras(){if(G_2 instanceof GLE.Pa){var a=window.innerWidth,b=window.innerHeight;G_2=new GLE.OrthographicCamera(a/-.016,a/.016,b/.016,b/-.016,1E-6,1E5);var d=G_53.getCenter();G_59=d;G_32=G_53.getSize().length();G_2.position.copy(d);G_2.position.y-=G_32*GLE_PrimitiveViewDistance;G_2.near=G_32/1E4;G_2.far=1E4*G_32;var e=G_53.max.x-G_53.min.x,f=G_53.max.y-G_53.min.y,a=window.innerWidth,b=window.innerHeight,h=a/e,l=b/f;e>2*f?G_2 instanceof GLE.OrthographicCamera&&(G_2.left=a/-h/2,G_2.right=a/h/2,G_2.top=b/h/2,G_2.bottom=b/-h/2):G_2 instanceof GLE.OrthographicCamera&&(G_2.left=a/-l/2,G_2.right=a/l/2,G_2.top=b/l/2,G_2.bottom=b/-l/2);G_2.ux();G_2.lookAt(d);GLE_topCamera.position.copy(d);GLE_topCamera.position.y-=G_32*GLE_PrimitiveViewDistance;GLE_topCamera.near=G_32/1E4;GLE_topCamera.far=1E4*G_32;GLE_topCamera.ux();GLE_topCamera.lookAt(d);G_35.position.x=d.x;G_35.position.y=d.y;G_35.position.z=d.z;G_36.position.x=0;G_36.position.y=0;G_36.position.z=0;SetPivot("0,0,0,0,0,0,"+d.x+","+d.y+","+d.z);G_35.rotation.x=Math.PI*GLE_PrimitiveViewAngle/180;G_35.rotation.y=0;G_35.rotation.z=Math.PI/4;G_56=M_distance([G_35.position.x,G_35.position.y,G_35.position.z],[G_2.position.x,G_2.position.y,G_2.position.z])}else G_2=new GLE.Pa(45,G_0.offsetWidth/G_0.offsetHeight,1E-6,1E5),ZoomFitAll()}function CameraRecovery(){G_2=new GLE.Pa(45,G_0.offsetWidth/G_0.offsetHeight,1E-6,1E5);ZoomFitAll()}String.prototype.myReplace=function(a,b){return this.replace(new RegExp(a,"g"),b)};function OrthogonalScreenshot(a,b){SetModelVisible(a,!1);(new Date).getTime();b=("#"+b).myReplace("#","#"+a+"_");for(var d=0;d<G_10.length;d++)for(var e=0;e<G_8[d].length;e++){for(var f=G_34.ge(G_10[d]+"_"+G_8[d][e].model),h=f.geometry.attributes.position.array,l=0;l<G_8[d][e].ids.length/3;l++)if(-1<b.indexOf(G_10[d]+"_"+G_8[d][e].ids[3*l])&&0!=G_8[d][e].vstate[2*l+1]){for(var m=G_8[d][e].ids[3*l+1];m<G_8[d][e].ids[3*l+2];m++)h[3*m]*=1E6,h[3*m+1]*=1E6,h[3*m+2]*=1E6;if(1==GLE_RenderMode)for(m=G_8[d][e].eids[3*l+1];m<G_8[d][e].eids[3*l+2];m++);G_8[d][e].vstate[2*l+1]=0}f.geometry.attributes.position.needsUpdate=!0;1==GLE_RenderMode&&(f.ge("edge").geometry.attributes.position.needsUpdate=!0)}ReSetPivot();d=G_53.getCenter();G_35.position.x=d.x;G_35.position.y=d.y;G_35.position.z=d.z;G_35.rotation.x=Math.PI/2;G_35.rotation.y=0;G_35.rotation.z=0;G_4.render(G_3,G_2);d=GLE_siy();SetModelVisible(a,!0);return d}function GLE_siy(){var a=Calculationmodelsize1().split(","),b=GLE_SCn(a[0]),d=GLE_SCn(a[1]),e=GLE_SCn(a[2]),a=GLE_SCn(a[3]),f=G_4.domElement;return Canvas2Image.saveAsPNGxy(f,f.width,f.height,e,a,b,d,!0)+"***"+b+"|||"+d}function Create2DWindow(a,b,d,e){var f=b/a*d;f<e?(G_63=e=f,G_62=d):(G_62=d=a/b*e,G_63=e);return d+","+e}function getcheckguid(a,b,d,e){if(G_7){ReSetPivot();var f=G_53.getCenter();G_35.position.x=f.x;G_35.position.y=f.y;G_35.position.z=f.z;G_35.rotation.x=Math.PI/2;G_35.rotation.y=0;G_35.rotation.z=0;f=new GLE.Vector2;SetModelVisible(d,!1);for(var h=[],l=0;l<G_10.length;l++)for(var m=0;m<G_8[l].length;m++){for(var r=G_34.ge(G_10[l]+"_"+G_8[l][m].model),q=r.geometry.attributes.position.array,x=0;x<G_8[l][m].ids.length/3;x++)if(-1<e.indexOf(G_10[l]+"_"+G_8[l][m].ids[3*x])&&0!=G_8[l][m].vstate[2*x+1]){for(var G=G_8[l][m].ids[3*x+1];G<G_8[l][m].ids[3*x+2];G++)q[3*G]*=1E6,q[3*G+1]*=1E6,q[3*G+2]*=1E6,h.push(q[3*G]),h.push(q[3*G+1]),h.push(q[3*G+2]);if(1==GLE_RenderMode)for(G=G_8[l][m].eids[3*x+1];G<G_8[l][m].eids[3*x+2];G++);G_8[l][m].vstate[2*x+1]=0}r.geometry.attributes.position.needsUpdate=!0;1==GLE_RenderMode&&(r.ge("edge").geometry.attributes.position.needsUpdate=!0)}l=Calculationmodelsize1();G_60=l.split(",")[0];G_61=l.split(",")[1];e=(new GLE.Box3).setFromArray(h).getCenter();h=new GLE.PlaneGeometry(1E4*G_60,1E4*G_61);m=new GLE.Mal({color:0});h=new GLE.Mesh(h,m);h.position.x=e.x;h.position.y=e.y;h.position.z=e.z;h.name="GLE_plane";G_34.add(h);e.applyMatrix4(G_34.matrixWorld);G_4.render(G_3,G_2);m=[];m.push(G_34.ge("GLE_plane"));r=l.split(",")[2];l=l.split(",")[3];b=G_61/G_63*b+1*l;f.x=(G_60/G_62*a+1*r)/G_4.domElement.offsetWidth*2-1;f.y=2*-(b/G_4.domElement.offsetHeight)+1;G_16.sa(f,G_2);a=G_16.is(m,!1);G_34.remove(h);SetModelVisible(d,!0);0<a.length&&(f=new GLE.Vector3(a[0].point.x,e.y,a[0].point.z),GLE_ZTVr3(f,GLE_ZoomDistance))}}function ChangeZoomDistance(a){GLE_ZoomDistance=a}var GLE_pickingData=[];function Calculationmodelsize(){G_53.getCenter();G_35.rotation.x=Math.PI/2;G_35.rotation.y=0;G_35.rotation.z=0;var a=window.innerWidth,b=window.innerHeight;G_4.sr(11584734,1);G_7=!1;G_3.ge("back").visible=!1;G_3.ge("myback")&&(G_3.ge("myback").visible=!1);G_3.ge("LightActor")&&(G_3.ge("LightActor").visible=!1);G_48.visible&&(G_48.visible=!1);G_4.render(G_3,G_2,G_6);var d=new Uint8Array(4*a*b);G_4.rls(G_6,0,0,1*a,1*b,d);G_35.rotation.x=Math.PI*GLE_PrimitiveViewAngle/180;G_35.rotation.y=0;G_35.rotation.z=Math.PI/4;G_4.sr(G_29,GLE_BACK_ALPHA);G_7=!0;G_3.ge("back").material.uniforms.texture1.value&&(G_3.ge("back").visible=!0);G_3.ge("myback")&&(G_3.ge("myback").visible=!0);G_3.ge("LightActor")&&(G_3.ge("LightActor").visible=!0);for(var e=b=0,f=0,h=0,l=0;l<d.length/4;l++)if(176!=d[4*l]||196!=d[4*l+1]||222!=d[4*l+2]){var m=l%a+1,r=Math.floor(l/a)+1;0==b?(e=b=m,h=f=r):(m>b?b=m:m<e&&(e=m),r>f?f=r:r<h&&(h=r))}G_60=b-e;G_61=f-h}function Calculationmodelsize1(){var a=window.innerWidth,b=window.innerHeight;G_4.sr(11584734,1);G_7=!1;G_3.ge("back").visible=!1;G_3.ge("myback")&&(G_3.ge("myback").visible=!1);G_3.ge("LightActor")&&(G_3.ge("LightActor").visible=!1);G_48.visible&&(G_48.visible=!1);G_4.render(G_3,G_2,G_6);var d=new Uint8Array(4*a*b);G_4.rls(G_6,0,0,1*a,1*b,d);G_4.sr(G_29,GLE_BACK_ALPHA);G_7=!0;G_3.ge("back").material.uniforms.texture1.value&&(G_3.ge("back").visible=!0);G_3.ge("myback")&&(G_3.ge("myback").visible=!0);G_3.ge("LightActor")&&(G_3.ge("LightActor").visible=!0);for(var e=0,f=0,h=0,l=0,m=0;m<d.length/4;m++)if(176!=d[4*m]||196!=d[4*m+1]||222!=d[4*m+2]){var r=m%a+1,q=Math.floor(m/a)+1;0==e?(f=e=r,l=h=q):(r>e?e=r:r<f&&(f=r),q>h?h=q:q<l&&(l=q))}return e-f+","+(h-l)+","+f+","+(b-h)}function GLE_CSR(a,b){0<a?GLE_rotatez=b-90:(GLE_rotatez=b-90,GLE_rotatez=a+GLE_rotatez);360<Math.abs(GLE_rotatez)&&(GLE_rotatez=-(Math.abs(GLE_rotatez)-360));RotationArrow(GLE_translatex,GLE_translatey,GLE_rotatez)}function RotationArrow(a,b,d){}function GLE_dZm(){var a=0,b=window.screen,d=navigator.userAgent.toLowerCase();void 0!==window.devicePixelRatio?a=window.devicePixelRatio:~d.indexOf("msie")?b.deviceXDPI&&b.logicalXDPI&&(a=b.deviceXDPI/b.logicalXDPI):void 0!==window.outerWidth&&void 0!==window.innerWidth&&(a=window.outerWidth/window.innerWidth);a&&(a=Math.round(100*a));return a}var GLE_Zoom=GLE_dZm();function GLE_SCn(a){return 100==GLE_Zoom?a:1*a+(GLE_Zoom-100)/100*a*1}function GLE_ZFVr(a,b){GLE_lastPivot.toString().split(",");var d=a.getCenter();SetPivot(G_35.position.x+","+G_35.position.y+","+G_35.position.z+","+G_35.rotation.x+","+G_35.rotation.y+","+G_35.rotation.z+","+d.x+","+d.y+","+d.z);G_35.rotation.x=0;G_35.rotation.y=0;G_35.rotation.z=0;a.getCenter();a.getSize().length();G_35.position.x=G_2.position.x;G_35.position.y=G_2.position.y+1*b;G_35.position.z=G_2.position.z;G_35.uld(!0)}function GLE_ZTVr3(a,b){b||(b=1);var d=[];d.push(a.x);d.push(a.y);d.push(a.z);d=(new GLE.Box3).setFromArray(d);GLE_ZFVr(d,b)}!function(a,b){"object"==typeof exports&&"undefined"!=typeof module?module.exports=b():"function"==typeof define&&define.amd?define(b):a.ES6Promise=b()}(this,function(){function a(){return function(){return process.nextTick(h)}}function b(){return"undefined"!=typeof Q?function(){Q(h)}:f()}function d(){var a=0,b=new ca(h),d=document.createTextNode("");return b.observe(d,{characterData:!0}),function(){d.data=a=++a%2}}function e(){var a=new MessageChannel;return a.port1.onmessage=h,function(){return a.port2.postMessage(0)}}function f(){var a=setTimeout;return function(){return a(h,1)}}function h(){for(var a=0;a<V;a+=2)(0,R[a])(R[a+1]),R[a]=void 0,R[a+1]=void 0;V=0}function l(){try{var a=require("vertx");return Q=a.runOnLoop||a.runOnContext,b()}catch(na){return f()}}function m(a,b){var d=arguments,e=this,f=new this.constructor(q);void 0===f[ta]&&A(f);var h=e._state;return h?!function(){var a=d[h-1];K(function(){return F(h,f,a,e._result)})}():C(e,f,a,b),f}function r(a){if(a&&"object"==typeof a&&a.constructor===this)return a;var b=new this(q);return k(b,a),b}function q(){}function x(a){try{return a.then}catch(na){return ga.error=na,ga}}function G(a,b,d,e){try{a.call(b,d,e)}catch(X){return X}}function B(a,b,d){K(function(a){var e=!1,f=G(d,b,function(d){e||(e=!0,b!==d?k(a,d):p(a,d))},function(b){e||(e=!0,E(a,b))},"Settle: "+(a._label||" unknown promise"));!e&&f&&(e=!0,E(a,f))},a)}function w(a,b){b._state===Y?p(a,b._result):b._state===S?E(a,b._result):C(b,void 0,function(b){return k(a,b)},function(b){return E(a,b)})}function v(a,b,d){b.constructor===a.constructor&&d===m&&b.constructor.resolve===r?w(a,b):d===ga?(E(a,ga.error),ga.error=null):void 0===d?p(a,b):"function"==typeof d?B(a,b,d):p(a,b)}function k(a,b){if(a===b)E(a,new TypeError("You cannot resolve a promise with itself"));else{var d=typeof b;null===b||"object"!==d&&"function"!==d?p(a,b):v(a,b,x(b))}}function u(a){a._onerror&&a._onerror(a._result);W(a)}function p(a,b){a._state===da&&(a._result=b,a._state=Y,0!==a._subscribers.length&&K(W,a))}function E(a,b){a._state===da&&(a._state=S,a._result=b,K(u,a))}function C(a,b,d,e){var f=a._subscribers,h=f.length;a._onerror=null;f[h]=b;f[h+Y]=d;f[h+S]=e;0===h&&a._state&&K(W,a)}function W(a){var b=a._subscribers,d=a._state;if(0!==b.length){for(var e,f,h=a._result,l=0;l<b.length;l+=3)e=b[l],f=b[l+d],e?F(d,e,f,h):f(h);a._subscribers.length=0}}function aa(){this.error=null}function F(a,b,d,e){var f="function"==typeof d,h=void 0,l=void 0,m=void 0,q=void 0;if(f){var r;try{r=d(e)}catch(T){r=(ja.error=T,ja)}if(h=r,h===ja?(q=!0,l=h.error,h.error=null):m=!0,b===h)return void E(b,new TypeError("A promises callback cannot return that same promise."))}else h=e,m=!0;b._state!==da||(f&&m?k(b,h):q?E(b,l):a===Y?p(b,h):a===S&&E(b,h))}function L(a,b){try{b(function(b){k(a,b)},function(b){E(a,b)})}catch(Oa){E(a,Oa)}}function A(a){a[ta]=ka++;a._state=void 0;a._result=void 0;a._subscribers=[]}function H(a,b){this._instanceConstructor=a;this.promise=new a(q);this.promise[ta]||A(this.promise);N(b)?(this.length=b.length,this._remaining=b.length,this._result=Array(this.length),0===this.length?p(this.promise,this._result):(this.length=this.length||0,this._enumerate(b),0===this._remaining&&p(this.promise,this._result))):E(this.promise,Error("Array Methods must be provided an Array"))}function D(a){this[ta]=ka++;this._result=this._state=void 0;this._subscribers=[];if(q!==a){if("function"!=typeof a)throw new TypeError("You must pass a resolver function as the first argument to the promise constructor");if(this instanceof D)L(this,a);else throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");}}var M=void 0,N=M=Array.isArray?Array.isArray:function(a){return"[object Array]"===Object.prototype.toString.call(a)},V=0,Q=void 0,J=void 0,K=function(a,b){R[V]=a;R[V+1]=b;V+=2;2===V&&(J?J(h):Z())},ba=(M="undefined"!=typeof window?window:void 0)||{},ca=ba.MutationObserver||ba.WebKitMutationObserver,ba="undefined"==typeof self&&"undefined"!=typeof process&&"[object process]"==={}.toString.call(process),Na="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,R=Array(1E3),Z=void 0,Z=ba?a():ca?d():Na?e():void 0===M&&"function"==typeof require?l():f(),ta=Math.random().toString(36).substring(16),da=void 0,Y=1,S=2,ga=new aa,ja=new aa,ka=0;return H.prototype._enumerate=function(a){for(var b=0;this._state===da&&b<a.length;b++)this._eachEntry(a[b],b)},H.prototype._eachEntry=function(a,b){var d=this._instanceConstructor,e=d.resolve;e===r?(e=x(a),e===m&&a._state!==da?this._settledAt(a._state,b,a._result):"function"!=typeof e?(this._remaining--,this._result[b]=a):d===D?(d=new d(q),v(d,a,e),this._willSettleAt(d,b)):this._willSettleAt(new d(function(b){return b(a)}),b)):this._willSettleAt(e(a),b)},H.prototype._settledAt=function(a,b,d){var e=this.promise;e._state===da&&(this._remaining--,a===S?E(e,d):this._result[b]=d);0===this._remaining&&p(e,this._result)},H.prototype._willSettleAt=function(a,b){var d=this;C(a,void 0,function(a){return d._settledAt(Y,b,a)},function(a){return d._settledAt(S,b,a)})},D.all=function(a){return(new H(this,a)).promise},D.race=function(a){var b=this;return new b(N(a)?function(d,e){for(var f=a.length,h=0;h<f;h++)b.resolve(a[h]).then(d,e)}:function(a,b){return b(new TypeError("You must pass an array to race."))})},D.resolve=r,D.reject=function(a){var b=new this(q);return E(b,a),b},D._setScheduler=function(a){J=a},D._setAsap=function(a){K=a},D._asap=K,D.prototype={constructor:D,then:m,"catch":function(a){return this.then(null,a)}},D.polyfill=function(){var a=void 0;if("undefined"!=typeof global)a=global;else if("undefined"!=typeof self)a=self;else try{a=Function("return this")()}catch(Ea){throw Error("polyfill failed because global object is unavailable in this environment");}var b=a.Promise;if(b){var d=null;try{d=Object.prototype.toString.call(b.resolve())}catch(Ea){}if("[object Promise]"===d&&!b.cast)return}a.Promise=D},D.Promise=D,D});
|
|
GLE.Gr=function(){function a(a){this.manager=void 0!==a?a:GLE.DefaultLr;this.dracoLoader=null}function b(){var a={};return{get:function(b){return a[b]},add:function(b,d){a[b]=d},remove:function(b){delete a[b]},removeAll:function(){a={}}}}function d(){if(!GLE.DDSLoader)throw Error("GLE.Gr: Attempting to load .dds texture without importing GLE.DDSLoader");this.name=C.MSFT_TEXTURE_DDS;this.ddsLoader=new GLE.DDSLoader}function e(a){this.name=C.KHR_LIGHTS_PUNCTUAL;this.lights=[];a=(a.extensions&&a.extensions[C.KHR_LIGHTS_PUNCTUAL]||{}).lights||[];for(var b=0;b<a.length;b++){var d=a[b],e;e=new GLE.Color(16777215);void 0!==d.color&&e.fromArray(d.color);var f=void 0!==d.range?d.range:0;switch(d.type){case "directional":e=new GLE.Dt(e);e.target.position.set(0,0,1);e.add(e.target);break;case "point":e=new GLE.PointLight(e);e.distance=f;break;case "spot":e=new GLE.SpotLight(e);e.distance=f;d.spot=d.spot||{};d.spot.innerConeAngle=void 0!==d.spot.innerConeAngle?d.spot.innerConeAngle:0;d.spot.outerConeAngle=void 0!==d.spot.outerConeAngle?d.spot.outerConeAngle:Math.PI/4;e.angle=d.spot.outerConeAngle;e.penumbra=1-d.spot.innerConeAngle/d.spot.outerConeAngle;e.target.position.set(0,0,1);e.add(e.target);break;default:throw Error('GLE.Gr: Unexpected light type, "'+d.type+'".');}e.decay=2;void 0!==d.intensity&&(e.intensity=d.intensity);e.name=d.name||"light_"+b;this.lights.push(e)}}function f(a){this.name=C.KHR_MATERIALS_UNLIT}function h(a){this.name=C.KHR_BINARY_GT;this.body=this.content=null;var b=new DataView(a,0,aa);this.header={magic:GLE.LoaderUtils.decodeText(new Uint8Array(a.slice(0,4))),version:b.getUint32(4,!0),length:b.getUint32(8,!0)};if(this.header.magic!==W)throw Error("GLE.Gr: Unsupported glTF-Binary header.");if(2>this.header.version)throw Error("GLE.Gr: Legacy binary file detected. Use LegacyGr instead.");for(var b=new DataView(a,aa),d=0;d<b.byteLength;){var e=b.getUint32(d,!0),d=d+4,f=b.getUint32(d,!0),d=d+4;f===F.JSON?(f=new Uint8Array(a,aa+d,e),this.content=GLE.LoaderUtils.decodeText(f)):f===F.BIN&&(f=aa+d,this.body=a.slice(f,f+e));d+=e}if(null===this.content)throw Error("GLE.Gr: JSON content not found.");}function l(a,b){if(!b)throw Error("GLE.Gr: No DRACOLoader instance provided.");this.name=C.KHR_DRACO_MESH_COMPRESSION;this.json=a;this.dracoLoader=b}function m(){return{name:C.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS,specularGlossinessParams:"color map lightMap lightMapIntensity aoMap aoMapIntensity emissive emissiveIntensity emissiveMap bumpMap bumpScale normalMap displacementMap displacementScale displacementBias specularMap specular glossinessMap glossiness alphaMap envMap envMapIntensity refractionRatio".split(" "),getMaterialType:function(){return GLE.ShaderMaterial},extendParams:function(a,b,d){b=b.extensions[this.name];var e=GLE.ShaderLib.standard,f=GLE.UniformsUtils.clone(e.uniforms),h=e.fragmentShader.replace("uniform float roughness;","uniform vec3 specular;").replace("uniform float metalness;","uniform float glossiness;").replace("#include \x3croughnessmap_pars_fragment\x3e","#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif").replace("#include \x3cmetalnessmap_pars_fragment\x3e","#ifdef USE_GLOSSINESSMAP\n\tuniform sampler2D glossinessMap;\n#endif").replace("#include \x3croughnessmap_fragment\x3e","vec3 specularFactor \x3d specular;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular \x3d texture2D( specularMap, vUv );\n\ttexelSpecular \x3d sRGBToLinear( texelSpecular );\n\t// reads channel RGB, compatible with a glTF Specular-Glossiness (RGBA) texture\n\tspecularFactor *\x3d texelSpecular.rgb;\n#endif").replace("#include \x3cmetalnessmap_fragment\x3e","float glossinessFactor \x3d glossiness;\n#ifdef USE_GLOSSINESSMAP\n\tvec4 texelGlossiness \x3d texture2D( glossinessMap, vUv );\n\t// reads channel A, compatible with a glTF Specular-Glossiness (RGBA) texture\n\tglossinessFactor *\x3d texelGlossiness.a;\n#endif").replace("#include \x3clights_physical_fragment\x3e","PhysicalMaterial material;\nmaterial.diffuseColor \x3d diffuseColor.rgb;\nmaterial.specularRoughness \x3d clamp( 1.0 - glossinessFactor, 0.04, 1.0 );\nmaterial.specularColor \x3d specularFactor.rgb;");delete f.roughness;delete f.metalness;delete f.roughnessMap;delete f.metalnessMap;f.specular={value:(new GLE.Color).setHex(1118481)};f.glossiness={value:.5};f.specularMap={value:null};f.glossinessMap={value:null};a.vertexShader=e.vertexShader;a.fragmentShader=h;a.uniforms=f;a.defines={STANDARD:""};a.color=new GLE.Color(1,1,1);a.opacity=1;e=[];Array.isArray(b.diffuseFactor)&&(f=b.diffuseFactor,a.color.fromArray(f),a.opacity=f[3]);void 0!==b.diffuseTexture&&e.push(d.assignTexture(a,"map",b.diffuseTexture.index));a.emissive=new GLE.Color(0,0,0);a.glossiness=void 0!==b.glossinessFactor?b.glossinessFactor:1;a.specular=new GLE.Color(1,1,1);Array.isArray(b.specularFactor)&&a.specular.fromArray(b.specularFactor);void 0!==b.specularGlossinessTexture&&(b=b.specularGlossinessTexture.index,e.push(d.assignTexture(a,"glossinessMap",b)),e.push(d.assignTexture(a,"specularMap",b)));return Promise.all(e)},createMaterial:function(a){var b=new GLE.ShaderMaterial({defines:a.defines,vertexShader:a.vertexShader,fragmentShader:a.fragmentShader,uniforms:a.uniforms,fog:!0,lights:!0,opacity:a.opacity,transparent:a.transparent});b.isGTSpecularGlossinessMaterial=!0;b.color=a.color;b.map=void 0===a.map?null:a.map;b.lightMap=null;b.lightMapIntensity=1;b.aoMap=void 0===a.aoMap?null:a.aoMap;b.aoMapIntensity=1;b.emissive=a.emissive;b.emissiveIntensity=1;b.emissiveMap=void 0===a.emissiveMap?null:a.emissiveMap;b.bumpMap=void 0===a.bumpMap?null:a.bumpMap;b.bumpScale=1;b.normalMap=void 0===a.normalMap?null:a.normalMap;a.normalScale&&(b.normalScale=a.normalScale);b.displacementMap=null;b.displacementScale=1;b.displacementBias=0;b.specularMap=void 0===a.specularMap?null:a.specularMap;b.specular=a.specular;b.glossinessMap=void 0===a.glossinessMap?null:a.glossinessMap;b.glossiness=a.glossiness;b.alphaMap=null;b.envMap=void 0===a.envMap?null:a.envMap;b.envMapIntensity=1;b.refractionRatio=.98;b.extensions.derivatives=!0;return b},cloneMaterial:function(a){var b=a.clone();b.isGTSpecularGlossinessMaterial=!0;for(var d=this.specularGlossinessParams,e=0,f=d.length;e<f;e++)b[d[e]]=a[d[e]];return b},refreshUniforms:function(a,b,d,e,f,h){if(!0===f.isGTSpecularGlossinessMaterial){a=f.uniforms;b=f.defines;a.opacity.value=f.opacity;a.diffuse.value.copy(f.color);a.emissive.value.copy(f.emissive).multiplyScalar(f.emissiveIntensity);a.map.value=f.map;a.specularMap.value=f.specularMap;a.alphaMap.value=f.alphaMap;a.lightMap.value=f.lightMap;a.lightMapIntensity.value=f.lightMapIntensity;a.aoMap.value=f.aoMap;a.aoMapIntensity.value=f.aoMapIntensity;var l;f.map?l=f.map:f.specularMap?l=f.specularMap:f.displacementMap?l=f.displacementMap:f.normalMap?l=f.normalMap:f.bumpMap?l=f.bumpMap:f.glossinessMap?l=f.glossinessMap:f.alphaMap?l=f.alphaMap:f.emissiveMap&&(l=f.emissiveMap);void 0!==l&&(l.isWt&&(l=l.texture),!0===l.matrixAutoUpdate&&l.updateMatrix(),a.uvTransform.value.copy(l.matrix));a.envMap.value=f.envMap;a.envMapIntensity.value=f.envMapIntensity;a.flipEnvMap.value=f.envMap&&f.envMap.isCubeTexture?-1:1;a.refractionRatio.value=f.refractionRatio;a.specular.value.copy(f.specular);a.glossiness.value=f.glossiness;a.glossinessMap.value=f.glossinessMap;a.emissiveMap.value=f.emissiveMap;a.bumpMap.value=f.bumpMap;a.normalMap.value=f.normalMap;a.displacementMap.value=f.displacementMap;a.displacementScale.value=f.displacementScale;a.displacementBias.value=f.displacementBias;null!==a.glossinessMap.value&&void 0===b.USE_GLOSSINESSMAP&&(b.USE_GLOSSINESSMAP="",b.USE_ROUGHNESSMAP="");null===a.glossinessMap.value&&void 0!==b.USE_GLOSSINESSMAP&&(delete b.USE_GLOSSINESSMAP,delete b.USE_ROUGHNESSMAP)}}}}function r(a,b,d,e){GLE.Interpolant.call(this,a,b,d,e)}function q(a,b){return"string"!==typeof a||""===a?"":/^(https?:)?\/\//i.test(a)||/^data:.*,.*$/i.test(a)||/^blob:.*$/i.test(a)?a:b+a}function x(a,b,d){for(var e in d.extensions)void 0===a[e]&&(b.userData.gltfExtensions=b.userData.gltfExtensions||{},b.userData.gltfExtensions[e]=d.extensions[e])}function G(a,b){void 0!==b.extras&&("object"===typeof b.extras?a.userData=b.extras:console.warn("GLE.Gr: Ignoring primitive type .extras, "+b.extras))}function B(a,b){if(Object.keys(a).length!==Object.keys(b).length)return!1;for(var d in a)if(a[d]!==b[d])return!1;return!0}function w(a,b){if(a.length!==b.length)return!1;for(var d=0,e=a.length;d<e;d++)if(a[d]!==b[d])return!1;return!0}function v(a,b){for(var d=0,e=a.length;d<e;d++){var f=a[d],h;h=f.primitive;h=h.indices!==b.indices?!1:B(h.attributes,b.attributes);if(h)return f.promise}return null}function k(a){if(a.isInterleavedBufferAttribute){for(var b=a.count,d=a.itemSize,e=a.array.slice(0,b*d),f=0;f<b;++f)e[f]=a.getX(f),2<=d&&(e[f+1]=a.getY(f)),3<=d&&(e[f+2]=a.getZ(f)),4<=d&&(e[f+3]=a.getW(f));return new GLE.BufferAttribute(e,d,a.normalized)}return a.clone()}function u(a){if(2>a.length)return!1;var b=a[0],d=b.targets||[];if(void 0===b.indices)return!1;for(var e=1,f=a.length;e<f;e++){var h=a[e];if(b.mode!==h.mode||void 0===h.indices||!B(b.attributes,h.attributes))return!1;h=h.targets||[];if(d.length!==h.length)return!1;for(var l=0,k=d.length;l<k;l++)if(!B(d[l],h[l]))return!1}return!0}function p(a,d,e){this.json=a||{};this.extensions=d||{};this.options=e||{};this.cache=new b;this.primitiveCache=[];this.multiplePrimitivesCache=[];this.multiPassGeometryCache=[];this.textureLoader=new GLE.TextureLoader(this.options.manager);this.textureLoader.setCrossOrigin(this.options.crossOrigin);this.fileLoader=new GLE.FileLoader(this.options.manager);this.fileLoader.setResponseType("arraybuffer")}function E(a,b,d){var e=b.attributes,f;for(f in e){var h=M[f];h&&(h in a.attributes||a.addAttribute(h,d[e[f]]))}void 0===b.indices||a.index||a.setIndex(d[b.indices]);if(void 0!==b.targets){for(var e=b.targets,h=f=!1,l=0,m=e.length;l<m;l++){var p=e[l];void 0!==p.POSITION&&(f=!0);void 0!==p.NORMAL&&(h=!0);if(f&&h)break}if(f||h){for(var q=[],r=[],l=0,m=e.length;l<m;l++){var p=e[l],u="morphTarget"+l;if(f){if(void 0!==p.POSITION){var v=k(d[p.POSITION]);v.name=u;for(var w=a.attributes.position,x=0,D=v.count;x<D;x++)v.setXYZ(x,v.getX(x)+w.getX(x),v.getY(x)+w.getY(x),v.getZ(x)+w.getZ(x))}else v=a.attributes.position;q.push(v)}if(h){if(void 0!==p.NORMAL)for(p=k(d[p.NORMAL]),p.name=u,u=a.attributes.normal,x=0,D=p.count;x<D;x++)p.setXYZ(x,p.getX(x)+u.getX(x),p.getY(x)+u.getY(x),p.getZ(x)+u.getZ(x));else p=a.attributes.normal;r.push(p)}}f&&(a.morphAttributes.position=q);h&&(a.morphAttributes.normal=r)}}G(a,b)}a.prototype={constructor:a,crossOrigin:"anonymous",load:function(a,b,d,e){var f=this,h=void 0!==this.path?this.path:GLE.LoaderUtils.extractUrlBase(a);JSZipUtils.getBinaryContent(a,function(d,l){if(d)throw d;JSZip.loadAsync(l).then(function(b){var d=a.lastIndexOf("/"),e=a.lastIndexOf("."),d=a.substr(d+1,e-4);return b.file(d).async("arraybuffer")}).then(function(a){f.parse(a,h,b,e)})})},setCrossOrigin:function(a){this.crossOrigin=a;return this},setPath:function(a){this.path=a;return this},setDRACOLoader:function(a){this.dracoLoader=a;return this},parse:function(a,b,k,q){var r={};if("string"!==typeof a)if(GLE.LoaderUtils.decodeText(new Uint8Array(a,0,4))===W){try{r[C.KHR_BINARY_GT]=new h(a)}catch(Y){q&&q(Y);return}a=r[C.KHR_BINARY_GT].content}else a=GLE.LoaderUtils.decodeText(new Uint8Array(a));a=JSON.parse(a);if(void 0===a.asset||2>a.asset.version[0])q&&q(Error("GLE.Gr: Unsupported asset. glTF versions \x3e\x3d2.0 are supported. Use LegacyGr instead."));else{if(a.extensionsUsed)for(var u=0;u<a.extensionsUsed.length;++u){var v=a.extensionsUsed[u],w=a.extensionsRequired||[];switch(v){case C.KHR_LIGHTS_PUNCTUAL:r[v]=new e(a);break;case C.KHR_MATERIALS_UNLIT:r[v]=new f(a);break;case C.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS:r[v]=new m;break;case C.KHR_DRACO_MESH_COMPRESSION:r[v]=new l(a,this.dracoLoader);break;case C.MSFT_TEXTURE_DDS:r[C.MSFT_TEXTURE_DDS]=new d;break;default:0<=w.indexOf(v)&&console.warn('GLE.Gr: Unknown extension "'+v+'".')}}var D=new p(a,r,{path:b||this.path||"",crossOrigin:this.crossOrigin,manager:this.manager});D.parse(function(a,b,d,e,f){a={scene:a,scenes:b,cameras:d,animations:e,asset:f.asset,parser:D,userData:{}};x(r,a,f);k(a)},q)}}};var C={KHR_BINARY_GT:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS:"KHR_materials_pbrSpecularGlossiness",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",MSFT_TEXTURE_DDS:"MSFT_texture_dds"};f.prototype.getMaterialType=function(a){return GLE.Mal};f.prototype.extendParams=function(a,b,d){var e=[];a.color=new GLE.Color(1,1,1);a.opacity=1;if(b=b.pbrMetallicRoughness){if(Array.isArray(b.baseColorFactor)){var f=b.baseColorFactor;a.color.fromArray(f);a.opacity=f[3]}void 0!==b.baseColorTexture&&e.push(d.assignTexture(a,"map",b.baseColorTexture.index))}return Promise.all(e)};var W="glTF",aa=12,F={JSON:1313821514,BIN:5130562};l.prototype.decodePrimitive=function(a,b){var d=this.json,e=this.dracoLoader,f=a.extensions[this.name].bufferView,h=a.extensions[this.name].attributes,l={},k={},m={},p;for(p in h)p in M&&(l[M[p]]=h[p]);for(p in a.attributes)if(void 0!==M[p]&&void 0!==h[p]){var q=d.accessors[a.attributes[p]];m[M[p]]=L[q.componentType];k[M[p]]=!0===q.normalized}return b.getDependency("bufferView",f).then(function(a){return new Promise(function(b){e.decodeDracoFile(a,function(a){for(var d in a.attributes){var e=a.attributes[d],f=k[d];void 0!==f&&(e.normalized=f)}b(a)},l,m)})})};r.prototype=Object.create(GLE.Interpolant.prototype);r.prototype.constructor=r;r.prototype.copySampleValue_=function(a){var b=this.resultBuffer,d=this.sampleValues,e=this.valueSize;a=a*e*3+e;for(var f=0;f!==e;f++)b[f]=d[a+f];return b};r.prototype.beforeStart_=r.prototype.copySampleValue_;r.prototype.afternd_=r.prototype.copySampleValue_;r.prototype.interpolate_=function(a,b,d,e){var f=this.resultBuffer,h=this.sampleValues,l=this.valueSize,k=2*l,m=3*l;e-=b;var p=(d-b)/e;b=p*p;d=b*p;a*=m;var m=a-m,q=2*d-3*b+1,p=d-2*b+p,r=-2*d+3*b;b=d-b;for(d=0;d!==l;d++)f[d]=q*h[m+d+l]+p*h[m+d+k]*e+r*h[a+d+l]+b*h[a+d]*e;return f};var L={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},A={9728:GLE.Nr,9729:GLE.LinearFilter,9984:GLE.NearestMipMapNr,9985:GLE.LinearMipMapNr,9986:GLE.NearestMipMapLinearFilter,9987:GLE.LinearMipMapLinearFilter},H={33071:GLE.ClampToEdgeWrapping,33648:GLE.MirroredRepeatWrapping,10497:GLE.RepeatWrapping},D={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},M={POSITION:"position",NORMAL:"normal",TEXCOORD_0:"uv",TEXCOORD0:"uv",TEXCOORD:"uv",TEXCOORD_1:"uv2",COLOR_0:"color",COLOR0:"color",COLOR:"color",WEIGHTS_0:"skinWeight",WEIGHT:"skinWeight",JOINTS_0:"skinIndex",JOINT:"skinIndex"},N={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},V={CUBICSPLINE:GLE.InterpolateSmooth,LINEAR:GLE.InterpolateLinear,STEP:GLE.InterpolateDiscrete},Q={"image/png":GLE.RGBAFormat,"image/jpeg":GLE.RGBFormat};p.prototype.parse=function(a,b){var d=this.json;this.cache.removeAll();this.markDefs();this.getMultiDependencies(["scene","animation","camera"]).then(function(b){var e=b.scenes||[];a(e[d.scene||0],e,b.cameras||[],b.animations||[],d)})["catch"](b)};p.prototype.markDefs=function(){for(var a=this.json.nodes||[],b=this.json.skins||[],d=this.json.meshes||[],e={},f={},h=0,l=b.length;h<l;h++)for(var k=b[h].joints,m=0,p=k.length;m<p;m++)a[k[m]].isBone=!0;b=0;for(h=a.length;b<h;b++)l=a[b],void 0!==l.mesh&&(void 0===e[l.mesh]&&(e[l.mesh]=f[l.mesh]=0),e[l.mesh]++,void 0!==l.skin&&(d[l.mesh].isSkinnedMesh=!0));this.json.meshReferences=e;this.json.meshUses=f};p.prototype.getDependency=function(a,b){var d=a+":"+b,e=this.cache.get(d);if(!e){switch(a){case "scene":e=this.loadScene(b);break;case "node":e=this.loadNode(b);break;case "mesh":e=this.loadMesh(b);break;case "accessor":e=this.loadAccessor(b);break;case "bufferView":e=this.loadBufferView(b);break;case "buffer":e=this.loadBuffer(b);break;case "material":e=this.loadMaterial(b);break;case "texture":e=this.loadTexture(b);break;case "skin":e=this.loadSkin(b);break;case "animation":e=this.loadAnimation(b);break;case "camera":e=this.loadCamera(b);break;default:throw Error("Unknown type: "+a);}this.cache.add(d,e)}return e};p.prototype.getDependencies=function(a){var b=this.cache.get(a);if(!b){var d=this,b=Promise.all((this.json[a+("mesh"===a?"es":"s")]||[]).map(function(b,e){return d.getDependency(a,e)}));this.cache.add(a,b)}return b};p.prototype.getMultiDependencies=function(a){for(var b={},d=[],e=0,f=a.length;e<f;e++){var h=a[e],l=this.getDependencies(h),l=l.then(function(a,d){b[a]=d}.bind(this,h+("mesh"===h?"es":"s")));d.push(l)}return Promise.all(d).then(function(){return b})};p.prototype.loadBuffer=function(a){var b=this.json.buffers[a],d=this.fileLoader;if(b.type&&"arraybuffer"!==b.type)throw Error("GLE.Gr: "+b.type+" buffer type is not supported.");if(void 0===b.uri&&0===a)return Promise.resolve(this.extensions[C.KHR_BINARY_GT].body);var e=this.options;return new Promise(function(a,f){d.load(q(b.uri,e.path),a,void 0,function(){f(Error('GLE.Gr: Failed to load buffer "'+b.uri+'".'))})})};p.prototype.loadBufferView=function(a){var b=this.json.bufferViews[a];return this.getDependency("buffer",b.buffer).then(function(a){var d=b.byteOffset||0;return a.slice(d,d+(b.byteLength||0))})};p.prototype.loadAccessor=function(a){var b=this,d=this.json,e=this.json.accessors[a];if(void 0===e.bufferView&&void 0===e.sparse)return null;a=[];void 0!==e.bufferView?a.push(this.getDependency("bufferView",e.bufferView)):a.push(null);void 0!==e.sparse&&(a.push(this.getDependency("bufferView",e.sparse.indices.bufferView)),a.push(this.getDependency("bufferView",e.sparse.values.bufferView)));return Promise.all(a).then(function(a){var f=a[0],h=D[e.type],l=L[e.componentType],k=l.BYTES_PER_ELEMENT,m=e.byteOffset||0,p=void 0!==e.bufferView?d.bufferViews[e.bufferView].byteStride:void 0,q=!0===e.normalized,r;if(p&&p!==k*h){var u="InterleavedBuffer:"+e.bufferView+":"+e.componentType;r=b.cache.get(u);r||(r=new l(f),r=new GLE.InterleavedBuffer(r,p/k),b.cache.add(u,r));k=new GLE.InterleavedBufferAttribute(r,h,m/k,q)}else r=null===f?new l(e.count*h):new l(f,m,e.count*h),k=new GLE.BufferAttribute(r,h,q);if(void 0!==e.sparse)for(p=e.sparse.values.byteOffset||0,m=new L[e.sparse.indices.componentType](a[1],e.sparse.indices.byteOffset||0,e.sparse.count*D.SCALAR),a=new l(a[2],p,e.sparse.count*h),null!==f&&k.setArray(k.array.slice()),f=0,l=m.length;f<l;f++)if(p=m[f],k.setX(p,a[f*h]),2<=h&&k.setY(p,a[f*h+1]),3<=h&&k.setZ(p,a[f*h+2]),4<=h&&k.setW(p,a[f*h+3]),5<=h)throw Error("GLE.Gr: Unsupported itemSize in sparse BufferAttribute.");return k})};p.prototype.loadTexture=function(a){var b=this,d=this.json,e=this.options,f=this.textureLoader,h=window.URL||window.webkitURL,l=d.textures[a],k=l.extensions||{},m;m=k[C.MSFT_TEXTURE_DDS]?d.images[k[C.MSFT_TEXTURE_DDS].source]:d.images[l.source];var p=m.uri,r=!1;void 0!==m.bufferView&&(p=b.getDependency("bufferView",m.bufferView).then(function(a){r=!0;a=new Blob([a],{type:m.mimeType});return p=h.createObjectURL(a)}));return Promise.resolve(p).then(function(a){var d=GLE.Loader.Handlers.get(a);d||(d=k[C.MSFT_TEXTURE_DDS]?b.extensions[C.MSFT_TEXTURE_DDS].ddsLoader:f);return new Promise(function(b,f){d.load(q(a,e.path),b,void 0,f)})}).then(function(a){!0===r&&h.revokeObjectURL(p);a.flipY=!1;void 0!==l.name&&(a.name=l.name);m.mimeType in Q&&(a.format=Q[m.mimeType]);var b=(d.samplers||{})[l.sampler]||{};a.magFilter=A[b.magFilter]||GLE.LinearFilter;a.minFilter=A[b.minFilter]||GLE.LinearMipMapLinearFilter;a.wrapS=H[b.wrapS]||GLE.RepeatWrapping;a.wrapT=H[b.wrapT]||GLE.RepeatWrapping;return a})};p.prototype.assignTexture=function(a,b,d){return this.getDependency("texture",d).then(function(d){a[b]=d})};p.prototype.loadMaterial=function(a){var b=this.extensions,d=this.json.materials[a],e,f={},h=d.extensions||{};a=[];if(h[C.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS])h=b[C.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS],e=h.getMaterialType(d),a.push(h.extendParams(f,d,this));else if(h[C.KHR_MATERIALS_UNLIT])h=b[C.KHR_MATERIALS_UNLIT],e=h.getMaterialType(d),a.push(h.extendParams(f,d,this));else{e=GLE.MeshStandardMaterial;h=d.pbrMetallicRoughness||{};f.color=new GLE.Color(1,1,1);f.opacity=1;if(Array.isArray(h.baseColorFactor)){var l=h.baseColorFactor;f.color.fromArray(l);f.opacity=l[3]}void 0!==h.baseColorTexture&&a.push(this.assignTexture(f,"map",h.baseColorTexture.index));f.metalness=void 0!==h.metallicFactor?h.metallicFactor:1;f.roughness=void 0!==h.roughnessFactor?h.roughnessFactor:1;void 0!==h.metallicRoughnessTexture&&(h=h.metallicRoughnessTexture.index,a.push(this.assignTexture(f,"metalnessMap",h)),a.push(this.assignTexture(f,"roughnessMap",h)))}!0===d.doubleSided&&(f.side=GLE.DoubleSide);h=d.alphaMode||"OPAQUE";"BLEND"===h?f.transparent=!0:(f.transparent=!1,"MASK"===h&&(f.alphaTest=void 0!==d.alphaCutoff?d.alphaCutoff:.5));void 0!==d.normalTexture&&e!==GLE.Mal&&(a.push(this.assignTexture(f,"normalMap",d.normalTexture.index)),f.normalScale=new GLE.Vector2(1,1),void 0!==d.normalTexture.scale&&f.normalScale.set(d.normalTexture.scale,d.normalTexture.scale));void 0!==d.occlusionTexture&&e!==GLE.Mal&&(a.push(this.assignTexture(f,"aoMap",d.occlusionTexture.index)),void 0!==d.occlusionTexture.strength&&(f.aoMapIntensity=d.occlusionTexture.strength));void 0!==d.emissiveFactor&&e!==GLE.Mal&&(f.emissive=(new GLE.Color).fromArray(d.emissiveFactor));void 0!==d.emissiveTexture&&e!==GLE.Mal&&a.push(this.assignTexture(f,"emissiveMap",d.emissiveTexture.index));return Promise.all(a).then(function(){var a;a=e===GLE.ShaderMaterial?b[C.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS].createMaterial(f):new e(f);void 0!==d.name&&(a.name=d.name);a.normalScale&&(a.normalScale.y=-a.normalScale.y);a.map&&(a.map.encoding=GLE.sRGBEncoding);a.emissiveMap&&(a.emissiveMap.encoding=GLE.sRGBEncoding);a.specularMap&&(a.specularMap.encoding=GLE.sRGBEncoding);G(a,d);d.extensions&&x(b,a,d);return a})};p.prototype.loadGeometries=function(a){var b=this,d=this.extensions,e=this.primitiveCache,f=u(a),h;f&&(h=a,a=[a[0]]);return this.getDependencies("accessor").then(function(l){for(var k=[],m=0,p=a.length;m<p;m++){var q=a[m],r=v(e,q);r||(q.extensions&&q.extensions[C.KHR_DRACO_MESH_COMPRESSION]?r=d[C.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(q,b).then(function(a){E(a,q,l);return a}):(r=new GLE.BufferGeometry,E(r,q,l),r=Promise.resolve(r)),e.push({primitive:q,promise:r}));k.push(r)}return Promise.all(k).then(function(d){if(f){d=d[0];var e=b.multiPassGeometryCache,k;a:{k=e;for(var m=h,p=0,q=k.length;p<q;p++){var r=k[p];if(d===r.baseGeometry&&w(m,r.primitives)){k=r.geometry;break a}}k=null}if(null!==k)return[k.geometry];k=new GLE.BufferGeometry;k.name=d.name;k.userData=d.userData;for(var u in d.attributes)k.addAttribute(u,d.attributes[u]);for(u in d.morphAttributes)k.morphAttributes[u]=d.morphAttributes[u];p=[];u=q=0;for(m=h.length;u<m;u++){for(var r=l[h[u].indices],v=0,z=r.count;v<z;v++)p.push(r.array[v]);k.addGroup(q,r.count,u);q+=r.count}k.setIndex(p);e.push({geometry:k,baseGeometry:d,primitives:h});return[k]}if(1<d.length&&void 0!==GLE.BufferGeometryUtils){u=1;for(m=a.length;u<m;u++)if(a[0].mode!==a[u].mode)return d;e=b.multiplePrimitivesCache;a:{k=e;u=0;for(m=k.length;u<m;u++)if(p=k[u],w(d,p.baseGeometries)){k=p.geometry;break a}k=null}if(k){if(null!==k.geometry)return[k.geometry]}else if(k=GLE.BufferGeometryUtils.mergeBufferGeometries(d,!0),e.push({geometry:k,baseGeometries:d}),null!==k)return[k]}return d})})};p.prototype.loadMesh=function(a){var b=this,d=this.extensions,e=this.json.meshes[a];return this.getMultiDependencies(["accessor","material"]).then(function(f){for(var h=e.primitives,l=[],k=0,m=h.length;k<m;k++)l[k]=void 0===h[k].material?new GLE.MeshStandardMaterial({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:GLE.FrontSide}):f.materials[h[k].material];return b.loadGeometries(h).then(function(f){for(var k=1===f.length&&0<f[0].groups.length,m=[],p=0,q=f.length;p<q;p++){var r=f[p],u=h[p],v,w=k?l:l[p];if(4===u.mode||5===u.mode||6===u.mode||void 0===u.mode)v=!0===e.isSkinnedMesh?new GLE.SkinnedMesh(r,w):new GLE.Mesh(r,w),5===u.mode?v.drawMode=GLE.TriangleStripDrawMode:6===u.mode&&(v.drawMode=GLE.TriangleFanDrawMode);else if(1===u.mode)v=new GLE.LineSegments(r,w);else if(3===u.mode)v=new GLE.Line(r,w);else if(2===u.mode)v=new GLE.LineLoop(r,w);else if(0===u.mode)v=new GLE.Points(r,w);else throw Error("GLE.Gr: Primitive mode unsupported: "+u.mode);if(0<Object.keys(v.geometry.morphAttributes).length){var w=v,x=e;w.updateMorphTargets();if(void 0!==x.weights)for(var u=0,D=x.weights.length;u<D;u++)w.morphTargetInfluences[u]=x.weights[u];if(x.extras&&Array.isArray(x.extras.targetNames))if(x=x.extras.targetNames,w.morphTargetInfluences.length===x.length)for(w.morphTargetDictionary={},u=0,D=x.length;u<D;u++)w.morphTargetDictionary[x[u]]=u;else console.warn("GLE.Gr: Invalid extras.targetNames length. Ignoring names.")}v.name=e.name||"mesh_"+a;1<f.length&&(v.name+="_"+p);G(v,e);m.push(v);for(var u=k?v.material:[v.material],D=void 0!==r.attributes.color,x=void 0===r.attributes.normal,A=!0===v.isSkinnedMesh,z=0<Object.keys(r.morphAttributes).length,B=z&&void 0!==r.morphAttributes.normal,E=0,J=u.length;E<J;E++){w=u[E];if(v.isPoints){var F="PointsMaterial:"+w.uuid,K=b.cache.get(F);K||(K=new GLE.PointsMaterial,GLE.Material.prototype.copy.call(K,w),K.color.copy(w.color),K.map=w.map,K.lights=!1,b.cache.add(F,K));w=K}else v.isLine&&(F="LineBasicMaterial:"+w.uuid,K=b.cache.get(F),K||(K=new GLE.LineBasicMaterial,GLE.Material.prototype.copy.call(K,w),K.color.copy(w.color),K.lights=!1,b.cache.add(F,K)),w=K);if(D||x||A||z)F="ClonedMaterial:"+w.uuid+":",w.isGTSpecularGlossinessMaterial&&(F+="specular-glossiness:"),A&&(F+="skinning:"),D&&(F+="vertex-colors:"),x&&(F+="flat-shading:"),z&&(F+="morph-targets:"),B&&(F+="morph-normals:"),K=b.cache.get(F),K||(K=w.isGTSpecularGlossinessMaterial?d[C.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS].cloneMaterial(w):w.clone(),A&&(K.skinning=!0),D&&(K.vertexColors=GLE.VertexColors),x&&(K.flatShading=!0),z&&(K.morphTargets=!0),B&&(K.morphNormals=!0),b.cache.add(F,K)),w=K;u[E]=w;w.aoMap&&void 0===r.attributes.uv2&&void 0!==r.attributes.uv&&(console.log("GLE.Gr: Duplicating UVs to support aoMap."),r.addAttribute("uv2",new GLE.BufferAttribute(r.attributes.uv.array,2)));w.isGTSpecularGlossinessMaterial&&(v.onBeforeRender=d[C.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS].refreshUniforms)}v.material=k?u:u[0]}if(1===m.length)return m[0];f=new GLE.Group;p=0;for(q=m.length;p<q;p++)f.add(m[p]);return f})})};p.prototype.loadCamera=function(a){var b;a=this.json.cameras[a];var d=a[a.type];if(d)return"perspective"===a.type?b=new GLE.Pa(GLE.Math.radToDeg(d.yfov),d.aspectRatio||1,d.znear||1,d.zfar||2E6):"orthographic"===a.type&&(b=new GLE.OrthographicCamera(d.xmag/-2,d.xmag/2,d.ymag/2,d.ymag/-2,d.znear,d.zfar)),void 0!==a.name&&(b.name=a.name),G(b,a),Promise.resolve(b);console.warn("GLE.Gr: Missing camera parameters.")};p.prototype.loadSkin=function(a){a=this.json.skins[a];var b={joints:a.joints};return void 0===a.inverseBindMatrices?Promise.resolve(b):this.getDependency("accessor",a.inverseBindMatrices).then(function(a){b.inverseBindMatrices=a;return b})};p.prototype.loadAnimation=function(a){var b=this.json.animations[a];return this.getMultiDependencies(["accessor","node"]).then(function(d){for(var e=[],f=0,h=b.channels.length;f<h;f++){var l=b.channels[f],k=b.samplers[l.sampler];if(k){var l=l.target,m=void 0!==l.node?l.node:l.id,p=d.accessors[void 0!==b.parameters?b.parameters[k.input]:k.input],q=d.accessors[void 0!==b.parameters?b.parameters[k.output]:k.output],u=d.nodes[m];if(u){u.updateMatrix();u.matrixAutoUpdate=!0;switch(N[l.path]){case N.weights:m=GLE.NumberKeyframeTrack;break;case N.rotation:m=GLE.QuaternionKeyframeTrack;break;default:m=GLE.VectorKeyframeTrack}var v=u.name?u.name:u.uuid,w=void 0!==k.interpolation?V[k.interpolation]:GLE.InterpolateLinear,x=[];N[l.path]===N.weights?u.traverse(function(a){!0===a.isMesh&&a.morphTargetInfluences&&x.push(a.name?a.name:a.uuid)}):x.push(v);u=0;for(v=x.length;u<v;u++){var D=new m(x[u]+"."+N[l.path],GLE.AnimationUtils.arraySlice(p.array,0),GLE.AnimationUtils.arraySlice(q.array,0),w);"CUBICSPLINE"===k.interpolation&&(D.createInterpolant=function(a){return new r(this.times,this.values,this.getValueSize()/3,a)},D.createInterpolant.isInterpolantFactoryMethodGTCubicSpline=!0);e.push(D)}}}}m=void 0!==b.name?b.name:"animation_"+a;return new GLE.AnimationClip(m,void 0,e)})};p.prototype.loadNode=function(a){var b=this.json,d=this.extensions,e=b.meshReferences,f=b.meshUses,h=b.nodes[a];return this.getMultiDependencies(["mesh","skin","camera","light"]).then(function(a){if(!0===h.isBone)a=new GLE.Bone;else if(void 0!==h.mesh){var b=a.meshes[h.mesh];if(1<e[h.mesh]){var l=f[h.mesh]++;a=b.clone();a.name+="_instance_"+l;a.onBeforeRender=b.onBeforeRender;for(var k=0,m=a.children.length;k<m;k++)a.children[k].name+="_instance_"+l,a.children[k].onBeforeRender=b.children[k].onBeforeRender}else a=b}else a=void 0!==h.camera?a.cameras[h.camera]:h.extensions&&h.extensions[C.KHR_LIGHTS_PUNCTUAL]&&void 0!==h.extensions[C.KHR_LIGHTS_PUNCTUAL].light?d[C.KHR_LIGHTS_PUNCTUAL].lights[h.extensions[C.KHR_LIGHTS_PUNCTUAL].light]:new GLE.Object3D;void 0!==h.name&&(a.name=GLE.PropertyBinding.sanitizeNodeName(h.name));G(a,h);h.extensions&&x(d,a,h);void 0!==h.matrix?(b=new GLE.Matrix4,b.fromArray(h.matrix),a.applyMatrix(b)):(void 0!==h.translation&&a.position.fromArray(h.translation),void 0!==h.rotation&&a.quaternion.fromArray(h.rotation),void 0!==h.scale&&a.scale.fromArray(h.scale));return a})};p.prototype.loadScene=function(){function a(b,d,e,f,h){var l=f[b],k=e.nodes[b];if(void 0!==k.skin){var m=!0===l.isGroup?l.children:[l];b=0;for(var p=m.length;b<p;b++){for(var q=m[b],r=h[k.skin],u=[],v=[],w=0,x=r.joints.length;w<x;w++){var D=r.joints[w],A=f[D];A?(u.push(A),D=new GLE.Matrix4,void 0!==r.inverseBindMatrices&&D.fromArray(r.inverseBindMatrices.array,16*w),v.push(D)):console.warn('GLE.Gr: Joint "%s" could not be found.',D)}q.bind(new GLE.Skeleton(u,v),q.matrixWorld)}}d.add(l);if(k.children)for(d=k.children,b=0,p=d.length;b<p;b++)a(d[b],l,e,f,h)}return function(b){var d=this.json,e=this.extensions,f=this.json.scenes[b];return this.getMultiDependencies(["node","skin"]).then(function(b){var h=new GLE.Scene;void 0!==f.name&&(h.name=f.name);G(h,f);f.extensions&&x(e,h,f);for(var l=f.nodes||[],k=0,m=l.length;k<m;k++)a(l[k],h,d,b.nodes,b.skins);return h})}}();return a}();var Stats=function(){function a(a){e.appendChild(a.dom);return a}function b(a){for(var b=0;b<e.children.length;b++)e.children[b].style.display=b===a?"block":"none";d=a}var d=0,e=document.createElement("div");e.style.cssText="position:fixed;top:0;left:0;cursor:pointer;opacity:0.9;z-index:10000";e.addEventListener("click",function(a){a.preventDefault();b(++d%e.children.length)},!1);var f=(performance||Date).now(),h=f,l=0,m=a(new Stats.Panel("FPS","#0ff","#002")),r=a(new Stats.Panel("MS","#0f0","#020"));if(self.performance&&self.performance.memory)var q=a(new Stats.Panel("MB","#f08","#201"));b(0);return{REVISION:16,dom:e,addPanel:a,showPanel:b,begin:function(){f=(performance||Date).now()},end:function(){l++;var a=(performance||Date).now();r.update(a-f,200);if(a>h+1E3&&(m.update(1E3*l/(a-h),100),h=a,l=0,q)){var b=performance.memory;q.update(b.usedJSHeapSize/1048576,b.jsHeapSizeLimit/1048576)}return a},update:function(){f=this.end()},domElement:e,setMode:b}};Stats.Panel=function(a,b,d){var e=Infinity,f=0,h=Math.round,l=h(window.devicePixelRatio||1),m=80*l,r=48*l,q=3*l,x=2*l,G=3*l,B=15*l,w=74*l,v=30*l,k=document.createElement("canvas");k.width=m;k.height=r;k.style.cssText="width:80px;height:48px";var u=k.getContext("2d");u.font="bold "+9*l+"px Helvetica,Arial,sans-serif";u.textBaseline="top";u.fillStyle=d;u.fillRect(0,0,m,r);u.fillStyle=b;u.fillText(a,q,x);u.fillRect(G,B,w,v);u.fillStyle=d;u.globalAlpha=.9;u.fillRect(G,B,w,v);return{dom:k,update:function(p,r){e=Math.min(e,p);f=Math.max(f,p);u.fillStyle=d;u.globalAlpha=1;u.fillRect(0,0,m,B);u.fillStyle=b;u.fillText(h(p)+" "+a+" ("+h(e)+"-"+h(f)+")",q,x);u.drawImage(k,G+l,B,w-l,v,G,B,w-l,v);u.fillRect(G+w-l,B,l,v);u.fillStyle=d;u.globalAlpha=.9;u.fillRect(G+w-l,B,l,h((1-p/r)*v))}}};"object"===typeof module&&(module.exports=Stats);var Canvas2Image=function(){function a(a,b,d){var e=a.width,f=a.height;void 0==b&&(b=e);void 0==d&&(d=f);var h=document.createElement("canvas"),l=h.getContext("2d");h.width=b;h.height=d;l.drawImage(a,0,0,e,f,0,0,b,d);return h}function b(a,b,d,e,f,h,l){b=document.createElement("canvas");d=b.getContext("2d");b.width=h;b.height=l;d.drawImage(a,e,f,h,l,0,0,h,l);return b}function d(b,d,e,f){b=a(b,e,f);return b.toDataURL(d)}function e(a){var b=document.createElement("img");b.src=a;return b}function f(a){a=a.toLowerCase().replace(/jpg/i,"jpeg");return"image/"+a.match(/png|jpeg|bmp|gif/)[0]}function h(a){if(!window.btoa)throw"btoa undefined";var b="";if("string"==typeof a)b=a;else for(var d=0;d<a.length;d++)b+=String.fromCharCode(a[d]);return btoa(b)}function l(a){var b=a.width,d=a.height;return a.getContext("2d").getImageData(0,0,b,d)}function m(a,b){return"data:"+b+";base64,"+a}var r=function(){var a=document.createElement("canvas"),b=a.getContext("2d");return{canvas:!!b,imageData:!!b.getImageData,dataURL:!!a.toDataURL,btoa:!!window.btoa}}(),q=function(a,b){var d=document.createElementNS("http://www.w3.org/1999/xhtml","a");d.href=a;d.download=b;var e=document.createEvent("MouseEvents");e.initMouseEvent("click",!0,!1,window,0,0,0,0,0,!1,!1,!1,!1,0,null);d.dispatchEvent(e)},x=function(a){var b=a.width,d=a.height,e=b*d*3,f=e+54,f=[66,77,f&255,f>>8&255,f>>16&255,f>>24&255,0,0,0,0,54,0,0,0],e=[40,0,0,0,b&255,b>>8&255,b>>16&255,b>>24&255,d&255,d>>8&255,d>>16&255,d>>24&255,1,0,24,0,0,0,0,0,e&255,e>>8&255,e>>16&255,e>>24&255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],l=(4-3*b%4)%4;a=a.data;var m="",q=b<<2,r=String.fromCharCode;do{for(var v=q*(d-1),w="",x=0;x<b;x++)var D=x<<2,w=w+(r(a[v+D+2])+r(a[v+D+1])+r(a[v+D]));for(v=0;v<l;v++)w+=String.fromCharCode(0);m+=w}while(--d);return h(f.concat(e))+h(m)},G=function(b,e,h,p){if(r.canvas&&r.dataURL)if("string"==typeof b&&(b=document.getElementById(b)),void 0==p&&(p="png"),p=f(p),/bmp/.test(p))b=l(a(b,e,h)),b=x(b),document.location.href=m(b,"image/octet-stream");else return b=d(b,p,e,h)},B=function(b,e,h,p){r.canvas&&r.dataURL&&("string"==typeof b&&(b=document.getElementById(b)),void 0==p&&(p="png"),p=f(p),/bmp/.test(p)?(b=l(a(b,e,h)),b=x(b),document.location.href=m(b,"image/octet-stream")):(b=d(b,p,e,h),e="bim_"+(new Date).getTime()+".png",q(b,e)))},w=function(b,h,q,p){if(r.canvas&&r.dataURL){"string"==typeof b&&(b=document.getElementById(b));void 0==p&&(p="png");p=f(p);if(/bmp/.test(p))return b=l(a(b,h,q)),b=x(b),e(m(b,"image/bmp"));b=d(b,p,h,q);return e(b)}};return{getImage:G,getPNG:function(a,b,d){return G(a,b,d,"png")},getJPEG:function(a,b,d){return G(a,b,d,"jpeg")},getGIF:function(a,b,d){return G(a,b,d,"gif")},getBMP:function(a,b,d){return G(a,b,d,"bmp")},saveAsImage:B,saveAsPNG:function(a,b,d){return B(a,b,d,"png")},saveAsJPEG:function(a,b,d){return B(a,b,d,"jpeg")},saveAsGIF:function(a,b,d){return B(a,b,d,"gif")},saveAsBMP:function(a,b,d){return B(a,b,d,"bmp")},saveAsPNGxy:function(a,d,e,h,w,C,B,G){a:{var k="png";if(r.canvas&&r.dataURL)if("string"==typeof a&&(a=document.getElementById(a)),void 0==k&&(k="png"),k=f(k),/bmp/.test(k))C=l(b(a,d,e,h,w,C,B)),d=x(C),document.location.href=m(d,"image/octet-stream");else if(d=b(a,d,e,h,w,C,B),d=d.toDataURL(k),G){C=d;break a}else C="bim_"+(new Date).getTime()+"_"+C+"_"+B+".png",q(d,C);C=void 0}return C},convertToImage:w,convertToPNG:function(a,b,d){return w(a,b,d,"png")},convertToJPEG:function(a,b,d){return w(a,b,d,"jpeg")},convertToGIF:function(a,b,d){return w(a,b,d,"gif")},convertToBMP:function(a,b,d){return w(a,b,d,"bmp")}}}();GLE.Ts=function(a,b,d){function e(a){!1!==w.enabled&&(window.removeEventListener("keydown",e),u===v.NONE)&&(a.keyCode!==w.keys[v.ROTATE]||w.noRotate?a.keyCode!==w.keys[v.ZOOM]||w.noZoom?a.keyCode!==w.keys[v.PAN]||w.noPan||(u=v.PAN):u=v.ZOOM:u=v.ROTATE)}function f(a){var b=b||a;a=String.fromCharCode(b.keyCode||b.which||b.charCode);GLE_bKeyBoard&&("A"==a&&(G_35.position.x+=.02*G_32),"S"==a&&(G_35.position.y+=.02*G_32),"W"==a&&(G_35.position.y-=.02*G_32),"D"==a&&(G_35.position.x-=.02*G_32))}function h(a){GLE_bRect||!1===w.enabled||(a.preventDefault(),a.stopPropagation(),u===v.NONE&&(u=a.button),u!==v.ROTATE||w.noRotate?u!==v.ZOOM||w.noZoom?u!==v.PAN||w.noPan||GLE_MouseMode||(A.copy(V(a.pageX,a.pageY)),H.copy(A)):GLE_MouseMode?(A.copy(V(a.pageX,a.pageY)),H.copy(A)):(W.copy(V(a.pageX,a.pageY)),aa.copy(W)):(C.copy(Q(a.pageX,a.pageY)),E.copy(C)),document.addEventListener("mousemove",l,!1),document.addEventListener("mouseup",m,!1),w.dispatchEvent(M))}function l(a){GLE_bRect||!1===w.enabled||(a.preventDefault(),a.stopPropagation(),u!==v.ROTATE||w.noRotate?u!==v.ZOOM||w.noZoom?u!==v.PAN||w.noPan||GLE_MouseMode||H.copy(V(a.pageX,a.pageY)):GLE_MouseMode?H.copy(V(a.pageX,a.pageY)):aa.copy(V(a.pageX,a.pageY)):(E.copy(C),C.copy(Q(a.pageX,a.pageY))))}function m(a){GLE_bRect||!1===w.enabled||(a.preventDefault(),a.stopPropagation(),u=v.NONE,document.removeEventListener("mousemove",l),document.removeEventListener("mouseup",m),w.dispatchEvent(N))}function r(a){if(!1!==w.enabled){a.preventDefault();a.stopPropagation();switch(a.deltaMode){case 2:W.y-=.025*a.deltaY;break;case 1:W.y-=.01*a.deltaY;break;default:W.y-=2.5E-4*a.deltaY}w.dispatchEvent(M);w.dispatchEvent(N)}}function q(a){if(!1!==w.enabled){switch(a.touches.length){case 1:u=v.TOUCH_ROTATE;C.copy(Q(a.touches[0].pageX,a.touches[0].pageY));E.copy(C);break;default:u=v.TOUCH_ZOOM_PAN;var b=a.touches[0].pageX-a.touches[1].pageX,d=a.touches[0].pageY-a.touches[1].pageY;L=F=Math.sqrt(b*b+d*d);A.copy(V((a.touches[0].pageX+a.touches[1].pageX)/2,(a.touches[0].pageY+a.touches[1].pageY)/2));H.copy(A)}w.dispatchEvent(M)}}function x(a){if(!1!==w.enabled)switch(a.preventDefault(),a.stopPropagation(),a.touches.length){case 1:E.copy(C);C.copy(Q(a.touches[0].pageX,a.touches[0].pageY));break;default:var b=a.touches[0].pageX-a.touches[1].pageX,d=a.touches[0].pageY-a.touches[1].pageY;L=Math.sqrt(b*b+d*d);H.copy(V((a.touches[0].pageX+a.touches[1].pageX)/2,(a.touches[0].pageY+a.touches[1].pageY)/2))}}function G(a){if(!1!==w.enabled){switch(a.touches.length){case 0:u=v.NONE;break;case 1:u=v.TOUCH_ROTATE,C.copy(Q(a.touches[0].pageX,a.touches[0].pageY)),E.copy(C)}w.dispatchEvent(N)}}function B(a){!1!==w.enabled&&a.preventDefault()}var w=this,v={NONE:-1,ROTATE:0,ZOOM:1,PAN:2,TOUCH_ROTATE:3,TOUCH_ZOOM_PAN:4};this.object=a;this.domElement=void 0!==b?b:document;this.enabled=!0;this.screen={left:0,top:0,width:0,height:0};this.rd=1;this.zd=.5;this.pd=.3;this.sg=this.noPan=this.noZoom=this.noRotate=!1;this.dynamicDampingFactor=.2;this.minDistance=0;this.maxDistance=Infinity;this.keys=[65,83,68];this.target=new GLE.Vector3;var k=new GLE.Vector3,u=v.NONE,p=new GLE.Vector3,E=new GLE.Vector2,C=new GLE.Vector2;new GLE.Vector3;var W=new GLE.Vector2,aa=new GLE.Vector2,F=0,L=0,A=new GLE.Vector2,H=new GLE.Vector2;_myPan=new GLE.Vector3;this.target0=this.target.clone();this.position0=this.object.position.clone();this.up0=this.object.up.clone();var D={type:"change"},M={type:"start"},N={type:"end"};this.handleResize=function(){if(this.domElement===document)this.screen.left=0,this.screen.top=0,this.screen.width=window.innerWidth,this.screen.height=window.innerHeight;else{var a=this.domElement.getBoundingClientRect(),b=this.domElement.ownerDocument.documentElement;this.screen.left=a.left+window.pageXOffset-b.clientLeft;this.screen.top=a.top+window.pageYOffset-b.clientTop;this.screen.width=a.width;this.screen.height=a.height}};this.handleEvent=function(a){if("function"==typeof this[a.type])this[a.type](a)};var V=function(){var a=new GLE.Vector2;return function(b,d){a.set((b-w.screen.left)/w.screen.width,(d-w.screen.top)/w.screen.height);return a}}(),Q=function(){var a=new GLE.Vector2;return function(b,d){a.set((b-.5*w.screen.width-w.screen.left)/(.5*w.screen.width),(w.screen.height+2*(w.screen.top-d))/w.screen.width);return a}}();this.rotateCamera=function(){new GLE.Vector3;new GLE.Quaternion;var a=new GLE.Vector3,b=new GLE.Vector3,d=new GLE.Vector3,e=new GLE.Vector3,f;return function(){e.set(C.x-E.x,C.y-E.y,0);if(f=e.length())G_58=(new Date).getTime(),p.copy(w.object.position).sub(w.target),a.copy(p).normalize(),b.copy(w.object.up).normalize(),d.crossVectors(b,a).normalize(),b.setLength(C.y-E.y),d.setLength(C.x-E.x),G_35.rotation.z+=(C.x-E.x)*this.rd,G_26&&(G_35.rotation.x-=(C.y-E.y)*this.rd,180/Math.PI*G_35.rotation.x<-GLE_AngleLimit&&(G_35.rotation.x=-GLE_AngleLimit*Math.PI/180),180/Math.PI*G_35.rotation.x>GLE_AngleLimit&&(G_35.rotation.x=GLE_AngleLimit*Math.PI/180)),G_24&&G_26&&MyClip(),GLE_CSR(180/Math.PI*G_35.rotation.x,180/Math.PI*G_35.rotation.z);E.copy(C)}}();this.zoomCamera=function(){var a;if(u===v.TOUCH_ZOOM_PAN){a=F/L;if(1.001<a||.999>a)G_58=(new Date).getTime();G_35.position.y-=2E3*(1-a)*w.zd}else{a=1+(aa.y-W.y)*w.zd*8;if(1.001<a||.999>a)G_58=(new Date).getTime();if(G_53){var b=new GLE.Vector3;G_53.getSize(b);b=b.length();G_35.position.y-=(1-a)*b*.2}else G_35.position.y-=1E4*(1-a);W.copy(aa)}G_24&&MyClip()};this.panCamera=function(){var a=new GLE.Vector2;new GLE.Vector3;return function(){a.copy(H).sub(A);if(1E-5<a.lengthSq()){G_58=(new Date).getTime();(new GLE.Vector3(H.x/window.innerWidth*2-1,2*-(H.y/window.innerHeight)+1,.5)).unproject(G_2);(new GLE.Vector3(A.x/window.innerWidth*2-1,2*-(A.y/window.innerHeight)+1,.5)).unproject(G_2);var b=(new GLE.Vector3(G_35.position.x,G_35.position.y,G_35.position.z)).project(G_2);b.x+=.4*a.x*GLE_PanSpeed;b.y-=.4*a.y*GLE_PanSpeed;b=b.unproject(G_2);G_35.position.x=b.x;G_35.position.z=b.z;G_35.uld(!0);G_24&&MyClip();w.sg?A.copy(H):A.add(a.subVectors(H,A).multiplyScalar(w.dynamicDampingFactor))}}}();this.checkDistances=function(){w.noZoom&&w.noPan||(p.lengthSq()>w.maxDistance*w.maxDistance&&(w.object.position.addVectors(w.target,p.setLength(w.maxDistance)),W.copy(aa)),p.lengthSq()<w.minDistance*w.minDistance&&(w.object.position.addVectors(w.target,p.setLength(w.minDistance)),W.copy(aa)))};this.update=function(){w.noZoom||w.zoomCamera();w.noPan||w.panCamera();w.noRotate||w.rotateCamera()};this.reset=function(){u=v.NONE;w.target.copy(w.target0);w.object.position.copy(w.position0);w.object.up.copy(w.up0);p.subVectors(w.object.position,w.target);w.object.lookAt(w.target);w.dispatchEvent(D);k.copy(w.object.position)};this.dispose=function(){this.domElement.removeEventListener("contextmenu",B,!1);this.domElement.removeEventListener("mousedown",h,!1);this.domElement.removeEventListener("wheel",r,!1);this.domElement.removeEventListener("touchstart",q,!1);this.domElement.removeEventListener("touchend",G,!1);this.domElement.removeEventListener("touchmove",x,!1);document.removeEventListener("mousemove",l,!1);document.removeEventListener("mouseup",m,!1);window.removeEventListener("keydown",e,!1);window.removeEventListener("keyup",f,!1)};this.domElement.addEventListener("contextmenu",B,!1);this.domElement.addEventListener("mousedown",h,!1);this.domElement.addEventListener("wheel",r,!1);this.domElement.addEventListener("touchstart",q,!1);this.domElement.addEventListener("touchend",G,!1);this.domElement.addEventListener("touchmove",x,!1);window.addEventListener("keydown",e,!1);window.addEventListener("keyup",f,!1);this.handleResize();this.update()};GLE.Ts.prototype=Object.create(GLE.EventDispatcher.prototype);GLE.Ts.prototype.constructor=GLE.Ts;var TN=TN||function(){var a={},b={},d=0;return{getAll:function(){return Object.keys(a).map(function(b){return a[b]})},removeAll:function(){a={}},add:function(d){a[d.getId()]=d;b[d.getId()]=d},remove:function(d){delete a[d.getId()];delete b[d.getId()]},update:function(d,f){var e=Object.keys(a);if(0===e.length)return!1;for(d=void 0!==d?d:TN.now();0<e.length;){b={};for(var l=0;l<e.length;l++)!1!==a[e[l]].update(d)||f||delete a[e[l]];e=Object.keys(b)}return!0},nextId:function(){return d++}}}();TN.now="undefined"===typeof window&&"undefined"!==typeof process?function(){var a=process.hrtime();return 1E3*a[0]+a[1]/1E6}:"undefined"!==typeof window&&void 0!==window.performance&&void 0!==window.performance.now?window.performance.now.bind(window.performance):void 0!==Date.now?Date.now:function(){return(new Date).getTime()};function assign(a,b){for(var d=Object.keys(b),e=d.length,f=0;f<e;f+=1)a[d[f]]=b[d[f]];return a}TN.Tn=function(a){this._object=a;this._valuesStart={};this._valuesEnd={};this._valuesStartRepeat={};this._duration=1E3;this._repeat=0;this._repeatDelayTime=void 0;this._reversed=this._isPlaying=this._yoyo=!1;this._delayTime=0;this._startTime=null;this._easingFunction=TN.Easing.Linear.None;this._interpolationFunction=TN.Interpolation.Linear;this._chainedTns=[];this._onStartCallback=null;this._onStartCallbackFired=!1;this._onStopCallback=this._onCompleteCallback=this._onUpdateCallback=null;this._id=TN.nextId()};TN.Tn.prototype=assign(Object.create(Object.prototype),{getId:function(){return this._id},to:function(a,b){this._valuesEnd=a;void 0!==b&&(this._duration=b);return this},start:function(a){TN.add(this);this._isPlaying=!0;this._onStartCallbackFired=!1;this._startTime=void 0!==a?a:TN.now();this._startTime+=this._delayTime;for(var b in this._valuesEnd){if(this._valuesEnd[b]instanceof Array){if(0===this._valuesEnd[b].length)continue;this._valuesEnd[b]=[this._object[b]].concat(this._valuesEnd[b])}void 0!==this._object[b]&&(this._valuesStart[b]=this._object[b],!1===this._valuesStart[b]instanceof Array&&(this._valuesStart[b]*=1),this._valuesStartRepeat[b]=this._valuesStart[b]||0)}return this},stop:function(){if(!this._isPlaying)return this;TN.remove(this);this._isPlaying=!1;null!==this._onStopCallback&&this._onStopCallback.call(this._object,this._object);this.stopChainedTns();return this},end:function(){this.update(this._startTime+this._duration);return this},stopChainedTns:function(){for(var a=0,b=this._chainedTns.length;a<b;a++)this._chainedTns[a].stop()},delay:function(a){this._delayTime=a;return this},repeat:function(a){this._repeat=a;return this},repeatDelay:function(a){this._repeatDelayTime=a;return this},yoyo:function(a){this._yoyo=a;return this},easing:function(a){this._easingFunction=a;return this},interpolation:function(a){this._interpolationFunction=a;return this},chain:function(){this._chainedTns=arguments;return this},onStart:function(a){this._onStartCallback=a;return this},onUpdate:function(a){this._onUpdateCallback=a;return this},onComplete:function(a){this._onCompleteCallback=a;return this},onStop:function(a){this._onStopCallback=a;return this},update:function(a){var b,d,e;if(a<this._startTime)return!0;!1===this._onStartCallbackFired&&(null!==this._onStartCallback&&this._onStartCallback.call(this._object,this._object),this._onStartCallbackFired=!0);d=(a-this._startTime)/this._duration;d=1<d?1:d;e=this._easingFunction(d);for(b in this._valuesEnd)if(void 0!==this._valuesStart[b]){var f=this._valuesStart[b]||0,h=this._valuesEnd[b];h instanceof Array?this._object[b]=this._interpolationFunction(h,e):("string"===typeof h&&(h="+"===h.charAt(0)||"-"===h.charAt(0)?f+parseFloat(h):parseFloat(h)),"number"===typeof h&&(this._object[b]=f+(h-f)*e))}null!==this._onUpdateCallback&&this._onUpdateCallback.call(this._object,e);if(1===d)if(0<this._repeat){isFinite(this._repeat)&&this._repeat--;for(b in this._valuesStartRepeat)"string"===typeof this._valuesEnd[b]&&(this._valuesStartRepeat[b]+=parseFloat(this._valuesEnd[b])),this._yoyo&&(d=this._valuesStartRepeat[b],this._valuesStartRepeat[b]=this._valuesEnd[b],this._valuesEnd[b]=d),this._valuesStart[b]=this._valuesStartRepeat[b];this._yoyo&&(this._reversed=!this._reversed);this._startTime=void 0!==this._repeatDelayTime?a+this._repeatDelayTime:a+this._delayTime}else{null!==this._onCompleteCallback&&this._onCompleteCallback.call(this._object,this._object);a=0;for(b=this._chainedTns.length;a<b;a++)this._chainedTns[a].start(this._startTime+this._duration);return!1}return!0}});TN.Easing={Linear:{None:function(a){return a}},Quadratic:{In:function(a){return a*a},Out:function(a){return a*(2-a)},InOut:function(a){return 1>(a*=2)?.5*a*a:-.5*(--a*(a-2)-1)}},Cubic:{In:function(a){return a*a*a},Out:function(a){return--a*a*a+1},InOut:function(a){return 1>(a*=2)?.5*a*a*a:.5*((a-=2)*a*a+2)}},Quartic:{In:function(a){return a*a*a*a},Out:function(a){return 1- --a*a*a*a},InOut:function(a){return 1>(a*=2)?.5*a*a*a*a:-.5*((a-=2)*a*a*a-2)}},Quintic:{In:function(a){return a*a*a*a*a},Out:function(a){return--a*a*a*a*a+1},InOut:function(a){return 1>(a*=2)?.5*a*a*a*a*a:.5*((a-=2)*a*a*a*a+2)}},Sinusoidal:{In:function(a){return 1-Math.cos(a*Math.PI/2)},Out:function(a){return Math.sin(a*Math.PI/2)},InOut:function(a){return.5*(1-Math.cos(Math.PI*a))}},Exponential:{In:function(a){return 0===a?0:Math.pow(1024,a-1)},Out:function(a){return 1===a?1:1-Math.pow(2,-10*a)},InOut:function(a){return 0===a?0:1===a?1:1>(a*=2)?.5*Math.pow(1024,a-1):.5*(-Math.pow(2,-10*(a-1))+2)}},Circular:{In:function(a){return 1-Math.sqrt(1-a*a)},Out:function(a){return Math.sqrt(1- --a*a)},InOut:function(a){return 1>(a*=2)?-.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1)}},Elastic:{In:function(a){return 0===a?0:1===a?1:-Math.pow(2,10*(a-1))*Math.sin(5*(a-1.1)*Math.PI)},Out:function(a){return 0===a?0:1===a?1:Math.pow(2,-10*a)*Math.sin(5*(a-.1)*Math.PI)+1},InOut:function(a){if(0===a)return 0;if(1===a)return 1;a*=2;return 1>a?-.5*Math.pow(2,10*(a-1))*Math.sin(5*(a-1.1)*Math.PI):.5*Math.pow(2,-10*(a-1))*Math.sin(5*(a-1.1)*Math.PI)+1}},Back:{In:function(a){return a*a*(2.70158*a-1.70158)},Out:function(a){return--a*a*(2.70158*a+1.70158)+1},InOut:function(a){return 1>(a*=2)?.5*a*a*(3.5949095*a-2.5949095):.5*((a-=2)*a*(3.5949095*a+2.5949095)+2)}},Bounce:{In:function(a){return 1-TN.Easing.Bounce.Out(1-a)},Out:function(a){return a<1/2.75?7.5625*a*a:a<2/2.75?7.5625*(a-=1.5/2.75)*a+.75:a<2.5/2.75?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375},InOut:function(a){return.5>a?.5*TN.Easing.Bounce.In(2*a):.5*TN.Easing.Bounce.Out(2*a-1)+.5}}};TN.Interpolation={Linear:function(a,b){var d=a.length-1,e=d*b,f=Math.floor(e),h=TN.Interpolation.Utils.Linear;return 0>b?h(a[0],a[1],e):1<b?h(a[d],a[d-1],d-e):h(a[f],a[f+1>d?d:f+1],e-f)},Bezier:function(a,b){for(var d=0,e=a.length-1,f=Math.pow,h=TN.Interpolation.Utils.Bernstein,l=0;l<=e;l++)d+=f(1-b,e-l)*f(b,l)*a[l]*h(e,l);return d},CatmullRom:function(a,b){var d=a.length-1,e=d*b,f=Math.floor(e),h=TN.Interpolation.Utils.CatmullRom;return a[0]===a[d]?(0>b&&(f=Math.floor(e=d*(1+b))),h(a[(f-1+d)%d],a[f],a[(f+1)%d],a[(f+2)%d],e-f)):0>b?a[0]-(h(a[0],a[0],a[1],a[1],-e)-a[0]):1<b?a[d]-(h(a[d],a[d],a[d-1],a[d-1],e-d)-a[d]):h(a[f?f-1:0],a[f],a[d<f+1?d:f+1],a[d<f+2?d:f+2],e-f)},Utils:{Linear:function(a,b,d){return(b-a)*d+a},Bernstein:function(a,b){var d=TN.Interpolation.Utils.Factorial;return d(a)/d(b)/d(a-b)},Factorial:function(){var a=[1];return function(b){var d=1;if(a[b])return a[b];for(var e=b;1<e;e--)d*=e;return a[b]=d}}(),CatmullRom:function(a,b,d,e,f){a=.5*(d-a);e=.5*(e-b);var h=f*f;return(2*b-2*d+a+e)*f*h+(-3*b+3*d-2*a-e)*h+a*f+b}}};(function(a){"function"===typeof define&&define.amd?define([],function(){return TN}):"undefined"!==typeof module&&"object"===typeof exports?module.exports=TN:void 0!==a&&(a.TN=TN)})(this);!function(a){"object"==typeof exports&&"undefined"!=typeof module?module.exports=a():"function"==typeof define&&define.amd?define([],a):("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).JSZip=a()}(function(){return function b(d,e,f){function h(m,q){if(!e[m]){if(!d[m]){var r="function"==typeof require&&require;if(!q&&r)return r(m,!0);if(l)return l(m,!0);r=Error("Cannot find module '"+m+"'");throw r.code="MODULE_NOT_FOUND",r;}r=e[m]={exports:{}};d[m][0].call(r.exports,function(b){var e=d[m][1][b];return h(e?e:b)},r,r.exports,b,d,e,f)}return e[m].exports}for(var l="function"==typeof require&&require,m=0;m<f.length;m++)h(f[m]);return h}({1:[function(b,d,e){var f=b("./utils"),h=b("./support");e.encode=function(b){for(var d,e,h,l,G,B,w,v=[],k=0,u=b.length,p="string"!==f.getTypeOf(b);k<b.length;)w=u-k,p?(d=b[k++],e=k<u?b[k++]:0,h=k<u?b[k++]:0):(d=b.charCodeAt(k++),e=k<u?b.charCodeAt(k++):0,h=k<u?b.charCodeAt(k++):0),l=d>>2,G=(3&d)<<4|e>>4,B=1<w?(15&e)<<2|h>>6:64,w=2<w?63&h:64,v.push("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\x3d".charAt(l)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\x3d".charAt(G)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\x3d".charAt(B)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\x3d".charAt(w));return v.join("")};e.decode=function(b){var d,e,f,l,G,B=0,w=0;if("data:"===b.substr(0,5))throw Error("Invalid base64 input, it looks like a data url.");b=b.replace(/[^A-Za-z0-9\+\/\=]/g,"");l=3*b.length/4;if("\x3d"===b.charAt(b.length-1)&&l--,"\x3d"===b.charAt(b.length-2)&&l--,0!==l%1)throw Error("Invalid base64 input, bad content length.");var v;for(v=h.uint8array?new Uint8Array(0|l):Array(0|l);B<b.length;)d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\x3d".indexOf(b.charAt(B++)),e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\x3d".indexOf(b.charAt(B++)),l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\x3d".indexOf(b.charAt(B++)),G="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\x3d".indexOf(b.charAt(B++)),d=d<<2|e>>4,e=(15&e)<<4|l>>2,f=(3&l)<<6|G,v[w++]=d,64!==l&&(v[w++]=e),64!==G&&(v[w++]=f);return v}},{"./support":30,"./utils":32}],2:[function(b,d,e){function f(b,d,e,f,h){this.compressedSize=b;this.uncompressedSize=d;this.crc32=e;this.compression=f;this.compressedContent=h}var h=b("./external"),l=b("./stream/DataWorker"),m=b("./stream/DataLengthProbe"),r=b("./stream/Crc32Probe"),m=b("./stream/DataLengthProbe");f.prototype={getContentWorker:function(){var b=(new l(h.Promise.resolve(this.compressedContent))).pipe(this.compression.uncompressWorker()).pipe(new m("data_length")),d=this;return b.on("end",function(){if(this.streamInfo.data_length!==d.uncompressedSize)throw Error("Bug : uncompressed data size mismatch");}),b},getCompressedWorker:function(){return(new l(h.Promise.resolve(this.compressedContent))).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}};f.createWorkerFrom=function(b,d,e){return b.pipe(new r).pipe(new m("uncompressedSize")).pipe(d.compressWorker(e)).pipe(new m("compressedSize")).withStreamInfo("compression",d)};d.exports=f},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(b,d,e){var f=b("./stream/GenericWorker");e.STORE={magic:"\x00\x00",compressWorker:function(b){return new f("STORE compression")},uncompressWorker:function(){return new f("STORE decompression")}};e.DEFLATE=b("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(b,d,e){var f=b("./utils"),h=function(){for(var b,d=[],e=0;256>e;e++){b=e;for(var f=0;8>f;f++)b=1&b?3988292384^b>>>1:b>>>1;d[e]=b}return d}();d.exports=function(b,d){if("undefined"==typeof b||!b.length)return 0;var e;if("string"!==f.getTypeOf(b)){var l=0+b.length;e=(0|d)^-1;for(var m=0;m<l;m++)e=e>>>8^h[255&(e^b[m])]}else for(l=0+b.length,e=(0|d)^-1,m=0;m<l;m++)e=e>>>8^h[255&(e^b.charCodeAt(m))];return e^=-1}},{"./utils":32}],5:[function(b,d,e){e.base64=!1;e.binary=!1;e.dir=!1;e.createFolders=!0;e.date=null;e.compression=null;e.compressionOptions=null;e.comment=null;e.unixPermissions=null;e.dosPermissions=null},{}],6:[function(b,d,e){b="undefined"!=typeof Promise?Promise:b("lie");d.exports={Promise:b}},{lie:58}],7:[function(b,d,e){function f(b,d){m.call(this,"FlateWorker/"+b);this._pako=null;this._pakoAction=b;this._pakoOptions=d;this.meta={}}d="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array;var h=b("pako"),l=b("./utils"),m=b("./stream/GenericWorker"),r=d?"uint8array":"array";e.magic="\b\x00";l.inherits(f,m);f.prototype.processChunk=function(b){this.meta=b.meta;null===this._pako&&this._createPako();this._pako.push(l.transformTo(r,b.data),!1)};f.prototype.flush=function(){m.prototype.flush.call(this);null===this._pako&&this._createPako();this._pako.push([],!0)};f.prototype.cleanUp=function(){m.prototype.cleanUp.call(this);this._pako=null};f.prototype._createPako=function(){this._pako=new h[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var b=this;this._pako.onData=function(d){b.push({data:d,meta:b.meta})}};e.compressWorker=function(b){return new f("Deflate",b)};e.uncompressWorker=function(){return new f("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:59}],8:[function(b,d,e){function f(b,d,e,f){l.call(this,"ZipFileWorker");this.bytesWritten=0;this.zipComment=d;this.zipPlatform=e;this.encodeFileName=f;this.streamFiles=b;this.accumulate=!1;this.contentBuffer=[];this.dirRecords=[];this.entriesCount=this.currentSourceOffset=0;this.currentFile=null;this._sources=[]}var h=b("../utils"),l=b("../stream/GenericWorker"),m=b("../utf8"),r=b("../crc32"),q=b("../signature"),x=function(b,d){var e,f="";for(e=0;e<d;e++)f+=String.fromCharCode(255&b),b>>>=8;return f},G=function(b,d,e,f,l,B){var k,p;k=b.file;var u=b.compression,v=B!==m.utf8encode,w=h.transformTo("string",B(k.name)),A=h.transformTo("string",m.utf8encode(k.name)),E=k.comment;B=h.transformTo("string",B(E));var D=h.transformTo("string",m.utf8encode(E)),G=A.length!==k.name.length,N=D.length!==E.length,V=E="",Q="";p=k.dir;var J=k.date,K=0,ba=0,ca=0;d&&!e||(K=b.crc32,ba=b.compressedSize,ca=b.uncompressedSize);b=0;d&&(b|=8);v||!G&&!N||(b|=2048);d=0;p&&(d|=16);"UNIX"===l?(l=798,k=v=k.unixPermissions,p=(v||(k=p?16893:33204),(65535&k)<<16),d|=p):(l=20,d|=63&(k.dosPermissions||0));k=J.getUTCHours();k=k<<6|J.getUTCMinutes();k=k<<5|J.getUTCSeconds()/2;p=J.getUTCFullYear()-1980;p=p<<4|J.getUTCMonth()+1;p=p<<5|J.getUTCDate();G&&(V=x(1,1)+x(r(w),4)+A,E+="up"+x(V.length,2)+V);N&&(Q=x(1,1)+x(r(B),4)+D,E+="uc"+x(Q.length,2)+Q);A="\n\x00"+x(b,2);A+=u.magic;A+=x(k,2);A+=x(p,2);A+=x(K,4);A+=x(ba,4);A+=x(ca,4);A+=x(w.length,2);A+=x(E.length,2);u=q.LOCAL_FILE_HEADER+A+w+E;f=q.CENTRAL_FILE_HEADER+x(l,2)+A+x(B.length,2)+"\x00\x00\x00\x00"+x(d,4)+x(f,4)+w+E+B;return{fileRecord:u,dirRecord:f}},B=function(b){return q.DATA_DESCRIPTOR+x(b.crc32,4)+x(b.compressedSize,4)+x(b.uncompressedSize,4)};h.inherits(f,l);f.prototype.push=function(b){var d=b.meta.percent||0,e=this.entriesCount,f=this._sources.length;this.accumulate?this.contentBuffer.push(b):(this.bytesWritten+=b.data.length,l.prototype.push.call(this,{data:b.data,meta:{currentFile:this.currentFile,percent:e?(d+100*(e-f-1))/e:100}}))};f.prototype.openedSource=function(b){this.currentSourceOffset=this.bytesWritten;this.currentFile=b.file.name;var d=this.streamFiles&&!b.file.dir;d?(b=G(b,d,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName),this.push({data:b.fileRecord,meta:{percent:0}})):this.accumulate=!0};f.prototype.closedSource=function(b){this.accumulate=!1;var d=this.streamFiles&&!b.file.dir,e=G(b,d,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(e.dirRecord),d)this.push({data:B(b),meta:{percent:100}});else for(this.push({data:e.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null};f.prototype.flush=function(){for(var b=this.bytesWritten,d=0;d<this.dirRecords.length;d++)this.push({data:this.dirRecords[d],meta:{percent:100}});var d=this.dirRecords.length,e=this.bytesWritten-b,f=h.transformTo("string",(0,this.encodeFileName)(this.zipComment)),b=q.CENTRAL_DIRECTORY_END+"\x00\x00\x00\x00"+x(d,2)+x(d,2)+x(e,4)+x(b,4)+x(f.length,2)+f;this.push({data:b,meta:{percent:100}})};f.prototype.prepareNextSource=function(){this.previous=this._sources.shift();this.openedSource(this.previous.streamInfo);this.isPaused?this.previous.pause():this.previous.resume()};f.prototype.registerPrevious=function(b){this._sources.push(b);var d=this;return b.on("data",function(b){d.processChunk(b)}),b.on("end",function(){d.closedSource(d.previous.streamInfo);d._sources.length?d.prepareNextSource():d.end()}),b.on("error",function(b){d.error(b)}),this};f.prototype.resume=function(){return!!l.prototype.resume.call(this)&&(!this.previous&&this._sources.length?(this.prepareNextSource(),!0):this.previous||this._sources.length||this.generatedError?void 0:(this.end(),!0))};f.prototype.error=function(b){var d=this._sources;if(!l.prototype.error.call(this,b))return!1;for(var e=0;e<d.length;e++)try{d[e].error(b)}catch(u){}return!0};f.prototype.lock=function(){l.prototype.lock.call(this);for(var b=this._sources,d=0;d<b.length;d++)b[d].lock()};d.exports=f},{"../crc32":4,"../signature":23,"../stream/GenericWorker":28,"../utf8":31,"../utils":32}],9:[function(b,d,e){var f=b("../compressions"),h=b("./ZipFileWorker");e.generateWorker=function(b,d,e){var l=new h(d.streamFiles,e,d.platform,d.encodeFileName),m=0;try{b.forEach(function(b,e){m++;var h=e.options.compression||d.compression,q=f[h];if(!q)throw Error(h+" is not a valid compression method !");var h=e.dir,k=e.date;e._compressWorker(q,e.options.compressionOptions||d.compressionOptions||{}).withStreamInfo("file",{name:b,dir:h,date:k,comment:e.comment||"",unixPermissions:e.unixPermissions,dosPermissions:e.dosPermissions}).pipe(l)}),l.entriesCount=m}catch(G){l.error(G)}return l}},{"../compressions":3,"./ZipFileWorker":8}],10:[function(b,d,e){function f(){if(!(this instanceof f))return new f;if(arguments.length)throw Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.");this.files={};this.comment=null;this.root="";this.clone=function(){var b=new f,d;for(d in this)"function"!=typeof this[d]&&(b[d]=this[d]);return b}}f.prototype=b("./object");f.prototype.loadAsync=b("./load");f.support=b("./support");f.defaults=b("./defaults");f.version="3.1.5";f.loadAsync=function(b,d){return(new f).loadAsync(b,d)};f.external=b("./external");d.exports=f},{"./defaults":5,"./external":6,"./load":11,"./object":15,"./support":30}],11:[function(b,d,e){function f(b){return new l.Promise(function(d,e){var f=b.decompressed.getContentWorker().pipe(new q);f.on("error",function(b){e(b)}).on("end",function(){f.streamInfo.crc32!==b.decompressed.crc32?e(Error("Corrupted zip : CRC32 mismatch")):d()}).resume()})}var h=b("./utils"),l=b("./external"),m=b("./utf8"),h=b("./utils"),r=b("./zipEntries"),q=b("./stream/Crc32Probe"),x=b("./nodejsUtils");d.exports=function(b,d){var e=this;return d=h.extend(d||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:m.utf8decode}),x.isNode&&x.isStream(b)?l.Promise.reject(Error("JSZip can't accept a stream when loading a zip file.")):h.prepareContent("the loaded zip file",b,!0,d.optimizedBinaryString,d.base64).then(function(b){var e=new r(d);return e.load(b),e}).then(function(b){var e=[l.Promise.resolve(b)];b=b.files;if(d.checkCRC32)for(var h=0;h<b.length;h++)e.push(f(b[h]));return l.Promise.all(e)}).then(function(b){b=b.shift();for(var f=b.files,h=0;h<f.length;h++){var l=f[h];e.file(l.fileNameStr,l.decompressed,{binary:!0,optimizedBinaryString:!0,date:l.date,dir:l.dir,comment:l.fileCommentStr.length?l.fileCommentStr:null,unixPermissions:l.unixPermissions,dosPermissions:l.dosPermissions,createFolders:d.createFolders})}return b.zipComment.length&&(e.comment=b.zipComment),e})}},{"./external":6,"./nodejsUtils":14,"./stream/Crc32Probe":25,"./utf8":31,"./utils":32,"./zipEntries":33}],12:[function(b,d,e){function f(b,d){h.call(this,"Nodejs stream input adapter for "+b);this._upstreamEnded=!1;this._bindStream(d)}e=b("../utils");var h=b("../stream/GenericWorker");e.inherits(f,h);f.prototype._bindStream=function(b){var d=this;this._stream=b;b.pause();b.on("data",function(b){d.push({data:b,meta:{percent:0}})}).on("error",function(b){d.isPaused?this.generatedError=b:d.error(b)}).on("end",function(){d.isPaused?d._upstreamEnded=!0:d.end()})};f.prototype.pause=function(){return!!h.prototype.pause.call(this)&&(this._stream.pause(),!0)};f.prototype.resume=function(){return!!h.prototype.resume.call(this)&&(this._upstreamEnded?this.end():this._stream.resume(),!0)};d.exports=f},{"../stream/GenericWorker":28,"../utils":32}],13:[function(b,d,e){function f(b,d,e){h.call(this,d);this._helper=b;var f=this;b.on("data",function(b,d){f.push(b)||f._helper.pause();e&&e(d)}).on("error",function(b){f.emit("error",b)}).on("end",function(){f.push(null)})}var h=b("readable-stream").Readable;b("../utils").inherits(f,h);f.prototype._read=function(){this._helper.resume()};d.exports=f},{"../utils":32,"readable-stream":16}],14:[function(b,d,e){d.exports={isNode:"undefined"!=typeof Buffer,newBufferFrom:function(b,d){return new Buffer(b,d)},allocBuffer:function(b){return Buffer.alloc?Buffer.alloc(b):new Buffer(b)},isBuffer:function(b){return Buffer.isBuffer(b)},isStream:function(b){return b&&"function"==typeof b.on&&"function"==typeof b.pause&&"function"==typeof b.resume}}},{}],15:[function(b,d,e){var f=b("./utf8"),h=b("./utils"),l=b("./stream/GenericWorker"),m=b("./stream/StreamHelper"),r=b("./defaults"),q=b("./compressedObject"),x=b("./zipObject"),G=b("./generate"),B=b("./nodejsUtils"),w=b("./nodejs/NodejsStreamInputAdapter"),v=function(b,d,e){var f,m=h.getTypeOf(d),p=h.extend(e||{},r);p.date=p.date||new Date;null!==p.compression&&(p.compression=p.compression.toUpperCase());"string"==typeof p.unixPermissions&&(p.unixPermissions=parseInt(p.unixPermissions,8));p.unixPermissions&&16384&p.unixPermissions&&(p.dir=!0);p.dosPermissions&&16&p.dosPermissions&&(p.dir=!0);p.dir&&(b=k(b));var v;if(v=p.createFolders)f=b,"/"===f.slice(-1)&&(f=f.substring(0,f.length-1)),v=f.lastIndexOf("/"),v=f=0<v?f.substring(0,v):"";v&&u.call(this,f,!0);m="string"===m&&!1===p.binary&&!1===p.base64;e&&"undefined"!=typeof e.binary||(p.binary=!m);(d instanceof q&&0===d.uncompressedSize||p.dir||!d||0===d.length)&&(p.base64=!1,p.binary=!0,d="",p.compression="STORE");d=d instanceof q||d instanceof l?d:B.isNode&&B.isStream(d)?new w(b,d):h.prepareContent(b,d,p.binary,p.optimizedBinaryString,p.base64);p=new x(b,d,p);this.files[b]=p},k=function(b){return"/"!==b.slice(-1)&&(b+="/"),b},u=function(b,d){return d="undefined"!=typeof d?d:r.createFolders,b=k(b),this.files[b]||v.call(this,b,null,{dir:!0,createFolders:d}),this.files[b]};d.exports={load:function(){throw Error("This method has been removed in JSZip 3.0, please check the upgrade guide.");},forEach:function(b){var d,e,f;for(d in this.files)this.files.hasOwnProperty(d)&&(f=this.files[d],e=d.slice(this.root.length,d.length),e&&d.slice(0,this.root.length)===this.root&&b(e,f))},filter:function(b){var d=[];return this.forEach(function(e,f){b(e,f)&&d.push(f)}),d},file:function(b,d,e){if(1===arguments.length){if("[object RegExp]"===Object.prototype.toString.call(b)){var f=b;return this.filter(function(b,d){return!d.dir&&f.test(b)})}var h=this.files[this.root+b];return h&&!h.dir?h:null}return b=this.root+b,v.call(this,b,d,e),this},folder:function(b){if(!b)return this;if("[object RegExp]"===Object.prototype.toString.call(b))return this.filter(function(d,e){return e.dir&&b.test(d)});var d=u.call(this,this.root+b),e=this.clone();return e.root=d.name,e},remove:function(b){b=this.root+b;var d=this.files[b];if(d||("/"!==b.slice(-1)&&(b+="/"),d=this.files[b]),d&&!d.dir)delete this.files[b];else for(var d=this.filter(function(d,e){return e.name.slice(0,b.length)===b}),e=0;e<d.length;e++)delete this.files[d[e].name];return this},generate:function(b){throw Error("This method has been removed in JSZip 3.0, please check the upgrade guide.");},generateInternalStream:function(b){var d,e={};try{if(e=h.extend(b||{},{streamFiles:!1,compression:"STORE",compressionOptions:null,type:"",platform:"DOS",comment:null,mimeType:"application/zip",encodeFileName:f.utf8encode}),e.type=e.type.toLowerCase(),e.compression=e.compression.toUpperCase(),"binarystring"===e.type&&(e.type="string"),!e.type)throw Error("No output type specified.");h.checkSupport(e.type);"darwin"!==e.platform&&"freebsd"!==e.platform&&"linux"!==e.platform&&"sunos"!==e.platform||(e.platform="UNIX");"win32"===e.platform&&(e.platform="DOS");d=G.generateWorker(this,e,e.comment||this.comment||"")}catch(W){d=new l("error"),d.error(W)}return new m(d,e.type||"string",e.mimeType)},generateAsync:function(b,d){return this.generateInternalStream(b).accumulate(d)},generateNodeStream:function(b,d){return b=b||{},b.type||(b.type="nodebuffer"),this.generateInternalStream(b).toNodejsStream(d)}}},{"./compressedObject":2,"./defaults":5,"./generate":9,"./nodejs/NodejsStreamInputAdapter":12,"./nodejsUtils":14,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31,"./utils":32,"./zipObject":35}],16:[function(b,d,e){d.exports=b("stream")},{stream:void 0}],17:[function(b,d,e){function f(b){h.call(this,b);for(var d=0;d<this.data.length;d++)b[d]&=255}var h=b("./DataReader");b("../utils").inherits(f,h);f.prototype.byteAt=function(b){return this.data[this.zero+b]};f.prototype.lastIndexOfSignature=function(b){var d=b.charCodeAt(0),e=b.charCodeAt(1),f=b.charCodeAt(2);b=b.charCodeAt(3);for(var h=this.length-4;0<=h;--h)if(this.data[h]===d&&this.data[h+1]===e&&this.data[h+2]===f&&this.data[h+3]===b)return h-this.zero;return-1};f.prototype.readAndCheckSignature=function(b){var d=b.charCodeAt(0),e=b.charCodeAt(1),f=b.charCodeAt(2);b=b.charCodeAt(3);var h=this.readData(4);return d===h[0]&&e===h[1]&&f===h[2]&&b===h[3]};f.prototype.readData=function(b){if(this.checkOffset(b),0===b)return[];var d=this.data.slice(this.zero+this.index,this.zero+this.index+b);return this.index+=b,d};d.exports=f},{"../utils":32,"./DataReader":18}],18:[function(b,d,e){function f(b){this.data=b;this.length=b.length;this.zero=this.index=0}var h=b("../utils");f.prototype={checkOffset:function(b){this.checkIndex(this.index+b)},checkIndex:function(b){if(this.length<this.zero+b||0>b)throw Error("End of data reached (data length \x3d "+this.length+", asked index \x3d "+b+"). Corrupted zip ?");},setIndex:function(b){this.checkIndex(b);this.index=b},skip:function(b){this.setIndex(this.index+b)},byteAt:function(b){},readInt:function(b){var d,e=0;this.checkOffset(b);for(d=this.index+b-1;d>=this.index;d--)e=(e<<8)+this.byteAt(d);return this.index+=b,e},readString:function(b){return h.transformTo("string",this.readData(b))},readData:function(b){},lastIndexOfSignature:function(b){},readAndCheckSignature:function(b){},readDate:function(){var b=this.readInt(4);return new Date(Date.UTC((b>>25&127)+1980,(b>>21&15)-1,b>>16&31,b>>11&31,b>>5&63,(31&b)<<1))}};d.exports=f},{"../utils":32}],19:[function(b,d,e){function f(b){h.call(this,b)}var h=b("./Uint8ArrayReader");b("../utils").inherits(f,h);f.prototype.readData=function(b){this.checkOffset(b);var d=this.data.slice(this.zero+this.index,this.zero+this.index+b);return this.index+=b,d};d.exports=f},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(b,d,e){function f(b){h.call(this,b)}var h=b("./DataReader");b("../utils").inherits(f,h);f.prototype.byteAt=function(b){return this.data.charCodeAt(this.zero+b)};f.prototype.lastIndexOfSignature=function(b){return this.data.lastIndexOf(b)-this.zero};f.prototype.readAndCheckSignature=function(b){var d=this.readData(4);return b===d};f.prototype.readData=function(b){this.checkOffset(b);var d=this.data.slice(this.zero+this.index,this.zero+this.index+b);return this.index+=b,d};d.exports=f},{"../utils":32,"./DataReader":18}],21:[function(b,d,e){function f(b){h.call(this,b)}var h=b("./ArrayReader");b("../utils").inherits(f,h);f.prototype.readData=function(b){if(this.checkOffset(b),0===b)return new Uint8Array(0);var d=this.data.subarray(this.zero+this.index,this.zero+this.index+b);return this.index+=b,d};d.exports=f},{"../utils":32,"./ArrayReader":17}],22:[function(b,d,e){var f=b("../utils"),h=b("../support"),l=b("./ArrayReader"),m=b("./StringReader"),r=b("./NodeBufferReader"),q=b("./Uint8ArrayReader");d.exports=function(b){var d=f.getTypeOf(b);return f.checkSupport(d),"string"!==d||h.uint8array?"nodebuffer"===d?new r(b):h.uint8array?new q(f.transformTo("uint8array",b)):new l(f.transformTo("array",b)):new m(b)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(b,d,e){e.LOCAL_FILE_HEADER="PK\u0003\u0004";e.CENTRAL_FILE_HEADER="PK\u0001\u0002";e.CENTRAL_DIRECTORY_END="PK\u0005\u0006";e.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\u0006\u0007";e.ZIP64_CENTRAL_DIRECTORY_END="PK\u0006\u0006";e.DATA_DESCRIPTOR="PK\u0007\b"},{}],24:[function(b,d,e){function f(b){h.call(this,"ConvertWorker to "+b);this.destType=b}var h=b("./GenericWorker"),l=b("../utils");l.inherits(f,h);f.prototype.processChunk=function(b){this.push({data:l.transformTo(this.destType,b.data),meta:b.meta})};d.exports=f},{"../utils":32,"./GenericWorker":28}],25:[function(b,d,e){function f(){h.call(this,"Crc32Probe");this.withStreamInfo("crc32",0)}var h=b("./GenericWorker"),l=b("../crc32");b("../utils").inherits(f,h);f.prototype.processChunk=function(b){this.streamInfo.crc32=l(b.data,this.streamInfo.crc32||0);this.push(b)};d.exports=f},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(b,d,e){function f(b){h.call(this,"DataLengthProbe for "+b);this.propName=b;this.withStreamInfo(b,0)}e=b("../utils");var h=b("./GenericWorker");e.inherits(f,h);f.prototype.processChunk=function(b){b&&(this.streamInfo[this.propName]=(this.streamInfo[this.propName]||0)+b.data.length);h.prototype.processChunk.call(this,b)};d.exports=f},{"../utils":32,"./GenericWorker":28}],27:[function(b,d,e){function f(b){l.call(this,"DataWorker");var d=this;this.dataIsReady=!1;this.max=this.index=0;this.data=null;this.type="";this._tickScheduled=!1;b.then(function(b){d.dataIsReady=!0;d.data=b;d.max=b&&b.length||0;d.type=h.getTypeOf(b);d.isPaused||d._tickAndRepeat()},function(b){d.error(b)})}var h=b("../utils"),l=b("./GenericWorker");h.inherits(f,l);f.prototype.cleanUp=function(){l.prototype.cleanUp.call(this);this.data=null};f.prototype.resume=function(){return!!l.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,h.delay(this._tickAndRepeat,[],this)),!0)};f.prototype._tickAndRepeat=function(){this._tickScheduled=!1;this.isPaused||this.isFinished||(this._tick(),this.isFinished||(h.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))};f.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var b=null,d=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case "string":b=this.data.substring(this.index,d);break;case "uint8array":b=this.data.subarray(this.index,d);break;case "array":case "nodebuffer":b=this.data.slice(this.index,d)}return this.index=d,this.push({data:b,meta:{percent:this.max?this.index/this.max*100:0}})};d.exports=f},{"../utils":32,"./GenericWorker":28}],28:[function(b,d,e){function f(b){this.name=b||"default";this.streamInfo={};this.generatedError=null;this.extraStreamInfo={};this.isPaused=!0;this.isLocked=this.isFinished=!1;this._listeners={data:[],end:[],error:[]};this.previous=null}f.prototype={push:function(b){this.emit("data",b)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(h){this.emit("error",h)}return!0},error:function(b){return!this.isFinished&&(this.isPaused?this.generatedError=b:(this.isFinished=!0,this.emit("error",b),this.previous&&this.previous.error(b),this.cleanUp()),!0)},on:function(b,d){return this._listeners[b].push(d),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null;this._listeners=[]},emit:function(b,d){if(this._listeners[b])for(var e=0;e<this._listeners[b].length;e++)this._listeners[b][e].call(this,d)},pipe:function(b){return b.registerPrevious(this)},registerPrevious:function(b){if(this.isLocked)throw Error("The stream '"+this+"' has already been used.");this.streamInfo=b.streamInfo;this.mergeStreamInfo();this.previous=b;var d=this;return b.on("data",function(b){d.processChunk(b)}),b.on("end",function(){d.end()}),b.on("error",function(b){d.error(b)}),this},pause:function(){return!this.isPaused&&!this.isFinished&&(this.isPaused=!0,this.previous&&this.previous.pause(),!0)},resume:function(){if(!this.isPaused||this.isFinished)return!1;var b=this.isPaused=!1;return this.generatedError&&(this.error(this.generatedError),b=!0),this.previous&&this.previous.resume(),!b},flush:function(){},processChunk:function(b){this.push(b)},withStreamInfo:function(b,d){return this.extraStreamInfo[b]=d,this.mergeStreamInfo(),this},mergeStreamInfo:function(){for(var b in this.extraStreamInfo)this.extraStreamInfo.hasOwnProperty(b)&&(this.streamInfo[b]=this.extraStreamInfo[b])},lock:function(){if(this.isLocked)throw Error("The stream '"+this+"' has already been used.");this.isLocked=!0;this.previous&&this.previous.lock()},toString:function(){var b="Worker "+this.name;return this.previous?this.previous+" -\x3e "+b:b}};d.exports=f},{}],29:[function(b,d,e){function f(b,d){var e,f=0,h;for(e=h=0;e<d.length;e++)h+=d[e].length;switch(b){case "string":return d.join("");case "array":return Array.prototype.concat.apply([],d);case "uint8array":h=new Uint8Array(h);for(e=0;e<d.length;e++)h.set(d[e],f),f+=d[e].length;return h;case "nodebuffer":return Buffer.concat(d);default:throw Error("concat : unsupported type '"+b+"'");}}function h(b,d){return new G.Promise(function(e,h){var l=[],k=b._internalType,q=b._outputType,r=b._mimeType;b.on("data",function(b,e){l.push(b);d&&d(e)}).on("error",function(b){l=[];h(b)}).on("end",function(){try{var b;a:{var d=f(k,l);switch(q){case "blob":b=m.newBlob(m.transformTo("arraybuffer",d),r);break a;case "base64":b=x.encode(d);break a;default:b=m.transformTo(q,d)}}e(b)}catch(L){h(L)}l=[]}).resume()})}function l(b,d,e){var f=d;switch(d){case "blob":case "arraybuffer":f="uint8array";break;case "base64":f="string"}try{this._internalType=f,this._outputType=d,this._mimeType=e,m.checkSupport(f),this._worker=b.pipe(new r(f)),b.lock()}catch(p){this._worker=new q("error"),this._worker.error(p)}}var m=b("../utils"),r=b("./ConvertWorker"),q=b("./GenericWorker"),x=b("../base64");e=b("../support");var G=b("../external"),B=null;if(e.nodestream)try{B=b("../nodejs/NodejsStreamOutputAdapter")}catch(w){}l.prototype={accumulate:function(b){return h(this,b)},on:function(b,d){var e=this;return"data"===b?this._worker.on(b,function(b){d.call(e,b.data,b.meta)}):this._worker.on(b,function(){m.delay(d,arguments,e)}),this},resume:function(){return m.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(b){if(m.checkSupport("nodestream"),"nodebuffer"!==this._outputType)throw Error(this._outputType+" is not supported by this method");return new B(this,{objectMode:"nodebuffer"!==this._outputType},b)}};d.exports=l},{"../base64":1,"../external":6,"../nodejs/NodejsStreamOutputAdapter":13,"../support":30,"../utils":32,"./ConvertWorker":24,"./GenericWorker":28}],30:[function(b,d,e){if(e.base64=!0,e.array=!0,e.string=!0,e.arraybuffer="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array,e.nodebuffer="undefined"!=typeof Buffer,e.uint8array="undefined"!=typeof Uint8Array,"undefined"==typeof ArrayBuffer)e.blob=!1;else{d=new ArrayBuffer(0);try{e.blob=0===(new Blob([d],{type:"application/zip"})).size}catch(h){try{var f=new (self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);f.append(d);e.blob=0===f.getBlob("application/zip").size}catch(l){e.blob=!1}}}try{e.nodestream=!!b("readable-stream").Readable}catch(h){e.nodestream=!1}},{"readable-stream":16}],31:[function(b,d,e){function f(){q.call(this,"utf-8 decode");this.leftOver=null}function h(){q.call(this,"utf-8 encode")}var l=b("./utils"),m=b("./support"),r=b("./nodejsUtils"),q=b("./stream/GenericWorker"),x=Array(256);for(b=0;256>b;b++)x[b]=252<=b?6:248<=b?5:240<=b?4:224<=b?3:192<=b?2:1;x[254]=x[254]=1;e.utf8encode=function(b){if(m.nodebuffer)b=r.newBufferFrom(b,"utf-8");else{var d,e,f,h,l,p=b.length,q=0;for(h=0;h<p;h++)e=b.charCodeAt(h),55296===(64512&e)&&h+1<p&&(f=b.charCodeAt(h+1),56320===(64512&f)&&(e=65536+(e-55296<<10)+(f-56320),h++)),q+=128>e?1:2048>e?2:65536>e?3:4;d=m.uint8array?new Uint8Array(q):Array(q);for(h=l=0;l<q;h++)e=b.charCodeAt(h),55296===(64512&e)&&h+1<p&&(f=b.charCodeAt(h+1),56320===(64512&f)&&(e=65536+(e-55296<<10)+(f-56320),h++)),128>e?d[l++]=e:2048>e?(d[l++]=192|e>>>6,d[l++]=128|63&e):65536>e?(d[l++]=224|e>>>12,d[l++]=128|e>>>6&63,d[l++]=128|63&e):(d[l++]=240|e>>>18,d[l++]=128|e>>>12&63,d[l++]=128|e>>>6&63,d[l++]=128|63&e);b=d}return b};e.utf8decode=function(b){var d;if(m.nodebuffer)d=l.transformTo("nodebuffer",b).toString("utf-8");else{var e=b=l.transformTo(m.uint8array?"uint8array":"array",b),f,h,q,p=e.length;b=Array(2*p);for(f=h=0;f<p;)if(d=e[f++],128>d)b[h++]=d;else if(q=x[d],4<q)b[h++]=65533,f+=q-1;else{for(d&=2===q?31:3===q?15:7;1<q&&f<p;)d=d<<6|63&e[f++],q--;1<q?b[h++]=65533:65536>d?b[h++]=d:(d-=65536,b[h++]=55296|d>>10&1023,b[h++]=56320|1023&d)}d=(b.length!==h&&(b.subarray?b=b.subarray(0,h):b.length=h),l.applyFromCharCode(b))}return d};l.inherits(f,q);f.prototype.processChunk=function(b){var d=l.transformTo(m.uint8array?"uint8array":"array",b.data);if(this.leftOver&&this.leftOver.length){if(m.uint8array){var f=d,d=new Uint8Array(f.length+this.leftOver.length);d.set(this.leftOver,0);d.set(f,this.leftOver.length)}else d=this.leftOver.concat(d);this.leftOver=null}var h,f=d.length;f>d.length&&(f=d.length);for(h=f-1;0<=h&&128===(192&d[h]);)h--;f=0>h?f:0===h?f:h+x[d[h]]>f?h:f;h=d;f!==d.length&&(m.uint8array?(h=d.subarray(0,f),this.leftOver=d.subarray(f,d.length)):(h=d.slice(0,f),this.leftOver=d.slice(f,d.length)));this.push({data:e.utf8decode(h),meta:b.meta})};f.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:e.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)};e.Utf8DecodeWorker=f;l.inherits(h,q);h.prototype.processChunk=function(b){this.push({data:e.utf8encode(b.data),meta:b.meta})};e.Utf8EncodeWorker=h},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(b,d,e){function f(b){return b}function h(b,d){for(var e=0;e<b.length;++e)d[e]=255&b.charCodeAt(e);return d}function l(b){var d=65536,f=e.getTypeOf(b),h=!0;if("uint8array"===f?h=k.applyCanBeUsed.uint8array:"nodebuffer"===f&&(h=k.applyCanBeUsed.nodebuffer),h)for(;1<d;)try{return k.stringifyByChunk(b,f,d)}catch(aa){d=Math.floor(d/2)}return k.stringifyByChar(b)}function m(b,d){for(var e=0;e<b.length;e++)d[e]=b[e];return d}var r=b("./support"),q=b("./base64"),x=b("./nodejsUtils"),G=b("core-js/library/fn/set-immediate"),B=b("./external");e.newBlob=function(b,d){e.checkSupport("blob");try{return new Blob([b],{type:d})}catch(W){try{var f=new (self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);return f.append(b),f.getBlob(d)}catch(aa){throw Error("Bug : can't construct the Blob.");}}};var w;try{w=r.uint8array&&1===String.fromCharCode.apply(null,new Uint8Array(1)).length}catch(p){w=!1}b=w;var v;try{v=r.nodebuffer&&1===String.fromCharCode.apply(null,x.allocBuffer(1)).length}catch(p){v=!1}var k={stringifyByChunk:function(b,d,e){var f=[],h=0,l=b.length;if(l<=e)return String.fromCharCode.apply(null,b);for(;h<l;)"array"===d||"nodebuffer"===d?f.push(String.fromCharCode.apply(null,b.slice(h,Math.min(h+e,l)))):f.push(String.fromCharCode.apply(null,b.subarray(h,Math.min(h+e,l)))),h+=e;return f.join("")},stringifyByChar:function(b){for(var d="",e=0;e<b.length;e++)d+=String.fromCharCode(b[e]);return d},applyCanBeUsed:{uint8array:b,nodebuffer:v}};e.applyFromCharCode=l;var u={};u.string={string:f,array:function(b){return h(b,Array(b.length))},arraybuffer:function(b){return u.string.uint8array(b).buffer},uint8array:function(b){return h(b,new Uint8Array(b.length))},nodebuffer:function(b){return h(b,x.allocBuffer(b.length))}};u.array={string:l,array:f,arraybuffer:function(b){return(new Uint8Array(b)).buffer},uint8array:function(b){return new Uint8Array(b)},nodebuffer:function(b){return x.newBufferFrom(b)}};u.arraybuffer={string:function(b){return l(new Uint8Array(b))},array:function(b){return m(new Uint8Array(b),Array(b.byteLength))},arraybuffer:f,uint8array:function(b){return new Uint8Array(b)},nodebuffer:function(b){return x.newBufferFrom(new Uint8Array(b))}};u.uint8array={string:l,array:function(b){return m(b,Array(b.length))},arraybuffer:function(b){return b.buffer},uint8array:f,nodebuffer:function(b){return x.newBufferFrom(b)}};u.nodebuffer={string:l,array:function(b){return m(b,Array(b.length))},arraybuffer:function(b){return u.nodebuffer.uint8array(b).buffer},uint8array:function(b){return m(b,new Uint8Array(b.length))},nodebuffer:f};e.transformTo=function(b,d){if(d||(d=""),!b)return d;e.checkSupport(b);var f=e.getTypeOf(d);return u[f][b](d)};e.getTypeOf=function(b){return"string"==typeof b?"string":"[object Array]"===Object.prototype.toString.call(b)?"array":r.nodebuffer&&x.isBuffer(b)?"nodebuffer":r.uint8array&&b instanceof Uint8Array?"uint8array":r.arraybuffer&&b instanceof ArrayBuffer?"arraybuffer":void 0};e.checkSupport=function(b){if(!r[b.toLowerCase()])throw Error(b+" is not supported by this platform");};e.MAX_VALUE_16BITS=65535;e.MAX_VALUE_32BITS=-1;e.pretty=function(b){var d,e,f="";for(e=0;e<(b||"").length;e++)d=b.charCodeAt(e),f+="\\x"+(16>d?"0":"")+d.toString(16).toUpperCase();return f};e.delay=function(b,d,e){G(function(){b.apply(e||null,d||[])})};e.inherits=function(b,d){var e=function(){};e.prototype=d.prototype;b.prototype=new e};e.extend=function(){var b,d,e={};for(b=0;b<arguments.length;b++)for(d in arguments[b])arguments[b].hasOwnProperty(d)&&"undefined"==typeof e[d]&&(e[d]=arguments[b][d]);return e};e.prepareContent=function(b,d,f,l,k){return B.Promise.resolve(d).then(function(b){return r.blob&&(b instanceof Blob||-1!==["[object File]","[object Blob]"].indexOf(Object.prototype.toString.call(b)))&&"undefined"!=typeof FileReader?new B.Promise(function(d,e){var f=new FileReader;f.onload=function(b){d(b.target.result)};f.onerror=function(b){e(b.target.error)};f.readAsArrayBuffer(b)}):b}).then(function(d){var m=e.getTypeOf(d);m?"arraybuffer"===m?d=e.transformTo("uint8array",d):"string"===m&&(k?d=q.decode(d):f&&!0!==l&&(m=null,d=(m=r.uint8array?new Uint8Array(d.length):Array(d.length),h(d,m)))):d=B.Promise.reject(Error("Can't read the data of '"+b+"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?"));return d})}},{"./base64":1,"./external":6,"./nodejsUtils":14,"./support":30,"core-js/library/fn/set-immediate":36}],33:[function(b,d,e){function f(b){this.files=[];this.loadOptions=b}var h=b("./reader/readerFor"),l=b("./utils"),m=b("./signature"),r=b("./zipEntry"),q=(b("./utf8"),b("./support"));f.prototype={checkSignature:function(b){if(!this.reader.readAndCheckSignature(b)){this.reader.index-=4;var d=this.reader.readString(4);throw Error("Corrupted zip or bug: unexpected signature ("+l.pretty(d)+", expected "+l.pretty(b)+")");}},isSignature:function(b,d){var e=this.reader.index;this.reader.setIndex(b);var f=this.reader.readString(4)===d;return this.reader.setIndex(e),f},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2);this.diskWithCentralDirrt=this.reader.readInt(2);this.centralDirRecordsOnThisDisk=this.reader.readInt(2);this.centralDirRecords=this.reader.readInt(2);this.centralDirSize=this.reader.readInt(4);this.centralDirOffset=this.reader.readInt(4);this.zipCommentLength=this.reader.readInt(2);var b=this.reader.readData(this.zipCommentLength),b=l.transformTo(q.uint8array?"uint8array":"array",b);this.zipComment=this.loadOptions.decodeFileName(b)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8);this.reader.skip(4);this.diskNumber=this.reader.readInt(4);this.diskWithCentralDirrt=this.reader.readInt(4);this.centralDirRecordsOnThisDisk=this.reader.readInt(8);this.centralDirRecords=this.reader.readInt(8);this.centralDirSize=this.reader.readInt(8);this.centralDirOffset=this.reader.readInt(8);this.zip64ExtensibleData={};for(var b,d,e,f=this.zip64EndOfCentralSize-44;0<f;)b=this.reader.readInt(2),d=this.reader.readInt(4),e=this.reader.readData(d),this.zip64ExtensibleData[b]={id:b,length:d,value:e}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirrt=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),1<this.disksCount)throw Error("Multi-volumes zip are not supported");},readLocalFiles:function(){var b,d;for(b=0;b<this.files.length;b++)d=this.files[b],this.reader.setIndex(d.localHeaderOffset),this.checkSignature(m.LOCAL_FILE_HEADER),d.readLocalPart(this.reader),d.handleUTF8(),d.processAttributes()},readCentralDir:function(){var b;for(this.reader.setIndex(this.centralDirOffset);this.reader.readAndCheckSignature(m.CENTRAL_FILE_HEADER);)b=new r({zip64:this.zip64},this.loadOptions),b.readCentralPart(this.reader),this.files.push(b);if(this.centralDirRecords!==this.files.length&&0!==this.centralDirRecords&&0===this.files.length)throw Error("Corrupted zip or bug: expected "+this.centralDirRecords+" records in central dir, got "+this.files.length);},readEndOfCentral:function(){var b=this.reader.lastIndexOfSignature(m.CENTRAL_DIRECTORY_END);if(0>b)throw this.isSignature(0,m.LOCAL_FILE_HEADER)?Error("Corrupted zip: can't find end of central directory"):Error("Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html");this.reader.setIndex(b);var d=b;if(this.checkSignature(m.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===l.MAX_VALUE_16BITS||this.diskWithCentralDirrt===l.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===l.MAX_VALUE_16BITS||this.centralDirRecords===l.MAX_VALUE_16BITS||this.centralDirSize===l.MAX_VALUE_32BITS||this.centralDirOffset===l.MAX_VALUE_32BITS){if(this.zip64=!0,b=this.reader.lastIndexOfSignature(m.ZIP64_CENTRAL_DIRECTORY_LOCATOR),0>b)throw Error("Corrupted zip: can't find the ZIP64 end of central directory locator");if(this.reader.setIndex(b),this.checkSignature(m.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,m.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(m.ZIP64_CENTRAL_DIRECTORY_END),0>this.relativeOffsetEndOfZip64CentralDir))throw Error("Corrupted zip: can't find the ZIP64 end of central directory");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir);this.checkSignature(m.ZIP64_CENTRAL_DIRECTORY_END);this.readBlockZip64EndOfCentral()}b=this.centralDirOffset+this.centralDirSize;this.zip64&&(b+=20,b+=12+this.zip64EndOfCentralSize);b=d-b;if(0<b)this.isSignature(d,m.CENTRAL_FILE_HEADER)||(this.reader.zero=b);else if(0>b)throw Error("Corrupted zip: missing "+Math.abs(b)+" bytes.");},prepareReader:function(b){this.reader=h(b)},load:function(b){this.prepareReader(b);this.readEndOfCentral();this.readCentralDir();this.readLocalFiles()}};d.exports=f},{"./reader/readerFor":22,"./signature":23,"./support":30,"./utf8":31,"./utils":32,"./zipEntry":34}],34:[function(b,d,e){function f(b,d){this.options=b;this.loadOptions=d}var h=b("./reader/readerFor"),l=b("./utils"),m=b("./compressedObject"),r=b("./crc32"),q=b("./utf8"),x=b("./compressions"),G=b("./support");f.prototype={isEncrypted:function(){return 1===(1&this.bitFlag)},useUTF8:function(){return 2048===(2048&this.bitFlag)},readLocalPart:function(b){var d,e;if(b.skip(22),this.fileNameLength=b.readInt(2),e=b.readInt(2),this.fileName=b.readData(this.fileNameLength),b.skip(e),-1===this.compressedSize||-1===this.uncompressedSize)throw Error("Bug or corrupted zip : didn't get enough informations from the central directory (compressedSize \x3d\x3d\x3d -1 || uncompressedSize \x3d\x3d\x3d -1)");var f;a:{e=this.compressionMethod;for(f in x)if(x.hasOwnProperty(f)&&x[f].magic===e){f=x[f];break a}f=null}if(d=f,null===d)throw Error("Corrupted zip : compression "+l.pretty(this.compressionMethod)+" unknown (inner file : "+l.transformTo("string",this.fileName)+")");this.decompressed=new m(this.compressedSize,this.uncompressedSize,this.crc32,d,b.readData(this.compressedSize))},readCentralPart:function(b){this.versionMadeBy=b.readInt(2);b.skip(2);this.bitFlag=b.readInt(2);this.compressionMethod=b.readString(2);this.date=b.readDate();this.crc32=b.readInt(4);this.compressedSize=b.readInt(4);this.uncompressedSize=b.readInt(4);var d=b.readInt(2);if(this.extraFieldsLength=b.readInt(2),this.fileCommentLength=b.readInt(2),this.diskNumberrt=b.readInt(2),this.internalFileAttributes=b.readInt(2),this.externalFileAttributes=b.readInt(4),this.localHeaderOffset=b.readInt(4),this.isEncrypted())throw Error("Encrypted zip are not supported");b.skip(d);this.readExtraFields(b);this.parseZIP64ExtraField(b);this.fileComment=b.readData(this.fileCommentLength)},processAttributes:function(){this.dosPermissions=this.unixPermissions=null;var b=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes);0===b&&(this.dosPermissions=63&this.externalFileAttributes);3===b&&(this.unixPermissions=this.externalFileAttributes>>16&65535);this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(b){this.extraFields[1]&&(b=h(this.extraFields[1].value),this.uncompressedSize===l.MAX_VALUE_32BITS&&(this.uncompressedSize=b.readInt(8)),this.compressedSize===l.MAX_VALUE_32BITS&&(this.compressedSize=b.readInt(8)),this.localHeaderOffset===l.MAX_VALUE_32BITS&&(this.localHeaderOffset=b.readInt(8)),this.diskNumberrt===l.MAX_VALUE_32BITS&&(this.diskNumberrt=b.readInt(4)))},readExtraFields:function(b){var d,e,f,h=b.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});b.index<h;)d=b.readInt(2),e=b.readInt(2),f=b.readData(e),this.extraFields[d]={id:d,length:e,value:f}},handleUTF8:function(){var b=G.uint8array?"uint8array":"array";if(this.useUTF8())this.fileNameStr=q.utf8decode(this.fileName),this.fileCommentStr=q.utf8decode(this.fileComment);else{var d=this.findExtraFieldUnicodePath();null!==d?this.fileNameStr=d:(d=l.transformTo(b,this.fileName),this.fileNameStr=this.loadOptions.decodeFileName(d));d=this.findExtraFieldUnicodeComment();null!==d?this.fileCommentStr=d:(b=l.transformTo(b,this.fileComment),this.fileCommentStr=this.loadOptions.decodeFileName(b))}},findExtraFieldUnicodePath:function(){var b=this.extraFields[28789];if(b){var d=h(b.value);return 1!==d.readInt(1)?null:r(this.fileName)!==d.readInt(4)?null:q.utf8decode(d.readData(b.length-5))}return null},findExtraFieldUnicodeComment:function(){var b=this.extraFields[25461];if(b){var d=h(b.value);return 1!==d.readInt(1)?null:r(this.fileComment)!==d.readInt(4)?null:q.utf8decode(d.readData(b.length-5))}return null}};d.exports=f},{"./compressedObject":2,"./compressions":3,"./crc32":4,"./reader/readerFor":22,"./support":30,"./utf8":31,"./utils":32}],35:[function(b,d,e){var f=b("./stream/StreamHelper"),h=b("./stream/DataWorker"),l=b("./utf8"),m=b("./compressedObject"),r=b("./stream/GenericWorker");b=function(b,d,e){this.name=b;this.dir=e.dir;this.date=e.date;this.comment=e.comment;this.unixPermissions=e.unixPermissions;this.dosPermissions=e.dosPermissions;this._data=d;this._dataBinary=e.binary;this.options={compression:e.compression,compressionOptions:e.compressionOptions}};b.prototype={internalStream:function(b){var d=null,e="string";try{if(!b)throw Error("No output type specified.");e=b.toLowerCase();b="string"===e||"text"===e;"binarystring"!==e&&"text"!==e||(e="string");var d=this._decompressWorker(),h=!this._dataBinary;h&&!b&&(d=d.pipe(new l.Utf8EncodeWorker));!h&&b&&(d=d.pipe(new l.Utf8DecodeWorker))}catch(k){d=new r("error"),d.error(k)}return new f(d,e,"")},async:function(b,d){return this.internalStream(b).accumulate(d)},nodeStream:function(b,d){return this.internalStream(b||"nodebuffer").toNodejsStream(d)},_compressWorker:function(b,d){if(this._data instanceof m&&this._data.compression.magic===b.magic)return this._data.getCompressedWorker();var e=this._decompressWorker();return this._dataBinary||(e=e.pipe(new l.Utf8EncodeWorker)),m.createWorkerFrom(e,b,d)},_decompressWorker:function(){return this._data instanceof m?this._data.getContentWorker():this._data instanceof r?this._data:new h(this._data)}};e=["asText","asBinary","asNodeBuffer","asUint8Array","asArrayBuffer"];for(var q=function(){throw Error("This method has been removed in JSZip 3.0, please check the upgrade guide.");},x=0;x<e.length;x++)b.prototype[e[x]]=q;d.exports=b},{"./compressedObject":2,"./stream/DataWorker":27,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31}],36:[function(b,d,e){b("../modules/web.immediate");d.exports=b("../modules/_core").setImmediate},{"../modules/_core":40,"../modules/web.immediate":56}],37:[function(b,d,e){d.exports=function(b){if("function"!=typeof b)throw TypeError(b+" is not a function!");return b}},{}],38:[function(b,d,e){var f=b("./_is-object");d.exports=function(b){if(!f(b))throw TypeError(b+" is not an object!");return b}},{"./_is-object":51}],39:[function(b,d,e){var f={}.toString;d.exports=function(b){return f.call(b).slice(8,-1)}},{}],40:[function(b,d,e){b=d.exports={version:"2.3.0"};"number"==typeof __e&&(__e=b)},{}],41:[function(b,d,e){var f=b("./_a-function");d.exports=function(b,d,e){if(f(b),void 0===d)return b;switch(e){case 1:return function(e){return b.call(d,e)};case 2:return function(e,f){return b.call(d,e,f)};case 3:return function(e,f,h){return b.call(d,e,f,h)}}return function(){return b.apply(d,arguments)}}},{"./_a-function":37}],42:[function(b,d,e){d.exports=!b("./_fails")(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},{"./_fails":45}],43:[function(b,d,e){e=b("./_is-object");var f=b("./_global").document,h=e(f)&&e(f.createElement);d.exports=function(b){return h?f.createElement(b):{}}},{"./_global":46,"./_is-object":51}],44:[function(b,d,e){var f=b("./_global"),h=b("./_core"),l=b("./_ctx"),m=b("./_hide"),r=function(b,d,e){var q,w,v=b&r.F,k=b&r.G,u=b&r.S,p=b&r.P,x=b&r.B,C=b&r.W,G=k?h:h[d]||(h[d]={}),aa=G.prototype,u=k?f:u?f[d]:(f[d]||{}).prototype;k&&(e=d);for(q in e)(d=!v&&u&&void 0!==u[q])&&q in G||(w=d?u[q]:e[q],G[q]=k&&"function"!=typeof u[q]?e[q]:x&&d?l(w,f):C&&u[q]==w?function(b){var d=function(d,e,f){if(this instanceof b){switch(arguments.length){case 0:return new b;case 1:return new b(d);case 2:return new b(d,e)}return new b(d,e,f)}return b.apply(this,arguments)};return d.prototype=b.prototype,d}(w):p&&"function"==typeof w?l(Function.call,w):w,p&&((G.virtual||(G.virtual={}))[q]=w,b&r.R&&aa&&!aa[q]&&m(aa,q,w)))};r.F=1;r.G=2;r.S=4;r.P=8;r.B=16;r.W=32;r.U=64;r.R=128;d.exports=r},{"./_core":40,"./_ctx":41,"./_global":46,"./_hide":47}],45:[function(b,d,e){d.exports=function(b){try{return!!b()}catch(h){return!0}}},{}],46:[function(b,d,e){b=d.exports="undefined"!=typeof window&&Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=b)},{}],47:[function(b,d,e){var f=b("./_object-dp"),h=b("./_property-desc");d.exports=b("./_descriptors")?function(b,d,e){return f.f(b,d,h(1,e))}:function(b,d,e){return b[d]=e,b}},{"./_descriptors":42,"./_object-dp":52,"./_property-desc":53}],48:[function(b,d,e){d.exports=b("./_global").document&&document.documentElement},{"./_global":46}],49:[function(b,d,e){d.exports=!b("./_descriptors")&&!b("./_fails")(function(){return 7!=Object.defineProperty(b("./_dom-create")("div"),"a",{get:function(){return 7}}).a})},{"./_descriptors":42,"./_dom-create":43,"./_fails":45}],50:[function(b,d,e){d.exports=function(b,d,e){var f=void 0===e;switch(d.length){case 0:return f?b():b.call(e);case 1:return f?b(d[0]):b.call(e,d[0]);case 2:return f?b(d[0],d[1]):b.call(e,d[0],d[1]);case 3:return f?b(d[0],d[1],d[2]):b.call(e,d[0],d[1],d[2]);case 4:return f?b(d[0],d[1],d[2],d[3]):b.call(e,d[0],d[1],d[2],d[3])}return b.apply(e,d)}},{}],51:[function(b,d,e){d.exports=function(b){return"object"==typeof b?null!==b:"function"==typeof b}},{}],52:[function(b,d,e){var f=b("./_an-object"),h=b("./_ie8-dom-define"),l=b("./_to-primitive"),m=Object.defineProperty;e.f=b("./_descriptors")?Object.defineProperty:function(b,d,e){if(f(b),d=l(d,!0),f(e),h)try{return m(b,d,e)}catch(G){}if("get"in e||"set"in e)throw TypeError("Accessors not supported!");return"value"in e&&(b[d]=e.value),b}},{"./_an-object":38,"./_descriptors":42,"./_ie8-dom-define":49,"./_to-primitive":55}],53:[function(b,d,e){d.exports=function(b,d){return{enumerable:!(1&b),configurable:!(2&b),writable:!(4&b),value:d}}},{}],54:[function(b,d,e){var f,h,l,m=b("./_ctx"),r=b("./_invoke"),q=b("./_html"),x=b("./_dom-create"),G=b("./_global"),B=G.process;e=G.setImmediate;var w=G.clearImmediate,v=G.MessageChannel,k=0,u={},p=function(){var b=+this;if(u.hasOwnProperty(b)){var d=u[b];delete u[b];d()}},E=function(b){p.call(b.data)};e&&w||(e=function(b){for(var d=[],e=1;arguments.length>e;)d.push(arguments[e++]);return u[++k]=function(){r("function"==typeof b?b:Function(b),d)},f(k),k},w=function(b){delete u[b]},"process"==b("./_cof")(B)?f=function(b){B.nextTick(m(p,b,1))}:v?(h=new v,l=h.port2,h.port1.onmessage=E,f=m(l.postMessage,l,1)):G.addEventListener&&"function"==typeof postMessage&&!G.importScripts?(f=function(b){G.postMessage(b+"","*")},G.addEventListener("message",E,!1)):f="onreadystatechange"in x("script")?function(b){q.appendChild(x("script")).onreadystatechange=function(){q.removeChild(this);p.call(b)}}:function(b){setTimeout(m(p,b,1),0)});d.exports={set:e,clear:w}},{"./_cof":39,"./_ctx":41,"./_dom-create":43,"./_global":46,"./_html":48,"./_invoke":50}],55:[function(b,d,e){var f=b("./_is-object");d.exports=function(b,d){if(!f(b))return b;var e,h;if(d&&"function"==typeof(e=b.toString)&&!f(h=e.call(b))||"function"==typeof(e=b.valueOf)&&!f(h=e.call(b))||!d&&"function"==typeof(e=b.toString)&&!f(h=e.call(b)))return h;throw TypeError("Can't convert object to primitive value");}},{"./_is-object":51}],56:[function(b,d,e){d=b("./_export");b=b("./_task");d(d.G+d.B,{setImmediate:b.set,clearImmediate:b.clear})},{"./_export":44,"./_task":54}],57:[function(b,d,e){(function(b){function e(){G=!0;for(var b,d,e=B.length;e;){d=B;B=[];for(b=-1;++b<e;)d[b]();e=B.length}G=!1}var f,m=b.MutationObserver||b.WebKitMutationObserver;if(m){var r=0,m=new m(e),q=b.document.createTextNode("");m.observe(q,{characterData:!0});f=function(){q.data=r=++r%2}}else if(b.setImmediate||"undefined"==typeof b.MessageChannel)f="document"in b&&"onreadystatechange"in b.document.createElement("script")?function(){var d=b.document.createElement("script");d.onreadystatechange=function(){e();d.onreadystatechange=null;d.parentNode.removeChild(d);d=null};b.document.documentElement.appendChild(d)}:function(){setTimeout(e,0)};else{var x=new b.MessageChannel;x.port1.onmessage=e;f=function(){x.port2.postMessage(0)}}var G,B=[];d.exports=function(b){1!==B.push(b)||G||f()}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],58:[function(b,d,e){function f(){}function h(b){if("function"!=typeof b)throw new TypeError("resolver must be a function");this.state=k;this.queue=[];this.outcome=void 0;b!==f&&q(this,b)}function l(b,d,e){this.promise=b;"function"==typeof d&&(this.onFulfilled=d,this.callFulfilled=this.otherCallFulfilled);"function"==typeof e&&(this.onRejected=e,this.callRejected=this.otherCallRejected)}function m(b,d,e){G(function(){var f;try{f=d(e)}catch(W){return B.reject(b,W)}f===b?B.reject(b,new TypeError("Cannot resolve promise with itself")):B.resolve(b,f)})}function r(b){var d=b&&b.then;if(b&&("object"==typeof b||"function"==typeof b)&&"function"==typeof d)return function(){d.apply(b,arguments)}}function q(b,d){function e(d){h||(h=!0,B.reject(b,d))}function f(d){h||(h=!0,B.resolve(b,d))}var h=!1,l=x(function(){d(f,e)});"error"===l.status&&e(l.value)}function x(b,d){var e={};try{e.value=b(d),e.status="success"}catch(C){e.status="error",e.value=C}return e}var G=b("immediate"),B={},w=["REJECTED"],v=["FULFILLED"],k=["PENDING"];d.exports=h;h.prototype["catch"]=function(b){return this.then(null,b)};h.prototype.then=function(b,d){if("function"!=typeof b&&this.state===v||"function"!=typeof d&&this.state===w)return this;var e=new this.constructor(f);this.state!==k?m(e,this.state===v?b:d,this.outcome):this.queue.push(new l(e,b,d));return e};l.prototype.callFulfilled=function(b){B.resolve(this.promise,b)};l.prototype.otherCallFulfilled=function(b){m(this.promise,this.onFulfilled,b)};l.prototype.callRejected=function(b){B.reject(this.promise,b)};l.prototype.otherCallRejected=function(b){m(this.promise,this.onRejected,b)};B.resolve=function(b,d){var e=x(r,d);if("error"===e.status)return B.reject(b,e.value);if(e=e.value)q(b,e);else{b.state=v;b.outcome=d;for(var e=-1,f=b.queue.length;++e<f;)b.queue[e].callFulfilled(d)}return b};B.reject=function(b,d){b.state=w;b.outcome=d;for(var e=-1,f=b.queue.length;++e<f;)b.queue[e].callRejected(d);return b};h.resolve=function(b){return b instanceof this?b:B.resolve(new this(f),b)};h.reject=function(b){var d=new this(f);return B.reject(d,b)};h.all=function(b){function d(b,d){e.resolve(b).then(function(b){k[d]=b;++m!==h||l||(l=!0,B.resolve(r,k))},function(b){l||(l=!0,B.reject(r,b))})}var e=this;if("[object Array]"!==Object.prototype.toString.call(b))return this.reject(new TypeError("must be an array"));var h=b.length,l=!1;if(!h)return this.resolve([]);for(var k=Array(h),m=0,q=-1,r=new this(f);++q<h;)d(b[q],q);return r};h.race=function(b){function d(b){e.resolve(b).then(function(b){l||(l=!0,B.resolve(m,b))},function(b){l||(l=!0,B.reject(m,b))})}var e=this;if("[object Array]"!==Object.prototype.toString.call(b))return this.reject(new TypeError("must be an array"));var h=b.length,l=!1;if(!h)return this.resolve([]);for(var k=-1,m=new this(f);++k<h;)d(b[k]);return m}},{immediate:57}],59:[function(b,d,e){e=b("./lib/utils/common").assign;var f=b("./lib/deflate"),h=b("./lib/inflate");b=b("./lib/zlib/constants");var l={};e(l,f,h,b);d.exports=l},{"./lib/deflate":60,"./lib/inflate":61,"./lib/utils/common":62,"./lib/zlib/constants":65}],60:[function(b,d,e){function f(b){if(!(this instanceof f))return new f(b);b=this.options=m.assign({level:w,method:k,chunkSize:16384,windowBits:15,memLevel:8,strategy:v,to:""},b||{});b.raw&&0<b.windowBits?b.windowBits=-b.windowBits:b.gzip&&0<b.windowBits&&16>b.windowBits&&(b.windowBits+=16);this.err=0;this.msg="";this.ended=!1;this.chunks=[];this.strm=new x;this.strm.avail_out=0;var d=l.deflateInit2(this.strm,b.level,b.method,b.windowBits,b.memLevel,b.strategy);if(d!==B)throw Error(q[d]);if(b.header&&l.deflateSetHeader(this.strm,b.header),b.dictionary){var e;if(e="string"==typeof b.dictionary?r.string2buf(b.dictionary):"[object ArrayBuffer]"===G.call(b.dictionary)?new Uint8Array(b.dictionary):b.dictionary,d=l.deflateSetDictionary(this.strm,e),d!==B)throw Error(q[d]);this._dict_set=!0}}function h(b,d){var e=new f(d);if(e.push(b,!0),e.err)throw e.msg||q[e.err];return e.result}var l=b("./zlib/deflate"),m=b("./utils/common"),r=b("./utils/strings"),q=b("./zlib/messages"),x=b("./zlib/zstream"),G=Object.prototype.toString,B=0,w=-1,v=0,k=8;f.prototype.push=function(b,d){var e,f,h=this.strm,k=this.options.chunkSize;if(this.ended)return!1;f=d===~~d?d:!0===d?4:0;"string"==typeof b?h.input=r.string2buf(b):"[object ArrayBuffer]"===G.call(b)?h.input=new Uint8Array(b):h.input=b;h.next_in=0;h.avail_in=h.input.length;do{if(0===h.avail_out&&(h.output=new m.Buf8(k),h.next_out=0,h.avail_out=k),e=l.deflate(h,f),1!==e&&e!==B)return this.onEnd(e),this.ended=!0,!1;0!==h.avail_out&&(0!==h.avail_in||4!==f&&2!==f)||("string"===this.options.to?this.onData(r.buf2binstring(m.shrinkBuf(h.output,h.next_out))):this.onData(m.shrinkBuf(h.output,h.next_out)))}while((0<h.avail_in||0===h.avail_out)&&1!==e);return 4===f?(e=l.deflateEnd(this.strm),this.onEnd(e),this.ended=!0,e===B):2!==f||(this.onEnd(B),h.avail_out=0,!0)};f.prototype.onData=function(b){this.chunks.push(b)};f.prototype.onEnd=function(b){b===B&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=m.flattenChunks(this.chunks));this.chunks=[];this.err=b;this.msg=this.strm.msg};e.Deflate=f;e.deflate=h;e.deflateRaw=function(b,d){return d=d||{},d.raw=!0,h(b,d)};e.gzip=function(b,d){return d=d||{},d.gzip=!0,h(b,d)}},{"./utils/common":62,"./utils/strings":63,"./zlib/deflate":67,"./zlib/messages":72,"./zlib/zstream":74}],61:[function(b,d,e){function f(b){if(!(this instanceof f))return new f(b);var d=this.options=m.assign({chunkSize:16384,windowBits:0,to:""},b||{});d.raw&&0<=d.windowBits&&16>d.windowBits&&(d.windowBits=-d.windowBits,0===d.windowBits&&(d.windowBits=-15));!(0<=d.windowBits&&16>d.windowBits)||b&&b.windowBits||(d.windowBits+=32);15<d.windowBits&&48>d.windowBits&&0===(15&d.windowBits)&&(d.windowBits|=15);this.err=0;this.msg="";this.ended=!1;this.chunks=[];this.strm=new G;this.strm.avail_out=0;b=l.inflateInit2(this.strm,d.windowBits);if(b!==q.Z_OK)throw Error(x[b]);this.header=new B;l.inflateGetHeader(this.strm,this.header)}function h(b,d){var e=new f(d);if(e.push(b,!0),e.err)throw e.msg||x[e.err];return e.result}var l=b("./zlib/inflate"),m=b("./utils/common"),r=b("./utils/strings"),q=b("./zlib/constants"),x=b("./zlib/messages"),G=b("./zlib/zstream"),B=b("./zlib/gzheader"),w=Object.prototype.toString;f.prototype.push=function(b,d){var e,f,h,k,v,x,B=this.strm,G=this.options.chunkSize,A=this.options.dictionary,H=!1;if(this.ended)return!1;f=d===~~d?d:!0===d?q.Z_FINISH:q.Z_NO_FLUSH;"string"==typeof b?B.input=r.binstring2buf(b):"[object ArrayBuffer]"===w.call(b)?B.input=new Uint8Array(b):B.input=b;B.next_in=0;B.avail_in=B.input.length;do{if(0===B.avail_out&&(B.output=new m.Buf8(G),B.next_out=0,B.avail_out=G),e=l.inflate(B,q.Z_NO_FLUSH),e===q.Z_NEED_DICT&&A&&(x="string"==typeof A?r.string2buf(A):"[object ArrayBuffer]"===w.call(A)?new Uint8Array(A):A,e=l.inflateSetDictionary(this.strm,x)),e===q.Z_BUF_ERROR&&!0===H&&(e=q.Z_OK,H=!1),e!==q.Z_STREAM_END&&e!==q.Z_OK)return this.onEnd(e),this.ended=!0,!1;B.next_out&&(0!==B.avail_out&&e!==q.Z_STREAM_END&&(0!==B.avail_in||f!==q.Z_FINISH&&f!==q.Z_SYNC_FLUSH)||("string"===this.options.to?(h=r.utf8border(B.output,B.next_out),k=B.next_out-h,v=r.buf2string(B.output,h),B.next_out=k,B.avail_out=G-k,k&&m.arraySet(B.output,B.output,h,k,0),this.onData(v)):this.onData(m.shrinkBuf(B.output,B.next_out))));0===B.avail_in&&0===B.avail_out&&(H=!0)}while((0<B.avail_in||0===B.avail_out)&&e!==q.Z_STREAM_END);return e===q.Z_STREAM_END&&(f=q.Z_FINISH),f===q.Z_FINISH?(e=l.inflateEnd(this.strm),this.onEnd(e),this.ended=!0,e===q.Z_OK):f!==q.Z_SYNC_FLUSH||(this.onEnd(q.Z_OK),B.avail_out=0,!0)};f.prototype.onData=function(b){this.chunks.push(b)};f.prototype.onEnd=function(b){b===q.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=m.flattenChunks(this.chunks));this.chunks=[];this.err=b;this.msg=this.strm.msg};e.Inflate=f;e.inflate=h;e.inflateRaw=function(b,d){return d=d||{},d.raw=!0,h(b,d)};e.ungzip=h},{"./utils/common":62,"./utils/strings":63,"./zlib/constants":65,"./zlib/gzheader":68,"./zlib/inflate":70,"./zlib/messages":72,"./zlib/zstream":74}],62:[function(b,d,e){b="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;e.assign=function(b){for(var d=Array.prototype.slice.call(arguments,1);d.length;){var e=d.shift();if(e){if("object"!=typeof e)throw new TypeError(e+"must be non-object");for(var f in e)e.hasOwnProperty(f)&&(b[f]=e[f])}}return b};e.shrinkBuf=function(b,d){return b.length===d?b:b.subarray?b.subarray(0,d):(b.length=d,b)};var f={arraySet:function(b,d,e,f,h){if(d.subarray&&b.subarray)return void b.set(d.subarray(e,e+f),h);for(var l=0;l<f;l++)b[h+l]=d[e+l]},flattenChunks:function(b){var d,e,f,h,l;d=f=0;for(e=b.length;d<e;d++)f+=b[d].length;l=new Uint8Array(f);d=f=0;for(e=b.length;d<e;d++)h=b[d],l.set(h,f),f+=h.length;return l}},h={arraySet:function(b,d,e,f,h){for(var l=0;l<f;l++)b[h+l]=d[e+l]},flattenChunks:function(b){return[].concat.apply([],b)}};e.setTyped=function(b){b?(e.Buf8=Uint8Array,e.Buf16=Uint16Array,e.Buf32=Int32Array,e.assign(e,f)):(e.Buf8=Array,e.Buf16=Array,e.Buf32=Array,e.assign(e,h))};e.setTyped(b)},{}],63:[function(b,d,e){function f(b,d){if(65537>d&&(b.subarray&&m||!b.subarray&&l))return String.fromCharCode.apply(null,h.shrinkBuf(b,d));for(var e="",f=0;f<d;f++)e+=String.fromCharCode(b[f]);return e}var h=b("./common"),l=!0,m=!0;try{String.fromCharCode.apply(null,[0])}catch(q){l=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(q){m=!1}var r=new h.Buf8(256);for(b=0;256>b;b++)r[b]=252<=b?6:248<=b?5:240<=b?4:224<=b?3:192<=b?2:1;r[254]=r[254]=1;e.string2buf=function(b){var d,e,f,l,m,k=b.length,q=0;for(l=0;l<k;l++)e=b.charCodeAt(l),55296===(64512&e)&&l+1<k&&(f=b.charCodeAt(l+1),56320===(64512&f)&&(e=65536+(e-55296<<10)+(f-56320),l++)),q+=128>e?1:2048>e?2:65536>e?3:4;d=new h.Buf8(q);for(l=m=0;m<q;l++)e=b.charCodeAt(l),55296===(64512&e)&&l+1<k&&(f=b.charCodeAt(l+1),56320===(64512&f)&&(e=65536+(e-55296<<10)+(f-56320),l++)),128>e?d[m++]=e:2048>e?(d[m++]=192|e>>>6,d[m++]=128|63&e):65536>e?(d[m++]=224|e>>>12,d[m++]=128|e>>>6&63,d[m++]=128|63&e):(d[m++]=240|e>>>18,d[m++]=128|e>>>12&63,d[m++]=128|e>>>6&63,d[m++]=128|63&e);return d};e.buf2binstring=function(b){return f(b,b.length)};e.binstring2buf=function(b){for(var d=new h.Buf8(b.length),e=0,f=d.length;e<f;e++)d[e]=b.charCodeAt(e);return d};e.buf2string=function(b,d){var e,h,l,m,k=d||b.length,q=Array(2*k);for(e=h=0;e<k;)if(l=b[e++],128>l)q[h++]=l;else if(m=r[l],4<m)q[h++]=65533,e+=m-1;else{for(l&=2===m?31:3===m?15:7;1<m&&e<k;)l=l<<6|63&b[e++],m--;1<m?q[h++]=65533:65536>l?q[h++]=l:(l-=65536,q[h++]=55296|l>>10&1023,q[h++]=56320|1023&l)}return f(q,h)};e.utf8border=function(b,d){var e;d=d||b.length;d>b.length&&(d=b.length);for(e=d-1;0<=e&&128===(192&b[e]);)e--;return 0>e?d:0===e?d:e+r[b[e]]>d?e:d}},{"./common":62}],64:[function(b,d,e){d.exports=function(b,d,e,m){var f=65535&b|0;b=b>>>16&65535|0;for(var h;0!==e;){h=2E3<e?2E3:e;e-=h;do f=f+d[m++]|0,b=b+f|0;while(--h);f%=65521;b%=65521}return f|b<<16|0}},{}],65:[function(b,d,e){d.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],66:[function(b,d,e){var f=function(){for(var b,d=[],e=0;256>e;e++){b=e;for(var f=0;8>f;f++)b=1&b?3988292384^b>>>1:b>>>1;d[e]=b}return d}();d.exports=function(b,d,e,r){e=r+e;for(b^=-1;r<e;r++)b=b>>>8^f[255&(b^d[r])];return b^-1}},{}],67:[function(b,d,e){function f(b,d){return b.msg=A[d],d}function h(b){for(var d=b.length;0<=--d;)b[d]=0}function l(b){var d=b.state,e=d.pending;e>b.avail_out&&(e=b.avail_out);0!==e&&(W.arraySet(b.output,d.pending_buf,d.pending_out,e,b.next_out),b.next_out+=e,d.pending_out+=e,b.total_out+=e,b.avail_out-=e,d.pending-=e,0===d.pending&&(d.pending_out=0))}function m(b,d){aa._tr_flush_block(b,0<=b.block_start?b.block_start:-1,b.strstart-b.block_start,d);b.block_start=b.strstart;l(b.strm)}function r(b,d){b.pending_buf[b.pending++]=d}function q(b,d){b.pending_buf[b.pending++]=d>>>8&255;b.pending_buf[b.pending++]=255&d}function x(b,d){var e,f,h=b.max_chain_length,l=b.strstart,k=b.prev_length,m=b.nice_match,p=b.strstart>b.w_size-ga?b.strstart-(b.w_size-ga):0,q=b.window,r=b.w_mask,u=b.prev,D=b.strstart+S,v=q[l+k-1],A=q[l+k];b.prev_length>=b.good_match&&(h>>=2);m>b.lookahead&&(m=b.lookahead);do if(e=d,q[e+k]===A&&q[e+k-1]===v&&q[e]===q[l]&&q[++e]===q[l+1]){l+=2;for(e++;q[++l]===q[++e]&&q[++l]===q[++e]&&q[++l]===q[++e]&&q[++l]===q[++e]&&q[++l]===q[++e]&&q[++l]===q[++e]&&q[++l]===q[++e]&&q[++l]===q[++e]&&l<D;);if(f=S-(D-l),l=D-S,f>k){if(b.match_start=d,k=f,f>=m)break;v=q[l+k-1];A=q[l+k]}}while((d=u[d&r])>p&&0!==--h);return k<=b.lookahead?k:b.lookahead}function G(b){var d,e,f,h,l=b.w_size;do{if(h=b.window_size-b.lookahead-b.strstart,b.strstart>=l+(l-ga)){W.arraySet(b.window,b.window,l,l,0);b.match_start-=l;b.strstart-=l;b.block_start-=l;d=e=b.hash_size;do f=b.head[--d],b.head[d]=f>=l?f-l:0;while(--e);d=e=l;do f=b.prev[--d],b.prev[d]=f>=l?f-l:0;while(--e);h+=l}if(0===b.strm.avail_in)break;d=b.strm;f=b.window;var k=b.strstart+b.lookahead,m=d.avail_in;if(e=(m>h&&(m=h),0===m?0:(d.avail_in-=m,W.arraySet(f,d.input,d.next_in,m,k),1===d.state.wrap?d.adler=F(d.adler,f,m,k):2===d.state.wrap&&(d.adler=L(d.adler,f,m,k)),d.next_in+=m,d.total_in+=m,m)),b.lookahead+=e,b.lookahead+b.insert>=Y)for(h=b.strstart-b.insert,b.ins_h=b.window[h],b.ins_h=(b.ins_h<<b.hash_shift^b.window[h+1])&b.hash_mask;b.insert&&(b.ins_h=(b.ins_h<<b.hash_shift^b.window[h+Y-1])&b.hash_mask,b.prev[h&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=h,h++,b.insert--,!(b.lookahead+b.insert<Y)););}while(b.lookahead<ga&&0!==b.strm.avail_in)}function B(b,d){for(var e,f;;){if(b.lookahead<ga){if(G(b),b.lookahead<ga&&d===H)return ha;if(0===b.lookahead)break}if(e=0,b.lookahead>=Y&&(b.ins_h=(b.ins_h<<b.hash_shift^b.window[b.strstart+Y-1])&b.hash_mask,e=b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=b.strstart),0!==e&&b.strstart-e<=b.w_size-ga&&(b.match_length=x(b,e)),b.match_length>=Y)if(f=aa._tr_tally(b,b.strstart-b.match_start,b.match_length-Y),b.lookahead-=b.match_length,b.match_length<=b.max_lazy_match&&b.lookahead>=Y){b.match_length--;do b.strstart++,b.ins_h=(b.ins_h<<b.hash_shift^b.window[b.strstart+Y-1])&b.hash_mask,e=b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=b.strstart;while(0!==--b.match_length);b.strstart++}else b.strstart+=b.match_length,b.match_length=0,b.ins_h=b.window[b.strstart],b.ins_h=(b.ins_h<<b.hash_shift^b.window[b.strstart+1])&b.hash_mask;else f=aa._tr_tally(b,0,b.window[b.strstart]),b.lookahead--,b.strstart++;if(f&&(m(b,!1),0===b.strm.avail_out))return ha}return b.insert=b.strstart<Y-1?b.strstart:Y-1,d===D?(m(b,!0),0===b.strm.avail_out?Oa:Ea):b.last_lit&&(m(b,!1),0===b.strm.avail_out)?ha:na}function w(b,d){for(var e,f,h;;){if(b.lookahead<ga){if(G(b),b.lookahead<ga&&d===H)return ha;if(0===b.lookahead)break}if(e=0,b.lookahead>=Y&&(b.ins_h=(b.ins_h<<b.hash_shift^b.window[b.strstart+Y-1])&b.hash_mask,e=b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=b.strstart),b.prev_length=b.match_length,b.prev_match=b.match_start,b.match_length=Y-1,0!==e&&b.prev_length<b.max_lazy_match&&b.strstart-e<=b.w_size-ga&&(b.match_length=x(b,e),5>=b.match_length&&(b.strategy===Q||b.match_length===Y&&4096<b.strstart-b.match_start)&&(b.match_length=Y-1)),b.prev_length>=Y&&b.match_length<=b.prev_length){h=b.strstart+b.lookahead-Y;f=aa._tr_tally(b,b.strstart-1-b.prev_match,b.prev_length-Y);b.lookahead-=b.prev_length-1;b.prev_length-=2;do++b.strstart<=h&&(b.ins_h=(b.ins_h<<b.hash_shift^b.window[b.strstart+Y-1])&b.hash_mask,e=b.prev[b.strstart&b.w_mask]=b.head[b.ins_h],b.head[b.ins_h]=b.strstart);while(0!==--b.prev_length);if(b.match_available=0,b.match_length=Y-1,b.strstart++,f&&(m(b,!1),0===b.strm.avail_out))return ha}else if(b.match_available){if(f=aa._tr_tally(b,0,b.window[b.strstart-1]),f&&m(b,!1),b.strstart++,b.lookahead--,0===b.strm.avail_out)return ha}else b.match_available=1,b.strstart++,b.lookahead--}return b.match_available&&(aa._tr_tally(b,0,b.window[b.strstart-1]),b.match_available=0),b.insert=b.strstart<Y-1?b.strstart:Y-1,d===D?(m(b,!0),0===b.strm.avail_out?Oa:Ea):b.last_lit&&(m(b,!1),0===b.strm.avail_out)?ha:na}function v(b,d,e,f,h){this.good_length=b;this.max_lazy=d;this.nice_length=e;this.max_chain=f;this.func=h}function k(){this.strm=null;this.status=0;this.pending_buf=null;this.wrap=this.pending=this.pending_out=this.pending_buf_size=0;this.gzhead=null;this.gzindex=0;this.method=ba;this.last_flush=-1;this.w_mask=this.w_bits=this.w_size=0;this.window=null;this.window_size=0;this.head=this.prev=null;this.nice_match=this.good_match=this.strategy=this.level=this.max_lazy_match=this.max_chain_length=this.prev_length=this.lookahead=this.match_start=this.strstart=this.match_available=this.prev_match=this.match_length=this.block_start=this.hash_shift=this.hash_mask=this.hash_bits=this.hash_size=this.ins_h=0;this.dyn_ltree=new W.Buf16(2*ta);this.dyn_dtree=new W.Buf16(2*(2*R+1));this.bl_tree=new W.Buf16(2*(2*Z+1));h(this.dyn_ltree);h(this.dyn_dtree);h(this.bl_tree);this.bl_desc=this.d_desc=this.l_desc=null;this.bl_count=new W.Buf16(da+1);this.heap=new W.Buf16(2*Na+1);h(this.heap);this.heap_max=this.heap_len=0;this.depth=new W.Buf16(2*Na+1);h(this.depth);this.bi_valid=this.bi_buf=this.insert=this.matches=this.static_len=this.opt_len=this.d_buf=this.last_lit=this.lit_bufsize=this.l_buf=0}function u(b){var d;return b&&b.state?(b.total_in=b.total_out=0,b.data_type=K,d=b.state,d.pending=0,d.pending_out=0,0>d.wrap&&(d.wrap=-d.wrap),d.status=d.wrap?ja:ka,b.adler=2===d.wrap?0:1,d.last_flush=H,aa._tr_init(d),M):f(b,N)}function p(b){var d=u(b);d===M&&(b=b.state,b.window_size=2*b.w_size,h(b.head),b.max_lazy_match=C[b.level].max_lazy,b.good_match=C[b.level].good_length,b.nice_match=C[b.level].nice_length,b.max_chain_length=C[b.level].max_chain,b.strstart=0,b.block_start=0,b.lookahead=0,b.insert=0,b.match_length=b.prev_length=Y-1,b.match_available=0,b.ins_h=0);return d}function E(b,d,e,h,l,m){if(!b)return N;var q=1;if(d===V&&(d=6),0>h?(q=0,h=-h):15<h&&(q=2,h-=16),1>l||l>ca||e!==ba||8>h||15<h||0>d||9<d||0>m||m>J)return f(b,N);8===h&&(h=9);var r=new k;return b.state=r,r.strm=b,r.wrap=q,r.gzhead=null,r.w_bits=h,r.w_size=1<<r.w_bits,r.w_mask=r.w_size-1,r.hash_bits=l+7,r.hash_size=1<<r.hash_bits,r.hash_mask=r.hash_size-1,r.hash_shift=~~((r.hash_bits+Y-1)/Y),r.window=new W.Buf8(2*r.w_size),r.head=new W.Buf16(r.hash_size),r.prev=new W.Buf16(r.w_size),r.lit_bufsize=1<<l+6,r.pending_buf_size=4*r.lit_bufsize,r.pending_buf=new W.Buf8(r.pending_buf_size),r.d_buf=1*r.lit_bufsize,r.l_buf=3*r.lit_bufsize,r.level=d,r.strategy=m,r.method=e,p(b)}var C,W=b("../utils/common"),aa=b("./trees"),F=b("./adler32"),L=b("./crc32"),A=b("./messages"),H=0,D=4,M=0,N=-2,V=-1,Q=1,J=4,K=2,ba=8,ca=9,Na=286,R=30,Z=19,ta=2*Na+1,da=15,Y=3,S=258,ga=S+Y+1,ja=42,ka=113,ha=1,na=2,Oa=3,Ea=4;C=[new v(0,0,0,0,function(b,d){var e=65535;for(e>b.pending_buf_size-5&&(e=b.pending_buf_size-5);;){if(1>=b.lookahead){if(G(b),0===b.lookahead&&d===H)return ha;if(0===b.lookahead)break}b.strstart+=b.lookahead;b.lookahead=0;var f=b.block_start+e;if((0===b.strstart||b.strstart>=f)&&(b.lookahead=b.strstart-f,b.strstart=f,m(b,!1),0===b.strm.avail_out)||b.strstart-b.block_start>=b.w_size-ga&&(m(b,!1),0===b.strm.avail_out))return ha}return b.insert=0,d===D?(m(b,!0),0===b.strm.avail_out?Oa:Ea):(b.strstart>b.block_start&&m(b,!1),ha)}),new v(4,4,8,4,B),new v(4,5,16,8,B),new v(4,6,32,32,B),new v(4,4,16,16,w),new v(8,16,32,32,w),new v(8,16,128,128,w),new v(8,32,128,256,w),new v(32,128,258,1024,w),new v(32,258,258,4096,w)];e.deflateInit=function(b,d){return E(b,d,ba,15,8,0)};e.deflateInit2=E;e.deflateReset=p;e.deflateResetKeep=u;e.deflateSetHeader=function(b,d){return b&&b.state?2!==b.state.wrap?N:(b.state.gzhead=d,M):N};e.deflate=function(b,d){var e,k,p,u;if(!b||!b.state||5<d||0>d)return b?f(b,N):N;if(k=b.state,!b.output||!b.input&&0!==b.avail_in||666===k.status&&d!==D)return f(b,0===b.avail_out?-5:N);if(k.strm=b,e=k.last_flush,k.last_flush=d,k.status===ja)2===k.wrap?(b.adler=0,r(k,31),r(k,139),r(k,8),k.gzhead?(r(k,(k.gzhead.text?1:0)+(k.gzhead.hcrc?2:0)+(k.gzhead.extra?4:0)+(k.gzhead.name?8:0)+(k.gzhead.comment?16:0)),r(k,255&k.gzhead.time),r(k,k.gzhead.time>>8&255),r(k,k.gzhead.time>>16&255),r(k,k.gzhead.time>>24&255),r(k,9===k.level?2:2<=k.strategy||2>k.level?4:0),r(k,255&k.gzhead.os),k.gzhead.extra&&k.gzhead.extra.length&&(r(k,255&k.gzhead.extra.length),r(k,k.gzhead.extra.length>>8&255)),k.gzhead.hcrc&&(b.adler=L(b.adler,k.pending_buf,k.pending,0)),k.gzindex=0,k.status=69):(r(k,0),r(k,0),r(k,0),r(k,0),r(k,0),r(k,9===k.level?2:2<=k.strategy||2>k.level?4:0),r(k,3),k.status=ka)):(p=ba+(k.w_bits-8<<4)<<8,p|=(2<=k.strategy||2>k.level?0:6>k.level?1:6===k.level?2:3)<<6,0!==k.strstart&&(p|=32),k.status=ka,q(k,p+(31-p%31)),0!==k.strstart&&(q(k,b.adler>>>16),q(k,65535&b.adler)),b.adler=1);if(69===k.status)if(k.gzhead.extra){for(p=k.pending;k.gzindex<(65535&k.gzhead.extra.length)&&(k.pending!==k.pending_buf_size||(k.gzhead.hcrc&&k.pending>p&&(b.adler=L(b.adler,k.pending_buf,k.pending-p,p)),l(b),p=k.pending,k.pending!==k.pending_buf_size));)r(k,255&k.gzhead.extra[k.gzindex]),k.gzindex++;k.gzhead.hcrc&&k.pending>p&&(b.adler=L(b.adler,k.pending_buf,k.pending-p,p));k.gzindex===k.gzhead.extra.length&&(k.gzindex=0,k.status=73)}else k.status=73;if(73===k.status)if(k.gzhead.name){p=k.pending;do{if(k.pending===k.pending_buf_size&&(k.gzhead.hcrc&&k.pending>p&&(b.adler=L(b.adler,k.pending_buf,k.pending-p,p)),l(b),p=k.pending,k.pending===k.pending_buf_size)){u=1;break}u=k.gzindex<k.gzhead.name.length?255&k.gzhead.name.charCodeAt(k.gzindex++):0;r(k,u)}while(0!==u);k.gzhead.hcrc&&k.pending>p&&(b.adler=L(b.adler,k.pending_buf,k.pending-p,p));0===u&&(k.gzindex=0,k.status=91)}else k.status=91;if(91===k.status)if(k.gzhead.comment){p=k.pending;do{if(k.pending===k.pending_buf_size&&(k.gzhead.hcrc&&k.pending>p&&(b.adler=L(b.adler,k.pending_buf,k.pending-p,p)),l(b),p=k.pending,k.pending===k.pending_buf_size)){u=1;break}u=k.gzindex<k.gzhead.comment.length?255&k.gzhead.comment.charCodeAt(k.gzindex++):0;r(k,u)}while(0!==u);k.gzhead.hcrc&&k.pending>p&&(b.adler=L(b.adler,k.pending_buf,k.pending-p,p));0===u&&(k.status=103)}else k.status=103;if(103===k.status&&(k.gzhead.hcrc?(k.pending+2>k.pending_buf_size&&l(b),k.pending+2<=k.pending_buf_size&&(r(k,255&b.adler),r(k,b.adler>>8&255),b.adler=0,k.status=ka)):k.status=ka),0!==k.pending){if(l(b),0===b.avail_out)return k.last_flush=-1,M}else if(0===b.avail_in&&(d<<1)-(4<d?9:0)<=(e<<1)-(4<e?9:0)&&d!==D)return f(b,-5);if(666===k.status&&0!==b.avail_in)return f(b,-5);if(0!==b.avail_in||0!==k.lookahead||d!==H&&666!==k.status){var v;if(2===k.strategy)a:{for(var A;;){if(0===k.lookahead&&(G(k),0===k.lookahead)){if(d===H){v=ha;break a}break}if(k.match_length=0,A=aa._tr_tally(k,0,k.window[k.strstart]),k.lookahead--,k.strstart++,A&&(m(k,!1),0===k.strm.avail_out)){v=ha;break a}}v=(k.insert=0,d===D?(m(k,!0),0===k.strm.avail_out?Oa:Ea):k.last_lit&&(m(k,!1),0===k.strm.avail_out)?ha:na)}else if(3===k.strategy)a:{var w,x;for(A=k.window;;){if(k.lookahead<=S){if(G(k),k.lookahead<=S&&d===H){v=ha;break a}if(0===k.lookahead)break}if(k.match_length=0,k.lookahead>=Y&&0<k.strstart&&(x=k.strstart-1,w=A[x],w===A[++x]&&w===A[++x]&&w===A[++x])){for(e=k.strstart+S;w===A[++x]&&w===A[++x]&&w===A[++x]&&w===A[++x]&&w===A[++x]&&w===A[++x]&&w===A[++x]&&w===A[++x]&&x<e;);k.match_length=S-(e-x);k.match_length>k.lookahead&&(k.match_length=k.lookahead)}if(k.match_length>=Y?(v=aa._tr_tally(k,1,k.match_length-Y),k.lookahead-=k.match_length,k.strstart+=k.match_length,k.match_length=0):(v=aa._tr_tally(k,0,k.window[k.strstart]),k.lookahead--,k.strstart++),v&&(m(k,!1),0===k.strm.avail_out)){v=ha;break a}}v=(k.insert=0,d===D?(m(k,!0),0===k.strm.avail_out?Oa:Ea):k.last_lit&&(m(k,!1),0===k.strm.avail_out)?ha:na)}else v=C[k.level].func(k,d);if(v!==Oa&&v!==Ea||(k.status=666),v===ha||v===Oa)return 0===b.avail_out&&(k.last_flush=-1),M;if(v===na&&(1===d?aa._tr_align(k):5!==d&&(aa._tr_stored_block(k,0,0,!1),3===d&&(h(k.head),0===k.lookahead&&(k.strstart=0,k.block_start=0,k.insert=0))),l(b),0===b.avail_out))return k.last_flush=-1,M}return d!==D?M:0>=k.wrap?1:(2===k.wrap?(r(k,255&b.adler),r(k,b.adler>>8&255),r(k,b.adler>>16&255),r(k,b.adler>>24&255),r(k,255&b.total_in),r(k,b.total_in>>8&255),r(k,b.total_in>>16&255),r(k,b.total_in>>24&255)):(q(k,b.adler>>>16),q(k,65535&b.adler)),l(b),0<k.wrap&&(k.wrap=-k.wrap),0!==k.pending?M:1)};e.deflateEnd=function(b){var d;return b&&b.state?(d=b.state.status,d!==ja&&69!==d&&73!==d&&91!==d&&103!==d&&d!==ka&&666!==d?f(b,N):(b.state=null,d===ka?f(b,-3):M)):N};e.deflateSetDictionary=function(b,d){var e,f,k,l,m,p,q;f=d.length;if(!b||!b.state||(e=b.state,l=e.wrap,2===l||1===l&&e.status!==ja||e.lookahead))return N;1===l&&(b.adler=F(b.adler,d,f,0));e.wrap=0;f>=e.w_size&&(0===l&&(h(e.head),e.strstart=0,e.block_start=0,e.insert=0),m=new W.Buf8(e.w_size),W.arraySet(m,d,f-e.w_size,e.w_size,0),d=m,f=e.w_size);m=b.avail_in;p=b.next_in;q=b.input;b.avail_in=f;b.next_in=0;b.input=d;for(G(e);e.lookahead>=Y;){f=e.strstart;k=e.lookahead-(Y-1);do e.ins_h=(e.ins_h<<e.hash_shift^e.window[f+Y-1])&e.hash_mask,e.prev[f&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=f,f++;while(--k);e.strstart=f;e.lookahead=Y-1;G(e)}return e.strstart+=e.lookahead,e.block_start=e.strstart,e.insert=e.lookahead,e.lookahead=0,e.match_length=e.prev_length=Y-1,e.match_available=0,b.next_in=p,b.input=q,b.avail_in=m,e.wrap=l,M};e.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":62,"./adler32":64,"./crc32":66,"./messages":72,"./trees":73}],68:[function(b,d,e){d.exports=function(){this.os=this.xflags=this.time=this.text=0;this.extra=null;this.extra_len=0;this.comment=this.name="";this.hcrc=0;this.done=!1}},{}],69:[function(b,d,e){d.exports=function(b,d){var e,f,h,q,x,G,B,w,v,k,u,p,E,C,W,aa,F,L,A,H,D,M,N,V;e=b.state;f=b.next_in;N=b.input;h=f+(b.avail_in-5);q=b.next_out;V=b.output;x=q-(d-b.avail_out);G=q+(b.avail_out-257);B=e.dmax;w=e.wsize;v=e.whave;k=e.wnext;u=e.window;p=e.hold;E=e.bits;C=e.lencode;W=e.distcode;aa=(1<<e.lenbits)-1;F=(1<<e.distbits)-1;a:do b:for(15>E&&(p+=N[f++]<<E,E+=8,p+=N[f++]<<E,E+=8),L=C[p&aa];;){if(A=L>>>24,p>>>=A,E-=A,A=L>>>16&255,0===A)V[q++]=65535&L;else{if(!(16&A)){if(0===(64&A)){L=C[(65535&L)+(p&(1<<A)-1)];continue b}if(32&A){e.mode=12;break a}b.msg="invalid literal/length code";e.mode=30;break a}H=65535&L;(A&=15)&&(E<A&&(p+=N[f++]<<E,E+=8),H+=p&(1<<A)-1,p>>>=A,E-=A);15>E&&(p+=N[f++]<<E,E+=8,p+=N[f++]<<E,E+=8);L=W[p&F];c:for(;;){if(A=L>>>24,p>>>=A,E-=A,A=L>>>16&255,!(16&A)){if(0===(64&A)){L=W[(65535&L)+(p&(1<<A)-1)];continue c}b.msg="invalid distance code";e.mode=30;break a}if(D=65535&L,A&=15,E<A&&(p+=N[f++]<<E,E+=8,E<A&&(p+=N[f++]<<E,E+=8)),D+=p&(1<<A)-1,D>B){b.msg="invalid distance too far back";e.mode=30;break a}if(p>>>=A,E-=A,A=q-x,D>A){if(A=D-A,A>v&&e.sane){b.msg="invalid distance too far back";e.mode=30;break a}if(L=0,M=u,0===k){if(L+=w-A,A<H){H-=A;do V[q++]=u[L++];while(--A);L=q-D;M=V}}else if(k<A){if(L+=w+k-A,A-=k,A<H){H-=A;do V[q++]=u[L++];while(--A);if(L=0,k<H){A=k;H-=A;do V[q++]=u[L++];while(--A);L=q-D;M=V}}}else if(L+=k-A,A<H){H-=A;do V[q++]=u[L++];while(--A);L=q-D;M=V}for(;2<H;)V[q++]=M[L++],V[q++]=M[L++],V[q++]=M[L++],H-=3;H&&(V[q++]=M[L++],1<H&&(V[q++]=M[L++]))}else{L=q-D;do V[q++]=V[L++],V[q++]=V[L++],V[q++]=V[L++],H-=3;while(2<H);H&&(V[q++]=V[L++],1<H&&(V[q++]=V[L++]))}break}}break}while(f<h&&q<G);H=E>>3;f-=H;E-=H<<3;b.next_in=f;b.next_out=q;b.avail_in=f<h?5+(h-f):5-(f-h);b.avail_out=q<G?257+(G-q):257-(q-G);e.hold=p&(1<<E)-1;e.bits=E}},{}],70:[function(b,d,e){function f(b){return(b>>>24&255)+(b>>>8&65280)+((65280&b)<<8)+((255&b)<<24)}function h(){this.mode=0;this.last=!1;this.wrap=0;this.havedict=!1;this.total=this.check=this.dmax=this.flags=0;this.head=null;this.wnext=this.whave=this.wsize=this.wbits=0;this.window=null;this.extra=this.offset=this.length=this.bits=this.hold=0;this.distcode=this.lencode=null;this.have=this.ndist=this.nlen=this.ncode=this.distbits=this.lenbits=0;this.next=null;this.lens=new w.Buf16(320);this.work=new w.Buf16(288);this.distdyn=this.lendyn=null;this.was=this.back=this.sane=0}function l(b){var d;return b&&b.state?(d=b.state,b.total_in=b.total_out=d.total=0,b.msg="",d.wrap&&(b.adler=1&d.wrap),d.mode=W,d.last=0,d.havedict=0,d.dmax=32768,d.head=null,d.hold=0,d.bits=0,d.lencode=d.lendyn=new w.Buf32(aa),d.distcode=d.distdyn=new w.Buf32(F),d.sane=1,d.back=-1,E):C}function m(b){var d;return b&&b.state?(d=b.state,d.wsize=0,d.whave=0,d.wnext=0,l(b)):C}function r(b,d){var e,f;return b&&b.state?(f=b.state,0>d?(e=0,d=-d):(e=(d>>4)+1,48>d&&(d&=15)),d&&(8>d||15<d)?C:(null!==f.window&&f.wbits!==d&&(f.window=null),f.wrap=e,f.wbits=d,m(b))):C}function q(b,d){var e,f;return b?(f=new h,b.state=f,f.window=null,e=r(b,d),e!==E&&(b.state=null),e):C}function x(b,d,e,f){var h;b=b.state;return null===b.window&&(b.wsize=1<<b.wbits,b.wnext=0,b.whave=0,b.window=new w.Buf8(b.wsize)),f>=b.wsize?(w.arraySet(b.window,d,e-b.wsize,b.wsize,0),b.wnext=0,b.whave=b.wsize):(h=b.wsize-b.wnext,h>f&&(h=f),w.arraySet(b.window,d,e-f,h,b.wnext),f-=h,f?(w.arraySet(b.window,d,e-f,f,0),b.wnext=f,b.whave=b.wsize):(b.wnext+=h,b.wnext===b.wsize&&(b.wnext=0),b.whave<b.wsize&&(b.whave+=h))),0}var G,B,w=b("../utils/common"),v=b("./adler32"),k=b("./crc32"),u=b("./inffast"),p=b("./inftrees"),E=0,C=-2,W=1,aa=852,F=592,L=!0;e.inflateReset=m;e.inflateReset2=r;e.inflateResetKeep=l;e.inflateInit=function(b){return q(b,15)};e.inflateInit2=q;e.inflate=function(b,d){var e,h,l,m,q,r,A,F,H,aa,R,Z,ta,da,Y,S,ga,ja,ka,ha,na,Oa,Ea=0,X=new w.Buf8(4),Hb=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!b||!b.state||!b.output||!b.input&&0!==b.avail_in)return C;e=b.state;12===e.mode&&(e.mode=13);q=b.next_out;l=b.output;A=b.avail_out;m=b.next_in;h=b.input;r=b.avail_in;F=e.hold;H=e.bits;aa=r;R=A;na=E;a:for(;;)switch(e.mode){case W:if(0===e.wrap){e.mode=13;break}for(;16>H;){if(0===r)break a;r--;F+=h[m++]<<H;H+=8}if(2&e.wrap&&35615===F){e.check=0;X[0]=255&F;X[1]=F>>>8&255;e.check=k(e.check,X,2,0);H=F=0;e.mode=2;break}if(e.flags=0,e.head&&(e.head.done=!1),!(1&e.wrap)||(((255&F)<<8)+(F>>8))%31){b.msg="incorrect header check";e.mode=30;break}if(8!==(15&F)){b.msg="unknown compression method";e.mode=30;break}if(F>>>=4,H-=4,ha=(15&F)+8,0===e.wbits)e.wbits=ha;else if(ha>e.wbits){b.msg="invalid window size";e.mode=30;break}e.dmax=1<<ha;b.adler=e.check=1;e.mode=512&F?10:12;H=F=0;break;case 2:for(;16>H;){if(0===r)break a;r--;F+=h[m++]<<H;H+=8}if(e.flags=F,8!==(255&e.flags)){b.msg="unknown compression method";e.mode=30;break}if(57344&e.flags){b.msg="unknown header flags set";e.mode=30;break}e.head&&(e.head.text=F>>8&1);512&e.flags&&(X[0]=255&F,X[1]=F>>>8&255,e.check=k(e.check,X,2,0));H=F=0;e.mode=3;case 3:for(;32>H;){if(0===r)break a;r--;F+=h[m++]<<H;H+=8}e.head&&(e.head.time=F);512&e.flags&&(X[0]=255&F,X[1]=F>>>8&255,X[2]=F>>>16&255,X[3]=F>>>24&255,e.check=k(e.check,X,4,0));H=F=0;e.mode=4;case 4:for(;16>H;){if(0===r)break a;r--;F+=h[m++]<<H;H+=8}e.head&&(e.head.xflags=255&F,e.head.os=F>>8);512&e.flags&&(X[0]=255&F,X[1]=F>>>8&255,e.check=k(e.check,X,2,0));H=F=0;e.mode=5;case 5:if(1024&e.flags){for(;16>H;){if(0===r)break a;r--;F+=h[m++]<<H;H+=8}e.length=F;e.head&&(e.head.extra_len=F);512&e.flags&&(X[0]=255&F,X[1]=F>>>8&255,e.check=k(e.check,X,2,0));H=F=0}else e.head&&(e.head.extra=null);e.mode=6;case 6:if(1024&e.flags&&(Z=e.length,Z>r&&(Z=r),Z&&(e.head&&(ha=e.head.extra_len-e.length,e.head.extra||(e.head.extra=Array(e.head.extra_len)),w.arraySet(e.head.extra,h,m,Z,ha)),512&e.flags&&(e.check=k(e.check,h,Z,m)),r-=Z,m+=Z,e.length-=Z),e.length))break a;e.length=0;e.mode=7;case 7:if(2048&e.flags){if(0===r)break a;Z=0;do ha=h[m+Z++],e.head&&ha&&65536>e.length&&(e.head.name+=String.fromCharCode(ha));while(ha&&Z<r);if(512&e.flags&&(e.check=k(e.check,h,Z,m)),r-=Z,m+=Z,ha)break a}else e.head&&(e.head.name=null);e.length=0;e.mode=8;case 8:if(4096&e.flags){if(0===r)break a;Z=0;do ha=h[m+Z++],e.head&&ha&&65536>e.length&&(e.head.comment+=String.fromCharCode(ha));while(ha&&Z<r);if(512&e.flags&&(e.check=k(e.check,h,Z,m)),r-=Z,m+=Z,ha)break a}else e.head&&(e.head.comment=null);e.mode=9;case 9:if(512&e.flags){for(;16>H;){if(0===r)break a;r--;F+=h[m++]<<H;H+=8}if(F!==(65535&e.check)){b.msg="header crc mismatch";e.mode=30;break}H=F=0}e.head&&(e.head.hcrc=e.flags>>9&1,e.head.done=!0);b.adler=e.check=0;e.mode=12;break;case 10:for(;32>H;){if(0===r)break a;r--;F+=h[m++]<<H;H+=8}b.adler=e.check=f(F);H=F=0;e.mode=11;case 11:if(0===e.havedict)return b.next_out=q,b.avail_out=A,b.next_in=m,b.avail_in=r,e.hold=F,e.bits=H,2;b.adler=e.check=1;e.mode=12;case 12:if(5===d||6===d)break a;case 13:if(e.last){F>>>=7&H;H-=7&H;e.mode=27;break}for(;3>H;){if(0===r)break a;r--;F+=h[m++]<<H;H+=8}switch(e.last=1&F,F>>>=1,--H,3&F){case 0:e.mode=14;break;case 1:da=e;if(L){G=new w.Buf32(512);B=new w.Buf32(32);for(S=0;144>S;)da.lens[S++]=8;for(;256>S;)da.lens[S++]=9;for(;280>S;)da.lens[S++]=7;for(;288>S;)da.lens[S++]=8;p(1,da.lens,0,288,G,0,da.work,{bits:9});for(S=0;32>S;)da.lens[S++]=5;p(2,da.lens,0,32,B,0,da.work,{bits:5});L=!1}da.lencode=G;da.lenbits=9;da.distcode=B;da.distbits=5;if(e.mode=20,6===d){F>>>=2;H-=2;break a}break;case 2:e.mode=17;break;case 3:b.msg="invalid block type",e.mode=30}F>>>=2;H-=2;break;case 14:F>>>=7&H;for(H-=7&H;32>H;){if(0===r)break a;r--;F+=h[m++]<<H;H+=8}if((65535&F)!==(F>>>16^65535)){b.msg="invalid stored block lengths";e.mode=30;break}if(e.length=65535&F,F=0,H=0,e.mode=15,6===d)break a;case 15:e.mode=16;case 16:if(Z=e.length){if(Z>r&&(Z=r),Z>A&&(Z=A),0===Z)break a;w.arraySet(l,h,m,Z,q);r-=Z;m+=Z;A-=Z;q+=Z;e.length-=Z;break}e.mode=12;break;case 17:for(;14>H;){if(0===r)break a;r--;F+=h[m++]<<H;H+=8}if(e.nlen=(31&F)+257,F>>>=5,H-=5,e.ndist=(31&F)+1,F>>>=5,H-=5,e.ncode=(15&F)+4,F>>>=4,H-=4,286<e.nlen||30<e.ndist){b.msg="too many length or distance symbols";e.mode=30;break}e.have=0;e.mode=18;case 18:for(;e.have<e.ncode;){for(;3>H;){if(0===r)break a;r--;F+=h[m++]<<H;H+=8}e.lens[Hb[e.have++]]=7&F;F>>>=3;H-=3}for(;19>e.have;)e.lens[Hb[e.have++]]=0;if(e.lencode=e.lendyn,e.lenbits=7,Oa={bits:e.lenbits},na=p(0,e.lens,0,19,e.lencode,0,e.work,Oa),e.lenbits=Oa.bits,na){b.msg="invalid code lengths set";e.mode=30;break}e.have=0;e.mode=19;case 19:for(;e.have<e.nlen+e.ndist;){for(;Ea=e.lencode[F&(1<<e.lenbits)-1],Y=Ea>>>24,S=65535&Ea,!(Y<=H);){if(0===r)break a;r--;F+=h[m++]<<H;H+=8}if(16>S)F>>>=Y,H-=Y,e.lens[e.have++]=S;else{if(16===S){for(da=Y+2;H<da;){if(0===r)break a;r--;F+=h[m++]<<H;H+=8}if(F>>>=Y,H-=Y,0===e.have){b.msg="invalid bit length repeat";e.mode=30;break}ha=e.lens[e.have-1];Z=3+(3&F);F>>>=2;H-=2}else if(17===S){for(da=Y+3;H<da;){if(0===r)break a;r--;F+=h[m++]<<H;H+=8}F>>>=Y;H-=Y;ha=0;Z=3+(7&F);F>>>=3;H-=3}else{for(da=Y+7;H<da;){if(0===r)break a;r--;F+=h[m++]<<H;H+=8}F>>>=Y;H-=Y;ha=0;Z=11+(127&F);F>>>=7;H-=7}if(e.have+Z>e.nlen+e.ndist){b.msg="invalid bit length repeat";e.mode=30;break}for(;Z--;)e.lens[e.have++]=ha}}if(30===e.mode)break;if(0===e.lens[256]){b.msg="invalid code -- missing end-of-block";e.mode=30;break}if(e.lenbits=9,Oa={bits:e.lenbits},na=p(1,e.lens,0,e.nlen,e.lencode,0,e.work,Oa),e.lenbits=Oa.bits,na){b.msg="invalid literal/lengths set";e.mode=30;break}if(e.distbits=6,e.distcode=e.distdyn,Oa={bits:e.distbits},na=p(2,e.lens,e.nlen,e.ndist,e.distcode,0,e.work,Oa),e.distbits=Oa.bits,na){b.msg="invalid distances set";e.mode=30;break}if(e.mode=20,6===d)break a;case 20:e.mode=21;case 21:if(6<=r&&258<=A){b.next_out=q;b.avail_out=A;b.next_in=m;b.avail_in=r;e.hold=F;e.bits=H;u(b,R);q=b.next_out;l=b.output;A=b.avail_out;m=b.next_in;h=b.input;r=b.avail_in;F=e.hold;H=e.bits;12===e.mode&&(e.back=-1);break}for(e.back=0;Ea=e.lencode[F&(1<<e.lenbits)-1],Y=Ea>>>24,da=Ea>>>16&255,S=65535&Ea,!(Y<=H);){if(0===r)break a;r--;F+=h[m++]<<H;H+=8}if(da&&0===(240&da)){ga=Y;ja=da;for(ka=S;Ea=e.lencode[ka+((F&(1<<ga+ja)-1)>>ga)],Y=Ea>>>24,da=Ea>>>16&255,S=65535&Ea,!(ga+Y<=H);){if(0===r)break a;r--;F+=h[m++]<<H;H+=8}F>>>=ga;H-=ga;e.back+=ga}if(F>>>=Y,H-=Y,e.back+=Y,e.length=S,0===da){e.mode=26;break}if(32&da){e.back=-1;e.mode=12;break}if(64&da){b.msg="invalid literal/length code";e.mode=30;break}e.extra=15&da;e.mode=22;case 22:if(e.extra){for(da=e.extra;H<da;){if(0===r)break a;r--;F+=h[m++]<<H;H+=8}e.length+=F&(1<<e.extra)-1;F>>>=e.extra;H-=e.extra;e.back+=e.extra}e.was=e.length;e.mode=23;case 23:for(;Ea=e.distcode[F&(1<<e.distbits)-1],Y=Ea>>>24,da=Ea>>>16&255,S=65535&Ea,!(Y<=H);){if(0===r)break a;r--;F+=h[m++]<<H;H+=8}if(0===(240&da)){ga=Y;ja=da;for(ka=S;Ea=e.distcode[ka+((F&(1<<ga+ja)-1)>>ga)],Y=Ea>>>24,da=Ea>>>16&255,S=65535&Ea,!(ga+Y<=H);){if(0===r)break a;r--;F+=h[m++]<<H;H+=8}F>>>=ga;H-=ga;e.back+=ga}if(F>>>=Y,H-=Y,e.back+=Y,64&da){b.msg="invalid distance code";e.mode=30;break}e.offset=S;e.extra=15&da;e.mode=24;case 24:if(e.extra){for(da=e.extra;H<da;){if(0===r)break a;r--;F+=h[m++]<<H;H+=8}e.offset+=F&(1<<e.extra)-1;F>>>=e.extra;H-=e.extra;e.back+=e.extra}if(e.offset>e.dmax){b.msg="invalid distance too far back";e.mode=30;break}e.mode=25;case 25:if(0===A)break a;if(Z=R-A,e.offset>Z){if(Z=e.offset-Z,Z>e.whave&&e.sane){b.msg="invalid distance too far back";e.mode=30;break}Z>e.wnext?(Z-=e.wnext,ta=e.wsize-Z):ta=e.wnext-Z;Z>e.length&&(Z=e.length);da=e.window}else da=l,ta=q-e.offset,Z=e.length;Z>A&&(Z=A);A-=Z;e.length-=Z;do l[q++]=da[ta++];while(--Z);0===e.length&&(e.mode=21);break;case 26:if(0===A)break a;l[q++]=e.length;A--;e.mode=21;break;case 27:if(e.wrap){for(;32>H;){if(0===r)break a;r--;F|=h[m++]<<H;H+=8}if(R-=A,b.total_out+=R,e.total+=R,R&&(b.adler=e.check=e.flags?k(e.check,l,R,q-R):v(e.check,l,R,q-R)),R=A,(e.flags?F:f(F))!==e.check){b.msg="incorrect data check";e.mode=30;break}H=F=0}e.mode=28;case 28:if(e.wrap&&e.flags){for(;32>H;){if(0===r)break a;r--;F+=h[m++]<<H;H+=8}if(F!==(4294967295&e.total)){b.msg="incorrect length check";e.mode=30;break}H=F=0}e.mode=29;case 29:na=1;break a;case 30:na=-3;break a;case 31:return-4;default:return C}return b.next_out=q,b.avail_out=A,b.next_in=m,b.avail_in=r,e.hold=F,e.bits=H,(e.wsize||R!==b.avail_out&&30>e.mode&&(27>e.mode||4!==d))&&x(b,b.output,b.next_out,R-b.avail_out)?(e.mode=31,-4):(aa-=b.avail_in,R-=b.avail_out,b.total_in+=aa,b.total_out+=R,e.total+=R,e.wrap&&R&&(b.adler=e.check=e.flags?k(e.check,l,R,b.next_out-R):v(e.check,l,R,b.next_out-R)),b.data_type=e.bits+(e.last?64:0)+(12===e.mode?128:0)+(20===e.mode||15===e.mode?256:0),(0===aa&&0===R||4===d)&&na===E&&(na=-5),na)};e.inflateEnd=function(b){if(!b||!b.state)return C;var d=b.state;return d.window&&(d.window=null),b.state=null,E};e.inflateGetHeader=function(b,d){var e;return b&&b.state?(e=b.state,0===(2&e.wrap)?C:(e.head=d,d.done=!1,E)):C};e.inflateSetDictionary=function(b,d){var e,f,h=d.length;return b&&b.state?(e=b.state,0!==e.wrap&&11!==e.mode?C:11===e.mode&&(f=1,f=v(f,d,h,0),f!==e.check)?-3:x(b,d,h,h)?(e.mode=31,-4):(e.havedict=1,E)):C};e.inflateInfo="pako inflate (from Nodeca project)"},{"../utils/common":62,"./adler32":64,"./crc32":66,"./inffast":69,"./inftrees":71}],71:[function(b,d,e){var f=b("../utils/common"),h=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],l=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],m=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],r=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];d.exports=function(b,d,e,B,w,v,k,u){var p,q,x,G,aa,F,L,A,H=u.bits,D,M,N,V,Q,J,K=0,ba,ca=null,Na=0,R=new f.Buf16(16);G=new f.Buf16(16);var Z=null,ta=0;for(D=0;15>=D;D++)R[D]=0;for(M=0;M<B;M++)R[d[e+M]]++;V=H;for(N=15;1<=N&&0===R[N];N--);if(V>N&&(V=N),0===N)return w[v++]=20971520,w[v++]=20971520,u.bits=1,0;for(H=1;H<N&&0===R[H];H++);V<H&&(V=H);for(D=p=1;15>=D;D++)if(p<<=1,p-=R[D],0>p)return-1;if(0<p&&(0===b||1!==N))return-1;G[1]=0;for(D=1;15>D;D++)G[D+1]=G[D]+R[D];for(M=0;M<B;M++)0!==d[e+M]&&(k[G[d[e+M]]++]=M);if(0===b?(ca=Z=k,aa=19):1===b?(ca=h,Na-=257,Z=l,ta-=257,aa=256):(ca=m,Z=r,aa=-1),ba=0,M=0,D=H,G=v,Q=V,J=0,x=-1,K=1<<V,B=K-1,1===b&&852<K||2===b&&592<K)return 1;for(;;){F=D-J;k[M]<aa?(L=0,A=k[M]):k[M]>aa?(L=Z[ta+k[M]],A=ca[Na+k[M]]):(L=96,A=0);p=1<<D-J;H=q=1<<Q;do q-=p,w[G+(ba>>J)+q]=F<<24|L<<16|A|0;while(0!==q);for(p=1<<D-1;ba&p;)p>>=1;if(0!==p?(ba&=p-1,ba+=p):ba=0,M++,0===--R[D]){if(D===N)break;D=d[e+k[M]]}if(D>V&&(ba&B)!==x){0===J&&(J=V);G+=H;Q=D-J;for(p=1<<Q;Q+J<N&&(p-=R[Q+J],!(0>=p));)Q++,p<<=1;if(K+=1<<Q,1===b&&852<K||2===b&&592<K)return 1;x=ba&B;w[x]=V<<24|Q<<16|G-v|0}}return 0!==ba&&(w[G+ba]=D-J<<24|4194304),u.bits=V,0}},{"../utils/common":62}],72:[function(b,d,e){d.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],73:[function(b,d,e){function f(b){for(var d=b.length;0<=--d;)b[d]=0}function h(b,d,e,f,h){this.static_tree=b;this.extra_bits=d;this.extra_base=e;this.elems=f;this.max_length=h;this.has_stree=b&&b.length}function l(b,d){this.dyn_tree=b;this.max_code=0;this.stat_desc=d}function m(b,d){b.pending_buf[b.pending++]=255&d;b.pending_buf[b.pending++]=d>>>8&255}function r(b,d,e){b.bi_valid>K-e?(b.bi_buf|=d<<b.bi_valid&65535,m(b,b.bi_buf),b.bi_buf=d>>K-b.bi_valid,b.bi_valid+=e-K):(b.bi_buf|=d<<b.bi_valid&65535,b.bi_valid+=e)}function q(b,d,e){r(b,e[2*d],e[2*d+1])}function x(b,d){var e=0;do e|=1&b,b>>>=1,e<<=1;while(0<--d);return e>>>1}function G(b,d,e){var f,h=Array(J+1),k=0;for(f=1;f<=J;f++)h[f]=k=k+e[f-1]<<1;for(e=0;e<=d;e++)f=b[2*e+1],0!==f&&(b[2*e]=x(h[f]++,f))}function B(b){var d;for(d=0;d<M;d++)b.dyn_ltree[2*d]=0;for(d=0;d<N;d++)b.dyn_dtree[2*d]=0;for(d=0;d<V;d++)b.bl_tree[2*d]=0;b.dyn_ltree[2*ba]=1;b.opt_len=b.static_len=0;b.last_lit=b.matches=0}function w(b){8<b.bi_valid?m(b,b.bi_buf):0<b.bi_valid&&(b.pending_buf[b.pending++]=b.bi_buf);b.bi_buf=0;b.bi_valid=0}function v(b,d,e,f){var h=2*d,k=2*e;return b[h]<b[k]||b[h]===b[k]&&f[d]<=f[e]}function k(b,d,e){for(var f=b.heap[e],h=e<<1;h<=b.heap_len&&(h<b.heap_len&&v(d,b.heap[h+1],b.heap[h],b.depth)&&h++,!v(d,f,b.heap[h],b.depth));)b.heap[e]=b.heap[h],e=h,h<<=1;b.heap[e]=f}function u(b,d,e){var f,h,k,l,m=0;if(0!==b.last_lit){do f=b.pending_buf[b.d_buf+2*m]<<8|b.pending_buf[b.d_buf+2*m+1],h=b.pending_buf[b.l_buf+m],m++,0===f?q(b,h,d):(k=ka[h],q(b,k+D+1,d),l=Z[k],0!==l&&(h-=ha[k],r(b,h,l)),f--,k=256>f?ja[f]:ja[256+(f>>>7)],q(b,k,e),l=ta[k],0!==l&&(f-=na[k],r(b,f,l)));while(m<b.last_lit)}q(b,ba,d)}function p(b,d){var e,f,h,l=d.dyn_tree;f=d.stat_desc.static_tree;var m=d.stat_desc.has_stree,p=d.stat_desc.elems,q=-1;b.heap_len=0;b.heap_max=Q;for(e=0;e<p;e++)0!==l[2*e]?(b.heap[++b.heap_len]=q=e,b.depth[e]=0):l[2*e+1]=0;for(;2>b.heap_len;)h=b.heap[++b.heap_len]=2>q?++q:0,l[2*h]=1,b.depth[h]=0,b.opt_len--,m&&(b.static_len-=f[2*h+1]);d.max_code=q;for(e=b.heap_len>>1;1<=e;e--)k(b,l,e);h=p;do e=b.heap[1],b.heap[1]=b.heap[b.heap_len--],k(b,l,1),f=b.heap[1],b.heap[--b.heap_max]=e,b.heap[--b.heap_max]=f,l[2*h]=l[2*e]+l[2*f],b.depth[h]=(b.depth[e]>=b.depth[f]?b.depth[e]:b.depth[f])+1,l[2*e+1]=l[2*f+1]=h,b.heap[1]=h++,k(b,l,1);while(2<=b.heap_len);b.heap[--b.heap_max]=b.heap[1];var r,u,m=d.dyn_tree,p=d.max_code,v=d.stat_desc.static_tree,w=d.stat_desc.has_stree,x=d.stat_desc.extra_bits,z=d.stat_desc.extra_base,A=d.stat_desc.max_length,B=0;for(f=0;f<=J;f++)b.bl_count[f]=0;m[2*b.heap[b.heap_max]+1]=0;for(e=b.heap_max+1;e<Q;e++)h=b.heap[e],f=m[2*m[2*h+1]+1]+1,f>A&&(f=A,B++),m[2*h+1]=f,h>p||(b.bl_count[f]++,r=0,h>=z&&(r=x[h-z]),u=m[2*h],b.opt_len+=u*(f+r),w&&(b.static_len+=u*(v[2*h+1]+r)));if(0!==B){do{for(f=A-1;0===b.bl_count[f];)f--;b.bl_count[f]--;b.bl_count[f+1]+=2;b.bl_count[A]--;B-=2}while(0<B);for(f=A;0!==f;f--)for(h=b.bl_count[f];0!==h;)r=b.heap[--e],r>p||(m[2*r+1]!==f&&(b.opt_len+=(f-m[2*r+1])*m[2*r],m[2*r+1]=f),h--)}G(l,q,b.bl_count)}function E(b,d,e){var f,h,k=-1,l=d[1],m=0,p=7,q=4;0===l&&(p=138,q=3);d[2*(e+1)+1]=65535;for(f=0;f<=e;f++)h=l,l=d[2*(f+1)+1],++m<p&&h===l||(m<q?b.bl_tree[2*h]+=m:0!==h?(h!==k&&b.bl_tree[2*h]++,b.bl_tree[2*ca]++):10>=m?b.bl_tree[2*Na]++:b.bl_tree[2*R]++,m=0,k=h,0===l?(p=138,q=3):h===l?(p=6,q=3):(p=7,q=4))}function C(b,d,e){var f,h,k=-1,l=d[1],m=0,p=7,u=4;0===l&&(p=138,u=3);for(f=0;f<=e;f++)if(h=l,l=d[2*(f+1)+1],!(++m<p&&h===l)){if(m<u){do q(b,h,b.bl_tree);while(0!==--m)}else 0!==h?(h!==k&&(q(b,h,b.bl_tree),m--),q(b,ca,b.bl_tree),r(b,m-3,2)):10>=m?(q(b,Na,b.bl_tree),r(b,m-3,3)):(q(b,R,b.bl_tree),r(b,m-11,7));m=0;k=h;0===l?(p=138,u=3):h===l?(p=6,u=3):(p=7,u=4)}}function W(b){var d,e=4093624447;for(d=0;31>=d;d++,e>>>=1)if(1&e&&0!==b.dyn_ltree[2*d])return L;if(0!==b.dyn_ltree[18]||0!==b.dyn_ltree[20]||0!==b.dyn_ltree[26])return A;for(d=32;d<D;d++)if(0!==b.dyn_ltree[2*d])return A;return L}function aa(b,d,e,f){r(b,(H<<1)+(f?1:0),3);w(b);m(b,e);m(b,~e);F.arraySet(b.pending_buf,b.window,d,e,b.pending);b.pending+=e}var F=b("../utils/common"),L=0,A=1,H=0,D=256,M=D+1+29,N=30,V=19,Q=2*M+1,J=15,K=16,ba=256,ca=16,Na=17,R=18,Z=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],ta=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],da=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],Y=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],S=Array(2*(M+2));f(S);var ga=Array(2*N);f(ga);var ja=Array(512);f(ja);var ka=Array(256);f(ka);var ha=Array(29);f(ha);var na=Array(N);f(na);var Oa,Ea,X,Hb=!1;e._tr_init=function(b){if(!Hb){var d,e,f,k=Array(J+1);for(f=e=0;28>f;f++)for(ha[f]=e,d=0;d<1<<Z[f];d++)ka[e++]=f;ka[e-1]=f;for(f=e=0;16>f;f++)for(na[f]=e,d=0;d<1<<ta[f];d++)ja[e++]=f;for(e>>=7;f<N;f++)for(na[f]=e<<7,d=0;d<1<<ta[f]-7;d++)ja[256+e++]=f;for(d=0;d<=J;d++)k[d]=0;for(d=0;143>=d;)S[2*d+1]=8,d++,k[8]++;for(;255>=d;)S[2*d+1]=9,d++,k[9]++;for(;279>=d;)S[2*d+1]=7,d++,k[7]++;for(;287>=d;)S[2*d+1]=8,d++,k[8]++;G(S,M+1,k);for(d=0;d<N;d++)ga[2*d+1]=5,ga[2*d]=x(d,5);Oa=new h(S,Z,D+1,M,J);Ea=new h(ga,ta,0,N,J);X=new h([],da,0,V,7);Hb=!0}b.l_desc=new l(b.dyn_ltree,Oa);b.d_desc=new l(b.dyn_dtree,Ea);b.bl_desc=new l(b.bl_tree,X);b.bi_buf=0;b.bi_valid=0;B(b)};e._tr_stored_block=aa;e._tr_flush_block=function(b,d,e,f){var h,k,l=0;if(0<b.level){2===b.strm.data_type&&(b.strm.data_type=W(b));p(b,b.l_desc);p(b,b.d_desc);E(b,b.dyn_ltree,b.l_desc.max_code);E(b,b.dyn_dtree,b.d_desc.max_code);p(b,b.bl_desc);for(l=V-1;3<=l&&0===b.bl_tree[2*Y[l]+1];l--);l=(b.opt_len+=3*(l+1)+14,l);h=b.opt_len+3+7>>>3;k=b.static_len+3+7>>>3;k<=h&&(h=k)}else h=k=e+5;if(e+4<=h&&-1!==d)aa(b,d,e,f);else if(4===b.strategy||k===h)r(b,2+(f?1:0),3),u(b,S,ga);else{r(b,4+(f?1:0),3);d=b.l_desc.max_code+1;e=b.d_desc.max_code+1;l+=1;r(b,d-257,5);r(b,e-1,5);r(b,l-4,4);for(h=0;h<l;h++)r(b,b.bl_tree[2*Y[h]+1],3);C(b,b.dyn_ltree,d-1);C(b,b.dyn_dtree,e-1);u(b,b.dyn_ltree,b.dyn_dtree)}B(b);f&&w(b)};e._tr_tally=function(b,d,e){return b.pending_buf[b.d_buf+2*b.last_lit]=d>>>8&255,b.pending_buf[b.d_buf+2*b.last_lit+1]=255&d,b.pending_buf[b.l_buf+b.last_lit]=255&e,b.last_lit++,0===d?b.dyn_ltree[2*e]++:(b.matches++,d--,b.dyn_ltree[2*(ka[e]+D+1)]++,b.dyn_dtree[2*(256>d?ja[d]:ja[256+(d>>>7)])]++),b.last_lit===b.lit_bufsize-1};e._tr_align=function(b){r(b,2,3);q(b,ba,S);16===b.bi_valid?(m(b,b.bi_buf),b.bi_buf=0,b.bi_valid=0):8<=b.bi_valid&&(b.pending_buf[b.pending++]=255&b.bi_buf,b.bi_buf>>=8,b.bi_valid-=8)}},{"../utils/common":62}],74:[function(b,d,e){d.exports=function(){this.input=null;this.total_in=this.avail_in=this.next_in=0;this.output=null;this.total_out=this.avail_out=this.next_out=0;this.msg="";this.state=null;this.data_type=2;this.adler=0}},{}]},{},[10])(10)});!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.JSZipUtils=a():"undefined"!=typeof global?global.JSZipUtils=a():"undefined"!=typeof self&&(self.JSZipUtils=a())}(function(){return function b(d,e,f){function h(m,q){if(!e[m]){if(!d[m]){var r="function"==typeof require&&require;if(!q&&r)return r(m,!0);if(l)return l(m,!0);throw Error("Cannot find module '"+m+"'");}r=e[m]={exports:{}};d[m][0].call(r.exports,function(b){var e=d[m][1][b];return h(e?e:b)},r,r.exports,b,d,e,f)}return e[m].exports}for(var l="function"==typeof require&&require,m=0;m<f.length;m++)h(f[m]);return h}({1:[function(b,d){function e(){try{return new window.XMLHttpRequest}catch(l){}}var f={_getBinaryFromXHR:function(b){return b.response||b.responseText}},h=window.ActiveXObject?function(){var b;if(!(b=e()))a:{try{b=new window.ActiveXObject("Microsoft.XMLHTTP");break a}catch(m){}b=void 0}return b}:e;f.getBinaryContent=function(b,d){try{var e=h();e.open("GET",b,!0);"responseType"in e&&(e.responseType="arraybuffer");e.overrideMimeType&&e.overrideMimeType("text/plain; charset\x3dx-user-defined");e.onreadystatechange=function(){var h,l;if(4===e.readyState)if(200===e.status||0===e.status){l=h=null;try{h=f._getBinaryFromXHR(e)}catch(G){l=Error(G)}d(l,h)}else d(Error("Ajax error for "+b+" : "+this.status+" "+this.statusText),null)};e.send()}catch(q){d(Error(q),null)}};d.exports=f},{}]},{},[1])(1)});function des(a,b,d,e,f){var h=[16843776,0,65536,16843780,16842756,66564,4,65536,1024,16843776,16843780,1024,16778244,16842756,16777216,4,1028,16778240,16778240,66560,66560,16842752,16842752,16778244,65540,16777220,16777220,65540,0,1028,66564,16777216,65536,16843780,4,16842752,16843776,16777216,16777216,1024,16842756,65536,66560,16777220,1024,4,16778244,66564,16843780,65540,16842752,16778244,16777220,1028,66564,16843776,1028,16778240,16778240,0,65540,66560,0,16842756],l=[-2146402272,-2147450880,32768,1081376,1048576,32,-2146435040,-2147450848,-2147483616,-2146402272,-2146402304,-2147483648,-2147450880,1048576,32,-2146435040,1081344,1048608,-2147450848,0,-2147483648,32768,1081376,-2146435072,1048608,-2147483616,0,1081344,32800,-2146402304,-2146435072,32800,0,1081376,-2146435040,1048576,-2147450848,-2146435072,-2146402304,32768,-2146435072,-2147450880,32,-2146402272,1081376,32,32768,-2147483648,32800,-2146402304,1048576,-2147483616,1048608,-2147450848,-2147483616,1048608,1081344,0,-2147450880,32800,-2147483648,-2146435040,-2146402272,1081344],m=[520,134349312,0,134348808,134218240,0,131592,134218240,131080,134217736,134217736,131072,134349320,131080,134348800,520,134217728,8,134349312,512,131584,134348800,134348808,131592,134218248,131584,131072,134218248,8,134349320,512,134217728,134349312,134217728,131080,520,131072,134349312,134218240,0,512,131080,134349320,134218240,134217736,512,0,134348808,134218248,131072,134217728,134349320,8,131592,131584,134217736,134348800,134218248,520,134348800,131592,8,134348808,131584],r=[8396801,8321,8321,128,8396928,8388737,8388609,8193,0,8396800,8396800,8396929,129,0,8388736,8388609,1,8192,8388608,8396801,128,8388608,8193,8320,8388737,1,8320,8388736,8192,8396928,8396929,129,8388736,8388609,8396800,8396929,129,0,0,8396800,8320,8388736,8388737,1,8396801,8321,8321,128,8396929,129,1,8192,8388609,8193,8396928,8388737,8193,8320,8388608,8396801,128,8388608,8192,8396928],q=[256,34078976,34078720,1107296512,524288,256,1073741824,34078720,1074266368,524288,33554688,1074266368,1107296512,1107820544,524544,1073741824,33554432,1074266112,1074266112,0,1073742080,1107820800,1107820800,33554688,1107820544,1073742080,0,1107296256,34078976,33554432,1107296256,524544,524288,1107296512,256,33554432,1073741824,34078720,1107296512,1074266368,33554688,1073741824,1107820544,34078976,1074266368,256,33554432,1107820544,1107820800,524544,1107296256,1107820800,34078720,0,1074266112,1107296256,524544,33554688,1073742080,524288,0,1074266112,34078976,1073742080],x=[536870928,541065216,16384,541081616,541065216,16,541081616,4194304,536887296,4210704,4194304,536870928,4194320,536887296,536870912,16400,0,4194320,536887312,16384,4210688,536887312,16,541065232,541065232,0,4210704,541081600,16400,4210688,541081600,536870912,536887296,16,541065232,4210688,541081616,4194304,16400,536870928,4194304,536887296,536870912,16400,536870928,541081616,4210688,541065216,4210704,541081600,0,541065232,16,16384,541065216,4210704,16384,4194320,536887312,0,541081600,536870912,4194320,536887312],G=[2097152,69206018,67110914,0,2048,67110914,2099202,69208064,69208066,2097152,0,67108866,2,67108864,69206018,2050,67110912,2099202,2097154,67110912,67108866,69206016,69208064,2097154,69206016,2048,2050,69208066,2099200,2,67108864,2099200,67108864,2099200,2097152,67110914,67110914,69206018,69206018,2,2097154,67108864,67110912,2097152,69208064,2050,2099202,69208064,2050,67108866,69208066,69206016,2099200,0,2,69208066,0,2099202,69206016,2048,67108866,67110912,2048,2097154],B=[268439616,4096,262144,268701760,268435456,268439616,64,268435456,262208,268697600,268701760,266240,268701696,266304,4096,64,268697600,268435520,268439552,4160,266240,262208,268697664,268701696,4160,0,0,268697664,268435520,268439552,266304,262144,266304,262144,268701696,4096,64,268697664,4096,266304,268439552,64,268435520,268697600,268697664,268435456,262144,268439616,0,268701760,262208,268435520,268697600,268439552,268439616,0,268701760,266240,266240,4160,4160,262208,268435456,268701696];a=des_createKeys(a);var w=0,v,k,u,p,E,C,W,aa,F,L,A,H,D,M=b.length,N=0,V=32==a.length?3:9;W=3==V?d?[0,32,2]:[30,-2,-2]:d?[0,32,2,62,30,-2,64,96,2]:[94,62,-2,32,64,2,30,-2,-2];b+="\x00\x00\x00\x00\x00\x00\x00\x00";tempresult=result="";1==e&&(aa=f.charCodeAt(w++)<<24|f.charCodeAt(w++)<<16|f.charCodeAt(w++)<<8|f.charCodeAt(w++),L=f.charCodeAt(w++)<<24|f.charCodeAt(w++)<<16|f.charCodeAt(w++)<<8|f.charCodeAt(w++),w=0);for(;w<M;){d?(E=b.charCodeAt(w++)<<16|b.charCodeAt(w++),C=b.charCodeAt(w++)<<16|b.charCodeAt(w++)):(E=b.charCodeAt(w++)<<24|b.charCodeAt(w++)<<16|b.charCodeAt(w++)<<8|b.charCodeAt(w++),C=b.charCodeAt(w++)<<24|b.charCodeAt(w++)<<16|b.charCodeAt(w++)<<8|b.charCodeAt(w++));1==e&&(d?(E^=aa,C^=L):(F=aa,A=L,aa=E,L=C));k=(E>>>4^C)&252645135;C^=k;E^=k<<4;k=(E>>>16^C)&65535;C^=k;E^=k<<16;k=(C>>>2^E)&858993459;E^=k;C^=k<<2;k=(C>>>8^E)&16711935;E^=k;C^=k<<8;k=(E>>>1^C)&1431655765;C^=k;E^=k<<1;E=E<<1|E>>>31;C=C<<1|C>>>31;for(v=0;v<V;v+=3){H=W[v+1];D=W[v+2];for(f=W[v];f!=H;f+=D)u=C^a[f],p=(C>>>4|C<<28)^a[f+1],k=E,E=C,C=k^(l[u>>>24&63]|r[u>>>16&63]|x[u>>>8&63]|B[u&63]|h[p>>>24&63]|m[p>>>16&63]|q[p>>>8&63]|G[p&63]);k=E;E=C;C=k}E=E>>>1|E<<31;C=C>>>1|C<<31;k=(E>>>1^C)&1431655765;C^=k;E^=k<<1;k=(C>>>8^E)&16711935;E^=k;C^=k<<8;k=(C>>>2^E)&858993459;E^=k;C^=k<<2;k=(E>>>16^C)&65535;C^=k;E^=k<<16;k=(E>>>4^C)&252645135;C^=k;E^=k<<4;1==e&&(d?(aa=E,L=C):(E^=F,C^=A));tempresult=d?tempresult+String.fromCharCode(E>>>24,E>>>16&255,E>>>8&255,E&255,C>>>24,C>>>16&255,C>>>8&255,C&255):tempresult+String.fromCharCode(E>>>16&65535,E&65535,C>>>16&65535,C&65535);d?N+=16:N+=8;512==N&&(result+=tempresult,tempresult="",N=0)}return result+tempresult}function des_createKeys(a){pc2bytes0=[0,4,536870912,536870916,65536,65540,536936448,536936452,512,516,536871424,536871428,66048,66052,536936960,536936964];pc2bytes1=[0,1,1048576,1048577,67108864,67108865,68157440,68157441,256,257,1048832,1048833,67109120,67109121,68157696,68157697];pc2bytes2=[0,8,2048,2056,16777216,16777224,16779264,16779272,0,8,2048,2056,16777216,16777224,16779264,16779272];pc2bytes3=[0,2097152,134217728,136314880,8192,2105344,134225920,136323072,131072,2228224,134348800,136445952,139264,2236416,134356992,136454144];pc2bytes4=[0,262144,16,262160,0,262144,16,262160,4096,266240,4112,266256,4096,266240,4112,266256];pc2bytes5=[0,1024,32,1056,0,1024,32,1056,33554432,33555456,33554464,33555488,33554432,33555456,33554464,33555488];pc2bytes6=[0,268435456,524288,268959744,2,268435458,524290,268959746,0,268435456,524288,268959744,2,268435458,524290,268959746];pc2bytes7=[0,65536,2048,67584,536870912,536936448,536872960,536938496,131072,196608,133120,198656,537001984,537067520,537004032,537069568];pc2bytes8=[0,262144,0,262144,2,262146,2,262146,33554432,33816576,33554432,33816576,33554434,33816578,33554434,33816578];pc2bytes9=[0,268435456,8,268435464,0,268435456,8,268435464,1024,268436480,1032,268436488,1024,268436480,1032,268436488];pc2bytes10=[0,32,0,32,1048576,1048608,1048576,1048608,8192,8224,8192,8224,1056768,1056800,1056768,1056800];pc2bytes11=[0,16777216,512,16777728,2097152,18874368,2097664,18874880,67108864,83886080,67109376,83886592,69206016,85983232,69206528,85983744];pc2bytes12=[0,4096,134217728,134221824,524288,528384,134742016,134746112,16,4112,134217744,134221840,524304,528400,134742032,134746128];pc2bytes13=[0,4,256,260,0,4,256,260,1,5,257,261,1,5,257,261];for(var b=24<=a.length?3:1,d=Array(32*b),e=[0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0],f,h,l=0,m=0,r,q=0;q<b;q++)for(left=a.charCodeAt(l++)<<24|a.charCodeAt(l++)<<16|a.charCodeAt(l++)<<8|a.charCodeAt(l++),right=a.charCodeAt(l++)<<24|a.charCodeAt(l++)<<16|a.charCodeAt(l++)<<8|a.charCodeAt(l++),r=(left>>>4^right)&252645135,right^=r,left^=r<<4,r=(right>>>-16^left)&65535,left^=r,right^=r<<-16,r=(left>>>2^right)&858993459,right^=r,left^=r<<2,r=(right>>>-16^left)&65535,left^=r,right^=r<<-16,r=(left>>>1^right)&1431655765,right^=r,left^=r<<1,r=(right>>>8^left)&16711935,left^=r,right^=r<<8,r=(left>>>1^right)&1431655765,right^=r,left^=r<<1,r=left<<8|right>>>20&240,left=right<<24|right<<8&16711680|right>>>8&65280|right>>>24&240,right=r,i=0;i<e.length;i++)e[i]?(left=left<<2|left>>>26,right=right<<2|right>>>26):(left=left<<1|left>>>27,right=right<<1|right>>>27),left&=-15,right&=-15,f=pc2bytes0[left>>>28]|pc2bytes1[left>>>24&15]|pc2bytes2[left>>>20&15]|pc2bytes3[left>>>16&15]|pc2bytes4[left>>>12&15]|pc2bytes5[left>>>8&15]|pc2bytes6[left>>>4&15],h=pc2bytes7[right>>>28]|pc2bytes8[right>>>24&15]|pc2bytes9[right>>>20&15]|pc2bytes10[right>>>16&15]|pc2bytes11[right>>>12&15]|pc2bytes12[right>>>8&15]|pc2bytes13[right>>>4&15],r=(h>>>16^f)&65535,d[m++]=f^r,d[m++]=h^r<<16;return d}function stringToHex(a){for(var b="",d="0123456789abcdef".split(""),e=0;e<a.length;e++)b+=d[a.charCodeAt(e)>>4]+d[a.charCodeAt(e)&15];return b}function HexTostring(a){for(var b="",d=0;d<a.length;d+=2)var e=parseInt(a.substring(d,d+2),16),b=b+String.fromCharCode(e);return b}function encMe(a,b){return stringToHex(des(b,a,1,0))}function uncMe(a,b){return des(b,HexTostring(a),0,0)}var GLE_cubeCamera,GLE_cubeScene,GLE_cubeRenderer,GLE_cubeControls,GLE_bCubeControls=0;function MapViewInit(){container=document.getElementById(G_15);GLE_cubeCamera=new GLE.Pa(45,1,.001,1E3);GLE_cubeScene=new GLE.Scene;GLE_cubeRenderer=new GLE.Wr({alpha:!0,antialias:!0,precision:"highp",preserveDrawingBuffer:!0});GLE_cubeRenderer.so(1*window.devicePixelRatio);GLE_cubeRenderer.setSize(200*G_0.offsetWidth/G_0.offsetHeight,200);GLE_cubeRenderer.sr(6710886,.8);G_0.appendChild(GLE_cubeRenderer.domElement);GLE_cubeRenderer.domElement.style.zIndex="99999";GLE_cubeRenderer.domElement.style.top="0px";GLE_cubeRenderer.domElement.style.right="0px";GLE_cubeRenderer.domElement.style.position="absolute";var a=new GLE.Geometry,b=new GLE.Mal({color:16711680});GLE_cubeParent=new GLE.Mesh(a,b);GLE_cubeScene.add(GLE_cubeParent);var d=new GLE.Vector3(0,0,0),a=new GLE.Geometry,b=new GLE.Mal({color:16711680}),a=new GLE.Mesh(a,b);a.name="mycube";GLE_cubeParent.add(a);var e=new Float32Array(18),b=2,e=[-15*b,-15*b,15*b,-15*b,-15*b,-15*b,15*b,-15*b,15*b,-15*b,-15*b,-15*b,15*b,-15*b,-15*b,15*b,-15*b,15*b],b=new Float32Array(12),b=[0,1,0,0,1,1,0,0,1,0,1,1],f={texture1:{value:null},color:{value:new GLE.Vector4(1,1,1,1)}},f=new GLE.ShaderMaterial({uniforms:f,vertexShader:"varying vec2 vUv; void main(){ vUv \x3d uv; vec4 mvPosition \x3d projectionMatrix*modelViewMatrix * vec4( position, 1.0 ); gl_Position \x3d mvPosition; }",fragmentShader:"uniform sampler2D texture1; uniform vec4 color; varying vec2 vUv; void main(void){ gl_FragColor \x3d texture2D(texture1, vUv)*color; }",side:GLE.DoubleSide}),h=new GLE.BufferGeometry;h.addAttribute("position",new GLE.Float32BufferAttribute(e,3));h.addAttribute("uv",new GLE.Float32BufferAttribute(b,2));b=new GLE.Mesh(h,f);b.name="camera";b.material.depthTest=!0;b.material.depthWrite=!0;b.material.transparent=!0;b.material.side=GLE.DoubleSide;b.visible=!0;b.frustumCulled=!1;var l=b.material.uniforms,e=new Image;l.texture1.value=new GLE.Texture(e);e.onload=function(){l.texture1.value.needsUpdate=!0};a.add(b);e=new Float32Array(18);b=2;e=[-15*b,-15*b,15*b,-15*b,-15*b,-15*b,15*b,-15*b,15*b,-15*b,-15*b,-15*b,15*b,-15*b,-15*b,15*b,-15*b,15*b];b=new Float32Array(12);b=[0,1,0,0,1,1,0,0,1,0,1,1];f={texture1:{value:null},color:{value:new GLE.Vector4(1,1,1,1)}};f=new GLE.ShaderMaterial({uniforms:f,vertexShader:"varying vec2 vUv; void main(){ vUv \x3d uv; vec4 mvPosition \x3d projectionMatrix*modelViewMatrix * vec4( position, 1.0 ); gl_Position \x3d mvPosition; }",fragmentShader:"uniform sampler2D texture1; uniform vec4 color; varying vec2 vUv; void main(void){ gl_FragColor \x3d texture2D(texture1, vUv)*color; }",side:GLE.DoubleSide});h=new GLE.BufferGeometry;h.addAttribute("position",new GLE.Float32BufferAttribute(e,3));h.addAttribute("uv",new GLE.Float32BufferAttribute(b,2));b=new GLE.Mesh(h,f);b.name="scene";b.material.depthTest=!0;b.material.depthWrite=!0;b.material.transparent=!0;b.material.side=GLE.DoubleSide;b.visible=!0;b.frustumCulled=!1;var m=b.material.uniforms,e=new Image;m.texture1.value=new GLE.Texture(e);e.onload=function(){m.texture1.value.needsUpdate=!0};a.add(b);GLE_cubeCamera.position.y=-100;GLE_cubeCamera.ux();GLE_cubeCamera.lookAt(d);animate3()}function mapUpdate0(){SetViewPort("top");G_3.ge("logo")&&(G_3.ge("logo").visible=!1);G_4.sr(G_29,0);G_4.render(G_3,G_2);new GLE.TextureLoader;GLE_cubeScene.ge("camera").material.uniforms.texture1.value.image.src=GetImage();G_4.sr(G_29,GLE_BACK_ALPHA)}function mapUpdate1(){SetViewPort("top");G_3.ge("logo")&&(G_3.ge("logo").visible=!1);G_4.sr(G_29,0);G_4.render(G_3,G_2);new GLE.TextureLoader;GLE_cubeScene.ge("scene").material.uniforms.texture1.value.image.src=GetImage();G_4.sr(G_29,GLE_BACK_ALPHA)}function animate3(){requestAnimationFrame(animate3);render3()}function render3(){GLE_cubeRenderer.render(GLE_cubeScene,GLE_cubeCamera)}var GLE_cubeParent,GLE_bCubeControls=1,GLE_cubePickingTexture,GLE_cubeIds;function SetCubeWindow(a,b,d){a||(a=0);b||(b=0);d||(d=140);GLE_cubeRenderer.domElement.style.top=a+"px";GLE_cubeRenderer.domElement.style.right=b+"px";GLE_cubeRenderer.setSize(d,d);GLE_cubePickingTexture=new GLE.Wt(d,d);GLE_cubePickingTexture.texture.minFilter=GLE.Nr}function ViewCubeInit(a){container=document.getElementById(G_15);GLE_cubeCamera=new GLE.Pa(45,1,1,1E3);GLE_cubeCamera.near=1.5;GLE_cubeCamera.far=500;GLE_cubeScene=new GLE.Scene;GLE_cubePickingTexture=new GLE.Wt(140,140);GLE_cubePickingTexture.texture.minFilter=GLE.Nr;GLE_cubeRenderer=new GLE.Wr({alpha:!0,antialias:!0,precision:"highp",preserveDrawingBuffer:!0});GLE_cubeRenderer.so(1*window.devicePixelRatio);GLE_cubeRenderer.setSize(140,140);GLE_cubeRenderer.sr(16711680,0);G_0.appendChild(GLE_cubeRenderer.domElement);GLE_cubeRenderer.domElement.style.zIndex="99999";GLE_cubeRenderer.domElement.style.top="0px";GLE_cubeRenderer.domElement.style.right="0px";GLE_cubeRenderer.domElement.style.position="absolute";var b=new GLE.Geometry,d=new GLE.Mal({color:16711680});GLE_cubeParent=new GLE.Mesh(b,d);GLE_cubeScene.add(GLE_cubeParent);GLE_cubeParent.position.z=10;GLE_cubeParent.position.y=10;GLE_cubeControls=new GLE.CubeTs(GLE_cubeCamera,GLE_cubeRenderer.domElement,new GLE.Vector3(0,0,0));GLE_cubeControls.rd=.5;GLE_cubeControls.zd=1;GLE_cubeControls.pd=1;GLE_cubeControls.sg=!1;b=new GLE.Vector3(0,0,0);(new GLE.Mesh(new GLE.CubeGeometry(0,0,0),new GLE.Mal({color:0,wireframe:!0}))).name="mycube";var d=new Float32Array(18),d=[-5,-5,5,-5,-5,-5,5,-5,5,-5,-5,-5,5,-5,-5,5,-5,5],e=new Float32Array(12),e=[0,1,0,0,1,1,0,0,1,0,1,1],f={texture1:{value:null},color:{value:new GLE.Vector4(1,1,1,1)}},f=new GLE.ShaderMaterial({uniforms:f,vertexShader:"varying vec2 vUv; void main(){ vUv \x3d uv; vec4 mvPosition \x3d projectionMatrix*modelViewMatrix * vec4( position, 1.0 ); gl_Position \x3d mvPosition; }",fragmentShader:"uniform sampler2D texture1; uniform vec4 color; varying vec2 vUv; void main(void){ gl_FragColor \x3d texture2D(texture1, vUv)*color; }",side:GLE.DoubleSide}),h=new GLE.BufferGeometry;h.addAttribute("position",new GLE.Float32BufferAttribute(d,3));h.addAttribute("uv",new GLE.Float32BufferAttribute(e,2));d=new GLE.Mesh(h,f);d.name="cube-home";d.material.depthTest=!1;d.renderOrder=100;d.material.depthWrite=!0;d.material.transparent=!0;d.material.side=GLE.DoubleSide;d.position.x=30;d.position.z=30;d.visible=!0;d.frustumCulled=!1;var l=d.material.uniforms,e=new Image;l.texture1.value=new GLE.Texture(e);e.onload=function(){l.texture1.value.needsUpdate=!0};GLE_cubeScene.add(d);e.src="data:image/png;base64,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";GLE_cubeCamera.position.y=-100;GLE_cubeCamera.ux();GLE_cubeCamera.lookAt(b);GLE_cubeRenderer.domElement.addEventListener("mousemove",onCubeMouseMove);GLE_cubeRenderer.domElement.addEventListener("mousedown",onCubeClick0,!0);GLE_cubeRenderer.domElement.addEventListener("mouseup",onCubeClick,!0);animate2();LoadCube(a)}function LoadCube(a){JSZipUtils.getBinaryContent(a,function(b,d){JSZip.loadAsync(d).then(function(b){var d=a.lastIndexOf("/"),e=a.lastIndexOf("."),l=a.substr(d+1,e-d-1);b.file(l+".ver").async("arraybuffer").then(function(a){b.file(l+".mat").async("arraybuffer").then(function(d){b.file(l+".pos").async("arraybuffer").then(function(e){b.file(l+".mati").async("arraybuffer").then(function(f){b.file(l+".color").async("arraybuffer").then(function(h){b.file(l+".id").async("arraybuffer").then(function(m){b.file(l+".normal").async("arraybuffer").then(function(b){var l=new Float32Array(a),k=new Float32Array(d),q=new Uint32Array(e),p=new Uint32Array(f),r=new Uint8Array(h),w=new Uint32Array(m);b=new Uint8Array(b);for(var x=new Uint8Array(r.length/4*3),B=new Uint8Array(r.length),F=new Float32Array(3*q.length),G=0;G<B.length;G++)B[G]=255;GLE_cubeIds=w;for(var A=[],G=0;G<w.length/3;G++){var H=parseInt(G/256),D=G-256*H;A.push(w[3*G]);A.push(0);for(j=w[3*G+1];j<w[3*G+2];j++)x[3*j]=255,x[3*j+1]=H,x[3*j+2]=D}for(G=0;G<q.length;G++)w=q[G],w=[l[3*w+0],l[3*w+1],l[3*w+2]],A=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],H=p[G],0<k.length&&16*H<k.length&&(A[0]=k[16*H+0],A[1]=k[16*H+1],A[2]=k[16*H+2],A[3]=k[16*H+3],A[4]=k[16*H+4],A[5]=k[16*H+5],A[6]=k[16*H+6],A[7]=k[16*H+7],A[8]=k[16*H+8],A[9]=k[16*H+9],A[10]=k[16*H+10],A[11]=k[16*H+11],A[12]=k[16*H+12],A[13]=k[16*H+13],A[14]=k[16*H+14],A[15]=k[16*H+15]),w=transformMat4(w,w,A),F[3*G+0]=w[0]*GLE_Unit,F[3*G+1]=w[1]*GLE_Unit,F[3*G+2]=w[2]*GLE_Unit,isNaN(w[0])&&(F[3*G+0]=0,F[3*G+1]=0,F[3*G+2]=0);(new GLE.Box3).setFromArray(F);new GLE.TextureLoader;l={bid:{value:0},mc:{value:0},color:{value:new GLE.Vector4(1,1,1,1)},bclip:{value:!1},clip1:{value:new GLE.Vector4(0,0,0,0)},clip2:{value:new GLE.Vector4(0,0,0,0)},clip3:{value:new GLE.Vector4(0,0,0,0)},clip4:{value:new GLE.Vector4(0,0,0,0)},clip5:{value:new GLE.Vector4(0,0,0,0)},clip6:{value:new GLE.Vector4(0,0,0,0)}};l=new GLE.ShaderMaterial({uniforms:l,vertexShader:" varying vec3 vid; attribute vec3 id; varying vec4 vcolor; attribute vec4 acolor; varying vec4 fcolor; attribute vec4 pcolor; varying vec3 vPosition; varying vec3 vNormal; attribute vec3 anormal; void main(){ vid \x3d id; vNormal \x3d anormal; vcolor \x3d acolor; fcolor \x3d pcolor; vPosition \x3d position; vec4 mvPosition \x3d projectionMatrix*modelViewMatrix * vec4( position, 1.0 ); gl_Position \x3d mvPosition;}",fragmentShader:" uniform int bid; uniform int mc; uniform vec4 color; uniform bool bclip; uniform vec4 clip1; uniform vec4 clip2; uniform vec4 clip3; uniform vec4 clip4; uniform vec4 clip5; uniform vec4 clip6; varying vec3 vid; varying vec4 vcolor; varying vec4 fcolor; varying vec3 vPosition; varying vec3 vNormal; void main(void){ if(bid \x3d\x3d 0){ if(bclip) { if (length(clip1) \x3e 0.001) { vec4 c1 \x3d clip1; vec3 x \x3d vPosition; float distance1 \x3d (dot(c1.xyz, x) + c1.w) / length(c1.xyz); if (distance1 \x3c 0.0) { discard; } } if (length(clip2) \x3e 0.001) { vec4 c1 \x3d clip2; vec3 x \x3d vPosition; float distance1 \x3d (dot(c1.xyz, x) + c1.w) / length(c1.xyz); if (distance1 \x3c 0.0) { discard; } } if (length(clip3) \x3e 0.001) { vec4 c1 \x3d clip3; vec3 x \x3d vPosition; float distance1 \x3d (dot(c1.xyz, x) + c1.w) / length(c1.xyz); if (distance1 \x3c 0.0) { discard; } } if (length(clip4) \x3e 0.001) { vec4 c1 \x3d clip4; vec3 x \x3d vPosition; float distance1 \x3d (dot(c1.xyz, x) + c1.w) / length(c1.xyz); if (distance1 \x3c 0.0) { discard; } } if (length(clip5) \x3e 0.001) { vec4 c1 \x3d clip5; vec3 x \x3d vPosition; float distance1 \x3d (dot(c1.xyz, x) + c1.w) / length(c1.xyz); if (distance1 \x3c 0.0) { discard; } } if (length(clip6) \x3e 0.001) { vec4 c1 \x3d clip6; vec3 x \x3d vPosition; float distance1 \x3d (dot(c1.xyz, x) + c1.w) / length(c1.xyz); if (distance1 \x3c 0.0) { discard; } } } vec3 lightADirection \x3d normalize(vec3(0,10000,5000)); float lightWeightA \x3d max(dot(vNormal/vec3(255.0,255.0,255.0), lightADirection) * 0.4, 0.0); vec3 lightBDirection \x3d normalize(vec3(0,-10000,5000)); float lightWeightB \x3d max(dot(vNormal/vec3(255.0,255.0,255.0), lightBDirection) * 0.4, 0.0); vec3 lightCDirection \x3d normalize(vec3(10000,0,5000)); float lightWeightC \x3d max(dot(vNormal/vec3(255.0,255.0,255.0), lightCDirection) * 0.3, 0.0); vec3 lightDDirection \x3d normalize(vec3(-10000,0,5000)); float lightWeightD \x3d max(dot(vNormal/vec3(255.0,255.0,255.0), lightDDirection) * 0.3, 0.0); float lightWeighting \x3d lightWeightA + lightWeightB+lightWeightC + lightWeightD + 0.65; if(vcolor.r\x3c254.99 || vcolor.g\x3c254.99 || vcolor.b\x3c254.99){ gl_FragColor \x3d vec4(lightWeighting*vcolor.r / 255.0, lightWeighting*vcolor.g / 255.0, lightWeighting*vcolor.b / 255.0, vcolor.a / 255.0); }else if(vcolor.a\x3c254.99){ gl_FragColor \x3d vec4(fcolor.r / 255.0, fcolor.g / 255.0, fcolor.b / 255.0, fcolor.a / 255.0)*vec4(lightWeighting,lightWeighting,lightWeighting,vcolor.a/255.0); } else { if(vid.b \x3e 32.1 \x26\x26 vid.b \x3c 36.1){ gl_FragColor \x3dvec4(1.0, 0.0,0.0, 0.0) ; }else { gl_FragColor \x3dvec4(lightWeighting*fcolor.r / 255.0, lightWeighting*fcolor.g / 255.0,lightWeighting*fcolor.b / 255.0, fcolor.a / 255.0) * color; }} } else if (bid \x3d\x3d 1) { int r \x3d mc / 65536; int g \x3d (mc - r * 65536) / 256; int b \x3d mc - r * 65536 - g * 256; gl_FragColor \x3d vec4(float(r) / 255.0, float(g) / 255.0, float(b) / 255.0, 1.0); } else { gl_FragColor \x3d vec4(vid.r / 255.0, vid.g / 255.0, vid.b / 255.0, 1.0); } }",side:GLE.DoubleSide,transparent:!0});k=new GLE.BufferGeometry;k.addAttribute("position",(new GLE.Float32BufferAttribute(F,3)).onUpload(disposeArray1));k.addAttribute("anormal",(new GLE.Uint8BufferAttribute(b,3)).onUpload(disposeArray));k.addAttribute("id",(new GLE.Uint8BufferAttribute(x,3)).onUpload(disposeArray));k.addAttribute("acolor",(new GLE.Uint8BufferAttribute(B,4)).onUpload(disposeArray1));k.addAttribute("pcolor",(new GLE.Uint8BufferAttribute(r,4)).onUpload(disposeArray1));new GLE.PointsMaterial({color:16711680});r=new GLE.Mesh(k,l);r.name="viewcube";r.frustumCulled=!0;r.material.depthTest=!0;r.material.depthWrite=!0;r.material.transparent=!0;r.position.y-=9;r.position.z-=5;r.scale.x=.18;r.scale.y=.18;r.scale.z=.18;GLE_cubeParent.add(r)})})})})})})})})})}var currentCubePoint=null;function onCubeClick0(a){currentCubePoint=a;var b=new GLE.Rr,d=new GLE.Vector2;d.x=(a.pageX-GLE_cubeRenderer.domElement.getBoundingClientRect().left)/GLE_cubeRenderer.domElement.offsetWidth*2-1;d.y=2*-((a.pageY-GLE_cubeRenderer.domElement.getBoundingClientRect().top)/GLE_cubeRenderer.domElement.offsetHeight)+1;b.sa(d,GLE_cubeCamera);var d=[],e=GLE_cubeScene.ge("cube-home"),f=GLE_cubeParent.ge("viewcube");d.push(e);d.push(f);b=b.is(d,!1);0<b.length&&"cube-home"!=b[0].object.name&&(b=b[0].object,b.material.uniforms.bid.value=2,GLE_cubeRenderer.render(GLE_cubeScene,GLE_cubeCamera,GLE_cubePickingTexture),d=new Uint8Array(4),GLE_cubeRenderer.rls(GLE_cubePickingTexture,a.pageX-GLE_cubeRenderer.domElement.getBoundingClientRect().left,GLE_cubePickingTexture.height-(a.pageY-GLE_cubeRenderer.domElement.getBoundingClientRect().top),1,1,d),a=GLE_cubeIds[3*(d[1]<<8|d[2])],b.material.uniforms.bid.value=0,GLE_bCubeControls=1==a||8==a||39==a||9==a||40==a||10==a||42==a||11==a||41==a?2:1)}function onCubeClick(a){GLE_bCubeControls=0;if(a.clientX){var b=Math.abs(currentCubePoint.clientX-a.clientX),d=Math.abs(currentCubePoint.clientY-a.clientY);if(!(50<Math.sqrt(b*b+d*d))){b=new GLE.Rr;d=new GLE.Vector2;d.x=(a.pageX-GLE_cubeRenderer.domElement.getBoundingClientRect().left)/GLE_cubeRenderer.domElement.offsetWidth*2-1;d.y=2*-((a.pageY-GLE_cubeRenderer.domElement.getBoundingClientRect().top)/GLE_cubeRenderer.domElement.offsetHeight)+1;b.sa(d,GLE_cubeCamera);var d=[],e=GLE_cubeScene.ge("cube-home"),f=GLE_cubeParent.ge("viewcube");d.push(e);d.push(f);b=b.is(d,!1);0<b.length&&("cube-home"==b[0].object.name?ZoomFitAll(!1,!0):"cube-front"==b[0].object.name?SetViewPort("front"):"cube-back"==b[0].object.name?SetViewPort("back"):"cube-up"==b[0].object.name?SetViewPort("top"):"cube-down"==b[0].object.name?SetViewPort("bottom"):"cube-left"==b[0].object.name?SetViewPort("left"):"cube-right"==b[0].object.name?SetViewPort("right"):"viewcube"==b[0].object.name&&(b=b[0].object,b.material.uniforms.bid.value=2,GLE_cubeRenderer.render(GLE_cubeScene,GLE_cubeCamera,GLE_cubePickingTexture),d=new Uint8Array(4),GLE_cubeRenderer.rls(GLE_cubePickingTexture,a.pageX-GLE_cubeRenderer.domElement.getBoundingClientRect().left,GLE_cubePickingTexture.height-(a.pageY-GLE_cubeRenderer.domElement.getBoundingClientRect().top),1,1,d),a=GLE_cubeIds[3*(d[1]<<8|d[2])],ReSetPivot(),d=G_53.getCenter(),(new TN.Tn(G_35.position)).to({x:d.x,y:d.y,z:d.z},400).delay(0).easing(TN.Easing.Linear.None).start(),8!=a&&(7==a?(new TN.Tn(G_35.rotation)).to({x:Math.PI/4,y:0,z:-Math.PI/2},400).delay(0).easing(TN.Easing.Linear.None).start():28==a?(new TN.Tn(G_35.rotation)).to({x:-Math.PI/4,y:0,z:-Math.PI/2},400).delay(0).easing(TN.Easing.Linear.None).start():13==a?(new TN.Tn(G_35.rotation)).to({x:Math.PI/4,y:0,z:Math.PI/2},400).delay(0).easing(TN.Easing.Linear.None).start():32==a?(new TN.Tn(G_35.rotation)).to({x:-Math.PI/4,y:0,z:Math.PI/2},400).delay(0).easing(TN.Easing.Linear.None).start():17==a?(new TN.Tn(G_35.rotation)).to({x:0,y:0,z:-Math.PI/4},400).delay(0).easing(TN.Easing.Linear.None).start():19==a?(new TN.Tn(G_35.rotation)).to({x:0,y:0,z:.75*-Math.PI},400).delay(0).easing(TN.Easing.Linear.None).start():21==a?(new TN.Tn(G_35.rotation)).to({x:0,y:0,z:.75*Math.PI},400).delay(0).easing(TN.Easing.Linear.None).start():23==a?(new TN.Tn(G_35.rotation)).to({x:0,y:0,z:Math.PI/4},400).delay(0).easing(TN.Easing.Linear.None).start():25==a?(new TN.Tn(G_35.rotation)).to({x:-Math.PI/4,y:0,z:Math.PI/4},400).delay(0).easing(TN.Easing.Linear.None).start():27==a?(new TN.Tn(G_35.rotation)).to({x:-Math.PI/4,y:0,z:-Math.PI/4},400).delay(0).easing(TN.Easing.Linear.None).start():29==a?(new TN.Tn(G_35.rotation)).to({x:-Math.PI/4,y:0,z:.75*-Math.PI},400).delay(0).easing(TN.Easing.Linear.None).start():31==a?(new TN.Tn(G_35.rotation)).to({x:-Math.PI/4,y:0,z:.75*Math.PI},400).delay(0).easing(TN.Easing.Linear.None).start():30==a?(new TN.Tn(G_35.rotation)).to({x:-Math.PI/4,y:0,z:Math.PI},400).delay(0).easing(TN.Easing.Linear.None).start():10==a?(new TN.Tn(G_35.rotation)).to({x:Math.PI/4,y:0,z:0},400).delay(0).easing(TN.Easing.Linear.None).start():15==a?(new TN.Tn(G_35.rotation)).to({x:.25*Math.PI,y:0,z:Math.PI},400).delay(0).easing(TN.Easing.Linear.None).start():26==a?(new TN.Tn(G_35.rotation)).to({x:-Math.PI/4,y:0,z:0},400).delay(0).easing(TN.Easing.Linear.None).start():9==a?(new TN.Tn(G_35.rotation)).to({x:Math.PI/4,y:0,z:-Math.PI/4},400).delay(0).easing(TN.Easing.Linear.None).start():12==a?(new TN.Tn(G_35.rotation)).to({x:Math.PI/4,y:0,z:Math.PI/4},400).delay(0).easing(TN.Easing.Linear.None).start():14==a?(new TN.Tn(G_35.rotation)).to({x:Math.PI/4,y:0,z:.75*Math.PI},400).delay(0).easing(TN.Easing.Linear.None).start():16==a?(new TN.Tn(G_35.rotation)).to({x:Math.PI/4,y:0,z:.75*-Math.PI},400).delay(0).easing(TN.Easing.Linear.None).start():3==a||24==a||34==a||38==a?(new TN.Tn(G_35.rotation)).to({x:0,y:0,z:0},400).delay(0).easing(TN.Easing.Linear.None).start():6==a||20==a||37==a||40==a?(new TN.Tn(G_35.rotation)).to({x:0,y:0,z:Math.PI},400).delay(0).easing(TN.Easing.Linear.None).start():1==a||11==a?(new TN.Tn(G_35.rotation)).to({x:Math.PI/2,y:0,z:0},400).delay(0).easing(TN.Easing.Linear.None).start():2==a||33==a?(new TN.Tn(G_35.rotation)).to({x:-Math.PI/2,y:0,z:0},400).delay(0).easing(TN.Easing.Linear.None).start():4==a||22==a||36==a||39==a?(new TN.Tn(G_35.rotation)).to({x:0,y:0,z:Math.PI/2},400).delay(0).easing(TN.Easing.Linear.None).start():5!=a&&18!=a&&35!=a&&41!=a||(new TN.Tn(G_35.rotation)).to({x:0,y:0,z:-Math.PI/2},400).delay(0).easing(TN.Easing.Linear.None).start()),b.material.uniforms.bid.value=0))}}}function onCubeMouseMove(a){GLE_cubeScene&&GLE_cubeScene.ge("viewcube")&&(GLE_cubeScene.ge("cube-home").visible=!0,GLE_cubeScene.ge("viewcube").material.uniforms.color.value.x=1,GLE_cubeScene.ge("viewcube").material.uniforms.color.value.y=1,GLE_cubeScene.ge("viewcube").material.uniforms.color.value.z=1,GLE_cubeScene.ge("viewcube").material.uniforms.color.value.w=1);var b=new GLE.Rr,d=new GLE.Vector2;d.x=(a.pageX-GLE_cubeRenderer.domElement.getBoundingClientRect().left)/GLE_cubeRenderer.domElement.offsetWidth*2-1;d.y=2*-((a.pageY-GLE_cubeRenderer.domElement.getBoundingClientRect().top)/GLE_cubeRenderer.domElement.offsetHeight)+1;b.sa(d,GLE_cubeCamera);var d=[],e=GLE_cubeScene.ge("cube-home"),f=GLE_cubeParent.ge("viewcube");d.push(e);d.push(f);e.material.uniforms.color.value.x=1;e.material.uniforms.color.value.y=1;e.material.uniforms.color.value.z=1;b=b.is(d,!1);0<b.length?"viewcube"==b[0].object.name?(b=b[0].object,b.material.uniforms.bid.value=2,GLE_cubeRenderer.render(GLE_cubeScene,GLE_cubeCamera,GLE_cubePickingTexture),d=new Uint8Array(4),GLE_cubeRenderer.rls(GLE_cubePickingTexture,a.pageX-GLE_cubeRenderer.domElement.getBoundingClientRect().left,GLE_cubePickingTexture.height-(a.pageY-GLE_cubeRenderer.domElement.getBoundingClientRect().top),1,1,d),a=GLE_cubeIds[3*(d[1]<<8|d[2])],b.material.uniforms.bid.value=0,8==a?SetCubeActorColor(a,250,128,0):38==a||34==a?SetCubeActorColor("38",240,0,0):39==a||36==a?SetCubeActorColor("39",240,0,0):40==a||37==a?SetCubeActorColor("40",240,0,0):41==a||35==a?SetCubeActorColor("41",240,0,0):3==a||24==a?SetCubeActorColor("24",137,207,240):6==a||20==a?SetCubeActorColor("20",137,207,240):1==a||11==a?SetCubeActorColor("11",137,207,240):2==a||33==a?SetCubeActorColor("33",137,207,240):4==a||22==a?SetCubeActorColor("22",137,207,240):5==a||18==a?SetCubeActorColor("18",137,207,240):SetCubeActorColor(a,137,207,240)):(b[0].object.material.uniforms.color.value.x=.698,b[0].object.material.uniforms.color.value.y=.82,b[0].object.material.uniforms.color.value.z=1,ReSetCubeActorColor()):ReSetCubeActorColor()}function animate2(){requestAnimationFrame(animate2);render2()}function render2(){GLE_cubeParent.rotation.x=G_35.rotation.x;GLE_cubeParent.rotation.y=G_35.rotation.y;GLE_cubeParent.rotation.z=G_35.rotation.z;GLE_cubeRenderer.render(GLE_cubeScene,GLE_cubeCamera);0<GLE_bCubeControls&&GLE_cubeControls.update()}function ReSetCubeActorColor(){var a=GLE_cubeParent.ge("viewcube");if(a){for(var b=a.geometry.attributes.acolor.array,d=0;d<GLE_cubeIds.length/3;d++)for(var e=GLE_cubeIds[3*d+1];e<GLE_cubeIds[3*d+2];e++)b[4*e]=255,b[4*e+1]=255,b[4*e+2]=255;a.geometry.attributes.acolor.needsUpdate=!0}}function SetCubeActorColor(a,b,d,e){for(var f=GLE_cubeParent.ge("viewcube"),h=f.geometry.attributes.acolor.array,l=0;l<GLE_cubeIds.length/3;l++)if(a==GLE_cubeIds[3*l])for(var m=GLE_cubeIds[3*l+1];m<GLE_cubeIds[3*l+2];m++)h[4*m]=b,h[4*m+1]=d,h[4*m+2]=e;else for(m=GLE_cubeIds[3*l+1];m<GLE_cubeIds[3*l+2];m++)h[4*m]=255,h[4*m+1]=255,h[4*m+2]=255;f.geometry.attributes.acolor.needsUpdate=!0}GLE.CubeTs=function(a,b,d){function e(a){!1!==w.enabled&&(window.removeEventListener("keydown",e),u!==v.NONE||a.keyCode!==w.keys[v.ROTATE]||w.noRotate||(u=v.ROTATE))}function f(a){}function h(a){GLE_bRect||!1===w.enabled||(a.preventDefault(),a.stopPropagation(),u===v.NONE&&(u=a.button),u!==v.ROTATE||w.noRotate||(C.copy(L(a.pageX,a.pageY)),E.copy(C)),document.addEventListener("mousemove",l,!1),document.addEventListener("mouseup",m,!1),w.dispatchEvent(aa))}function l(a){!1!==w.enabled&&(a.preventDefault(),a.stopPropagation(),u!==v.ROTATE||w.noRotate||(E.copy(C),C.copy(L(a.pageX,a.pageY))))}function m(a){GLE_bRect||!1===w.enabled||(a.preventDefault(),a.stopPropagation(),u=v.NONE,document.removeEventListener("mousemove",l),document.removeEventListener("mouseup",m),w.dispatchEvent(F))}function r(a){}function q(a){if(!1!==w.enabled){switch(a.touches.length){case 1:u=v.TOUCH_ROTATE,C.copy(L(a.touches[0].pageX,a.touches[0].pageY)),E.copy(C)}w.dispatchEvent(aa)}}function x(a){if(!1!==w.enabled)switch(a.preventDefault(),a.stopPropagation(),a.touches.length){case 1:E.copy(C),C.copy(L(a.touches[0].pageX,a.touches[0].pageY))}}function G(a){if(!1!==w.enabled){switch(a.touches.length){case 0:u=v.NONE;break;case 1:u=v.TOUCH_ROTATE,C.copy(L(a.touches[0].pageX,a.touches[0].pageY)),E.copy(C)}w.dispatchEvent(F)}}function B(a){!1!==w.enabled&&a.preventDefault()}var w=this,v={NONE:-1,ROTATE:0,ZOOM:1,PAN:2,TOUCH_ROTATE:3,TOUCH_ZOOM_PAN:4};this.object=a;this.domElement=void 0!==b?b:document;this.enabled=!0;this.screen={left:0,top:0,width:0,height:0};this.rd=1;this.zd=.5;this.pd=.3;this.sg=this.noPan=this.noZoom=this.noRotate=!1;this.dynamicDampingFactor=.2;this.minDistance=0;this.maxDistance=Infinity;this.keys=[65,83,68];this.target=new GLE.Vector3;var k=new GLE.Vector3,u=v.NONE,p=new GLE.Vector3,E=new GLE.Vector2,C=new GLE.Vector2;new GLE.Vector3;new GLE.Vector2;new GLE.Vector2;new GLE.Vector2;new GLE.Vector2;_myPan=new GLE.Vector3;this.target0=this.target.clone();this.position0=this.object.position.clone();this.up0=this.object.up.clone();var W={type:"change"},aa={type:"start"},F={type:"end"};this.handleResize=function(){if(this.domElement===document)this.screen.left=0,this.screen.top=0,this.screen.width=window.innerWidth,this.screen.height=window.innerHeight;else{var a=this.domElement.getBoundingClientRect(),b=this.domElement.ownerDocument.documentElement;this.screen.left=a.left+window.pageXOffset-b.clientLeft;this.screen.top=a.top+window.pageYOffset-b.clientTop;this.screen.width=a.width;this.screen.height=a.height}};this.handleEvent=function(a){if("function"==typeof this[a.type])this[a.type](a)};(function(){var a=new GLE.Vector2;return function(b,d){a.set((b-w.screen.left)/w.screen.width,(d-w.screen.top)/w.screen.height);return a}})();var L=function(){var a=new GLE.Vector2;return function(b,d){a.set((b-.5*w.screen.width-w.screen.left)/(.5*w.screen.width),(w.screen.height+2*(w.screen.top-d))/w.screen.width);return a}}();this.rotateCamera=function(){new GLE.Vector3;new GLE.Quaternion;var a=new GLE.Vector3,b=new GLE.Vector3,d=new GLE.Vector3,e=new GLE.Vector3,f;return function(){e.set(C.x-E.x,C.y-E.y,0);if(f=e.length())G_58=(new Date).getTime(),p.copy(w.object.position).sub(w.target),a.copy(p).normalize(),b.copy(w.object.up).normalize(),d.crossVectors(b,a).normalize(),b.setLength(C.y-E.y),d.setLength(C.x-E.x),G_35.rotation.z+=(C.x-E.x)*this.rd,2>GLE_bCubeControls&&(G_35.rotation.x-=(C.y-E.y)*this.rd,180/Math.PI*G_35.rotation.x<-GLE_AngleLimit&&(G_35.rotation.x=-GLE_AngleLimit*Math.PI/180),180/Math.PI*G_35.rotation.x>GLE_AngleLimit&&(G_35.rotation.x=GLE_AngleLimit*Math.PI/180));E.copy(C)}}();this.update=function(){w.noRotate||w.rotateCamera()};this.reset=function(){u=v.NONE;w.target.copy(w.target0);w.object.position.copy(w.position0);w.object.up.copy(w.up0);p.subVectors(w.object.position,w.target);w.object.lookAt(w.target);w.dispatchEvent(W);k.copy(w.object.position)};this.dispose=function(){this.domElement.removeEventListener("contextmenu",B,!1);this.domElement.removeEventListener("mousedown",h,!1);this.domElement.removeEventListener("wheel",r,!1);this.domElement.removeEventListener("touchstart",q,!1);this.domElement.removeEventListener("touchend",G,!1);this.domElement.removeEventListener("touchmove",x,!1);document.removeEventListener("mousemove",l,!1);document.removeEventListener("mouseup",m,!1);window.removeEventListener("keydown",e,!1);window.removeEventListener("keyup",f,!1)};this.domElement.addEventListener("contextmenu",B,!1);this.domElement.addEventListener("mousedown",h,!1);this.domElement.addEventListener("wheel",r,!1);this.domElement.addEventListener("touchstart",q,!1);this.domElement.addEventListener("touchend",G,!1);this.domElement.addEventListener("touchmove",x,!1);window.addEventListener("keydown",e,!1);window.addEventListener("keyup",f,!1);this.handleResize();this.update()};GLE.CubeTs.prototype=Object.create(GLE.EventDispatcher.prototype);GLE.CubeTs.prototype.constructor=GLE.CubeTs;!function(a,b){"object"==typeof exports&&"undefined"!=typeof module?b(exports):"function"==typeof define&&define.amd?define(["exports"],b):b(a.d3=a.d3||{})}(this,function(a){function b(a,b){return a<b?-1:a>b?1:a>=b?0:NaN}function d(a){var c;return 1===a.length&&(c=a,a=function(a,d){return b(c(a),d)}),{left:function(b,c,d,e){null==d&&(d=0);for(null==e&&(e=b.length);d<e;){var f=d+e>>>1;0>a(b[f],c)?d=f+1:e=f}return d},right:function(b,c,d,e){null==d&&(d=0);for(null==e&&(e=b.length);d<e;){var f=d+e>>>1;0<a(b[f],c)?e=f:d=f+1}return d}}}function e(a,b){return[a,b]}function f(a){return null===a?NaN:+a}function h(a,b){var c,d,e=a.length,g=0,h=-1,P=0,k=0;if(null==b)for(;++h<e;)isNaN(c=f(a[h]))||(k+=(d=c-P)*(c-(P+=d/++g)));else for(;++h<e;)isNaN(c=f(b(a[h],h,a)))||(k+=(d=c-P)*(c-(P+=d/++g)));if(1<g)return k/(g-1)}function l(a,b){var c=h(a,b);return c?Math.sqrt(c):c}function m(a,b){var c,d,e,f=a.length,g=-1;if(null==b)for(;++g<f;){if(null!=(c=a[g])&&c>=c)for(d=e=c;++g<f;)null!=(c=a[g])&&(d>c&&(d=c),e<c&&(e=c))}else for(;++g<f;)if(null!=(c=b(a[g],g,a))&&c>=c)for(d=e=c;++g<f;)null!=(c=b(a[g],g,a))&&(d>c&&(d=c),e<c&&(e=c));return[d,e]}function r(a){return function(){return a}}function q(a){return a}function x(a,b,c){a=+a;b=+b;c=2>(e=arguments.length)?(b=a,a=0,1):3>e?1:+c;for(var d=-1,e=0|Math.max(0,Math.ceil((b-a)/c)),f=Array(e);++d<e;)f[d]=a+d*c;return f}function G(a,b,c){var d,e,f,g=-1;if(c=+c,(a=+a)===(b=+b)&&0<c)return[a];if((d=b<a)&&(e=a,a=b,b=e),0===(f=B(a,b,c))||!isFinite(f))return[];if(0<f)for(a=Math.ceil(a/f),b=Math.floor(b/f),b=Array(e=Math.ceil(b-a+1));++g<e;)b[g]=(a+g)*f;else for(a=Math.floor(a*f),b=Math.ceil(b*f),b=Array(e=Math.ceil(a-b+1));++g<e;)b[g]=(a-g)/f;return d&&b.reverse(),b}function B(a,b,c){b=(b-a)/Math.max(0,c);a=Math.floor(Math.log(b)/Math.LN10);b/=Math.pow(10,a);return 0<=a?(b>=Wj?10:b>=Xj?5:b>=Yj?2:1)*Math.pow(10,a):-Math.pow(10,-a)/(b>=Wj?10:b>=Xj?5:b>=Yj?2:1)}function w(a,b,c){var d=Math.abs(b-a)/Math.max(0,c);c=Math.pow(10,Math.floor(Math.log(d)/Math.LN10));d/=c;return d>=Wj?c*=10:d>=Xj?c*=5:d>=Yj&&(c*=2),b<a?-c:c}function v(a){return Math.ceil(Math.log(a.length)/Math.LN2)+1}function k(a,b,c){if(null==c&&(c=f),d=a.length){if(0>=(b=+b)||2>d)return+c(a[0],0,a);if(1<=b)return+c(a[d-1],d-1,a);var d;b*=d-1;d=Math.floor(b);var e=+c(a[d],d,a);return e+(+c(a[d+1],d+1,a)-e)*(b-d)}}function u(a,b){var c,d,e=a.length,f=-1;if(null==b)for(;++f<e;){if(null!=(c=a[f])&&c>=c)for(d=c;++f<e;)null!=(c=a[f])&&c>d&&(d=c)}else for(;++f<e;)if(null!=(c=b(a[f],f,a))&&c>=c)for(d=c;++f<e;)null!=(c=b(a[f],f,a))&&c>d&&(d=c);return d}function p(a){var b,c,d,e=a.length;b=-1;for(var f=0;++b<e;)f+=a[b].length;for(c=Array(f);0<=--e;)for(b=(d=a[e]).length;0<=--b;)c[--f]=d[b];return c}function E(a,b){var c,d,e=a.length,f=-1;if(null==b)for(;++f<e;){if(null!=(c=a[f])&&c>=c)for(d=c;++f<e;)null!=(c=a[f])&&d>c&&(d=c)}else for(;++f<e;)if(null!=(c=b(a[f],f,a))&&c>=c)for(d=c;++f<e;)null!=(c=b(a[f],f,a))&&d>c&&(d=c);return d}function C(a){if(!(e=a.length))return[];for(var b=-1,c=E(a,W),d=Array(c);++b<c;)for(var e,f=-1,g=d[b]=Array(e);++f<e;)g[f]=a[f][b];return d}function W(a){return a.length}function aa(a){return a}function F(a){return"translate("+(a+.5)+",0)"}function L(a){return"translate(0,"+(a+.5)+")"}function A(){return!this.__axis}function H(a,b){function c(c){var n=null==e?b.ticks?b.ticks.apply(b,d):b.domain():e,ia=null==f?b.tickFormat?b.tickFormat.apply(b,d):aa:f,p=Math.max(g,0)+k,oa=b.range(),q=+oa[0]+.5,oa=+oa[oa.length-1]+.5,r=(b.bandwidth?function(a){var b=Math.max(0,a.bandwidth()-1)/2;return a.round()&&(b=Math.round(b)),function(c){return+a(c)+b}}:function(a){return function(b){return+a(b)}})(b.copy()),Fa=c.selection?c.selection():c,bb=Fa.selectAll(".domain").data([null]),n=Fa.selectAll(".tick").data(n,b).order(),t=n.exit(),u=n.enter().append("g").attr("class","tick"),Ja=n.select("line"),La=n.select("text"),bb=bb.merge(bb.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),n=n.merge(u),Ja=Ja.merge(u.append("line").attr("stroke","currentColor").attr(l+"2",P*g)),La=La.merge(u.append("text").attr("fill","currentColor").attr(l,P*p).attr("dy",1===a?"0em":3===a?"0.71em":"0.32em"));c!==Fa&&(bb=bb.transition(c),n=n.transition(c),Ja=Ja.transition(c),La=La.transition(c),t=t.transition(c).attr("opacity",1E-6).attr("transform",function(a){return isFinite(a=r(a))?m(a):this.getAttribute("transform")}),u.attr("opacity",1E-6).attr("transform",function(a){var b=this.parentNode.__axis;return m(b&&isFinite(b=b(a))?b:r(a))}));t.remove();bb.attr("d",4===a||2==a?h?"M"+P*h+","+q+"H0.5V"+oa+"H"+P*h:"M0.5,"+q+"V"+oa:h?"M"+q+","+P*h+"V0.5H"+oa+"V"+P*h:"M"+q+",0.5H"+oa);n.attr("opacity",1).attr("transform",function(a){return m(r(a))});Ja.attr(l+"2",P*g);La.attr(l,P*p).text(ia);Fa.filter(A).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",2===a?"start":4===a?"end":"middle");Fa.each(function(){this.__axis=r})}var d=[],e=null,f=null,g=6,h=6,k=3,P=1===a||4===a?-1:1,l=4===a||2===a?"x":"y",m=1===a||3===a?F:L;return c.scale=function(a){return arguments.length?(b=a,c):b},c.ticks=function(){return d=Zj.call(arguments),c},c.tickArguments=function(a){return arguments.length?(d=null==a?[]:Zj.call(a),c):d.slice()},c.tickValues=function(a){return arguments.length?(e=null==a?null:Zj.call(a),c):e&&e.slice()},c.tickFormat=function(a){return arguments.length?(f=a,c):f},c.tickSize=function(a){return arguments.length?(g=h=+a,c):g},c.tickSizeInner=function(a){return arguments.length?(g=+a,c):g},c.tickSizeOuter=function(a){return arguments.length?(h=+a,c):h},c.tickPadding=function(a){return arguments.length?(k=+a,c):k},c}function D(){for(var a,b=0,c=arguments.length,d={};b<c;++b){if(!(a=arguments[b]+"")||a in d)throw Error("illegal type: "+a);d[a]=[]}return new M(d)}function M(a){this._=a}function N(a,b){for(var c,d=0,e=a.length;d<e;++d)if((c=a[d]).name===b)return c.value}function V(a,b,c){for(var d=0,e=a.length;d<e;++d)if(a[d].name===b){a[d]=Ap;a=a.slice(0,d).concat(a.slice(d+1));break}return null!=c&&a.push({name:b,value:c}),a}function Q(a){var b=a+="",c=b.indexOf(":");return 0<=c&&"xmlns"!==(b=a.slice(0,c))&&(a=a.slice(c+1)),ak.hasOwnProperty(b)?{space:ak[b],local:a}:a}function J(a){a=Q(a);return(a.local?function(a){return function(){return this.ownerDocument.createElementNS(a.space,a.local)}}:function(a){return function(){var b=this.ownerDocument,c=this.namespaceURI;return"http://www.w3.org/1999/xhtml"===c&&"http://www.w3.org/1999/xhtml"===b.documentElement.namespaceURI?b.createElement(a):b.createElementNS(c,a)}})(a)}function K(){}function ba(a){return null==a?K:function(){return this.querySelector(a)}}function ca(){return[]}function Na(a){return null==a?ca:function(){return this.querySelectorAll(a)}}function R(a){return Array(a.length)}function Z(a,b){this.ownerDocument=a.ownerDocument;this.namespaceURI=a.namespaceURI;this._next=null;this._parent=a;this.__data__=b}function ta(a,b,c,d,e,f){for(var g,h=0,k=b.length,l=f.length;h<l;++h)(g=b[h])?(g.__data__=f[h],d[h]=g):c[h]=new Z(a,f[h]);for(;h<k;++h)(g=b[h])&&(e[h]=g)}function da(a,b,c,d,e,f,g){var h,k,l,P={},m=b.length,n=f.length,ia=Array(m);for(h=0;h<m;++h)(k=b[h])&&(ia[h]=l="$"+g.call(k,k.__data__,h,b),l in P?e[h]=k:P[l]=k);for(h=0;h<n;++h)(k=P[l="$"+g.call(a,f[h],h,f)])?(d[h]=k,k.__data__=f[h],P[l]=null):c[h]=new Z(a,f[h]);for(h=0;h<m;++h)(k=b[h])&&P[ia[h]]===k&&(e[h]=k)}function Y(a,b){return a<b?-1:a>b?1:a>=b?0:NaN}function S(a){return a.ownerDocument&&a.ownerDocument.defaultView||a.document&&a||a.defaultView}function ga(a,b){return a.style.getPropertyValue(b)||S(a).getComputedStyle(a,null).getPropertyValue(b)}function ja(a){return a.classList||new ka(a)}function ka(a){this._node=a;this._names=(a.getAttribute("class")||"").trim().split(/^|\s+/)}function ha(a,b){for(var c=ja(a),d=-1,e=b.length;++d<e;)c.add(b[d])}function na(a,b){for(var c=ja(a),d=-1,e=b.length;++d<e;)c.remove(b[d])}function Oa(){this.textContent=""}function Ea(){this.innerHTML=""}function X(){this.nextSibling&&this.parentNode.appendChild(this)}function Hb(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function ua(){return null}function z(){var a=this.parentNode;a&&a.removeChild(this)}function la(){return this.parentNode.insertBefore(this.cloneNode(!1),this.nextSibling)}function fa(){return this.parentNode.insertBefore(this.cloneNode(!0),this.nextSibling)}function T(a,b,c){return a=Ie(a,b,c),function(b){var c=b.relatedTarget;c&&(c===this||8&c.compareDocumentPosition(this))||a.call(this,b)}}function Ie(b,c,d){return function(e){var f=a.event;a.event=e;try{b.call(this,this.__data__,c,d)}finally{a.event=f}}}function nh(a){return function(){var b=this.__on;if(b){for(var c,d=0,e=-1,f=b.length;d<f;++d)c=b[d],a.type&&c.type!==a.type||c.name!==a.name?b[++e]=c:this.removeEventListener(c.type,c.listener,c.capture);++e?b.length=e:delete this.__on}}}function Ua(a,b,c){var d=El.hasOwnProperty(a.type)?T:Ie;return function(e,f,g){var h;e=this.__on;f=d(b,f,g);if(e){g=0;for(var k=e.length;g<k;++g)if((h=e[g]).type===a.type&&h.name===a.name)return this.removeEventListener(h.type,h.listener,h.capture),this.addEventListener(h.type,h.listener=f,h.capture=c),void(h.value=b)}this.addEventListener(a.type,f,c);h={type:a.type,name:a.name,value:b,listener:f,capture:c};e?e.push(h):this.__on=[h]}}function kb(b,c,d,e){var f=a.event;b.sourceEvent=a.event;a.event=b;try{return c.apply(d,e)}finally{a.event=f}}function za(a,b,c){var d=S(a),e=d.CustomEvent;"function"==typeof e?e=new e(b,c):(e=d.document.createEvent("Event"),c?(e.initEvent(b,c.bubbles,c.cancelable),e.detail=c.detail):e.initEvent(b,!1,!1));a.dispatchEvent(e)}function wa(a,b){this._groups=a;this._parents=b}function Ma(){return new wa([[document.documentElement]],bk)}function Va(a){return"string"==typeof a?new wa([[document.querySelector(a)]],[document.documentElement]):new wa([[a]],bk)}function Je(){return new ud}function ud(){this._="@"+(++Bp).toString(36)}function Nc(){for(var b,c=a.event;b=c.sourceEvent;)c=b;return c}function hb(a,b){var c=a.ownerSVGElement||a;if(c.createSVGPoint)return c=c.createSVGPoint(),c.x=b.clientX,c.y=b.clientY,[(c=c.matrixTransform(a.getScreenCTM().inverse())).x,c.y];c=a.getBoundingClientRect();return[b.clientX-c.left-a.clientLeft,b.clientY-c.top-a.clientTop]}function tc(a){var b=Nc();return b.changedTouches&&(b=b.changedTouches[0]),hb(a,b)}function vd(a,b,c){3>arguments.length&&(c=b,b=Nc().changedTouches);for(var d,e=0,f=b?b.length:0;e<f;++e)if((d=b[e]).identifier===c)return hb(a,d);return null}function Oc(){a.event.preventDefault();a.event.stopImmediatePropagation()}function db(a){var b=a.document.documentElement;a=Va(a).on("dragstart.drag",Oc,!0);"onselectstart"in b?a.on("selectstart.drag",Oc,!0):(b.__noselect=b.style.MozUserSelect,b.style.MozUserSelect="none")}function bd(a,b){var c=a.document.documentElement,d=Va(a).on("dragstart.drag",null);b&&(d.on("click.drag",Oc,!0),setTimeout(function(){d.on("click.drag",null)},0));"onselectstart"in c?d.on("selectstart.drag",null):(c.style.MozUserSelect=c.__noselect,delete c.__noselect)}function Pc(a){return function(){return a}}function lb(a,b,c,d,e,f,g,h,k,l){this.target=a;this.type=b;this.subject=c;this.identifier=d;this.active=e;this.x=f;this.y=g;this.dx=h;this.dy=k;this._=l}function wf(){return!a.event.button}function Sa(){return this.parentNode}function ng(b){return null==b?{x:a.event.x,y:a.event.y}:b}function Qc(){return"ontouchstart"in this}function cd(a,b,c){a.prototype=b.prototype=c;c.constructor=a}function eb(a,b){var c=Object.create(a.prototype),d;for(d in b)c[d]=b[d];return c}function uc(){}function Vb(a){var b;return a=(a+"").trim().toLowerCase(),(b=Cp.exec(a))?new fb((b=parseInt(b[1],16))>>8&15|b>>4&240,b>>4&15|240&b,(15&b)<<4|15&b,1):(b=Dp.exec(a))?Wb(parseInt(b[1],16)):(b=Ep.exec(a))?new fb(b[1],b[2],b[3],1):(b=Fp.exec(a))?new fb(255*b[1]/100,255*b[2]/100,255*b[3]/100,1):(b=Gp.exec(a))?Xd(b[1],b[2],b[3],b[4]):(b=Hp.exec(a))?Xd(255*b[1]/100,255*b[2]/100,255*b[3]/100,b[4]):(b=Ip.exec(a))?Ke(b[1],b[2]/100,b[3]/100,1):(b=Jp.exec(a))?Ke(b[1],b[2]/100,b[3]/100,b[4]):Fl.hasOwnProperty(a)?Wb(Fl[a]):"transparent"===a?new fb(NaN,NaN,NaN,0):null}function Wb(a){return new fb(a>>16&255,a>>8&255,255&a,1)}function Xd(a,b,c,d){return 0>=d&&(a=b=c=NaN),new fb(a,b,c,d)}function xf(a){return a instanceof uc||(a=Vb(a)),a?new fb((a=a.rgb()).r,a.g,a.b,a.opacity):new fb}function dd(a,b,c,d){return 1===arguments.length?xf(a):new fb(a,b,c,null==d?1:d)}function fb(a,b,c,d){this.r=+a;this.g=+b;this.b=+c;this.opacity=+d}function yf(a){return(16>(a=Math.max(0,Math.min(255,Math.round(a)||0)))?"0":"")+a.toString(16)}function Ke(a,b,c,d){return 0>=d?a=b=c=NaN:0>=c||1<=c?a=b=NaN:0>=b&&(a=NaN),new Ob(a,b,c,d)}function Yd(a,b,c,d){return 1===arguments.length?function(a){if(a instanceof Ob)return new Ob(a.h,a.s,a.l,a.opacity);if(a instanceof uc||(a=Vb(a)),!a)return new Ob;if(a instanceof Ob)return a;var b=(a=a.rgb()).r/255,c=a.g/255,d=a.b/255,e=Math.min(b,c,d),f=Math.max(b,c,d),g=NaN,h=f-e,k=(f+e)/2;return h?(g=b===f?(c-d)/h+6*(c<d):c===f?(d-b)/h+2:(b-c)/h+4,h/=.5>k?f+e:2-f-e,g*=60):h=0<k&&1>k?0:g,new Ob(g,h,k,a.opacity)}(a):new Ob(a,b,c,null==d?1:d)}function Ob(a,b,c,d){this.h=+a;this.s=+b;this.l=+c;this.opacity=+d}function wd(a,b,c){return 255*(60>a?b+(c-b)*a/60:180>a?c:240>a?b+(c-b)*(240-a)/60:b)}function Xb(a){if(a instanceof Yb)return new Yb(a.l,a.a,a.b,a.opacity);if(a instanceof sb){if(isNaN(a.h))return new Yb(a.l,0,0,a.opacity);var b=a.h*Gl;return new Yb(a.l,Math.cos(b)*a.c,Math.sin(b)*a.c,a.opacity)}a instanceof fb||(a=xf(a));var c,d=zf(a.r),e=zf(a.g),f=zf(a.b),g=Le((.2225045*d+.7168786*e+.0606169*f)/1);return d===e&&e===f?b=c=g:(b=Le((.4360747*d+.3850649*e+.1430804*f)/.96422),c=Le((.0139322*d+.0971045*e+.7141733*f)/.82521)),new Yb(116*g-16,500*(b-g),200*(g-c),a.opacity)}function Rc(a,b,c,d){return 1===arguments.length?Xb(a):new Yb(a,b,c,null==d?1:d)}function Yb(a,b,c,d){this.l=+a;this.a=+b;this.b=+c;this.opacity=+d}function Le(a){return a>Kp?Math.pow(a,1/3):a/Hl+Il}function xd(a){return a>Rg?a*a*a:Hl*(a-Il)}function ed(a){return 255*(.0031308>=a?12.92*a:1.055*Math.pow(a,1/2.4)-.055)}function zf(a){return.04045>=(a/=255)?a/12.92:Math.pow((a+.055)/1.055,2.4)}function og(a){if(a instanceof sb)return new sb(a.h,a.c,a.l,a.opacity);if(a instanceof Yb||(a=Xb(a)),0===a.a&&0===a.b)return new sb(NaN,0,a.l,a.opacity);var b=Math.atan2(a.b,a.a)*Jl;return new sb(0>b?b+360:b,Math.sqrt(a.a*a.a+a.b*a.b),a.l,a.opacity)}function Me(a,b,c,d){return 1===arguments.length?og(a):new sb(a,b,c,null==d?1:d)}function sb(a,b,c,d){this.h=+a;this.c=+b;this.l=+c;this.opacity=+d}function sa(a,b,c,d){var e;if(1===arguments.length)if(e=a,e instanceof Ba)e=new Ba(e.h,e.s,e.l,e.opacity);else{e instanceof fb||(e=xf(e));var f=e.g/255,g=e.b/255,h=(Kl*g+e.r/255*-1.7884503806-3.5172982438*f)/(Kl+-1.7884503806-3.5172982438),g=g-h,k=(1.97294*(f-h)- -.29227*g)/-.90649,g=(f=Math.sqrt(k*k+g*g)/(1.97294*h*(1-h)))?Math.atan2(k,g)*Jl-120:NaN;e=new Ba(0>g?g+360:g,f,h,e.opacity)}else e=new Ba(a,b,c,null==d?1:d);return e}function Ba(a,b,c,d){this.h=+a;this.s=+b;this.l=+c;this.opacity=+d}function tb(a,b,c,d,e){var f=a*a,g=f*a;return((1-3*a+3*f-g)*b+(4-6*f+3*g)*c+(1+3*a+3*f-3*g)*d+g*e)/6}function Xa(a){var b=a.length-1;return function(c){var d=0>=c?c=0:1<=c?(c=1,b-1):Math.floor(c*b),e=a[d],f=a[d+1];return tb((c-d/b)*b,0<d?a[d-1]:2*e-f,e,f,d<b-1?a[d+2]:2*f-e)}}function xa(a){var b=a.length;return function(c){var d=Math.floor((0>(c%=1)?++c:c)*b);return tb((c-d/b)*b,a[(d+b-1)%b],a[d%b],a[(d+1)%b],a[(d+2)%b])}}function pg(a){return function(){return a}}function Sc(a,b){return function(c){return a+c*b}}function fd(a,b){var c=b-a;return c?Sc(a,180<c||-180>c?c-360*Math.round(c/360):c):pg(isNaN(a)?b:a)}function Zb(a){return 1==(a=+a)?mb:function(b,c){return c-b?function(a,b,c){return a=Math.pow(a,c),b=Math.pow(b,c)-a,c=1/c,function(d){return Math.pow(a+d*b,c)}}(b,c,a):pg(isNaN(b)?c:b)}}function mb(a,b){var c=b-a;return c?Sc(a,c):pg(isNaN(a)?b:a)}function wi(a){return function(b){var c,d,e=b.length,f=Array(e),g=Array(e),h=Array(e);for(c=0;c<e;++c)d=dd(b[c]),f[c]=d.r||0,g[c]=d.g||0,h[c]=d.b||0;return f=a(f),g=a(g),h=a(h),d.opacity=1,function(a){return d.r=f(a),d.g=g(a),d.b=h(a),d+""}}}function Ec(a,b){var c,d=b?b.length:0,e=a?Math.min(d,a.length):0,f=Array(e),g=Array(d);for(c=0;c<e;++c)f[c]=Ib(a[c],b[c]);for(;c<d;++c)g[c]=b[c];return function(a){for(c=0;c<e;++c)g[c]=f[c](a);return g}}function pb(a,b){var c=new Date;return b-=a=+a,function(d){return c.setTime(a+b*d),c}}function Wa(a,b){return b-=a=+a,function(c){return a+b*c}}function xi(a,b){var c,d={},e={};for(c in null!==a&&"object"==typeof a||(a={}),null!==b&&"object"==typeof b||(b={}),b)c in a?d[c]=Ib(a[c],b[c]):e[c]=b[c];return function(a){for(c in d)e[c]=d[c](a);return e}}function Bb(a,b){var c,d,e,f=ck.lastIndex=dk.lastIndex=0,g=-1,h=[],k=[];a+="";for(b+="";(c=ck.exec(a))&&(d=dk.exec(b));)(e=d.index)>f&&(e=b.slice(f,e),h[g]?h[g]+=e:h[++g]=e),(c=c[0])===(d=d[0])?h[g]?h[g]+=d:h[++g]=d:(h[++g]=null,k.push({i:g,x:Wa(c,d)})),f=dk.lastIndex;return f<b.length&&(e=b.slice(f),h[g]?h[g]+=e:h[++g]=e),2>h.length?k[0]?function(a){return function(b){return a(b)+""}}(k[0].x):function(a){return function(){return a}}(b):(b=k.length,function(a){for(var c,d=0;d<b;++d)h[(c=k[d]).i]=c.x(a);return h.join("")})}function Ib(a,b){var c,d=typeof b;return null==b||"boolean"===d?pg(b):("number"===d?Wa:"string"===d?(c=Vb(b))?(b=c,Ih):Bb:b instanceof Vb?Ih:b instanceof Date?pb:Array.isArray(b)?Ec:"function"!=typeof b.valueOf&&"function"!=typeof b.toString||isNaN(b)?xi:Wa)(a,b)}function rh(a,b){return b-=a=+a,function(c){return Math.round(a+b*c)}}function yi(a,b,c,d,e,f){var g,h,k;return(g=Math.sqrt(a*a+b*b))&&(a/=g,b/=g),(k=a*c+b*d)&&(c-=a*k,d-=b*k),(h=Math.sqrt(c*c+d*d))&&(c/=h,d/=h,k/=h),a*d<b*c&&(a=-a,b=-b,k=-k,g=-g),{translateX:e,translateY:f,rotate:Math.atan2(b,a)*Ll,skewX:Math.atan(k)*Ll,scaleX:g,scaleY:h}}function zi(a,b,c,d){function e(a){return a.length?a.pop()+" ":""}return function(f,g){var h=[],k=[];return f=a(f),g=a(g),function(a,d,e,f,g,h){a!==e||d!==f?(g=g.push("translate(",null,b,null,c),h.push({i:g-4,x:Wa(a,e)},{i:g-2,x:Wa(d,f)})):(e||f)&&g.push("translate("+e+b+f+c)}(f.translateX,f.translateY,g.translateX,g.translateY,h,k),function(a,b,c,f){a!==b?(180<a-b?b+=360:180<b-a&&(a+=360),f.push({i:c.push(e(c)+"rotate(",null,d)-2,x:Wa(a,b)})):b&&c.push(e(c)+"rotate("+b+d)}(f.rotate,g.rotate,h,k),function(a,b,c,f){a!==b?f.push({i:c.push(e(c)+"skewX(",null,d)-2,x:Wa(a,b)}):b&&c.push(e(c)+"skewX("+b+d)}(f.skewX,g.skewX,h,k),function(a,b,c,d,f,g){a!==c||b!==d?(f=f.push(e(f)+"scale(",null,",",null,")"),g.push({i:f-4,x:Wa(a,c)},{i:f-2,x:Wa(b,d)})):1===c&&1===d||f.push(e(f)+"scale("+c+","+d+")")}(f.scaleX,f.scaleY,g.scaleX,g.scaleY,h,k),f=g=null,function(a){for(var b,c=-1,d=k.length;++c<d;)h[(b=k[c]).i]=b.x(a);return h.join("")}}}function uh(a){return((a=Math.exp(a))+1/a)/2}function $b(a,b){var c,d,e=a[0],f=a[1],g=a[2],h=b[2],k=b[0]-e,l=b[1]-f,m=k*k+l*l;if(1E-12>m)d=Math.log(h/g)/Jh,c=function(a){return[e+a*k,f+a*l,g*Math.exp(Jh*a*d)]};else{var P=Math.sqrt(m);c=(h*h-g*g+4*m)/(4*g*P);var h=(h*h-g*g-4*m)/(4*h*P),n=Math.log(Math.sqrt(c*c+1)-c);d=(Math.log(Math.sqrt(h*h+1)-h)-n)/Jh;c=function(a){var b;a*=d;var c=uh(n),h=g/(2*P),m=c*(b=Jh*a+n,((b=Math.exp(2*b))-1)/(b+1)),p=n;b=((p=Math.exp(p))-1/p)/2;h*=m-b;return[e+h*k,f+h*l,g*c/uh(Jh*a+n)]}}return c.duration=1E3*d,c}function nb(a){return function(b,c){var d=a((b=Yd(b)).h,(c=Yd(c)).h),e=mb(b.s,c.s),f=mb(b.l,c.l),g=mb(b.opacity,c.opacity);return function(a){return b.h=d(a),b.s=e(a),b.l=f(a),b.opacity=g(a),b+""}}}function Ra(a){return function(b,c){var d=a((b=Me(b)).h,(c=Me(c)).h),e=mb(b.c,c.c),f=mb(b.l,c.l),g=mb(b.opacity,c.opacity);return function(a){return b.h=d(a),b.c=e(a),b.l=f(a),b.opacity=g(a),b+""}}}function Ne(a){return function oa(b){function c(c,d){var e=a((c=sa(c)).h,(d=sa(d)).h),f=mb(c.s,d.s),g=mb(c.l,d.l),h=mb(c.opacity,d.opacity);return function(a){return c.h=e(a),c.s=f(a),c.l=g(Math.pow(a,b)),c.opacity=h(a),c+""}}return b=+b,c.gamma=oa,c}(1)}function Zd(){return cg||(Ml(Sj),cg=Kh.now()+Ri)}function Sj(){cg=0}function Tc(){this._call=this._time=this._next=null}function gd(a,b,c){var d=new Tc;return d.restart(a,b,c),d}function $d(){Zd();++Sg;for(var a,b=Si;b;)0<=(a=cg-b._time)&&b._call.call(null,a),b=b._next;--Sg}function Bf(){cg=(Ti=Kh.now())+Ri;Sg=Lh=0;try{$d()}finally{Sg=0;for(var a,b,c=Si,d=1/0;c;)c._call?(d>c._time&&(d=c._time),a=c,c=c._next):(b=c._next,c._next=null,c=a?a._next=b:Si=b);Mh=a;be(d);cg=0}}function ae(){var a=Kh.now(),b=a-Ti;1E3<b&&(Ri-=b,Ti=a)}function be(a){Sg||(Lh&&(Lh=clearTimeout(Lh)),24<a-cg?(a<1/0&&(Lh=setTimeout(Bf,a-Kh.now()-Ri)),Nh&&(Nh=clearInterval(Nh))):(Nh||(Ti=Kh.now(),Nh=setInterval(ae,1E3)),Sg=1,Ml(Bf)))}function Uc(a,b,c){var d=new Tc;return b=null==b?0:+b,d.restart(function(c){d.stop();a(c+b)},b,c),d}function yd(a,b,c,d,e,f){var g=a.__transition;if(g){if(c in g)return}else a.__transition={};!function(a,b,c){function d(k){var l,m,P,n;if(1!==c.state)return f();for(l in h)if((n=h[l]).name===c.name){if(3===n.state)return Uc(d);4===n.state?(n.state=6,n.timer.stop(),n.on.call("interrupt",a,a.__data__,n.index,n.group),delete h[l]):+l<b&&(n.state=6,n.timer.stop(),delete h[l])}if(Uc(function(){3===c.state&&(c.state=4,c.timer.restart(e,c.delay,c.time),e(k))}),c.state=2,c.on.call("start",a,a.__data__,c.index,c.group),2===c.state){c.state=3;g=Array(P=c.tn.length);l=0;for(m=-1;l<P;++l)(n=c.tn[l].value.call(a,a.__data__,c.index,c.group))&&(g[++m]=n);g.length=m+1}}function e(b){b=b<c.duration?c.ease.call(null,b/c.duration):(c.timer.restart(f),c.state=5,1);for(var d=-1,e=g.length;++d<e;)g[d].call(null,b);5===c.state&&(c.on.call("end",a,a.__data__,c.index,c.group),f())}function f(){for(var d in c.state=6,c.timer.stop(),delete h[b],h)return;delete a.__transition}var g,h=a.__transition;h[b]=c;c.timer=gd(function(a){c.state=1;c.timer.restart(d,c.delay,c.time);c.delay<=a&&d(a-c.delay)},0,c.time)}(a,c,{name:b,index:d,group:e,on:Lp,tn:Mp,time:f.time,delay:f.delay,duration:f.duration,ease:f.ease,timer:null,state:0})}function ce(a,b){var c=ac(a,b);if(0<c.state)throw Error("too late; already scheduled");return c}function Fc(a,b){var c=ac(a,b);if(2<c.state)throw Error("too late; already started");return c}function ac(a,b){var c=a.__transition;if(!c||!(c=c[b]))throw Error("transition not found");return c}function Vc(a,b){var c,d,e,f=a.__transition,g=!0;if(f){for(e in b=null==b?null:b+"",f)(c=f[e]).name===b?(d=2<c.state&&5>c.state,c.state=6,c.timer.stop(),d&&c.on.call("interrupt",a,a.__data__,c.index,c.group),delete f[e]):g=!1;g&&delete a.__transition}}function Da(a,b,c){var d=a._id;return a.each(function(){var a=Fc(this,d);(a.value||(a.value={}))[b]=c.apply(this,arguments)}),function(a){return ac(a,d).value[b]}}function Pb(a,b){var c;return("number"==typeof b?Wa:b instanceof Vb?Ih:(c=Vb(b))?(b=c,Ih):Bb)(a,b)}function Ha(a,b,c,d){this._groups=a;this._parents=b;this._name=c;this._id=d}function Cf(a){return Ma().transition(a)}function vc(a){return(1>=(a*=2)?a*a:--a*(2-a)+1)/2}function zd(a){return(1>=(a*=2)?a*a*a:(a-=2)*a*a+2)/2}function qg(a){return(1-Math.cos(Nl*a))/2}function de(a){return(1>=(a*=2)?Math.pow(2,10*a-10):2-Math.pow(2,10-10*a))/2}function Pe(a){return(1>=(a*=2)?1-Math.sqrt(1-a*a):Math.sqrt(1-(a-=2)*a)+1)/2}function hd(a){return(a=+a)<ek?Ui*a*a:a<Np?Ui*(a-=Op)*a+.75:a<Pp?Ui*(a-=Qp)*a+.9375:Ui*(a-=Rp)*a+.984375}function ee(a){return function(){return a}}function Df(a,b,c){this.target=a;this.type=b;this.selection=c}function id(){a.event.preventDefault();a.event.stopImmediatePropagation()}function jd(a){return{type:a}}function bc(){return!a.event.button}function Ef(){var a=this.ownerSVGElement||this;return[[0,0],[a.width.baseVal.value,a.height.baseVal.value]]}function Ad(a){for(;!a.__brush;)if(!(a=a.parentNode))return;return a.__brush}function fe(a){return a[0][0]===a[1][0]||a[0][1]===a[1][1]}function kd(b){function c(a){var c=a.property("__brush",h).selectAll(".overlay").data([jd("overlay")]);c.enter().append("rect").attr("class","overlay").attr("pointer-events","all").attr("cursor",Ae.overlay).merge(c).each(function(){var a=Ad(this).extent;Va(this).attr("x",a[0][0]).attr("y",a[0][1]).attr("width",a[1][0]-a[0][0]).attr("height",a[1][1]-a[0][1])});a.selectAll(".selection").data([jd("selection")]).enter().append("rect").attr("class","selection").attr("cursor",Ae.selection).attr("fill","#777").attr("fill-opacity",.3).attr("stroke","#fff").attr("shape-rendering","crispEdges");c=a.selectAll(".handle").data(b.handles,function(a){return a.type});c.exit().remove();c.enter().append("rect").attr("class",function(a){return"handle handle--"+a.type}).attr("cursor",function(a){return Ae[a.type]});a.each(d).attr("fill","none").attr("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush touchstart.brush",g)}function d(){var a=Va(this),b=Ad(this).selection;b?(a.selectAll(".selection").style("display",null).attr("x",b[0][0]).attr("y",b[0][1]).attr("width",b[1][0]-b[0][0]).attr("height",b[1][1]-b[0][1]),a.selectAll(".handle").style("display",null).attr("x",function(a){return"e"===a.type[a.type.length-1]?b[1][0]-P/2:b[0][0]-P/2}).attr("y",function(a){return"s"===a.type[0]?b[1][1]-P/2:b[0][1]-P/2}).attr("width",function(a){return"n"===a.type||"s"===a.type?b[1][0]-b[0][0]+P:P}).attr("height",function(a){return"e"===a.type||"w"===a.type?b[1][1]-b[0][1]+P:P})):a.selectAll(".selection,.handle").style("display","none").attr("x",null).attr("y",null).attr("width",null).attr("height",null)}function e(a,b){return a.__brush.emitter||new f(a,b)}function f(a,b){this.that=a;this.args=b;this.state=a.__brush;this.active=0}function g(){function c(){var a=tc(La);!A||t||u||(Math.abs(a[0]-mf[0])>Math.abs(a[1]-mf[1])?u=!0:t=!0);mf=a;Ia=!0;id();f()}function f(){var a;switch(oa=mf[0]-B[0],Fa=mf[1]-B[1],bb){case fk:case Ol:Pa&&(oa=Math.max(y-h,Math.min(z-p,oa)),l=h+oa,ia=p+oa);Ja&&(Fa=Math.max(lf-n,Math.min(ye-q,Fa)),P=n+Fa,r=q+Fa);break;case Tg:0>Pa?(oa=Math.max(y-h,Math.min(z-h,oa)),l=h+oa,ia=p):0<Pa&&(oa=Math.max(y-p,Math.min(z-p,oa)),l=h,ia=p+oa);0>Ja?(Fa=Math.max(lf-n,Math.min(ye-n,Fa)),P=n+Fa,r=q):0<Ja&&(Fa=Math.max(lf-q,Math.min(ye-q,Fa)),P=n,r=q+Fa);break;case Ug:Pa&&(l=Math.max(y,Math.min(z,h-oa*Pa)),ia=Math.max(y,Math.min(z,p+oa*Pa))),Ja&&(P=Math.max(lf,Math.min(ye,n-Fa*Ja)),r=Math.max(lf,Math.min(ye,q+Fa*Ja)))}ia<l&&(Pa*=-1,a=h,h=p,p=a,a=l,l=ia,ia=a,v in Pl&&E.attr("cursor",Ae[v=Pl[v]]));r<P&&(Ja*=-1,a=n,n=q,q=a,a=P,P=r,r=a,v in Ql&&E.attr("cursor",Ae[v=Ql[v]]));w.selection&&(Nb=w.selection);t&&(l=Nb[0][0],ia=Nb[1][0]);u&&(P=Nb[0][1],r=Nb[1][1]);Nb[0][0]===l&&Nb[0][1]===P&&Nb[1][0]===ia&&Nb[1][1]===r||(w.selection=[[l,P],[ia,r]],d.call(La),C.brush())}function g(){a.event.stopImmediatePropagation();if(a.event.touches){if(a.event.touches.length)return;k&&clearTimeout(k);k=setTimeout(function(){k=null},500);D.on("touchmove.brush touchend.brush touchcancel.brush",null)}else bd(a.event.view,Ia),F.on("keydown.brush keyup.brush mousemove.brush mouseup.brush",null);D.attr("pointer-events","all");E.attr("cursor",Ae.overlay);w.selection&&(Nb=w.selection);fe(Nb)&&(w.selection=null,d.call(La));C.end()}if(a.event.touches){if(a.event.changedTouches.length<a.event.touches.length)return id()}else if(k)return;if(m.apply(this,arguments)){var h,l,n,P,p,ia,q,r,oa,Fa,Ia,t,u,La=this,v=a.event.target.__data__.type,bb="selection"===(a.event.metaKey?v="overlay":v)?Ol:a.event.altKey?Ug:Tg,Pa=b===Wi?null:Yp[v],Ja=b===Xi?null:Zp[v],w=Ad(La),x=w.extent,Nb=w.selection,y=x[0][0],lf=x[0][1],z=x[1][0],ye=x[1][1],A=Pa&&Ja&&a.event.shiftKey,B=tc(La),mf=B,C=e(La,arguments).beforestart();"overlay"===v?w.selection=Nb=[[h=b===Wi?y:B[0],n=b===Xi?lf:B[1]],[p=b===Wi?z:h,q=b===Xi?ye:n]]:(h=Nb[0][0],n=Nb[0][1],p=Nb[1][0],q=Nb[1][1]);l=h;P=n;ia=p;r=q;var D=Va(La).attr("pointer-events","none"),E=D.selectAll(".overlay").attr("cursor",Ae[v]);if(a.event.touches)D.on("touchmove.brush",c,!0).on("touchend.brush touchcancel.brush",g,!0);else{var F=Va(a.event.view).on("keydown.brush",function(){switch(a.event.keyCode){case 16:A=Pa&&Ja;break;case 18:bb===Tg&&(Pa&&(p=ia-oa*Pa,h=l+oa*Pa),Ja&&(q=r-Fa*Ja,n=P+Fa*Ja),bb=Ug,f());break;case 32:bb!==Tg&&bb!==Ug||(0>Pa?p=ia-oa:0<Pa&&(h=l-oa),0>Ja?q=r-Fa:0<Ja&&(n=P-Fa),bb=fk,E.attr("cursor",Ae.selection),f());break;default:return}id()},!0).on("keyup.brush",function(){switch(a.event.keyCode){case 16:A&&(t=u=A=!1,f());break;case 18:bb===Ug&&(0>Pa?p=ia:0<Pa&&(h=l),0>Ja?q=r:0<Ja&&(n=P),bb=Tg,f());break;case 32:bb===fk&&(a.event.altKey?(Pa&&(p=ia-oa*Pa,h=l+oa*Pa),Ja&&(q=r-Fa*Ja,n=P+Fa*Ja),bb=Ug):(0>Pa?p=ia:0<Pa&&(h=l),0>Ja?q=r:0<Ja&&(n=P),bb=Tg),E.attr("cursor",Ae[v]),f());break;default:return}id()},!0).on("mousemove.brush",c,!0).on("mouseup.brush",g,!0);db(a.event.view)}a.event.stopImmediatePropagation();Vc(La);d.call(La);C.start()}}function h(){var a=this.__brush||{selection:null};return a.extent=l.apply(this,arguments),a.dim=b,a}var k,l=Ef,m=bc,n=D(c,"start","brush","end"),P=6;return c.move=function(a,c){a.selection?a.on("start.brush",function(){e(this,arguments).beforestart().start()}).on("interrupt.brush end.brush",function(){e(this,arguments).end()}).tn("brush",function(){function a(a){g.selection=1===a&&fe(l)?null:m(a);d.call(f);h.brush()}var f=this,g=f.__brush,h=e(f,arguments),k=g.selection,l=b.input("function"==typeof c?c.apply(this,arguments):c,g.extent),m=Ib(k,l);return k&&l?a:a(1)}):a.each(function(){var a=arguments,f=this.__brush,g=b.input("function"==typeof c?c.apply(this,a):c,f.extent),a=e(this,a).beforestart();Vc(this);f.selection=null==g||fe(g)?null:g;d.call(this);a.start().brush().end()})},f.prototype={beforestart:function(){return 1==++this.active&&(this.state.emitter=this,this.starting=!0),this},start:function(){return this.starting&&(this.starting=!1,this.emit("start")),this},brush:function(){return this.emit("brush"),this},end:function(){return 0==--this.active&&(delete this.state.emitter,this.emit("end")),this},emit:function(a){kb(new Df(c,a,b.output(this.state.selection)),n.apply,n,[a,this.that,this.args])}},c.extent=function(a){return arguments.length?(l="function"==typeof a?a:ee([[+a[0][0],+a[0][1]],[+a[1][0],+a[1][1]]]),c):l},c.filter=function(a){return arguments.length?(m="function"==typeof a?a:ee(!!a),c):m},c.handleSize=function(a){return arguments.length?(P=+a,c):P},c.on=function(){var a=n.on.apply(n,arguments);return a===n?c:a},c}function ge(a){return function(){return a}}function Bd(){this._x0=this._y0=this._x1=this._y1=null;this._=""}function wc(){return new Bd}function Qe(a){return a.source}function Ff(a){return a.target}function Re(a){return a.radius}function Gf(a){return a.startAngle}function Se(a){return a.endAngle}function Cd(){}function cc(a,b){var c=new Cd;if(a instanceof Cd)a.each(function(a,b){c.set(b,a)});else if(Array.isArray(a)){var d,e=-1,f=a.length;if(null==b)for(;++e<f;)c.set(e,a[e]);else for(;++e<f;)c.set(b(d=a[e],e,a),d)}else if(a)for(e in a)c.set(e,a[e]);return c}function Ai(){return{}}function If(a,b,c){a[b]=c}function Te(){return cc()}function Di(a,b,c){a.set(b,c)}function tg(){}function rg(a,b){var c=new tg;if(a instanceof tg)a.each(function(a){c.add(a)});else if(a){var d=-1,e=a.length;if(null==b)for(;++d<e;)c.add(a[d]);else for(;++d<e;)c.add(b(a[d],d,a))}return c}function Uj(a,b){return a-b}function Gc(a){return function(){return a}}function Qb(){}function Dd(){function a(a){var c=f(a);if(Array.isArray(c))c=c.slice().sort(Uj);else var d=m(a),e=d[0],d=d[1],c=w(e,d,c),c=x(Math.floor(e/c)*c,Math.floor(d/c)*c,c);return c.map(function(c){return b(a,c)})}function b(a,b){var c=[],f=[];return function(a,b,c){function f(a){var b,e,f=[a[0][0]+g,a[0][1]+h];a=[a[1][0]+g,a[1][1]+h];var k=2*f[0]+f[1]*(d+1)*4,l=2*a[0]+a[1]*(d+1)*4;(b=p[k])?(e=P[l])?(delete p[b.end],delete P[e.start],b===e?(b.ring.push(a),c(b.ring)):P[b.start]=p[e.end]={start:b.start,end:e.end,ring:b.ring.concat(e.ring)}):(delete p[b.end],b.ring.push(a),p[b.end=l]=b):(b=P[l])?(e=p[k])?(delete P[b.start],delete p[e.end],b===e?(b.ring.push(a),c(b.ring)):P[e.start]=p[b.end]={start:e.start,end:b.end,ring:e.ring.concat(b.ring)}):(delete P[b.start],b.ring.unshift(f),P[b.start=k]=b):P[k]=p[l]={start:k,end:l,ring:[f,a]}}var g,h,k,l,m,n,P=[],p=[];g=h=-1;l=a[0]>=b;for(Be[l<<1].forEach(f);++g<d-1;)k=l,l=a[g+1]>=b,Be[k|l<<1].forEach(f);for(Be[l<<0].forEach(f);++h<e-1;){g=-1;l=a[h*d+d]>=b;m=a[h*d]>=b;for(Be[l<<1|m<<2].forEach(f);++g<d-1;)k=l,l=a[h*d+d+g+1]>=b,n=m,m=a[h*d+g+1]>=b,Be[k|l<<1|m<<2|n<<3].forEach(f);Be[l|m<<3].forEach(f)}g=-1;m=a[h*d]>=b;for(Be[m<<2].forEach(f);++g<d-1;)n=m,m=a[h*d+g+1]>=b,Be[m<<2|n<<3].forEach(f);Be[m<<3].forEach(f)}(a,b,function(d){g(d,a,b);for(var e=0,h=d.length,k=d[h-1][1]*d[0][0]-d[h-1][0]*d[0][1];++e<h;)k+=d[e-1][1]*d[e][0]-d[e-1][0]*d[e][1];0<k?c.push([d]):f.push(d)}),f.forEach(function(a){for(var b,d=0,e=c.length;d<e;++d){var f;a:{f=(b=c[d])[0];for(var g=a,h,k=-1,l=g.length;++k<l;){b:{h=f;for(var m=g[k],n=m[0],P=m[1],p=-1,ia=0,q=h.length,r=q-1;ia<q;r=ia++){var oa=h[ia],t=oa[0],Fa=oa[1],r=h[r],u=r[0],v=r[1],La=void 0,bb=void 0,Ja=void 0,Pa=void 0;if((r[0]-oa[0])*(m[1]-oa[1])==(m[0]-oa[0])*(r[1]-oa[1])&&(bb=oa[La=+(oa[0]===r[0])],Ja=m[La],Pa=r[La],bb<=Ja&&Ja<=Pa||Pa<=Ja&&Ja<=bb)){h=0;break b}Fa>P!=v>P&&n<(u-t)*(P-Fa)/(v-Fa)+t&&(p=-p)}h=p}if(h){f=h;break a}}f=0}if(-1!==f)return void b.push(a)}}),{type:"MultiPolygon",value:b,coordinates:c}}function c(a,b,c){a.forEach(function(a){var f,g=a[0],h=a[1],k=0|g,l=0|h,m=b[l*d+k];0<g&&g<d&&k===g&&(f=b[l*d+k-1],a[0]=g+(c-f)/(m-f)-.5);0<h&&h<e&&l===h&&(f=b[(l-1)*d+k],a[1]=h+(c-f)/(m-f)-.5)})}var d=1,e=1,f=v,g=c;return a.contour=b,a.size=function(b){if(!arguments.length)return[d,e];var c=Math.ceil(b[0]),f=Math.ceil(b[1]);if(!(0<c&&0<f))throw Error("invalid size");return d=c,e=f,a},a.thresholds=function(b){return arguments.length?(f="function"==typeof b?b:Array.isArray(b)?Gc(Rl.call(b)):Gc(b),a):f},a.smooth=function(b){return arguments.length?(g=b?c:Qb,a):g===c},a}function sg(a,b,c){for(var d=a.width,e=a.height,f=1+(c<<1),g=0;g<e;++g)for(var h=0,k=0;h<d+c;++h)h<d&&(k+=a.data[h+g*d]),h>=c&&(h>=f&&(k-=a.data[h-f+g*d]),b.data[h-c+g*d]=k/Math.min(h+1,d-1+f-h,f))}function he(a,b,c){for(var d=a.width,e=a.height,f=1+(c<<1),g=0;g<d;++g)for(var h=0,k=0;h<e+c;++h)h<e&&(k+=a.data[g+h*d]),h>=c&&(h>=f&&(k-=a.data[g+(h-f)*d]),b.data[g+(h-c)*d]=k/Math.min(h+1,e-1+f-h,f))}function Ci(a){return a[0]}function Bi(a){return a[1]}function Hf(){return 1}function ug(a){return new Function("d","return {"+a.map(function(a,b){return JSON.stringify(a)+": d["+b+"]"}).join(",")+"}")}function Jf(a){function b(a,b){function c(){if(l)return hk;if(m)return m=!1,Sl;var b,c,d=h;if(34===a.charCodeAt(d)){for(;h++<g&&34!==a.charCodeAt(h)||34===a.charCodeAt(++h););return(b=h)>=g?l=!0:10===(c=a.charCodeAt(h++))?m=!0:13===c&&(m=!0,10===a.charCodeAt(h)&&++h),a.slice(d+1,b-1).replace(/""/g,'"')}for(;h<g;){if(10===(c=a.charCodeAt(b=h++)))m=!0;else if(13===c)m=!0,10===a.charCodeAt(h)&&++h;else if(c!==f)continue;return a.slice(d,b)}return l=!0,a.slice(d,g)}var d,e=[],g=a.length,h=0,k=0,l=0>=g,m=!1;10===a.charCodeAt(g-1)&&--g;for(13===a.charCodeAt(g-1)&&--g;(d=c())!==hk;){for(var n=[];d!==Sl&&d!==hk;)n.push(d),d=c();b&&null==(n=b(n,k++))||e.push(n)}return e}function c(b){return b.map(d).join(a)}function d(a){return null==a?"":e.test(a+="")?'"'+a.replace(/"/g,'""')+'"':a}var e=new RegExp('["'+a+"\n\r]"),f=a.charCodeAt(0);return{parse:function(a,c){var d,e,f=b(a,function(a,b){if(d)return d(a,b-1);e=a;d=c?function(a,b){var c=ug(a);return function(d,e){return b(c(d),e,a)}}(a,c):ug(a)});return f.columns=e||[],f},parseRows:b,format:function(b,c){return null==c&&(c=function(a){var b=Object.create(null),c=[];return a.forEach(function(a){for(var d in a)d in b||c.push(b[d]=d)}),c}(b)),[c.map(d).join(a)].concat(b.map(function(b){return c.map(function(a){return d(b[a])}).join(a)})).join("\n")},formatRows:function(a){return a.map(c).join("\n")}}}function Ei(a){if(!a.ok)throw Error(a.status+" "+a.statusText);return a.blob()}function ie(a){if(!a.ok)throw Error(a.status+" "+a.statusText);return a.arrayBuffer()}function Wc(a){if(!a.ok)throw Error(a.status+" "+a.statusText);return a.text()}function Kf(a,b){return fetch(a,b).then(Wc)}function Ue(a){return function(b,c,d){return 2===arguments.length&&"function"==typeof c&&(d=c,c=void 0),Kf(b,c).then(function(b){return a(b,d)})}}function Ve(a){if(!a.ok)throw Error(a.status+" "+a.statusText);return a.json()}function je(a){return function(b,c){return Kf(b,c).then(function(b){return(new DOMParser).parseFromString(b,a)})}}function ab(a){return function(){return a}}function xc(){return 1E-6*(Math.random()-.5)}function ke(a,b,c,d){if(isNaN(b)||isNaN(c))return a;var e,f,g,h,k,l,m,n,P=a._root;d={data:d};var p=a._x0,ia=a._y0,q=a._x1,r=a._y1;if(!P)return a._root=d,a;for(;P.length;)if((l=b>=(f=(p+q)/2))?p=f:q=f,(m=c>=(g=(ia+r)/2))?ia=g:r=g,e=P,!(P=P[n=m<<1|l]))return e[n]=d,a;if(h=+a._x.call(null,P.data),k=+a._y.call(null,P.data),b===h&&c===k)return d.next=P,e?e[n]=d:a._root=d,a;do e=e?e[n]=Array(4):a._root=Array(4),(l=b>=(f=(p+q)/2))?p=f:q=f,(m=c>=(g=(ia+r)/2))?ia=g:r=g;while((n=m<<1|l)==(l=(k>=g)<<1|h>=f));return e[l]=P,e[n]=d,a}function ub(a,b,c,d,e){this.node=a;this.x0=b;this.y0=c;this.x1=d;this.y1=e}function We(a){return a[0]}function le(a){return a[1]}function Xc(a,b,c){b=new vg(null==b?We:b,null==c?le:c,NaN,NaN,NaN,NaN);return null==a?b:b.addAll(a)}function vg(a,b,c,d,e,f){this._x=a;this._y=b;this._x0=c;this._y0=d;this._x1=e;this._y1=f;this._root=void 0}function me(a){for(var b={data:a.data},c=b;a=a.next;)c=c.next={data:a.data};return b}function ne(a){return a.x+a.vx}function ld(a){return a.y+a.vy}function Lf(a){return a.index}function Xe(a,b){var c=a.get(b);if(!c)throw Error("missing: "+b);return c}function Mf(a){return a.x}function Ye(a){return a.y}function Yc(a,b){if(0>(c=(a=b?a.toExponential(b-1):a.toExponential()).indexOf("e")))return null;var c,d=a.slice(0,c);return[1<d.length?d[0]+d.slice(2):d,+a.slice(c+1)]}function Hc(a){return(a=Yc(Math.abs(a)))?a[1]:NaN}function ec(a){return new md(a)}function md(a){if(!(b=$p.exec(a)))throw Error("invalid format: "+a);var b;this.fill=b[1]||" ";this.align=b[2]||"\x3e";this.sign=b[3]||"-";this.symbol=b[4]||"";this.zero=!!b[5];this.width=b[6]&&+b[6];this.comma=!!b[7];this.precision=b[8]&&+b[8].slice(1);this.trim=!!b[9];this.type=b[10]||""}function yc(a,b){var c=Yc(a,b);if(!c)return a+"";var d=c[0],c=c[1];return 0>c?"0."+Array(-c).join("0")+d:d.length>c+1?d.slice(0,c+1)+"."+d.slice(c+1):d+Array(c-d.length+2).join("0")}function Ed(a){return a}function Fd(a){function b(a){function b(a){var b,f,k,m=oa,Ia=t;if("c"===r)Ia=u(a)+Ia,a="";else{b=0>(a=+a);a=u(Math.abs(a),ia);if(q){var v=a.length,La=1,w=-1;a:for(;La<v;++La)switch(a[La]){case ".":w=f=La;break;case "0":0===w&&(w=La);f=La;break;default:if(0<w){if(!+a[La])break a;w=0}}a=0<w?a.slice(0,w)+a.slice(f+1):a}if(b&&0==+a&&(b=!1),m=(b?"("===l?l:"-":"-"===l||"("===l?"":l)+m,Ia=("s"===r?Tl[8+Ul/3]:"")+Ia+(b&&"("===l?")":""),Fa)for(b=-1,f=a.length;++b<f;)if(48>(k=a.charCodeAt(b))||57<k){Ia=(46===k?g+a.slice(b+1):a.slice(b))+Ia;a=a.slice(0,b);break}}p&&!n&&(a=e(a,1/0));k=m.length+a.length+Ia.length;b=k<P?Array(P-k+1).join(c):"";switch(p&&n&&(a=e(b+a,b.length?P-Ia.length:1/0),b=""),d){case "\x3c":a=m+a+Ia+b;break;case "\x3d":a=m+b+a+Ia;break;case "^":a=b.slice(0,k=b.length>>1)+m+a+Ia+b.slice(k);break;default:a=b+m+a+Ia}return h(a)}var c=(a=ec(a)).fill,d=a.align,l=a.sign,m=a.symbol,n=a.zero,P=a.width,p=a.comma,ia=a.precision,q=a.trim,r=a.type;"n"===r?(p=!0,r="g"):Vl[r]||(null==ia&&(ia=12),q=!0,r="g");(n||"0"===c&&"\x3d"===d)&&(n=!0,c="0",d="\x3d");var oa="$"===m?f[0]:"#"===m&&/[boxX]/.test(r)?"0"+r.toLowerCase():"",t="$"===m?f[1]:/[%p]/.test(r)?k:"",u=Vl[r],Fa=/[defgprs%]/.test(r);return ia=null==ia?6:/[gprs]/.test(r)?Math.max(1,Math.min(21,ia)):Math.max(0,Math.min(20,ia)),b.toString=function(){return a+""},b}var c,d,e=a.grouping&&a.thousands?(c=a.grouping,d=a.thousands,function(a,b){for(var e=a.length,f=[],g=0,h=c[0],k=0;0<e&&0<h&&(k+h+1>b&&(h=Math.max(1,b-k)),f.push(a.substring(e-=h,e+h)),!((k+=h+1)>b));)h=c[g=(g+1)%c.length];return f.reverse().join(d)}):Ed,f=a.currency,g=a.decimal,h=a.numerals?function(a){return function(b){return b.replace(/[0-9]/g,function(b){return a[+b]})}}(a.numerals):Ed,k=a.percent||"%";return{format:b,formatPrefix:function(a,c){var d=b(((a=ec(a)).type="f",a)),e=3*Math.max(-8,Math.min(8,Math.floor(Hc(c)/3))),f=Math.pow(10,-e),g=Tl[8+e/3];return function(a){return d(f*a)+g}}}}function Gd(b){return Yi=Fd(b),a.format=Yi.format,a.formatPrefix=Yi.formatPrefix,Yi}function Hd(a){return Math.max(0,-Hc(Math.abs(a)))}function Id(a,b){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(Hc(b)/3)))-Hc(Math.abs(a)))}function wg(a,b){return a=Math.abs(a),b=Math.abs(b)-a,Math.max(0,Hc(b)-Hc(a))+1}function ob(){this.reset()}function vh(a,b,c){var d=a.s=b+c,e=d-b;a.t=b-(d-e)+(c-e)}function xg(a){return 1<a?0:-1>a?Qa:Math.acos(a)}function vb(a){return 1<a?jb:-1>a?-jb:Math.asin(a)}function yg(a){return(a=pa(a/2))*a}function Za(){}function ra(a,b){a&&Wl.hasOwnProperty(a.type)&&Wl[a.type](a,b)}function Rb(a,b,c){var d=-1,e=a.length-c;for(b.lineStart();++d<e;)c=a[d],b.point(c[0],c[1],c[2]);b.lineEnd()}function oe(a,b){var c=-1,d=a.length;for(b.polygonStart();++c<d;)Rb(a[c],b,1);b.polygonEnd()}function jc(a,b){a&&Xl.hasOwnProperty(a.type)?Xl[a.type](a,b):ra(a,b)}function Jb(){Td.point=Nf}function Gi(){Ze(Yl,Zl)}function Nf(a,b){Td.point=Ze;Yl=a;Zl=b;ik=a*ya;jk=va(b=(b*=ya)/2+Zi);kk=pa(b)}function Ze(a,b){var c=(a*=ya)-ik,d=0<=c?1:-1,e=d*c,c=va(b=(b*=ya)/2+Zi),f=pa(b),g=kk*f,h=jk*c+g*va(e),d=g*d*pa(e);$i.add(oc(d,h));ik=a;jk=c;kk=f}function fc(a){return[oc(a[1],a[0]),vb(a[2])]}function Kb(a){var b=a[0];a=a[1];var c=va(a);return[c*va(b),c*pa(b),pa(a)]}function Cb(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]}function Lb(a,b){return[a[1]*b[2]-a[2]*b[1],a[2]*b[0]-a[0]*b[2],a[0]*b[1]-a[1]*b[0]]}function kc(a,b){a[0]+=b[0];a[1]+=b[1];a[2]+=b[2]}function lc(a,b){return[a[0]*b,a[1]*b,a[2]*b]}function gc(a){var b=zb(a[0]*a[0]+a[1]*a[1]+a[2]*a[2]);a[0]/=b;a[1]/=b;a[2]/=b}function Ic(a,b){nf.push(Ce=[rb=a,xb=a]);b<Lc&&(Lc=b);b>Zc&&(Zc=b)}function zc(a,b){var c=Kb([a*ya,b*ya]);if(Vg){var d=Lb(Vg,c),d=Lb([d[1],-d[0],0],d);gc(d);var d=fc(d),e,f=a-dg,g=0<f?1:-1,h=d[0]*gb*g,f=180<Ta(f);f^(g*dg<h&&h<g*a)?(e=d[1]*gb)>Zc&&(Zc=e):f^(g*dg<(h=(h+360)%360-180)&&h<g*a)?(e=-d[1]*gb)<Lc&&(Lc=e):(b<Lc&&(Lc=b),b>Zc&&(Zc=b));f?a<dg?Mb(rb,a)>Mb(rb,xb)&&(xb=a):Mb(a,xb)>Mb(rb,xb)&&(rb=a):xb>=rb?(a<rb&&(rb=a),a>xb&&(xb=a)):a>dg?Mb(rb,a)>Mb(rb,xb)&&(xb=a):Mb(a,xb)>Mb(rb,xb)&&(rb=a)}else nf.push(Ce=[rb=a,xb=a]);b<Lc&&(Lc=b);b>Zc&&(Zc=b);Vg=c;dg=a}function nd(){De.point=zc}function ib(){Ce[0]=rb;Ce[1]=xb;De.point=Ic;Vg=null}function Of(a,b){if(Vg){var c=a-dg;Oh.add(180<Ta(c)?c+(0<c?360:-360):c)}else $l=a,am=b;Td.point(a,b);zc(a,b)}function pe(){Td.lineStart()}function zg(){Of($l,am);Td.lineEnd();1E-6<Ta(Oh)&&(rb=-(xb=180));Ce[0]=rb;Ce[1]=xb;Vg=null}function Mb(a,b){return 0>(b-=a)?b+360:b}function Ag(a,b){return a[0]-b[0]}function $e(a,b){return a[0]<=a[1]?a[0]<=b&&b<=a[1]:b<a[0]||a[1]<b}function af(a,b){a*=ya;var c=va(b*=ya);Jd(c*va(a),c*pa(a),pa(b))}function Jd(a,b,c){aj+=(a-aj)/++bj;cj+=(b-cj)/bj;dj+=(c-dj)/bj}function Pf(){td.point=Bg}function Bg(a,b){a*=ya;var c=va(b*=ya);pc=c*va(a);qc=c*pa(a);rc=pa(b);td.point=mc;Jd(pc,qc,rc)}function mc(a,b){a*=ya;var c=va(b*=ya),d=c*va(a),c=c*pa(a),e=pa(b),f=oc(zb((f=qc*e-rc*c)*f+(f=rc*d-pc*e)*f+(f=pc*c-qc*d)*f),pc*d+qc*c+rc*e);ej+=f;fj+=f*(pc+(pc=d));gj+=f*(qc+(qc=c));hj+=f*(rc+(rc=e));Jd(pc,qc,rc)}function Qf(){td.point=af}function Rf(){td.point=Db}function Cg(){Sf(bm,cm);td.point=af}function Db(a,b){bm=a;cm=b;a*=ya;b*=ya;td.point=Sf;var c=va(b);pc=c*va(a);qc=c*pa(a);rc=pa(b);Jd(pc,qc,rc)}function Sf(a,b){a*=ya;var c=va(b*=ya),d=c*va(a),c=c*pa(a),e=pa(b),f=qc*e-rc*c,g=rc*d-pc*e,h=pc*c-qc*d,k=zb(f*f+g*g+h*h),l=vb(k),k=k&&-l/k;lk+=k*f;mk+=k*g;nk+=k*h;ej+=l;fj+=l*(pc+(pc=d));gj+=l*(qc+(qc=c));hj+=l*(rc+(rc=e));Jd(pc,qc,rc)}function od(a){return function(){return a}}function Kd(a,b){function c(c,d){return c=a(c,d),b(c[0],c[1])}return a.invert&&b.invert&&(c.invert=function(c,d){return(c=b.invert(c,d))&&a.invert(c[0],c[1])}),c}function bf(a,b){return[a>Qa?a-Cc:a<-Qa?a+Cc:a,b]}function qe(a,b,c){return(a%=Cc)?b||c?Kd(re(a),nc(b,c)):re(a):b||c?nc(b,c):bf}function Tf(a){return function(b,c){return[(b+=a)>Qa?b-Cc:b<-Qa?b+Cc:b,c]}}function re(a){var b=Tf(a);return b.invert=Tf(-a),b}function nc(a,b){function c(a,b){var c=va(b),h=va(a)*c,c=pa(a)*c,k=pa(b),l=k*d+h*e;return[oc(c*f-l*g,h*d-k*e),vb(l*f+c*g)]}var d=va(a),e=pa(a),f=va(b),g=pa(b);return c.invert=function(a,b){var c=va(b),h=va(a)*c,c=pa(a)*c,k=pa(b),l=k*f-c*g;return[oc(c*f+k*g,h*d+l*e),vb(l*d-h*e)]},c}function Hi(a){function b(b){return(b=a(b[0]*ya,b[1]*ya))[0]*=gb,b[1]*=gb,b}return a=qe(a[0]*ya,a[1]*ya,2<a.length?a[2]*ya:0),b.invert=function(b){return(b=a.invert(b[0]*ya,b[1]*ya))[0]*=gb,b[1]*=gb,b},b}function Ii(a,b,c,d,e,f){if(c){var g=va(b),h=pa(b);c*=d;for(null==e?(e=b+d*Cc,f=b-c/2):(e=Uf(g,e),f=Uf(g,f),(0<d?e<f:e>f)&&(e+=d*Cc));0<d?e>f:e<f;e-=c)b=fc([g,-h*va(e),-h*pa(e)]),a.point(b[0],b[1])}}function Uf(a,b){(b=Kb(b))[0]-=a;gc(b);var c=xg(-b[1]);return((0>-b[2]?-c:c)+Cc-1E-6)%Cc}function Dg(){var a,b=[];return{point:function(b,c){a.push([b,c])},lineStart:function(){b.push(a=[])},lineEnd:Za,rejoin:function(){1<b.length&&b.push(b.pop().concat(b.shift()))},result:function(){var c=b;return b=[],a=null,c}}}function pd(a,b){return 1E-6>Ta(a[0]-b[0])&&1E-6>Ta(a[1]-b[1])}function cf(a,b,c,d){this.x=a;this.z=b;this.o=c;this.e=d;this.v=!1;this.n=this.p=null}function wh(a,b,c,d,e){var f,g=[],h=[];if(a.forEach(function(a){if(!(0>=(b=a.length-1))){var b,c=a[0],d=a[b];if(pd(c,d)){e.lineStart();for(f=0;f<b;++f)e.point((c=a[f])[0],c[1]);e.lineEnd()}else g.push(b=new cf(c,a,null,!0)),h.push(b.o=new cf(c,null,b,!1)),g.push(b=new cf(d,a,null,!1)),h.push(b.o=new cf(d,null,b,!0))}}),g.length){h.sort(b);Eg(g);Eg(h);f=0;for(a=h.length;f<a;++f)h[f].e=c=!c;var k;for(b=g[0];;){for(var l=b,m=!0;l.v;)if((l=l.n)===b)return;c=l.z;e.lineStart();do{if(l.v=l.o.v=!0,l.e){if(m)for(f=0,a=c.length;f<a;++f)e.point((k=c[f])[0],k[1]);else d(l.x,l.n.x,1,e);l=l.n}else{if(m)for(c=l.p.z,f=c.length-1;0<=f;--f)e.point((k=c[f])[0],k[1]);else d(l.x,l.p.x,-1,e);l=l.p}c=(l=l.o).z;m=!m}while(!l.v);e.lineEnd()}}}function Eg(a){if(b=a.length){for(var b,c,d=0,e=a[0];++d<b;)e.n=c=a[d],c.p=e,e=c;e.n=c=a[0];c.p=e}}function Fg(a,b){var c=b[0],d=b[1],e=pa(d),f=[pa(c),-va(c),0],g=0,h=0;ok.reset();1===e?d=jb+1E-6:-1===e&&(d=-jb-1E-6);for(var e=0,k=a.length;e<k;++e)if(m=(l=a[e]).length)for(var l,m,n=l[m-1],p=n[0],P=n[1]/2+Zi,q=pa(P),r=va(P),P=0;P<m;++P,p=t,q=v,r=u,n=ia){var ia=l[P],t=ia[0],u=ia[1]/2+Zi,v=pa(u),u=va(u),w=t-p,x=0<=w?1:-1,y=x*w,z=y>Qa,q=q*v;if(ok.add(oc(q*x*pa(y),r*u+q*va(y))),g+=z?w+x*Cc:w,z^p>=c^t>=c)n=Lb(Kb(n),Kb(ia)),gc(n),p=Lb(f,n),gc(p),p=(z^0<=w?-1:1)*vb(p[2]),(d>p||d===p&&(n[0]||n[1]))&&(h+=z^0<=w?1:-1)}return(-1E-6>g||1E-6>g&&-1E-6>ok)^1&h}function Gg(a,b,c,d){return function(e){function f(b,c){a(b,c)&&e.point(b,c)}function g(a,b){ia.point(a,b)}function h(){v.point=g;ia.lineStart()}function k(){v.point=f;ia.lineEnd()}function l(a,b){r.push([a,b]);oa.point(a,b)}function m(){oa.lineStart();r=[]}function n(){l(r[0][0],r[0][1]);oa.lineEnd();var a,b,c,d;a=oa.clean();b=t.result();c=b.length;if(r.pop(),P.push(r),r=null,c)if(1&a){if(0<(b=(c=b[0]).length-1)){u||(e.polygonStart(),u=!0);e.lineStart();for(a=0;a<b;++a)e.point((d=c[a])[0],d[1]);e.lineEnd()}}else 1<c&&2&a&&b.push(b.pop().concat(b.shift())),q.push(b.filter(Ji))}var P,q,r,ia=b(e),t=Dg(),oa=b(t),u=!1,v={point:f,lineStart:h,lineEnd:k,polygonStart:function(){v.point=l;v.lineStart=m;v.lineEnd=n;q=[];P=[]},polygonEnd:function(){v.point=f;v.lineStart=h;v.lineEnd=k;q=p(q);var a=Fg(P,d);q.length?(u||(e.polygonStart(),u=!0),wh(q,xh,a,c,e)):a&&(u||(e.polygonStart(),u=!0),e.lineStart(),c(null,null,1,e),e.lineEnd());u&&(e.polygonEnd(),u=!1);q=P=null},sphere:function(){e.polygonStart();e.lineStart();c(null,null,1,e);e.lineEnd();e.polygonEnd()}};return v}}function Ji(a){return 1<a.length}function xh(a,b){return(0>(a=a.x)[0]?a[1]-jb-1E-6:jb-a[1])-(0>(b=b.x)[0]?b[1]-jb-1E-6:jb-b[1])}function yh(a){function b(a,b){return va(a)*va(b)>e}function c(a,b,c){var d=[1,0,0],f=Lb(Kb(a),Kb(b)),g=Cb(f,f),h=f[0],k=g-h*h;if(!k)return!c&&a;g=e*g/k;k=-e*h/k;h=Lb(d,f);d=lc(d,g);kc(d,lc(f,k));f=Cb(d,h);g=Cb(h,h);k=f*f-g*(Cb(d,d)-1);if(!(0>k)){var l=zb(k),k=lc(h,(-f-l)/g);if(kc(k,d),k=fc(k),!c)return k;var m;c=a[0];var n=b[0];a=a[1];b=b[1];n<c&&(m=c,c=n,n=m);var p=n-c,P=1E-6>Ta(p-Qa);if(!P&&b<a&&(m=a,a=b,b=m),P||1E-6>p?P?0<a+b^k[1]<(1E-6>Ta(k[0]-c)?a:b):a<=k[1]&&k[1]<=b:p>Qa^(c<=k[0]&&k[0]<=n))return m=lc(h,(-f+l)/g),kc(m,d),[k,fc(m)]}}function d(b,c){var d=g?a:Qa-a,e=0;return b<-d?e|=1:b>d&&(e|=2),c<-d?e|=4:c>d&&(e|=8),e}var e=va(a),f=6*ya,g=0<e,h=1E-6<Ta(e);return Gg(b,function(a){var e,f,k,l,m;return{lineStart:function(){l=k=!1;m=1},point:function(n,p){var P,q=[n,p],r=b(n,p),ia=g?r?0:d(n,p):r?d(n+(0>n?Qa:-Qa),p):0;if(!e&&(l=k=r)&&a.lineStart(),r!==k&&(!(P=c(e,q))||pd(e,P)||pd(q,P))&&(q[0]+=1E-6,q[1]+=1E-6,r=b(q[0],q[1])),r!==k)m=0,r?(a.lineStart(),P=c(q,e),a.point(P[0],P[1])):(P=c(e,q),a.point(P[0],P[1]),a.lineEnd()),e=P;else if(h&&e&&g^r){var t;ia&f||!(t=c(q,e,!0))||(m=0,g?(a.lineStart(),a.point(t[0][0],t[0][1]),a.point(t[1][0],t[1][1]),a.lineEnd()):(a.point(t[1][0],t[1][1]),a.lineEnd(),a.lineStart(),a.point(t[0][0],t[0][1])))}!r||e&&pd(e,q)||a.point(q[0],q[1]);e=q;k=r;f=ia},lineEnd:function(){k&&a.lineEnd();e=null},clean:function(){return m|(l&&k)<<1}}},function(b,c,d,e){Ii(e,a,f,d,b,c)},g?[0,-a]:[-Qa,a-Qa])}function Ld(a,b,c,d){function e(e,g,k,l){var m=0,n=0;if(null==e||(m=f(e,k))!==(n=f(g,k))||0>h(e,g)^0<k){do l.point(0===m||3===m?a:c,1<m?d:b);while((m=(m+k+4)%4)!==n)}else l.point(g[0],g[1])}function f(d,e){return 1E-6>Ta(d[0]-a)?0<e?0:3:1E-6>Ta(d[0]-c)?0<e?2:1:1E-6>Ta(d[1]-b)?0<e?1:0:0<e?3:2}function g(a,b){return h(a.x,b.x)}function h(a,b){var c=f(a,1),d=f(b,1);return c!==d?c-d:0===c?b[1]-a[1]:1===c?a[0]-b[0]:2===c?a[1]-b[1]:b[0]-a[0]}return function(f){function h(e,f){a<=e&&e<=c&&b<=f&&f<=d&&w.point(e,f)}function k(e,f){var g=a<=e&&e<=c&&b<=f&&f<=d;if(m&&n.push([e,f]),u)P=e,q=f,r=g,u=!1,g&&(w.lineStart(),w.point(e,f));else if(g&&oa)w.point(e,f);else{var h=[ia=Math.max(-1E9,Math.min(1E9,ia)),t=Math.max(-1E9,Math.min(1E9,t))],k=[e=Math.max(-1E9,Math.min(1E9,e)),f=Math.max(-1E9,Math.min(1E9,f))];(function(a,b,c,d,e,f){var g,h=a[0],k=a[1],l=0,m=1,n=b[0]-h,p=b[1]-k;if(g=c-h,n||!(0<g)){if(g/=n,0>n){if(g<l)return;g<m&&(m=g)}else if(0<n){if(g>m)return;g>l&&(l=g)}if(g=e-h,n||!(0>g)){if(g/=n,0>n){if(g>m)return;g>l&&(l=g)}else if(0<n){if(g<l)return;g<m&&(m=g)}if(g=d-k,p||!(0<g)){if(g/=p,0>p){if(g<l)return;g<m&&(m=g)}else if(0<p){if(g>m)return;g>l&&(l=g)}if(g=f-k,p||!(0>g)){if(g/=p,0>p){if(g>m)return;g>l&&(l=g)}else if(0<p){if(g<l)return;g<m&&(m=g)}return 0<l&&(a[0]=h+l*n,a[1]=k+l*p),1>m&&(b[0]=h+m*n,b[1]=k+m*p),!0}}}}})(h,k,a,b,c,d)?(oa||(w.lineStart(),w.point(h[0],h[1])),w.point(k[0],k[1]),g||w.lineEnd(),v=!1):g&&(w.lineStart(),w.point(e,f),v=!1)}ia=e;t=f;oa=g}var l,m,n,P,q,r,ia,t,oa,u,v,w=f,Fa=Dg(),x={point:h,lineStart:function(){x.point=k;m&&m.push(n=[]);u=!0;oa=!1;ia=t=NaN},lineEnd:function(){l&&(k(P,q),r&&oa&&Fa.rejoin(),l.push(Fa.result()));x.point=h;oa&&w.lineEnd()},polygonStart:function(){w=Fa;l=[];m=[];v=!0},polygonEnd:function(){for(var b,c=b=0,h=m.length;c<h;++c)for(var k,P,q=m[c],r=1,ia=q.length,t=q[0],oa=t[0],t=t[1];r<ia;++r)k=oa,P=t,t=q[r],oa=t[0],t=t[1],P<=d?t>d&&(oa-k)*(d-P)>(t-P)*(a-k)&&++b:t<=d&&(oa-k)*(d-P)<(t-P)*(a-k)&&--b;c=v&&b;h=(l=p(l)).length;(c||h)&&(f.polygonStart(),c&&(f.lineStart(),e(null,null,1,f),f.lineEnd()),h&&wh(l,g,b,e,f),f.polygonEnd());w=f;l=m=n=null}};return x}}function zh(){Wg.point=Wg.lineEnd=Za}function df(a,b){pk=a*ya;ij=pa(b*=ya);jj=va(b);Wg.point=Ah}function Ah(a,b){a*=ya;var c=pa(b*=ya),d=va(b),e=Ta(a-pk),f=va(e),e=d*pa(e),g=jj*c-ij*d*f,f=ij*c+jj*d*f;qk.add(oc(zb(e*e+g*g),f));pk=a;ij=c;jj=d}function Ig(a){return qk.reset(),jc(a,Wg),+qk}function Md(a,b){return rk[0]=a,rk[1]=b,Ig(aq)}function Vf(a,b){return!(!a||!dm.hasOwnProperty(a.type))&&dm[a.type](a,b)}function Eb(a,b){var c=Md(a[0],a[1]);return Md(a[0],b)+Md(b,a[1])<=c+1E-6}function Bh(a,b){return!!Fg(a.map(Ki),Jg(b))}function Ki(a){return(a=a.map(Jg)).pop(),a}function Jg(a){return[a[0]*ya,a[1]*ya]}function Wf(a,b,c){var d=x(a,b-1E-6,c).concat(b);return function(a){return d.map(function(b){return[a,b]})}}function Kg(a,b,c){var d=x(a,b-1E-6,c).concat(b);return function(a){return d.map(function(b){return[b,a]})}}function Lg(){function a(){return{type:"MultiLineString",coordinates:b()}}function b(){return x(kj(f/u)*u,e,u).map(p).concat(x(kj(l/v)*v,k,v).map(q)).concat(x(kj(d/r)*r,c,r).filter(function(a){return 1E-6<Ta(a%u)}).map(m)).concat(x(kj(h/t)*t,g,t).filter(function(a){return 1E-6<Ta(a%v)}).map(n))}var c,d,e,f,g,h,k,l,m,n,p,q,r=10,t=r,u=90,v=360,w=2.5;return a.lines=function(){return b().map(function(a){return{type:"LineString",coordinates:a}})},a.outline=function(){return{type:"Polygon",coordinates:[p(f).concat(q(k).slice(1),p(e).reverse().slice(1),q(l).reverse().slice(1))]}},a.extent=function(b){return arguments.length?a.extentMajor(b).extentMinor(b):a.extentMinor()},a.extentMajor=function(b){return arguments.length?(f=+b[0][0],e=+b[1][0],l=+b[0][1],k=+b[1][1],f>e&&(b=f,f=e,e=b),l>k&&(b=l,l=k,k=b),a.precision(w)):[[f,l],[e,k]]},a.extentMinor=function(b){return arguments.length?(d=+b[0][0],c=+b[1][0],h=+b[0][1],g=+b[1][1],d>c&&(b=d,d=c,c=b),h>g&&(b=h,h=g,g=b),a.precision(w)):[[d,h],[c,g]]},a.step=function(b){return arguments.length?a.stepMajor(b).stepMinor(b):a.stepMinor()},a.stepMajor=function(b){return arguments.length?(u=+b[0],v=+b[1],a):[u,v]},a.stepMinor=function(b){return arguments.length?(r=+b[0],t=+b[1],a):[r,t]},a.precision=function(b){return arguments.length?(w=+b,m=Wf(h,g,90),n=Kg(d,c,w),p=Wf(l,k,90),q=Kg(f,e,w),a):w},a.extentMajor([[-180,-89.999999],[180,89.999999]]).extentMinor([[-180,-80.000001],[180,80.000001]])}function qd(a){return a}function Li(){Ee.point=Mi}function Mi(a,b){Ee.point=Mg;em=sk=a;fm=tk=b}function Mg(a,b){uk.add(tk*a-sk*b);sk=a;tk=b}function Ni(){Mg(em,fm)}function Nd(a,b){vk+=a;wk+=b;++Ph}function Ch(){$c.point=Dh}function Dh(a,b){$c.point=Eh;Nd(Ud=a,Vd=b)}function Eh(a,b){var c=a-Ud,d=b-Vd,c=zb(c*c+d*d);lj+=c*(Ud+a)/2;mj+=c*(Vd+b)/2;Xg+=c;Nd(Ud=a,Vd=b)}function ef(){$c.point=Nd}function Xf(){$c.point=Oi}function ff(){se(gm,hm)}function Oi(a,b){$c.point=se;Nd(gm=Ud=a,hm=Vd=b)}function se(a,b){var c=a-Ud,d=b-Vd,c=zb(c*c+d*d);lj+=c*(Ud+a)/2;mj+=c*(Vd+b)/2;Xg+=c;xk+=(c=Vd*a-Ud*b)*(Ud+a);yk+=c*(Vd+b);Qh+=3*c;Nd(Ud=a,Vd=b)}function te(a){this._context=a}function gf(a,b){Rh.point=ue;im=Sh=a;jm=Th=b}function ue(a,b){Sh-=a;Th-=b;zk.add(zb(Sh*Sh+Th*Th));Sh=a;Th=b}function hf(){this._string=[]}function Yf(a){return"m0,"+a+"a"+a+","+a+" 0 1,1 0,"+-2*a+"a"+a+","+a+" 0 1,1 0,"+2*a+"z"}function rd(a){return function(b){var c=new Od,d;for(d in a)c[d]=a[d];return c.stream=b,c}}function Od(){}function ve(a,b,c){var d=a.clipExtent&&a.clipExtent();return a.scale(150).translate([0,0]),null!=d&&a.clipExtent(null),jc(c,a.stream(nj)),b(nj.result()),null!=d&&a.clipExtent(d),a}function Ac(a,b,c){return ve(a,function(c){var d=b[1][0]-b[0][0],e=b[1][1]-b[0][1],f=Math.min(d/(c[1][0]-c[0][0]),e/(c[1][1]-c[0][1])),d=+b[0][0]+(d-f*(c[1][0]+c[0][0]))/2;c=+b[0][1]+(e-f*(c[1][1]+c[0][1]))/2;a.scale(150*f).translate([d,c])},c)}function we(a,b,c){return ve(a,function(c){var d=+b,e=d/(c[1][0]-c[0][0]),d=(d-e*(c[1][0]+c[0][0]))/2;c=-e*c[0][1];a.scale(150*e).translate([d,c])},c)}function xe(a,b,c){return ve(a,function(c){var d=+b,e=d/(c[1][1]-c[0][1]),f=-e*c[0][0];c=(d-e*(c[1][1]+c[0][1]))/2;a.scale(150*e).translate([f,c])},c)}function Pd(a,b){return+b?function(a,b){function c(d,e,f,g,h,k,l,m,n,p,P,q,r,ia){var t=l-d,u=m-e,oa=t*t+u*u;if(oa>4*b&&r--){var v=g+p,w=h+P,La=k+q,Ia=zb(v*v+w*w+La*La),x=vb(La/=Ia),Fa=1E-6>Ta(Ta(La)-1)||1E-6>Ta(f-n)?(f+n)/2:oc(w,v),Pa=a(Fa,x),x=Pa[0],Pa=Pa[1],Ja=x-d,y=Pa-e,bb=u*Ja-t*y;(bb*bb/oa>b||.3<Ta((t*Ja+u*y)/oa-.5)||g*p+h*P+k*q<bq)&&(c(d,e,f,g,h,k,x,Pa,Fa,v/=Ia,w/=Ia,La,r,ia),ia.point(x,Pa),c(x,Pa,Fa,v,w,La,l,m,n,p,P,q,r,ia))}}return function(b){function d(c,d){c=a(c,d);b.point(c[0],c[1])}function e(){t=NaN;Ia.point=f;b.lineStart()}function f(d,e){var f=Kb([d,e]),g=a(d,e);c(t,u,ia,oa,v,w,t=g[0],u=g[1],ia=d,oa=f[0],v=f[1],w=f[2],16,b);b.point(t,u)}function g(){Ia.point=d;b.lineEnd()}function h(){e();Ia.point=k;Ia.lineEnd=l}function k(a,b){f(m=a,b);n=t;p=u;P=oa;q=v;r=w;Ia.point=f}function l(){c(t,u,ia,oa,v,w,n,p,m,P,q,r,16,b);Ia.lineEnd=g;g()}var m,n,p,P,q,r,ia,t,u,oa,v,w,Ia={point:d,lineStart:e,lineEnd:g,polygonStart:function(){b.polygonStart();Ia.lineStart=h},polygonEnd:function(){b.polygonEnd();Ia.lineStart=e}};return Ia}}(a,b):function(a){return rd({point:function(b,c){b=a(b,c);this.stream.point(b[0],b[1])}})}(a)}function jf(a,b,c,d){function e(a,d){return[g*a-h*d+b,c-h*a-g*d]}var f=va(d);d=pa(d);var g=f*a,h=d*a,k=f/a,l=d/a,m=(d*c-f*b)/a,n=(d*b+f*c)/a;return e.invert=function(a,b){return[k*a-l*b+m,n-l*a-k*b]},e}function Jc(a){return Ng(function(){return a})()}function Ng(a){function b(a){return p(a[0]*ya,a[1]*ya)}function c(a){return(a=p.invert(a[0],a[1]))&&[a[0]*gb,a[1]*gb]}function d(){var a=jf(r,0,0,A).apply(null,f(v,w)),a=(A?jf:function(a,b,c){function d(d,e){return[b+a*d,c-a*e]}return d.invert=function(d,e){return[(d-b)/a,(c-e)/a]},d})(r,t-a[0],u-a[1],A);return g=qe(x,y,z),n=Kd(f,a),p=Kd(g,n),m=Pd(n,D),e()}function e(){return P=q=null,b}var f,g,h,k,l,m,n,p,P,q,r=150,t=480,u=250,v=0,w=0,x=0,y=0,z=0,A=0,B=null,Ia=Ak,ze=null,C=qd,D=.5;return b.stream=function(a){return P&&q===a?P:P=cq(function(a){return rd({point:function(b,c){var d=a(b,c);return this.stream.point(d[0],d[1])}})}(g)(Ia(m(C(q=a)))))},b.preclip=function(a){return arguments.length?(Ia=a,B=void 0,e()):Ia},b.postclip=function(a){return arguments.length?(C=a,ze=h=k=l=null,e()):C},b.clipAngle=function(a){return arguments.length?(Ia=+a?yh(B=a*ya):(B=null,Ak),e()):B*gb},b.clipExtent=function(a){return arguments.length?(C=null==a?(ze=h=k=l=null,qd):Ld(ze=+a[0][0],h=+a[0][1],k=+a[1][0],l=+a[1][1]),e()):null==ze?null:[[ze,h],[k,l]]},b.scale=function(a){return arguments.length?(r=+a,d()):r},b.translate=function(a){return arguments.length?(t=+a[0],u=+a[1],d()):[t,u]},b.center=function(a){return arguments.length?(v=a[0]%360*ya,w=a[1]%360*ya,d()):[v*gb,w*gb]},b.rotate=function(a){return arguments.length?(x=a[0]%360*ya,y=a[1]%360*ya,z=2<a.length?a[2]%360*ya:0,d()):[x*gb,y*gb,z*gb]},b.angle=function(a){return arguments.length?(A=a%360*ya,d()):A*gb},b.precision=function(a){return arguments.length?(m=Pd(n,D=a*a),e()):zb(D)},b.fitExtent=function(a,c){return Ac(b,a,c)},b.fitSize=function(a,c){return Ac(b,[[0,0],a],c)},b.fitWidth=function(a,c){return we(b,a,c)},b.fitHeight=function(a,c){return xe(b,a,c)},function(){return f=a.apply(this,arguments),b.invert=f.invert&&c,d()}}function Zf(a){var b=0,c=Qa/3,d=Ng(a);a=d(b,c);return a.parallels=function(a){return arguments.length?d(b=a[0]*ya,c=a[1]*ya):[b*gb,c*gb]},a}function Aa(a,b){function c(a,b){var c=zb(f-2*e*pa(b))/e;return[c*pa(a*=e),g-c*va(a)]}var d=pa(a),e=(d+pa(b))/2;if(1E-6>Ta(e))return function(a){function b(a,b){return[a*c,pa(b)/c]}var c=va(a);return b.invert=function(a,b){return[a/c,vb(b*c)]},b}(a);var f=1+d*(2*e-d),g=zb(f)/e;return c.invert=function(a,b){var c=g-b;return[oc(a,Ta(c))/e*Uh(c),vb((f-(a*a+c*c)*e*e)/(2*e))]},c}function Kc(){return Zf(Aa).scale(155.424).center([0,33.6442])}function oi(){return Kc().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])}function Ca(a){return function(b,c){var d=va(b),e=va(c),d=a(d*e);return[d*e*pa(b),d*pa(c)]}}function qb(a){return function(b,c){var d=zb(b*b+c*c),e=a(d),f=pa(e),e=va(e);return[oc(b*f,d*e),vb(d&&c*f/d)]}}function $f(a,b){return[a,oj(Yg((jb+b)/2))]}function qa(a){function b(){var b=Qa*h(),g=f(Hi(f.rotate()).invert([0,0]));return l(null==m?[[g[0]-b,g[1]-b],[g[0]+b,g[1]+b]]:a===$f?[[Math.max(g[0]-b,m),c],[Math.min(g[0]+b,d),e]]:[[m,Math.max(g[1]-b,c)],[d,Math.min(g[1]+b,e)]])}var c,d,e,f=Jc(a),g=f.center,h=f.scale,k=f.translate,l=f.clipExtent,m=null;return f.scale=function(a){return arguments.length?(h(a),b()):h()},f.translate=function(a){return arguments.length?(k(a),b()):k()},f.center=function(a){return arguments.length?(g(a),b()):g()},f.clipExtent=function(a){return arguments.length?(null==a?m=c=d=e=null:(m=+a[0][0],c=+a[0][1],d=+a[1][0],e=+a[1][1]),b()):null==m?null:[[m,c],[d,e]]},b()}function Dc(a,b){function c(a,b){0<f?b<-jb+1E-6&&(b=-jb+1E-6):b>jb-1E-6&&(b=jb-1E-6);var c=f/Bk(Yg((jb+b)/2),e);return[c*pa(e*a),f-c*va(e*a)]}var d=va(a),e=a===b?pa(a):oj(d/va(b))/oj(Yg((jb+b)/2)/Yg((jb+a)/2)),f=d*Bk(Yg((jb+a)/2),e)/e;return e?(c.invert=function(a,b){var c=f-b,d=Uh(e)*zb(a*a+c*c);return[oc(a,Ta(c))/e*Uh(c),2*Zg(Bk(f/d,1/e))-jb]},c):$f}function sf(a,b){return[a,b]}function pi(a,b){function c(a,b){var c=f-b,d=e*a;return[c*pa(d),f-c*va(d)]}var d=va(a),e=a===b?pa(a):(d-va(b))/(b-a),f=d/e+a;return 1E-6>Ta(e)?sf:(c.invert=function(a,b){var c=f-b;return[oc(a,Ta(c))/e*Uh(c),f-Uh(e)*zb(a*a+c*c)]},c)}function jh(a,b){var c=vb(pj*pa(b)),d=c*c,e=d*d*d;return[a*va(c)/(pj*(1.340264+3*-.081106*d+e*(7*8.93E-4+.034164*d))),c*(1.340264+-.081106*d+e*(8.93E-4+.003796*d))]}function mh(a,b){var c=va(b),d=va(a)*c;return[c*pa(a)/d,pa(b)/d]}function vf(a,b,c,d){return 1===a&&1===b&&0===c&&0===d?qd:rd({point:function(e,f){this.stream.point(e*a+c,f*b+d)}})}function oh(a,b){var c=b*b,d=c*c;return[a*(.8707-.131979*c+d*(d*(.003971*c-.001529*d)-.013791)),b*(1.007226+c*(.015085+d*(.028874*c-.044475-.005916*d)))]}function mg(a,b){return[va(b)*pa(a),pa(b)]}function kg(a,b){var c=va(b),d=1+va(a)*c;return[c*pa(a)/d,pa(b)/d]}function lg(a,b){return[oj(Yg((jb+b)/2)),-a]}function vi(a,b){return a.parent===b.parent?1:2}function ui(a,b){return a+b.x}function ti(a,b){return Math.max(a,b.y)}function ph(a){var b=0,c=a.children,d=c&&c.length;if(d)for(;0<=--d;)b+=c[d].value;else b=1;a.value=b}function qh(a,b){var c,d,e,f,g,h=new dc(a),k=+a.value&&(h.value=a.value),l=[h];for(null==b&&(b=Rj);c=l.pop();)if(k&&(c.value=+c.data.value),(e=b(c.data))&&(g=e.length))for(c.children=Array(g),f=g-1;0<=f;--f)l.push(d=c.children[f]=new dc(e[f])),d.parent=c,d.depth=c.depth+1;return h.eachBefore(Pi)}function Rj(a){return a.children}function Oe(a){a.data=a.data.data}function Pi(a){var b=0;do a.height=b;while((a=a.parent)&&a.height<++b)}function dc(a){this.data=a;this.depth=this.height=0;this.parent=null}function Fi(a){var b,c,d=0;a=dq.call(a);var e,f;for(b=a.length;b;)f=Math.random()*b--|0,e=a[b],a[b]=a[f],a[f]=e;e=a.length;for(f=[];d<e;)if(b=a[d],c&&Qi(c,b))++d;else{a:if(c=f,d=b,sd(d,c))c=[d];else{for(f=0;f<c.length;++f)if(Fb(d,c[f])&&sd(yb(c[f],d),c)){c=[c[f],d];break a}for(f=0;f<c.length-1;++f)for(b=f+1;b<c.length;++b)if(Fb(yb(c[f],c[b]),d)&&Fb(yb(c[f],d),c[b])&&Fb(yb(c[b],d),c[f])&&sd(Bc(c[f],c[b],d),c)){c=[c[f],c[b],d];break a}throw Error();}a:{c=f=c;switch(c.length){case 1:c={x:(g=c[0]).x,y:g.y,r:g.r};break a;case 2:c=yb(c[0],c[1]);break a;case 3:c=Bc(c[0],c[1],c[2]);break a}var g=void 0;c=void 0}d=0}return c}function Fb(a,b){var c=a.r-b.r,d=b.x-a.x,e=b.y-a.y;return 0>c||c*c<d*d+e*e}function Qi(a,b){var c=a.r-b.r+1E-6,d=b.x-a.x,e=b.y-a.y;return 0<c&&c*c>d*d+e*e}function sd(a,b){for(var c=0;c<b.length;++c)if(!Qi(a,b[c]))return!1;return!0}function yb(a,b){var c=a.x,d=a.y,e=a.r,f=b.x,g=b.y,h=b.r,k=f-c,l=g-d,m=h-e,n=Math.sqrt(k*k+l*l);return{x:(c+f+k/n*m)/2,y:(d+g+l/n*m)/2,r:(n+e+h)/2}}function Bc(a,b,c){var d=a.x,e=a.y;a=a.r;var f=b.x,g=b.y,h=b.r,k=c.x,l=c.y,m=c.r;c=d-f;b=d-k;var n=e-g,p=e-l,q=h-a,r=m-a,P=d*d+e*e-a*a,g=P-f*f-g*g+h*h,l=P-k*k-l*l+m*m,k=b*n-c*p,f=(n*l-p*g)/(2*k)-d,n=(p*q-n*r)/k,p=(b*g-c*l)/(2*k)-e;c=(c*r-b*q)/k;b=n*n+c*c-1;q=2*(a+f*n+p*c);a=f*f+p*p-a*a;a=-(b?(q+Math.sqrt(q*q-4*b*a))/(2*b):a/q);return{x:d+f+n*a,y:e+p+c*a,r:a}}function ag(a,b,c){var d,e,f,g,h=a.x-b.x,k=a.y-b.y,l=h*h+k*k;l?(e=b.r+c.r,e*=e,g=a.r+c.r,e>(g*=g)?(d=(l+g-e)/(2*l),f=Math.sqrt(Math.max(0,g/l-d*d)),c.x=a.x-d*h-f*k,c.y=a.y-d*k+f*h):(d=(l+e-g)/(2*l),f=Math.sqrt(Math.max(0,e/l-d*d)),c.x=b.x+d*h-f*k,c.y=b.y+d*k+f*h)):(c.x=b.x+c.r,c.y=b.y)}function Og(a,b){var c=a.r+b.r-1E-6,d=b.x-a.x,e=b.y-a.y;return 0<c&&c*c>d*d+e*e}function Pg(a){var b=a._,c=a.next._,d=b.r+c.r;a=(b.x*c.r+c.x*b.r)/d;b=(b.y*c.r+c.y*b.r)/d;return a*a+b*b}function kf(a){this._=a;this.previous=this.next=null}function Gh(a){if(!(e=a.length))return 0;var b,c,d,e,f,g,h,k,l,m;if((b=a[0]).x=0,b.y=0,!(1<e))return b.r;if(c=a[1],b.x=-c.r,c.x=b.r,c.y=0,!(2<e))return b.r+c.r;ag(c,b,d=a[2]);b=new kf(b);c=new kf(c);d=new kf(d);b.next=d.previous=c;c.next=b.previous=d;d.next=c.previous=b;h=3;a:for(;h<e;++h){ag(b._,c._,d=a[h]);d=new kf(d);f=c.next;k=b.previous;l=c._.r;m=b._.r;do if(l<=m){if(Og(f._,d._)){c=f;b.next=c;c.previous=b;--h;continue a}l+=f._.r;f=f.next}else{if(Og(k._,d._)){(b=k).next=c;c.previous=b;--h;continue a}m+=k._.r;k=k.previous}while(f!==k.next);d.previous=b;d.next=c;b.next=c.previous=c=d;for(f=Pg(b);(d=d.next)!==c;)(g=Pg(d))<f&&(b=d,f=g);c=b.next}b=[c._];for(d=c;(d=d.next)!==c;)b.push(d._);d=Fi(b);for(h=0;h<e;++h)(b=a[h]).x-=d.x,b.y-=d.y;return d.r}function wb(a){if("function"!=typeof a)throw Error();return a}function Rd(){return 0}function Sd(a){return function(){return a}}function Vj(a){return Math.sqrt(a.value)}function Hh(a){return function(b){b.children||(b.r=Math.max(0,+a(b)||0))}}function Qg(a,b){return function(c){if(d=c.children){var d,e,f,g=d.length,h=a(c)*b||0;if(h)for(e=0;e<g;++e)d[e].r+=h;if(f=Gh(d),h)for(e=0;e<g;++e)d[e].r-=h;c.r=f+h}}}function bg(a){return function(b){var c=b.parent;b.r*=a;c&&(b.x=c.x+a*b.x,b.y=c.y+a*b.y)}}function Hg(a){a.x0=Math.round(a.x0);a.y0=Math.round(a.y0);a.x1=Math.round(a.x1);a.y1=Math.round(a.y1)}function Qd(a,b,c,d,e){var f=a.children,g=-1,h=f.length;for(d=a.value&&(d-b)/a.value;++g<h;)(a=f[g]).y0=c,a.y1=e,a.x0=b,a.x1=b+=a.value*d}function Fh(a){return a.id}function c(a){return a.parentId}function g(a,b){return a.parent===b.parent?1:2}function n(a){var b=a.children;return b?b[0]:a.t}function t(a){var b=a.children;return b?b[b.length-1]:a.t}function y(a,b){this._=a;this.A=this.children=this.parent=null;this.a=this;this.s=this.c=this.m=this.z=0;this.t=null;this.i=b}function I(a,b,c,d,e){var f=a.children,g=-1,h=f.length;for(e=a.value&&(e-c)/a.value;++g<h;)(a=f[g]).x0=b,a.x1=d,a.y0=c,a.y1=c+=a.value*e}function O(a,b,c,d,e,f){for(var g,h,k,l,m,n,p,q,r,P,t=[],u=b.children,ia=g=0,v=u.length,w=b.value;g<v;){b=e-c;k=f-d;do l=u[ia++].value;while(!l&&ia<v);m=n=l;P=l*l*(r=Math.max(k/b,b/k)/(w*a));for(q=Math.max(n/P,P/m);ia<v;++ia){if(l+=h=u[ia].value,h<m&&(m=h),h>n&&(n=h),P=l*l*r,(p=Math.max(n/P,P/m))>q){l-=h;break}q=p}t.push(g={value:l,dice:b<k,children:u.slice(g,ia)});g.dice?Qd(g,c,d,e,w?d+=k*l/w:f):I(g,c,d,w?c+=b*l/w:e,f);w-=l;g=ia}return t}function ea(a,b){return a[0]-b[0]||a[1]-b[1]}function ma(a){for(var b,c,d,e=a.length,f=[0,1],g=2,h=2;h<e;++h){for(;1<g&&(b=a[f[g-2]],c=a[f[g-1]],d=a[h],0>=(c[0]-b[0])*(d[1]-b[1])-(c[1]-b[1])*(d[0]-b[0]));)--g;f[g++]=h}return f.slice(0,g)}function Tb(){return Math.random()}function Ub(a){function b(b){var f=b+"",g=c.get(f);if(!g){if(e!==Ck)return e;c.set(f,g=d.push(b))}return a[(g-1)%a.length]}var c=cc(),d=[],e=Ck;return a=null==a?[]:of.call(a),b.domain=function(a){if(!arguments.length)return d.slice();d=[];c=cc();for(var e,f,g=-1,h=a.length;++g<h;)c.has(f=(e=a[g])+"")||c.set(f,d.push(e));return b},b.range=function(c){return arguments.length?(a=of.call(c),b):a.slice()},b.unknown=function(a){return arguments.length?(e=a,b):e},b.copy=function(){return Ub().domain(d).range(a).unknown(e)},b}function Gb(){function a(){var a=e().length,d=g[1]<g[0],n=g[d-0],p=g[1-d];b=(p-n)/Math.max(1,a-k+2*l);h&&(b=Math.floor(b));n+=(p-n-b*(a-k))*m;c=b*(1-k);h&&(n=Math.round(n),c=Math.round(c));a=x(a).map(function(a){return n+b*a});return f(d?a.reverse():a)}var b,c,d=Ub().unknown(void 0),e=d.domain,f=d.range,g=[0,1],h=!1,k=0,l=0,m=.5;return delete d.unknown,d.domain=function(b){return arguments.length?(e(b),a()):e()},d.range=function(b){return arguments.length?(g=[+b[0],+b[1]],a()):g.slice()},d.rangeRound=function(b){return g=[+b[0],+b[1]],h=!0,a()},d.bandwidth=function(){return c},d.step=function(){return b},d.round=function(b){return arguments.length?(h=!!b,a()):h},d.padding=function(b){return arguments.length?(k=l=Math.max(0,Math.min(1,b)),a()):k},d.paddingInner=function(b){return arguments.length?(k=Math.max(0,Math.min(1,b)),a()):k},d.paddingOuter=function(b){return arguments.length?(l=Math.max(0,Math.min(1,b)),a()):l},d.align=function(b){return arguments.length?(m=Math.max(0,Math.min(1,b)),a()):m},d.copy=function(){return Gb().domain(e()).range(g).round(h).paddingInner(k).paddingOuter(l).align(m)},a()}function lh(a){return function(){return a}}function tl(a){return+a}function Pj(a,b){return(b-=a=+a)?function(c){return(c-a)/b}:lh(b)}function oo(a,b,c,d){var e=a[0];a=a[1];var f=b[0];b=b[1];return a<e?(e=c(a,e),f=d(b,f)):(e=c(e,a),f=d(f,b)),function(a){return f(e(a))}}function po(a,b,c,d){var e=Math.min(a.length,b.length)-1,f=Array(e),g=Array(e),h=-1;for(a[e]<a[0]&&(a=a.slice().reverse(),b=b.slice().reverse());++h<e;)f[h]=c(a[h],a[h+1]),g[h]=d(b[h],b[h+1]);return function(b){var c=eg(a,b,1,e)-1;return g[c](f[c](b))}}function qi(a,b){return b.domain(a.domain()).range(a.range()).interpolate(a.interpolate()).clamp(a.clamp())}function ri(a,b){function c(){return e=2<Math.min(h.length,k.length)?po:oo,f=g=null,d}function d(b){return(f||(f=e(h,k,m?function(a){return function(b,c){var d=a(b=+b,c=+c);return function(a){return a<=b?0:a>=c?1:d(a)}}}(a):a,l)))(+b)}var e,f,g,h=km,k=km,l=Ib,m=!1;return d.invert=function(a){return(g||(g=e(k,h,Pj,m?function(a){return function(b,c){var d=a(b=+b,c=+c);return function(a){return 0>=a?b:1<=a?c:d(a)}}}(b):b)))(+a)},d.domain=function(a){return arguments.length?(h=Dk.call(a,tl),c()):h.slice()},d.range=function(a){return arguments.length?(k=of.call(a),c()):k.slice()},d.rangeRound=function(a){return k=of.call(a),l=rh,c()},d.clamp=function(a){return arguments.length?(m=!!a,c()):m},d.interpolate=function(a){return arguments.length?(l=a,c()):l},c()}function ig(b){var c=b.domain;return b.ticks=function(a){var b=c();return G(b[0],b[b.length-1],null==a?10:a)},b.tickFormat=function(b,d){var e;a:{var f=c();e=d;var g,h=f[0],k=f[f.length-1],f=w(h,k,null==b?10:b);switch((e=ec(null==e?",f":e)).type){case "s":h=Math.max(Math.abs(h),Math.abs(k));e=(null!=e.precision||isNaN(g=Id(f,h))||(e.precision=g),a.formatPrefix(e,h));break a;case "":case "e":case "g":case "p":case "r":null!=e.precision||isNaN(g=wg(f,Math.max(Math.abs(h),Math.abs(k))))||(e.precision=g-("e"===e.type));break;case "f":case "%":null!=e.precision||isNaN(g=Hd(f))||(e.precision=g-2*("%"===e.type))}e=a.format(e)}return e},b.nice=function(a){null==a&&(a=10);var d,e=c(),f=0,g=e.length-1,h=e[f],k=e[g];return k<h&&(d=h,h=k,k=d,d=f,f=g,g=d),0<(d=B(h,k,a))?d=B(h=Math.floor(h/d)*d,k=Math.ceil(k/d)*d,a):0>d&&(d=B(h=Math.ceil(h*d)/d,k=Math.floor(k*d)/d,a)),0<d?(e[f]=Math.floor(h/d)*d,e[g]=Math.ceil(k/d)*d,c(e)):0>d&&(e[f]=Math.ceil(h*d)/d,e[g]=Math.floor(k*d)/d,c(e)),b},b}function ol(a,b){var c,d=0,e=(a=a.slice()).length-1,f=a[d],g=a[e];return g<f&&(c=d,d=e,e=c,c=f,f=g,g=c),a[d]=b.floor(f),a[e]=b.ceil(g),a}function qo(a,b){return(b=Math.log(b/a))?function(c){return Math.log(c/a)/b}:lh(b)}function ro(a,b){return 0>a?function(c){return-Math.pow(-b,c)*Math.pow(-a,1-c)}:function(c){return Math.pow(b,c)*Math.pow(a,1-c)}}function so(a){return isFinite(a)?+("1e"+a):0>a?0:a}function pl(a){return 10===a?so:a===Math.E?Math.exp:function(b){return Math.pow(a,b)}}function ql(a){return a===Math.E?Math.log:10===a&&Math.log10||2===a&&Math.log2||(a=Math.log(a),function(b){return Math.log(b)/a})}function rl(a){return function(b){return-a(-b)}}function jg(a,b){return 0>a?-Math.pow(-a,b):Math.pow(a,b)}function Qj(){var a=1,b=ri(function(b,c){return(c=jg(c,a)-(b=jg(b,a)))?function(d){return(jg(d,a)-b)/c}:lh(c)},function(b,c){return c=jg(c,a)-(b=jg(b,a)),function(d){return jg(b+c*d,1/a)}}),c=b.domain;return b.exponent=function(b){return arguments.length?(a=+b,c(c())):a},b.copy=function(){return qi(b,Qj().exponent(a))},ig(b)}function Ab(a,b,c,d){function e(b){return a(b=new Date(+b)),b}return e.floor=e,e.ceil=function(c){return a(c=new Date(c-1)),b(c,1),a(c),c},e.round=function(a){var b=e(a),c=e.ceil(a);return a-b<c-a?b:c},e.offset=function(a,c){return b(a=new Date(+a),null==c?1:Math.floor(c)),a},e.range=function(c,d,f){var g,h=[];if(c=e.ceil(c),f=null==f?1:Math.floor(f),!(c<d&&0<f))return h;do h.push(g=new Date(+c)),b(c,f),a(c);while(g<c&&c<d);return h},e.filter=function(c){return Ab(function(b){if(b>=b)for(;a(b),!c(b);)b.setTime(b-1)},function(a,d){if(a>=a)if(0>d)for(;0>=++d;)for(;b(a,-1),!c(a););else for(;0<=--d;)for(;b(a,1),!c(a););})},c&&(e.count=function(b,d){return Ek.setTime(+b),Fk.setTime(+d),a(Ek),a(Fk),Math.floor(c(Ek,Fk))},e.every=function(a){return a=Math.floor(a),isFinite(a)&&0<a?1<a?e.filter(d?function(b){return 0==d(b)%a}:function(b){return 0==e.count(0,b)%a}):e:null}),e}function tf(a){return Ab(function(b){b.setDate(b.getDate()-(b.getDay()+7-a)%7);b.setHours(0,0,0,0)},function(a,b){a.setDate(a.getDate()+7*b)},function(a,b){return(b-a-6E4*(b.getTimezoneOffset()-a.getTimezoneOffset()))/6048E5})}function uf(a){return Ab(function(b){b.setUTCDate(b.getUTCDate()-(b.getUTCDay()+7-a)%7);b.setUTCHours(0,0,0,0)},function(a,b){a.setUTCDate(a.getUTCDate()+7*b)},function(a,b){return(b-a)/6048E5})}function to(a){if(0<=a.y&&100>a.y){var b=new Date(-1,a.m,a.d,a.H,a.M,a.S,a.L);return b.setFullYear(a.y),b}return new Date(a.y,a.m,a.d,a.H,a.M,a.S,a.L)}function si(a){if(0<=a.y&&100>a.y){var b=new Date(Date.UTC(-1,a.m,a.d,a.H,a.M,a.S,a.L));return b.setUTCFullYear(a.y),b}return new Date(Date.UTC(a.y,a.m,a.d,a.H,a.M,a.S,a.L))}function kh(a){return{y:a,m:0,d:1,H:0,M:0,S:0,L:0}}function sl(a){function b(a,b){return function(c){var d,e,f,g=[],h=-1,k=0,l=a.length;for(c instanceof Date||(c=new Date(+c));++h<l;)37===a.charCodeAt(h)&&(g.push(a.slice(k,h)),null!=(e=lm[d=a.charAt(++h)])?d=a.charAt(++h):e="e"===d?" ":"0",(f=b[d])&&(d=f(c,e)),g.push(d),k=h+1);return g.push(a.slice(k,h)),g.join("")}}function c(a,b){return function(c){var e,f,g=kh(1900);if(d(g,a,c+="",0)!=c.length)return null;if("Q"in g)return new Date(g.Q);if("p"in g&&(g.H=g.H%12+12*g.p),"V"in g){if(1>g.V||53<g.V)return null;"w"in g||(g.w=1);"Z"in g?(f=(e=si(kh(g.y))).getUTCDay(),e=4<f||0===f?Vh.ceil(e):Vh(e),e=Wh.offset(e,7*(g.V-1)),g.y=e.getUTCFullYear(),g.m=e.getUTCMonth(),g.d=e.getUTCDate()+(g.w+6)%7):(f=(e=b(kh(g.y))).getDay(),e=4<f||0===f?Xh.ceil(e):Xh(e),e=Yh.offset(e,7*(g.V-1)),g.y=e.getFullYear(),g.m=e.getMonth(),g.d=e.getDate()+(g.w+6)%7)}else("W"in g||"U"in g)&&("w"in g||(g.w="u"in g?g.u%7:"W"in g?1:0),f="Z"in g?si(kh(g.y)).getUTCDay():b(kh(g.y)).getDay(),g.m=0,g.d="W"in g?(g.w+6)%7+7*g.W-(f+5)%7:g.w+7*g.U-(f+6)%7);return"Z"in g?(g.H+=g.Z/100|0,g.M+=g.Z%100,si(g)):b(g)}}function d(a,b,c,d){for(var e,f,g=0,h=b.length,k=c.length;g<h;){if(d>=k)return-1;if(37===(e=b.charCodeAt(g++))){if(e=b.charAt(g++),!(f=B[e in lm?b.charAt(g++):e])||0>(d=f(a,c,d)))return-1}else if(e!=c.charCodeAt(d++))return-1}return d}var e=a.dateTime,f=a.date,g=a.time,h=a.periods,k=a.days,l=a.shortDays,m=a.months,n=a.shortMonths,p=th(h),q=sh(h),r=th(k),P=sh(k),t=th(l),u=sh(l),v=th(m),w=sh(m),x=th(n),y=sh(n),z={a:function(a){return l[a.getDay()]},A:function(a){return k[a.getDay()]},b:function(a){return n[a.getMonth()]},B:function(a){return m[a.getMonth()]},c:null,d:wl,e:wl,f:Po,H:Lo,I:Mo,j:No,L:xl,m:Qo,M:Ro,p:function(a){return h[+(12<=a.getHours())]},Q:Bl,s:Cl,S:Oo,u:So,U:To,V:Ho,w:fp,W:gp,x:null,X:null,y:lp,Y:hp,Z:Tj,"%":Al},A={a:function(a){return l[a.getUTCDay()]},A:function(a){return k[a.getUTCDay()]},b:function(a){return n[a.getUTCMonth()]},B:function(a){return m[a.getUTCMonth()]},c:null,d:yl,e:yl,f:Xo,H:Uo,I:Vo,j:Wo,L:zl,m:Yo,M:Zo,p:function(a){return h[+(12<=a.getUTCHours())]},Q:Bl,s:Cl,S:$o,u:ap,U:bp,V:cp,w:dp,W:ep,x:null,X:null,y:ip,Y:jp,Z:kp,"%":Al},B={a:function(a,b,c){return(b=t.exec(b.slice(c)))?(a.w=u[b[0].toLowerCase()],c+b[0].length):-1},A:function(a,b,c){return(b=r.exec(b.slice(c)))?(a.w=P[b[0].toLowerCase()],c+b[0].length):-1},b:function(a,b,c){return(b=x.exec(b.slice(c)))?(a.m=y[b[0].toLowerCase()],c+b[0].length):-1},B:function(a,b,c){return(b=v.exec(b.slice(c)))?(a.m=w[b[0].toLowerCase()],c+b[0].length):-1},c:function(a,b,c){return d(a,e,b,c)},d:ul,e:ul,f:Co,H:vl,I:vl,j:yo,L:Bo,m:xo,M:Ao,p:function(a,b,c){return(b=p.exec(b.slice(c)))?(a.p=q[b[0].toLowerCase()],c+b[0].length):-1},Q:Jo,s:Ko,S:U,u:Eo,U:Fo,V:Go,w:Do,W:Af,x:function(a,b,c){return d(a,f,b,c)},X:function(a,b,c){return d(a,g,b,c)},y:vo,Y:uo,Z:wo,"%":Io};return z.x=b(f,z),z.X=b(g,z),z.c=b(e,z),A.x=b(f,A),A.X=b(g,A),A.c=b(e,A),{format:function(a){var c=b(a+="",z);return c.toString=function(){return a},c},parse:function(a){var b=c(a+="",to);return b.toString=function(){return a},b},utcFormat:function(a){var c=b(a+="",A);return c.toString=function(){return a},c},utcParse:function(a){var b=c(a,si);return b.toString=function(){return a},b}}}function Ya(a,b,c){var d=0>a?"-":"";a=(d?-a:a)+"";var e=a.length;return d+(e<c?Array(c-e+1).join(b)+a:a)}function zo(a){return a.replace(eq,"\\$\x26")}function th(a){return new RegExp("^(?:"+a.map(zo).join("|")+")","i")}function sh(a){for(var b={},c=-1,d=a.length;++c<d;)b[a[c].toLowerCase()]=c;return b}function Do(a,b,c){return(b=Sb.exec(b.slice(c,c+1)))?(a.w=+b[0],c+b[0].length):-1}function Eo(a,b,c){return(b=Sb.exec(b.slice(c,c+1)))?(a.u=+b[0],c+b[0].length):-1}function Fo(a,b,c){return(b=Sb.exec(b.slice(c,c+2)))?(a.U=+b[0],c+b[0].length):-1}function Go(a,b,c){return(b=Sb.exec(b.slice(c,c+2)))?(a.V=+b[0],c+b[0].length):-1}function Af(a,b,c){return(b=Sb.exec(b.slice(c,c+2)))?(a.W=+b[0],c+b[0].length):-1}function uo(a,b,c){return(b=Sb.exec(b.slice(c,c+4)))?(a.y=+b[0],c+b[0].length):-1}function vo(a,b,c){return(b=Sb.exec(b.slice(c,c+2)))?(a.y=+b[0]+(68<+b[0]?1900:2E3),c+b[0].length):-1}function wo(a,b,c){return(b=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(b.slice(c,c+6)))?(a.Z=b[1]?0:-(b[2]+(b[3]||"00")),c+b[0].length):-1}function xo(a,b,c){return(b=Sb.exec(b.slice(c,c+2)))?(a.m=b[0]-1,c+b[0].length):-1}function ul(a,b,c){return(b=Sb.exec(b.slice(c,c+2)))?(a.d=+b[0],c+b[0].length):-1}function yo(a,b,c){return(b=Sb.exec(b.slice(c,c+3)))?(a.m=0,a.d=+b[0],c+b[0].length):-1}function vl(a,b,c){return(b=Sb.exec(b.slice(c,c+2)))?(a.H=+b[0],c+b[0].length):-1}function Ao(a,b,c){return(b=Sb.exec(b.slice(c,c+2)))?(a.M=+b[0],c+b[0].length):-1}function U(a,b,c){return(b=Sb.exec(b.slice(c,c+2)))?(a.S=+b[0],c+b[0].length):-1}function Bo(a,b,c){return(b=Sb.exec(b.slice(c,c+3)))?(a.L=+b[0],c+b[0].length):-1}function Co(a,b,c){return(b=Sb.exec(b.slice(c,c+6)))?(a.L=Math.floor(b[0]/1E3),c+b[0].length):-1}function Io(a,b,c){return(a=fq.exec(b.slice(c,c+1)))?c+a[0].length:-1}function Jo(a,b,c){return(b=Sb.exec(b.slice(c)))?(a.Q=+b[0],c+b[0].length):-1}function Ko(a,b,c){return(b=Sb.exec(b.slice(c)))?(a.Q=1E3*+b[0],c+b[0].length):-1}function wl(a,b){return Ya(a.getDate(),b,2)}function Lo(a,b){return Ya(a.getHours(),b,2)}function Mo(a,b){return Ya(a.getHours()%12||12,b,2)}function No(a,b){return Ya(1+Yh.count(Fe(a),a),b,3)}function xl(a,b){return Ya(a.getMilliseconds(),b,3)}function Po(a,b){return xl(a,b)+"000"}function Qo(a,b){return Ya(a.getMonth()+1,b,2)}function Ro(a,b){return Ya(a.getMinutes(),b,2)}function Oo(a,b){return Ya(a.getSeconds(),b,2)}function So(a){a=a.getDay();return 0===a?7:a}function To(a,b){return Ya(Zh.count(Fe(a),a),b,2)}function Ho(a,b){var c=a.getDay();return a=4<=c||0===c?$h(a):$h.ceil(a),Ya($h.count(Fe(a),a)+(4===Fe(a).getDay()),b,2)}function fp(a){return a.getDay()}function gp(a,b){return Ya(Xh.count(Fe(a),a),b,2)}function lp(a,b){return Ya(a.getFullYear()%100,b,2)}function hp(a,b){return Ya(a.getFullYear()%1E4,b,4)}function Tj(a){a=a.getTimezoneOffset();return(0<a?"-":(a*=-1,"+"))+Ya(a/60|0,"0",2)+Ya(a%60,"0",2)}function yl(a,b){return Ya(a.getUTCDate(),b,2)}function Uo(a,b){return Ya(a.getUTCHours(),b,2)}function Vo(a,b){return Ya(a.getUTCHours()%12||12,b,2)}function Wo(a,b){return Ya(1+Wh.count(Ge(a),a),b,3)}function zl(a,b){return Ya(a.getUTCMilliseconds(),b,3)}function Xo(a,b){return zl(a,b)+"000"}function Yo(a,b){return Ya(a.getUTCMonth()+1,b,2)}function Zo(a,b){return Ya(a.getUTCMinutes(),b,2)}function $o(a,b){return Ya(a.getUTCSeconds(),b,2)}function ap(a){a=a.getUTCDay();return 0===a?7:a}function bp(a,b){return Ya(ai.count(Ge(a),a),b,2)}function cp(a,b){var c=a.getUTCDay();return a=4<=c||0===c?bi(a):bi.ceil(a),Ya(bi.count(Ge(a),a)+(4===Ge(a).getUTCDay()),b,2)}function dp(a){return a.getUTCDay()}function ep(a,b){return Ya(Vh.count(Ge(a),a),b,2)}function ip(a,b){return Ya(a.getUTCFullYear()%100,b,2)}function jp(a,b){return Ya(a.getUTCFullYear()%1E4,b,4)}function kp(){return"+0000"}function Al(){return"%"}function Bl(a){return+a}function Cl(a){return Math.floor(+a/1E3)}function Dl(b){return $g=sl(b),a.timeFormat=$g.format,a.timeParse=$g.parse,a.utcFormat=$g.utcFormat,a.utcParse=$g.utcParse,$g}function gq(a){return new Date(a)}function hq(a){return a instanceof Date?+a:+new Date(+a)}function Gk(a,b,c,e,f,g,h,k,l){function m(d){return(h(d)<d?t:g(d)<d?u:f(d)<d?P:e(d)<d?v:b(d)<d?c(d)<d?x:ia:a(d)<d?y:z)(d)}function n(b,c,e,f){if(null==b&&(b=10),"number"==typeof b){var g=Math.abs(e-c)/b,h=d(function(a){return a[2]}).right(A,g);h===A.length?(f=w(c/31536E6,e/31536E6,b),b=a):h?(f=(h=A[g/A[h-1][2]<A[h][2]/g?h-1:h])[1],b=h[0]):(f=Math.max(w(c,e,b),1),b=k)}return null==f?b:b.every(f)}var p=ri(Pj,Wa),q=p.invert,r=p.domain,t=l(".%L"),u=l(":%S"),P=l("%I:%M"),v=l("%I %p"),x=l("%a %d"),ia=l("%b %d"),y=l("%B"),z=l("%Y"),A=[[h,1,1E3],[h,5,5E3],[h,15,15E3],[h,30,3E4],[g,1,6E4],[g,5,3E5],[g,15,9E5],[g,30,18E5],[f,1,36E5],[f,3,108E5],[f,6,216E5],[f,12,432E5],[e,1,864E5],[e,2,1728E5],[c,1,6048E5],[b,1,2592E6],[b,3,7776E6],[a,1,31536E6]];return p.invert=function(a){return new Date(q(a))},p.domain=function(a){return arguments.length?r(Dk.call(a,hq)):r().map(gq)},p.ticks=function(a,b){var c,d=r(),e=d[0],d=d[d.length-1],f=d<e;return f&&(c=e,e=d,d=c),c=(c=n(a,e,d,b))?c.range(e,d+1):[],f?c.reverse():c},p.tickFormat=function(a,b){return null==b?m:l(b)},p.nice=function(a,b){var c=r();return(a=n(a,c[0],c[c.length-1],b))?r(ol(c,a)):p},p.copy=function(){return qi(p,Gk(a,b,c,e,f,g,h,k,l))},p}function Ga(a){for(var b=a.length/6|0,c=Array(b),d=0;d<b;)c[d]="#"+a.slice(6*d,6*++d);return c}function cb(a){return mm(a[a.length-1])}function qj(a){var b=a.length;return function(c){return a[Math.max(0,Math.min(b-1,Math.floor(c*b)))]}}function Ka(a){return function(){return a}}function nm(a){return 1<=a?rj:-1>=a?-rj:Math.asin(a)}function iq(a){return a.innerRadius}function jq(a){return a.outerRadius}function kq(a){return a.startAngle}function lq(a){return a.endAngle}function mq(a){return a&&a.padAngle}function sj(a,b,c,d,e,f,g){var h=a-c,k=b-d;g=(g?f:-f)/ah(h*h+k*k);var k=g*k,h=-g*h,l=a+k,m=b+h,n=c+k,p=d+h;c=(l+n)/2;d=(m+p)/2;b=n-l;a=p-m;g=b*b+a*a;f=e-f;var p=l*p-n*m,q=(0>a?-1:1)*ah(nq(0,f*f*g-p*p)),l=(p*a-b*q)/g,m=(-p*b-a*q)/g,n=(p*a+b*q)/g;b=(-p*b+a*q)/g;a=l-c;g=m-d;c=n-c;d=b-d;return a*a+g*g>c*c+d*d&&(l=n,m=b),{cx:l,cy:m,x01:-k,y01:-h,x11:l*(e/f-1),y11:m*(e/f-1)}}function om(a){this._context=a}function tj(a){return new om(a)}function Hk(a){return a[0]}function Ik(a){return a[1]}function Jk(){function a(a){var h,k,l,m=a.length,n=!1;null==e&&(g=f(l=wc()));for(h=0;h<=m;++h)!(h<m&&d(k=a[h],h,a))===n&&((n=!n)?g.lineStart():g.lineEnd()),n&&g.point(+b(k,h,a),+c(k,h,a));if(l)return g=null,l+""||null}var b=Hk,c=Ik,d=Ka(!0),e=null,f=tj,g=null;return a.x=function(c){return arguments.length?(b="function"==typeof c?c:Ka(+c),a):b},a.y=function(b){return arguments.length?(c="function"==typeof b?b:Ka(+b),a):c},a.defined=function(b){return arguments.length?(d="function"==typeof b?b:Ka(!!b),a):d},a.curve=function(b){return arguments.length?(f=b,null!=e&&(g=f(e)),a):f},a.context=function(b){return arguments.length?(null==b?e=g=null:g=f(e=b),a):e},a}function pm(){function a(a){var b,m,n,p,q,r=a.length,t=!1,u=Array(r),v=Array(r);null==h&&(l=k(q=wc()));for(b=0;b<=r;++b){if(!(b<r&&g(p=a[b],b,a))===t)if(t=!t)m=b,l.areaStart(),l.lineStart();else{l.lineEnd();l.lineStart();for(n=b-1;n>=m;--n)l.point(u[n],v[n]);l.lineEnd();l.areaEnd()}t&&(u[b]=+c(p,b,a),v[b]=+e(p,b,a),l.point(d?+d(p,b,a):u[b],f?+f(p,b,a):v[b]))}if(q)return l=null,q+""||null}function b(){return Jk().defined(g).curve(k).context(h)}var c=Hk,d=null,e=Ka(0),f=Ik,g=Ka(!0),h=null,k=tj,l=null;return a.x=function(b){return arguments.length?(c="function"==typeof b?b:Ka(+b),d=null,a):c},a.x0=function(b){return arguments.length?(c="function"==typeof b?b:Ka(+b),a):c},a.x1=function(b){return arguments.length?(d=null==b?null:"function"==typeof b?b:Ka(+b),a):d},a.y=function(b){return arguments.length?(e="function"==typeof b?b:Ka(+b),f=null,a):e},a.y0=function(b){return arguments.length?(e="function"==typeof b?b:Ka(+b),a):e},a.y1=function(b){return arguments.length?(f=null==b?null:"function"==typeof b?b:Ka(+b),a):f},a.lineX0=a.lineY0=function(){return b().x(c).y(e)},a.lineY1=function(){return b().x(c).y(f)},a.lineX1=function(){return b().x(d).y(e)},a.defined=function(b){return arguments.length?(g="function"==typeof b?b:Ka(!!b),a):g},a.curve=function(b){return arguments.length?(k=b,null!=h&&(l=k(h)),a):k},a.context=function(b){return arguments.length?(null==b?h=l=null:l=k(h=b),a):h},a}function oq(a,b){return b<a?-1:b>a?1:b>=a?0:NaN}function pq(a){return a}function qm(a){this._curve=a}function Kk(a){function b(b){return new qm(a(b))}return b._curve=a,b}function ci(a){var b=a.curve;return a.angle=a.x,delete a.x,a.radius=a.y,delete a.y,a.curve=function(a){return arguments.length?b(Kk(a)):b()._curve},a}function rm(){return ci(Jk().curve(sm))}function tm(){var a=pm().curve(sm),b=a.curve,c=a.lineX0,d=a.lineX1,e=a.lineY0,f=a.lineY1;return a.angle=a.x,delete a.x,a.startAngle=a.x0,delete a.x0,a.endAngle=a.x1,delete a.x1,a.radius=a.y,delete a.y,a.innerRadius=a.y0,delete a.y0,a.outerRadius=a.y1,delete a.y1,a.lineStartAngle=function(){return ci(c())},delete a.lineX0,a.lineEndAngle=function(){return ci(d())},delete a.lineX1,a.lineInnerRadius=function(){return ci(e())},delete a.lineY0,a.lineOuterRadius=function(){return ci(f())},delete a.lineY1,a.curve=function(a){return arguments.length?b(Kk(a)):b()._curve},a}function di(a,b){return[(b=+b)*Math.cos(a-=Math.PI/2),b*Math.sin(a)]}function qq(a){return a.source}function rq(a){return a.target}function Lk(a){function b(){var b,h=Mk.call(arguments),k=c.apply(this,h),l=d.apply(this,h);if(g||(g=b=wc()),a(g,+e.apply(this,(h[0]=k,h)),+f.apply(this,h),+e.apply(this,(h[0]=l,h)),+f.apply(this,h)),b)return g=null,b+""||null}var c=qq,d=rq,e=Hk,f=Ik,g=null;return b.source=function(a){return arguments.length?(c=a,b):c},b.target=function(a){return arguments.length?(d=a,b):d},b.x=function(a){return arguments.length?(e="function"==typeof a?a:Ka(+a),b):e},b.y=function(a){return arguments.length?(f="function"==typeof a?a:Ka(+a),b):f},b.context=function(a){return arguments.length?(g=null==a?null:a,b):g},b}function sq(a,b,c,d,e){a.moveTo(b,c);a.bezierCurveTo(b=(b+d)/2,c,b,e,d,e)}function tq(a,b,c,d,e){a.moveTo(b,c);a.bezierCurveTo(b,c=(c+e)/2,d,c,d,e)}function uq(a,b,c,d,e){var f=di(b,c);b=di(b,c=(c+e)/2);c=di(d,c);d=di(d,e);a.moveTo(f[0],f[1]);a.bezierCurveTo(b[0],b[1],c[0],c[1],d[0],d[1])}function pf(){}function uj(a,b,c){a._context.bezierCurveTo((2*a._x0+a._x1)/3,(2*a._y0+a._y1)/3,(a._x0+2*a._x1)/3,(a._y0+2*a._y1)/3,(a._x0+4*a._x1+b)/6,(a._y0+4*a._y1+c)/6)}function vj(a){this._context=a}function um(a){this._context=a}function vm(a){this._context=a}function wm(a,b){this._basis=new vj(a);this._beta=b}function wj(a,b,c){a._context.bezierCurveTo(a._x1+a._k*(a._x2-a._x0),a._y1+a._k*(a._y2-a._y0),a._x2+a._k*(a._x1-b),a._y2+a._k*(a._y1-c),a._x2,a._y2)}function Nk(a,b){this._context=a;this._k=(1-b)/6}function Ok(a,b){this._context=a;this._k=(1-b)/6}function Pk(a,b){this._context=a;this._k=(1-b)/6}function Qk(a,b,c){var d=a._x1,e=a._y1,f=a._x2,g=a._y2;if(1E-12<a._l01_a)var h=2*a._l01_2a+3*a._l01_a*a._l12_a+a._l12_2a,k=3*a._l01_a*(a._l01_a+a._l12_a),d=(d*h-a._x0*a._l12_2a+a._x2*a._l01_2a)/k,e=(e*h-a._y0*a._l12_2a+a._y2*a._l01_2a)/k;1E-12<a._l23_a&&(h=2*a._l23_2a+3*a._l23_a*a._l12_a+a._l12_2a,k=3*a._l23_a*(a._l23_a+a._l12_a),f=(f*h+a._x1*a._l23_2a-b*a._l12_2a)/k,g=(g*h+a._y1*a._l23_2a-c*a._l12_2a)/k);a._context.bezierCurveTo(d,e,f,g,a._x2,a._y2)}function xm(a,b){this._context=a;this._alpha=b}function ym(a,b){this._context=a;this._alpha=b}function zm(a,b){this._context=a;this._alpha=b}function Am(a){this._context=a}function Bm(a,b,c){var d=a._x1-a._x0;b-=a._x1;var e=(a._y1-a._y0)/(d||0>b&&-0);a=(c-a._y1)/(b||0>d&&-0);return((0>e?-1:1)+(0>a?-1:1))*Math.min(Math.abs(e),Math.abs(a),.5*Math.abs((e*b+a*d)/(d+b)))||0}function Cm(a,b){var c=a._x1-a._x0;return c?(3*(a._y1-a._y0)/c-b)/2:b}function Rk(a,b,c){var d=a._x0,e=a._x1,f=a._y1,g=(e-d)/3;a._context.bezierCurveTo(d+g,a._y0+g*b,e-g,f-g*c,e,f)}function xj(a){this._context=a}function Dm(a){this._context=new Em(a)}function Em(a){this._context=a}function Fm(a){this._context=a}function Gm(a){var b,c,d=a.length-1,e=Array(d),f=Array(d),g=Array(d);e[0]=0;f[0]=2;g[0]=a[0]+2*a[1];for(b=1;b<d-1;++b)e[b]=1,f[b]=4,g[b]=4*a[b]+2*a[b+1];e[d-1]=2;f[d-1]=7;g[d-1]=8*a[d-1]+a[d];for(b=1;b<d;++b)c=e[b]/f[b-1],f[b]-=c,g[b]-=c*g[b-1];e[d-1]=g[d-1]/f[d-1];for(b=d-2;0<=b;--b)e[b]=(g[b]-e[b+1])/f[b];f[d-1]=(a[d]+e[d-1])/2;for(b=0;b<d-1;++b)f[b]=2*a[b+1]-e[b+1];return[e,f]}function yj(a,b){this._context=a;this._t=b}function bh(a,b){if(1<(e=a.length))for(var c,d,e,f=1,g=a[b[0]],h=g.length;f<e;++f)for(d=g,g=a[b[f]],c=0;c<h;++c)g[c][1]+=g[c][0]=isNaN(d[c][1])?d[c][0]:d[c][1]}function ch(a){a=a.length;for(var b=Array(a);0<=--a;)b[a]=a;return b}function vq(a,b){return a[b]}function Hm(a){var b=a.map(Im);return ch(a).sort(function(a,c){return b[a]-b[c]})}function Im(a){for(var b,c=0,d=-1,e=a.length;++d<e;)(b=+a[d][1])&&(c+=b);return c}function Jm(a){return function(){return a}}function wq(a){return a[0]}function xq(a){return a[1]}function zj(){this._=null}function Aj(a){a.U=a.C=a.L=a.R=a.P=a.N=null}function ei(a,b){var c=b.R,d=b.U;d?d.L===b?d.L=c:d.R=c:a._=c;c.U=d;b.U=c;b.R=c.L;b.R&&(b.R.U=b);c.L=b}function fi(a,b){var c=b.L,d=b.U;d?d.L===b?d.L=c:d.R=c:a._=c;c.U=d;b.U=c;b.L=c.R;b.L&&(b.L.U=b);c.R=b}function Km(a){for(;a.L;)a=a.L;return a}function gi(a,b,c,d){var e=[null,null],f=hc.push(e)-1;return e.left=a,e.right=b,c&&Bj(e,a,b,c),d&&Bj(e,b,a,d),Mc[a.index].halfedges.push(f),Mc[b.index].halfedges.push(f),e}function hi(a,b,c){b=[b,c];return b.left=a,b}function Bj(a,b,c,d){a[0]||a[1]?a.left===c?a[1]=d:a[0]=d:(a[0]=d,a.left=b,a.right=c)}function yq(a,b,c,d,e){var f,g=a[0],h=a[1],k=g[0],g=g[1],l=0,m=1,n=h[0]-k,h=h[1]-g;if(f=b-k,n||!(0<f)){if(f/=n,0>n){if(f<l)return;f<m&&(m=f)}else if(0<n){if(f>m)return;f>l&&(l=f)}if(f=d-k,n||!(0>f)){if(f/=n,0>n){if(f>m)return;f>l&&(l=f)}else if(0<n){if(f<l)return;f<m&&(m=f)}if(f=c-g,h||!(0<f)){if(f/=h,0>h){if(f<l)return;f<m&&(m=f)}else if(0<h){if(f>m)return;f>l&&(l=f)}if(f=e-g,h||!(0>f)){if(f/=h,0>h){if(f>m)return;f>l&&(l=f)}else if(0<h){if(f<l)return;f<m&&(m=f)}return!(0<l||1>m)||(0<l&&(a[0]=[k+l*n,g+l*h]),1>m&&(a[1]=[k+m*n,g+m*h]),!0)}}}}}function zq(a,b,c,d,e){var f=a[1];if(f)return!0;var g,h,k=a[0],l=a.left,m=a.right,f=l[0],l=l[1],n=m[0],m=m[1];h=(f+n)/2;if(m===l){if(h<b||h>=d)return;if(f>n){if(k){if(k[1]>=e)return}else k=[h,c];f=[h,e]}else{if(k){if(k[1]<c)return}else k=[h,e];f=[h,c]}}else if(h=(l+m)/2-(g=(f-n)/(m-l))*h,-1>g||1<g)if(f>n){if(k){if(k[1]>=e)return}else k=[(c-h)/g,c];f=[(e-h)/g,e]}else{if(k){if(k[1]<c)return}else k=[(e-h)/g,e];f=[(c-h)/g,c]}else if(l<m){if(k){if(k[0]>=d)return}else k=[b,g*b+h];f=[d,g*d+h]}else{if(k){if(k[0]<b)return}else k=[d,g*d+h];f=[b,g*b+h]}return a[0]=k,a[1]=f,!0}function Aq(a,b){var c=a.site,d=b.left,e=b.right;return c===e&&(e=d,d=c),e?Math.atan2(e[1]-d[1],e[0]-d[0]):(c===d?(d=b[1],e=b[0]):(d=b[0],e=b[1]),Math.atan2(d[0]-e[0],e[1]-d[1]))}function Lm(a,b){return b[+(b.left!==a.site)]}function Bq(){Aj(this);this.x=this.y=this.arc=this.site=this.cy=null}function dh(a){var b=a.P,c=a.N;if(b&&c){var d=b.site,b=a.site,e=c.site;if(d!==e){var c=b[0],f=b[1],g=d[0]-c,h=d[1]-f,d=e[0]-c,k=e[1]-f,e=2*(g*k-h*d);if(!(e>=-Cq)){var l=g*g+h*h,m=d*d+k*k,h=(k*l-h*m)/e,d=(g*m-d*l)/e,g=Mm.pop()||new Bq;g.arc=a;g.site=b;g.x=h+c;g.y=(g.cy=d+f)+Math.sqrt(h*h+d*d);a.circle=g;a=null;for(b=ii._;b;)if(g.y<b.y||g.y===b.y&&g.x<=b.x){if(!b.L){a=b.P;break}b=b.L}else{if(!b.R){a=b;break}b=b.R}ii.insert(a,g);a||(Sk=g)}}}}function eh(a){var b=a.circle;b&&(b.P||(Sk=b.N),ii.remove(b),Mm.push(b),Aj(b),a.circle=null)}function Dq(){Aj(this);this.edge=this.site=this.circle=null}function Nm(a){var b=Om.pop()||new Dq;return b.site=a,b}function Tk(a){eh(a);fh.remove(a);Om.push(a);Aj(a)}function Eq(a){var b=a.circle,c=b.x,d=b.cy,b=[c,d],e=a.P,f=a.N,g=[a];Tk(a);for(a=e;a.circle&&Math.abs(c-a.circle.x)<$a&&Math.abs(d-a.circle.cy)<$a;)e=a.P,g.unshift(a),Tk(a),a=e;g.unshift(a);eh(a);for(e=f;e.circle&&Math.abs(c-e.circle.x)<$a&&Math.abs(d-e.circle.cy)<$a;)f=e.N,g.push(e),Tk(e),e=f;g.push(e);eh(e);d=g.length;for(c=1;c<d;++c)e=g[c],a=g[c-1],Bj(e.edge,a.site,e.site,b);a=g[0];(e=g[d-1]).edge=gi(a.site,e.site,null,b);dh(a);dh(e)}function Fq(a){for(var b,c,d,e,f=a[0],g=a[1],h=fh._;h;)if((d=Pm(h,g)-f)>$a)h=h.L;else{var k=h;e=g;var l=k.N;l?e=Pm(l,e):(k=k.site,e=k[1]===e?k[0]:1/0);if(!((e=f-e)>$a)){d>-$a?(b=h.P,c=h):e>-$a?(b=h,c=h.N):b=c=h;break}if(!h.R){b=h;break}h=h.R}Mc[a.index]={site:a,halfedges:[]};!0;d=Nm(a);if(fh.insert(b,d),b||c){if(b===c)return eh(b),c=Nm(b.site),fh.insert(d,c),d.edge=c.edge=gi(b.site,d.site),dh(b),void dh(c);if(c){eh(b);eh(c);f=b.site;h=f[0];e=f[1];var k=a[0]-h,l=a[1]-e,g=c.site,m=g[0]-h,n=g[1]-e,p=2*(k*n-l*m),q=k*k+l*l,r=m*m+n*n,h=[(n*q-l*r)/p+h,(k*r-m*q)/p+e];Bj(c.edge,f,g,h);d.edge=gi(f,a,null,h);c.edge=gi(a,g,null,h);dh(b);dh(c)}else d.edge=gi(b.site,d.site)}}function Pm(a,b){var c=a.site,d=c[0],e=c[1],f=e-b;if(!f)return d;var g=a.P;if(!g)return-1/0;var g=(c=g.site)[0],c=c[1],h=c-b;if(!h)return g;var k=g-d,l=1/f-1/h,m=k/h;return l?(-m+Math.sqrt(m*m-2*l*(k*k/(-2*h)-c+h/2+e-f/2)))/l+d:(d+g)/2}function Gq(a,b){return b[1]-a[1]||b[0]-a[0]}function Uk(a,b){var c,d,e,f=a.sort(Gq).pop();hc=[];Mc=Array(a.length);fh=new zj;for(ii=new zj;;)if(e=Sk,f&&(!e||f[1]<e.y||f[1]===e.y&&f[0]<e.x))f[0]===c&&f[1]===d||(Fq(f),c=f[0],d=f[1]),f=a.pop();else{if(!e)break;Eq(e.arc)}if(function(){for(var a,b,c,d,e=0,f=Mc.length;e<f;++e)if((a=Mc[e])&&(d=(b=a.halfedges).length)){var g=Array(d),h=Array(d);for(c=0;c<d;++c)g[c]=c,h[c]=Aq(a,hc[b[c]]);g.sort(function(a,b){return h[b]-h[a]});for(c=0;c<d;++c)h[c]=b[g[c]];for(c=0;c<d;++c)b[c]=h[c]}}(),b)c=+b[0][0],d=+b[0][1],e=+b[1][0],f=+b[1][1],!function(a,b,c,d){for(var e,f=hc.length;f--;)zq(e=hc[f],a,b,c,d)&&yq(e,a,b,c,d)&&(Math.abs(e[0][0]-e[1][0])>$a||Math.abs(e[0][1]-e[1][1])>$a)||delete hc[f]}(c,d,e,f),function(a,b,c,d){var e,f,g,h,k,l,m,n,p,q,r,t=Mc.length,u=!0;for(e=0;e<t;++e)if(f=Mc[e]){g=f.site;for(h=(k=f.halfedges).length;h--;)hc[k[h]]||k.splice(h,1);h=0;for(l=k.length;h<l;)n=hc[k[h]],q=(p=n[+(n.left===f.site)])[0],r=p[1],n=(m=Lm(f,hc[k[++h%l]]))[0],m=m[1],(Math.abs(q-n)>$a||Math.abs(r-m)>$a)&&(k.splice(h,0,hc.push(hi(g,p,Math.abs(q-a)<$a&&d-r>$a?[a,Math.abs(n-a)<$a?m:d]:Math.abs(r-d)<$a&&c-q>$a?[Math.abs(m-d)<$a?n:c,d]:Math.abs(q-c)<$a&&r-b>$a?[c,Math.abs(n-c)<$a?m:b]:Math.abs(r-b)<$a&&q-a>$a?[Math.abs(m-b)<$a?n:a,b]:null))-1),++l);l&&(u=!1)}if(u){var v,w,Ia;h=1/0;e=0;for(u=null;e<t;++e)(f=Mc[e])&&(Ia=(v=(g=f.site)[0]-a)*v+(w=g[1]-b)*w)<h&&(h=Ia,u=f);u&&(e=[a,b],a=[a,d],d=[c,d],b=[c,b],u.halfedges.push(hc.push(hi(g=u.site,e,a))-1,hc.push(hi(g,a,d))-1,hc.push(hi(g,d,b))-1,hc.push(hi(g,b,e))-1))}for(e=0;e<t;++e)(f=Mc[e])&&(f.halfedges.length||delete Mc[e])}(c,d,e,f);this.edges=hc;this.cells=Mc;fh=ii=hc=Mc=null}function Cj(a){return function(){return a}}function Hq(a,b,c){this.target=a;this.type=b;this.transform=c}function He(a,b,c){this.k=a;this.x=b;this.y=c}function Qm(a){return a.__zoom||Dj}function ji(){a.event.preventDefault();a.event.stopImmediatePropagation()}function Iq(){return!a.event.button}function Jq(){var a,b,c=this;return c instanceof SVGElement?(a=(c=c.ownerSVGElement||c).width.baseVal.value,b=c.height.baseVal.value):(a=c.clientWidth,b=c.clientHeight),[[0,0],[a,b]]}function Rm(){return this.__zoom||Dj}function Kq(){return-a.event.deltaY*(a.event.deltaMode?120:1)/500}function Lq(){return"ontouchstart"in this}function Mq(a,b,c){var d=a.invertX(b[0][0])-c[0][0],e=a.invertX(b[1][0])-c[1][0],f=a.invertY(b[0][1])-c[0][1];b=a.invertY(b[1][1])-c[1][1];return a.translate(e>d?(d+e)/2:Math.min(0,d)||Math.max(0,e),b>f?(f+b)/2:Math.min(0,f)||Math.max(0,b))}var Sm=d(b),eg=Sm.right,Nq=Sm.left,Tm=Array.prototype,Oq=Tm.slice,Pq=Tm.map,Wj=Math.sqrt(50),Xj=Math.sqrt(10),Yj=Math.sqrt(2),Zj=Array.prototype.slice,Ap={value:function(){}};M.prototype=D.prototype={constructor:M,on:function(a,b){var c,d=this._,e=(a+"").trim().split(/^|\s+/).map(function(a){var b="",c=a.indexOf(".");if(0<=c&&(b=a.slice(c+1),a=a.slice(0,c)),a&&!d.hasOwnProperty(a))throw Error("unknown type: "+a);return{type:a,name:b}}),f=-1,g=e.length;if(!(2>arguments.length)){if(null!=b&&"function"!=typeof b)throw Error("invalid callback: "+b);for(;++f<g;)if(c=(a=e[f]).type)d[c]=V(d[c],a.name,b);else if(null==b)for(c in d)d[c]=V(d[c],a.name,null);return this}for(;++f<g;)if((c=(a=e[f]).type)&&(c=N(d[c],a.name)))return c},copy:function(){var a={},b=this._,c;for(c in b)a[c]=b[c].slice();return new M(a)},call:function(a,b){if(0<(c=arguments.length-2))for(var c,d,e=Array(c),f=0;f<c;++f)e[f]=arguments[f+2];if(!this._.hasOwnProperty(a))throw Error("unknown type: "+a);f=0;for(c=(d=this._[a]).length;f<c;++f)d[f].value.apply(b,e)},apply:function(a,b,c){if(!this._.hasOwnProperty(a))throw Error("unknown type: "+a);a=this._[a];for(var d=0,e=a.length;d<e;++d)a[d].value.apply(b,c)}};var ak={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"},Um=function(a){return function(){return this.matches(a)}};if("undefined"!=typeof document){var ki=document.documentElement;if(!ki.matches)var Qq=ki.webkitMatchesSelector||ki.msMatchesSelector||ki.mozMatchesSelector||ki.oMatchesSelector,Um=function(a){return function(){return Qq.call(this,a)}}}var Vk=Um;Z.prototype={constructor:Z,appendChild:function(a){return this._parent.insertBefore(a,this._next)},insertBefore:function(a,b){return this._parent.insertBefore(a,b)},querySelector:function(a){return this._parent.querySelector(a)},querySelectorAll:function(a){return this._parent.querySelectorAll(a)}};ka.prototype={add:function(a){0>this._names.indexOf(a)&&(this._names.push(a),this._node.setAttribute("class",this._names.join(" ")))},remove:function(a){a=this._names.indexOf(a);0<=a&&(this._names.splice(a,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(a){return 0<=this._names.indexOf(a)}};var El={};(a.event=null,"undefined"!=typeof document)&&("onmouseenter"in document.documentElement||(El={mouseenter:"mouseover",mouseleave:"mouseout"}));var bk=[null];wa.prototype=Ma.prototype={constructor:wa,select:function(a){"function"!=typeof a&&(a=ba(a));for(var b=this._groups,c=b.length,d=Array(c),e=0;e<c;++e)for(var f,g,h=b[e],k=h.length,l=d[e]=Array(k),m=0;m<k;++m)(f=h[m])&&(g=a.call(f,f.__data__,m,h))&&("__data__"in f&&(g.__data__=f.__data__),l[m]=g);return new wa(d,this._parents)},selectAll:function(a){"function"!=typeof a&&(a=Na(a));for(var b=this._groups,c=b.length,d=[],e=[],f=0;f<c;++f)for(var g,h=b[f],k=h.length,l=0;l<k;++l)(g=h[l])&&(d.push(a.call(g,g.__data__,l,h)),e.push(g));return new wa(d,e)},filter:function(a){"function"!=typeof a&&(a=Vk(a));for(var b=this._groups,c=b.length,d=Array(c),e=0;e<c;++e)for(var f,g=b[e],h=g.length,k=d[e]=[],l=0;l<h;++l)(f=g[l])&&a.call(f,f.__data__,l,g)&&k.push(f);return new wa(d,this._parents)},data:function(a,b){if(!a)return r=Array(this.size()),m=-1,this.each(function(a){r[++m]=a}),r;var c,d=b?da:ta,e=this._parents,f=this._groups;"function"!=typeof a&&(c=a,a=function(){return c});for(var g=f.length,h=Array(g),k=Array(g),l=Array(g),m=0;m<g;++m){var n=e[m],p=f[m],q=p.length,r=a.call(n,n&&n.__data__,m,e),t=r.length,u=k[m]=Array(t),v=h[m]=Array(t);d(n,p,u,v,l[m]=Array(q),r,b);for(var w=q=0;q<t;++q)if(n=u[q]){for(q>=w&&(w=q+1);!(p=v[w])&&++w<t;);n._next=p||null}}return(h=new wa(h,e))._enter=k,h._exit=l,h},enter:function(){return new wa(this._enter||this._groups.map(R),this._parents)},exit:function(){return new wa(this._exit||this._groups.map(R),this._parents)},merge:function(a){var b=this._groups;a=a._groups;for(var c=b.length,d=Math.min(c,a.length),e=Array(c),f=0;f<d;++f)for(var g,h=b[f],k=a[f],l=h.length,m=e[f]=Array(l),n=0;n<l;++n)(g=h[n]||k[n])&&(m[n]=g);for(;f<c;++f)e[f]=b[f];return new wa(e,this._parents)},order:function(){for(var a=this._groups,b=-1,c=a.length;++b<c;)for(var d,e=a[b],f=e.length-1,g=e[f];0<=--f;)(d=e[f])&&(g&&g!==d.nextSibling&&g.parentNode.insertBefore(d,g),g=d);return this},sort:function(a){function b(b,c){return b&&c?a(b.__data__,c.__data__):!b-!c}a||(a=Y);for(var c=this._groups,d=c.length,e=Array(d),f=0;f<d;++f){for(var g,h=c[f],k=h.length,l=e[f]=Array(k),m=0;m<k;++m)(g=h[m])&&(l[m]=g);l.sort(b)}return(new wa(e,this._parents)).order()},call:function(){var a=arguments[0];return arguments[0]=this,a.apply(null,arguments),this},nodes:function(){var a=Array(this.size()),b=-1;return this.each(function(){a[++b]=this}),a},node:function(){for(var a=this._groups,b=0,c=a.length;b<c;++b)for(var d=a[b],e=0,f=d.length;e<f;++e){var g=d[e];if(g)return g}return null},size:function(){var a=0;return this.each(function(){++a}),a},empty:function(){return!this.node()},each:function(a){for(var b=this._groups,c=0,d=b.length;c<d;++c)for(var e,f=b[c],g=0,h=f.length;g<h;++g)(e=f[g])&&a.call(e,e.__data__,g,f);return this},attr:function(a,b){var c=Q(a);if(2>arguments.length){var d=this.node();return c.local?d.getAttributeNS(c.space,c.local):d.getAttribute(c)}return this.each((null==b?c.local?function(a){return function(){this.removeAttributeNS(a.space,a.local)}}:function(a){return function(){this.removeAttribute(a)}}:"function"==typeof b?c.local?function(a,b){return function(){var c=b.apply(this,arguments);null==c?this.removeAttributeNS(a.space,a.local):this.setAttributeNS(a.space,a.local,c)}}:function(a,b){return function(){var c=b.apply(this,arguments);null==c?this.removeAttribute(a):this.setAttribute(a,c)}}:c.local?function(a,b){return function(){this.setAttributeNS(a.space,a.local,b)}}:function(a,b){return function(){this.setAttribute(a,b)}})(c,b))},style:function(a,b,c){return 1<arguments.length?this.each((null==b?function(a){return function(){this.style.removeProperty(a)}}:"function"==typeof b?function(a,b,c){return function(){var d=b.apply(this,arguments);null==d?this.style.removeProperty(a):this.style.setProperty(a,d,c)}}:function(a,b,c){return function(){this.style.setProperty(a,b,c)}})(a,b,null==c?"":c)):ga(this.node(),a)},property:function(a,b){return 1<arguments.length?this.each((null==b?function(a){return function(){delete this[a]}}:"function"==typeof b?function(a,b){return function(){var c=b.apply(this,arguments);null==c?delete this[a]:this[a]=c}}:function(a,b){return function(){this[a]=b}})(a,b)):this.node()[a]},classed:function(a,b){var c=(a+"").trim().split(/^|\s+/);if(2>arguments.length){for(var d=ja(this.node()),e=-1,f=c.length;++e<f;)if(!d.contains(c[e]))return!1;return!0}return this.each(("function"==typeof b?function(a,b){return function(){(b.apply(this,arguments)?ha:na)(this,a)}}:b?function(a){return function(){ha(this,a)}}:function(a){return function(){na(this,a)}})(c,b))},text:function(a){return arguments.length?this.each(null==a?Oa:("function"==typeof a?function(a){return function(){var b=a.apply(this,arguments);this.textContent=null==b?"":b}}:function(a){return function(){this.textContent=a}})(a)):this.node().textContent},html:function(a){return arguments.length?this.each(null==a?Ea:("function"==typeof a?function(a){return function(){var b=a.apply(this,arguments);this.innerHTML=null==b?"":b}}:function(a){return function(){this.innerHTML=a}})(a)):this.node().innerHTML},raise:function(){return this.each(X)},lower:function(){return this.each(Hb)},append:function(a){var b="function"==typeof a?a:J(a);return this.select(function(){return this.appendChild(b.apply(this,arguments))})},insert:function(a,b){var c="function"==typeof a?a:J(a),d=null==b?ua:"function"==typeof b?b:ba(b);return this.select(function(){return this.insertBefore(c.apply(this,arguments),d.apply(this,arguments)||null)})},remove:function(){return this.each(z)},clone:function(a){return this.select(a?fa:la)},datum:function(a){return arguments.length?this.property("__data__",a):this.node().__data__},on:function(a,b,c){var d,e,f=function(a){return a.trim().split(/^|\s+/).map(function(a){var b="",c=a.indexOf(".");return 0<=c&&(b=a.slice(c+1),a=a.slice(0,c)),{type:a,name:b}})}(a+""),g=f.length;if(!(2>arguments.length)){h=b?Ua:nh;null==c&&(c=!1);for(d=0;d<g;++d)this.each(h(f[d],b,c));return this}var h=this.node().__on;if(h)for(var k,l=0,m=h.length;l<m;++l)for(d=0,k=h[l];d<g;++d)if((e=f[d]).type===k.type&&e.name===k.name)return k.value},dispatch:function(a,b){return this.each(("function"==typeof b?function(a,b){return function(){return za(this,a,b.apply(this,arguments))}}:function(a,b){return function(){return za(this,a,b)}})(a,b))}};var Bp=0;ud.prototype=Je.prototype={constructor:ud,get:function(a){for(var b=this._;!(b in a);)if(!(a=a.parentNode))return;return a[b]},set:function(a,b){return a[this._]=b},remove:function(a){return this._ in a&&delete a[this._]},toString:function(){return this._}};lb.prototype.on=function(){var a=this._.on.apply(this._,arguments);return a===this._?this:a};var Cp=/^#([0-9a-f]{3})$/,Dp=/^#([0-9a-f]{6})$/,Ep=/^rgb\(\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*\)$/,Fp=/^rgb\(\s*([+-]?\d*\.?\d+(?:[eE][+-]?\d+)?)%\s*,\s*([+-]?\d*\.?\d+(?:[eE][+-]?\d+)?)%\s*,\s*([+-]?\d*\.?\d+(?:[eE][+-]?\d+)?)%\s*\)$/,Gp=/^rgba\(\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*,\s*([+-]?\d*\.?\d+(?:[eE][+-]?\d+)?)\s*\)$/,Hp=/^rgba\(\s*([+-]?\d*\.?\d+(?:[eE][+-]?\d+)?)%\s*,\s*([+-]?\d*\.?\d+(?:[eE][+-]?\d+)?)%\s*,\s*([+-]?\d*\.?\d+(?:[eE][+-]?\d+)?)%\s*,\s*([+-]?\d*\.?\d+(?:[eE][+-]?\d+)?)\s*\)$/,Ip=/^hsl\(\s*([+-]?\d*\.?\d+(?:[eE][+-]?\d+)?)\s*,\s*([+-]?\d*\.?\d+(?:[eE][+-]?\d+)?)%\s*,\s*([+-]?\d*\.?\d+(?:[eE][+-]?\d+)?)%\s*\)$/,Jp=/^hsla\(\s*([+-]?\d*\.?\d+(?:[eE][+-]?\d+)?)\s*,\s*([+-]?\d*\.?\d+(?:[eE][+-]?\d+)?)%\s*,\s*([+-]?\d*\.?\d+(?:[eE][+-]?\d+)?)%\s*,\s*([+-]?\d*\.?\d+(?:[eE][+-]?\d+)?)\s*\)$/,Fl={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};cd(uc,Vb,{displayable:function(){return this.rgb().displayable()},hex:function(){return this.rgb().hex()},toString:function(){return this.rgb()+""}});cd(fb,dd,eb(uc,{brighter:function(a){return a=null==a?1/.7:Math.pow(1/.7,a),new fb(this.r*a,this.g*a,this.b*a,this.opacity)},darker:function(a){return a=null==a?.7:Math.pow(.7,a),new fb(this.r*a,this.g*a,this.b*a,this.opacity)},rgb:function(){return this},displayable:function(){return 0<=this.r&&255>=this.r&&0<=this.g&&255>=this.g&&0<=this.b&&255>=this.b&&0<=this.opacity&&1>=this.opacity},hex:function(){return"#"+yf(this.r)+yf(this.g)+yf(this.b)},toString:function(){var a=this.opacity;return(1===(a=isNaN(a)?1:Math.max(0,Math.min(1,a)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===a?")":", "+a+")")}}));cd(Ob,Yd,eb(uc,{brighter:function(a){return a=null==a?1/.7:Math.pow(1/.7,a),new Ob(this.h,this.s,this.l*a,this.opacity)},darker:function(a){return a=null==a?.7:Math.pow(.7,a),new Ob(this.h,this.s,this.l*a,this.opacity)},rgb:function(){var a=this.h%360+360*(0>this.h),b=isNaN(a)||isNaN(this.s)?0:this.s,c=this.l,b=c+(.5>c?c:1-c)*b,c=2*c-b;return new fb(wd(240<=a?a-240:a+120,c,b),wd(a,c,b),wd(120>a?a+240:a-120,c,b),this.opacity)},displayable:function(){return(0<=this.s&&1>=this.s||isNaN(this.s))&&0<=this.l&&1>=this.l&&0<=this.opacity&&1>=this.opacity}}));var Gl=Math.PI/180,Jl=180/Math.PI,Il=4/29,Rg=6/29,Hl=3*Rg*Rg,Kp=Rg*Rg*Rg;cd(Yb,Rc,eb(uc,{brighter:function(a){return new Yb(this.l+18*(null==a?1:a),this.a,this.b,this.opacity)},darker:function(a){return new Yb(this.l-18*(null==a?1:a),this.a,this.b,this.opacity)},rgb:function(){var a=(this.l+16)/116,b=isNaN(this.a)?a:a+this.a/500,c=isNaN(this.b)?a:a-this.b/200;return new fb(ed(3.1338561*(b=.96422*xd(b))-1.6168667*(a=1*xd(a))-.4906146*(c=.82521*xd(c))),ed(-.9787684*b+1.9161415*a+.033454*c),ed(.0719453*b-.2289914*a+1.4052427*c),this.opacity)}}));cd(sb,Me,eb(uc,{brighter:function(a){return new sb(this.h,this.c,this.l+18*(null==a?1:a),this.opacity)},darker:function(a){return new sb(this.h,this.c,this.l-18*(null==a?1:a),this.opacity)},rgb:function(){return Xb(this).rgb()}}));var Kl=1.78277*-.29227-.1347134789;cd(Ba,sa,eb(uc,{brighter:function(a){return a=null==a?1/.7:Math.pow(1/.7,a),new Ba(this.h,this.s,this.l*a,this.opacity)},darker:function(a){return a=null==a?.7:Math.pow(.7,a),new Ba(this.h,this.s,this.l*a,this.opacity)},rgb:function(){var a=isNaN(this.h)?0:(this.h+120)*Gl,b=+this.l,c=isNaN(this.s)?0:this.s*b*(1-b),d=Math.cos(a),a=Math.sin(a);return new fb(255*(b+c*(-.14861*d+1.78277*a)),255*(b+c*(-.29227*d+-.90649*a)),255*(b+1.97294*c*d),this.opacity)}}));var Ih=function ia(a){function b(a,b){var d=c((a=dd(a)).r,(b=dd(b)).r),e=c(a.g,b.g),f=c(a.b,b.b),g=mb(a.opacity,b.opacity);return function(b){return a.r=d(b),a.g=e(b),a.b=f(b),a.opacity=g(b),a+""}}var c=Zb(a);return b.gamma=ia,b}(1),mm=wi(Xa),Rq=wi(xa),ck=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,dk=new RegExp(ck.source,"g"),li,Wk,Vm,Ej,Ll=180/Math.PI,Xk={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1},Wm=zi(function(a){return"none"===a?Xk:(li||(li=document.createElement("DIV"),Wk=document.documentElement,Vm=document.defaultView),li.style.transform=a,a=Vm.getComputedStyle(Wk.appendChild(li),null).getPropertyValue("transform"),Wk.removeChild(li),yi(+(a=a.slice(7,-1).split(","))[0],+a[1],+a[2],+a[3],+a[4],+a[5]))},"px, ","px)","deg)"),Xm=zi(function(a){return null==a?Xk:(Ej||(Ej=document.createElementNS("http://www.w3.org/2000/svg","g")),Ej.setAttribute("transform",a),(a=Ej.transform.baseVal.consolidate())?yi((a=a.matrix).a,a.b,a.c,a.d,a.e,a.f):Xk)},", ",")",")"),Jh=Math.SQRT2,Sq=nb(fd),Tq=nb(mb),Uq=Ra(fd),Vq=Ra(mb),Wq=Ne(fd),Fj=Ne(mb),Si,Mh,Sg=0,Lh=0,Nh=0,Ti=0,cg=0,Ri=0,Kh="object"==typeof performance&&performance.now?performance:Date,Ml="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(a){setTimeout(a,17)};Tc.prototype=gd.prototype={constructor:Tc,restart:function(a,b,c){if("function"!=typeof a)throw new TypeError("callback is not a function");c=(null==c?Zd():+c)+(null==b?0:+b);this._next||Mh===this||(Mh?Mh._next=this:Si=this,Mh=this);this._call=a;this._time=c;be()},stop:function(){this._call&&(this._call=null,this._time=1/0,be())}};var Lp=D("start","end","interrupt"),Mp=[],Xq=Ma.prototype.constructor,Ym=0,gh=Ma.prototype;Ha.prototype=Cf.prototype={constructor:Ha,select:function(a){var b=this._name,c=this._id;"function"!=typeof a&&(a=ba(a));for(var d=this._groups,e=d.length,f=Array(e),g=0;g<e;++g)for(var h,k,l=d[g],m=l.length,n=f[g]=Array(m),p=0;p<m;++p)(h=l[p])&&(k=a.call(h,h.__data__,p,l))&&("__data__"in h&&(k.__data__=h.__data__),n[p]=k,yd(n[p],b,c,p,n,ac(h,c)));return new Ha(f,this._parents,b,c)},selectAll:function(a){var b=this._name,c=this._id;"function"!=typeof a&&(a=Na(a));for(var d=this._groups,e=d.length,f=[],g=[],h=0;h<e;++h)for(var k,l=d[h],m=l.length,n=0;n<m;++n)if(k=l[n]){for(var p,q=a.call(k,k.__data__,n,l),r=ac(k,c),t=0,u=q.length;t<u;++t)(p=q[t])&&yd(p,b,c,t,q,r);f.push(q);g.push(k)}return new Ha(f,g,b,c)},filter:function(a){"function"!=typeof a&&(a=Vk(a));for(var b=this._groups,c=b.length,d=Array(c),e=0;e<c;++e)for(var f,g=b[e],h=g.length,k=d[e]=[],l=0;l<h;++l)(f=g[l])&&a.call(f,f.__data__,l,g)&&k.push(f);return new Ha(d,this._parents,this._name,this._id)},merge:function(a){if(a._id!==this._id)throw Error();var b=this._groups;a=a._groups;for(var c=b.length,d=Math.min(c,a.length),e=Array(c),f=0;f<d;++f)for(var g,h=b[f],k=a[f],l=h.length,m=e[f]=Array(l),n=0;n<l;++n)(g=h[n]||k[n])&&(m[n]=g);for(;f<c;++f)e[f]=b[f];return new Ha(e,this._parents,this._name,this._id)},selection:function(){return new Xq(this._groups,this._parents)},transition:function(){for(var a=this._name,b=this._id,c=++Ym,d=this._groups,e=d.length,f=0;f<e;++f)for(var g,h=d[f],k=h.length,l=0;l<k;++l)if(g=h[l]){var m=ac(g,b);yd(g,a,c,l,h,{time:m.time+m.delay+m.duration,delay:0,duration:m.duration,ease:m.ease})}return new Ha(d,this._parents,a,c)},call:gh.call,nodes:gh.nodes,node:gh.node,size:gh.size,empty:gh.empty,each:gh.each,on:function(a,b){var c=this._id;return 2>arguments.length?ac(this.node(),c).on.on(a):this.each(function(a,b,c){var d,e,f=function(a){return(a+"").trim().split(/^|\s+/).every(function(a){var b=a.indexOf(".");return 0<=b&&(a=a.slice(0,b)),!a||"start"===a})}(b)?ce:Fc;return function(){var g=f(this,a),h=g.on;h!==d&&(e=(d=h).copy()).on(b,c);g.on=e}}(c,a,b))},attr:function(a,b){var c=Q(a),d="transform"===c?Xm:Pb;return this.attrTn(a,"function"==typeof b?(c.local?function(a,b,c){var d,e,f;return function(){var g,h=c(this);if(null!=h)return(g=this.getAttributeNS(a.space,a.local))===h?null:g===d&&h===e?f:f=b(d=g,e=h);this.removeAttributeNS(a.space,a.local)}}:function(a,b,c){var d,e,f;return function(){var g,h=c(this);if(null!=h)return(g=this.getAttribute(a))===h?null:g===d&&h===e?f:f=b(d=g,e=h);this.removeAttribute(a)}})(c,d,Da(this,"attr."+a,b)):null==b?(c.local?function(a){return function(){this.removeAttributeNS(a.space,a.local)}}:function(a){return function(){this.removeAttribute(a)}})(c):(c.local?function(a,b,c){var d,e;return function(){var f=this.getAttributeNS(a.space,a.local);return f===c?null:f===d?e:e=b(d=f,c)}}:function(a,b,c){var d,e;return function(){var f=this.getAttribute(a);return f===c?null:f===d?e:e=b(d=f,c)}})(c,d,b+""))},attrTn:function(a,b){var c="attr."+a;if(2>arguments.length)return(c=this.tn(c))&&c._value;if(null==b)return this.tn(c,null);if("function"!=typeof b)throw Error();var d=Q(a);return this.tn(c,(d.local?function(a,b){function c(){var c=this,d=b.apply(c,arguments);return d&&function(b){c.setAttributeNS(a.space,a.local,d(b))}}return c._value=b,c}:function(a,b){function c(){var c=this,d=b.apply(c,arguments);return d&&function(b){c.setAttribute(a,d(b))}}return c._value=b,c})(d,b))},style:function(a,b,c){var d="transform"==(a+="")?Wm:Pb;return null==b?this.styleTn(a,function(a,b){var c,d,e;return function(){var f=ga(this,a),g=(this.style.removeProperty(a),ga(this,a));return f===g?null:f===c&&g===d?e:e=b(c=f,d=g)}}(a,d)).on("end.style."+a,function(a){return function(){this.style.removeProperty(a)}}(a)):this.styleTn(a,"function"==typeof b?function(a,b,c){var d,e,f;return function(){var g=ga(this,a),h=c(this);return null==h&&(this.style.removeProperty(a),h=ga(this,a)),g===h?null:g===d&&h===e?f:f=b(d=g,e=h)}}(a,d,Da(this,"style."+a,b)):function(a,b,c){var d,e;return function(){var f=ga(this,a);return f===c?null:f===d?e:e=b(d=f,c)}}(a,d,b+""),c)},styleTn:function(a,b,c){var d="style."+(a+="");if(2>arguments.length)return(d=this.tn(d))&&d._value;if(null==b)return this.tn(d,null);if("function"!=typeof b)throw Error();return this.tn(d,function(a,b,c){function d(){var d=this,e=b.apply(d,arguments);return e&&function(b){d.style.setProperty(a,e(b),c)}}return d._value=b,d}(a,b,null==c?"":c))},text:function(a){return this.tn("text","function"==typeof a?function(a){return function(){var b=a(this);this.textContent=null==b?"":b}}(Da(this,"text",a)):function(a){return function(){this.textContent=a}}(null==a?"":a+""))},remove:function(){return this.on("end.remove",(a=this._id,function(){var b=this.parentNode,c;for(c in this.__transition)if(+c!==a)return;b&&b.removeChild(this)}));var a},tn:function(a,b){var c=this._id;if(a+="",2>arguments.length){for(var d=ac(this.node(),c).tn,e=0,f=d.length;e<f;++e)if((c=d[e]).name===a)return c.value;return null}return this.each((null==b?function(a,b){var c,d;return function(){var e=Fc(this,a),f=e.tn;if(f!==c)for(var g=0,f=(d=c=f).length;g<f;++g)if(d[g].name===b){(d=d.slice()).splice(g,1);break}e.tn=d}}:function(a,b,c){var d,e;if("function"!=typeof c)throw Error();return function(){var f=Fc(this,a),g=f.tn;if(g!==d){e=(d=g).slice();for(var g={name:b,value:c},h=0,k=e.length;h<k;++h)if(e[h].name===b){e[h]=g;break}h===k&&e.push(g)}f.tn=e}})(c,a,b))},delay:function(a){var b=this._id;return arguments.length?this.each(("function"==typeof a?function(a,b){return function(){ce(this,a).delay=+b.apply(this,arguments)}}:function(a,b){return b=+b,function(){ce(this,a).delay=b}})(b,a)):ac(this.node(),b).delay},duration:function(a){var b=this._id;return arguments.length?this.each(("function"==typeof a?function(a,b){return function(){Fc(this,a).duration=+b.apply(this,arguments)}}:function(a,b){return b=+b,function(){Fc(this,a).duration=b}})(b,a)):ac(this.node(),b).duration},ease:function(a){var b=this._id;return arguments.length?this.each(function(a,b){if("function"!=typeof b)throw Error();return function(){Fc(this,a).ease=b}}(b,a)):ac(this.node(),b).ease}};var Yq=function oa(a){function b(b){return Math.pow(b,a)}return a=+a,b.exponent=oa,b}(3),Zq=function Fa(a){function b(b){return 1-Math.pow(1-b,a)}return a=+a,b.exponent=Fa,b}(3),Zm=function bb(a){function b(b){return(1>=(b*=2)?Math.pow(b,a):2-Math.pow(2-b,a))/2}return a=+a,b.exponent=bb,b}(3),Nl=Math.PI,$m=Nl/2,ek=4/11,Op=6/11,Np=8/11,Qp=9/11,Pp=10/11,Rp=21/22,Ui=1/ek/ek,$q=function Ja(a){function b(b){return b*b*((a+1)*b-a)}return a=+a,b.overshoot=Ja,b}(1.70158),ar=function Nb(a){function b(b){return--b*b*((a+1)*b+a)+1}return a=+a,b.overshoot=Nb,b}(1.70158),an=function lf(a){function b(b){return(1>(b*=2)?b*b*((a+1)*b-a):(b-=2)*b*((a+1)*b+a)+2)/2}return a=+a,b.overshoot=lf,b}(1.70158),hh=2*Math.PI,br=function ye(a,b){function c(c){return a*Math.pow(2,10*--c)*Math.sin((d-c)/b)}var d=Math.asin(1/(a=Math.max(1,a)))*(b/=hh);return c.amplitude=function(a){return ye(a,b*hh)},c.period=function(b){return ye(a,b)},c}(1,.3),bn=function mf(a,b){function c(c){return 1-a*Math.pow(2,-10*(c=+c))*Math.sin((c+d)/b)}var d=Math.asin(1/(a=Math.max(1,a)))*(b/=hh);return c.amplitude=function(a){return mf(a,b*hh)},c.period=function(b){return mf(a,b)},c}(1,.3),cr=function La(a,b){function c(c){return(0>(c=2*c-1)?a*Math.pow(2,10*c)*Math.sin((d-c)/b):2-a*Math.pow(2,-10*c)*Math.sin((d+c)/b))/2}var d=Math.asin(1/(a=Math.max(1,a)))*(b/=hh);return c.amplitude=function(a){return La(a,b*hh)},c.period=function(b){return La(a,b)},c}(1,.3),Yk={time:null,delay:0,duration:250,ease:zd};Ma.prototype.interrupt=function(a){return this.each(function(){Vc(this,a)})};Ma.prototype.transition=function(a){var b,c;a instanceof Ha?(b=a._id,a=a._name):(b=++Ym,(c=Yk).time=Zd(),a=null==a?null:a+"");for(var d=this._groups,e=d.length,f=0;f<e;++f)for(var g,h=d[f],k=h.length,l=0;l<k;++l)if(g=h[l]){var m=g,n=a,p=b,q=l,r=h,t;if(!(t=c))a:{t=b;for(var u=void 0;!(u=g.__transition)||!(u=u[t]);)if(!(g=g.parentNode)){t=(Yk.time=Zd(),Yk);break a}t=u}yd(m,n,p,q,r,t)}return new Ha(d,this._parents,a,b)};var dr=[null],Ol={name:"drag"},fk={name:"space"},Tg={name:"handle"},Ug={name:"center"},Xi={name:"x",handles:["e","w"].map(jd),input:function(a,b){return a&&[[a[0],b[0][1]],[a[1],b[1][1]]]},output:function(a){return a&&[a[0][0],a[1][0]]}},Wi={name:"y",handles:["n","s"].map(jd),input:function(a,b){return a&&[[b[0][0],a[0]],[b[1][0],a[1]]]},output:function(a){return a&&[a[0][1],a[1][1]]}},er={name:"xy",handles:"n e s w nw ne se sw".split(" ").map(jd),input:function(a){return a},output:function(a){return a}},Ae={overlay:"crosshair",selection:"move",n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Pl={e:"w",w:"e",nw:"ne",ne:"nw",se:"sw",sw:"se"},Ql={n:"s",s:"n",nw:"sw",ne:"se",se:"ne",sw:"nw"},Yp={overlay:1,selection:1,n:null,e:1,s:null,w:-1,nw:-1,ne:1,se:1,sw:-1},Zp={overlay:1,selection:1,n:-1,e:null,s:1,w:null,nw:-1,ne:-1,se:1,sw:1},cn=Math.cos,dn=Math.sin,en=Math.PI,Gj=en/2,fn=2*en,gn=Math.max,fr=Array.prototype.slice,Zk=Math.PI,$k=2*Zk,gr=$k-1E-6;Bd.prototype=wc.prototype={constructor:Bd,moveTo:function(a,b){this._+="M"+(this._x0=this._x1=+a)+","+(this._y0=this._y1=+b)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(a,b){this._+="L"+(this._x1=+a)+","+(this._y1=+b)},quadraticCurveTo:function(a,b,c,d){this._+="Q"+ +a+","+ +b+","+(this._x1=+c)+","+(this._y1=+d)},bezierCurveTo:function(a,b,c,d,e,f){this._+="C"+ +a+","+ +b+","+ +c+","+ +d+","+(this._x1=+e)+","+(this._y1=+f)},arcTo:function(a,b,c,d,e){a=+a;b=+b;c=+c;d=+d;e=+e;var f=this._x1,g=this._y1,h=c-a,k=d-b,l=f-a,m=g-b,n=l*l+m*m;if(0>e)throw Error("negative radius: "+e);if(null===this._x1)this._+="M"+(this._x1=a)+","+(this._y1=b);else if(1E-6<n)if(1E-6<Math.abs(m*h-k*l)&&e){c-=f;d-=g;var p=h*h+k*k,g=Math.sqrt(p),f=Math.sqrt(n),n=e*Math.tan((Zk-Math.acos((p+n-(c*c+d*d))/(2*g*f)))/2),f=n/f,n=n/g;1E-6<Math.abs(f-1)&&(this._+="L"+(a+f*l)+","+(b+f*m));this._+="A"+e+","+e+",0,0,"+ +(m*c>l*d)+","+(this._x1=a+n*h)+","+(this._y1=b+n*k)}else this._+="L"+(this._x1=a)+","+(this._y1=b)},arc:function(a,b,c,d,e,f){a=+a;b=+b;var g=(c=+c)*Math.cos(d),h=c*Math.sin(d),k=a+g,l=b+h,m=1^f;d=f?d-e:e-d;if(0>c)throw Error("negative radius: "+c);null===this._x1?this._+="M"+k+","+l:(1E-6<Math.abs(this._x1-k)||1E-6<Math.abs(this._y1-l))&&(this._+="L"+k+","+l);c&&(0>d&&(d=d%$k+$k),d>gr?this._+="A"+c+","+c+",0,1,"+m+","+(a-g)+","+(b-h)+"A"+c+","+c+",0,1,"+m+","+(this._x1=k)+","+(this._y1=l):1E-6<d&&(this._+="A"+c+","+c+",0,"+ +(d>=Zk)+","+m+","+(this._x1=a+c*Math.cos(e))+","+(this._y1=b+c*Math.sin(e))))},rect:function(a,b,c,d){this._+="M"+(this._x0=this._x1=+a)+","+(this._y0=this._y1=+b)+"h"+ +c+"v"+ +d+"h"+-c+"Z"},toString:function(){return this._}};Cd.prototype=cc.prototype={constructor:Cd,has:function(a){return"$"+a in this},get:function(a){return this["$"+a]},set:function(a,b){return this["$"+a]=b,this},remove:function(a){a="$"+a;return a in this&&delete this[a]},clear:function(){for(var a in this)"$"===a[0]&&delete this[a]},keys:function(){var a=[],b;for(b in this)"$"===b[0]&&a.push(b.slice(1));return a},values:function(){var a=[],b;for(b in this)"$"===b[0]&&a.push(this[b]);return a},entries:function(){var a=[],b;for(b in this)"$"===b[0]&&a.push({key:b.slice(1),value:this[b]});return a},size:function(){var a=0,b;for(b in this)"$"===b[0]&&++a;return a},empty:function(){for(var a in this)if("$"===a[0])return!1;return!0},each:function(a){for(var b in this)"$"===b[0]&&a(this[b],b.slice(1),this)}};var fg=cc.prototype;tg.prototype=rg.prototype={constructor:tg,has:fg.has,add:function(a){return this["$"+(a+="")]=a,this},remove:fg.remove,clear:fg.clear,values:fg.keys,size:fg.size,empty:fg.empty,each:fg.each};var Rl=Array.prototype.slice,Be=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]],Sl={},hk={},Hj=Jf(","),hn=Hj.parse,hr=Hj.parseRows,ir=Hj.format,jr=Hj.formatRows,Ij=Jf("\t"),jn=Ij.parse,kr=Ij.parseRows,lr=Ij.format,mr=Ij.formatRows,nr=Ue(hn),or=Ue(jn),pr=je("application/xml"),qr=je("text/html"),rr=je("image/svg+xml"),sc=Xc.prototype=vg.prototype;sc.copy=function(){var a,b,c=new vg(this._x,this._y,this._x0,this._y0,this._x1,this._y1),d=this._root;if(!d)return c;if(!d.length)return c._root=me(d),c;for(a=[{source:d,target:c._root=Array(4)}];d=a.pop();)for(var e=0;4>e;++e)(b=d.source[e])&&(b.length?a.push({source:b,target:d.target[e]=Array(4)}):d.target[e]=me(b));return c};sc.add=function(a){var b=+this._x.call(null,a),c=+this._y.call(null,a);return ke(this.cover(b,c),b,c,a)};sc.addAll=function(a){var b,c,d,e,f=a.length,g=Array(f),h=Array(f),k=1/0,l=1/0,m=-1/0,n=-1/0;for(c=0;c<f;++c)isNaN(d=+this._x.call(null,b=a[c]))||isNaN(e=+this._y.call(null,b))||(g[c]=d,h[c]=e,d<k&&(k=d),d>m&&(m=d),e<l&&(l=e),e>n&&(n=e));m<k&&(k=this._x0,m=this._x1);n<l&&(l=this._y0,n=this._y1);this.cover(k,l).cover(m,n);for(c=0;c<f;++c)ke(this,g[c],h[c],a[c]);return this};sc.cover=function(a,b){if(isNaN(a=+a)||isNaN(b=+b))return this;var c=this._x0,d=this._y0,e=this._x1,f=this._y1;if(isNaN(c))e=(c=Math.floor(a))+1,f=(d=Math.floor(b))+1;else{if(!(c>a||a>e||d>b||b>f))return this;var g,h,k=e-c,l=this._root;switch(h=(b<(d+f)/2)<<1|a<(c+e)/2){case 0:do(g=Array(4))[h]=l,l=g;while(f=d+(k*=2),a>(e=c+k)||b>f);break;case 1:do(g=Array(4))[h]=l,l=g;while(f=d+(k*=2),(c=e-k)>a||b>f);break;case 2:do(g=Array(4))[h]=l,l=g;while(d=f-(k*=2),a>(e=c+k)||d>b);break;case 3:do(g=Array(4))[h]=l,l=g;while(d=f-(k*=2),(c=e-k)>a||d>b)}this._root&&this._root.length&&(this._root=l)}return this._x0=c,this._y0=d,this._x1=e,this._y1=f,this};sc.data=function(){var a=[];return this.visit(function(b){if(!b.length){do a.push(b.data);while(b=b.next)}}),a};sc.extent=function(a){return arguments.length?this.cover(+a[0][0],+a[0][1]).cover(+a[1][0],+a[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]};sc.find=function(a,b,c){var d,e,f,g,h,k,l,m=this._x0,n=this._y0,p=this._x1,q=this._y1,r=[],t=this._root;t&&r.push(new ub(t,m,n,p,q));for(null==c?c=1/0:(m=a-c,n=b-c,p=a+c,q=b+c,c*=c);k=r.pop();)if(!(!(t=k.node)||(e=k.x0)>p||(f=k.y0)>q||(g=k.x1)<m||(h=k.y1)<n))if(t.length){var u=(e+g)/2,v=(f+h)/2;r.push(new ub(t[3],u,v,g,h),new ub(t[2],e,v,u,h),new ub(t[1],u,f,g,v),new ub(t[0],e,f,u,v));(l=(b>=v)<<1|a>=u)&&(k=r[r.length-1],r[r.length-1]=r[r.length-1-l],r[r.length-1-l]=k)}else k=a-+this._x.call(null,t.data),u=b-+this._y.call(null,t.data),k=k*k+u*u,k<c&&(d=Math.sqrt(c=k),m=a-d,n=b-d,p=a+d,q=b+d,d=t.data);return d};sc.remove=function(a){if(isNaN(f=+this._x.call(null,a))||isNaN(g=+this._y.call(null,a)))return this;var b,c,d,e,f,g,h,k,l,m,n,p,q=this._root,r=this._x0,t=this._y0,u=this._x1,v=this._y1;if(!q)return this;if(q.length)for(;;){if((l=f>=(h=(r+u)/2))?r=h:u=h,(m=g>=(k=(t+v)/2))?t=k:v=k,b=q,!(q=q[n=m<<1|l]))return this;if(!q.length)break;(b[n+1&3]||b[n+2&3]||b[n+3&3])&&(c=b,p=n)}for(;q.data!==a;)if(d=q,!(q=q.next))return this;return(e=q.next)&&delete q.next,d?(e?d.next=e:delete d.next,this):b?(e?b[n]=e:delete b[n],(q=b[0]||b[1]||b[2]||b[3])&&q===(b[3]||b[2]||b[1]||b[0])&&!q.length&&(c?c[p]=q:this._root=q),this):(this._root=e,this)};sc.removeAll=function(a){for(var b=0,c=a.length;b<c;++b)this.remove(a[b]);return this};sc.root=function(){return this._root};sc.size=function(){var a=0;return this.visit(function(b){if(!b.length){do++a;while(b=b.next)}}),a};sc.visit=function(a){var b,c,d,e,f,g=[],h=this._root;for(h&&g.push(new ub(h,this._x0,this._y0,this._x1,this._y1));b=g.pop();)if(!a(h=b.node,d=b.x0,e=b.y0,f=b.x1,b=b.y1)&&h.length){var k=(d+f)/2,l=(e+b)/2;(c=h[3])&&g.push(new ub(c,k,l,f,b));(c=h[2])&&g.push(new ub(c,d,l,k,b));(c=h[1])&&g.push(new ub(c,k,e,f,l));(c=h[0])&&g.push(new ub(c,d,e,k,l))}return this};sc.visitAfter=function(a){var b,c=[],d=[];for(this._root&&c.push(new ub(this._root,this._x0,this._y0,this._x1,this._y1));b=c.pop();){var e=b.node;if(e.length){var f,g=b.x0,h=b.y0,k=b.x1,l=b.y1,m=(g+k)/2,n=(h+l)/2;(f=e[0])&&c.push(new ub(f,g,h,m,n));(f=e[1])&&c.push(new ub(f,m,h,k,n));(f=e[2])&&c.push(new ub(f,g,n,m,l));(f=e[3])&&c.push(new ub(f,m,n,k,l))}d.push(b)}for(;b=d.pop();)a(b.node,b.x0,b.y0,b.x1,b.y1);return this};sc.x=function(a){return arguments.length?(this._x=a,this):this._x};sc.y=function(a){return arguments.length?(this._y=a,this):this._y};var sr=Math.PI*(3-Math.sqrt(5)),Ul,$p=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;ec.prototype=md.prototype;md.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(null==this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(null==this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var Vl={"%":function(a,b){return(100*a).toFixed(b)},b:function(a){return Math.round(a).toString(2)},c:function(a){return a+""},d:function(a){return Math.round(a).toString(10)},e:function(a,b){return a.toExponential(b)},f:function(a,b){return a.toFixed(b)},g:function(a,b){return a.toPrecision(b)},o:function(a){return Math.round(a).toString(8)},p:function(a,b){return yc(100*a,b)},r:yc,s:function(a,b){var c=Yc(a,b);if(!c)return a+"";var d=c[0],c=c[1],c=c-(Ul=3*Math.max(-8,Math.min(8,Math.floor(c/3))))+1,e=d.length;return c===e?d:c>e?d+Array(c-e+1).join("0"):0<c?d.slice(0,c)+"."+d.slice(c):"0."+Array(1-c).join("0")+Yc(a,Math.max(0,b+c-1))[0]},X:function(a){return Math.round(a).toString(16).toUpperCase()},x:function(a){return Math.round(a).toString(16)}},Yi,Tl="y z a f p n \u00b5 m k M G T P E Z Y".split(" ");Gd({decimal:".",thousands:",",grouping:[3],currency:["$",""]});ob.prototype={constructor:ob,reset:function(){this.s=this.t=0},add:function(a){vh(Jj,a,this.t);vh(this,Jj.s,this.s);this.s?this.t+=Jj.t:this.s=Jj.t},valueOf:function(){return this.s}};var Jj=new ob,Qa=Math.PI,jb=Qa/2,Zi=Qa/4,Cc=2*Qa,gb=180/Qa,ya=Qa/180,Ta=Math.abs,Zg=Math.atan,oc=Math.atan2,va=Math.cos,kj=Math.ceil,kn=Math.exp,oj=Math.log,Bk=Math.pow,pa=Math.sin,Uh=Math.sign||function(a){return 0<a?1:0>a?-1:0},zb=Math.sqrt,Yg=Math.tan,Xl={Feature:function(a,b){ra(a.geometry,b)},FeatureCollection:function(a,b){for(var c=a.features,d=-1,e=c.length;++d<e;)ra(c[d].geometry,b)}},Wl={Sphere:function(a,b){b.sphere()},Point:function(a,b){a=a.coordinates;b.point(a[0],a[1],a[2])},MultiPoint:function(a,b){for(var c=a.coordinates,d=-1,e=c.length;++d<e;)a=c[d],b.point(a[0],a[1],a[2])},LineString:function(a,b){Rb(a.coordinates,b,0)},MultiLineString:function(a,b){for(var c=a.coordinates,d=-1,e=c.length;++d<e;)Rb(c[d],b,0)},Polygon:function(a,b){oe(a.coordinates,b)},MultiPolygon:function(a,b){for(var c=a.coordinates,d=-1,e=c.length;++d<e;)oe(c[d],b)},GeometryCollection:function(a,b){for(var c=a.geometries,d=-1,e=c.length;++d<e;)ra(c[d],b)}},Yl,Zl,ik,jk,kk,$i=new ob,Kj=new ob,Td={point:Za,lineStart:Za,lineEnd:Za,polygonStart:function(){$i.reset();Td.lineStart=Jb;Td.lineEnd=Gi},polygonEnd:function(){var a=+$i;Kj.add(0>a?Cc+a:a);this.lineStart=this.lineEnd=this.point=Za},sphere:function(){Kj.add(Cc)}},rb,Lc,xb,Zc,dg,$l,am,Vg,nf,Ce,bj,ej,aj,cj,dj,fj,gj,hj,lk,mk,nk,bm,cm,pc,qc,rc,Oh=new ob,De={point:Ic,lineStart:nd,lineEnd:ib,polygonStart:function(){De.point=Of;De.lineStart=pe;De.lineEnd=zg;Oh.reset();Td.polygonStart()},polygonEnd:function(){Td.polygonEnd();De.point=Ic;De.lineStart=nd;De.lineEnd=ib;0>$i?(rb=-(xb=180),Lc=-(Zc=90)):1E-6<Oh?Zc=90:-1E-6>Oh&&(Lc=-90);Ce[0]=rb;Ce[1]=xb}},td={sphere:Za,point:af,lineStart:Pf,lineEnd:Qf,polygonStart:function(){td.lineStart=Rf;td.lineEnd=Cg},polygonEnd:function(){td.lineStart=Pf;td.lineEnd=Qf}};bf.invert=bf;var ok=new ob,Ak=Gg(function(){return!0},function(a){var b,c=NaN,d=NaN,e=NaN;return{lineStart:function(){a.lineStart();b=1},point:function(f,g){var h=0<f?Qa:-Qa,k=Ta(f-c);if(1E-6>Ta(k-Qa))a.point(c,d=0<(d+g)/2?jb:-jb),a.point(e,d),a.lineEnd(),a.lineStart(),a.point(h,d),a.point(f,d),b=0;else if(e!==h&&k>=Qa){1E-6>Ta(c-e)&&(c-=1E-6*e);1E-6>Ta(f-h)&&(f-=1E-6*h);var k=c,l=d,m=f,n,p,q=pa(k-m);d=1E-6<Ta(q)?Zg((pa(l)*(p=va(g))*pa(m)-pa(g)*(n=va(l))*pa(k))/(n*p*q)):(l+g)/2;a.point(e,d);a.lineEnd();a.lineStart();a.point(h,d);b=0}a.point(c=f,d=g);e=h},lineEnd:function(){a.lineEnd();c=d=NaN},clean:function(){return 2-b}}},function(a,b,c,d){null==a?(c*=jb,d.point(-Qa,c),d.point(0,c),d.point(Qa,c),d.point(Qa,0),d.point(Qa,-c),d.point(0,-c),d.point(-Qa,-c),d.point(-Qa,0),d.point(-Qa,c)):1E-6<Ta(a[0]-b[0])?(a=a[0]<b[0]?Qa:-Qa,c=c*a/2,d.point(-a,c),d.point(0,c),d.point(a,c)):d.point(b[0],b[1])},[-Qa,-jb]),pk,ij,jj,qk=new ob,Wg={sphere:Za,point:Za,lineStart:function(){Wg.point=df;Wg.lineEnd=zh},lineEnd:Za,polygonStart:Za,polygonEnd:Za},rk=[null,null],aq={type:"LineString",coordinates:rk},ln={Feature:function(a,b){return Vf(a.geometry,b)},FeatureCollection:function(a,b){for(var c=a.features,d=-1,e=c.length;++d<e;)if(Vf(c[d].geometry,b))return!0;return!1}},dm={Sphere:function(){return!0},Point:function(a,b){return 0===Md(a.coordinates,b)},MultiPoint:function(a,b){for(var c=a.coordinates,d=-1,e=c.length;++d<e;)if(0===Md(c[d],b))return!0;return!1},LineString:function(a,b){return Eb(a.coordinates,b)},MultiLineString:function(a,b){for(var c=a.coordinates,d=-1,e=c.length;++d<e;)if(Eb(c[d],b))return!0;return!1},Polygon:function(a,b){return Bh(a.coordinates,b)},MultiPolygon:function(a,b){for(var c=a.coordinates,d=-1,e=c.length;++d<e;)if(Bh(c[d],b))return!0;return!1},GeometryCollection:function(a,b){for(var c=a.geometries,d=-1,e=c.length;++d<e;)if(Vf(c[d],b))return!0;return!1}},em,fm,sk,tk,al=new ob,uk=new ob,Ee={point:Za,lineStart:Za,lineEnd:Za,polygonStart:function(){Ee.lineStart=Li;Ee.lineEnd=Ni},polygonEnd:function(){Ee.lineStart=Ee.lineEnd=Ee.point=Za;al.add(Ta(uk));uk.reset()},result:function(){var a=al/2;return al.reset(),a}},ih=1/0,Lj=ih,mi=-ih,Mj=mi,nj={point:function(a,b){a<ih&&(ih=a);a>mi&&(mi=a);b<Lj&&(Lj=b);b>Mj&&(Mj=b)},lineStart:Za,lineEnd:Za,polygonStart:Za,polygonEnd:Za,result:function(){var a=[[ih,Lj],[mi,Mj]];return mi=Mj=-(Lj=ih=1/0),a}},gm,hm,Ud,Vd,vk=0,wk=0,Ph=0,lj=0,mj=0,Xg=0,xk=0,yk=0,Qh=0,$c={point:Nd,lineStart:Ch,lineEnd:ef,polygonStart:function(){$c.lineStart=Xf;$c.lineEnd=ff},polygonEnd:function(){$c.point=Nd;$c.lineStart=Ch;$c.lineEnd=ef},result:function(){var a=Qh?[xk/Qh,yk/Qh]:Xg?[lj/Xg,mj/Xg]:Ph?[vk/Ph,wk/Ph]:[NaN,NaN];return vk=wk=Ph=lj=mj=Xg=xk=yk=Qh=0,a}};te.prototype={_radius:4.5,pointRadius:function(a){return this._radius=a,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath();this._point=NaN},point:function(a,b){switch(this._point){case 0:this._context.moveTo(a,b);this._point=1;break;case 1:this._context.lineTo(a,b);break;default:this._context.moveTo(a+this._radius,b),this._context.arc(a,b,this._radius,0,Cc)}},result:Za};var bl,im,jm,Sh,Th,zk=new ob,Rh={point:Za,lineStart:function(){Rh.point=gf},lineEnd:function(){bl&&ue(im,jm);Rh.point=Za},polygonStart:function(){bl=!0},polygonEnd:function(){bl=null},result:function(){var a=+zk;return zk.reset(),a}};hf.prototype={_radius:4.5,_circle:Yf(4.5),pointRadius:function(a){return(a=+a)!==this._radius&&(this._radius=a,this._circle=null),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._string.push("Z");this._point=NaN},point:function(a,b){switch(this._point){case 0:this._string.push("M",a,",",b);this._point=1;break;case 1:this._string.push("L",a,",",b);break;default:null==this._circle&&(this._circle=Yf(this._radius)),this._string.push("M",a,",",b,this._circle)}},result:function(){if(this._string.length){var a=this._string.join("");return this._string=[],a}return null}};Od.prototype={constructor:Od,point:function(a,b){this.stream.point(a,b)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var bq=va(30*ya),cq=rd({point:function(a,b){this.stream.point(a*ya,b*ya)}}),cl=Ca(function(a){return zb(2/(1+a))});cl.invert=qb(function(a){return 2*vb(a/2)});var dl=Ca(function(a){return(a=xg(a))&&a/pa(a)});dl.invert=qb(function(a){return a});$f.invert=function(a,b){return[a,2*Zg(kn(b))-jb]};sf.invert=sf;var pj=zb(3)/2;jh.invert=function(a,b){for(var c,d=b,e=d*d,f=e*e*e,g=0;12>g&&(f=(e=(d-=c=(d*(1.340264+-.081106*e+f*(8.93E-4+.003796*e))-b)/(1.340264+3*-.081106*e+f*(7*8.93E-4+.034164*e)))*d)*e*e,!(1E-12>Ta(c)));++g);return[pj*a*(1.340264+3*-.081106*e+f*(7*8.93E-4+.034164*e))/va(d),vb(pa(d)/pj)]};mh.invert=qb(Zg);oh.invert=function(a,b){var c,d=b,e=25;do{var f=d*d;c=f*f;d-=c=(d*(1.007226+f*(.015085+c*(.028874*f-.044475-.005916*c)))-b)/(1.007226+f*(.045255+c*(.259866*f-.311325-.005916*11*c)))}while(1E-6<Ta(c)&&0<--e);return[a/(.8707+(f=d*d)*(f*(f*f*f*(.003971-.001529*f)-.013791)-.131979)),d]};mg.invert=qb(vb);kg.invert=qb(function(a){return 2*Zg(a)});lg.invert=function(a,b){return[-b,2*Zg(kn(a))-jb]};dc.prototype=qh.prototype={constructor:dc,count:function(){return this.eachAfter(ph)},each:function(a){var b,c,d,e,f=[this];do for(b=f.reverse(),f=[];c=b.pop();)if(a(c),c=c.children)for(d=0,e=c.length;d<e;++d)f.push(c[d]);while(f.length);return this},eachAfter:function(a){for(var b,c,d,e=[this],f=[];b=e.pop();)if(f.push(b),b=b.children)for(c=0,d=b.length;c<d;++c)e.push(b[c]);for(;b=f.pop();)a(b);return this},eachBefore:function(a){for(var b,c,d=[this];b=d.pop();)if(a(b),b=b.children)for(c=b.length-1;0<=c;--c)d.push(b[c]);return this},sum:function(a){return this.eachAfter(function(b){for(var c=+a(b.data)||0,d=b.children,e=d&&d.length;0<=--e;)c+=d[e].value;b.value=c})},sort:function(a){return this.eachBefore(function(b){b.children&&b.children.sort(a)})},path:function(a){var b=this,c;c=b;var d=a;if(c!==d){var e=c.ancestors(),f=d.ancestors(),g=null;c=e.pop();for(d=f.pop();c===d;)g=c,c=e.pop(),d=f.pop();c=g}for(d=[b];b!==c;)b=b.parent,d.push(b);for(b=d.length;a!==c;)d.splice(b,0,a),a=a.parent;return d},ancestors:function(){for(var a=this,b=[a];a=a.parent;)b.push(a);return b},descendants:function(){var a=[];return this.each(function(b){a.push(b)}),a},leaves:function(){var a=[];return this.eachBefore(function(b){b.children||a.push(b)}),a},links:function(){var a=this,b=[];return a.each(function(c){c!==a&&b.push({source:c.parent,target:c})}),b},copy:function(){return qh(this).eachBefore(Oe)}};var dq=Array.prototype.slice,tr={depth:-1},mn={};y.prototype=Object.create(dc.prototype);var nn=(1+Math.sqrt(5))/2,on=function Pa(a){function b(b,c,d,e,f){O(a,b,c,d,e,f)}return b.ratio=function(a){return Pa(1<(a=+a)?a:1)},b}(nn),ur=function mp(a){function b(b,c,d,e,f){if((g=b._squarify)&&g.ratio===a)for(var g,h,k,l,m=-1,n=g.length,p=b.value;++m<n;){h=(b=g[m]).children;k=b.value=0;for(l=h.length;k<l;++k)b.value+=h[k].value;b.dice?Qd(b,c,d,e,d+=(f-d)*b.value/p):I(b,c,d,c+=(e-c)*b.value/p,f);p-=b.value}else b._squarify=g=O(a,b,c,d,e,f),g.ratio=a}return b.ratio=function(a){return mp(1<(a=+a)?a:1)},b}(nn),vr=function np(a){function b(b,c){return b=null==b?0:+b,c=null==c?1:+c,1===arguments.length?(c=b,b=0):c-=b,function(){return a()*c+b}}return b.source=np,b}(Tb),pn=function op(a){function b(b,c){var d,e;return b=null==b?0:+b,c=null==c?1:+c,function(){var f;if(null!=d)f=d,d=null;else{do d=2*a()-1,f=2*a()-1,e=d*d+f*f;while(!e||1<e)}return b+c*f*Math.sqrt(-2*Math.log(e)/e)}}return b.source=op,b}(Tb),wr=function pp(a){function b(){var b=pn.source(a).apply(this,arguments);return function(){return Math.exp(b())}}return b.source=pp,b}(Tb),qn=function qp(a){function b(b){return function(){for(var c=0,d=0;d<b;++d)c+=a();return c}}return b.source=qp,b}(Tb),xr=function rp(a){function b(b){var c=qn.source(a)(b);return function(){return c()/b}}return b.source=rp,b}(Tb),yr=function tp(a){function b(b){return function(){return-Math.log(1-a())/b}}return b.source=tp,b}(Tb),rn=Array.prototype,Dk=rn.map,of=rn.slice,Ck={name:"implicit"},km=[0,1],Ek=new Date,Fk=new Date,gg=Ab(function(){},function(a,b){a.setTime(+a+b)},function(a,b){return b-a});gg.every=function(a){return a=Math.floor(a),isFinite(a)&&0<a?1<a?Ab(function(b){b.setTime(Math.floor(b/a)*a)},function(b,c){b.setTime(+b+c*a)},function(b,c){return(c-b)/a}):gg:null};var sn=gg.range,ni=Ab(function(a){a.setTime(1E3*Math.floor(a/1E3))},function(a,b){a.setTime(+a+1E3*b)},function(a,b){return(b-a)/1E3},function(a){return a.getUTCSeconds()}),tn=ni.range,el=Ab(function(a){a.setTime(6E4*Math.floor(a/6E4))},function(a,b){a.setTime(+a+6E4*b)},function(a,b){return(b-a)/6E4},function(a){return a.getMinutes()}),zr=el.range,fl=Ab(function(a){var b=6E4*a.getTimezoneOffset()%36E5;0>b&&(b+=36E5);a.setTime(36E5*Math.floor((+a-b)/36E5)+b)},function(a,b){a.setTime(+a+36E5*b)},function(a,b){return(b-a)/36E5},function(a){return a.getHours()}),Ar=fl.range,Yh=Ab(function(a){a.setHours(0,0,0,0)},function(a,b){a.setDate(a.getDate()+b)},function(a,b){return(b-a-6E4*(b.getTimezoneOffset()-a.getTimezoneOffset()))/864E5},function(a){return a.getDate()-1}),Br=Yh.range,Zh=tf(0),Xh=tf(1),un=tf(2),vn=tf(3),$h=tf(4),wn=tf(5),xn=tf(6),yn=Zh.range,Cr=Xh.range,Dr=un.range,Er=vn.range,Fr=$h.range,Gr=wn.range,Hr=xn.range,gl=Ab(function(a){a.setDate(1);a.setHours(0,0,0,0)},function(a,b){a.setMonth(a.getMonth()+b)},function(a,b){return b.getMonth()-a.getMonth()+12*(b.getFullYear()-a.getFullYear())},function(a){return a.getMonth()}),Ir=gl.range,Fe=Ab(function(a){a.setMonth(0,1);a.setHours(0,0,0,0)},function(a,b){a.setFullYear(a.getFullYear()+b)},function(a,b){return b.getFullYear()-a.getFullYear()},function(a){return a.getFullYear()});Fe.every=function(a){return isFinite(a=Math.floor(a))&&0<a?Ab(function(b){b.setFullYear(Math.floor(b.getFullYear()/a)*a);b.setMonth(0,1);b.setHours(0,0,0,0)},function(b,c){b.setFullYear(b.getFullYear()+c*a)}):null};var Jr=Fe.range,hl=Ab(function(a){a.setUTCSeconds(0,0)},function(a,b){a.setTime(+a+6E4*b)},function(a,b){return(b-a)/6E4},function(a){return a.getUTCMinutes()}),Kr=hl.range,il=Ab(function(a){a.setUTCMinutes(0,0,0)},function(a,b){a.setTime(+a+36E5*b)},function(a,b){return(b-a)/36E5},function(a){return a.getUTCHours()}),Lr=il.range,Wh=Ab(function(a){a.setUTCHours(0,0,0,0)},function(a,b){a.setUTCDate(a.getUTCDate()+b)},function(a,b){return(b-a)/864E5},function(a){return a.getUTCDate()-1}),Mr=Wh.range,ai=uf(0),Vh=uf(1),zn=uf(2),An=uf(3),bi=uf(4),Bn=uf(5),Cn=uf(6),Dn=ai.range,Nr=Vh.range,Or=zn.range,Pr=An.range,Qr=bi.range,Rr=Bn.range,Sr=Cn.range,jl=Ab(function(a){a.setUTCDate(1);a.setUTCHours(0,0,0,0)},function(a,b){a.setUTCMonth(a.getUTCMonth()+b)},function(a,b){return b.getUTCMonth()-a.getUTCMonth()+12*(b.getUTCFullYear()-a.getUTCFullYear())},function(a){return a.getUTCMonth()}),Tr=jl.range,Ge=Ab(function(a){a.setUTCMonth(0,1);a.setUTCHours(0,0,0,0)},function(a,b){a.setUTCFullYear(a.getUTCFullYear()+b)},function(a,b){return b.getUTCFullYear()-a.getUTCFullYear()},function(a){return a.getUTCFullYear()});Ge.every=function(a){return isFinite(a=Math.floor(a))&&0<a?Ab(function(b){b.setUTCFullYear(Math.floor(b.getUTCFullYear()/a)*a);b.setUTCMonth(0,1);b.setUTCHours(0,0,0,0)},function(b,c){b.setUTCFullYear(b.getUTCFullYear()+c*a)}):null};var Ur=Ge.range,$g,lm={"-":"",_:" ",0:"0"},Sb=/^\s*\d+/,fq=/^%/,eq=/[\\^$*+?|[\]().{}]/g;Dl({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),shortDays:"Sun Mon Tue Wed Thu Fri Sat".split(" "),months:"January February March April May June July August September October November December".split(" "),shortMonths:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" ")});var Vr=Date.prototype.toISOString?function(a){return a.toISOString()}:a.utcFormat("%Y-%m-%dT%H:%M:%S.%LZ"),Wr=+new Date("2000-01-01T00:00:00.000Z")?function(a){a=new Date(a);return isNaN(a)?null:a}:a.utcParse("%Y-%m-%dT%H:%M:%S.%LZ"),Xr=Ga("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"),Yr=Ga("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666"),Zr=Ga("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666"),$r=Ga("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928"),as=Ga("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2"),bs=Ga("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc"),cs=Ga("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999"),ds=Ga("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3"),es=Ga("8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f"),En=Array(3).concat("d8b365f5f5f55ab4ac","a6611adfc27d80cdc1018571","a6611adfc27df5f5f580cdc1018571","8c510ad8b365f6e8c3c7eae55ab4ac01665e","8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e","8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e","8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e","5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30","5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30").map(Ga),fs=cb(En),Fn=Array(3).concat("af8dc3f7f7f77fbf7b","7b3294c2a5cfa6dba0008837","7b3294c2a5cff7f7f7a6dba0008837","762a83af8dc3e7d4e8d9f0d37fbf7b1b7837","762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837","762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837","762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837","40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b","40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b").map(Ga),gs=cb(Fn),Gn=Array(3).concat("e9a3c9f7f7f7a1d76a","d01c8bf1b6dab8e1864dac26","d01c8bf1b6daf7f7f7b8e1864dac26","c51b7de9a3c9fde0efe6f5d0a1d76a4d9221","c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221","c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221","c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221","8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419","8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419").map(Ga),hs=cb(Gn),Hn=Array(3).concat("998ec3f7f7f7f1a340","5e3c99b2abd2fdb863e66101","5e3c99b2abd2f7f7f7fdb863e66101","542788998ec3d8daebfee0b6f1a340b35806","542788998ec3d8daebf7f7f7fee0b6f1a340b35806","5427888073acb2abd2d8daebfee0b6fdb863e08214b35806","5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806","2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08","2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08").map(Ga),is=cb(Hn),In=Array(3).concat("ef8a62f7f7f767a9cf","ca0020f4a58292c5de0571b0","ca0020f4a582f7f7f792c5de0571b0","b2182bef8a62fddbc7d1e5f067a9cf2166ac","b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac","b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac","b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac","67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061","67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061").map(Ga),js=cb(In),Jn=Array(3).concat("ef8a62ffffff999999","ca0020f4a582bababa404040","ca0020f4a582ffffffbababa404040","b2182bef8a62fddbc7e0e0e09999994d4d4d","b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d","b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d","b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d","67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a","67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a").map(Ga),ks=cb(Jn),Kn=Array(3).concat("fc8d59ffffbf91bfdb","d7191cfdae61abd9e92c7bb6","d7191cfdae61ffffbfabd9e92c7bb6","d73027fc8d59fee090e0f3f891bfdb4575b4","d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4","d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4","d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4","a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695","a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695").map(Ga),ls=cb(Kn),Ln=Array(3).concat("fc8d59ffffbf91cf60","d7191cfdae61a6d96a1a9641","d7191cfdae61ffffbfa6d96a1a9641","d73027fc8d59fee08bd9ef8b91cf601a9850","d73027fc8d59fee08bffffbfd9ef8b91cf601a9850","d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850","d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850","a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837","a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837").map(Ga),ms=cb(Ln),Mn=Array(3).concat("fc8d59ffffbf99d594","d7191cfdae61abdda42b83ba","d7191cfdae61ffffbfabdda42b83ba","d53e4ffc8d59fee08be6f59899d5943288bd","d53e4ffc8d59fee08bffffbfe6f59899d5943288bd","d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd","d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd","9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2","9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2").map(Ga),ns=cb(Mn),Nn=Array(3).concat("e5f5f999d8c92ca25f","edf8fbb2e2e266c2a4238b45","edf8fbb2e2e266c2a42ca25f006d2c","edf8fbccece699d8c966c2a42ca25f006d2c","edf8fbccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b").map(Ga),os=cb(Nn),On=Array(3).concat("e0ecf49ebcda8856a7","edf8fbb3cde38c96c688419d","edf8fbb3cde38c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b").map(Ga),ps=cb(On),Pn=Array(3).concat("e0f3dba8ddb543a2ca","f0f9e8bae4bc7bccc42b8cbe","f0f9e8bae4bc7bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081").map(Ga),qs=cb(Pn),Qn=Array(3).concat("fee8c8fdbb84e34a33","fef0d9fdcc8afc8d59d7301f","fef0d9fdcc8afc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000").map(Ga),rs=cb(Qn),Rn=Array(3).concat("ece2f0a6bddb1c9099","f6eff7bdc9e167a9cf02818a","f6eff7bdc9e167a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636").map(Ga),ss=cb(Rn),Sn=Array(3).concat("ece7f2a6bddb2b8cbe","f1eef6bdc9e174a9cf0570b0","f1eef6bdc9e174a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858").map(Ga),ts=cb(Sn),Tn=Array(3).concat("e7e1efc994c7dd1c77","f1eef6d7b5d8df65b0ce1256","f1eef6d7b5d8df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f").map(Ga),us=cb(Tn),Un=Array(3).concat("fde0ddfa9fb5c51b8a","feebe2fbb4b9f768a1ae017e","feebe2fbb4b9f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a").map(Ga),vs=cb(Un),Vn=Array(3).concat("edf8b17fcdbb2c7fb8","ffffcca1dab441b6c4225ea8","ffffcca1dab441b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58").map(Ga),ws=cb(Vn),Wn=Array(3).concat("f7fcb9addd8e31a354","ffffccc2e69978c679238443","ffffccc2e69978c67931a354006837","ffffccd9f0a3addd8e78c67931a354006837","ffffccd9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529").map(Ga),xs=cb(Wn),Xn=Array(3).concat("fff7bcfec44fd95f0e","ffffd4fed98efe9929cc4c02","ffffd4fed98efe9929d95f0e993404","ffffd4fee391fec44ffe9929d95f0e993404","ffffd4fee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506").map(Ga),ys=cb(Xn),Yn=Array(3).concat("ffeda0feb24cf03b20","ffffb2fecc5cfd8d3ce31a1c","ffffb2fecc5cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026").map(Ga),zs=cb(Yn),Zn=Array(3).concat("deebf79ecae13182bd","eff3ffbdd7e76baed62171b5","eff3ffbdd7e76baed63182bd08519c","eff3ffc6dbef9ecae16baed63182bd08519c","eff3ffc6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b").map(Ga),As=cb(Zn),$n=Array(3).concat("e5f5e0a1d99b31a354","edf8e9bae4b374c476238b45","edf8e9bae4b374c47631a354006d2c","edf8e9c7e9c0a1d99b74c47631a354006d2c","edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b").map(Ga),Bs=cb($n),ao=Array(3).concat("f0f0f0bdbdbd636363","f7f7f7cccccc969696525252","f7f7f7cccccc969696636363252525","f7f7f7d9d9d9bdbdbd969696636363252525","f7f7f7d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000").map(Ga),Cs=cb(ao),bo=Array(3).concat("efedf5bcbddc756bb1","f2f0f7cbc9e29e9ac86a51a3","f2f0f7cbc9e29e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d").map(Ga),Ds=cb(bo),co=Array(3).concat("fee0d2fc9272de2d26","fee5d9fcae91fb6a4acb181d","fee5d9fcae91fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d").map(Ga),Es=cb(co),eo=Array(3).concat("fee6cefdae6be6550d","feeddefdbe85fd8d3cd94701","feeddefdbe85fd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704").map(Ga),Fs=cb(eo),Gs=Fj(sa(300,.5,0),sa(-240,.5,1)),Hs=Fj(sa(-100,.75,.35),sa(80,1.5,.8)),Is=Fj(sa(260,.75,.35),sa(80,1.5,.8)),Nj=sa(),Oj=dd(),Js=Math.PI/3,Ks=2*Math.PI/3,Ls=qj(Ga("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725")),Ms=qj(Ga("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),Ns=qj(Ga("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),Os=qj(Ga("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921")),fo=Math.abs,ic=Math.atan2,hg=Math.cos,nq=Math.max,kl=Math.min,Wd=Math.sin,ah=Math.sqrt,qf=Math.PI,rj=qf/2,rf=2*qf;om.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath();this._line=1-this._line},point:function(a,b){switch(a=+a,b=+b,this._point){case 0:this._point=1;this._line?this._context.lineTo(a,b):this._context.moveTo(a,b);break;case 1:this._point=2;default:this._context.lineTo(a,b)}}};var sm=Kk(tj);qm.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(a,b){this._curve.point(b*Math.sin(a),b*-Math.cos(a))}};var Mk=Array.prototype.slice,ll={draw:function(a,b){var c=Math.sqrt(b/qf);a.moveTo(c,0);a.arc(0,0,c,0,rf)}},go={draw:function(a,b){var c=Math.sqrt(b/5)/2;a.moveTo(-3*c,-c);a.lineTo(-c,-c);a.lineTo(-c,-3*c);a.lineTo(c,-3*c);a.lineTo(c,-c);a.lineTo(3*c,-c);a.lineTo(3*c,c);a.lineTo(c,c);a.lineTo(c,3*c);a.lineTo(-c,3*c);a.lineTo(-c,c);a.lineTo(-3*c,c);a.closePath()}},ho=Math.sqrt(1/3),Ps=2*ho,io={draw:function(a,b){var c=Math.sqrt(b/Ps),d=c*ho;a.moveTo(0,-c);a.lineTo(d,0);a.lineTo(0,c);a.lineTo(-d,0);a.closePath()}},jo=Math.sin(qf/10)/Math.sin(7*qf/10),Qs=Math.sin(rf/10)*jo,Rs=-Math.cos(rf/10)*jo,ko={draw:function(a,b){var c=Math.sqrt(.8908130915292852*b),d=Qs*c,e=Rs*c;a.moveTo(0,-c);a.lineTo(d,e);for(var f=1;5>f;++f){var g=rf*f/5,h=Math.cos(g),g=Math.sin(g);a.lineTo(g*c,-h*c);a.lineTo(h*d-g*e,g*d+h*e)}a.closePath()}},lo={draw:function(a,b){var c=Math.sqrt(b),d=-c/2;a.rect(d,d,c,c)}},ml=Math.sqrt(3),mo={draw:function(a,b){var c=-Math.sqrt(b/(3*ml));a.moveTo(0,2*c);a.lineTo(-ml*c,-c);a.lineTo(ml*c,-c);a.closePath()}},ad=Math.sqrt(3)/2,nl=1/Math.sqrt(12),Ss=3*(nl/2+1),no={draw:function(a,b){var c=Math.sqrt(b/Ss),d=c/2,e=c*nl,c=c*nl+c,f=-d;a.moveTo(d,e);a.lineTo(d,c);a.lineTo(f,c);a.lineTo(-.5*d-ad*e,ad*d+-.5*e);a.lineTo(-.5*d-ad*c,ad*d+-.5*c);a.lineTo(-.5*f-ad*c,ad*f+-.5*c);a.lineTo(-.5*d+ad*e,-.5*e-ad*d);a.lineTo(-.5*d+ad*c,-.5*c-ad*d);a.lineTo(-.5*f+ad*c,-.5*c-ad*f);a.closePath()}},Ts=[ll,go,io,lo,ko,mo,no];vj.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN;this._point=0},lineEnd:function(){switch(this._point){case 3:uj(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath();this._line=1-this._line},point:function(a,b){switch(a=+a,b=+b,this._point){case 0:this._point=1;this._line?this._context.lineTo(a,b):this._context.moveTo(a,b);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:uj(this,a,b)}this._x0=this._x1;this._x1=a;this._y0=this._y1;this._y1=b}};um.prototype={areaStart:pf,areaEnd:pf,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN;this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2);this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3);this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3);this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(a,b){switch(a=+a,b=+b,this._point){case 0:this._point=1;this._x2=a;this._y2=b;break;case 1:this._point=2;this._x3=a;this._y3=b;break;case 2:this._point=3;this._x4=a;this._y4=b;this._context.moveTo((this._x0+4*this._x1+a)/6,(this._y0+4*this._y1+b)/6);break;default:uj(this,a,b)}this._x0=this._x1;this._x1=a;this._y0=this._y1;this._y1=b}};vm.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN;this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath();this._line=1-this._line},point:function(a,b){switch(a=+a,b=+b,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var c=(this._x0+4*this._x1+a)/6,d=(this._y0+4*this._y1+b)/6;this._line?this._context.lineTo(c,d):this._context.moveTo(c,d);break;case 3:this._point=4;default:uj(this,a,b)}this._x0=this._x1;this._x1=a;this._y0=this._y1;this._y1=b}};wm.prototype={lineStart:function(){this._x=[];this._y=[];this._basis.lineStart()},lineEnd:function(){var a=this._x,b=this._y,c=a.length-1;if(0<c)for(var d,e=a[0],f=b[0],g=a[c]-e,h=b[c]-f,k=-1;++k<=c;)d=k/c,this._basis.point(this._beta*a[k]+(1-this._beta)*(e+d*g),this._beta*b[k]+(1-this._beta)*(f+d*h));this._x=this._y=null;this._basis.lineEnd()},point:function(a,b){this._x.push(+a);this._y.push(+b)}};var Us=function up(a){function b(b){return 1===a?new vj(b):new wm(b,a)}return b.beta=function(a){return up(+a)},b}(.85);Nk.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN;this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:wj(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath();this._line=1-this._line},point:function(a,b){switch(a=+a,b=+b,this._point){case 0:this._point=1;this._line?this._context.lineTo(a,b):this._context.moveTo(a,b);break;case 1:this._point=2;this._x1=a;this._y1=b;break;case 2:this._point=3;default:wj(this,a,b)}this._x0=this._x1;this._x1=this._x2;this._x2=a;this._y0=this._y1;this._y1=this._y2;this._y2=b}};var Vs=function vp(a){function b(b){return new Nk(b,a)}return b.tension=function(a){return vp(+a)},b}(0);Ok.prototype={areaStart:pf,areaEnd:pf,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN;this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3);this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3);this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(a,b){switch(a=+a,b=+b,this._point){case 0:this._point=1;this._x3=a;this._y3=b;break;case 1:this._point=2;this._context.moveTo(this._x4=a,this._y4=b);break;case 2:this._point=3;this._x5=a;this._y5=b;break;default:wj(this,a,b)}this._x0=this._x1;this._x1=this._x2;this._x2=a;this._y0=this._y1;this._y1=this._y2;this._y2=b}};var Ws=function wp(a){function b(b){return new Ok(b,a)}return b.tension=function(a){return wp(+a)},b}(0);Pk.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN;this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath();this._line=1-this._line},point:function(a,b){switch(a=+a,b=+b,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:wj(this,a,b)}this._x0=this._x1;this._x1=this._x2;this._x2=a;this._y0=this._y1;this._y1=this._y2;this._y2=b}};var Xs=function xp(a){function b(b){return new Pk(b,a)}return b.tension=function(a){return xp(+a)},b}(0);xm.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN;this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath();this._line=1-this._line},point:function(a,b){if(a=+a,b=+b,this._point){var c=this._x2-a,d=this._y2-b;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(c*c+d*d,this._alpha))}switch(this._point){case 0:this._point=1;this._line?this._context.lineTo(a,b):this._context.moveTo(a,b);break;case 1:this._point=2;break;case 2:this._point=3;default:Qk(this,a,b)}this._l01_a=this._l12_a;this._l12_a=this._l23_a;this._l01_2a=this._l12_2a;this._l12_2a=this._l23_2a;this._x0=this._x1;this._x1=this._x2;this._x2=a;this._y0=this._y1;this._y1=this._y2;this._y2=b}};var Ys=function yp(a){function b(b){return a?new xm(b,a):new Nk(b,0)}return b.alpha=function(a){return yp(+a)},b}(.5);ym.prototype={areaStart:pf,areaEnd:pf,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN;this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3);this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3);this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(a,b){if(a=+a,b=+b,this._point){var c=this._x2-a,d=this._y2-b;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(c*c+d*d,this._alpha))}switch(this._point){case 0:this._point=1;this._x3=a;this._y3=b;break;case 1:this._point=2;this._context.moveTo(this._x4=a,this._y4=b);break;case 2:this._point=3;this._x5=a;this._y5=b;break;default:Qk(this,a,b)}this._l01_a=this._l12_a;this._l12_a=this._l23_a;this._l01_2a=this._l12_2a;this._l12_2a=this._l23_2a;this._x0=this._x1;this._x1=this._x2;this._x2=a;this._y0=this._y1;this._y1=this._y2;this._y2=b}};var Zs=function zp(a){function b(b){return a?new ym(b,a):new Ok(b,0)}return b.alpha=function(a){return zp(+a)},b}(.5);zm.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN;this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath();this._line=1-this._line},point:function(a,b){if(a=+a,b=+b,this._point){var c=this._x2-a,d=this._y2-b;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(c*c+d*d,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Qk(this,a,b)}this._l01_a=this._l12_a;this._l12_a=this._l23_a;this._l01_2a=this._l12_2a;this._l12_2a=this._l23_2a;this._x0=this._x1;this._x1=this._x2;this._x2=a;this._y0=this._y1;this._y1=this._y2;this._y2=b}};var $s=function Ia(a){function b(b){return a?new zm(b,a):new Pk(b,0)}return b.alpha=function(a){return Ia(+a)},b}(.5);Am.prototype={areaStart:pf,areaEnd:pf,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(a,b){a=+a;b=+b;this._point?this._context.lineTo(a,b):(this._point=1,this._context.moveTo(a,b))}};xj.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN;this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:Rk(this,this._t0,Cm(this,this._t0))}(this._line||0!==this._line&&1===this._point)&&this._context.closePath();this._line=1-this._line},point:function(a,b){var c=NaN;if(b=+b,(a=+a)!==this._x1||b!==this._y1){switch(this._point){case 0:this._point=1;this._line?this._context.lineTo(a,b):this._context.moveTo(a,b);break;case 1:this._point=2;break;case 2:this._point=3;Rk(this,Cm(this,c=Bm(this,a,b)),c);break;default:Rk(this,this._t0,c=Bm(this,a,b))}this._x0=this._x1;this._x1=a;this._y0=this._y1;this._y1=b;this._t0=c}}};(Dm.prototype=Object.create(xj.prototype)).point=function(a,b){xj.prototype.point.call(this,b,a)};Em.prototype={moveTo:function(a,b){this._context.moveTo(b,a)},closePath:function(){this._context.closePath()},lineTo:function(a,b){this._context.lineTo(b,a)},bezierCurveTo:function(a,b,c,d,e,f){this._context.bezierCurveTo(b,a,d,c,f,e)}};Fm.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[];this._y=[]},lineEnd:function(){var a=this._x,b=this._y,c=a.length;if(c)if(this._line?this._context.lineTo(a[0],b[0]):this._context.moveTo(a[0],b[0]),2===c)this._context.lineTo(a[1],b[1]);else for(var d=Gm(a),e=Gm(b),f=0,g=1;g<c;++f,++g)this._context.bezierCurveTo(d[0][f],e[0][f],d[1][f],e[1][f],a[g],b[g]);(this._line||0!==this._line&&1===c)&&this._context.closePath();this._line=1-this._line;this._x=this._y=null},point:function(a,b){this._x.push(+a);this._y.push(+b)}};yj.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN;this._point=0},lineEnd:function(){0<this._t&&1>this._t&&2===this._point&&this._context.lineTo(this._x,this._y);(this._line||0!==this._line&&1===this._point)&&this._context.closePath();0<=this._line&&(this._t=1-this._t,this._line=1-this._line)},point:function(a,b){switch(a=+a,b=+b,this._point){case 0:this._point=1;this._line?this._context.lineTo(a,b):this._context.moveTo(a,b);break;case 1:this._point=2;default:if(0>=this._t)this._context.lineTo(this._x,b),this._context.lineTo(a,b);else{var c=this._x*(1-this._t)+a*this._t;this._context.lineTo(c,this._y);this._context.lineTo(c,b)}}this._x=a;this._y=b}};zj.prototype={constructor:zj,insert:function(a,b){var c,d,e;if(a){if(b.P=a,b.N=a.N,a.N&&(a.N.P=b),a.N=b,a.R){for(a=a.R;a.L;)a=a.L;a.L=b}else a.R=b;c=a}else this._?(a=Km(this._),b.P=null,b.N=a,a.P=a.L=b,c=a):(b.P=b.N=null,this._=b,c=null);b.L=b.R=null;b.U=c;b.C=!0;for(a=b;c&&c.C;)c===(d=c.U).L?(e=d.R)&&e.C?(c.C=e.C=!1,d.C=!0,a=d):(a===c.R&&(ei(this,c),c=(a=c).U),c.C=!1,d.C=!0,fi(this,d)):(e=d.L)&&e.C?(c.C=e.C=!1,d.C=!0,a=d):(a===c.L&&(fi(this,c),c=(a=c).U),c.C=!1,d.C=!0,ei(this,d)),c=a.U;this._.C=!1},remove:function(a){a.N&&(a.N.P=a.P);a.P&&(a.P.N=a.N);a.N=a.P=null;var b,c,d,e=a.U,f=a.L,g=a.R;if(c=f?g?Km(g):f:g,e?e.L===a?e.L=c:e.R=c:this._=c,f&&g?(d=c.C,c.C=a.C,c.L=f,f.U=c,c!==g?(e=c.U,c.U=a.U,a=c.R,e.L=a,c.R=g,g.U=c):(c.U=e,e=c,a=c.R)):(d=a.C,a=c),a&&(a.U=e),!d)if(a&&a.C)a.C=!1;else{do{if(a===this._)break;if(a===e.L){if((b=e.R).C&&(b.C=!1,e.C=!0,ei(this,e),b=e.R),b.L&&b.L.C||b.R&&b.R.C){b.R&&b.R.C||(b.L.C=!1,b.C=!0,fi(this,b),b=e.R);b.C=e.C;e.C=b.R.C=!1;ei(this,e);a=this._;break}}else if((b=e.L).C&&(b.C=!1,e.C=!0,fi(this,e),b=e.L),b.L&&b.L.C||b.R&&b.R.C){b.L&&b.L.C||(b.R.C=!1,b.C=!0,ei(this,b),b=e.L);b.C=e.C;e.C=b.L.C=!1;fi(this,e);a=this._;break}b.C=!0;a=e;e=e.U}while(!a.C);a&&(a.C=!1)}}};var Sk,Mm=[],Om=[],fh,Mc,ii,hc,$a=1E-6,Cq=1E-12;Uk.prototype={constructor:Uk,polygons:function(){var a=this.edges;return this.cells.map(function(b){var c=b.halfedges.map(function(c){return Lm(b,a[c])});return c.data=b.site.data,c})},triangles:function(){var a=[],b=this.edges;return this.cells.forEach(function(c,d){if(f=(e=c.halfedges).length)for(var e,f,g,h,k,l,m=c.site,n=-1,p=b[e[f-1]],q=p.left===m?p.right:p.left;++n<f;)g=q,q=(p=b[e[n]]).left===m?p.right:p.left,g&&q&&d<g.index&&d<q.index&&(k=g,l=q,0>((h=m)[0]-l[0])*(k[1]-h[1])-(h[0]-k[0])*(l[1]-h[1]))&&a.push([m.data,g.data,q.data])}),a},links:function(){return this.edges.filter(function(a){return a.right}).map(function(a){return{source:a.left.data,target:a.right.data}})},find:function(a,b,c){var d,e,f=this,g=f._found||0;for(d=f.cells.length;!(e=f.cells[g]);)if(++g>=d)return null;d=a-e.site[0];var h=b-e.site[1],k=d*d+h*h;do e=f.cells[d=g],g=null,e.halfedges.forEach(function(c){var d=f.edges[c];c=d.left;if(c!==e.site&&c||(c=d.right)){var d=a-c[0],h=b-c[1],d=d*d+h*h;d<k&&(k=d,g=c.index)}});while(null!==g);return f._found=d,null==c||k<=c*c?e.site:null}};He.prototype={constructor:He,scale:function(a){return 1===a?this:new He(this.k*a,this.x,this.y)},translate:function(a,b){return 0===a&0===b?this:new He(this.k,this.x+this.k*a,this.y+this.k*b)},apply:function(a){return[a[0]*this.k+this.x,a[1]*this.k+this.y]},applyX:function(a){return a*this.k+this.x},applyY:function(a){return a*this.k+this.y},invert:function(a){return[(a[0]-this.x)/this.k,(a[1]-this.y)/this.k]},invertX:function(a){return(a-this.x)/this.k},invertY:function(a){return(a-this.y)/this.k},rescaleX:function(a){return a.copy().domain(a.range().map(this.invertX,this).map(a.invert,a))},rescaleY:function(a){return a.copy().domain(a.range().map(this.invertY,this).map(a.invert,a))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var Dj=new He(1,0,0);Qm.prototype=He.prototype;a.version="5.7.0";a.bisect=eg;a.bisectRight=eg;a.bisectLeft=Nq;a.ascending=b;a.bisector=d;a.cross=function(a,b,c){var d,f,g,h,k=a.length,l=b.length,m=Array(k*l);null==c&&(c=e);for(d=g=0;d<k;++d)for(h=a[d],f=0;f<l;++f,++g)m[g]=c(h,b[f]);return m};a.descending=function(a,b){return b<a?-1:b>a?1:b>=a?0:NaN};a.deviation=l;a.extent=m;a.histogram=function(){function a(a){var e,f,g=a.length,h=Array(g);for(e=0;e<g;++e)h[e]=b(a[e],e,a);e=c(h);var k=e[0],l=e[1],m=d(h,k,l);Array.isArray(m)||(m=w(k,l,m),m=x(Math.ceil(k/m)*m,l,m));for(var n=m.length;m[0]<=k;)m.shift(),--n;for(;m[n-1]>l;)m.pop(),--n;var p,q=Array(n+1);for(e=0;e<=n;++e)(p=q[e]=[]).x0=0<e?m[e-1]:k,p.x1=e<n?m[e]:l;for(e=0;e<g;++e)k<=(f=h[e])&&f<=l&&q[eg(m,f,0,n)].push(a[e]);return q}var b=q,c=m,d=v;return a.value=function(c){return arguments.length?(b="function"==typeof c?c:r(c),a):b},a.domain=function(b){return arguments.length?(c="function"==typeof b?b:r([b[0],b[1]]),a):c},a.thresholds=function(b){return arguments.length?(d="function"==typeof b?b:Array.isArray(b)?r(Oq.call(b)):r(b),a):d},a};a.thresholdFreedmanDiaconis=function(a,c,d){return a=Pq.call(a,f).sort(b),Math.ceil((d-c)/(2*(k(a,.75)-k(a,.25))*Math.pow(a.length,-1/3)))};a.thresholdScott=function(a,b,c){return Math.ceil((c-b)/(3.5*l(a)*Math.pow(a.length,-1/3)))};a.thresholdSturges=v;a.max=u;a.mean=function(a,b){var c,d=a.length,e=d,g=-1,h=0;if(null==b)for(;++g<d;)isNaN(c=f(a[g]))?--e:h+=c;else for(;++g<d;)isNaN(c=f(b(a[g],g,a)))?--e:h+=c;if(e)return h/e};a.median=function(a,c){var d,e=a.length,g=-1,h=[];if(null==c)for(;++g<e;)isNaN(d=f(a[g]))||h.push(d);else for(;++g<e;)isNaN(d=f(c(a[g],g,a)))||h.push(d);return k(h.sort(b),.5)};a.merge=p;a.min=E;a.pairs=function(a,b){null==b&&(b=e);for(var c=0,d=a.length-1,f=a[0],g=Array(0>d?0:d);c<d;)g[c]=b(f,f=a[++c]);return g};a.permute=function(a,b){for(var c=b.length,d=Array(c);c--;)d[c]=a[b[c]];return d};a.quantile=k;a.range=x;a.scan=function(a,c){if(d=a.length){var d,e,f=0,g=0,h=a[g];for(null==c&&(c=b);++f<d;)(0>c(e=a[f],h)||0!==c(h,h))&&(h=e,g=f);return 0===c(h,h)?g:void 0}};a.shuffle=function(a,b,c){for(var d,e=(null==c?a.length:c)-(b=null==b?0:+b);e;)d=Math.random()*e--|0,c=a[e+b],a[e+b]=a[d+b],a[d+b]=c;return a};a.sum=function(a,b){var c,d=a.length,e=-1,f=0;if(null==b)for(;++e<d;)(c=+a[e])&&(f+=c);else for(;++e<d;)(c=+b(a[e],e,a))&&(f+=c);return f};a.ticks=G;a.tickIncrement=B;a.tickStep=w;a.transpose=C;a.variance=h;a.zip=function(){return C(arguments)};a.axisTop=function(a){return H(1,a)};a.axisRight=function(a){return H(2,a)};a.axisBottom=function(a){return H(3,a)};a.axisLeft=function(a){return H(4,a)};a.brush=function(){return kd(er)};a.brushX=function(){return kd(Xi)};a.brushY=function(){return kd(Wi)};a.brushSelection=function(a){return(a=a.__brush)?a.dim.output(a.selection):null};a.chord=function(){function a(a){var f,g,h,k,l,m,n=a.length,p=[],q=x(n),r=[],t=[],u=t.groups=Array(n),v=Array(n*n);f=0;for(l=-1;++l<n;){g=0;for(m=-1;++m<n;)g+=a[l][m];p.push(g);r.push(x(n));f+=g}c&&q.sort(function(a,b){return c(p[a],p[b])});d&&r.forEach(function(b,c){b.sort(function(b,e){return d(a[c][b],a[c][e])})});k=(f=gn(0,fn-b*n)/f)?b:fn/n;g=0;for(l=-1;++l<n;){h=g;for(m=-1;++m<n;){var w=q[l],y=r[w][m],z=a[w][y],A=g,B=g+=z*f;v[y*n+w]={index:w,subindex:y,startAngle:A,endAngle:B,value:z}}u[w]={index:w,startAngle:h,endAngle:g,value:p[w]};g+=k}for(l=-1;++l<n;)for(m=l-1;++m<n;)f=v[m*n+l],g=v[l*n+m],(f.value||g.value)&&t.push(f.value<g.value?{source:g,target:f}:{source:f,target:g});return e?t.sort(e):t}var b=0,c=null,d=null,e=null;return a.padAngle=function(c){return arguments.length?(b=gn(0,c),a):b},a.sortGroups=function(b){return arguments.length?(c=b,a):c},a.sortSubgroups=function(b){return arguments.length?(d=b,a):d},a.sortChords=function(b){return arguments.length?(null==b?e=null:(c=b,e=function(a,b){return c(a.source.value+a.target.value,b.source.value+b.target.value)})._=b,a):e&&e._;var c},a};a.ribbon=function(){function a(){var a,h=fr.call(arguments),k=b.apply(this,h),l=c.apply(this,h),k=+d.apply(this,(h[0]=k,h)),m=e.apply(this,h)-Gj,n=f.apply(this,h)-Gj,p=k*cn(m),q=k*dn(m),l=+d.apply(this,(h[0]=l,h)),r=e.apply(this,h)-Gj,h=f.apply(this,h)-Gj;if(g||(g=a=wc()),g.moveTo(p,q),g.arc(0,0,k,m,n),m===r&&n===h||(g.quadraticCurveTo(0,0,l*cn(r),l*dn(r)),g.arc(0,0,l,r,h)),g.quadraticCurveTo(0,0,p,q),g.closePath(),a)return g=null,a+""||null}var b=Qe,c=Ff,d=Re,e=Gf,f=Se,g=null;return a.radius=function(b){return arguments.length?(d="function"==typeof b?b:ge(+b),a):d},a.startAngle=function(b){return arguments.length?(e="function"==typeof b?b:ge(+b),a):e},a.endAngle=function(b){return arguments.length?(f="function"==typeof b?b:ge(+b),a):f},a.source=function(c){return arguments.length?(b=c,a):b},a.target=function(b){return arguments.length?(c=b,a):c},a.context=function(b){return arguments.length?(g=null==b?null:b,a):g},a};a.nest=function(){function a(d,f,g,h){if(f>=e.length)return null!=b&&d.sort(b),null!=c?c(d):d;for(var k,l,m,n=-1,p=d.length,q=e[f++],r=cc(),t=g();++n<p;)(m=r.get(k=q(l=d[n])+""))?m.push(l):r.set(k,[l]);return r.each(function(b,c){h(t,c,a(b,f,g,h))}),t}var b,c,d,e=[],f=[];return d={object:function(b){return a(b,0,Ai,If)},map:function(b){return a(b,0,Te,Di)},entries:function(b){return function gk(a,b){if(++b>e.length)return a;var d,g=f[b-1];return null!=c&&b>=e.length?d=a.entries():(d=[],a.each(function(a,c){d.push({key:c,values:gk(a,b)})})),null!=g?d.sort(function(a,b){return g(a.key,b.key)}):d}(a(b,0,Te,Di),0)},key:function(a){return e.push(a),d},sortKeys:function(a){return f[e.length-1]=a,d},sortValues:function(a){return b=a,d},rollup:function(a){return c=a,d}}};a.set=rg;a.map=cc;a.keys=function(a){var b=[],c;for(c in a)b.push(c);return b};a.values=function(a){var b=[],c;for(c in a)b.push(a[c]);return b};a.entries=function(a){var b=[],c;for(c in a)b.push({key:c,value:a[c]});return b};a.color=Vb;a.rgb=dd;a.hsl=Yd;a.lab=Rc;a.hcl=Me;a.lch=function(a,b,c,d){return 1===arguments.length?og(a):new sb(c,b,a,null==d?1:d)};a.gray=function(a,b){return new Yb(a,0,0,null==b?1:b)};a.cubehelix=sa;a.contours=Dd;a.contourDensity=function(){function a(a){var c=new Float32Array(r*t),d=new Float32Array(r*t);a.forEach(function(a,b,d){var e=+g(a,b,d)+q>>p,f=+h(a,b,d)+q>>p;a=+k(a,b,d);0<=e&&e<r&&0<=f&&f<t&&(c[e+f*r]+=a)});sg({width:r,height:t,data:c},{width:r,height:t,data:d},n>>p);he({width:r,height:t,data:d},{width:r,height:t,data:c},n>>p);sg({width:r,height:t,data:c},{width:r,height:t,data:d},n>>p);he({width:r,height:t,data:d},{width:r,height:t,data:c},n>>p);sg({width:r,height:t,data:c},{width:r,height:t,data:d},n>>p);he({width:r,height:t,data:d},{width:r,height:t,data:c},n>>p);a=v(c);Array.isArray(a)||(d=u(c),a=w(0,d,a),(a=x(0,Math.floor(d/a)*a,a)).shift());return Dd().thresholds(a).size([r,t])(c).map(b)}function b(a){return a.value*=Math.pow(2,-2*p),a.coordinates.forEach(c),a}function c(a){a.forEach(d)}function d(a){a.forEach(e)}function e(a){a[0]=a[0]*Math.pow(2,p)-q;a[1]=a[1]*Math.pow(2,p)-q}function f(){return r=l+2*(q=3*n)>>p,t=m+2*q>>p,a}var g=Ci,h=Bi,k=Hf,l=960,m=500,n=20,p=2,q=3*n,r=l+2*q>>p,t=m+2*q>>p,v=Gc(20);return a.x=function(b){return arguments.length?(g="function"==typeof b?b:Gc(+b),a):g},a.y=function(b){return arguments.length?(h="function"==typeof b?b:Gc(+b),a):h},a.weight=function(b){return arguments.length?(k="function"==typeof b?b:Gc(+b),a):k},a.size=function(a){if(!arguments.length)return[l,m];var b=Math.ceil(a[0]),c=Math.ceil(a[1]);if(!(0<=b||0<=b))throw Error("invalid size");return l=b,m=c,f()},a.cellSize=function(a){if(!arguments.length)return 1<<p;if(!(1<=(a=+a)))throw Error("invalid cell size");return p=Math.floor(Math.log(a)/Math.LN2),f()},a.thresholds=function(b){return arguments.length?(v="function"==typeof b?b:Array.isArray(b)?Gc(Rl.call(b)):Gc(b),a):v},a.bandwidth=function(a){if(!arguments.length)return Math.sqrt(n*(n+1));if(!(0<=(a=+a)))throw Error("invalid bandwidth");return n=Math.round((Math.sqrt(4*a*a+1)-1)/2),f()},a};a.dispatch=D;a.drag=function(){function b(a){a.on("mousedown.drag",c).filter(u).on("touchstart.drag",f).on("touchmove.drag",g).on("touchend.drag touchcancel.drag",h).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function c(){if(!p&&q.apply(this,arguments)){var b=k("mouse",r.apply(this,arguments),tc,this,arguments);b&&(Va(a.event.view).on("mousemove.drag",d,!0).on("mouseup.drag",e,!0),db(a.event.view),a.event.stopImmediatePropagation(),n=!1,l=a.event.clientX,m=a.event.clientY,b("start"))}}function d(){if(Oc(),!n){var b=a.event.clientX-l,c=a.event.clientY-m;n=b*b+c*c>y}v.mouse("drag")}function e(){Va(a.event.view).on("mousemove.drag mouseup.drag",null);bd(a.event.view,n);Oc();v.mouse("end")}function f(){if(q.apply(this,arguments)){var b,c,d=a.event.changedTouches,e=r.apply(this,arguments),f=d.length;for(b=0;b<f;++b)if(c=k(d[b].identifier,e,vd,this,arguments))a.event.stopImmediatePropagation(),c("start")}}function g(){var b,c,d=a.event.changedTouches,e=d.length;for(b=0;b<e;++b)(c=v[d[b].identifier])&&(Oc(),c("drag"))}function h(){var b,c,d=a.event.changedTouches,e=d.length;p&&clearTimeout(p);p=setTimeout(function(){p=null},500);for(b=0;b<e;++b)if(c=v[d[b].identifier])a.event.stopImmediatePropagation(),c("end")}function k(c,d,e,f,g){var h,k,l,m=e(d,c),n=w.copy();if(kb(new lb(b,"beforestart",h,c,x,m[0],m[1],0,0,n),function(){return null!=(a.event.subject=h=t.apply(f,g))&&(k=h.x-m[0]||0,l=h.y-m[1]||0,!0)}))return function at(a){var p,q=m;switch(a){case "start":v[c]=at;p=x++;break;case "end":delete v[c],--x;case "drag":m=e(d,c),p=x}kb(new lb(b,a,h,c,p,m[0]+k,m[1]+l,m[0]-q[0],m[1]-q[1],n),n.apply,n,[a,f,g])}}var l,m,n,p,q=wf,r=Sa,t=ng,u=Qc,v={},w=D("start","drag","end"),x=0,y=0;return b.filter=function(a){return arguments.length?(q="function"==typeof a?a:Pc(!!a),b):q},b.container=function(a){return arguments.length?(r="function"==typeof a?a:Pc(a),b):r},b.subject=function(a){return arguments.length?(t="function"==typeof a?a:Pc(a),b):t},b.touchable=function(a){return arguments.length?(u="function"==typeof a?a:Pc(!!a),b):u},b.on=function(){var a=w.on.apply(w,arguments);return a===w?b:a},b.clickDistance=function(a){return arguments.length?(y=(a=+a)*a,b):Math.sqrt(y)},b};a.dragDisable=db;a.dragEnable=bd;a.dsvFormat=Jf;a.csvParse=hn;a.csvParseRows=hr;a.csvFormat=ir;a.csvFormatRows=jr;a.tsvParse=jn;a.tsvParseRows=kr;a.tsvFormat=lr;a.tsvFormatRows=mr;a.easeLinear=function(a){return+a};a.easeQuad=vc;a.easeQuadIn=function(a){return a*a};a.easeQuadOut=function(a){return a*(2-a)};a.easeQuadInOut=vc;a.easeCubic=zd;a.easeCubicIn=function(a){return a*a*a};a.easeCubicOut=function(a){return--a*a*a+1};a.easeCubicInOut=zd;a.easePoly=Zm;a.easePolyIn=Yq;a.easePolyOut=Zq;a.easePolyInOut=Zm;a.easeSin=qg;a.easeSinIn=function(a){return 1-Math.cos(a*$m)};a.easeSinOut=function(a){return Math.sin(a*$m)};a.easeSinInOut=qg;a.easeExp=de;a.easeExpIn=function(a){return Math.pow(2,10*a-10)};a.easeExpOut=function(a){return 1-Math.pow(2,-10*a)};a.easeExpInOut=de;a.easeCircle=Pe;a.easeCircleIn=function(a){return 1-Math.sqrt(1-a*a)};a.easeCircleOut=function(a){return Math.sqrt(1- --a*a)};a.easeCircleInOut=Pe;a.easeBounce=hd;a.easeBounceIn=function(a){return 1-hd(1-a)};a.easeBounceOut=hd;a.easeBounceInOut=function(a){return(1>=(a*=2)?1-hd(1-a):hd(a-1)+1)/2};a.easeBack=an;a.easeBackIn=$q;a.easeBackOut=ar;a.easeBackInOut=an;a.easeElastic=bn;a.easeElasticIn=br;a.easeElasticOut=bn;a.easeElasticInOut=cr;a.blob=function(a,b){return fetch(a,b).then(Ei)};a.buffer=function(a,b){return fetch(a,b).then(ie)};a.dsv=function(a,b,c,d){3===arguments.length&&"function"==typeof c&&(d=c,c=void 0);var e=Jf(a);return Kf(b,c).then(function(a){return e.parse(a,d)})};a.csv=nr;a.tsv=or;a.image=function(a,b){return new Promise(function(c,d){var e=new Image,f;for(f in b)e[f]=b[f];e.onerror=d;e.onload=function(){c(e)};e.src=a})};a.json=function(a,b){return fetch(a,b).then(Ve)};a.text=Kf;a.xml=pr;a.html=qr;a.svg=rr;a.forceCenter=function(a,b){function c(){var c,e,f=d.length,g=0,h=0;for(c=0;c<f;++c)g+=(e=d[c]).x,h+=e.y;g=g/f-a;h=h/f-b;for(c=0;c<f;++c)(e=d[c]).x-=g,e.y-=h}var d;return null==a&&(a=0),null==b&&(b=0),c.initialize=function(a){d=a},c.x=function(b){return arguments.length?(a=+b,c):a},c.y=function(a){return arguments.length?(b=+a,c):b},c};a.forceCollide=function(a){function b(){function a(a,b,c,d,e){var f=a.data;a=a.r;var h=n+a;if(!f)return b>l+h||d<l-h||c>m+h||e<m-h;f.index>k.index&&(b=l-f.x-f.vx,c=m-f.y-f.vy,d=b*b+c*c,d<h*h&&(0===b&&(d+=(b=xc())*b),0===c&&(d+=(c=xc())*c),d=(h-(d=Math.sqrt(d)))/d*g,k.vx+=(b*=d)*(h=(a*=a)/(p+a)),k.vy+=(c*=d)*h,f.vx-=b*(h=1-h),f.vy-=c*h))}for(var b,d,k,l,m,n,p,q=e.length,r=0;r<h;++r)for(d=Xc(e,ne,ld).visitAfter(c),b=0;b<q;++b)k=e[b],n=f[k.index],p=n*n,l=k.x+k.vx,m=k.y+k.vy,d.visit(a)}function c(a){if(a.data)return a.r=f[a.data.index];for(var b=a.r=0;4>b;++b)a[b]&&a[b].r>a.r&&(a.r=a[b].r)}function d(){if(e){var b,c,d=e.length;f=Array(d);for(b=0;b<d;++b)c=e[b],f[c.index]=+a(c,b,e)}}var e,f,g=1,h=1;return"function"!=typeof a&&(a=ab(null==a?1:+a)),b.initialize=function(a){e=a;d()},b.iterations=function(a){return arguments.length?(h=+a,b):h},b.strength=function(a){return arguments.length?(g=+a,b):g},b.radius=function(c){return arguments.length?(a="function"==typeof c?c:ab(+c),d(),b):a},b};a.forceLink=function(a){function b(b){for(var c=0,d=a.length;c<q;++c)for(var e,h,k,m,n,p,r=0;r<d;++r)h=(e=a[r]).source,e=(k=e.target).x+k.vx-h.x-h.vx||xc(),m=k.y+k.vy-h.y-h.vy||xc(),e*=n=((n=Math.sqrt(e*e+m*m))-g[r])/n*b*f[r],m*=n,k.vx-=e*(p=l[r]),k.vy-=m*p,h.vx+=e*(p=1-p),h.vy+=m*p}function c(){if(h){var b,c;c=h.length;var n=a.length,p=cc(h,m);b=0;for(k=Array(c);b<n;++b)(c=a[b]).index=b,"object"!=typeof c.source&&(c.source=Xe(p,c.source)),"object"!=typeof c.target&&(c.target=Xe(p,c.target)),k[c.source.index]=(k[c.source.index]||0)+1,k[c.target.index]=(k[c.target.index]||0)+1;b=0;for(l=Array(n);b<n;++b)c=a[b],l[b]=k[c.source.index]/(k[c.source.index]+k[c.target.index]);f=Array(n);d();g=Array(n);e()}}function d(){if(h)for(var b=0,c=a.length;b<c;++b)f[b]=+n(a[b],b,a)}function e(){if(h)for(var b=0,c=a.length;b<c;++b)g[b]=+p(a[b],b,a)}var f,g,h,k,l,m=Lf,n=function(a){return 1/Math.min(k[a.source.index],k[a.target.index])},p=ab(30),q=1;return null==a&&(a=[]),b.initialize=function(a){h=a;c()},b.links=function(d){return arguments.length?(a=d,c(),b):a},b.id=function(a){return arguments.length?(m=a,b):m},b.iterations=function(a){return arguments.length?(q=+a,b):q},b.strength=function(a){return arguments.length?(n="function"==typeof a?a:ab(+a),d(),b):n},b.distance=function(a){return arguments.length?(p="function"==typeof a?a:ab(+a),e(),b):p},b};a.forceManyBody=function(){function a(a){var b=e.length,h=Xc(e,Mf,Ye).visitAfter(c);g=a;for(a=0;a<b;++a)f=e[a],h.visit(d)}function b(){if(e){var a,b,c=e.length;h=Array(c);for(a=0;a<c;++a)b=e[a],h[b.index]=+k(b,a,e)}}function c(a){var b,c,d,e,f,g=0,k=0;if(a.length){for(d=e=f=0;4>f;++f)(b=a[f])&&(c=Math.abs(b.value))&&(g+=b.value,k+=c,d+=c*b.x,e+=c*b.y);a.x=d/k;a.y=e/k}else{(b=a).x=b.data.x;b.y=b.data.y;do g+=h[b.data.index];while(b=b.next)}a.value=g}function d(a,b,c,d){if(!a.value)return!0;c=a.x-f.x;var e=a.y-f.y;b=d-b;d=c*c+e*e;if(b*b/n<d)return d<m&&(0===c&&(d+=(c=xc())*c),0===e&&(d+=(e=xc())*e),d<l&&(d=Math.sqrt(l*d)),f.vx+=c*a.value*g/d,f.vy+=e*a.value*g/d),!0;if(!(a.length||d>=m)){(a.data!==f||a.next)&&(0===c&&(d+=(c=xc())*c),0===e&&(d+=(e=xc())*e),d<l&&(d=Math.sqrt(l*d)));do a.data!==f&&(b=h[a.data.index]*g/d,f.vx+=c*b,f.vy+=e*b);while(a=a.next)}}var e,f,g,h,k=ab(-30),l=1,m=1/0,n=.81;return a.initialize=function(a){e=a;b()},a.strength=function(c){return arguments.length?(k="function"==typeof c?c:ab(+c),b(),a):k},a.distanceMin=function(b){return arguments.length?(l=b*b,a):Math.sqrt(l)},a.distanceMax=function(b){return arguments.length?(m=b*b,a):Math.sqrt(m)},a.theta=function(b){return arguments.length?(n=b*b,a):Math.sqrt(n)},a};a.forceRadial=function(a,b,c){function d(a){for(var d=0,e=f.length;d<e;++d){var k=f[d],l=k.x-b||1E-6,m=k.y-c||1E-6,n=Math.sqrt(l*l+m*m),n=(h[d]-n)*g[d]*a/n;k.vx+=l*n;k.vy+=m*n}}function e(){if(f){var b,c=f.length;g=Array(c);h=Array(c);for(b=0;b<c;++b)h[b]=+a(f[b],b,f),g[b]=isNaN(h[b])?0:+k(f[b],b,f)}}var f,g,h,k=ab(.1);return"function"!=typeof a&&(a=ab(+a)),null==b&&(b=0),null==c&&(c=0),d.initialize=function(a){f=a;e()},d.strength=function(a){return arguments.length?(k="function"==typeof a?a:ab(+a),e(),d):k},d.radius=function(b){return arguments.length?(a="function"==typeof b?b:ab(+b),e(),d):a},d.x=function(a){return arguments.length?(b=+a,d):b},d.y=function(a){return arguments.length?(c=+a,d):c},d};a.forceSimulation=function(a){function b(){c();q.call("tick",f);g<h&&(p.stop(),q.call("end",f))}function c(){var b,c,d=a.length;g+=(l-g)*k;n.each(function(a){a(g)});for(b=0;b<d;++b)null==(c=a[b]).fx?c.x+=c.vx*=m:(c.x=c.fx,c.vx=0),null==c.fy?c.y+=c.vy*=m:(c.y=c.fy,c.vy=0)}function d(){for(var b,c=0,d=a.length;c<d;++c){if((b=a[c]).index=c,isNaN(b.x)||isNaN(b.y)){var e=10*Math.sqrt(c),f=c*sr;b.x=e*Math.cos(f);b.y=e*Math.sin(f)}(isNaN(b.vx)||isNaN(b.vy))&&(b.vx=b.vy=0)}}function e(b){return b.initialize&&b.initialize(a),b}var f,g=1,h=.001,k=1-Math.pow(h,1/300),l=0,m=.6,n=cc(),p=gd(b),q=D("tick","end");return null==a&&(a=[]),d(),f={tick:c,restart:function(){return p.restart(b),f},stop:function(){return p.stop(),f},nodes:function(b){return arguments.length?(a=b,d(),n.each(e),f):a},alpha:function(a){return arguments.length?(g=+a,f):g},alphaMin:function(a){return arguments.length?(h=+a,f):h},alphaDecay:function(a){return arguments.length?(k=+a,f):+k},alphaTarget:function(a){return arguments.length?(l=+a,f):l},velocityDecay:function(a){return arguments.length?(m=1-a,f):1-m},force:function(a,b){return 1<arguments.length?(null==b?n.remove(a):n.set(a,e(b)),f):n.get(a)},find:function(b,c,d){var e,f,g,h,k,l,m=a.length;null==d?d=1/0:d*=d;for(l=0;l<m;++l)(g=(e=b-(h=a[l]).x)*e+(f=c-h.y)*f)<d&&(k=h,d=g);return k},on:function(a,b){return 1<arguments.length?(q.on(a,b),f):q.on(a)}}};a.forceX=function(a){function b(a){for(var b,c=0,g=d.length;c<g;++c)(b=d[c]).vx+=(f[c]-b.x)*e[c]*a}function c(){if(d){var b,c=d.length;e=Array(c);f=Array(c);for(b=0;b<c;++b)e[b]=isNaN(f[b]=+a(d[b],b,d))?0:+g(d[b],b,d)}}var d,e,f,g=ab(.1);return"function"!=typeof a&&(a=ab(null==a?0:+a)),b.initialize=function(a){d=a;c()},b.strength=function(a){return arguments.length?(g="function"==typeof a?a:ab(+a),c(),b):g},b.x=function(d){return arguments.length?(a="function"==typeof d?d:ab(+d),c(),b):a},b};a.forceY=function(a){function b(a){for(var b,c=0,g=d.length;c<g;++c)(b=d[c]).vy+=(f[c]-b.y)*e[c]*a}function c(){if(d){var b,c=d.length;e=Array(c);f=Array(c);for(b=0;b<c;++b)e[b]=isNaN(f[b]=+a(d[b],b,d))?0:+g(d[b],b,d)}}var d,e,f,g=ab(.1);return"function"!=typeof a&&(a=ab(null==a?0:+a)),b.initialize=function(a){d=a;c()},b.strength=function(a){return arguments.length?(g="function"==typeof a?a:ab(+a),c(),b):g},b.y=function(d){return arguments.length?(a="function"==typeof d?d:ab(+d),c(),b):a},b};a.formatDefaultLocale=Gd;a.formatLocale=Fd;a.formatSpecifier=ec;a.precisionFixed=Hd;a.precisionPrefix=Id;a.precisionRound=wg;a.geoArea=function(a){return Kj.reset(),jc(a,Td),2*Kj};a.geoBounds=function(a){var b,c,d,e,f,g;if(Zc=xb=-(rb=Lc=1/0),nf=[],jc(a,De),b=nf.length){nf.sort(Ag);a=1;for(e=[c=nf[0]];a<b;++a)$e(c,(d=nf[a])[0])||$e(c,d[1])?(Mb(c[0],d[1])>Mb(c[0],c[1])&&(c[1]=d[1]),Mb(d[0],c[1])>Mb(c[0],c[1])&&(c[0]=d[0])):e.push(c=d);f=-1/0;a=0;for(c=e[b=e.length-1];a<=b;c=d,++a)d=e[a],(g=Mb(c[1],d[0]))>f&&(f=g,rb=d[0],xb=c[1])}return nf=Ce=null,rb===1/0||Lc===1/0?[[NaN,NaN],[NaN,NaN]]:[[rb,Lc],[xb,Zc]]};a.geoCentroid=function(a){bj=ej=aj=cj=dj=fj=gj=hj=lk=mk=nk=0;jc(a,td);a=lk;var b=mk,c=nk,d=a*a+b*b+c*c;return 1E-12>d&&(a=fj,b=gj,c=hj,1E-6>ej&&(a=aj,b=cj,c=dj),1E-12>(d=a*a+b*b+c*c))?[NaN,NaN]:[oc(b,a)*gb,vb(c/zb(d))*gb]};a.geoCircle=function(){function a(){var a=d.apply(this,arguments),h=e.apply(this,arguments)*ya,k=f.apply(this,arguments)*ya;return b=[],c=qe(-a[0]*ya,-a[1]*ya,0).invert,Ii(g,h,k,1),a={type:"Polygon",coordinates:[b]},b=c=null,a}var b,c,d=od([0,0]),e=od(90),f=od(6),g={point:function(a,d){b.push(a=c(a,d));a[0]*=gb;a[1]*=gb}};return a.center=function(b){return arguments.length?(d="function"==typeof b?b:od([+b[0],+b[1]]),a):d},a.radius=function(b){return arguments.length?(e="function"==typeof b?b:od(+b),a):e},a.precision=function(b){return arguments.length?(f="function"==typeof b?b:od(+b),a):f},a};a.geoClipAntimeridian=Ak;a.geoClipCircle=yh;a.geoClipExtent=function(){var a,b,c,d=0,e=0,f=960,g=500;return c={stream:function(c){return a&&b===c?a:a=Ld(d,e,f,g)(b=c)},extent:function(h){return arguments.length?(d=+h[0][0],e=+h[0][1],f=+h[1][0],g=+h[1][1],a=b=null,c):[[d,e],[f,g]]}}};a.geoClipRectangle=Ld;a.geoContains=function(a,b){return(a&&ln.hasOwnProperty(a.type)?ln[a.type]:Vf)(a,b)};a.geoDistance=Md;a.geoGraticule=Lg;a.geoGraticule10=function(){return Lg()()};a.geoInterpolate=function(a,b){var c=a[0]*ya,d=a[1]*ya,e=b[0]*ya,f=b[1]*ya,g=va(d),h=pa(d),k=va(f),l=pa(f),m=g*va(c),n=g*pa(c),p=k*va(e),q=k*pa(e),r=2*vb(zb(yg(f-d)+g*k*yg(e-c))),t=pa(r),e=r?function(a){var b=pa(a*=r)/t,c=pa(r-a)/t;a=c*m+b*p;var d=c*n+b*q,b=c*h+b*l;return[oc(d,a)*gb,oc(b,zb(a*a+d*d))*gb]}:function(){return[c*gb,d*gb]};return e.distance=r,e};a.geoLength=Ig;a.geoPath=function(a,b){function c(a){return a&&("function"==typeof f&&e.pointRadius(+f.apply(this,arguments)),jc(a,d(e))),e.result()}var d,e,f=4.5;return c.area=function(a){return jc(a,d(Ee)),Ee.result()},c.measure=function(a){return jc(a,d(Rh)),Rh.result()},c.bounds=function(a){return jc(a,d(nj)),nj.result()},c.centroid=function(a){return jc(a,d($c)),$c.result()},c.projection=function(b){return arguments.length?(d=null==b?(a=null,qd):(a=b).stream,c):a},c.context=function(a){return arguments.length?(e=null==a?(b=null,new hf):new te(b=a),"function"!=typeof f&&e.pointRadius(f),c):b},c.pointRadius=function(a){return arguments.length?(f="function"==typeof a?a:(e.pointRadius(+a),+a),c):f},c.projection(a).context(b)};a.geoAlbers=oi;a.geoAlbersUsa=function(){function a(a){var b=a[0];a=a[1];return g=null,d.point(b,a),g||(e.point(b,a),g)||(f.point(b,a),g)}var b,c,d,e,f,g,h=oi(),k=Kc().rotate([154,0]).center([-2,58.5]).parallels([55,65]),l=Kc().rotate([157,0]).center([-3,19.9]).parallels([8,18]),m={point:function(a,b){g=[a,b]}};return a.invert=function(a){var b=h.scale(),c=h.translate(),d=(a[0]-c[0])/b,b=(a[1]-c[1])/b;return(.12<=b&&.234>b&&-.425<=d&&-.214>d?k:.166<=b&&.234>b&&-.214<=d&&-.115>d?l:h).invert(a)},a.stream=function(a){return b&&c===a?b:(d=[h.stream(c=a),k.stream(a),l.stream(a)],e=d.length,b={point:function(a,b){for(var c=-1;++c<e;)d[c].point(a,b)},sphere:function(){for(var a=-1;++a<e;)d[a].sphere()},lineStart:function(){for(var a=-1;++a<e;)d[a].lineStart()},lineEnd:function(){for(var a=-1;++a<e;)d[a].lineEnd()},polygonStart:function(){for(var a=-1;++a<e;)d[a].polygonStart()},polygonEnd:function(){for(var a=-1;++a<e;)d[a].polygonEnd()}});var d,e},a.precision=function(d){return arguments.length?(h.precision(d),k.precision(d),l.precision(d),b=c=null,a):h.precision()},a.scale=function(b){return arguments.length?(h.scale(b),k.scale(.35*b),l.scale(b),a.translate(h.translate())):h.scale()},a.translate=function(g){if(!arguments.length)return h.translate();var n=h.scale(),p=+g[0],q=+g[1];return d=h.translate(g).clipExtent([[p-.455*n,q-.238*n],[p+.455*n,q+.238*n]]).stream(m),e=k.translate([p-.307*n,q+.201*n]).clipExtent([[p-.425*n+1E-6,q+.12*n+1E-6],[p-.214*n-1E-6,q+.234*n-1E-6]]).stream(m),f=l.translate([p-.205*n,q+.212*n]).clipExtent([[p-.214*n+1E-6,q+.166*n+1E-6],[p-.115*n-1E-6,q+.234*n-1E-6]]).stream(m),b=c=null,a},a.fitExtent=function(b,c){return Ac(a,b,c)},a.fitSize=function(b,c){return Ac(a,[[0,0],b],c)},a.fitWidth=function(b,c){return we(a,b,c)},a.fitHeight=function(b,c){return xe(a,b,c)},a.scale(1070)};a.geoAzimuthalEqualArea=function(){return Jc(cl).scale(124.75).clipAngle(179.999)};a.geoAzimuthalEqualAreaRaw=cl;a.geoAzimuthalEquidistant=function(){return Jc(dl).scale(79.4188).clipAngle(179.999)};a.geoAzimuthalEquidistantRaw=dl;a.geoConicConformal=function(){return Zf(Dc).scale(109.5).parallels([30,30])};a.geoConicConformalRaw=Dc;a.geoConicEqualArea=Kc;a.geoConicEqualAreaRaw=Aa;a.geoConicEquidistant=function(){return Zf(pi).scale(131.154).center([0,13.9389])};a.geoConicEquidistantRaw=pi;a.geoEqualEarth=function(){return Jc(jh).scale(177.158)};a.geoEqualEarthRaw=jh;a.geoEquirectangular=function(){return Jc(sf).scale(152.63)};a.geoEquirectangularRaw=sf;a.geoGnomonic=function(){return Jc(mh).scale(144.049).clipAngle(60)};a.geoGnomonicRaw=mh;a.geoIdentity=function(){function a(){return e=f=null,g}var b,c,d,e,f,g,h=1,k=0,l=0,m=1,n=1,p=qd,q=null,r=qd;return g={stream:function(a){return e&&f===a?e:e=p(r(f=a))},postclip:function(e){return arguments.length?(r=e,q=b=c=d=null,a()):r},clipExtent:function(e){return arguments.length?(r=null==e?(q=b=c=d=null,qd):Ld(q=+e[0][0],b=+e[0][1],c=+e[1][0],d=+e[1][1]),a()):null==q?null:[[q,b],[c,d]]},scale:function(b){return arguments.length?(p=vf((h=+b)*m,h*n,k,l),a()):h},translate:function(b){return arguments.length?(p=vf(h*m,h*n,k=+b[0],l=+b[1]),a()):[k,l]},reflectX:function(b){return arguments.length?(p=vf(h*(m=b?-1:1),h*n,k,l),a()):0>m},reflectY:function(b){return arguments.length?(p=vf(h*m,h*(n=b?-1:1),k,l),a()):0>n},fitExtent:function(a,b){return Ac(g,a,b)},fitSize:function(a,b){return Ac(g,[[0,0],a],b)},fitWidth:function(a,b){return we(g,a,b)},fitHeight:function(a,b){return xe(g,a,b)}}};a.geoProjection=Jc;a.geoProjectionMutator=Ng;a.geoMercator=function(){return qa($f).scale(961/Cc)};a.geoMercatorRaw=$f;a.geoNaturalEarth1=function(){return Jc(oh).scale(175.295)};a.geoNaturalEarth1Raw=oh;a.geoOrthographic=function(){return Jc(mg).scale(249.5).clipAngle(90.000001)};a.geoOrthographicRaw=mg;a.geoStereographic=function(){return Jc(kg).scale(250).clipAngle(142)};a.geoStereographicRaw=kg;a.geoTransverseMercator=function(){var a=qa(lg),b=a.center,c=a.rotate;return a.center=function(a){return arguments.length?b([-a[1],a[0]]):[(a=b())[1],-a[0]]},a.rotate=function(a){return arguments.length?c([a[0],a[1],2<a.length?a[2]+90:90]):[(a=c())[0],a[1],a[2]-90]},c([0,0,90]).scale(159.155)};a.geoTransverseMercatorRaw=lg;a.geoRotation=Hi;a.geoStream=jc;a.geoTransform=function(a){return{stream:rd(a)}};a.cluster=function(){function a(a){var f,g=0;a.eachAfter(function(a){var c=a.children;if(c){var d;d=c.reduce(ui,0)/c.length;a.x=d;a.y=1+c.reduce(ti,0)}else a.x=f?g+=b(a,f):0,a.y=0,f=a});var h=function(a){for(var b;b=a.children;)a=b[0];return a}(a),k=function(a){for(var b;b=a.children;)a=b[b.length-1];return a}(a),l=h.x-b(h,k)/2,m=k.x+b(k,h)/2;return a.eachAfter(e?function(b){b.x=(b.x-a.x)*c;b.y=(a.y-b.y)*d}:function(b){b.x=(b.x-l)/(m-l)*c;b.y=(1-(a.y?b.y/a.y:1))*d})}var b=vi,c=1,d=1,e=!1;return a.separation=function(c){return arguments.length?(b=c,a):b},a.size=function(b){return arguments.length?(e=!1,c=+b[0],d=+b[1],a):e?null:[c,d]},a.nodeSize=function(b){return arguments.length?(e=!0,c=+b[0],d=+b[1],a):e?[c,d]:null},a};a.hierarchy=qh;a.pack=function(){function a(a){return a.x=c/2,a.y=d/2,b?a.eachBefore(Hh(b)).eachAfter(Qg(e,.5)).eachBefore(bg(1)):a.eachBefore(Hh(Vj)).eachAfter(Qg(Rd,1)).eachAfter(Qg(e,a.r/Math.min(c,d))).eachBefore(bg(Math.min(c,d)/(2*a.r))),a}var b=null,c=1,d=1,e=Rd;return a.radius=function(c){return arguments.length?(b=null==(d=c)?null:wb(d),a):b;var d},a.size=function(b){return arguments.length?(c=+b[0],d=+b[1],a):[c,d]},a.padding=function(b){return arguments.length?(e="function"==typeof b?b:Sd(+b),a):e},a};a.packSiblings=function(a){return Gh(a),a};a.packEnclose=Fi;a.partition=function(){function a(a){var f=a.height+1;return a.x0=a.y0=d,a.x1=b,a.y1=c/f,a.eachBefore(function(a,b){return function(c){c.children&&Qd(c,c.x0,a*(c.depth+1)/b,c.x1,a*(c.depth+2)/b);var e=c.x0,f=c.y0,g=c.x1-d,h=c.y1-d;g<e&&(e=g=(e+g)/2);h<f&&(f=h=(f+h)/2);c.x0=e;c.y0=f;c.x1=g;c.y1=h}}(c,f)),e&&a.eachBefore(Hg),a}var b=1,c=1,d=0,e=!1;return a.round=function(b){return arguments.length?(e=!!b,a):e},a.size=function(d){return arguments.length?(b=+d[0],c=+d[1],a):[b,c]},a.padding=function(b){return arguments.length?(d=+b,a):d},a};a.stratify=function(){function a(a){var c,e,f,g,h,k,l=a.length,m=Array(l),n={};for(e=0;e<l;++e)c=a[e],g=m[e]=new dc(c),null!=(h=b(c,e,a))&&(h+="")&&(n[k="$"+(g.id=h)]=k in n?mn:g);for(e=0;e<l;++e)if(g=m[e],null!=(h=d(a[e],e,a))&&(h+="")){if(!(c=n["$"+h]))throw Error("missing: "+h);if(c===mn)throw Error("ambiguous: "+h);c.children?c.children.push(g):c.children=[g];g.parent=c}else{if(f)throw Error("multiple roots");f=g}if(!f)throw Error("no root");if(f.parent=tr,f.eachBefore(function(a){a.depth=a.parent.depth+1;--l}).eachBefore(Pi),f.parent=null,0<l)throw Error("cycle");return f}var b=Fh,d=c;return a.id=function(c){return arguments.length?(b=wb(c),a):b},a.parentId=function(b){return arguments.length?(d=wb(b),a):d},a};a.tree=function(){function a(a){var g=function(a){for(var b,c,d,e=new y(a,0),f=[e];a=f.pop();)if(c=a._.children)for(a.children=Array(b=c.length),d=b-1;0<=d;--d)f.push(b=a.children[d]=new y(c[d],d)),b.parent=a;return(e.parent=new y(null,0)).children=[e],e}(a);if(g.eachAfter(b),g.parent.m=-g.z,g.eachBefore(c),k)a.eachBefore(d);else{var l=a,m=a,n=a;a.eachBefore(function(a){a.x<l.x&&(l=a);a.x>m.x&&(m=a);a.depth>n.depth&&(n=a)});var g=l===m?1:e(l,m)/2,p=g-l.x,q=f/(m.x+g+p),r=h/(n.depth||1);a.eachBefore(function(a){a.x=(a.x+p)*q;a.y=a.depth*r})}return a}function b(a){var b=a.children,c=a.parent.children,d=a.i?c[a.i-1]:null;b?(!function(a){for(var b=0,c=0,d=a.children,e=d.length;0<=--e;)(a=d[e]).z+=b,a.m+=b,b+=a.s+(c+=a.c)}(a),b=(b[0].z+b[b.length-1].z)/2,d?(a.z=d.z+e(a._,d._),a.m=a.z-b):a.z=b):d&&(a.z=d.z+e(a._,d._));a.parent.A=function(a,b,c){if(b){for(var d=a,f=a,g=b,h=d.parent.children[0],k=d.m,l=f.m,m=g.m,p=h.m;g=t(g),d=n(d),g&&d;){h=n(h);(f=t(f)).a=a;if(0<(b=g.z+m-d.z-k+e(g._,d._))){var q=g.a.parent===a.parent?g.a:c,r=a,u=b,v=u/(r.i-q.i);r.c-=v;r.s+=u;q.c+=v;r.z+=u;r.m+=u;k+=b;l+=b}m+=g.m;k+=d.m;p+=h.m;l+=f.m}g&&!t(f)&&(f.t=g,f.m+=m-l);d&&!n(h)&&(h.t=d,h.m+=k-p,c=a)}return c}(a,d,a.parent.A||c[0])}function c(a){a._.x=a.z+a.parent.m;a.m+=a.parent.m}function d(a){a.x*=f;a.y=a.depth*h}var e=g,f=1,h=1,k=null;return a.separation=function(b){return arguments.length?(e=b,a):e},a.size=function(b){return arguments.length?(k=!1,f=+b[0],h=+b[1],a):k?null:[f,h]},a.nodeSize=function(b){return arguments.length?(k=!0,f=+b[0],h=+b[1],a):k?[f,h]:null},a};a.treemap=function(){function a(a){return a.x0=a.y0=0,a.x1=e,a.y1=f,a.eachBefore(b),g=[0],d&&a.eachBefore(Hg),a}function b(a){var b=g[a.depth],d=a.x0+b,e=a.y0+b,f=a.x1-b,p=a.y1-b;f<d&&(d=f=(d+f)/2);p<e&&(e=p=(e+p)/2);a.x0=d;a.y0=e;a.x1=f;a.y1=p;a.children&&(b=g[a.depth+1]=h(a)/2,d+=n(a)-b,e+=k(a)-b,(f-=l(a)-b)<d&&(d=f=(d+f)/2),(p-=m(a)-b)<e&&(e=p=(e+p)/2),c(a,d,e,f,p))}var c=on,d=!1,e=1,f=1,g=[0],h=Rd,k=Rd,l=Rd,m=Rd,n=Rd;return a.round=function(b){return arguments.length?(d=!!b,a):d},a.size=function(b){return arguments.length?(e=+b[0],f=+b[1],a):[e,f]},a.tile=function(b){return arguments.length?(c=wb(b),a):c},a.padding=function(b){return arguments.length?a.paddingInner(b).paddingOuter(b):a.paddingInner()},a.paddingInner=function(b){return arguments.length?(h="function"==typeof b?b:Sd(+b),a):h},a.paddingOuter=function(b){return arguments.length?a.paddingTop(b).paddingRight(b).paddingBottom(b).paddingLeft(b):a.paddingTop()},a.paddingTop=function(b){return arguments.length?(k="function"==typeof b?b:Sd(+b),a):k},a.paddingRight=function(b){return arguments.length?(l="function"==typeof b?b:Sd(+b),a):l},a.paddingBottom=function(b){return arguments.length?(m="function"==typeof b?b:Sd(+b),a):m},a.paddingLeft=function(b){return arguments.length?(n="function"==typeof b?b:Sd(+b),a):n},a};a.treemapBinary=function(a,b,c,d,e){var f,g,h=a.children,k=h.length,l=Array(k+1);for(l[0]=g=f=0;f<k;++f)l[f+1]=g+=h[f].value;!function Vi(a,b,c,d,e,f,g){if(a>=b-1)return a=h[a],a.x0=d,a.y0=e,a.x1=f,void(a.y1=g);for(var k=l[a],m=c/2+k,n=a+1,p=b-1;n<p;){var q=n+p>>>1;l[q]<m?n=q+1:p=q}m-l[n-1]<l[n]-m&&a+1<n&&--n;k=l[n]-k;m=c-k;f-d>g-e?(c=(d*m+f*k)/c,Vi(a,n,k,d,e,c,g),Vi(n,b,m,c,e,f,g)):(c=(e*m+g*k)/c,Vi(a,n,k,d,e,f,c),Vi(n,b,m,d,c,f,g))}(0,k,a.value,b,c,d,e)};a.treemapDice=Qd;a.treemapSlice=I;a.treemapSliceDice=function(a,b,c,d,e){(1&a.depth?I:Qd)(a,b,c,d,e)};a.treemapSquarify=on;a.treemapResquarify=ur;a.interpolate=Ib;a.interpolateArray=Ec;a.interpolateBasis=Xa;a.interpolateBasisClosed=xa;a.interpolateDate=pb;a.interpolateDiscrete=function(a){var b=a.length;return function(c){return a[Math.max(0,Math.min(b-1,Math.floor(c*b)))]}};a.interpolateHue=function(a,b){var c=fd(+a,+b);return function(a){a=c(a);return a-360*Math.floor(a/360)}};a.interpolateNumber=Wa;a.interpolateObject=xi;a.interpolateRound=rh;a.interpolateString=Bb;a.interpolateTransformCss=Wm;a.interpolateTransformSvg=Xm;a.interpolateZoom=$b;a.interpolateRgb=Ih;a.interpolateRgbBasis=mm;a.interpolateRgbBasisClosed=Rq;a.interpolateHsl=Sq;a.interpolateHslLong=Tq;a.interpolateLab=function(a,b){var c=mb((a=Rc(a)).l,(b=Rc(b)).l),d=mb(a.a,b.a),e=mb(a.b,b.b),f=mb(a.opacity,b.opacity);return function(b){return a.l=c(b),a.a=d(b),a.b=e(b),a.opacity=f(b),a+""}};a.interpolateHcl=Uq;a.interpolateHclLong=Vq;a.interpolateCubehelix=Wq;a.interpolateCubehelixLong=Fj;a.piecewise=function(a,b){for(var c=0,d=b.length-1,e=b[0],f=Array(0>d?0:d);c<d;)f[c]=a(e,e=b[++c]);return function(a){var b=Math.max(0,Math.min(d-1,Math.floor(a*=d)));return f[b](a-b)}};a.quantize=function(a,b){for(var c=Array(b),d=0;d<b;++d)c[d]=a(d/(b-1));return c};a.path=wc;a.polygonArea=function(a){for(var b,c=-1,d=a.length,e=a[d-1],f=0;++c<d;)b=e,e=a[c],f+=b[1]*e[0]-b[0]*e[1];return f/2};a.polygonCentroid=function(a){for(var b,c,d=-1,e=a.length,f=0,g=0,h=a[e-1],k=0;++d<e;)b=h,h=a[d],k+=c=b[0]*h[1]-h[0]*b[1],f+=(b[0]+h[0])*c,g+=(b[1]+h[1])*c;return[f/(k*=3),g/k]};a.polygonHull=function(a){if(3>(c=a.length))return null;var b,c,d=Array(c),e=Array(c);for(b=0;b<c;++b)d[b]=[+a[b][0],+a[b][1],b];d.sort(ea);for(b=0;b<c;++b)e[b]=[d[b][0],-d[b][1]];c=ma(d);var e=ma(e),f=e[0]===c[0],g=e[e.length-1]===c[c.length-1],h=[];for(b=c.length-1;0<=b;--b)h.push(a[d[c[b]][2]]);for(b=+f;b<e.length-g;++b)h.push(a[d[e[b]][2]]);return h};a.polygonContains=function(a,b){for(var c,d,e=a.length,f=a[e-1],g=b[0],h=b[1],k=f[0],l=f[1],m=!1,n=0;n<e;++n)c=(f=a[n])[0],(d=f[1])>h!=l>h&&g<(k-c)*(h-d)/(l-d)+c&&(m=!m),k=c,l=d;return m};a.polygonLength=function(a){for(var b,c,d=-1,e=a.length,f=a[e-1],g=f[0],f=f[1],h=0;++d<e;)b=g,c=f,b-=g=(f=a[d])[0],c-=f=f[1],h+=Math.sqrt(b*b+c*c);return h};a.quadtree=Xc;a.randomUniform=vr;a.randomNormal=pn;a.randomLogNormal=wr;a.randomBates=xr;a.randomIrwinHall=qn;a.randomExponential=yr;a.scaleBand=Gb;a.scalePoint=function(){return function ze(a){var b=a.copy;return a.padding=a.paddingOuter,delete a.paddingInner,delete a.paddingOuter,a.copy=function(){return ze(b())},a}(Gb().paddingInner(1))};a.scaleIdentity=function ze(){function a(a){return+a}var b=[0,1];return a.invert=a,a.domain=a.range=function(c){return arguments.length?(b=Dk.call(c,tl),a):b.slice()},a.copy=function(){return ze().domain(b)},ig(a)};a.scaleLinear=function sp(){var a=ri(Pj,Wa);return a.copy=function(){return qi(a,sp())},ig(a)};a.scaleLog=function Sp(){function b(){return f=ql(e),g=pl(e),0>d()[0]&&(f=rl(f),g=rl(g)),c}var c=ri(qo,ro).domain([1,10]),d=c.domain,e=10,f=ql(10),g=pl(10);return c.base=function(a){return arguments.length?(e=+a,b()):e},c.domain=function(a){return arguments.length?(d(a),b()):d()},c.ticks=function(a){var b;b=d();var c=b[0],h=b[b.length-1];(b=h<c)&&(n=c,c=h,h=n);var k,l,m,n=f(c),p=f(h);k=null==a?10:+a;a=[];if(!(e%1)&&p-n<k)if(n=Math.round(n)-1,p=Math.round(p)+1,0<c)for(;n<p;++n)for(l=1,k=g(n);l<e;++l){if(!((m=k*l)<c)){if(m>h)break;a.push(m)}}else for(;n<p;++n)for(l=e-1,k=g(n);1<=l;--l){if(!((m=k*l)<c)){if(m>h)break;a.push(m)}}else a=G(n,p,Math.min(p-n,k)).map(g);return b?a.reverse():a},c.tickFormat=function(b,d){if(null==d&&(d=10===e?".0e":","),"function"!=typeof d&&(d=a.format(d)),b===1/0)return d;null==b&&(b=10);var h=Math.max(1,e*b/c.ticks().length);return function(a){var b=a/g(Math.round(f(a)));return b*e<e-.5&&(b*=e),b<=h?d(a):""}},c.nice=function(){return d(ol(d(),{floor:function(a){return g(Math.floor(f(a)))},ceil:function(a){return g(Math.ceil(f(a)))}}))},c.copy=function(){return qi(c,Sp().base(e))},c};a.scaleOrdinal=Ub;a.scaleImplicit=Ck;a.scalePow=Qj;a.scaleSqrt=function(){return Qj().exponent(.5)};a.scaleQuantile=function Xp(){function a(){var a=0,b=Math.max(1,e.length);for(f=Array(b-1);++a<b;)f[a-1]=k(d,a/b);return c}function c(a){if(!isNaN(a=+a))return e[eg(f,a)]}var d=[],e=[],f=[];return c.invertExtent=function(a){a=e.indexOf(a);return 0>a?[NaN,NaN]:[0<a?f[a-1]:d[0],a<f.length?f[a]:d[d.length-1]]},c.domain=function(c){if(!arguments.length)return d.slice();d=[];for(var e,f=0,g=c.length;f<g;++f)null==(e=c[f])||isNaN(e=+e)||d.push(e);return d.sort(b),a()},c.range=function(b){return arguments.length?(e=of.call(b),a()):e.slice()},c.quantiles=function(){return f.slice()},c.copy=function(){return Xp().domain(d).range(e)},c};a.scaleQuantize=function Tp(){function a(a){if(a<=a)return g[eg(f,a,0,e)]}function b(){var b=-1;for(f=Array(e);++b<e;)f[b]=((b+1)*d-(b-e)*c)/(e+1);return a}var c=0,d=1,e=1,f=[.5],g=[0,1];return a.domain=function(a){return arguments.length?(c=+a[0],d=+a[1],b()):[c,d]},a.range=function(a){return arguments.length?(e=(g=of.call(a)).length-1,b()):g.slice()},a.invertExtent=function(a){a=g.indexOf(a);return 0>a?[NaN,NaN]:1>a?[c,f[0]]:a>=e?[f[e-1],d]:[f[a-1],f[a]]},a.copy=function(){return Tp().domain([c,d]).range(g)},ig(a)};a.scaleThreshold=function Up(){function a(a){if(a<=a)return c[eg(b,a,0,d)]}var b=[.5],c=[0,1],d=1;return a.domain=function(e){return arguments.length?(b=of.call(e),d=Math.min(b.length,c.length-1),a):b.slice()},a.range=function(e){return arguments.length?(c=of.call(e),d=Math.min(b.length,c.length-1),a):c.slice()},a.invertExtent=function(a){a=c.indexOf(a);return[b[a-1],b[a]]},a.copy=function(){return Up().domain(b).range(c)},a};a.scaleTime=function(){return Gk(Fe,gl,Zh,Yh,fl,el,ni,gg,a.timeFormat).domain([new Date(2E3,0,1),new Date(2E3,0,2)])};a.scaleUtc=function(){return Gk(Ge,jl,ai,Wh,il,hl,ni,gg,a.utcFormat).domain([Date.UTC(2E3,0,1),Date.UTC(2E3,0,2)])};a.scaleSequential=function Vp(a){function b(b){b=(b-c)*e;return a(f?Math.max(0,Math.min(1,b)):b)}var c=0,d=1,e=1,f=!1;return b.domain=function(a){return arguments.length?(c=+a[0],d=+a[1],e=c===d?0:1/(d-c),b):[c,d]},b.clamp=function(a){return arguments.length?(f=!!a,b):f},b.interpolator=function(c){return arguments.length?(a=c,b):a},b.copy=function(){return Vp(a).domain([c,d]).clamp(f)},ig(b)};a.scaleDiverging=function gk(a){function b(b){var c=.5+((b=+b)-d)*(b<d?f:g);return a(h?Math.max(0,Math.min(1,c)):c)}var c=0,d=.5,e=1,f=1,g=1,h=!1;return b.domain=function(a){return arguments.length?(c=+a[0],d=+a[1],e=+a[2],f=c===d?0:.5/(d-c),g=d===e?0:.5/(e-d),b):[c,d,e]},b.clamp=function(a){return arguments.length?(h=!!a,b):h},b.interpolator=function(c){return arguments.length?(a=c,b):a},b.copy=function(){return gk(a).domain([c,d,e]).clamp(h)},ig(b)};a.schemeCategory10=Xr;a.schemeAccent=Yr;a.schemeDark2=Zr;a.schemePaired=$r;a.schemePastel1=as;a.schemePastel2=bs;a.schemeSet1=cs;a.schemeSet2=ds;a.schemeSet3=es;a.interpolateBrBG=fs;a.schemeBrBG=En;a.interpolatePRGn=gs;a.schemePRGn=Fn;a.interpolatePiYG=hs;a.schemePiYG=Gn;a.interpolatePuOr=is;a.schemePuOr=Hn;a.interpolateRdBu=js;a.schemeRdBu=In;a.interpolateRdGy=ks;a.schemeRdGy=Jn;a.interpolateRdYlBu=ls;a.schemeRdYlBu=Kn;a.interpolateRdYlGn=ms;a.schemeRdYlGn=Ln;a.interpolateSpectral=ns;a.schemeSpectral=Mn;a.interpolateBuGn=os;a.schemeBuGn=Nn;a.interpolateBuPu=ps;a.schemeBuPu=On;a.interpolateGnBu=qs;a.schemeGnBu=Pn;a.interpolateOrRd=rs;a.schemeOrRd=Qn;a.interpolatePuBuGn=ss;a.schemePuBuGn=Rn;a.interpolatePuBu=ts;a.schemePuBu=Sn;a.interpolatePuRd=us;a.schemePuRd=Tn;a.interpolateRdPu=vs;a.schemeRdPu=Un;a.interpolateYlGnBu=ws;a.schemeYlGnBu=Vn;a.interpolateYlGn=xs;a.schemeYlGn=Wn;a.interpolateYlOrBr=ys;a.schemeYlOrBr=Xn;a.interpolateYlOrRd=zs;a.schemeYlOrRd=Yn;a.interpolateBlues=As;a.schemeBlues=Zn;a.interpolateGreens=Bs;a.schemeGreens=$n;a.interpolateGreys=Cs;a.schemeGreys=ao;a.interpolatePurples=Ds;a.schemePurples=bo;a.interpolateReds=Es;a.schemeReds=co;a.interpolateOranges=Fs;a.schemeOranges=eo;a.interpolateCubehelixDefault=Gs;a.interpolateRainbow=function(a){(0>a||1<a)&&(a-=Math.floor(a));var b=Math.abs(a-.5);return Nj.h=360*a-100,Nj.s=1.5-1.5*b,Nj.l=.8-.9*b,Nj+""};a.interpolateWarm=Hs;a.interpolateCool=Is;a.interpolateSinebow=function(a){var b;return a=(.5-a)*Math.PI,Oj.r=255*(b=Math.sin(a))*b,Oj.g=255*(b=Math.sin(a+Js))*b,Oj.b=255*(b=Math.sin(a+Ks))*b,Oj+""};a.interpolateViridis=Ls;a.interpolateMagma=Ms;a.interpolateInferno=Ns;a.interpolatePlasma=Os;a.create=function(a){return Va(J(a).call(document.documentElement))};a.creator=J;a.local=Je;a.matcher=Vk;a.mouse=tc;a.namespace=Q;a.namespaces=ak;a.clientPoint=hb;a.select=Va;a.selectAll=function(a){return"string"==typeof a?new wa([document.querySelectorAll(a)],[document.documentElement]):new wa([null==a?[]:a],bk)};a.selection=Ma;a.selector=ba;a.selectorAll=Na;a.style=ga;a.touch=vd;a.touches=function(a,b){null==b&&(b=Nc().touches);for(var c=0,d=b?b.length:0,e=Array(d);c<d;++c)e[c]=hb(a,b[c]);return e};a.window=S;a.customEvent=kb;a.arc=function(){function a(){var a,l,m,n=+b.apply(this,arguments),p=+c.apply(this,arguments),q=f.apply(this,arguments)-rj,r=g.apply(this,arguments)-rj,t=fo(r-q),u=r>q;if(k||(k=a=wc()),p<n&&(l=p,p=n,n=l),1E-12<p)if(t>rf-1E-12)k.moveTo(p*hg(q),p*Wd(q)),k.arc(0,0,p,q,r,!u),1E-12<n&&(k.moveTo(n*hg(r),n*Wd(r)),k.arc(0,0,n,r,q,u));else{var v,w;l=q;var x=r,y=q,z=r,A=t,B=t,C=h.apply(this,arguments)/2,D=1E-12<C&&(e?+e.apply(this,arguments):ah(n*n+p*p)),E=kl(fo(p-n)/2,+d.apply(this,arguments)),F=E,G=E;if(1E-12<D){var H=nm(D/n*Wd(C)),C=nm(D/p*Wd(C));1E-12<(A-=2*H)?(y+=H*=u?1:-1,z-=H):(A=0,y=z=(q+r)/2);1E-12<(B-=2*C)?(l+=C*=u?1:-1,x-=C):(B=0,l=x=(q+r)/2)}q=p*hg(l);r=p*Wd(l);H=n*hg(z);C=n*Wd(z);if(1E-12<E){var I=p*hg(x),J=p*Wd(x),K=n*hg(y),L=n*Wd(y);if(t<qf){1E-12<A?(F=K-q,t=L-r,G=H-I,D=C-J,G=(G*(r-J)-D*(q-I))/(D*F-G*t),F=[q+G*F,r+G*t]):F=[H,C];var t=q-F[0],G=r-F[1],D=I-F[0],M=J-F[1],t=1/Wd((1<(m=(t*D+G*M)/(ah(t*t+G*G)*ah(D*D+M*M)))?0:-1>m?qf:Math.acos(m))/2);m=ah(F[0]*F[0]+F[1]*F[1]);F=kl(E,(n-m)/(t-1));G=kl(E,(p-m)/(t+1))}}1E-12<B?1E-12<G?(v=sj(K,L,q,r,p,G,u),w=sj(I,J,H,C,p,G,u),k.moveTo(v.cx+v.x01,v.cy+v.y01),G<E?k.arc(v.cx,v.cy,G,ic(v.y01,v.x01),ic(w.y01,w.x01),!u):(k.arc(v.cx,v.cy,G,ic(v.y01,v.x01),ic(v.y11,v.x11),!u),k.arc(0,0,p,ic(v.cy+v.y11,v.cx+v.x11),ic(w.cy+w.y11,w.cx+w.x11),!u),k.arc(w.cx,w.cy,G,ic(w.y11,w.x11),ic(w.y01,w.x01),!u))):(k.moveTo(q,r),k.arc(0,0,p,l,x,!u)):k.moveTo(q,r);1E-12<n&&1E-12<A?1E-12<F?(v=sj(H,C,I,J,n,-F,u),w=sj(q,r,K,L,n,-F,u),k.lineTo(v.cx+v.x01,v.cy+v.y01),F<E?k.arc(v.cx,v.cy,F,ic(v.y01,v.x01),ic(w.y01,w.x01),!u):(k.arc(v.cx,v.cy,F,ic(v.y01,v.x01),ic(v.y11,v.x11),!u),k.arc(0,0,n,ic(v.cy+v.y11,v.cx+v.x11),ic(w.cy+w.y11,w.cx+w.x11),u),k.arc(w.cx,w.cy,F,ic(w.y11,w.x11),ic(w.y01,w.x01),!u))):k.arc(0,0,n,z,y,u):k.lineTo(H,C)}else k.moveTo(0,0);if(k.closePath(),a)return k=null,a+""||null}var b=iq,c=jq,d=Ka(0),e=null,f=kq,g=lq,h=mq,k=null;return a.centroid=function(){var a=(+b.apply(this,arguments)+ +c.apply(this,arguments))/2,d=(+f.apply(this,arguments)+ +g.apply(this,arguments))/2-qf/2;return[hg(d)*a,Wd(d)*a]},a.innerRadius=function(c){return arguments.length?(b="function"==typeof c?c:Ka(+c),a):b},a.outerRadius=function(b){return arguments.length?(c="function"==typeof b?b:Ka(+b),a):c},a.cornerRadius=function(b){return arguments.length?(d="function"==typeof b?b:Ka(+b),a):d},a.padRadius=function(b){return arguments.length?(e=null==b?null:"function"==typeof b?b:Ka(+b),a):e},a.startAngle=function(b){return arguments.length?(f="function"==typeof b?b:Ka(+b),a):f},a.endAngle=function(b){return arguments.length?(g="function"==typeof b?b:Ka(+b),a):g},a.padAngle=function(b){return arguments.length?(h="function"==typeof b?b:Ka(+b),a):h},a.context=function(b){return arguments.length?(k=null==b?null:b,a):k},a};a.area=pm;a.line=Jk;a.pie=function(){function a(a){var h,k,l,m,n,p=a.length;k=0;var q=Array(p),r=Array(p),t=+e.apply(this,arguments);l=Math.min(rf,Math.max(-rf,f.apply(this,arguments)-t));var u=Math.min(Math.abs(l)/p,g.apply(this,arguments)),v=u*(0>l?-1:1);for(h=0;h<p;++h)0<(n=r[q[h]=h]=+b(a[h],h,a))&&(k+=n);null!=c?q.sort(function(a,b){return c(r[a],r[b])}):null!=d&&q.sort(function(b,c){return d(a[b],a[c])});h=0;for(l=k?(l-p*v)/k:0;h<p;++h,t=m)k=q[h],m=t+(0<(n=r[k])?n*l:0)+v,r[k]={data:a[k],index:h,value:n,startAngle:t,endAngle:m,padAngle:u};return r}var b=pq,c=oq,d=null,e=Ka(0),f=Ka(rf),g=Ka(0);return a.value=function(c){return arguments.length?(b="function"==typeof c?c:Ka(+c),a):b},a.sortValues=function(b){return arguments.length?(c=b,d=null,a):c},a.sort=function(b){return arguments.length?(d=b,c=null,a):d},a.startAngle=function(b){return arguments.length?(e="function"==typeof b?b:Ka(+b),a):e},a.endAngle=function(b){return arguments.length?(f="function"==typeof b?b:Ka(+b),a):f},a.padAngle=function(b){return arguments.length?(g="function"==typeof b?b:Ka(+b),a):g},a};a.areaRadial=tm;a.radialArea=tm;a.lineRadial=rm;a.radialLine=rm;a.pointRadial=di;a.linkHorizontal=function(){return Lk(sq)};a.linkVertical=function(){return Lk(tq)};a.linkRadial=function(){var a=Lk(uq);return a.angle=a.x,delete a.x,a.radius=a.y,delete a.y,a};a.symbol=function(){function a(){var a;if(d||(d=a=wc()),b.apply(this,arguments).draw(d,+c.apply(this,arguments)),a)return d=null,a+""||null}var b=Ka(ll),c=Ka(64),d=null;return a.type=function(c){return arguments.length?(b="function"==typeof c?c:Ka(c),a):b},a.size=function(b){return arguments.length?(c="function"==typeof b?b:Ka(+b),a):c},a.context=function(b){return arguments.length?(d=null==b?null:b,a):d},a};a.symbols=Ts;a.symbolCircle=ll;a.symbolCross=go;a.symbolDiamond=io;a.symbolSquare=lo;a.symbolStar=ko;a.symbolTriangle=mo;a.symbolWye=no;a.curveBasisClosed=function(a){return new um(a)};a.curveBasisOpen=function(a){return new vm(a)};a.curveBasis=function(a){return new vj(a)};a.curveBundle=Us;a.curveCardinalClosed=Ws;a.curveCardinalOpen=Xs;a.curveCardinal=Vs;a.curveCatmullRomClosed=Zs;a.curveCatmullRomOpen=$s;a.curveCatmullRom=Ys;a.curveLinearClosed=function(a){return new Am(a)};a.curveLinear=tj;a.curveMonotoneX=function(a){return new xj(a)};a.curveMonotoneY=function(a){return new Dm(a)};a.curveNatural=function(a){return new Fm(a)};a.curveStep=function(a){return new yj(a,.5)};a.curveStepAfter=function(a){return new yj(a,1)};a.curveStepBefore=function(a){return new yj(a,0)};a.stack=function(){function a(a){var f,g;g=b.apply(this,arguments);var h=a.length,k=g.length,l=Array(k);for(f=0;f<k;++f){for(var m,n=g[f],p=l[f]=Array(h),q=0;q<h;++q)p[q]=m=[0,+e(a[q],n,q,a)],m.data=a[q];p.key=n}f=0;for(g=c(l);f<k;++f)l[g[f]].index=f;return d(l,g),l}var b=Ka([]),c=ch,d=bh,e=vq;return a.keys=function(c){return arguments.length?(b="function"==typeof c?c:Ka(Mk.call(c)),a):b},a.value=function(b){return arguments.length?(e="function"==typeof b?b:Ka(+b),a):e},a.order=function(b){return arguments.length?(c=null==b?ch:"function"==typeof b?b:Ka(Mk.call(b)),a):c},a.offset=function(b){return arguments.length?(d=null==b?bh:b,a):d},a};a.stackOffsetExpand=function(a,b){if(0<(d=a.length)){for(var c,d,e,f=0,g=a[0].length;f<g;++f){for(e=c=0;c<d;++c)e+=a[c][f][1]||0;if(e)for(c=0;c<d;++c)a[c][f][1]/=e}bh(a,b)}};a.stackOffsetDiverging=function(a,b){if(1<(h=a.length))for(var c,d,e,f,g,h,k=0,l=a[b[0]].length;k<l;++k)for(c=f=g=0;c<h;++c)0<=(e=(d=a[b[c]][k])[1]-d[0])?(d[0]=f,d[1]=f+=e):0>e?(d[1]=g,d[0]=g+=e):d[0]=f};a.stackOffsetNone=bh;a.stackOffsetSilhouette=function(a,b){if(0<(c=a.length)){for(var c,d=0,e=a[b[0]],f=e.length;d<f;++d){for(var g=0,h=0;g<c;++g)h+=a[g][d][1]||0;e[d][1]+=e[d][0]=-h/2}bh(a,b)}};a.stackOffsetWiggle=function(a,b){if(0<(e=a.length)&&0<(d=(c=a[b[0]]).length)){for(var c,d,e,f=0,g=1;g<d;++g){for(var h=0,k=0,l=0;h<e;++h){for(var m=a[b[h]],n=m[g][1]||0,m=(n-(m[g-1][1]||0))/2,p=0;p<h;++p)var q=a[b[p]],m=m+((q[g][1]||0)-(q[g-1][1]||0));k+=n;l+=m*n}c[g-1][1]+=c[g-1][0]=f;k&&(f-=l/k)}c[g-1][1]+=c[g-1][0]=f;bh(a,b)}};a.stackOrderAscending=Hm;a.stackOrderDescending=function(a){return Hm(a).reverse()};a.stackOrderInsideOut=function(a){var b,c=a.length,d=a.map(Im),e=ch(a).sort(function(a,b){return d[b]-d[a]}),f=0,g=0,h=[],k=[];for(a=0;a<c;++a)b=e[a],f<g?(f+=d[b],h.push(b)):(g+=d[b],k.push(b));return k.reverse().concat(h)};a.stackOrderNone=ch;a.stackOrderReverse=function(a){return ch(a).reverse()};a.timeInterval=Ab;a.timeMillisecond=gg;a.timeMilliseconds=sn;a.utcMillisecond=gg;a.utcMilliseconds=sn;a.timeSecond=ni;a.timeSeconds=tn;a.utcSecond=ni;a.utcSeconds=tn;a.timeMinute=el;a.timeMinutes=zr;a.timeHour=fl;a.timeHours=Ar;a.timeDay=Yh;a.timeDays=Br;a.timeWeek=Zh;a.timeWeeks=yn;a.timeSunday=Zh;a.timeSundays=yn;a.timeMonday=Xh;a.timeMondays=Cr;a.timeTuesday=un;a.timeTuesdays=Dr;a.timeWednesday=vn;a.timeWednesdays=Er;a.timeThursday=$h;a.timeThursdays=Fr;a.timeFriday=wn;a.timeFridays=Gr;a.timeSaturday=xn;a.timeSaturdays=Hr;a.timeMonth=gl;a.timeMonths=Ir;a.timeYear=Fe;a.timeYears=Jr;a.utcMinute=hl;a.utcMinutes=Kr;a.utcHour=il;a.utcHours=Lr;a.utcDay=Wh;a.utcDays=Mr;a.utcWeek=ai;a.utcWeeks=Dn;a.utcSunday=ai;a.utcSundays=Dn;a.utcMonday=Vh;a.utcMondays=Nr;a.utcTuesday=zn;a.utcTuesdays=Or;a.utcWednesday=An;a.utcWednesdays=Pr;a.utcThursday=bi;a.utcThursdays=Qr;a.utcFriday=Bn;a.utcFridays=Rr;a.utcSaturday=Cn;a.utcSaturdays=Sr;a.utcMonth=jl;a.utcMonths=Tr;a.utcYear=Ge;a.utcYears=Ur;a.timeFormatDefaultLocale=Dl;a.timeFormatLocale=sl;a.isoFormat=Vr;a.isoParse=Wr;a.now=Zd;a.timer=gd;a.timerFlush=$d;a.timeout=Uc;a.interval=function(a,b,c){var d=new Tc,e=b;return null==b?(d.restart(a,b,c),d):(b=+b,c=null==c?Zd():+c,d.restart(function Wp(f){f+=e;d.restart(Wp,e+=b,c);a(f)},b,c),d)};a.transition=Cf;a.active=function(a,b){var c,d,e=a.__transition;if(e)for(d in b=null==b?null:b+"",e)if(1<(c=e[d]).state&&c.name===b)return new Ha([[a]],dr,b,+d);return null};a.interrupt=Vc;a.voronoi=function(){function a(a){return new Uk(a.map(function(d,e){var f=[Math.round(b(d,e,a)/$a)*$a,Math.round(c(d,e,a)/$a)*$a];return f.index=e,f.data=d,f}),d)}var b=wq,c=xq,d=null;return a.polygons=function(b){return a(b).polygons()},a.links=function(b){return a(b).links()},a.triangles=function(b){return a(b).triangles()},a.x=function(c){return arguments.length?(b="function"==typeof c?c:Jm(+c),a):b},a.y=function(b){return arguments.length?(c="function"==typeof b?b:Jm(+b),a):c},a.extent=function(b){return arguments.length?(d=null==b?null:[[+b[0][0],+b[0][1]],[+b[1][0],+b[1][1]]],a):d&&[[d[0][0],d[0][1]],[d[1][0],d[1][1]]]},a.size=function(b){return arguments.length?(d=null==b?null:[[0,0],[+b[0],+b[1]]],a):d&&[d[1][0]-d[0][0],d[1][1]-d[0][1]]},a};a.zoom=function(){function b(a){a.property("__zoom",Rm).on("wheel.zoom",k).on("mousedown.zoom",l).on("dblclick.zoom",m).filter(y).on("touchstart.zoom",n).on("touchmove.zoom",p).on("touchend.zoom touchcancel.zoom",q).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function c(a,b){return(b=Math.max(z[0],Math.min(z[1],b)))===a.k?a:new He(b,a.x,a.y)}function d(a,b,c){var d=b[0]-c[0]*a.k;b=b[1]-c[1]*a.k;return d===a.x&&b===a.y?a:new He(a.k,d,b)}function e(a){return[(+a[0][0]+ +a[1][0])/2,(+a[0][1]+ +a[1][1])/2]}function f(a,b,c){a.on("start.zoom",function(){g(this,arguments).start()}).on("interrupt.zoom end.zoom",function(){g(this,arguments).end()}).tn("zoom",function(){var a=arguments,d=g(this,a),f=v.apply(this,a),h=c||e(f),k=Math.max(f[1][0]-f[0][0],f[1][1]-f[0][1]),f=this.__zoom,l="function"==typeof b?b.apply(this,a):b,m=C(f.invert(h).concat(k/f.k),l.invert(h).concat(k/l.k));return function(a){if(1===a)a=l;else{a=m(a);var b=k/a[2];a=new He(b,h[0]-a[0]*b,h[1]-a[1]*b)}d.zoom(null,a)}})}function g(a,b){for(var c,d=0,e=E.length;d<e;++d)if((c=E[d]).that===a)return c;return new h(a,b)}function h(a,b){this.that=a;this.args=b;this.index=-1;this.active=0;this.extent=v.apply(a,b)}function k(){if(u.apply(this,arguments)){var a=g(this,arguments),b=this.__zoom,e=Math.max(z[0],Math.min(z[1],b.k*Math.pow(2,x.apply(this,arguments)))),f=tc(this);if(a.wheel)a.mouse[0][0]===f[0]&&a.mouse[0][1]===f[1]||(a.mouse[1]=b.invert(a.mouse[0]=f)),clearTimeout(a.wheel);else{if(b.k===e)return;a.mouse=[f,b.invert(f)];Vc(this);a.start()}ji();a.wheel=setTimeout(function(){a.wheel=null;a.end()},150);a.zoom("mouse",w(d(c(b,e),a.mouse[0],a.mouse[1]),a.extent,A))}}function l(){if(!t&&u.apply(this,arguments)){var b=g(this,arguments),c=Va(a.event.view).on("mousemove.zoom",function(){if(ji(),!b.moved){var c=a.event.clientX-f,e=a.event.clientY-h;b.moved=c*c+e*e>G}b.zoom("mouse",w(d(b.that.__zoom,b.mouse[0]=tc(b.that),b.mouse[1]),b.extent,A))},!0).on("mouseup.zoom",function(){c.on("mousemove.zoom mouseup.zoom",null);bd(a.event.view,b.moved);ji();b.end()},!0),e=tc(this),f=a.event.clientX,h=a.event.clientY;db(a.event.view);a.event.stopImmediatePropagation();b.mouse=[e,this.__zoom.invert(e)];Vc(this);b.start()}}function m(){if(u.apply(this,arguments)){var e=this.__zoom,g=tc(this),h=e.invert(g),e=w(d(c(e,e.k*(a.event.shiftKey?.5:2)),g,h),v.apply(this,arguments),A);ji();0<B?Va(this).transition().duration(B).call(f,e,g):Va(this).call(b.transform,e)}}function n(){if(u.apply(this,arguments)){var b,c,d,e,f=g(this,arguments),h=a.event.changedTouches,k=h.length;a.event.stopImmediatePropagation();for(c=0;c<k;++c)e=[e=vd(this,h,(d=h[c]).identifier),this.__zoom.invert(e),d.identifier],f.touch0?f.touch1||(f.touch1=e):(f.touch0=e,b=!0);if(r&&(r=clearTimeout(r),!f.touch1))return f.end(),void((e=Va(this).on("dblclick.zoom"))&&e.apply(this,arguments));b&&(r=setTimeout(function(){r=null},500),Vc(this),f.start())}}function p(){var b,e,f,h,k=g(this,arguments),l=a.event.changedTouches,m=l.length;ji();r&&(r=clearTimeout(r));for(b=0;b<m;++b)f=vd(this,l,(e=l[b]).identifier),k.touch0&&k.touch0[2]===e.identifier?k.touch0[0]=f:k.touch1&&k.touch1[2]===e.identifier&&(k.touch1[0]=f);if(e=k.that.__zoom,k.touch1){f=k.touch0[0];b=k.touch0[1];m=k.touch1[0];l=k.touch1[1];h=(h=m[0]-f[0])*h+(h=m[1]-f[1])*h;var n=(n=l[0]-b[0])*n+(n=l[1]-b[1])*n;e=c(e,Math.sqrt(h/n));f=[(f[0]+m[0])/2,(f[1]+m[1])/2];h=[(b[0]+l[0])/2,(b[1]+l[1])/2]}else{if(!k.touch0)return;f=k.touch0[0];h=k.touch0[1]}k.zoom("touch",w(d(e,f,h),k.extent,A))}function q(){var b,c,d=g(this,arguments),e=a.event.changedTouches,f=e.length;a.event.stopImmediatePropagation();t&&clearTimeout(t);t=setTimeout(function(){t=null},500);for(b=0;b<f;++b)c=e[b],d.touch0&&d.touch0[2]===c.identifier?delete d.touch0:d.touch1&&d.touch1[2]===c.identifier&&delete d.touch1;d.touch1&&!d.touch0&&(d.touch0=d.touch1,delete d.touch1);d.touch0?d.touch0[1]=this.__zoom.invert(d.touch0[0]):d.end()}var r,t,u=Iq,v=Jq,w=Mq,x=Kq,y=Lq,z=[0,1/0],A=[[-1/0,-1/0],[1/0,1/0]],B=250,C=$b,E=[],F=D("start","zoom","end"),G=0;return b.transform=function(a,b){var c=a.selection?a.selection():a;c.property("__zoom",Rm);a!==c?f(a,b):c.interrupt().each(function(){g(this,arguments).start().zoom(null,"function"==typeof b?b.apply(this,arguments):b).end()})},b.scaleBy=function(a,c){b.scaleTo(a,function(){return this.__zoom.k*("function"==typeof c?c.apply(this,arguments):c)})},b.scaleTo=function(a,f){b.transform(a,function(){var a=v.apply(this,arguments),b=this.__zoom,g=e(a),h=b.invert(g),k="function"==typeof f?f.apply(this,arguments):f;return w(d(c(b,k),g,h),a,A)})},b.translateBy=function(a,c,d){b.transform(a,function(){return w(this.__zoom.translate("function"==typeof c?c.apply(this,arguments):c,"function"==typeof d?d.apply(this,arguments):d),v.apply(this,arguments),A)})},b.translateTo=function(a,c,d){b.transform(a,function(){var a=v.apply(this,arguments),b=this.__zoom,f=e(a);return w(Dj.translate(f[0],f[1]).scale(b.k).translate("function"==typeof c?-c.apply(this,arguments):-c,"function"==typeof d?-d.apply(this,arguments):-d),a,A)})},h.prototype={start:function(){return 1==++this.active&&(this.index=E.push(this)-1,this.emit("start")),this},zoom:function(a,b){return this.mouse&&"mouse"!==a&&(this.mouse[1]=b.invert(this.mouse[0])),this.touch0&&"touch"!==a&&(this.touch0[1]=b.invert(this.touch0[0])),this.touch1&&"touch"!==a&&(this.touch1[1]=b.invert(this.touch1[0])),this.that.__zoom=b,this.emit("zoom"),this},end:function(){return 0==--this.active&&(E.splice(this.index,1),this.index=-1,this.emit("end")),this},emit:function(a){kb(new Hq(b,a,this.that.__zoom),F.apply,F,[a,this.that,this.args])}},b.wheelDelta=function(a){return arguments.length?(x="function"==typeof a?a:Cj(+a),b):x},b.filter=function(a){return arguments.length?(u="function"==typeof a?a:Cj(!!a),b):u},b.touchable=function(a){return arguments.length?(y="function"==typeof a?a:Cj(!!a),b):y},b.extent=function(a){return arguments.length?(v="function"==typeof a?a:Cj([[+a[0][0],+a[0][1]],[+a[1][0],+a[1][1]]]),b):v},b.scaleExtent=function(a){return arguments.length?(z[0]=+a[0],z[1]=+a[1],b):[z[0],z[1]]},b.translateExtent=function(a){return arguments.length?(A[0][0]=+a[0][0],A[1][0]=+a[1][0],A[0][1]=+a[0][1],A[1][1]=+a[1][1],b):[[A[0][0],A[0][1]],[A[1][0],A[1][1]]]},b.constrain=function(a){return arguments.length?(w=a,b):w},b.duration=function(a){return arguments.length?(B=+a,b):B},b.interpolate=function(a){return arguments.length?(C=a,b):C},b.on=function(){var a=F.on.apply(F,arguments);return a===F?b:a},b.clickDistance=function(a){return arguments.length?(G=(a=+a)*a,b):Math.sqrt(G)},b};a.zoomTransform=Qm;a.zoomIdentity=Dj;Object.defineProperty(a,"__esModule",{value:!0})});
|