{"version":3,"sources":["webpack:///bundle.e879e.js","webpack:///webpack/bootstrap 520a9ca80f6c50b4f679","webpack:///../node_modules/prop-types/index.js","webpack:///../node_modules/classnames/index.js","webpack:///../node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./components/three.min.js","webpack:///./config/config.json","webpack:///../node_modules/preact-compat/dist/preact-compat.es.js","webpack:///./components/gemView/gemThree/gemThree.js","webpack:///./components/loadingbar/loadingbar.js","webpack:///./components/gemView/gemZoomControls/zoomcontrols.js","webpack:///./components/gemView/gemComponentsView/gemInteriorView/GemInteriorView.js","webpack:///./components/gemView/gemComponentsView/GemComponentsView.js","webpack:///./components/gemView/GemView.js","webpack:///./components/app.js","webpack:///./index.js","webpack:///../node_modules/preact/dist/preact.min.js","webpack:///./components/gemView/gemComponentsView/scss/gemComponentsView.scss?a803","webpack:///./components/loadingbar/scss/loadingbar.scss?41aa","webpack:///./components/gemView/gemZoomControls/scss/zoomcontrols.scss?0210","webpack:///./components/gemView/scss/gemView.scss?40fa","webpack:///./components/three/scss/three.scss?814f","webpack:///../node_modules/preact-cli/lib/lib/entry.js","webpack:///../node_modules/prop-types/factoryWithThrowingShims.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","i","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","5D9O","9qb7","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","classNames","classes","arguments","length","arg","argType","push","Array","isArray","inner","apply","key","hasOwn","join","default","undefined","Asjh","Fwn5","_extends","assign","target","source","t","e","this","_x","_y","_z","_w","x","y","z","elements","console","error","r","a","h","u","value","gn","uuid","mn","generateUUID","image","DEFAULT_IMAGE","mipmaps","mapping","DEFAULT_MAPPING","wrapS","yi","wrapT","magFilter","Ti","minFilter","Li","anisotropy","format","Hi","type","Ai","offset","repeat","generateMipmaps","premultiplyAlpha","flipY","unpackAlignment","encoding","on","version","onUpdate","data","width","height","Ei","di","seq","map","xn","Float32Array","toArray","yn","Int32Array","allocTextureUnit","uniform1f","addr","f","uniform1i","uniform2fv","uniform2f","uniform3f","g","b","uniform3fv","uniform4fv","uniform4f","w","v","uniformMatrix2fv","_","uniformMatrix3fv","En","set","uniformMatrix4fv","Mn","setTexture2D","vn","M","setTextureCube","_n","E","uniform2iv","uniform3iv","uniform4iv","T","S","uniform1fv","L","uniform1iv","A","size","R","P","C","U","N","D","I","F","id","setValue","O","B","G","V","bn","lastIndex","exec","H","renderer","getProgramParameter","ACTIVE_UNIFORMS","getActiveUniform","getUniformLocation","k","W","setRGB","X","min","max","j","Uint16Array","createBuffer","bindBuffer","ARRAY_BUFFER","bufferData","STATIC_DRAW","ELEMENT_ARRAY_BUFFER","createTexture","bindTexture","TEXTURE_2D","texImage2D","RGB","UNSIGNED_BYTE","texParameteri","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","TEXTURE_MAG_FILTER","NEAREST","TEXTURE_MIN_FILTER","RGBA","vertexShader","fragmentShader","vertex","getAttribLocation","uv","renderType","occlusionMap","opacity","color","scale","rotation","screenPosition","createProgram","createShader","FRAGMENT_SHADER","VERTEX_SHADER","getPrecision","shaderSource","compileShader","attachShader","linkProgram","context","state","render","useProgram","initAttributes","enableAttribute","disableUnusedAttributes","vertexAttribPointer","FLOAT","disable","CULL_FACE","buffers","depth","setMask","matrixWorld","applyMatrix4","matrixWorldInverse","projectionMatrix","copy","containsPoint","activeTexture","TEXTURE0","TEXTURE1","copyTexImage2D","BLEND","enable","DEPTH_TEST","drawElements","TRIANGLES","UNSIGNED_SHORT","positionScreen","customUpdateCallback","updateLensFlares","lensFlares","setBlending","blending","blendEquation","blendSrc","blendDst","texture","resetGLState","Y","position","uvOffset","uvScale","modelViewMatrix","fogType","fogDensity","fogNear","fogFar","fogColor","alphaTest","document","createElementNS","getContext","fillStyle","fillRect","needsUpdate","renderOrder","fog","isFog","near","far","isFogExp2","density","multiplyMatrices","sort","material","visible","decompose","setTest","depthTest","depthWrite","q","scissor","scissorTest","viewport","depthBuffer","stencilBuffer","depthTexture","Z","Rn","lights","Re","side","Ee","shading","Se","vertexColors","Le","transparent","ke","We","De","blendSrcAlpha","blendDstAlpha","blendEquationAlpha","depthFunc","$e","clippingPlanes","clipIntersection","clipShadows","colorWrite","precision","polygonOffset","polygonOffsetFactor","polygonOffsetUnits","dithering","premultipliedAlpha","overdraw","J","defines","uniforms","linewidth","wireframe","wireframeLinewidth","clipping","skinning","morphTargets","morphNormals","extensions","derivatives","fragDepth","drawBuffers","shaderTextureLOD","defaultAttributeValues","uv2","index0AttributeName","attributes","setValues","Q","depthPacking","fn","alphaMap","displacementMap","displacementScale","displacementBias","K","$","center","radius","tt","et","normal","constant","it","planes","nt","geometry","customDepthMaterial","customDistanceMaterial","isBufferGeometry","morphAttributes","isGeometry","isSkinnedMesh","warn","localClippingEnabled","clone","renderSingleSided","we","renderReverseSided","be","lightPos","layers","test","isMesh","isLine","isPoints","castShadow","frustumCulled","intersectsObject","update","groups","materialIndex","renderBufferDirect","children","shadows","maxTextureSize","pn","An","distanceRGBA","Sn","USE_SHADOWMAP","enabled","autoUpdate","ye","setClear","setScissorTest","shadow","isSpotLightShadow","camera","matrix","setFromMatrixPosition","mapSize","isPointLight","makeTranslation","lookAt","updateMatrixWorld","getInverse","multiply","updateProjectionMatrix","setRenderTarget","clear","add","up","setFromMatrix","getClearColor","getClearAlpha","setClearColor","rt","origin","direction","at","_order","DefaultOrder","ot","mask","st","setFromEuler","setFromQuaternion","Pn","parent","DefaultUp","onChange","defineProperties","quaternion","normalMatrix","matrixAutoUpdate","DefaultMatrixAutoUpdate","matrixWorldNeedsUpdate","receiveShadow","userData","onBeforeRender","onAfterRender","lt","start","end","ct","ht","isVector3","vertexNormals","isColor","ut","lightMap","lightMapIntensity","aoMap","aoMapIntensity","specularMap","envMap","combine","ri","reflectivity","refractionRatio","wireframeLinecap","wireframeLinejoin","dt","TypeError","array","itemSize","count","normalized","dynamic","updateRange","onUploadCallback","ft","pt","Uint32Array","mt","gt","indices","vertices","normals","colors","uvs","uvs2","skinWeights","skinIndices","boundingBox","boundingSphere","verticesNeedUpdate","normalsNeedUpdate","colorsNeedUpdate","uvsNeedUpdate","groupsNeedUpdate","vt","_t","Cn","xt","faces","faceVertexUvs","lineDistances","elementsNeedUpdate","lineDistancesNeedUpdate","yt","index","drawRange","Mt","Math","random","drawMode","nn","updateMorphTargets","Et","parameters","widthSegments","heightSegments","depthSegments","fromBufferGeometry","bt","mergeVertices","addGroup","floor","setIndex","addAttribute","wt","Tt","St","fov","zoom","focus","aspect","view","filmGauge","filmOffset","Lt","left","right","top","bottom","At","DYNAMIC_DRAW","Float64Array","Int16Array","SHORT","UNSIGNED_INT","INT","Int8Array","BYTE","Uint8Array","buffer","bytesPerElement","BYTES_PER_ELEMENT","bufferSubData","subarray","isInterleavedBufferAttribute","deleteBuffer","remove","Rt","program","Pt","Ct","group","opaque","init","finish","Ut","dispose","Nt","calls","drawElementsInstancedANGLE","maxInstancedCount","setMode","renderInstances","Dt","drawArrays","drawArraysInstancedANGLE","It","removeEventListener","geometries","addEventListener","_bufferGeometry","setFromObject","getWireframeAttribute","Ft","shadowBias","shadowRadius","shadowMapSize","distance","coneCos","penumbraCos","decay","skyColor","groundColor","halfWidth","halfHeight","zt","frame","updateFromObject","Ot","split","Bt","getShaderParameter","COMPILE_STATUS","getShaderInfoLog","Gt","sn","cn","hn","un","dn","ln","Error","Vt","Ht","kt","li","ci","hi","ui","Wt","envMapCubeUV","bumpMap","normalMap","flatShading","logarithmicDepthBuffer","filter","Yt","Xt","jt","ACTIVE_ATTRIBUTES","getActiveAttrib","qt","replace","numDirLights","numSpotLights","numRectAreaLights","numPointLights","numHemiLights","Zt","Ln","Jt","parseInt","Qt","__webglShader","shadowMapType","Me","fi","vi","_i","pi","mi","gi","ai","oi","gammaFactor","isRawShaderMaterial","supportsVertexTextures","maxBones","useFog","fogExp","emissiveMap","roughnessMap","metalnessMap","useVertexTexture","doubleSided","flipSided","numClippingPlanes","shadowMapEnabled","sizeAttenuation","gradientMap","numClipIntersection","physicallyCorrectLights","toneMapping","si","tonemapping_pars_fragment","outputEncoding","mapEncoding","envMapEncoding","emissiveMapEncoding","encodings_pars_fragment","isShaderMaterial","bindAttribLocation","getProgramInfoLog","LINK_STATUS","getError","VALIDATE_STATUS","diagnostics","runnable","programLog","log","prefix","deleteShader","getUniforms","getAttributes","destroy","deleteProgram","Un","code","usedTimes","Kt","skeleton","bones","floatVertexTextures","maxVertexUniforms","isTexture","isWebGLRenderTarget","MeshDepthMaterial","MeshNormalMaterial","MeshBasicMaterial","MeshLambertMaterial","MeshPhongMaterial","MeshToonMaterial","MeshStandardMaterial","MeshPhysicalMaterial","LineBasicMaterial","LineDashedMaterial","PointsMaterial","getParameters","getMaxPrecision","getRenderTarget","shaderID","vertexTextures","gammaOutput","gammaInput","envMapMode","Te","maxMorphTargets","maxMorphNormals","directional","point","spot","rectArea","hemi","shadowMap","getProgramCode","acquireProgram","releaseProgram","indexOf","pop","programs","$t","drawImage","isPowerOfTwo","HTMLImageElement","HTMLCanvasElement","nearestPowerOfTwo","bi","wi","LINEAR","textures","__image__webglTextureCube","deleteTexture","__webglInit","__webglTexture","isWebGLRenderTargetCube","deleteFramebuffer","__webglFramebuffer","__webglDepthbuffer","deleteRenderbuffer","__version","complete","TEXTURE_CUBE_MAP","pixelStorei","UNPACK_FLIP_Y_WEBGL","isCompressedTexture","isDataTexture","maxCubemapSize","Vi","getCompressedTextureFormats","compressedTexImage2D","TEXTURE_CUBE_MAP_POSITIVE_X","generateMipmap","Di","Ii","__currentAnisotropy","texParameterf","TEXTURE_MAX_ANISOTROPY_EXT","getMaxAnisotropy","UNPACK_PREMULTIPLY_ALPHA_WEBGL","UNPACK_ALIGNMENT","isDepthTexture","DEPTH_COMPONENT","DEPTH_COMPONENT32F","DEPTH_COMPONENT16","Xi","Ci","Ni","ji","DEPTH_STENCIL","Bi","bindFramebuffer","FRAMEBUFFER","framebufferTexture2D","bindRenderbuffer","RENDERBUFFER","renderbufferStorage","framebufferRenderbuffer","DEPTH_ATTACHMENT","DEPTH_STENCIL_ATTACHMENT","RGBA4","createRenderbuffer","createFramebuffer","COLOR_ATTACHMENT0","WebGL2RenderingContext","setTextureCubeDynamic","setupRenderTarget","updateRenderTargetMipmap","te","ee","colorMask","setLocked","equals","clearColor","reset","depthMask","setFunc","Je","NEVER","Qe","ALWAYS","Ke","LESS","LEQUAL","ti","EQUAL","ei","GEQUAL","ii","GREATER","ni","NOTEQUAL","clearDepth","STENCIL_TEST","stencilMask","stencilFunc","setOp","stencilOp","clearStencil","ve","enableVertexAttribArray","vertexAttribDivisorANGLE","disableVertexAttribArray","getParameter","COMPRESSED_TEXTURE_FORMATS","Ae","Pe","blendEquationSeparate","FUNC_ADD","blendFuncSeparate","ONE","blendFunc","SRC_ALPHA","Ce","ZERO","ONE_MINUS_SRC_COLOR","ONE_MINUS_SRC_ALPHA","Ue","SRC_COLOR","Ne","frontFace","CW","CCW","ge","cullFace","BACK","_e","FRONT","FRONT_AND_BACK","lineWidth","POLYGON_OFFSET_FILL","SCISSOR_TEST","MAX_VERTEX_ATTRIBS","MAX_TEXTURE_IMAGE_UNITS","parseFloat","VERSION","stencil","enableAttributeAndDivisor","setMaterial","setFlipSided","setCullFace","setLineWidth","setPolygonOffset","getScissorTest","ie","MAX_TEXTURE_MAX_ANISOTROPY_EXT","getShaderPrecisionFormat","HIGH_FLOAT","MEDIUM_FLOAT","MAX_VERTEX_TEXTURE_IMAGE_UNITS","MAX_TEXTURE_SIZE","MAX_CUBE_MAP_TEXTURE_SIZE","MAX_VERTEX_UNIFORM_VECTORS","MAX_VARYING_VECTORS","MAX_FRAGMENT_UNIFORM_VECTORS","maxTextures","maxVertexTextures","maxAttributes","maxVaryings","maxFragmentUniforms","floatFragmentTextures","ne","getExtension","re","numPlanes","numIntersection","getNormalMatrix","uniform","beginShadows","endShadows","setState","clippingState","ae","multiplyScalar","preventDefault","le","ce","renderBufferImmediate","abs","isInstancedBufferGeometry","oe","stride","isInstancedInterleavedBuffer","meshPerAttribute","isInstancedBufferAttribute","vertexAttrib2fv","vertexAttrib3fv","vertexAttrib4fv","vertexAttrib1fv","isLight","isSprite","intersectsSprite","isLensFlare","isImmediateRenderObject","isArrayCamera","cameras","bounds","setViewport","setScissor","numSupportedMorphTargets","numSupportedMorphNormals","lightsHash","hash","ambientLightColor","ambient","directionalLights","spotLights","rectAreaLights","pointLights","hemisphereLights","directionalShadowMap","directionalShadowMatrix","spotShadowMap","spotShadowMatrix","pointShadowMap","pointShadowMatrix","uniformsList","seqWithValue","LN2","isMeshPhongMaterial","isMeshStandardMaterial","cameraPosition","isMeshLambertMaterial","isMeshBasicMaterial","toneMappingExposure","toneMappingWhitePoint","setOptional","boneTexture","sqrt","nextPowerOfTwo","ceil","boneMatrices","boneTextureSize","isMeshNormalMaterial","isMeshDepthMaterial","isLineBasicMaterial","isLineDashedMaterial","isPointsMaterial","isMeshToonMaterial","isMeshPhysicalMaterial","ltcMat","Tn","LTC_MAT_TEXTURE","ltcMag","LTC_MAG_TEXTURE","upload","diffuse","emissive","emissiveIntensity","offsetRepeat","flipEnvMap","isCubeTexture","dashSize","totalSize","gapSize","specular","shininess","bumpScale","normalScale","roughness","metalness","envMapIntensity","clearCoat","clearCoatRoughness","intensity","isAmbientLight","isDirectionalLight","he","sub","transformDirection","bias","isSpotLight","cos","angle","penumbra","isRectAreaLight","identity","premultiply","extractRotation","isHemisphereLight","normalize","xi","REPEAT","Mi","MIRRORED_REPEAT","NEAREST_MIPMAP_NEAREST","NEAREST_MIPMAP_LINEAR","Si","LINEAR_MIPMAP_NEAREST","LINEAR_MIPMAP_LINEAR","Fi","UNSIGNED_SHORT_4_4_4_4","zi","UNSIGNED_SHORT_5_5_5_1","Oi","UNSIGNED_SHORT_5_6_5","Ri","Pi","Ui","HALF_FLOAT_OES","Gi","ALPHA","ki","LUMINANCE","Wi","LUMINANCE_ALPHA","Ie","FUNC_SUBTRACT","Fe","FUNC_REVERSE_SUBTRACT","Be","Ge","Ve","He","Xe","DST_ALPHA","je","ONE_MINUS_DST_ALPHA","Ye","DST_COLOR","qe","ONE_MINUS_DST_COLOR","Ze","SRC_ALPHA_SATURATE","Yi","qi","Zi","Ji","COMPRESSED_RGB_S3TC_DXT1_EXT","COMPRESSED_RGBA_S3TC_DXT1_EXT","COMPRESSED_RGBA_S3TC_DXT3_EXT","COMPRESSED_RGBA_S3TC_DXT5_EXT","Qi","Ki","$i","tn","COMPRESSED_RGB_PVRTC_4BPPV1_IMG","COMPRESSED_RGB_PVRTC_2BPPV1_IMG","COMPRESSED_RGBA_PVRTC_4BPPV1_IMG","COMPRESSED_RGBA_PVRTC_2BPPV1_IMG","en","COMPRESSED_RGB_ETC1_WEBGL","ze","Oe","MIN_EXT","MAX_EXT","UNSIGNED_INT_24_8_WEBGL","me","canvas","alpha","antialias","preserveDrawingBuffer","domElement","autoClear","autoClearColor","autoClearDepth","autoClearStencil","sortObjects","points","info","memory","rangeMin","rangeMax","MaxIndex","se","ue","de","fe","pe","capabilities","properties","getContextAttributes","forceContextLoss","loseContext","getPixelRatio","setPixelRatio","setSize","getSize","style","setClearAlpha","COLOR_BUFFER_BIT","DEPTH_BUFFER_BIT","STENCIL_BUFFER_BIT","clearTarget","hasPositions","hasNormals","hasUvs","hasColors","positionArray","normalArray","uvArray","colorArray","morphTargetInfluences","removeAttribute","LINES","rn","TRIANGLE_STRIP","an","TRIANGLE_FAN","isLineSegments","isLineLoop","LINE_LOOP","LINE_STRIP","POINTS","compile","traverse","isCamera","background","cube","tCube","overrideMaterial","setFaceCulling","xe","setTexture","activeCubeFace","activeMipMapLevel","readRenderTargetPixels","IMPLEMENTATION_COLOR_READ_FORMAT","IMPLEMENTATION_COLOR_READ_TYPE","checkFramebufferStatus","FRAMEBUFFER_COMPLETE","readPixels","onStart","onLoad","onProgress","onError","itemStart","itemEnd","itemError","manager","Dn","_parser","Number","EPSILON","pow","isInteger","isFinite","sign","Function","toString","match","DEG2RAD","PI","RAD2DEG","clamp","euclideanModulo","mapLinear","lerp","smoothstep","smootherstep","randInt","randFloat","randFloatSpread","degToRad","radToDeg","round","slerp","slerpFlat","atan2","sin","onChangeCallback","constructor","isEuler","order","setFromAxisAngle","setFromRotationMatrix","setFromUnitVectors","dot","crossVectors","inverse","conjugate","lengthSq","multiplyQuaternions","fromArray","setScalar","setX","setY","setZ","setComponent","getComponent","addVectors","addScalar","addScaledVector","subVectors","subScalar","multiplyVectors","applyEuler","applyQuaternion","applyAxisAngle","applyMatrix3","divideScalar","project","unproject","divide","clampScalar","clampLength","roundToZero","negate","lengthManhattan","setLength","lerpVectors","cross","projectOnVector","projectOnPlane","reflect","angleTo","acos","distanceTo","distanceToSquared","distanceToManhattan","setFromSpherical","phi","theta","setFromCylindrical","setFromMatrixColumn","setFromMatrixScale","fromBufferAttribute","getX","getY","getZ","isMatrix4","copyPosition","extractBasis","makeBasis","makeRotationFromEuler","makeRotationFromQuaternion","applyToBufferAttribute","setXYZ","determinant","transpose","setPosition","getMaxScaleOnAxis","makeRotationX","makeRotationY","makeRotationZ","makeRotationAxis","makeScale","makeShear","compose","makePerspective","makeOrthographic","_listeners","hasEventListener","splice","dispatchEvent","isVector2","rotateAround","slice","toJSON","metadata","generator","wrap","images","url","toDataURL","transformUv","create","isVector4","setW","setAxisAngleFromQuaternion","setAxisAngleFromRotationMatrix","getW","wn","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","setHex","setStyle","setHSL","charAt","copyGammaToLinear","copyLinearToGamma","convertGammaToLinear","convertLinearToGamma","getHex","getHexString","getHSL","getStyle","offsetHSL","addColors","common","aomap","lightmap","emissivemap","bumpmap","normalmap","displacementmap","roughnessmap","metalnessmap","gradientmap","merge","isMatrix3","alphamap_fragment","alphamap_pars_fragment","alphatest_fragment","aomap_fragment","aomap_pars_fragment","begin_vertex","beginnormal_vertex","bsdfs","bumpmap_pars_fragment","clipping_planes_fragment","clipping_planes_pars_fragment","clipping_planes_pars_vertex","clipping_planes_vertex","color_fragment","color_pars_fragment","color_pars_vertex","color_vertex","cube_uv_reflection_fragment","defaultnormal_vertex","displacementmap_pars_vertex","displacementmap_vertex","emissivemap_fragment","emissivemap_pars_fragment","encodings_fragment","envmap_fragment","envmap_pars_fragment","envmap_pars_vertex","envmap_vertex","fog_vertex","fog_pars_vertex","fog_fragment","fog_pars_fragment","gradientmap_pars_fragment","lightmap_fragment","lightmap_pars_fragment","lights_lambert_vertex","lights_pars","lights_phong_fragment","lights_phong_pars_fragment","lights_physical_fragment","lights_physical_pars_fragment","lights_template","logdepthbuf_fragment","logdepthbuf_pars_fragment","logdepthbuf_pars_vertex","logdepthbuf_vertex","map_fragment","map_pars_fragment","map_particle_fragment","map_particle_pars_fragment","metalnessmap_fragment","metalnessmap_pars_fragment","morphnormal_vertex","morphtarget_pars_vertex","morphtarget_vertex","normal_flip","normal_fragment","normalmap_pars_fragment","packing","premultiplied_alpha_fragment","project_vertex","dithering_fragment","dithering_pars_fragment","roughnessmap_fragment","roughnessmap_pars_fragment","shadowmap_pars_fragment","shadowmap_pars_vertex","shadowmap_vertex","shadowmask_pars_fragment","skinbase_vertex","skinning_pars_vertex","skinning_vertex","skinnormal_vertex","specularmap_fragment","specularmap_pars_fragment","tonemapping_fragment","uv_pars_fragment","uv_pars_vertex","uv_vertex","uv2_pars_fragment","uv2_pars_vertex","uv2_vertex","worldpos_vertex","cube_frag","cube_vert","depth_frag","depth_vert","distanceRGBA_frag","distanceRGBA_vert","equirect_frag","equirect_vert","linedashed_frag","linedashed_vert","meshbasic_frag","meshbasic_vert","meshlambert_frag","meshlambert_vert","meshphong_frag","meshphong_vert","meshphysical_frag","meshphysical_vert","normal_frag","normal_vert","points_frag","points_vert","shadow_frag","shadow_vert","basic","lambert","phong","standard","dashed","tFlip","equirect","tEquirect","physical","setFromPoints","makeEmpty","expandByPoint","setFromCenterAndSize","isEmpty","getCenter","expandByVector","expandByScalar","containsBox","intersectsBox","clampPoint","distanceToPoint","intersect","union","translate","isMaterial","isBox3","setFromArray","setFromBufferAttribute","expandByObject","intersectsSphere","intersectsPlane","getBoundingSphere","empty","getBoundingBox","setFromMatrix4","transposeIntoArray","setComponents","setFromNormalAndCoplanarPoint","setFromCoplanarPoints","distanceToSphere","projectPoint","orthoPoint","intersectLine","delta","intersectsLine","coplanarPoint","computeBoundingSphere","recast","closestPointToPoint","distanceSqToPoint","distanceSqToSegment","intersectSphere","distanceToPlane","intersectPlane","intersectBox","intersectTriangle","RotationOrders","asin","setFromVector3","reorder","toVector3","toggle","isObject3D","applyMatrix","setRotationFromAxisAngle","setRotationFromEuler","setRotationFromMatrix","setRotationFromQuaternion","rotateOnAxis","rotateX","rotateY","rotateZ","translateOnAxis","translateX","translateY","translateZ","localToWorld","worldToLocal","getObjectById","getObjectByProperty","getObjectByName","getWorldPosition","getWorldQuaternion","getWorldRotation","getWorldScale","getWorldDirection","raycast","traverseVisible","traverseAncestors","updateMatrix","materials","JSON","stringify","parse","distanceSq","closestPointToPointParameter","barycoordFromPoint","setFromPointsAndIndices","area","midpoint","plane","isBufferAttribute","setArray","setDynamic","copyAt","copyArray","copyColorsArray","copyIndicesArray","copyVector2sArray","copyVector3sArray","copyVector4sArray","setXY","setXYZW","onUpload","computeGroups","fromGeometry","computeBoundingBox","computeFaceNormals","computeVertexNormals","computeFlatVertexNormals","computeMorphNormals","__originalFaceNormal","__originalVertexNormals","faceNormals","computeLineDistances","mergeMesh","sortFacesByMaterialIndex","_id","getIndex","getAttribute","clearGroups","setDrawRange","__directGeometry","lineDistance","fromDirectGeometry","isNaN","normalizeNormals","toNonIndexed","setDrawMode","morphTargetDictionary","ray","face","faceIndex","isPerspectiveCamera","setFocalLength","getFilmHeight","atan","getFocalLength","getEffectiveFOV","getFilmWidth","setViewOffset","fullWidth","fullHeight","offsetX","offsetY","clearViewOffset","isOrthographicCamera","Nn","files","load","path","setTimeout","window","decodeURIComponent","atob","responseType","toLowerCase","ArrayBuffer","charCodeAt","Blob","DOMParser","parseFromString","XMLHttpRequest","open","response","status","withCredentials","overrideMimeType","mimeType","requestHeader","setRequestHeader","send","setPath","setResponseType","setWithCredentials","setMimeType","mipmapCount","isCubemap","substr","crossOrigin","src","setCrossOrigin","search","WebGLRenderer","Scene","Mesh","Texture","CompressedTextureLoader","DataTextureLoader","CubeTextureLoader","TextureLoader","PerspectiveCamera","Vector3","BoxGeometry","BoxBufferGeometry","J/Fn","market","text","menushowtext","menuhidetext","onix","JkW7","__webpack_exports__","handleComponentVNode","vnode","tag","nodeName","defaultProps","extend","handleElementVNode","shouldSanitize","attrs","CAMEL_PROPS","createFactory","createElement","bind","upgradeToVNodes","arr","obj","isValidElement","props","isStatelessComponent","wrapStatelessComponent","WrappedComponent","createClass","displayName","statelessComponentHook","Ctor","Wrapped","COMPONENT_WRAPPER_KEY","propTypes","args","len","normalizeVNode","preact_min","preactCompatNormalized","applyClassName","ref","currentComponent","createStringRefProxy","applyEventNormalization","element","VNode","$$typeof","REACT_ELEMENT_TYPE","component","_refProxies","resolved","refs","ondoubleclick","ondblclick","onchange","oninput","multihook","classNameDescriptor","className","class","base","arguments$1","shallowDiffers","i$1","cl","bindAll","Component$1","BYPASS_HOOK","newComponentHook","mixins","applyMixins","collateMixins","statics","getDefaultProps","keyed","mixin","proto","concat","ARR","ctx","__bound","AUTOBIND_BLACKLIST","callMethod","hooks","skipDuplicates","ret","this$1","propsHook","componentWillReceiveProps","beforeRender","afterRender","DEV","ctor","prop_types_default","checkPropTypes","opts","getInitialState","PureComponent","_possibleConstructorReturn","self","ReferenceError","_inherits","subClass","superClass","writable","setPrototypeOf","__proto__","GemInteriorView__classCallCheck","instance","Constructor","GemInteriorView__possibleConstructorReturn","GemInteriorView__inherits","GemView__classCallCheck","GemView__possibleConstructorReturn","GemView__inherits","gemComponentsView","gemComponentsView_default","prop_types","ELEMENTS","Symbol","for","shouldComponentUpdate","componentWillUpdate","componentDidUpdate","componentWillMount","componentDidMount","componentWillUnmount","componentDidUnmount","preactCompatUpgraded","oldEventHook","event","persist","nativeEvent","oldVnodeHook","String","defaultValue","ContextProvider","getChildContext","DOM","preact_compat_es_i","isReactComponent","replaceState","callback","getDOMNode","isMounted","isPureReactComponent","three_min","three","three_default","gemThree_Three","_Component","Three","_this","_this$props","absPath","interior","imgPath","devicePixelRatio","logicalViewportWidth","innerWidth","physicalViewportWidth","scene","config","noIndex","correctImgPath","urls","loadImage","stageWidth","stageHeight","isUserInteracting","onMouseDownMouseX","onMouseDownMouseY","lon","onMouseDownLon","lat","onMouseDownLat","loaded","startDistance","endDistance","mount","appendChild","stop","animate","onWindowResize","onDocumentMouseDown","onDocumentMouseUp","onDocumentMouseMove","onDocumentTouchStart","onDocumentTouchMove","fovMin","fovMax","prevProps","_props","removeChild","frameId","zoomFactor","zoomIn","zoomAnimating","zoomTo","passive","loadHandling","requestAnimationFrame","cancelAnimationFrame","renderScene","clickZoom","onPointerDownPointerX","clientX","onPointerDownPointerY","clientY","onPointerDownLon","onPointerDownLat","_props2","thumbbarHover","thumbbarOpen","touches","pageX","pageY","hypot","_props3","_props4","zoomSpeed","zoomStopped","_this2","loadingbar","loadingbar_default","loadingbar_Loadingbar","_ref","percent","wrapper","bar","loadingbar_loadingbar","zoomcontrols","zoomcontrols_default","classnames","classnames_default","zoomcontrols_ZoomControls","zoomClicked","zoomStatus","buttonwrapper","button","plus","onClick","icon","minus","gemZoomControls_zoomcontrols","config_default","_createClass","descriptor","protoProps","staticProps","GemInteriorView_GemInteriorView","GemInteriorView","setUrlParams","location","href","path_regex","RegExp","params","country","lang","carline","bodystyle","mobile","clearMobileParam","marketConfig","find","getConfig","isInteriorOnly","showtext","hidetext","defaultThumbIndex","findIndex","thumb","getVPwidth","vw","documentElement","clientWidth","vh","clientHeight","innerHeight","amount","loading","imagesLoaded","percentLoaded","isLoaded","resetLoad","handleZoomClicked","factor","zooming","handleZoomStopped","_state","body","offsetHeight","input","threesixtyIcon","GemComponentsView_GemComponentsView","faktor","gemComponentsView_GemComponentsView","gemView","gemView_default","GemView_GemView","GemView","correctUrl","inlineStyle","componentsView","app__ref","appComponent","App","app","KM04","__d","debounceRendering","splitText","_componentConstructor","__n","parentNode","cssText","innerHTML","__html","substring","__l","removeAttributeNS","setAttributeNS","setAttribute","afterMount","ownerSVGElement","_component","nodeValue","createTextNode","replaceChild","__preactattr_","firstChild","nextSibling","dangerouslySetInnerHTML","childNodes","__k","trim","insertBefore","lastChild","previousSibling","__b","__x","__r","getDerivedStateFromProps","__c","__p","syncComponentUpdates","__s","getSnapshotBeforeUpdate","__u","unshift","afterUpdate","__h","beforeUnmount","Promise","resolve","then","forceUpdate","cloneElement","Component","rerender","options","N1wY","PJ3B","awuE","bGVC","hJ0q","intIcon","hZyK","pwNi","_preact","interopDefault","root","firstElementChild","wVGV","emptyFunction","ReactPropTypesSecret","shim","propName","componentName","propFullName","secret","err","getShim","isRequired","ReactPropTypes","bool","func","number","string","symbol","any","arrayOf","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","PropTypes"],"mappings":"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","file":"bundle.e879e.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"./\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = \"pwNi\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"5D9O\":\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (false) {\n var REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol.for && Symbol.for('react.element') || 0xeac7;\n\n var isValidElement = function isValidElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = __webpack_require__(\"wVGV\")();\n}\n\n/***/ }),\n\n/***/ \"9qb7\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (true) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {\n\t\t\treturn classNames;\n\t\t}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n})();\n\n/***/ }),\n\n/***/ \"Asjh\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n/***/ }),\n\n/***/ \"Fwn5\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n// threejs.org/license\n!function (t, e) {\n true ? e(exports) : \"function\" == typeof define && define.amd ? define([\"exports\"], e) : e(t.THREE = t.THREE || {});\n}(this, function (t) {\n \"use strict\";\n function e(t, e, i, n) {\n this._x = t || 0, this._y = e || 0, this._z = i || 0, this._w = void 0 !== n ? n : 1;\n }function i(t, e, i) {\n this.x = t || 0, this.y = e || 0, this.z = i || 0;\n }function n() {\n this.elements = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], arguments.length > 0 && console.error(\"THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.\");\n }function r() {}function a(t, e) {\n this.x = t || 0, this.y = e || 0;\n }function o(t, e, i, n, r, s, l, c, h, u) {\n Object.defineProperty(this, \"id\", { value: gn++ }), this.uuid = mn.generateUUID(), this.name = \"\", this.image = void 0 !== t ? t : o.DEFAULT_IMAGE, this.mipmaps = [], this.mapping = void 0 !== e ? e : o.DEFAULT_MAPPING, this.wrapS = void 0 !== i ? i : yi, this.wrapT = void 0 !== n ? n : yi, this.magFilter = void 0 !== r ? r : Ti, this.minFilter = void 0 !== s ? s : Li, this.anisotropy = void 0 !== h ? h : 1, this.format = void 0 !== l ? l : Hi, this.type = void 0 !== c ? c : Ai, this.offset = new a(0, 0), this.repeat = new a(1, 1), this.generateMipmaps = !0, this.premultiplyAlpha = !1, this.flipY = !0, this.unpackAlignment = 4, this.encoding = void 0 !== u ? u : on, this.version = 0, this.onUpdate = null;\n }function s(t, e, i, n, r, a, s, l, c, h, u, d) {\n o.call(this, null, a, s, l, c, h, n, r, u, d), this.image = { data: t, width: e, height: i }, this.magFilter = void 0 !== c ? c : Ei, this.minFilter = void 0 !== h ? h : Ei, this.generateMipmaps = !1, this.flipY = !1, this.unpackAlignment = 1;\n }function l(t, e, i, n, r, a, s, l, c, h) {\n t = void 0 !== t ? t : [], e = void 0 !== e ? e : di, o.call(this, t, e, i, n, r, a, s, l, c, h), this.flipY = !1;\n }function c() {\n this.seq = [], this.map = {};\n }function h(t, e, i) {\n var n = t[0];if (n <= 0 || n > 0) return t;var r = e * i,\n a = xn[r];if (void 0 === a && (a = new Float32Array(r), xn[r] = a), 0 !== e) {\n n.toArray(a, 0);for (var o = 1, s = 0; o !== e; ++o) {\n s += i, t[o].toArray(a, s);\n }\n }return a;\n }function u(t, e) {\n var i = yn[e];void 0 === i && (i = new Int32Array(e), yn[e] = i);for (var n = 0; n !== e; ++n) {\n i[n] = t.allocTextureUnit();\n }return i;\n }function d(t, e) {\n t.uniform1f(this.addr, e);\n }function f(t, e) {\n t.uniform1i(this.addr, e);\n }function p(t, e) {\n void 0 === e.x ? t.uniform2fv(this.addr, e) : t.uniform2f(this.addr, e.x, e.y);\n }function m(t, e) {\n void 0 !== e.x ? t.uniform3f(this.addr, e.x, e.y, e.z) : void 0 !== e.r ? t.uniform3f(this.addr, e.r, e.g, e.b) : t.uniform3fv(this.addr, e);\n }function g(t, e) {\n void 0 === e.x ? t.uniform4fv(this.addr, e) : t.uniform4f(this.addr, e.x, e.y, e.z, e.w);\n }function v(t, e) {\n t.uniformMatrix2fv(this.addr, !1, e.elements || e);\n }function _(t, e) {\n void 0 === e.elements ? t.uniformMatrix3fv(this.addr, !1, e) : (En.set(e.elements), t.uniformMatrix3fv(this.addr, !1, En));\n }function x(t, e) {\n void 0 === e.elements ? t.uniformMatrix4fv(this.addr, !1, e) : (Mn.set(e.elements), t.uniformMatrix4fv(this.addr, !1, Mn));\n }function y(t, e, i) {\n var n = i.allocTextureUnit();t.uniform1i(this.addr, n), i.setTexture2D(e || vn, n);\n }function M(t, e, i) {\n var n = i.allocTextureUnit();t.uniform1i(this.addr, n), i.setTextureCube(e || _n, n);\n }function E(t, e) {\n t.uniform2iv(this.addr, e);\n }function b(t, e) {\n t.uniform3iv(this.addr, e);\n }function w(t, e) {\n t.uniform4iv(this.addr, e);\n }function T(t) {\n switch (t) {case 5126:\n return d;case 35664:\n return p;case 35665:\n return m;case 35666:\n return g;case 35674:\n return v;case 35675:\n return _;case 35676:\n return x;case 35678:\n return y;case 35680:\n return M;case 5124:case 35670:\n return f;case 35667:case 35671:\n return E;case 35668:case 35672:\n return b;case 35669:case 35673:\n return w;}\n }function S(t, e) {\n t.uniform1fv(this.addr, e);\n }function L(t, e) {\n t.uniform1iv(this.addr, e);\n }function A(t, e) {\n t.uniform2fv(this.addr, h(e, this.size, 2));\n }function R(t, e) {\n t.uniform3fv(this.addr, h(e, this.size, 3));\n }function P(t, e) {\n t.uniform4fv(this.addr, h(e, this.size, 4));\n }function C(t, e) {\n t.uniformMatrix2fv(this.addr, !1, h(e, this.size, 4));\n }function U(t, e) {\n t.uniformMatrix3fv(this.addr, !1, h(e, this.size, 9));\n }function N(t, e) {\n t.uniformMatrix4fv(this.addr, !1, h(e, this.size, 16));\n }function D(t, e, i) {\n var n = e.length,\n r = u(i, n);t.uniform1iv(this.addr, r);for (var a = 0; a !== n; ++a) {\n i.setTexture2D(e[a] || vn, r[a]);\n }\n }function I(t, e, i) {\n var n = e.length,\n r = u(i, n);t.uniform1iv(this.addr, r);for (var a = 0; a !== n; ++a) {\n i.setTextureCube(e[a] || _n, r[a]);\n }\n }function F(t) {\n switch (t) {case 5126:\n return S;case 35664:\n return A;case 35665:\n return R;case 35666:\n return P;case 35674:\n return C;case 35675:\n return U;case 35676:\n return N;case 35678:\n return D;case 35680:\n return I;case 5124:case 35670:\n return L;case 35667:case 35671:\n return E;case 35668:case 35672:\n return b;case 35669:case 35673:\n return w;}\n }function z(t, e, i) {\n this.id = t, this.addr = i, this.setValue = T(e.type);\n }function O(t, e, i) {\n this.id = t, this.addr = i, this.size = e.size, this.setValue = F(e.type);\n }function B(t) {\n this.id = t, c.call(this);\n }function G(t, e) {\n t.seq.push(e), t.map[e.id] = e;\n }function V(t, e, i) {\n var n = t.name,\n r = n.length;for (bn.lastIndex = 0;;) {\n var a = bn.exec(n),\n o = bn.lastIndex,\n s = a[1],\n l = \"]\" === a[2],\n c = a[3];if (l && (s |= 0), void 0 === c || \"[\" === c && o + 2 === r) {\n G(i, void 0 === c ? new z(s, t, e) : new O(s, t, e));break;\n }var h = i.map,\n u = h[s];void 0 === u && (u = new B(s), G(i, u)), i = u;\n }\n }function H(t, e, i) {\n c.call(this), this.renderer = i;for (var n = t.getProgramParameter(e, t.ACTIVE_UNIFORMS), r = 0; r < n; ++r) {\n var a = t.getActiveUniform(e, r),\n o = a.name;V(a, t.getUniformLocation(e, o), this);\n }\n }function k(t, e, i, n) {\n this.x = t || 0, this.y = e || 0, this.z = i || 0, this.w = void 0 !== n ? n : 1;\n }function W(t, e, i) {\n return void 0 === e && void 0 === i ? this.set(t) : this.setRGB(t, e, i);\n }function X(t, e) {\n this.min = void 0 !== t ? t : new a(1 / 0, 1 / 0), this.max = void 0 !== e ? e : new a(-1 / 0, -1 / 0);\n }function j(t, e) {\n function n() {\n var t = new Float32Array([-1, -1, 0, 0, 1, -1, 1, 0, 1, 1, 1, 1, -1, 1, 0, 1]),\n e = new Uint16Array([0, 1, 2, 0, 2, 3]);o = p.createBuffer(), s = p.createBuffer(), p.bindBuffer(p.ARRAY_BUFFER, o), p.bufferData(p.ARRAY_BUFFER, t, p.STATIC_DRAW), p.bindBuffer(p.ELEMENT_ARRAY_BUFFER, s), p.bufferData(p.ELEMENT_ARRAY_BUFFER, e, p.STATIC_DRAW), d = p.createTexture(), f = p.createTexture(), m.bindTexture(p.TEXTURE_2D, d), p.texImage2D(p.TEXTURE_2D, 0, p.RGB, 16, 16, 0, p.RGB, p.UNSIGNED_BYTE, null), p.texParameteri(p.TEXTURE_2D, p.TEXTURE_WRAP_S, p.CLAMP_TO_EDGE), p.texParameteri(p.TEXTURE_2D, p.TEXTURE_WRAP_T, p.CLAMP_TO_EDGE), p.texParameteri(p.TEXTURE_2D, p.TEXTURE_MAG_FILTER, p.NEAREST), p.texParameteri(p.TEXTURE_2D, p.TEXTURE_MIN_FILTER, p.NEAREST), m.bindTexture(p.TEXTURE_2D, f), p.texImage2D(p.TEXTURE_2D, 0, p.RGBA, 16, 16, 0, p.RGBA, p.UNSIGNED_BYTE, null), p.texParameteri(p.TEXTURE_2D, p.TEXTURE_WRAP_S, p.CLAMP_TO_EDGE), p.texParameteri(p.TEXTURE_2D, p.TEXTURE_WRAP_T, p.CLAMP_TO_EDGE), p.texParameteri(p.TEXTURE_2D, p.TEXTURE_MAG_FILTER, p.NEAREST), p.texParameteri(p.TEXTURE_2D, p.TEXTURE_MIN_FILTER, p.NEAREST), l = { vertexShader: [\"uniform lowp int renderType;\", \"uniform vec3 screenPosition;\", \"uniform vec2 scale;\", \"uniform float rotation;\", \"uniform sampler2D occlusionMap;\", \"attribute vec2 position;\", \"attribute vec2 uv;\", \"varying vec2 vUV;\", \"varying float vVisibility;\", \"void main() {\", \"vUV = uv;\", \"vec2 pos = position;\", \"if ( renderType == 2 ) {\", \"vec4 visibility = texture2D( occlusionMap, vec2( 0.1, 0.1 ) );\", \"visibility += texture2D( occlusionMap, vec2( 0.5, 0.1 ) );\", \"visibility += texture2D( occlusionMap, vec2( 0.9, 0.1 ) );\", \"visibility += texture2D( occlusionMap, vec2( 0.9, 0.5 ) );\", \"visibility += texture2D( occlusionMap, vec2( 0.9, 0.9 ) );\", \"visibility += texture2D( occlusionMap, vec2( 0.5, 0.9 ) );\", \"visibility += texture2D( occlusionMap, vec2( 0.1, 0.9 ) );\", \"visibility += texture2D( occlusionMap, vec2( 0.1, 0.5 ) );\", \"visibility += texture2D( occlusionMap, vec2( 0.5, 0.5 ) );\", \"vVisibility = visibility.r / 9.0;\", \"vVisibility *= 1.0 - visibility.g / 9.0;\", \"vVisibility *= visibility.b / 9.0;\", \"vVisibility *= 1.0 - visibility.a / 9.0;\", \"pos.x = cos( rotation ) * position.x - sin( rotation ) * position.y;\", \"pos.y = sin( rotation ) * position.x + cos( rotation ) * position.y;\", \"}\", \"gl_Position = vec4( ( pos * scale + screenPosition.xy ).xy, screenPosition.z, 1.0 );\", \"}\"].join(\"\\n\"), fragmentShader: [\"uniform lowp int renderType;\", \"uniform sampler2D map;\", \"uniform float opacity;\", \"uniform vec3 color;\", \"varying vec2 vUV;\", \"varying float vVisibility;\", \"void main() {\", \"if ( renderType == 0 ) {\", \"gl_FragColor = vec4( 1.0, 0.0, 1.0, 0.0 );\", \"} else if ( renderType == 1 ) {\", \"gl_FragColor = texture2D( map, vUV );\", \"} else {\", \"vec4 texture = texture2D( map, vUV );\", \"texture.a *= opacity * vVisibility;\", \"gl_FragColor = texture;\", \"gl_FragColor.rgb *= color;\", \"}\", \"}\"].join(\"\\n\") }, c = r(l), h = { vertex: p.getAttribLocation(c, \"position\"), uv: p.getAttribLocation(c, \"uv\") }, u = { renderType: p.getUniformLocation(c, \"renderType\"), map: p.getUniformLocation(c, \"map\"), occlusionMap: p.getUniformLocation(c, \"occlusionMap\"), opacity: p.getUniformLocation(c, \"opacity\"), color: p.getUniformLocation(c, \"color\"), scale: p.getUniformLocation(c, \"scale\"), rotation: p.getUniformLocation(c, \"rotation\"), screenPosition: p.getUniformLocation(c, \"screenPosition\") };\n }function r(e) {\n var i = p.createProgram(),\n n = p.createShader(p.FRAGMENT_SHADER),\n r = p.createShader(p.VERTEX_SHADER),\n a = \"precision \" + t.getPrecision() + \" float;\\n\";return p.shaderSource(n, a + e.fragmentShader), p.shaderSource(r, a + e.vertexShader), p.compileShader(n), p.compileShader(r), p.attachShader(i, n), p.attachShader(i, r), p.linkProgram(i), i;\n }var o,\n s,\n l,\n c,\n h,\n u,\n d,\n f,\n p = t.context,\n m = t.state;this.render = function (r, l, g) {\n if (0 !== e.length) {\n var v = new i(),\n _ = g.w / g.z,\n x = .5 * g.z,\n y = .5 * g.w,\n M = 16 / g.w,\n E = new a(M * _, M),\n b = new i(1, 1, 0),\n w = new a(1, 1),\n T = new X();T.min.set(g.x, g.y), T.max.set(g.x + (g.z - 16), g.y + (g.w - 16)), void 0 === c && n(), p.useProgram(c), m.initAttributes(), m.enableAttribute(h.vertex), m.enableAttribute(h.uv), m.disableUnusedAttributes(), p.uniform1i(u.occlusionMap, 0), p.uniform1i(u.map, 1), p.bindBuffer(p.ARRAY_BUFFER, o), p.vertexAttribPointer(h.vertex, 2, p.FLOAT, !1, 16, 0), p.vertexAttribPointer(h.uv, 2, p.FLOAT, !1, 16, 8), p.bindBuffer(p.ELEMENT_ARRAY_BUFFER, s), m.disable(p.CULL_FACE), m.buffers.depth.setMask(!1);for (var S = 0, L = e.length; S < L; S++) {\n M = 16 / g.w, E.set(M * _, M);var A = e[S];if (v.set(A.matrixWorld.elements[12], A.matrixWorld.elements[13], A.matrixWorld.elements[14]), v.applyMatrix4(l.matrixWorldInverse), v.applyMatrix4(l.projectionMatrix), b.copy(v), w.x = g.x + b.x * x + x - 8, w.y = g.y + b.y * y + y - 8, !0 === T.containsPoint(w)) {\n m.activeTexture(p.TEXTURE0), m.bindTexture(p.TEXTURE_2D, null), m.activeTexture(p.TEXTURE1), m.bindTexture(p.TEXTURE_2D, d), p.copyTexImage2D(p.TEXTURE_2D, 0, p.RGB, w.x, w.y, 16, 16, 0), p.uniform1i(u.renderType, 0), p.uniform2f(u.scale, E.x, E.y), p.uniform3f(u.screenPosition, b.x, b.y, b.z), m.disable(p.BLEND), m.enable(p.DEPTH_TEST), p.drawElements(p.TRIANGLES, 6, p.UNSIGNED_SHORT, 0), m.activeTexture(p.TEXTURE0), m.bindTexture(p.TEXTURE_2D, f), p.copyTexImage2D(p.TEXTURE_2D, 0, p.RGBA, w.x, w.y, 16, 16, 0), p.uniform1i(u.renderType, 1), m.disable(p.DEPTH_TEST), m.activeTexture(p.TEXTURE1), m.bindTexture(p.TEXTURE_2D, d), p.drawElements(p.TRIANGLES, 6, p.UNSIGNED_SHORT, 0), A.positionScreen.copy(b), A.customUpdateCallback ? A.customUpdateCallback(A) : A.updateLensFlares(), p.uniform1i(u.renderType, 2), m.enable(p.BLEND);for (var R = 0, P = A.lensFlares.length; R < P; R++) {\n var C = A.lensFlares[R];C.opacity > .001 && C.scale > .001 && (b.x = C.x, b.y = C.y, b.z = C.z, M = C.size * C.scale / g.w, E.x = M * _, E.y = M, p.uniform3f(u.screenPosition, b.x, b.y, b.z), p.uniform2f(u.scale, E.x, E.y), p.uniform1f(u.rotation, C.rotation), p.uniform1f(u.opacity, C.opacity), p.uniform3f(u.color, C.color.r, C.color.g, C.color.b), m.setBlending(C.blending, C.blendEquation, C.blendSrc, C.blendDst), t.setTexture2D(C.texture, 1), p.drawElements(p.TRIANGLES, 6, p.UNSIGNED_SHORT, 0));\n }\n }\n }m.enable(p.CULL_FACE), m.enable(p.DEPTH_TEST), m.buffers.depth.setMask(!0), t.resetGLState();\n }\n };\n }function Y(t, n) {\n function r() {\n var t = new Float32Array([-.5, -.5, 0, 0, .5, -.5, 1, 0, .5, .5, 1, 1, -.5, .5, 0, 1]),\n e = new Uint16Array([0, 1, 2, 0, 2, 3]);l = p.createBuffer(), c = p.createBuffer(), p.bindBuffer(p.ARRAY_BUFFER, l), p.bufferData(p.ARRAY_BUFFER, t, p.STATIC_DRAW), p.bindBuffer(p.ELEMENT_ARRAY_BUFFER, c), p.bufferData(p.ELEMENT_ARRAY_BUFFER, e, p.STATIC_DRAW), h = a(), u = { position: p.getAttribLocation(h, \"position\"), uv: p.getAttribLocation(h, \"uv\") }, d = { uvOffset: p.getUniformLocation(h, \"uvOffset\"), uvScale: p.getUniformLocation(h, \"uvScale\"), rotation: p.getUniformLocation(h, \"rotation\"), scale: p.getUniformLocation(h, \"scale\"), color: p.getUniformLocation(h, \"color\"), map: p.getUniformLocation(h, \"map\"), opacity: p.getUniformLocation(h, \"opacity\"), modelViewMatrix: p.getUniformLocation(h, \"modelViewMatrix\"), projectionMatrix: p.getUniformLocation(h, \"projectionMatrix\"), fogType: p.getUniformLocation(h, \"fogType\"), fogDensity: p.getUniformLocation(h, \"fogDensity\"), fogNear: p.getUniformLocation(h, \"fogNear\"), fogFar: p.getUniformLocation(h, \"fogFar\"), fogColor: p.getUniformLocation(h, \"fogColor\"), alphaTest: p.getUniformLocation(h, \"alphaTest\") };var i = document.createElementNS(\"http://www.w3.org/1999/xhtml\", \"canvas\");i.width = 8, i.height = 8;var n = i.getContext(\"2d\");n.fillStyle = \"white\", n.fillRect(0, 0, 8, 8), f = new o(i), f.needsUpdate = !0;\n }function a() {\n var e = p.createProgram(),\n i = p.createShader(p.VERTEX_SHADER),\n n = p.createShader(p.FRAGMENT_SHADER);return p.shaderSource(i, [\"precision \" + t.getPrecision() + \" float;\", \"uniform mat4 modelViewMatrix;\", \"uniform mat4 projectionMatrix;\", \"uniform float rotation;\", \"uniform vec2 scale;\", \"uniform vec2 uvOffset;\", \"uniform vec2 uvScale;\", \"attribute vec2 position;\", \"attribute vec2 uv;\", \"varying vec2 vUV;\", \"void main() {\", \"vUV = uvOffset + uv * uvScale;\", \"vec2 alignedPosition = position * scale;\", \"vec2 rotatedPosition;\", \"rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\", \"rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\", \"vec4 finalPosition;\", \"finalPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\", \"finalPosition.xy += rotatedPosition;\", \"finalPosition = projectionMatrix * finalPosition;\", \"gl_Position = finalPosition;\", \"}\"].join(\"\\n\")), p.shaderSource(n, [\"precision \" + t.getPrecision() + \" float;\", \"uniform vec3 color;\", \"uniform sampler2D map;\", \"uniform float opacity;\", \"uniform int fogType;\", \"uniform vec3 fogColor;\", \"uniform float fogDensity;\", \"uniform float fogNear;\", \"uniform float fogFar;\", \"uniform float alphaTest;\", \"varying vec2 vUV;\", \"void main() {\", \"vec4 texture = texture2D( map, vUV );\", \"if ( texture.a < alphaTest ) discard;\", \"gl_FragColor = vec4( color * texture.xyz, texture.a * opacity );\", \"if ( fogType > 0 ) {\", \"float depth = gl_FragCoord.z / gl_FragCoord.w;\", \"float fogFactor = 0.0;\", \"if ( fogType == 1 ) {\", \"fogFactor = smoothstep( fogNear, fogFar, depth );\", \"} else {\", \"const float LOG2 = 1.442695;\", \"fogFactor = exp2( - fogDensity * fogDensity * depth * depth * LOG2 );\", \"fogFactor = 1.0 - clamp( fogFactor, 0.0, 1.0 );\", \"}\", \"gl_FragColor = mix( gl_FragColor, vec4( fogColor, gl_FragColor.w ), fogFactor );\", \"}\", \"}\"].join(\"\\n\")), p.compileShader(i), p.compileShader(n), p.attachShader(e, i), p.attachShader(e, n), p.linkProgram(e), e;\n }function s(t, e) {\n return t.renderOrder !== e.renderOrder ? t.renderOrder - e.renderOrder : t.z !== e.z ? e.z - t.z : e.id - t.id;\n }var l,\n c,\n h,\n u,\n d,\n f,\n p = t.context,\n m = t.state,\n g = new i(),\n v = new e(),\n _ = new i();this.render = function (e, i) {\n if (0 !== n.length) {\n void 0 === h && r(), p.useProgram(h), m.initAttributes(), m.enableAttribute(u.position), m.enableAttribute(u.uv), m.disableUnusedAttributes(), m.disable(p.CULL_FACE), m.enable(p.BLEND), p.bindBuffer(p.ARRAY_BUFFER, l), p.vertexAttribPointer(u.position, 2, p.FLOAT, !1, 16, 0), p.vertexAttribPointer(u.uv, 2, p.FLOAT, !1, 16, 8), p.bindBuffer(p.ELEMENT_ARRAY_BUFFER, c), p.uniformMatrix4fv(d.projectionMatrix, !1, i.projectionMatrix.elements), m.activeTexture(p.TEXTURE0), p.uniform1i(d.map, 0);var a = 0,\n o = 0,\n x = e.fog;x ? (p.uniform3f(d.fogColor, x.color.r, x.color.g, x.color.b), x.isFog ? (p.uniform1f(d.fogNear, x.near), p.uniform1f(d.fogFar, x.far), p.uniform1i(d.fogType, 1), a = 1, o = 1) : x.isFogExp2 && (p.uniform1f(d.fogDensity, x.density), p.uniform1i(d.fogType, 2), a = 2, o = 2)) : (p.uniform1i(d.fogType, 0), a = 0, o = 0);for (var y = 0, M = n.length; y < M; y++) {\n var E = n[y];E.modelViewMatrix.multiplyMatrices(i.matrixWorldInverse, E.matrixWorld), E.z = -E.modelViewMatrix.elements[14];\n }n.sort(s);for (var b = [], y = 0, M = n.length; y < M; y++) {\n var E = n[y],\n w = E.material;if (!1 !== w.visible) {\n p.uniform1f(d.alphaTest, w.alphaTest), p.uniformMatrix4fv(d.modelViewMatrix, !1, E.modelViewMatrix.elements), E.matrixWorld.decompose(g, v, _), b[0] = _.x, b[1] = _.y;var T = 0;e.fog && w.fog && (T = o), a !== T && (p.uniform1i(d.fogType, T), a = T), null !== w.map ? (p.uniform2f(d.uvOffset, w.map.offset.x, w.map.offset.y), p.uniform2f(d.uvScale, w.map.repeat.x, w.map.repeat.y)) : (p.uniform2f(d.uvOffset, 0, 0), p.uniform2f(d.uvScale, 1, 1)), p.uniform1f(d.opacity, w.opacity), p.uniform3f(d.color, w.color.r, w.color.g, w.color.b), p.uniform1f(d.rotation, w.rotation), p.uniform2fv(d.scale, b), m.setBlending(w.blending, w.blendEquation, w.blendSrc, w.blendDst), m.buffers.depth.setTest(w.depthTest), m.buffers.depth.setMask(w.depthWrite), w.map ? t.setTexture2D(w.map, 0) : t.setTexture2D(f, 0), p.drawElements(p.TRIANGLES, 6, p.UNSIGNED_SHORT, 0);\n }\n }m.enable(p.CULL_FACE), t.resetGLState();\n }\n };\n }function q(t, e, i) {\n this.uuid = mn.generateUUID(), this.width = t, this.height = e, this.scissor = new k(0, 0, t, e), this.scissorTest = !1, this.viewport = new k(0, 0, t, e), i = i || {}, void 0 === i.minFilter && (i.minFilter = Ti), this.texture = new o(void 0, void 0, i.wrapS, i.wrapT, i.magFilter, i.minFilter, i.format, i.type, i.anisotropy, i.encoding), this.depthBuffer = void 0 === i.depthBuffer || i.depthBuffer, this.stencilBuffer = void 0 === i.stencilBuffer || i.stencilBuffer, this.depthTexture = void 0 !== i.depthTexture ? i.depthTexture : null;\n }function Z() {\n Object.defineProperty(this, \"id\", { value: Rn++ }), this.uuid = mn.generateUUID(), this.name = \"\", this.type = \"Material\", this.fog = !0, this.lights = !0, this.blending = Re, this.side = Ee, this.shading = Se, this.vertexColors = Le, this.opacity = 1, this.transparent = !1, this.blendSrc = ke, this.blendDst = We, this.blendEquation = De, this.blendSrcAlpha = null, this.blendDstAlpha = null, this.blendEquationAlpha = null, this.depthFunc = $e, this.depthTest = !0, this.depthWrite = !0, this.clippingPlanes = null, this.clipIntersection = !1, this.clipShadows = !1, this.colorWrite = !0, this.precision = null, this.polygonOffset = !1, this.polygonOffsetFactor = 0, this.polygonOffsetUnits = 0, this.dithering = !1, this.alphaTest = 0, this.premultipliedAlpha = !1, this.overdraw = 0, this.visible = !0, this.needsUpdate = !0;\n }function J(t) {\n Z.call(this), this.type = \"ShaderMaterial\", this.defines = {}, this.uniforms = {}, this.vertexShader = \"void main() {\\n\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\n}\", this.fragmentShader = \"void main() {\\n\\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\\n}\", this.linewidth = 1, this.wireframe = !1, this.wireframeLinewidth = 1, this.fog = !1, this.lights = !1, this.clipping = !1, this.skinning = !1, this.morphTargets = !1, this.morphNormals = !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, void 0 !== t && (void 0 !== t.attributes && console.error(\"THREE.ShaderMaterial: attributes should now be defined in THREE.BufferGeometry instead.\"), this.setValues(t));\n }function Q(t) {\n Z.call(this), this.type = \"MeshDepthMaterial\", this.depthPacking = fn, this.skinning = !1, this.morphTargets = !1, this.map = null, this.alphaMap = null, this.displacementMap = null, this.displacementScale = 1, this.displacementBias = 0, this.wireframe = !1, this.wireframeLinewidth = 1, this.fog = !1, this.lights = !1, this.setValues(t);\n }function K(t, e) {\n this.min = void 0 !== t ? t : new i(1 / 0, 1 / 0, 1 / 0), this.max = void 0 !== e ? e : new i(-1 / 0, -1 / 0, -1 / 0);\n }function $(t, e) {\n this.center = void 0 !== t ? t : new i(), this.radius = void 0 !== e ? e : 0;\n }function tt() {\n this.elements = [1, 0, 0, 0, 1, 0, 0, 0, 1], arguments.length > 0 && console.error(\"THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.\");\n }function et(t, e) {\n this.normal = void 0 !== t ? t : new i(1, 0, 0), this.constant = void 0 !== e ? e : 0;\n }function it(t, e, i, n, r, a) {\n this.planes = [void 0 !== t ? t : new et(), void 0 !== e ? e : new et(), void 0 !== i ? i : new et(), void 0 !== n ? n : new et(), void 0 !== r ? r : new et(), void 0 !== a ? a : new et()];\n }function nt(t, e, r, o) {\n function s(e, i, n, r) {\n var a = e.geometry,\n o = null,\n s = M,\n l = e.customDepthMaterial;if (n && (s = E, l = e.customDistanceMaterial), l) o = l;else {\n var c = !1;i.morphTargets && (a && a.isBufferGeometry ? c = a.morphAttributes && a.morphAttributes.position && a.morphAttributes.position.length > 0 : a && a.isGeometry && (c = a.morphTargets && a.morphTargets.length > 0)), e.isSkinnedMesh && !1 === i.skinning && console.warn(\"THREE.WebGLShadowMap: THREE.SkinnedMesh with material.skinning set to false:\", e);var h = e.isSkinnedMesh && i.skinning,\n u = 0;c && (u |= _), h && (u |= x), o = s[u];\n }if (t.localClippingEnabled && !0 === i.clipShadows && 0 !== i.clippingPlanes.length) {\n var d = o.uuid,\n f = i.uuid,\n p = b[d];void 0 === p && (p = {}, b[d] = p);var m = p[f];void 0 === m && (m = o.clone(), p[f] = m), o = m;\n }o.visible = i.visible, o.wireframe = i.wireframe;var g = i.side;return I.renderSingleSided && g == we && (g = Ee), I.renderReverseSided && (g === Ee ? g = be : g === be && (g = Ee)), o.side = g, o.clipShadows = i.clipShadows, o.clippingPlanes = i.clippingPlanes, o.wireframeLinewidth = i.wireframeLinewidth, o.linewidth = i.linewidth, n && void 0 !== o.uniforms.lightPos && o.uniforms.lightPos.value.copy(r), o;\n }function l(e, i, n, a) {\n if (!1 !== e.visible) {\n if (e.layers.test(i.layers) && (e.isMesh || e.isLine || e.isPoints) && e.castShadow && (!e.frustumCulled || u.intersectsObject(e))) {\n e.modelViewMatrix.multiplyMatrices(n.matrixWorldInverse, e.matrixWorld);var o = r.update(e),\n c = e.material;if (Array.isArray(c)) for (var h = o.groups, d = 0, f = h.length; d < f; d++) {\n var p = h[d],\n m = c[p.materialIndex];if (m && m.visible) {\n var g = s(e, m, a, v);t.renderBufferDirect(n, null, o, g, e, p);\n }\n } else if (c.visible) {\n var g = s(e, c, a, v);t.renderBufferDirect(n, null, o, g, e, null);\n }\n }for (var _ = e.children, x = 0, y = _.length; x < y; x++) {\n l(_[x], i, n, a);\n }\n }\n }var c = t.context,\n h = t.state,\n u = new it(),\n d = new n(),\n f = e.shadows,\n p = new a(),\n m = new a(o.maxTextureSize, o.maxTextureSize),\n g = new i(),\n v = new i(),\n _ = 1,\n x = 2,\n y = 1 + (_ | x),\n M = new Array(y),\n E = new Array(y),\n b = {},\n w = [new i(1, 0, 0), new i(-1, 0, 0), new i(0, 0, 1), new i(0, 0, -1), new i(0, 1, 0), new i(0, -1, 0)],\n T = [new i(0, 1, 0), new i(0, 1, 0), new i(0, 1, 0), new i(0, 1, 0), new i(0, 0, 1), new i(0, 0, -1)],\n S = [new k(), new k(), new k(), new k(), new k(), new k()],\n L = new Q();L.depthPacking = pn, L.clipping = !0;for (var A = An.distanceRGBA, R = Sn.clone(A.uniforms), P = 0; P !== y; ++P) {\n var C = 0 != (P & _),\n U = 0 != (P & x),\n N = L.clone();N.morphTargets = C, N.skinning = U, M[P] = N;var D = new J({ defines: { USE_SHADOWMAP: \"\" }, uniforms: R, vertexShader: A.vertexShader, fragmentShader: A.fragmentShader, morphTargets: C, skinning: U, clipping: !0 });E[P] = D;\n }var I = this;this.enabled = !1, this.autoUpdate = !0, this.needsUpdate = !1, this.type = ye, this.renderReverseSided = !0, this.renderSingleSided = !0, this.render = function (e, i) {\n if (!1 !== I.enabled && (!1 !== I.autoUpdate || !1 !== I.needsUpdate) && 0 !== f.length) {\n h.disable(c.BLEND), h.buffers.color.setClear(1, 1, 1, 1), h.buffers.depth.setTest(!0), h.setScissorTest(!1);for (var n, r, a = 0, o = f.length; a < o; a++) {\n var s = f[a],\n _ = s.shadow;if (void 0 !== _) {\n _.isSpotLightShadow && _.update(s);var x = _.camera,\n y = _.matrix;if (v.setFromMatrixPosition(s.matrixWorld), x.position.copy(v), p.copy(_.mapSize), p.min(m), s && s.isPointLight) {\n n = 6, r = !0;var M = p.x,\n E = p.y;S[0].set(2 * M, E, M, E), S[1].set(0, E, M, E), S[2].set(3 * M, E, M, E), S[3].set(M, E, M, E), S[4].set(3 * M, 0, M, E), S[5].set(M, 0, M, E), p.x *= 4, p.y *= 2, y.makeTranslation(-v.x, -v.y, -v.z);\n } else n = 1, r = !1, g.setFromMatrixPosition(s.target.matrixWorld), x.lookAt(g), x.updateMatrixWorld(), x.matrixWorldInverse.getInverse(x.matrixWorld), y.set(.5, 0, 0, .5, 0, .5, 0, .5, 0, 0, .5, .5, 0, 0, 0, 1), y.multiply(x.projectionMatrix), y.multiply(x.matrixWorldInverse);if (null === _.map) {\n var b = { minFilter: Ei, magFilter: Ei, format: Hi };_.map = new q(p.x, p.y, b), _.map.texture.name = s.name + \".shadowMap\", x.updateProjectionMatrix();\n }var L = _.map;t.setRenderTarget(L), t.clear();for (var A = 0; A < n; A++) {\n if (r) {\n g.copy(x.position), g.add(w[A]), x.up.copy(T[A]), x.lookAt(g), x.updateMatrixWorld(), x.matrixWorldInverse.getInverse(x.matrixWorld);var R = S[A];h.viewport(R);\n }d.multiplyMatrices(x.projectionMatrix, x.matrixWorldInverse), u.setFromMatrix(d), l(e, i, x, r);\n }\n } else console.warn(\"THREE.WebGLShadowMap:\", s, \"has no shadow.\");\n }var P = t.getClearColor(),\n C = t.getClearAlpha();t.setClearColor(P, C), I.needsUpdate = !1;\n }\n };\n }function rt(t, e) {\n this.origin = void 0 !== t ? t : new i(), this.direction = void 0 !== e ? e : new i();\n }function at(t, e, i, n) {\n this._x = t || 0, this._y = e || 0, this._z = i || 0, this._order = n || at.DefaultOrder;\n }function ot() {\n this.mask = 1;\n }function st() {\n function t() {\n s.setFromEuler(o, !1);\n }function r() {\n o.setFromQuaternion(s, void 0, !1);\n }Object.defineProperty(this, \"id\", { value: Pn++ }), this.uuid = mn.generateUUID(), this.name = \"\", this.type = \"Object3D\", this.parent = null, this.children = [], this.up = st.DefaultUp.clone();var a = new i(),\n o = new at(),\n s = new e(),\n l = new i(1, 1, 1);o.onChange(t), s.onChange(r), Object.defineProperties(this, { position: { enumerable: !0, value: a }, rotation: { enumerable: !0, value: o }, quaternion: { enumerable: !0, value: s }, scale: { enumerable: !0, value: l }, modelViewMatrix: { value: new n() }, normalMatrix: { value: new tt() } }), this.matrix = new n(), this.matrixWorld = new n(), this.matrixAutoUpdate = st.DefaultMatrixAutoUpdate, this.matrixWorldNeedsUpdate = !1, this.layers = new ot(), this.visible = !0, this.castShadow = !1, this.receiveShadow = !1, this.frustumCulled = !0, this.renderOrder = 0, this.userData = {}, this.onBeforeRender = function () {}, this.onAfterRender = function () {};\n }function lt(t, e) {\n this.start = void 0 !== t ? t : new i(), this.end = void 0 !== e ? e : new i();\n }function ct(t, e, n) {\n this.a = void 0 !== t ? t : new i(), this.b = void 0 !== e ? e : new i(), this.c = void 0 !== n ? n : new i();\n }function ht(t, e, n, r, a, o) {\n this.a = t, this.b = e, this.c = n, this.normal = r && r.isVector3 ? r : new i(), this.vertexNormals = Array.isArray(r) ? r : [], this.color = a && a.isColor ? a : new W(), this.vertexColors = Array.isArray(a) ? a : [], this.materialIndex = void 0 !== o ? o : 0;\n }function ut(t) {\n Z.call(this), this.type = \"MeshBasicMaterial\", this.color = new W(16777215), this.map = null, this.lightMap = null, this.lightMapIntensity = 1, this.aoMap = null, this.aoMapIntensity = 1, this.specularMap = null, this.alphaMap = null, this.envMap = null, this.combine = ri, this.reflectivity = 1, this.refractionRatio = .98, this.wireframe = !1, this.wireframeLinewidth = 1, this.wireframeLinecap = \"round\", this.wireframeLinejoin = \"round\", this.skinning = !1, this.morphTargets = !1, this.lights = !1, this.setValues(t);\n }function dt(t, e, i) {\n if (Array.isArray(t)) throw new TypeError(\"THREE.BufferAttribute: array should be a Typed Array.\");this.uuid = mn.generateUUID(), this.array = t, this.itemSize = e, this.count = void 0 !== t ? t.length / e : 0, this.normalized = !0 === i, this.dynamic = !1, this.updateRange = { offset: 0, count: -1 }, this.onUploadCallback = function () {}, this.version = 0;\n }function ft(t, e) {\n dt.call(this, new Uint16Array(t), e);\n }function pt(t, e) {\n dt.call(this, new Uint32Array(t), e);\n }function mt(t, e) {\n dt.call(this, new Float32Array(t), e);\n }function gt() {\n this.indices = [], this.vertices = [], this.normals = [], this.colors = [], this.uvs = [], this.uvs2 = [], this.groups = [], this.morphTargets = {}, this.skinWeights = [], this.skinIndices = [], this.boundingBox = null, this.boundingSphere = null, this.verticesNeedUpdate = !1, this.normalsNeedUpdate = !1, this.colorsNeedUpdate = !1, this.uvsNeedUpdate = !1, this.groupsNeedUpdate = !1;\n }function vt(t) {\n if (0 === t.length) return -1 / 0;for (var e = t[0], i = 1, n = t.length; i < n; ++i) {\n t[i] > e && (e = t[i]);\n }return e;\n }function _t() {\n return Cn++;\n }function xt() {\n Object.defineProperty(this, \"id\", { value: _t() }), this.uuid = mn.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.boundingBox = null, this.boundingSphere = null, this.elementsNeedUpdate = !1, this.verticesNeedUpdate = !1, this.uvsNeedUpdate = !1, this.normalsNeedUpdate = !1, this.colorsNeedUpdate = !1, this.lineDistancesNeedUpdate = !1, this.groupsNeedUpdate = !1;\n }function yt() {\n Object.defineProperty(this, \"id\", { value: _t() }), this.uuid = mn.generateUUID(), this.name = \"\", this.type = \"BufferGeometry\", this.index = null, this.attributes = {}, this.morphAttributes = {}, this.groups = [], this.boundingBox = null, this.boundingSphere = null, this.drawRange = { start: 0, count: 1 / 0 };\n }function Mt(t, e) {\n st.call(this), this.type = \"Mesh\", this.geometry = void 0 !== t ? t : new yt(), this.material = void 0 !== e ? e : new ut({ color: 16777215 * Math.random() }), this.drawMode = nn, this.updateMorphTargets();\n }function Et(t, e, i, n, r, a) {\n xt.call(this), this.type = \"BoxGeometry\", this.parameters = { width: t, height: e, depth: i, widthSegments: n, heightSegments: r, depthSegments: a }, this.fromBufferGeometry(new bt(t, e, i, n, r, a)), this.mergeVertices();\n }function bt(t, e, n, r, a, o) {\n function s(t, e, n, r, a, o, s, m, g, v, _) {\n var x,\n y,\n M = o / g,\n E = s / v,\n b = o / 2,\n w = s / 2,\n T = m / 2,\n S = g + 1,\n L = v + 1,\n A = 0,\n R = 0,\n P = new i();for (y = 0; y < L; y++) {\n var C = y * E - w;for (x = 0; x < S; x++) {\n var U = x * M - b;P[t] = U * r, P[e] = C * a, P[n] = T, h.push(P.x, P.y, P.z), P[t] = 0, P[e] = 0, P[n] = m > 0 ? 1 : -1, u.push(P.x, P.y, P.z), d.push(x / g), d.push(1 - y / v), A += 1;\n }\n }for (y = 0; y < v; y++) {\n for (x = 0; x < g; x++) {\n var N = f + x + S * y,\n D = f + x + S * (y + 1),\n I = f + (x + 1) + S * (y + 1),\n F = f + (x + 1) + S * y;c.push(N, D, F), c.push(D, I, F), R += 6;\n }\n }l.addGroup(p, R, _), p += R, f += A;\n }yt.call(this), this.type = \"BoxBufferGeometry\", this.parameters = { width: t, height: e, depth: n, widthSegments: r, heightSegments: a, depthSegments: o };var l = this;r = Math.floor(r) || 1, a = Math.floor(a) || 1, o = Math.floor(o) || 1;var c = [],\n h = [],\n u = [],\n d = [],\n f = 0,\n p = 0;s(\"z\", \"y\", \"x\", -1, -1, n, e, t, o, a, 0), s(\"z\", \"y\", \"x\", 1, -1, n, e, -t, o, a, 1), s(\"x\", \"z\", \"y\", 1, 1, t, n, e, r, o, 2), s(\"x\", \"z\", \"y\", 1, -1, t, n, -e, r, o, 3), s(\"x\", \"y\", \"z\", 1, -1, t, e, n, r, a, 4), s(\"x\", \"y\", \"z\", -1, -1, t, e, -n, r, a, 5), this.setIndex(c), this.addAttribute(\"position\", new mt(h, 3)), this.addAttribute(\"normal\", new mt(u, 3)), this.addAttribute(\"uv\", new mt(d, 2));\n }function wt(t, e, i, n) {\n yt.call(this), this.type = \"PlaneBufferGeometry\", this.parameters = { width: t, height: e, widthSegments: i, heightSegments: n };var r,\n a,\n o = t / 2,\n s = e / 2,\n l = Math.floor(i) || 1,\n c = Math.floor(n) || 1,\n h = l + 1,\n u = c + 1,\n d = t / l,\n f = e / c,\n p = [],\n m = [],\n g = [],\n v = [];for (a = 0; a < u; a++) {\n var _ = a * f - s;for (r = 0; r < h; r++) {\n var x = r * d - o;m.push(x, -_, 0), g.push(0, 0, 1), v.push(r / l), v.push(1 - a / c);\n }\n }for (a = 0; a < c; a++) {\n for (r = 0; r < l; r++) {\n var y = r + h * a,\n M = r + h * (a + 1),\n E = r + 1 + h * (a + 1),\n b = r + 1 + h * a;p.push(y, M, b), p.push(M, E, b);\n }\n }this.setIndex(p), this.addAttribute(\"position\", new mt(m, 3)), this.addAttribute(\"normal\", new mt(g, 3)), this.addAttribute(\"uv\", new mt(v, 2));\n }function Tt() {\n st.call(this), this.type = \"Camera\", this.matrixWorldInverse = new n(), this.projectionMatrix = new n();\n }function St(t, e, i, n) {\n Tt.call(this), this.type = \"PerspectiveCamera\", this.fov = void 0 !== t ? t : 50, this.zoom = 1, this.near = void 0 !== i ? i : .1, this.far = void 0 !== n ? n : 2e3, this.focus = 10, this.aspect = void 0 !== e ? e : 1, this.view = null, this.filmGauge = 35, this.filmOffset = 0, this.updateProjectionMatrix();\n }function Lt(t, e, i, n, r, a) {\n Tt.call(this), this.type = \"OrthographicCamera\", this.zoom = 1, this.view = null, this.left = t, this.right = e, this.top = i, this.bottom = n, this.near = void 0 !== r ? r : .1, this.far = void 0 !== a ? a : 2e3, this.updateProjectionMatrix();\n }function At(t) {\n function e(e, i) {\n var n = e.array,\n r = e.dynamic ? t.DYNAMIC_DRAW : t.STATIC_DRAW,\n a = t.createBuffer();t.bindBuffer(i, a), t.bufferData(i, n, r), e.onUploadCallback();var o = t.FLOAT;return n instanceof Float32Array ? o = t.FLOAT : n instanceof Float64Array ? console.warn(\"Unsupported data buffer format: Float64Array\") : n instanceof Uint16Array ? o = t.UNSIGNED_SHORT : n instanceof Int16Array ? o = t.SHORT : n instanceof Uint32Array ? o = t.UNSIGNED_INT : n instanceof Int32Array ? o = t.INT : n instanceof Int8Array ? o = t.BYTE : n instanceof Uint8Array && (o = t.UNSIGNED_BYTE), { buffer: a, type: o, bytesPerElement: n.BYTES_PER_ELEMENT, version: e.version };\n }function i(e, i, n) {\n var r = i.array,\n a = i.updateRange;t.bindBuffer(n, e), !1 === i.dynamic ? t.bufferData(n, r, t.STATIC_DRAW) : -1 === a.count ? t.bufferSubData(n, 0, r) : 0 === a.count ? console.error(\"THREE.WebGLObjects.updateBuffer: dynamic THREE.BufferAttribute marked as needsUpdate but updateRange.count is 0, ensure you are using set methods or updating manually.\") : (t.bufferSubData(n, a.offset * r.BYTES_PER_ELEMENT, r.subarray(a.offset, a.offset + a.count)), a.count = 0);\n }function n(t) {\n return t.isInterleavedBufferAttribute && (t = t.data), o[t.uuid];\n }function r(e) {\n var i = o[e.uuid];i && (t.deleteBuffer(i.buffer), delete o[e.uuid]);\n }function a(t, n) {\n t.isInterleavedBufferAttribute && (t = t.data);var r = o[t.uuid];void 0 === r ? o[t.uuid] = e(t, n) : r.version < t.version && (i(r.buffer, t, n), r.version = t.version);\n }var o = {};return { get: n, remove: r, update: a };\n }function Rt(t, e) {\n return t.renderOrder !== e.renderOrder ? t.renderOrder - e.renderOrder : t.program && e.program && t.program !== e.program ? t.program.id - e.program.id : t.material.id !== e.material.id ? t.material.id - e.material.id : t.z !== e.z ? t.z - e.z : t.id - e.id;\n }function Pt(t, e) {\n return t.renderOrder !== e.renderOrder ? t.renderOrder - e.renderOrder : t.z !== e.z ? e.z - t.z : t.id - e.id;\n }function Ct() {\n function t() {\n a = -1, s = -1;\n }function e(t, e, i, n, l) {\n var c, h;i.transparent ? (c = o, h = ++s) : (c = r, h = ++a);var u = c[h];u ? (u.id = t.id, u.object = t, u.geometry = e, u.material = i, u.program = i.program, u.renderOrder = t.renderOrder, u.z = n, u.group = l) : (u = { id: t.id, object: t, geometry: e, material: i, program: i.program, renderOrder: t.renderOrder, z: n, group: l }, c.push(u));\n }function i() {\n r.length = a + 1, o.length = s + 1;\n }function n() {\n r.sort(Rt), o.sort(Pt);\n }var r = [],\n a = -1,\n o = [],\n s = -1;return { opaque: r, transparent: o, init: t, push: e, finish: i, sort: n };\n }function Ut() {\n function t(t, e) {\n var n = t.id + \",\" + e.id,\n r = i[n];return void 0 === r && (r = new Ct(), i[n] = r), r;\n }function e() {\n i = {};\n }var i = {};return { get: t, dispose: e };\n }function Nt(t, e, i) {\n function n(t) {\n s = t;\n }function r(i) {\n i.array instanceof Uint32Array && e.get(\"OES_element_index_uint\") ? (l = t.UNSIGNED_INT, c = 4) : i.array instanceof Uint16Array ? (l = t.UNSIGNED_SHORT, c = 2) : (l = t.UNSIGNED_BYTE, c = 1);\n }function a(e, n) {\n t.drawElements(s, n, l, e * c), i.calls++, i.vertices += n, s === t.TRIANGLES && (i.faces += n / 3);\n }function o(n, r, a) {\n var o = e.get(\"ANGLE_instanced_arrays\");if (null === o) return void console.error(\"THREE.WebGLIndexedBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.\");o.drawElementsInstancedANGLE(s, a, l, r * c, n.maxInstancedCount), i.calls++, i.vertices += a * n.maxInstancedCount, s === t.TRIANGLES && (i.faces += n.maxInstancedCount * a / 3);\n }var s, l, c;this.setMode = n, this.setIndex = r, this.render = a, this.renderInstances = o;\n }function Dt(t, e, i) {\n function n(t) {\n o = t;\n }function r(e, n) {\n t.drawArrays(o, e, n), i.calls++, i.vertices += n, o === t.TRIANGLES && (i.faces += n / 3);\n }function a(n, r, a) {\n var s = e.get(\"ANGLE_instanced_arrays\");if (null === s) return void console.error(\"THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.\");var l = n.attributes.position;l.isInterleavedBufferAttribute ? (a = l.data.count, s.drawArraysInstancedANGLE(o, 0, a, n.maxInstancedCount)) : s.drawArraysInstancedANGLE(o, r, a, n.maxInstancedCount), i.calls++, i.vertices += a * n.maxInstancedCount, o === t.TRIANGLES && (i.faces += n.maxInstancedCount * a / 3);\n }var o;this.setMode = n, this.render = r, this.renderInstances = a;\n }function It(t, e, i) {\n function n(t) {\n var r = t.target,\n a = s[r.id];null !== a.index && e.remove(a.index);for (var o in a.attributes) {\n e.remove(a.attributes[o]);\n }r.removeEventListener(\"dispose\", n), delete s[r.id];var c = l[r.id];c && (e.remove(c), delete l[r.id]), c = l[a.id], c && (e.remove(c), delete l[a.id]), i.geometries--;\n }function r(t, e) {\n var r = s[e.id];return r || (e.addEventListener(\"dispose\", n), e.isBufferGeometry ? r = e : e.isGeometry && (void 0 === e._bufferGeometry && (e._bufferGeometry = new yt().setFromObject(t)), r = e._bufferGeometry), s[e.id] = r, i.geometries++, r);\n }function a(i) {\n var n = i.index,\n r = i.attributes;null !== n && e.update(n, t.ELEMENT_ARRAY_BUFFER);for (var a in r) {\n e.update(r[a], t.ARRAY_BUFFER);\n }var o = i.morphAttributes;for (var a in o) {\n for (var s = o[a], l = 0, c = s.length; l < c; l++) {\n e.update(s[l], t.ARRAY_BUFFER);\n }\n }\n }function o(i) {\n var n = l[i.id];if (n) return n;var r = [],\n a = i.index,\n o = i.attributes;if (null !== a) for (var s = a.array, c = 0, h = s.length; c < h; c += 3) {\n var u = s[c + 0],\n d = s[c + 1],\n f = s[c + 2];r.push(u, d, d, f, f, u);\n } else for (var s = o.position.array, c = 0, h = s.length / 3 - 1; c < h; c += 3) {\n var u = c + 0,\n d = c + 1,\n f = c + 2;r.push(u, d, d, f, f, u);\n }return n = new (vt(r) > 65535 ? pt : ft)(r, 1), e.update(n, t.ELEMENT_ARRAY_BUFFER), l[i.id] = n, n;\n }var s = {},\n l = {};return { get: r, update: a, getWireframeAttribute: o };\n }function Ft() {\n var t = {};return { get: function get(e) {\n if (void 0 !== t[e.id]) return t[e.id];var n;switch (e.type) {case \"DirectionalLight\":\n n = { direction: new i(), color: new W(), shadow: !1, shadowBias: 0, shadowRadius: 1, shadowMapSize: new a() };break;case \"SpotLight\":\n n = { position: new i(), direction: new i(), color: new W(), distance: 0, coneCos: 0, penumbraCos: 0, decay: 0, shadow: !1, shadowBias: 0, shadowRadius: 1, shadowMapSize: new a() };break;case \"PointLight\":\n n = { position: new i(), color: new W(), distance: 0, decay: 0, shadow: !1, shadowBias: 0, shadowRadius: 1, shadowMapSize: new a() };break;case \"HemisphereLight\":\n n = { direction: new i(), skyColor: new W(), groundColor: new W() };break;case \"RectAreaLight\":\n n = { color: new W(), position: new i(), halfWidth: new i(), halfHeight: new i() };}return t[e.id] = n, n;\n } };\n }function zt(t, e, i) {\n function n(t) {\n var n = i.frame,\n r = t.geometry,\n o = e.get(t, r);return a[o.id] !== n && (r.isGeometry && o.updateFromObject(t), e.update(o), a[o.id] = n), o;\n }function r() {\n a = {};\n }var a = {};return { update: n, clear: r };\n }function Ot(t) {\n for (var e = t.split(\"\\n\"), i = 0; i < e.length; i++) {\n e[i] = i + 1 + \": \" + e[i];\n }return e.join(\"\\n\");\n }function Bt(t, e, i) {\n var n = t.createShader(e);return t.shaderSource(n, i), t.compileShader(n), !1 === t.getShaderParameter(n, t.COMPILE_STATUS) && console.error(\"THREE.WebGLShader: Shader couldn't compile.\"), \"\" !== t.getShaderInfoLog(n) && console.warn(\"THREE.WebGLShader: gl.getShaderInfoLog()\", e === t.VERTEX_SHADER ? \"vertex\" : \"fragment\", t.getShaderInfoLog(n), Ot(i)), n;\n }function Gt(t) {\n switch (t) {case on:\n return [\"Linear\", \"( value )\"];case sn:\n return [\"sRGB\", \"( value )\"];case cn:\n return [\"RGBE\", \"( value )\"];case hn:\n return [\"RGBM\", \"( value, 7.0 )\"];case un:\n return [\"RGBM\", \"( value, 16.0 )\"];case dn:\n return [\"RGBD\", \"( value, 256.0 )\"];case ln:\n return [\"Gamma\", \"( value, float( GAMMA_FACTOR ) )\"];default:\n throw new Error(\"unsupported encoding: \" + t);}\n }function Vt(t, e) {\n var i = Gt(e);return \"vec4 \" + t + \"( vec4 value ) { return \" + i[0] + \"ToLinear\" + i[1] + \"; }\";\n }function Ht(t, e) {\n var i = Gt(e);return \"vec4 \" + t + \"( vec4 value ) { return LinearTo\" + i[0] + i[1] + \"; }\";\n }function kt(t, e) {\n var i;switch (e) {case li:\n i = \"Linear\";break;case ci:\n i = \"Reinhard\";break;case hi:\n i = \"Uncharted2\";break;case ui:\n i = \"OptimizedCineon\";break;default:\n throw new Error(\"unsupported toneMapping: \" + e);}return \"vec3 \" + t + \"( vec3 color ) { return \" + i + \"ToneMapping( color ); }\";\n }function Wt(t, e, i) {\n return t = t || {}, [t.derivatives || e.envMapCubeUV || e.bumpMap || e.normalMap || e.flatShading ? \"#extension GL_OES_standard_derivatives : enable\" : \"\", (t.fragDepth || e.logarithmicDepthBuffer) && i.get(\"EXT_frag_depth\") ? \"#extension GL_EXT_frag_depth : enable\" : \"\", t.drawBuffers && i.get(\"WEBGL_draw_buffers\") ? \"#extension GL_EXT_draw_buffers : require\" : \"\", (t.shaderTextureLOD || e.envMap) && i.get(\"EXT_shader_texture_lod\") ? \"#extension GL_EXT_shader_texture_lod : enable\" : \"\"].filter(Yt).join(\"\\n\");\n }function Xt(t) {\n var e = [];for (var i in t) {\n var n = t[i];!1 !== n && e.push(\"#define \" + i + \" \" + n);\n }return e.join(\"\\n\");\n }function jt(t, e, i) {\n for (var n = {}, r = t.getProgramParameter(e, t.ACTIVE_ATTRIBUTES), a = 0; a < r; a++) {\n var o = t.getActiveAttrib(e, a),\n s = o.name;n[s] = t.getAttribLocation(e, s);\n }return n;\n }function Yt(t) {\n return \"\" !== t;\n }function qt(t, e) {\n return t.replace(/NUM_DIR_LIGHTS/g, e.numDirLights).replace(/NUM_SPOT_LIGHTS/g, e.numSpotLights).replace(/NUM_RECT_AREA_LIGHTS/g, e.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g, e.numPointLights).replace(/NUM_HEMI_LIGHTS/g, e.numHemiLights);\n }function Zt(t) {\n function e(t, e) {\n var i = Ln[e];if (void 0 === i) throw new Error(\"Can not resolve #include <\" + e + \">\");return Zt(i);\n }var i = /^[ \\t]*#include +<([\\w\\d.]+)>/gm;return t.replace(i, e);\n }function Jt(t) {\n function e(t, e, i, n) {\n for (var r = \"\", a = parseInt(e); a < parseInt(i); a++) {\n r += n.replace(/\\[ i \\]/g, \"[ \" + a + \" ]\");\n }return r;\n }var i = /for \\( int i \\= (\\d+)\\; i < (\\d+)\\; i \\+\\+ \\) \\{([\\s\\S]+?)(?=\\})\\}/g;return t.replace(i, e);\n }function Qt(t, e, i, n) {\n var r = t.context,\n a = i.extensions,\n o = i.defines,\n s = i.__webglShader.vertexShader,\n l = i.__webglShader.fragmentShader,\n c = \"SHADOWMAP_TYPE_BASIC\";n.shadowMapType === ye ? c = \"SHADOWMAP_TYPE_PCF\" : n.shadowMapType === Me && (c = \"SHADOWMAP_TYPE_PCF_SOFT\");var h = \"ENVMAP_TYPE_CUBE\",\n u = \"ENVMAP_MODE_REFLECTION\",\n d = \"ENVMAP_BLENDING_MULTIPLY\";if (n.envMap) {\n switch (i.envMap.mapping) {case di:case fi:\n h = \"ENVMAP_TYPE_CUBE\";break;case vi:case _i:\n h = \"ENVMAP_TYPE_CUBE_UV\";break;case pi:case mi:\n h = \"ENVMAP_TYPE_EQUIREC\";break;case gi:\n h = \"ENVMAP_TYPE_SPHERE\";}switch (i.envMap.mapping) {case fi:case mi:\n u = \"ENVMAP_MODE_REFRACTION\";}switch (i.combine) {case ri:\n d = \"ENVMAP_BLENDING_MULTIPLY\";break;case ai:\n d = \"ENVMAP_BLENDING_MIX\";break;case oi:\n d = \"ENVMAP_BLENDING_ADD\";}\n }var f,\n p,\n m = t.gammaFactor > 0 ? t.gammaFactor : 1,\n g = Wt(a, n, t.extensions),\n v = Xt(o),\n _ = r.createProgram();i.isRawShaderMaterial ? (f = [v, \"\\n\"].filter(Yt).join(\"\\n\"), p = [g, v, \"\\n\"].filter(Yt).join(\"\\n\")) : (f = [\"precision \" + n.precision + \" float;\", \"precision \" + n.precision + \" int;\", \"#define SHADER_NAME \" + i.__webglShader.name, v, n.supportsVertexTextures ? \"#define VERTEX_TEXTURES\" : \"\", \"#define GAMMA_FACTOR \" + m, \"#define MAX_BONES \" + n.maxBones, n.useFog && n.fog ? \"#define USE_FOG\" : \"\", n.useFog && n.fogExp ? \"#define FOG_EXP2\" : \"\", n.map ? \"#define USE_MAP\" : \"\", n.envMap ? \"#define USE_ENVMAP\" : \"\", n.envMap ? \"#define \" + u : \"\", n.lightMap ? \"#define USE_LIGHTMAP\" : \"\", n.aoMap ? \"#define USE_AOMAP\" : \"\", n.emissiveMap ? \"#define USE_EMISSIVEMAP\" : \"\", n.bumpMap ? \"#define USE_BUMPMAP\" : \"\", n.normalMap ? \"#define USE_NORMALMAP\" : \"\", n.displacementMap && n.supportsVertexTextures ? \"#define USE_DISPLACEMENTMAP\" : \"\", n.specularMap ? \"#define USE_SPECULARMAP\" : \"\", n.roughnessMap ? \"#define USE_ROUGHNESSMAP\" : \"\", n.metalnessMap ? \"#define USE_METALNESSMAP\" : \"\", n.alphaMap ? \"#define USE_ALPHAMAP\" : \"\", n.vertexColors ? \"#define USE_COLOR\" : \"\", n.flatShading ? \"#define FLAT_SHADED\" : \"\", n.skinning ? \"#define USE_SKINNING\" : \"\", n.useVertexTexture ? \"#define BONE_TEXTURE\" : \"\", n.morphTargets ? \"#define USE_MORPHTARGETS\" : \"\", n.morphNormals && !1 === n.flatShading ? \"#define USE_MORPHNORMALS\" : \"\", n.doubleSided ? \"#define DOUBLE_SIDED\" : \"\", n.flipSided ? \"#define FLIP_SIDED\" : \"\", \"#define NUM_CLIPPING_PLANES \" + n.numClippingPlanes, n.shadowMapEnabled ? \"#define USE_SHADOWMAP\" : \"\", n.shadowMapEnabled ? \"#define \" + c : \"\", n.sizeAttenuation ? \"#define USE_SIZEATTENUATION\" : \"\", n.logarithmicDepthBuffer ? \"#define USE_LOGDEPTHBUF\" : \"\", n.logarithmicDepthBuffer && t.extensions.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(Yt).join(\"\\n\"), p = [g, \"precision \" + n.precision + \" float;\", \"precision \" + n.precision + \" int;\", \"#define SHADER_NAME \" + i.__webglShader.name, v, n.alphaTest ? \"#define ALPHATEST \" + n.alphaTest : \"\", \"#define GAMMA_FACTOR \" + m, n.useFog && n.fog ? \"#define USE_FOG\" : \"\", n.useFog && n.fogExp ? \"#define FOG_EXP2\" : \"\", n.map ? \"#define USE_MAP\" : \"\", n.envMap ? \"#define USE_ENVMAP\" : \"\", n.envMap ? \"#define \" + h : \"\", n.envMap ? \"#define \" + u : \"\", n.envMap ? \"#define \" + d : \"\", n.lightMap ? \"#define USE_LIGHTMAP\" : \"\", n.aoMap ? \"#define USE_AOMAP\" : \"\", n.emissiveMap ? \"#define USE_EMISSIVEMAP\" : \"\", n.bumpMap ? \"#define USE_BUMPMAP\" : \"\", n.normalMap ? \"#define USE_NORMALMAP\" : \"\", n.specularMap ? \"#define USE_SPECULARMAP\" : \"\", n.roughnessMap ? \"#define USE_ROUGHNESSMAP\" : \"\", n.metalnessMap ? \"#define USE_METALNESSMAP\" : \"\", n.alphaMap ? \"#define USE_ALPHAMAP\" : \"\", n.vertexColors ? \"#define USE_COLOR\" : \"\", n.gradientMap ? \"#define USE_GRADIENTMAP\" : \"\", n.flatShading ? \"#define FLAT_SHADED\" : \"\", n.doubleSided ? \"#define DOUBLE_SIDED\" : \"\", n.flipSided ? \"#define FLIP_SIDED\" : \"\", \"#define NUM_CLIPPING_PLANES \" + n.numClippingPlanes, \"#define UNION_CLIPPING_PLANES \" + (n.numClippingPlanes - n.numClipIntersection), n.shadowMapEnabled ? \"#define USE_SHADOWMAP\" : \"\", n.shadowMapEnabled ? \"#define \" + c : \"\", n.premultipliedAlpha ? \"#define PREMULTIPLIED_ALPHA\" : \"\", n.physicallyCorrectLights ? \"#define PHYSICALLY_CORRECT_LIGHTS\" : \"\", n.logarithmicDepthBuffer ? \"#define USE_LOGDEPTHBUF\" : \"\", n.logarithmicDepthBuffer && t.extensions.get(\"EXT_frag_depth\") ? \"#define USE_LOGDEPTHBUF_EXT\" : \"\", n.envMap && t.extensions.get(\"EXT_shader_texture_lod\") ? \"#define TEXTURE_LOD_EXT\" : \"\", \"uniform mat4 viewMatrix;\", \"uniform vec3 cameraPosition;\", n.toneMapping !== si ? \"#define TONE_MAPPING\" : \"\", n.toneMapping !== si ? Ln.tonemapping_pars_fragment : \"\", n.toneMapping !== si ? kt(\"toneMapping\", n.toneMapping) : \"\", n.dithering ? \"#define DITHERING\" : \"\", n.outputEncoding || n.mapEncoding || n.envMapEncoding || n.emissiveMapEncoding ? Ln.encodings_pars_fragment : \"\", n.mapEncoding ? Vt(\"mapTexelToLinear\", n.mapEncoding) : \"\", n.envMapEncoding ? Vt(\"envMapTexelToLinear\", n.envMapEncoding) : \"\", n.emissiveMapEncoding ? Vt(\"emissiveMapTexelToLinear\", n.emissiveMapEncoding) : \"\", n.outputEncoding ? Ht(\"linearToOutputTexel\", n.outputEncoding) : \"\", n.depthPacking ? \"#define DEPTH_PACKING \" + i.depthPacking : \"\", \"\\n\"].filter(Yt).join(\"\\n\")), s = Zt(s, n), s = qt(s, n), l = Zt(l, n), l = qt(l, n), i.isShaderMaterial || (s = Jt(s), l = Jt(l));var x = f + s,\n y = p + l,\n M = Bt(r, r.VERTEX_SHADER, x),\n E = Bt(r, r.FRAGMENT_SHADER, y);r.attachShader(_, M), r.attachShader(_, E), void 0 !== i.index0AttributeName ? r.bindAttribLocation(_, 0, i.index0AttributeName) : !0 === n.morphTargets && r.bindAttribLocation(_, 0, \"position\"), r.linkProgram(_);var b = r.getProgramInfoLog(_),\n w = r.getShaderInfoLog(M),\n T = r.getShaderInfoLog(E),\n S = !0,\n L = !0;!1 === r.getProgramParameter(_, r.LINK_STATUS) ? (S = !1, console.error(\"THREE.WebGLProgram: shader error: \", r.getError(), \"gl.VALIDATE_STATUS\", r.getProgramParameter(_, r.VALIDATE_STATUS), \"gl.getProgramInfoLog\", b, w, T)) : \"\" !== b ? console.warn(\"THREE.WebGLProgram: gl.getProgramInfoLog()\", b) : \"\" !== w && \"\" !== T || (L = !1), L && (this.diagnostics = { runnable: S, material: i, programLog: b, vertexShader: { log: w, prefix: f }, fragmentShader: { log: T, prefix: p } }), r.deleteShader(M), r.deleteShader(E);var A;this.getUniforms = function () {\n return void 0 === A && (A = new H(r, _, t)), A;\n };var R;return this.getAttributes = function () {\n return void 0 === R && (R = jt(r, _)), R;\n }, this.destroy = function () {\n r.deleteProgram(_), this.program = void 0;\n }, Object.defineProperties(this, { uniforms: { get: function get() {\n return console.warn(\"THREE.WebGLProgram: .uniforms is now .getUniforms().\"), this.getUniforms();\n } }, attributes: { get: function get() {\n return console.warn(\"THREE.WebGLProgram: .attributes is now .getAttributes().\"), this.getAttributes();\n } } }), this.id = Un++, this.code = e, this.usedTimes = 1, this.program = _, this.vertexShader = M, this.fragmentShader = E, this;\n }function Kt(t, e) {\n function i(t) {\n var i = t.skeleton,\n n = i.bones;if (e.floatVertexTextures) return 1024;var r = e.maxVertexUniforms,\n a = Math.floor((r - 20) / 4),\n o = Math.min(a, n.length);return o < n.length ? (console.warn(\"THREE.WebGLRenderer: Skeleton has \" + n.length + \" bones. This GPU supports \" + o + \".\"), 0) : o;\n }function n(t, e) {\n var i;return t ? t.isTexture ? i = t.encoding : t.isWebGLRenderTarget && (console.warn(\"THREE.WebGLPrograms.getTextureEncodingFromMap: don't use render targets as textures. Use their .texture property instead.\"), i = t.texture.encoding) : i = on, i === on && e && (i = ln), i;\n }var r = [],\n a = { MeshDepthMaterial: \"depth\", MeshNormalMaterial: \"normal\", MeshBasicMaterial: \"basic\", MeshLambertMaterial: \"lambert\", MeshPhongMaterial: \"phong\", MeshToonMaterial: \"phong\", MeshStandardMaterial: \"physical\", MeshPhysicalMaterial: \"physical\", LineBasicMaterial: \"basic\", LineDashedMaterial: \"dashed\", PointsMaterial: \"points\" },\n o = [\"precision\", \"supportsVertexTextures\", \"map\", \"mapEncoding\", \"envMap\", \"envMapMode\", \"envMapEncoding\", \"lightMap\", \"aoMap\", \"emissiveMap\", \"emissiveMapEncoding\", \"bumpMap\", \"normalMap\", \"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\"];this.getParameters = function (r, o, s, l, c, h) {\n var u = a[r.type],\n d = h.isSkinnedMesh ? i(h) : 0,\n f = t.getPrecision();null !== r.precision && (f = e.getMaxPrecision(r.precision)) !== r.precision && console.warn(\"THREE.WebGLProgram.getParameters:\", r.precision, \"not supported, using\", f, \"instead.\");var p = t.getRenderTarget();return { shaderID: u, precision: f, supportsVertexTextures: e.vertexTextures, outputEncoding: n(p ? p.texture : null, t.gammaOutput), map: !!r.map, mapEncoding: n(r.map, t.gammaInput), envMap: !!r.envMap, envMapMode: r.envMap && r.envMap.mapping, envMapEncoding: n(r.envMap, t.gammaInput), envMapCubeUV: !!r.envMap && (r.envMap.mapping === vi || r.envMap.mapping === _i), lightMap: !!r.lightMap, aoMap: !!r.aoMap, emissiveMap: !!r.emissiveMap, emissiveMapEncoding: n(r.emissiveMap, t.gammaInput), bumpMap: !!r.bumpMap, normalMap: !!r.normalMap, displacementMap: !!r.displacementMap, roughnessMap: !!r.roughnessMap, metalnessMap: !!r.metalnessMap, specularMap: !!r.specularMap, alphaMap: !!r.alphaMap, gradientMap: !!r.gradientMap, combine: r.combine, vertexColors: r.vertexColors, fog: !!s, useFog: r.fog, fogExp: s && s.isFogExp2, flatShading: r.shading === Te, sizeAttenuation: r.sizeAttenuation, logarithmicDepthBuffer: e.logarithmicDepthBuffer, skinning: r.skinning && d > 0, maxBones: d, useVertexTexture: e.floatVertexTextures, morphTargets: r.morphTargets, morphNormals: r.morphNormals, maxMorphTargets: t.maxMorphTargets, maxMorphNormals: t.maxMorphNormals, numDirLights: o.directional.length, numPointLights: o.point.length, numSpotLights: o.spot.length, numRectAreaLights: o.rectArea.length, numHemiLights: o.hemi.length, numClippingPlanes: l, numClipIntersection: c, dithering: r.dithering, shadowMapEnabled: t.shadowMap.enabled && h.receiveShadow && o.shadows.length > 0, shadowMapType: t.shadowMap.type, toneMapping: t.toneMapping, physicallyCorrectLights: t.physicallyCorrectLights, premultipliedAlpha: r.premultipliedAlpha, alphaTest: r.alphaTest, doubleSided: r.side === we, flipSided: r.side === be, depthPacking: void 0 !== r.depthPacking && r.depthPacking };\n }, this.getProgramCode = function (t, e) {\n var i = [];if (e.shaderID ? i.push(e.shaderID) : (i.push(t.fragmentShader), i.push(t.vertexShader)), void 0 !== t.defines) for (var n in t.defines) {\n i.push(n), i.push(t.defines[n]);\n }for (var r = 0; r < o.length; r++) {\n i.push(e[o[r]]);\n }return i.join();\n }, this.acquireProgram = function (e, i, n) {\n for (var a, o = 0, s = r.length; o < s; o++) {\n var l = r[o];if (l.code === n) {\n a = l, ++a.usedTimes;break;\n }\n }return void 0 === a && (a = new Qt(t, n, e, i), r.push(a)), a;\n }, this.releaseProgram = function (t) {\n if (0 == --t.usedTimes) {\n var e = r.indexOf(t);r[e] = r[r.length - 1], r.pop(), t.destroy();\n }\n }, this.programs = r;\n }function $t(t, e, i, n, r, a, o) {\n function s(t, e) {\n if (t.width > e || t.height > e) {\n var i = e / Math.max(t.width, t.height),\n n = document.createElementNS(\"http://www.w3.org/1999/xhtml\", \"canvas\");n.width = Math.floor(t.width * i), n.height = Math.floor(t.height * i);return n.getContext(\"2d\").drawImage(t, 0, 0, t.width, t.height, 0, 0, n.width, n.height), console.warn(\"THREE.WebGLRenderer: image is too big (\" + t.width + \"x\" + t.height + \"). Resized to \" + n.width + \"x\" + n.height, t), n;\n }return t;\n }function l(t) {\n return mn.isPowerOfTwo(t.width) && mn.isPowerOfTwo(t.height);\n }function c(t) {\n if (t instanceof HTMLImageElement || t instanceof HTMLCanvasElement) {\n var e = document.createElementNS(\"http://www.w3.org/1999/xhtml\", \"canvas\");e.width = mn.nearestPowerOfTwo(t.width), e.height = mn.nearestPowerOfTwo(t.height);return e.getContext(\"2d\").drawImage(t, 0, 0, e.width, e.height), console.warn(\"THREE.WebGLRenderer: image is not power of two (\" + t.width + \"x\" + t.height + \"). Resized to \" + e.width + \"x\" + e.height, t), e;\n }return t;\n }function h(t) {\n return t.wrapS !== yi || t.wrapT !== yi || t.minFilter !== Ei && t.minFilter !== Ti;\n }function u(e) {\n return e === Ei || e === bi || e === wi ? t.NEAREST : t.LINEAR;\n }function d(t) {\n var e = t.target;e.removeEventListener(\"dispose\", d), p(e), o.textures--;\n }function f(t) {\n var e = t.target;e.removeEventListener(\"dispose\", f), m(e), o.textures--;\n }function p(e) {\n var i = n.get(e);if (e.image && i.__image__webglTextureCube) t.deleteTexture(i.__image__webglTextureCube);else {\n if (void 0 === i.__webglInit) return;t.deleteTexture(i.__webglTexture);\n }n.remove(e);\n }function m(e) {\n var i = n.get(e),\n r = n.get(e.texture);if (e) {\n if (void 0 !== r.__webglTexture && t.deleteTexture(r.__webglTexture), e.depthTexture && e.depthTexture.dispose(), e.isWebGLRenderTargetCube) for (var a = 0; a < 6; a++) {\n t.deleteFramebuffer(i.__webglFramebuffer[a]), i.__webglDepthbuffer && t.deleteRenderbuffer(i.__webglDepthbuffer[a]);\n } else t.deleteFramebuffer(i.__webglFramebuffer), i.__webglDepthbuffer && t.deleteRenderbuffer(i.__webglDepthbuffer);n.remove(e.texture), n.remove(e);\n }\n }function g(e, r) {\n var a = n.get(e);if (e.version > 0 && a.__version !== e.version) {\n var o = e.image;if (void 0 === o) console.warn(\"THREE.WebGLRenderer: Texture marked for update but image is undefined\", e);else {\n if (!1 !== o.complete) return void y(a, e, r);console.warn(\"THREE.WebGLRenderer: Texture marked for update but image is incomplete\", e);\n }\n }i.activeTexture(t.TEXTURE0 + r), i.bindTexture(t.TEXTURE_2D, a.__webglTexture);\n }function v(e, c) {\n var h = n.get(e);if (6 === e.image.length) if (e.version > 0 && h.__version !== e.version) {\n h.__image__webglTextureCube || (e.addEventListener(\"dispose\", d), h.__image__webglTextureCube = t.createTexture(), o.textures++), i.activeTexture(t.TEXTURE0 + c), i.bindTexture(t.TEXTURE_CUBE_MAP, h.__image__webglTextureCube), t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL, e.flipY);for (var u = e && e.isCompressedTexture, f = e.image[0] && e.image[0].isDataTexture, p = [], m = 0; m < 6; m++) {\n p[m] = u || f ? f ? e.image[m].image : e.image[m] : s(e.image[m], r.maxCubemapSize);\n }var g = p[0],\n v = l(g),\n _ = a(e.format),\n y = a(e.type);x(t.TEXTURE_CUBE_MAP, e, v);for (var m = 0; m < 6; m++) {\n if (u) for (var M, E = p[m].mipmaps, b = 0, w = E.length; b < w; b++) {\n M = E[b], e.format !== Hi && e.format !== Vi ? i.getCompressedTextureFormats().indexOf(_) > -1 ? i.compressedTexImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X + m, b, _, M.width, M.height, 0, M.data) : console.warn(\"THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()\") : i.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X + m, b, _, M.width, M.height, 0, _, y, M.data);\n } else f ? i.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X + m, 0, _, p[m].width, p[m].height, 0, _, y, p[m].data) : i.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X + m, 0, _, _, y, p[m]);\n }e.generateMipmaps && v && t.generateMipmap(t.TEXTURE_CUBE_MAP), h.__version = e.version, e.onUpdate && e.onUpdate(e);\n } else i.activeTexture(t.TEXTURE0 + c), i.bindTexture(t.TEXTURE_CUBE_MAP, h.__image__webglTextureCube);\n }function _(e, r) {\n i.activeTexture(t.TEXTURE0 + r), i.bindTexture(t.TEXTURE_CUBE_MAP, n.get(e).__webglTexture);\n }function x(i, o, s) {\n var l;if (s ? (t.texParameteri(i, t.TEXTURE_WRAP_S, a(o.wrapS)), t.texParameteri(i, t.TEXTURE_WRAP_T, a(o.wrapT)), t.texParameteri(i, t.TEXTURE_MAG_FILTER, a(o.magFilter)), t.texParameteri(i, t.TEXTURE_MIN_FILTER, a(o.minFilter))) : (t.texParameteri(i, t.TEXTURE_WRAP_S, t.CLAMP_TO_EDGE), t.texParameteri(i, t.TEXTURE_WRAP_T, t.CLAMP_TO_EDGE), o.wrapS === yi && o.wrapT === yi || console.warn(\"THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping.\", o), t.texParameteri(i, t.TEXTURE_MAG_FILTER, u(o.magFilter)), t.texParameteri(i, t.TEXTURE_MIN_FILTER, u(o.minFilter)), o.minFilter !== Ei && o.minFilter !== Ti && console.warn(\"THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.\", o)), l = e.get(\"EXT_texture_filter_anisotropic\")) {\n if (o.type === Di && null === e.get(\"OES_texture_float_linear\")) return;if (o.type === Ii && null === e.get(\"OES_texture_half_float_linear\")) return;(o.anisotropy > 1 || n.get(o).__currentAnisotropy) && (t.texParameterf(i, l.TEXTURE_MAX_ANISOTROPY_EXT, Math.min(o.anisotropy, r.getMaxAnisotropy())), n.get(o).__currentAnisotropy = o.anisotropy);\n }\n }function y(e, n, u) {\n void 0 === e.__webglInit && (e.__webglInit = !0, n.addEventListener(\"dispose\", d), e.__webglTexture = t.createTexture(), o.textures++), i.activeTexture(t.TEXTURE0 + u), i.bindTexture(t.TEXTURE_2D, e.__webglTexture), t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL, n.flipY), t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL, n.premultiplyAlpha), t.pixelStorei(t.UNPACK_ALIGNMENT, n.unpackAlignment);var f = s(n.image, r.maxTextureSize);h(n) && !1 === l(f) && (f = c(f));var p = l(f),\n m = a(n.format),\n g = a(n.type);x(t.TEXTURE_2D, n, p);var v,\n _ = n.mipmaps;if (n.isDepthTexture) {\n var y = t.DEPTH_COMPONENT;if (n.type === Di) {\n if (!L) throw new Error(\"Float Depth Texture only supported in WebGL2.0\");y = t.DEPTH_COMPONENT32F;\n } else L && (y = t.DEPTH_COMPONENT16);n.format === Xi && y === t.DEPTH_COMPONENT && n.type !== Ci && n.type !== Ni && (console.warn(\"THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture.\"), n.type = Ci, g = a(n.type)), n.format === ji && (y = t.DEPTH_STENCIL, n.type !== Bi && (console.warn(\"THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture.\"), n.type = Bi, g = a(n.type))), i.texImage2D(t.TEXTURE_2D, 0, y, f.width, f.height, 0, m, g, null);\n } else if (n.isDataTexture) {\n if (_.length > 0 && p) {\n for (var M = 0, E = _.length; M < E; M++) {\n v = _[M], i.texImage2D(t.TEXTURE_2D, M, m, v.width, v.height, 0, m, g, v.data);\n }n.generateMipmaps = !1;\n } else i.texImage2D(t.TEXTURE_2D, 0, m, f.width, f.height, 0, m, g, f.data);\n } else if (n.isCompressedTexture) for (var M = 0, E = _.length; M < E; M++) {\n v = _[M], n.format !== Hi && n.format !== Vi ? i.getCompressedTextureFormats().indexOf(m) > -1 ? i.compressedTexImage2D(t.TEXTURE_2D, M, m, v.width, v.height, 0, v.data) : console.warn(\"THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()\") : i.texImage2D(t.TEXTURE_2D, M, m, v.width, v.height, 0, m, g, v.data);\n } else if (_.length > 0 && p) {\n for (var M = 0, E = _.length; M < E; M++) {\n v = _[M], i.texImage2D(t.TEXTURE_2D, M, m, m, g, v);\n }n.generateMipmaps = !1;\n } else i.texImage2D(t.TEXTURE_2D, 0, m, m, g, f);n.generateMipmaps && p && t.generateMipmap(t.TEXTURE_2D), e.__version = n.version, n.onUpdate && n.onUpdate(n);\n }function M(e, r, o, s) {\n var l = a(r.texture.format),\n c = a(r.texture.type);i.texImage2D(s, 0, l, r.width, r.height, 0, l, c, null), t.bindFramebuffer(t.FRAMEBUFFER, e), t.framebufferTexture2D(t.FRAMEBUFFER, o, s, n.get(r.texture).__webglTexture, 0), t.bindFramebuffer(t.FRAMEBUFFER, null);\n }function E(e, i) {\n t.bindRenderbuffer(t.RENDERBUFFER, e), i.depthBuffer && !i.stencilBuffer ? (t.renderbufferStorage(t.RENDERBUFFER, t.DEPTH_COMPONENT16, i.width, i.height), t.framebufferRenderbuffer(t.FRAMEBUFFER, t.DEPTH_ATTACHMENT, t.RENDERBUFFER, e)) : i.depthBuffer && i.stencilBuffer ? (t.renderbufferStorage(t.RENDERBUFFER, t.DEPTH_STENCIL, i.width, i.height), t.framebufferRenderbuffer(t.FRAMEBUFFER, t.DEPTH_STENCIL_ATTACHMENT, t.RENDERBUFFER, e)) : t.renderbufferStorage(t.RENDERBUFFER, t.RGBA4, i.width, i.height), t.bindRenderbuffer(t.RENDERBUFFER, null);\n }function b(e, i) {\n if (i && i.isWebGLRenderTargetCube) throw new Error(\"Depth Texture with cube render targets is not supported!\");if (t.bindFramebuffer(t.FRAMEBUFFER, e), !i.depthTexture || !i.depthTexture.isDepthTexture) throw new Error(\"renderTarget.depthTexture must be an instance of THREE.DepthTexture\");n.get(i.depthTexture).__webglTexture && i.depthTexture.image.width === i.width && i.depthTexture.image.height === i.height || (i.depthTexture.image.width = i.width, i.depthTexture.image.height = i.height, i.depthTexture.needsUpdate = !0), g(i.depthTexture, 0);var r = n.get(i.depthTexture).__webglTexture;if (i.depthTexture.format === Xi) t.framebufferTexture2D(t.FRAMEBUFFER, t.DEPTH_ATTACHMENT, t.TEXTURE_2D, r, 0);else {\n if (i.depthTexture.format !== ji) throw new Error(\"Unknown depthTexture format\");t.framebufferTexture2D(t.FRAMEBUFFER, t.DEPTH_STENCIL_ATTACHMENT, t.TEXTURE_2D, r, 0);\n }\n }function w(e) {\n var i = n.get(e),\n r = !0 === e.isWebGLRenderTargetCube;if (e.depthTexture) {\n if (r) throw new Error(\"target.depthTexture not supported in Cube render targets\");b(i.__webglFramebuffer, e);\n } else if (r) {\n i.__webglDepthbuffer = [];for (var a = 0; a < 6; a++) {\n t.bindFramebuffer(t.FRAMEBUFFER, i.__webglFramebuffer[a]), i.__webglDepthbuffer[a] = t.createRenderbuffer(), E(i.__webglDepthbuffer[a], e);\n }\n } else t.bindFramebuffer(t.FRAMEBUFFER, i.__webglFramebuffer), i.__webglDepthbuffer = t.createRenderbuffer(), E(i.__webglDepthbuffer, e);t.bindFramebuffer(t.FRAMEBUFFER, null);\n }function T(e) {\n var r = n.get(e),\n a = n.get(e.texture);e.addEventListener(\"dispose\", f), a.__webglTexture = t.createTexture(), o.textures++;var s = !0 === e.isWebGLRenderTargetCube,\n c = l(e);if (s) {\n r.__webglFramebuffer = [];for (var h = 0; h < 6; h++) {\n r.__webglFramebuffer[h] = t.createFramebuffer();\n }\n } else r.__webglFramebuffer = t.createFramebuffer();if (s) {\n i.bindTexture(t.TEXTURE_CUBE_MAP, a.__webglTexture), x(t.TEXTURE_CUBE_MAP, e.texture, c);for (var h = 0; h < 6; h++) {\n M(r.__webglFramebuffer[h], e, t.COLOR_ATTACHMENT0, t.TEXTURE_CUBE_MAP_POSITIVE_X + h);\n }e.texture.generateMipmaps && c && t.generateMipmap(t.TEXTURE_CUBE_MAP), i.bindTexture(t.TEXTURE_CUBE_MAP, null);\n } else i.bindTexture(t.TEXTURE_2D, a.__webglTexture), x(t.TEXTURE_2D, e.texture, c), M(r.__webglFramebuffer, e, t.COLOR_ATTACHMENT0, t.TEXTURE_2D), e.texture.generateMipmaps && c && t.generateMipmap(t.TEXTURE_2D), i.bindTexture(t.TEXTURE_2D, null);e.depthBuffer && w(e);\n }function S(e) {\n var r = e.texture;if (r.generateMipmaps && l(e) && r.minFilter !== Ei && r.minFilter !== Ti) {\n var a = e && e.isWebGLRenderTargetCube ? t.TEXTURE_CUBE_MAP : t.TEXTURE_2D,\n o = n.get(r).__webglTexture;i.bindTexture(a, o), t.generateMipmap(a), i.bindTexture(a, null);\n }\n }var L = \"undefined\" != typeof WebGL2RenderingContext && t instanceof WebGL2RenderingContext;this.setTexture2D = g, this.setTextureCube = v, this.setTextureCubeDynamic = _, this.setupRenderTarget = T, this.updateRenderTargetMipmap = S;\n }function te() {\n function t(t) {\n var e = t.uuid,\n i = n[e];return void 0 === i && (i = {}, n[e] = i), i;\n }function e(t) {\n delete n[t.uuid];\n }function i() {\n n = {};\n }var n = {};return { get: t, remove: e, clear: i };\n }function ee(t, e, i) {\n function n() {\n var e = !1,\n i = new k(),\n n = null,\n r = new k();return { setMask: function setMask(i) {\n n === i || e || (t.colorMask(i, i, i, i), n = i);\n }, setLocked: function setLocked(t) {\n e = t;\n }, setClear: function setClear(e, n, a, o, s) {\n !0 === s && (e *= o, n *= o, a *= o), i.set(e, n, a, o), !1 === r.equals(i) && (t.clearColor(e, n, a, o), r.copy(i));\n }, reset: function reset() {\n e = !1, n = null, r.set(0, 0, 0, 1);\n } };\n }function r() {\n var e = !1,\n i = null,\n n = null,\n r = null;return { setTest: function setTest(e) {\n e ? d(t.DEPTH_TEST) : f(t.DEPTH_TEST);\n }, setMask: function setMask(n) {\n i === n || e || (t.depthMask(n), i = n);\n }, setFunc: function setFunc(e) {\n if (n !== e) {\n if (e) switch (e) {case Je:\n t.depthFunc(t.NEVER);break;case Qe:\n t.depthFunc(t.ALWAYS);break;case Ke:\n t.depthFunc(t.LESS);break;case $e:\n t.depthFunc(t.LEQUAL);break;case ti:\n t.depthFunc(t.EQUAL);break;case ei:\n t.depthFunc(t.GEQUAL);break;case ii:\n t.depthFunc(t.GREATER);break;case ni:\n t.depthFunc(t.NOTEQUAL);break;default:\n t.depthFunc(t.LEQUAL);} else t.depthFunc(t.LEQUAL);n = e;\n }\n }, setLocked: function setLocked(t) {\n e = t;\n }, setClear: function setClear(e) {\n r !== e && (t.clearDepth(e), r = e);\n }, reset: function reset() {\n e = !1, i = null, n = null, r = null;\n } };\n }function a() {\n var e = !1,\n i = null,\n n = null,\n r = null,\n a = null,\n o = null,\n s = null,\n l = null,\n c = null;return { setTest: function setTest(e) {\n e ? d(t.STENCIL_TEST) : f(t.STENCIL_TEST);\n }, setMask: function setMask(n) {\n i === n || e || (t.stencilMask(n), i = n);\n }, setFunc: function setFunc(e, i, o) {\n n === e && r === i && a === o || (t.stencilFunc(e, i, o), n = e, r = i, a = o);\n }, setOp: function setOp(e, i, n) {\n o === e && s === i && l === n || (t.stencilOp(e, i, n), o = e, s = i, l = n);\n }, setLocked: function setLocked(t) {\n e = t;\n }, setClear: function setClear(e) {\n c !== e && (t.clearStencil(e), c = e);\n }, reset: function reset() {\n e = !1, i = null, n = null, r = null, a = null, o = null, s = null, l = null, c = null;\n } };\n }function o(e, i, n) {\n var r = new Uint8Array(4),\n a = t.createTexture();t.bindTexture(e, a), t.texParameteri(e, t.TEXTURE_MIN_FILTER, t.NEAREST), t.texParameteri(e, t.TEXTURE_MAG_FILTER, t.NEAREST);for (var o = 0; o < n; o++) {\n t.texImage2D(i + o, 0, t.RGBA, 1, 1, 0, t.RGBA, t.UNSIGNED_BYTE, r);\n }return a;\n }function s() {\n P.setClear(0, 0, 0, 1), C.setClear(1), U.setClear(0), d(t.DEPTH_TEST), C.setFunc($e), v(!1), _(ve), d(t.CULL_FACE), d(t.BLEND), m(Re);\n }function l() {\n for (var t = 0, e = D.length; t < e; t++) {\n D[t] = 0;\n }\n }function c(i) {\n if (D[i] = 1, 0 === I[i] && (t.enableVertexAttribArray(i), I[i] = 1), 0 !== F[i]) {\n e.get(\"ANGLE_instanced_arrays\").vertexAttribDivisorANGLE(i, 0), F[i] = 0;\n }\n }function h(i, n) {\n if (D[i] = 1, 0 === I[i] && (t.enableVertexAttribArray(i), I[i] = 1), F[i] !== n) {\n e.get(\"ANGLE_instanced_arrays\").vertexAttribDivisorANGLE(i, n), F[i] = n;\n }\n }function u() {\n for (var e = 0, i = I.length; e !== i; ++e) {\n I[e] !== D[e] && (t.disableVertexAttribArray(e), I[e] = 0);\n }\n }function d(e) {\n !0 !== z[e] && (t.enable(e), z[e] = !0);\n }function f(e) {\n !1 !== z[e] && (t.disable(e), z[e] = !1);\n }function p() {\n if (null === O && (O = [], e.get(\"WEBGL_compressed_texture_pvrtc\") || e.get(\"WEBGL_compressed_texture_s3tc\") || e.get(\"WEBGL_compressed_texture_etc1\"))) for (var i = t.getParameter(t.COMPRESSED_TEXTURE_FORMATS), n = 0; n < i.length; n++) {\n O.push(i[n]);\n }return O;\n }function m(e, n, r, a, o, s, l, c) {\n e !== Ae ? d(t.BLEND) : f(t.BLEND), e === B && c === Y || (e === Pe ? c ? (t.blendEquationSeparate(t.FUNC_ADD, t.FUNC_ADD), t.blendFuncSeparate(t.ONE, t.ONE, t.ONE, t.ONE)) : (t.blendEquation(t.FUNC_ADD), t.blendFunc(t.SRC_ALPHA, t.ONE)) : e === Ce ? c ? (t.blendEquationSeparate(t.FUNC_ADD, t.FUNC_ADD), t.blendFuncSeparate(t.ZERO, t.ZERO, t.ONE_MINUS_SRC_COLOR, t.ONE_MINUS_SRC_ALPHA)) : (t.blendEquation(t.FUNC_ADD), t.blendFunc(t.ZERO, t.ONE_MINUS_SRC_COLOR)) : e === Ue ? c ? (t.blendEquationSeparate(t.FUNC_ADD, t.FUNC_ADD), t.blendFuncSeparate(t.ZERO, t.SRC_COLOR, t.ZERO, t.SRC_ALPHA)) : (t.blendEquation(t.FUNC_ADD), t.blendFunc(t.ZERO, t.SRC_COLOR)) : c ? (t.blendEquationSeparate(t.FUNC_ADD, t.FUNC_ADD), t.blendFuncSeparate(t.ONE, t.ONE_MINUS_SRC_ALPHA, t.ONE, t.ONE_MINUS_SRC_ALPHA)) : (t.blendEquationSeparate(t.FUNC_ADD, t.FUNC_ADD), t.blendFuncSeparate(t.SRC_ALPHA, t.ONE_MINUS_SRC_ALPHA, t.ONE, t.ONE_MINUS_SRC_ALPHA)), B = e, Y = c), e === Ne ? (o = o || n, s = s || r, l = l || a, n === G && o === W || (t.blendEquationSeparate(i(n), i(o)), G = n, W = o), r === V && a === H && s === X && l === j || (t.blendFuncSeparate(i(r), i(a), i(s), i(l)), V = r, H = a, X = s, j = l)) : (G = null, V = null, H = null, W = null, X = null, j = null);\n }function g(e) {\n e.side === we ? f(t.CULL_FACE) : d(t.CULL_FACE), v(e.side === be), !0 === e.transparent ? m(e.blending, e.blendEquation, e.blendSrc, e.blendDst, e.blendEquationAlpha, e.blendSrcAlpha, e.blendDstAlpha, e.premultipliedAlpha) : m(Ae), C.setFunc(e.depthFunc), C.setTest(e.depthTest), C.setMask(e.depthWrite), P.setMask(e.colorWrite), y(e.polygonOffset, e.polygonOffsetFactor, e.polygonOffsetUnits);\n }function v(e) {\n q !== e && (e ? t.frontFace(t.CW) : t.frontFace(t.CCW), q = e);\n }function _(e) {\n e !== ge ? (d(t.CULL_FACE), e !== Z && (e === ve ? t.cullFace(t.BACK) : e === _e ? t.cullFace(t.FRONT) : t.cullFace(t.FRONT_AND_BACK))) : f(t.CULL_FACE), Z = e;\n }function x(e) {\n e !== J && (it && t.lineWidth(e), J = e);\n }function y(e, i, n) {\n e ? (d(t.POLYGON_OFFSET_FILL), Q === i && K === n || (t.polygonOffset(i, n), Q = i, K = n)) : f(t.POLYGON_OFFSET_FILL);\n }function M() {\n return $;\n }function E(e) {\n $ = e, e ? d(t.SCISSOR_TEST) : f(t.SCISSOR_TEST);\n }function b(e) {\n void 0 === e && (e = t.TEXTURE0 + tt - 1), nt !== e && (t.activeTexture(e), nt = e);\n }function w(e, i) {\n null === nt && b();var n = rt[nt];void 0 === n && (n = { type: void 0, texture: void 0 }, rt[nt] = n), n.type === e && n.texture === i || (t.bindTexture(e, i || st[e]), n.type = e, n.texture = i);\n }function T() {\n try {\n t.compressedTexImage2D.apply(t, arguments);\n } catch (t) {\n console.error(t);\n }\n }function S() {\n try {\n t.texImage2D.apply(t, arguments);\n } catch (t) {\n console.error(t);\n }\n }function L(e) {\n !1 === at.equals(e) && (t.scissor(e.x, e.y, e.z, e.w), at.copy(e));\n }function A(e) {\n !1 === ot.equals(e) && (t.viewport(e.x, e.y, e.z, e.w), ot.copy(e));\n }function R() {\n for (var e = 0; e < I.length; e++) {\n 1 === I[e] && (t.disableVertexAttribArray(e), I[e] = 0);\n }z = {}, O = null, nt = null, rt = {}, B = null, q = null, Z = null, P.reset(), C.reset(), U.reset();\n }var P = new n(),\n C = new r(),\n U = new a(),\n N = t.getParameter(t.MAX_VERTEX_ATTRIBS),\n D = new Uint8Array(N),\n I = new Uint8Array(N),\n F = new Uint8Array(N),\n z = {},\n O = null,\n B = null,\n G = null,\n V = null,\n H = null,\n W = null,\n X = null,\n j = null,\n Y = !1,\n q = null,\n Z = null,\n J = null,\n Q = null,\n K = null,\n $ = null,\n tt = t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS),\n et = parseFloat(/^WebGL\\ ([0-9])/.exec(t.getParameter(t.VERSION))[1]),\n it = parseFloat(et) >= 1,\n nt = null,\n rt = {},\n at = new k(),\n ot = new k(),\n st = {};return st[t.TEXTURE_2D] = o(t.TEXTURE_2D, t.TEXTURE_2D, 1), st[t.TEXTURE_CUBE_MAP] = o(t.TEXTURE_CUBE_MAP, t.TEXTURE_CUBE_MAP_POSITIVE_X, 6), { buffers: { color: P, depth: C, stencil: U }, init: s, initAttributes: l, enableAttribute: c, enableAttributeAndDivisor: h, disableUnusedAttributes: u, enable: d, disable: f, getCompressedTextureFormats: p, setBlending: m, setMaterial: g, setFlipSided: v, setCullFace: _, setLineWidth: x, setPolygonOffset: y, getScissorTest: M, setScissorTest: E, activeTexture: b, bindTexture: w, compressedTexImage2D: T, texImage2D: S, scissor: L, viewport: A, reset: R };\n }function ie(t, e, i) {\n function n() {\n if (void 0 !== a) return a;var i = e.get(\"EXT_texture_filter_anisotropic\");return a = null !== i ? t.getParameter(i.MAX_TEXTURE_MAX_ANISOTROPY_EXT) : 0;\n }function r(e) {\n if (\"highp\" === e) {\n if (t.getShaderPrecisionFormat(t.VERTEX_SHADER, t.HIGH_FLOAT).precision > 0 && t.getShaderPrecisionFormat(t.FRAGMENT_SHADER, t.HIGH_FLOAT).precision > 0) return \"highp\";e = \"mediump\";\n }return \"mediump\" === e && t.getShaderPrecisionFormat(t.VERTEX_SHADER, t.MEDIUM_FLOAT).precision > 0 && t.getShaderPrecisionFormat(t.FRAGMENT_SHADER, t.MEDIUM_FLOAT).precision > 0 ? \"mediump\" : \"lowp\";\n }var a,\n o = void 0 !== i.precision ? i.precision : \"highp\",\n s = r(o);s !== o && (console.warn(\"THREE.WebGLRenderer:\", o, \"not supported, using\", s, \"instead.\"), o = s);var l = !0 === i.logarithmicDepthBuffer && !!e.get(\"EXT_frag_depth\"),\n c = t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS),\n h = t.getParameter(t.MAX_VERTEX_TEXTURE_IMAGE_UNITS),\n u = t.getParameter(t.MAX_TEXTURE_SIZE),\n d = t.getParameter(t.MAX_CUBE_MAP_TEXTURE_SIZE),\n f = t.getParameter(t.MAX_VERTEX_ATTRIBS),\n p = t.getParameter(t.MAX_VERTEX_UNIFORM_VECTORS),\n m = t.getParameter(t.MAX_VARYING_VECTORS),\n g = t.getParameter(t.MAX_FRAGMENT_UNIFORM_VECTORS),\n v = h > 0,\n _ = !!e.get(\"OES_texture_float\");return { getMaxAnisotropy: n, getMaxPrecision: r, precision: o, logarithmicDepthBuffer: l, maxTextures: c, maxVertexTextures: h, maxTextureSize: u, maxCubemapSize: d, maxAttributes: f, maxVertexUniforms: p, maxVaryings: m, maxFragmentUniforms: g, vertexTextures: v, floatFragmentTextures: _, floatVertexTextures: v && _ };\n }function ne(t) {\n var e = {};return { get: function get(i) {\n if (void 0 !== e[i]) return e[i];var n;switch (i) {case \"WEBGL_depth_texture\":\n n = t.getExtension(\"WEBGL_depth_texture\") || t.getExtension(\"MOZ_WEBGL_depth_texture\") || t.getExtension(\"WEBKIT_WEBGL_depth_texture\");break;case \"EXT_texture_filter_anisotropic\":\n n = t.getExtension(\"EXT_texture_filter_anisotropic\") || t.getExtension(\"MOZ_EXT_texture_filter_anisotropic\") || t.getExtension(\"WEBKIT_EXT_texture_filter_anisotropic\");break;case \"WEBGL_compressed_texture_s3tc\":\n n = t.getExtension(\"WEBGL_compressed_texture_s3tc\") || t.getExtension(\"MOZ_WEBGL_compressed_texture_s3tc\") || t.getExtension(\"WEBKIT_WEBGL_compressed_texture_s3tc\");break;case \"WEBGL_compressed_texture_pvrtc\":\n n = t.getExtension(\"WEBGL_compressed_texture_pvrtc\") || t.getExtension(\"WEBKIT_WEBGL_compressed_texture_pvrtc\");break;case \"WEBGL_compressed_texture_etc1\":\n n = t.getExtension(\"WEBGL_compressed_texture_etc1\");break;default:\n n = t.getExtension(i);}return null === n && console.warn(\"THREE.WebGLRenderer: \" + i + \" extension not supported.\"), e[i] = n, n;\n } };\n }function re() {\n function t() {\n c.value !== n && (c.value = n, c.needsUpdate = r > 0), i.numPlanes = r, i.numIntersection = 0;\n }function e(t, e, n, r) {\n var a = null !== t ? t.length : 0,\n o = null;if (0 !== a) {\n if (o = c.value, !0 !== r || null === o) {\n var h = n + 4 * a,\n u = e.matrixWorldInverse;l.getNormalMatrix(u), (null === o || o.length < h) && (o = new Float32Array(h));for (var d = 0, f = n; d !== a; ++d, f += 4) {\n s.copy(t[d]).applyMatrix4(u, l), s.normal.toArray(o, f), o[f + 3] = s.constant;\n }\n }c.value = o, c.needsUpdate = !0;\n }return i.numPlanes = a, o;\n }var i = this,\n n = null,\n r = 0,\n a = !1,\n o = !1,\n s = new et(),\n l = new tt(),\n c = { value: null, needsUpdate: !1 };this.uniform = c, this.numPlanes = 0, this.numIntersection = 0, this.init = function (t, i, o) {\n var s = 0 !== t.length || i || 0 !== r || a;return a = i, n = e(t, o, 0), r = t.length, s;\n }, this.beginShadows = function () {\n o = !0, e(null);\n }, this.endShadows = function () {\n o = !1, t();\n }, this.setState = function (i, s, l, h, u, d) {\n if (!a || null === i || 0 === i.length || o && !l) o ? e(null) : t();else {\n var f = o ? 0 : r,\n p = 4 * f,\n m = u.clippingState || null;c.value = m, m = e(i, h, p, d);for (var g = 0; g !== p; ++g) {\n m[g] = n[g];\n }u.clippingState = m, this.numIntersection = s ? this.numPlanes : 0, this.numPlanes += f;\n }\n };\n }function ae(t) {\n function e() {\n return null === rt ? _t : 1;\n }function r() {\n Jt.init(), Jt.scissor(ct.copy(xt).multiplyScalar(_t)), Jt.viewport(dt.copy(Tt).multiplyScalar(_t)), Jt.buffers.color.setClear(pt.r, pt.g, pt.b, mt, V);\n }function a() {\n et = null, lt = null, st = \"\", ot = -1, Jt.reset();\n }function o(t) {\n t.preventDefault(), a(), r(), Qt.clear(), le.clear();\n }function l(t) {\n var e = t.target;e.removeEventListener(\"dispose\", l), c(e);\n }function c(t) {\n h(t), Qt.remove(t);\n }function h(t) {\n var e = Qt.get(t).program;t.program = void 0, void 0 !== e && ce.releaseProgram(e);\n }function u(t, e, i) {\n t.render(function (t) {\n tt.renderBufferImmediate(t, e, i);\n });\n }function d(t, e) {\n return Math.abs(e[0]) - Math.abs(t[0]);\n }function f(t, e, i, n) {\n if (i && i.isInstancedBufferGeometry && null === qt.get(\"ANGLE_instanced_arrays\")) return void console.error(\"THREE.WebGLRenderer.setupVertexAttributes: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.\");void 0 === n && (n = 0), Jt.initAttributes();var r = i.attributes,\n a = e.getAttributes(),\n o = t.defaultAttributeValues;for (var s in a) {\n var l = a[s];if (l >= 0) {\n var c = r[s];if (void 0 !== c) {\n var h = c.normalized,\n u = c.itemSize,\n d = oe.get(c),\n f = d.buffer,\n p = d.type,\n m = d.bytesPerElement;if (c.isInterleavedBufferAttribute) {\n var g = c.data,\n v = g.stride,\n _ = c.offset;g && g.isInstancedInterleavedBuffer ? (Jt.enableAttributeAndDivisor(l, g.meshPerAttribute), void 0 === i.maxInstancedCount && (i.maxInstancedCount = g.meshPerAttribute * g.count)) : Jt.enableAttribute(l), jt.bindBuffer(jt.ARRAY_BUFFER, f), jt.vertexAttribPointer(l, u, p, h, v * m, (n * v + _) * m);\n } else c.isInstancedBufferAttribute ? (Jt.enableAttributeAndDivisor(l, c.meshPerAttribute), void 0 === i.maxInstancedCount && (i.maxInstancedCount = c.meshPerAttribute * c.count)) : Jt.enableAttribute(l), jt.bindBuffer(jt.ARRAY_BUFFER, f), jt.vertexAttribPointer(l, u, p, h, 0, n * u * m);\n } else if (void 0 !== o) {\n var x = o[s];if (void 0 !== x) switch (x.length) {case 2:\n jt.vertexAttrib2fv(l, x);break;case 3:\n jt.vertexAttrib3fv(l, x);break;case 4:\n jt.vertexAttrib4fv(l, x);break;default:\n jt.vertexAttrib1fv(l, x);}\n }\n }\n }Jt.disableUnusedAttributes();\n }function p(t, e, i) {\n if (t.visible) {\n if (t.layers.test(e.layers)) if (t.isLight) q.push(t);else if (t.isSprite) t.frustumCulled && !Rt.intersectsSprite(t) || K.push(t);else if (t.isLensFlare) $.push(t);else if (t.isImmediateRenderObject) i && Gt.setFromMatrixPosition(t.matrixWorld).applyMatrix4(Bt), Z.push(t, null, t.material, Gt.z, null);else if ((t.isMesh || t.isLine || t.isPoints) && (t.isSkinnedMesh && t.skeleton.update(), !t.frustumCulled || Rt.intersectsObject(t))) {\n i && Gt.setFromMatrixPosition(t.matrixWorld).applyMatrix4(Bt);var n = le.update(t),\n r = t.material;if (Array.isArray(r)) for (var a = n.groups, o = 0, s = a.length; o < s; o++) {\n var l = a[o],\n c = r[l.materialIndex];c && c.visible && Z.push(t, n, c, Gt.z, l);\n } else r.visible && Z.push(t, n, r, Gt.z, null);\n }for (var h = t.children, o = 0, s = h.length; o < s; o++) {\n p(h[o], e, i);\n }\n }\n }function m(t, e, i, n) {\n for (var r = 0, a = t.length; r < a; r++) {\n var o = t[r],\n s = o.object,\n l = o.geometry,\n c = void 0 === n ? o.material : n,\n h = o.group;if (s.onBeforeRender(tt, e, i, l, c, h), i.isArrayCamera && i.enabled) for (var u = i.cameras, d = 0, f = u.length; d < f; d++) {\n var p = u[d],\n m = p.bounds;tt.setViewport(m.x * gt * _t, m.y * vt * _t, m.z * gt * _t, m.w * vt * _t), tt.setScissor(m.x * gt * _t, m.y * vt * _t, m.z * gt * _t, m.w * vt * _t), tt.setScissorTest(!0), g(s, e, p, l, c, h);\n } else g(s, e, i, l, c, h);s.onAfterRender(tt, e, i, l, c, h);\n }\n }function g(t, e, i, n, r, a) {\n if (t.modelViewMatrix.multiplyMatrices(i.matrixWorldInverse, t.matrixWorld), t.normalMatrix.getNormalMatrix(t.modelViewMatrix), t.isImmediateRenderObject) {\n Jt.setMaterial(r);var o = _(i, e.fog, r, t);st = \"\", u(t, o, r);\n } else tt.renderBufferDirect(i, e.fog, n, r, t, a);\n }function v(t, e, i) {\n var n = Qt.get(t),\n r = ce.getParameters(t, kt, e, Pt.numPlanes, Pt.numIntersection, i),\n a = ce.getProgramCode(t, r),\n o = n.program,\n s = !0;if (void 0 === o) t.addEventListener(\"dispose\", l);else if (o.code !== a) h(t);else {\n if (void 0 !== r.shaderID) return;s = !1;\n }if (s) {\n if (r.shaderID) {\n var c = An[r.shaderID];n.__webglShader = { name: t.type, uniforms: Sn.clone(c.uniforms), vertexShader: c.vertexShader, fragmentShader: c.fragmentShader };\n } else n.__webglShader = { name: t.type, uniforms: t.uniforms, vertexShader: t.vertexShader, fragmentShader: t.fragmentShader };t.__webglShader = n.__webglShader, o = ce.acquireProgram(t, r, a), n.program = o, t.program = o;\n }var u = o.getAttributes();if (t.morphTargets) {\n t.numSupportedMorphTargets = 0;for (var d = 0; d < tt.maxMorphTargets; d++) {\n u[\"morphTarget\" + d] >= 0 && t.numSupportedMorphTargets++;\n }\n }if (t.morphNormals) {\n t.numSupportedMorphNormals = 0;for (var d = 0; d < tt.maxMorphNormals; d++) {\n u[\"morphNormal\" + d] >= 0 && t.numSupportedMorphNormals++;\n }\n }var f = n.__webglShader.uniforms;(t.isShaderMaterial || t.isRawShaderMaterial) && !0 !== t.clipping || (n.numClippingPlanes = Pt.numPlanes, n.numIntersection = Pt.numIntersection, f.clippingPlanes = Pt.uniform), n.fog = e, n.lightsHash = kt.hash, t.lights && (f.ambientLightColor.value = kt.ambient, f.directionalLights.value = kt.directional, f.spotLights.value = kt.spot, f.rectAreaLights.value = kt.rectArea, f.pointLights.value = kt.point, f.hemisphereLights.value = kt.hemi, f.directionalShadowMap.value = kt.directionalShadowMap, f.directionalShadowMatrix.value = kt.directionalShadowMatrix, f.spotShadowMap.value = kt.spotShadowMap, f.spotShadowMatrix.value = kt.spotShadowMatrix, f.pointShadowMap.value = kt.pointShadowMap, f.pointShadowMatrix.value = kt.pointShadowMatrix);var p = n.program.getUniforms(),\n m = H.seqWithValue(p.seq, f);n.uniformsList = m;\n }function _(t, e, i, n) {\n ft = 0;var r = Qt.get(i);if (Ct && (Ot || t !== lt)) {\n var a = t === lt && i.id === ot;Pt.setState(i.clippingPlanes, i.clipIntersection, i.clipShadows, t, r, a);\n }!1 === i.needsUpdate && (void 0 === r.program ? i.needsUpdate = !0 : i.fog && r.fog !== e ? i.needsUpdate = !0 : i.lights && r.lightsHash !== kt.hash ? i.needsUpdate = !0 : void 0 === r.numClippingPlanes || r.numClippingPlanes === Pt.numPlanes && r.numIntersection === Pt.numIntersection || (i.needsUpdate = !0)), i.needsUpdate && (v(i, e, n), i.needsUpdate = !1);var o = !1,\n l = !1,\n c = !1,\n h = r.program,\n u = h.getUniforms(),\n d = r.__webglShader.uniforms;if (h.id !== et && (jt.useProgram(h.program), et = h.id, o = !0, l = !0, c = !0), i.id !== ot && (ot = i.id, l = !0), o || t !== lt) {\n if (u.setValue(jt, \"projectionMatrix\", t.projectionMatrix), Zt.logarithmicDepthBuffer && u.setValue(jt, \"logDepthBufFC\", 2 / (Math.log(t.far + 1) / Math.LN2)), t !== lt && (lt = t, l = !0, c = !0), i.isShaderMaterial || i.isMeshPhongMaterial || i.isMeshStandardMaterial || i.envMap) {\n var f = u.map.cameraPosition;void 0 !== f && f.setValue(jt, Gt.setFromMatrixPosition(t.matrixWorld));\n }(i.isMeshPhongMaterial || i.isMeshLambertMaterial || i.isMeshBasicMaterial || i.isMeshStandardMaterial || i.isShaderMaterial || i.skinning) && u.setValue(jt, \"viewMatrix\", t.matrixWorldInverse), u.setValue(jt, \"toneMappingExposure\", tt.toneMappingExposure), u.setValue(jt, \"toneMappingWhitePoint\", tt.toneMappingWhitePoint);\n }if (i.skinning) {\n u.setOptional(jt, n, \"bindMatrix\"), u.setOptional(jt, n, \"bindMatrixInverse\");var p = n.skeleton;if (p) {\n var m = p.bones;if (Zt.floatVertexTextures) {\n if (void 0 === p.boneTexture) {\n var g = Math.sqrt(4 * m.length);g = mn.nextPowerOfTwo(Math.ceil(g)), g = Math.max(g, 4);var _ = new Float32Array(g * g * 4);_.set(p.boneMatrices);var C = new s(_, g, g, Hi, Di);p.boneMatrices = _, p.boneTexture = C, p.boneTextureSize = g;\n }u.setValue(jt, \"boneTexture\", p.boneTexture), u.setValue(jt, \"boneTextureSize\", p.boneTextureSize);\n } else u.setOptional(jt, p, \"boneMatrices\");\n }\n }return l && (i.lights && P(d, c), e && i.fog && b(d, e), (i.isMeshBasicMaterial || i.isMeshLambertMaterial || i.isMeshPhongMaterial || i.isMeshStandardMaterial || i.isMeshNormalMaterial || i.isMeshDepthMaterial) && x(d, i), i.isLineBasicMaterial ? y(d, i) : i.isLineDashedMaterial ? (y(d, i), M(d, i)) : i.isPointsMaterial ? E(d, i) : i.isMeshLambertMaterial ? w(d, i) : i.isMeshToonMaterial ? S(d, i) : i.isMeshPhongMaterial ? T(d, i) : i.isMeshPhysicalMaterial ? A(d, i) : i.isMeshStandardMaterial ? L(d, i) : i.isMeshDepthMaterial ? i.displacementMap && (d.displacementMap.value = i.displacementMap, d.displacementScale.value = i.displacementScale, d.displacementBias.value = i.displacementBias) : i.isMeshNormalMaterial && R(d, i), void 0 !== d.ltcMat && (d.ltcMat.value = Tn.LTC_MAT_TEXTURE), void 0 !== d.ltcMag && (d.ltcMag.value = Tn.LTC_MAG_TEXTURE), H.upload(jt, r.uniformsList, d, tt)), u.setValue(jt, \"modelViewMatrix\", n.modelViewMatrix), u.setValue(jt, \"normalMatrix\", n.normalMatrix), u.setValue(jt, \"modelMatrix\", n.matrixWorld), h;\n }function x(t, e) {\n t.opacity.value = e.opacity, t.diffuse.value = e.color, e.emissive && t.emissive.value.copy(e.emissive).multiplyScalar(e.emissiveIntensity), t.map.value = e.map, t.specularMap.value = e.specularMap, t.alphaMap.value = e.alphaMap, e.lightMap && (t.lightMap.value = e.lightMap, t.lightMapIntensity.value = e.lightMapIntensity), e.aoMap && (t.aoMap.value = e.aoMap, t.aoMapIntensity.value = e.aoMapIntensity);var i;if (e.map ? i = e.map : e.specularMap ? i = e.specularMap : e.displacementMap ? i = e.displacementMap : e.normalMap ? i = e.normalMap : e.bumpMap ? i = e.bumpMap : e.roughnessMap ? i = e.roughnessMap : e.metalnessMap ? i = e.metalnessMap : e.alphaMap ? i = e.alphaMap : e.emissiveMap && (i = e.emissiveMap), void 0 !== i) {\n i.isWebGLRenderTarget && (i = i.texture);var n = i.offset,\n r = i.repeat;t.offsetRepeat.value.set(n.x, n.y, r.x, r.y);\n }t.envMap.value = e.envMap, t.flipEnvMap.value = e.envMap && e.envMap.isCubeTexture ? -1 : 1, t.reflectivity.value = e.reflectivity, t.refractionRatio.value = e.refractionRatio;\n }function y(t, e) {\n t.diffuse.value = e.color, t.opacity.value = e.opacity;\n }function M(t, e) {\n t.dashSize.value = e.dashSize, t.totalSize.value = e.dashSize + e.gapSize, t.scale.value = e.scale;\n }function E(t, e) {\n if (t.diffuse.value = e.color, t.opacity.value = e.opacity, t.size.value = e.size * _t, t.scale.value = .5 * vt, t.map.value = e.map, null !== e.map) {\n var i = e.map.offset,\n n = e.map.repeat;t.offsetRepeat.value.set(i.x, i.y, n.x, n.y);\n }\n }function b(t, e) {\n t.fogColor.value = e.color, e.isFog ? (t.fogNear.value = e.near, t.fogFar.value = e.far) : e.isFogExp2 && (t.fogDensity.value = e.density);\n }function w(t, e) {\n e.emissiveMap && (t.emissiveMap.value = e.emissiveMap);\n }function T(t, e) {\n t.specular.value = e.specular, t.shininess.value = Math.max(e.shininess, 1e-4), e.emissiveMap && (t.emissiveMap.value = e.emissiveMap), e.bumpMap && (t.bumpMap.value = e.bumpMap, t.bumpScale.value = e.bumpScale), e.normalMap && (t.normalMap.value = e.normalMap, t.normalScale.value.copy(e.normalScale)), e.displacementMap && (t.displacementMap.value = e.displacementMap, t.displacementScale.value = e.displacementScale, t.displacementBias.value = e.displacementBias);\n }function S(t, e) {\n T(t, e), e.gradientMap && (t.gradientMap.value = e.gradientMap);\n }function L(t, e) {\n t.roughness.value = e.roughness, t.metalness.value = e.metalness, e.roughnessMap && (t.roughnessMap.value = e.roughnessMap), e.metalnessMap && (t.metalnessMap.value = e.metalnessMap), e.emissiveMap && (t.emissiveMap.value = e.emissiveMap), e.bumpMap && (t.bumpMap.value = e.bumpMap, t.bumpScale.value = e.bumpScale), e.normalMap && (t.normalMap.value = e.normalMap, t.normalScale.value.copy(e.normalScale)), e.displacementMap && (t.displacementMap.value = e.displacementMap, t.displacementScale.value = e.displacementScale, t.displacementBias.value = e.displacementBias), e.envMap && (t.envMapIntensity.value = e.envMapIntensity);\n }function A(t, e) {\n t.clearCoat.value = e.clearCoat, t.clearCoatRoughness.value = e.clearCoatRoughness, L(t, e);\n }function R(t, e) {\n e.bumpMap && (t.bumpMap.value = e.bumpMap, t.bumpScale.value = e.bumpScale), e.normalMap && (t.normalMap.value = e.normalMap, t.normalScale.value.copy(e.normalScale)), e.displacementMap && (t.displacementMap.value = e.displacementMap, t.displacementScale.value = e.displacementScale, t.displacementBias.value = e.displacementBias);\n }function P(t, e) {\n t.ambientLightColor.needsUpdate = e, t.directionalLights.needsUpdate = e, t.pointLights.needsUpdate = e, t.spotLights.needsUpdate = e, t.rectAreaLights.needsUpdate = e, t.hemisphereLights.needsUpdate = e;\n }function C(t) {\n for (var e = 0, i = 0, n = t.length; i < n; i++) {\n var r = t[i];r.castShadow && (kt.shadows[e] = r, e++);\n }kt.shadows.length = e;\n }function U(t, e) {\n var i,\n n,\n r,\n a,\n o,\n s,\n l,\n c,\n h = 0,\n u = 0,\n d = 0,\n f = e.matrixWorldInverse,\n p = 0,\n m = 0,\n g = 0,\n v = 0,\n _ = 0;for (i = 0, n = t.length; i < n; i++) {\n if (r = t[i], o = r.color, s = r.intensity, l = r.distance, c = r.shadow && r.shadow.map ? r.shadow.map.texture : null, r.isAmbientLight) h += o.r * s, u += o.g * s, d += o.b * s;else if (r.isDirectionalLight) {\n var x = he.get(r);x.color.copy(r.color).multiplyScalar(r.intensity), x.direction.setFromMatrixPosition(r.matrixWorld), Gt.setFromMatrixPosition(r.target.matrixWorld), x.direction.sub(Gt), x.direction.transformDirection(f), x.shadow = r.castShadow, r.castShadow && (a = r.shadow, x.shadowBias = a.bias, x.shadowRadius = a.radius, x.shadowMapSize = a.mapSize), kt.directionalShadowMap[p] = c, kt.directionalShadowMatrix[p] = r.shadow.matrix, kt.directional[p] = x, p++;\n } else if (r.isSpotLight) {\n var x = he.get(r);x.position.setFromMatrixPosition(r.matrixWorld), x.position.applyMatrix4(f), x.color.copy(o).multiplyScalar(s), x.distance = l, x.direction.setFromMatrixPosition(r.matrixWorld), Gt.setFromMatrixPosition(r.target.matrixWorld), x.direction.sub(Gt), x.direction.transformDirection(f), x.coneCos = Math.cos(r.angle), x.penumbraCos = Math.cos(r.angle * (1 - r.penumbra)), x.decay = 0 === r.distance ? 0 : r.decay, x.shadow = r.castShadow, r.castShadow && (a = r.shadow, x.shadowBias = a.bias, x.shadowRadius = a.radius, x.shadowMapSize = a.mapSize), kt.spotShadowMap[g] = c, kt.spotShadowMatrix[g] = r.shadow.matrix, kt.spot[g] = x, g++;\n } else if (r.isRectAreaLight) {\n var x = he.get(r);x.color.copy(o).multiplyScalar(s / (r.width * r.height)), x.position.setFromMatrixPosition(r.matrixWorld), x.position.applyMatrix4(f), Ht.identity(), Vt.copy(r.matrixWorld), Vt.premultiply(f), Ht.extractRotation(Vt), x.halfWidth.set(.5 * r.width, 0, 0), x.halfHeight.set(0, .5 * r.height, 0), x.halfWidth.applyMatrix4(Ht), x.halfHeight.applyMatrix4(Ht), kt.rectArea[v] = x, v++;\n } else if (r.isPointLight) {\n var x = he.get(r);x.position.setFromMatrixPosition(r.matrixWorld), x.position.applyMatrix4(f), x.color.copy(r.color).multiplyScalar(r.intensity), x.distance = r.distance, x.decay = 0 === r.distance ? 0 : r.decay, x.shadow = r.castShadow, r.castShadow && (a = r.shadow, x.shadowBias = a.bias, x.shadowRadius = a.radius, x.shadowMapSize = a.mapSize), kt.pointShadowMap[m] = c, kt.pointShadowMatrix[m] = r.shadow.matrix, kt.point[m] = x, m++;\n } else if (r.isHemisphereLight) {\n var x = he.get(r);x.direction.setFromMatrixPosition(r.matrixWorld), x.direction.transformDirection(f), x.direction.normalize(), x.skyColor.copy(r.color).multiplyScalar(s), x.groundColor.copy(r.groundColor).multiplyScalar(s), kt.hemi[_] = x, _++;\n }\n }kt.ambient[0] = h, kt.ambient[1] = u, kt.ambient[2] = d, kt.directional.length = p, kt.spot.length = g, kt.rectArea.length = v, kt.point.length = m, kt.hemi.length = _, kt.hash = p + \",\" + m + \",\" + g + \",\" + v + \",\" + _ + \",\" + kt.shadows.length;\n }function N() {\n var t = ft;return t >= Zt.maxTextures && console.warn(\"WebGLRenderer: trying to use \" + t + \" texture units while this GPU supports only \" + Zt.maxTextures), ft += 1, t;\n }function D(t) {\n var e;if (t === xi) return jt.REPEAT;if (t === yi) return jt.CLAMP_TO_EDGE;if (t === Mi) return jt.MIRRORED_REPEAT;if (t === Ei) return jt.NEAREST;if (t === bi) return jt.NEAREST_MIPMAP_NEAREST;if (t === wi) return jt.NEAREST_MIPMAP_LINEAR;if (t === Ti) return jt.LINEAR;if (t === Si) return jt.LINEAR_MIPMAP_NEAREST;if (t === Li) return jt.LINEAR_MIPMAP_LINEAR;if (t === Ai) return jt.UNSIGNED_BYTE;if (t === Fi) return jt.UNSIGNED_SHORT_4_4_4_4;if (t === zi) return jt.UNSIGNED_SHORT_5_5_5_1;if (t === Oi) return jt.UNSIGNED_SHORT_5_6_5;if (t === Ri) return jt.BYTE;if (t === Pi) return jt.SHORT;if (t === Ci) return jt.UNSIGNED_SHORT;if (t === Ui) return jt.INT;if (t === Ni) return jt.UNSIGNED_INT;if (t === Di) return jt.FLOAT;if (t === Ii && null !== (e = qt.get(\"OES_texture_half_float\"))) return e.HALF_FLOAT_OES;if (t === Gi) return jt.ALPHA;if (t === Vi) return jt.RGB;if (t === Hi) return jt.RGBA;if (t === ki) return jt.LUMINANCE;if (t === Wi) return jt.LUMINANCE_ALPHA;if (t === Xi) return jt.DEPTH_COMPONENT;if (t === ji) return jt.DEPTH_STENCIL;if (t === De) return jt.FUNC_ADD;if (t === Ie) return jt.FUNC_SUBTRACT;if (t === Fe) return jt.FUNC_REVERSE_SUBTRACT;if (t === Be) return jt.ZERO;if (t === Ge) return jt.ONE;if (t === Ve) return jt.SRC_COLOR;if (t === He) return jt.ONE_MINUS_SRC_COLOR;if (t === ke) return jt.SRC_ALPHA;if (t === We) return jt.ONE_MINUS_SRC_ALPHA;if (t === Xe) return jt.DST_ALPHA;if (t === je) return jt.ONE_MINUS_DST_ALPHA;if (t === Ye) return jt.DST_COLOR;if (t === qe) return jt.ONE_MINUS_DST_COLOR;if (t === Ze) return jt.SRC_ALPHA_SATURATE;if ((t === Yi || t === qi || t === Zi || t === Ji) && null !== (e = qt.get(\"WEBGL_compressed_texture_s3tc\"))) {\n if (t === Yi) return e.COMPRESSED_RGB_S3TC_DXT1_EXT;if (t === qi) return e.COMPRESSED_RGBA_S3TC_DXT1_EXT;if (t === Zi) return e.COMPRESSED_RGBA_S3TC_DXT3_EXT;if (t === Ji) return e.COMPRESSED_RGBA_S3TC_DXT5_EXT;\n }if ((t === Qi || t === Ki || t === $i || t === tn) && null !== (e = qt.get(\"WEBGL_compressed_texture_pvrtc\"))) {\n if (t === Qi) return e.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if (t === Ki) return e.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if (t === $i) return e.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if (t === tn) return e.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG;\n }if (t === en && null !== (e = qt.get(\"WEBGL_compressed_texture_etc1\"))) return e.COMPRESSED_RGB_ETC1_WEBGL;if ((t === ze || t === Oe) && null !== (e = qt.get(\"EXT_blend_minmax\"))) {\n if (t === ze) return e.MIN_EXT;if (t === Oe) return e.MAX_EXT;\n }return t === Bi && null !== (e = qt.get(\"WEBGL_depth_texture\")) ? e.UNSIGNED_INT_24_8_WEBGL : 0;\n }console.log(\"THREE.WebGLRenderer\", me), t = t || {};var I = void 0 !== t.canvas ? t.canvas : document.createElementNS(\"http://www.w3.org/1999/xhtml\", \"canvas\"),\n F = void 0 !== t.context ? t.context : null,\n z = void 0 !== t.alpha && t.alpha,\n O = void 0 === t.depth || t.depth,\n B = void 0 === t.stencil || t.stencil,\n G = void 0 !== t.antialias && t.antialias,\n V = void 0 === t.premultipliedAlpha || t.premultipliedAlpha,\n X = void 0 !== t.preserveDrawingBuffer && t.preserveDrawingBuffer,\n q = [],\n Z = null,\n Q = new Float32Array(8),\n K = [],\n $ = [];this.domElement = I, this.context = null, this.autoClear = !0, this.autoClearColor = !0, this.autoClearDepth = !0, this.autoClearStencil = !0, this.sortObjects = !0, this.clippingPlanes = [], this.localClippingEnabled = !1, this.gammaFactor = 2, this.gammaInput = !1, this.gammaOutput = !1, this.physicallyCorrectLights = !1, this.toneMapping = li, this.toneMappingExposure = 1, this.toneMappingWhitePoint = 1, this.maxMorphTargets = 8, this.maxMorphNormals = 4;var tt = this,\n et = null,\n rt = null,\n at = null,\n ot = -1,\n st = \"\",\n lt = null,\n ct = new k(),\n ht = null,\n dt = new k(),\n ft = 0,\n pt = new W(0),\n mt = 0,\n gt = I.width,\n vt = I.height,\n _t = 1,\n xt = new k(0, 0, gt, vt),\n Et = !1,\n Tt = new k(0, 0, gt, vt),\n Rt = new it(),\n Pt = new re(),\n Ct = !1,\n Ot = !1,\n Bt = new n(),\n Gt = new i(),\n Vt = new n(),\n Ht = new n(),\n kt = { hash: \"\", ambient: [0, 0, 0], directional: [], directionalShadowMap: [], directionalShadowMatrix: [], spot: [], spotShadowMap: [], spotShadowMatrix: [], rectArea: [], point: [], pointShadowMap: [], pointShadowMatrix: [], hemi: [], shadows: [] },\n Wt = { geometries: 0, textures: 0 },\n Xt = { frame: 0, calls: 0, vertices: 0, faces: 0, points: 0 };this.info = { render: Xt, memory: Wt, programs: null };var jt;try {\n var Yt = { alpha: z, depth: O, stencil: B, antialias: G, premultipliedAlpha: V, preserveDrawingBuffer: X };if (null === (jt = F || I.getContext(\"webgl\", Yt) || I.getContext(\"experimental-webgl\", Yt))) throw null !== I.getContext(\"webgl\") ? \"Error creating WebGL context with your selected attributes.\" : \"Error creating WebGL context.\";void 0 === jt.getShaderPrecisionFormat && (jt.getShaderPrecisionFormat = function () {\n return { rangeMin: 1, rangeMax: 1, precision: 1 };\n }), I.addEventListener(\"webglcontextlost\", o, !1);\n } catch (t) {\n console.error(\"THREE.WebGLRenderer: \" + t);\n }var qt = new ne(jt);qt.get(\"WEBGL_depth_texture\"), qt.get(\"OES_texture_float\"), qt.get(\"OES_texture_float_linear\"), qt.get(\"OES_texture_half_float\"), qt.get(\"OES_texture_half_float_linear\"), qt.get(\"OES_standard_derivatives\"), qt.get(\"ANGLE_instanced_arrays\"), qt.get(\"OES_element_index_uint\") && (yt.MaxIndex = 4294967296);var Zt = new ie(jt, qt, t),\n Jt = new ee(jt, qt, D),\n Qt = new te(),\n ae = new $t(jt, qt, Jt, Qt, Zt, D, Wt),\n oe = new At(jt),\n se = new It(jt, oe, Wt),\n le = new zt(jt, se, Xt),\n ce = new Kt(this, Zt),\n he = new Ft(),\n ue = new Ut();this.info.programs = ce.programs;var de,\n fe,\n pe,\n ge,\n ve = new Dt(jt, qt, Xt),\n _e = new Nt(jt, qt, Xt);r(), this.context = jt, this.capabilities = Zt, this.extensions = qt, this.properties = Qt, this.state = Jt;var ye = new nt(this, kt, le, Zt);this.shadowMap = ye;var Me = new Y(this, K),\n Ee = new j(this, $);this.getContext = function () {\n return jt;\n }, this.getContextAttributes = function () {\n return jt.getContextAttributes();\n }, this.forceContextLoss = function () {\n var t = qt.get(\"WEBGL_lose_context\");t && t.loseContext();\n }, this.getMaxAnisotropy = function () {\n return Zt.getMaxAnisotropy();\n }, this.getPrecision = function () {\n return Zt.precision;\n }, this.getPixelRatio = function () {\n return _t;\n }, this.setPixelRatio = function (t) {\n void 0 !== t && (_t = t, this.setSize(Tt.z, Tt.w, !1));\n }, this.getSize = function () {\n return { width: gt, height: vt };\n }, this.setSize = function (t, e, i) {\n gt = t, vt = e, I.width = t * _t, I.height = e * _t, !1 !== i && (I.style.width = t + \"px\", I.style.height = e + \"px\"), this.setViewport(0, 0, t, e);\n }, this.setViewport = function (t, e, i, n) {\n Jt.viewport(Tt.set(t, e, i, n));\n }, this.setScissor = function (t, e, i, n) {\n Jt.scissor(xt.set(t, e, i, n));\n }, this.setScissorTest = function (t) {\n Jt.setScissorTest(Et = t);\n }, this.getClearColor = function () {\n return pt;\n }, this.setClearColor = function (t, e) {\n pt.set(t), mt = void 0 !== e ? e : 1, Jt.buffers.color.setClear(pt.r, pt.g, pt.b, mt, V);\n }, this.getClearAlpha = function () {\n return mt;\n }, this.setClearAlpha = function (t) {\n mt = t, Jt.buffers.color.setClear(pt.r, pt.g, pt.b, mt, V);\n }, this.clear = function (t, e, i) {\n var n = 0;(void 0 === t || t) && (n |= jt.COLOR_BUFFER_BIT), (void 0 === e || e) && (n |= jt.DEPTH_BUFFER_BIT), (void 0 === i || i) && (n |= jt.STENCIL_BUFFER_BIT), jt.clear(n);\n }, this.clearColor = function () {\n this.clear(!0, !1, !1);\n }, this.clearDepth = function () {\n this.clear(!1, !0, !1);\n }, this.clearStencil = function () {\n this.clear(!1, !1, !0);\n }, this.clearTarget = function (t, e, i, n) {\n this.setRenderTarget(t), this.clear(e, i, n);\n }, this.resetGLState = a, this.dispose = function () {\n I.removeEventListener(\"webglcontextlost\", o, !1), ue.dispose();\n }, this.renderBufferImmediate = function (t, e, i) {\n Jt.initAttributes();var n = Qt.get(t);t.hasPositions && !n.position && (n.position = jt.createBuffer()), t.hasNormals && !n.normal && (n.normal = jt.createBuffer()), t.hasUvs && !n.uv && (n.uv = jt.createBuffer()), t.hasColors && !n.color && (n.color = jt.createBuffer());var r = e.getAttributes();if (t.hasPositions && (jt.bindBuffer(jt.ARRAY_BUFFER, n.position), jt.bufferData(jt.ARRAY_BUFFER, t.positionArray, jt.DYNAMIC_DRAW), Jt.enableAttribute(r.position), jt.vertexAttribPointer(r.position, 3, jt.FLOAT, !1, 0, 0)), t.hasNormals) {\n if (jt.bindBuffer(jt.ARRAY_BUFFER, n.normal), !i.isMeshPhongMaterial && !i.isMeshStandardMaterial && !i.isMeshNormalMaterial && i.shading === Te) for (var a = 0, o = 3 * t.count; a < o; a += 9) {\n var s = t.normalArray,\n l = (s[a + 0] + s[a + 3] + s[a + 6]) / 3,\n c = (s[a + 1] + s[a + 4] + s[a + 7]) / 3,\n h = (s[a + 2] + s[a + 5] + s[a + 8]) / 3;s[a + 0] = l, s[a + 1] = c, s[a + 2] = h, s[a + 3] = l, s[a + 4] = c, s[a + 5] = h, s[a + 6] = l, s[a + 7] = c, s[a + 8] = h;\n }jt.bufferData(jt.ARRAY_BUFFER, t.normalArray, jt.DYNAMIC_DRAW), Jt.enableAttribute(r.normal), jt.vertexAttribPointer(r.normal, 3, jt.FLOAT, !1, 0, 0);\n }t.hasUvs && i.map && (jt.bindBuffer(jt.ARRAY_BUFFER, n.uv), jt.bufferData(jt.ARRAY_BUFFER, t.uvArray, jt.DYNAMIC_DRAW), Jt.enableAttribute(r.uv), jt.vertexAttribPointer(oe.uv, 2, jt.FLOAT, !1, 0, 0)), t.hasColors && i.vertexColors !== Le && (jt.bindBuffer(jt.ARRAY_BUFFER, n.color), jt.bufferData(jt.ARRAY_BUFFER, t.colorArray, jt.DYNAMIC_DRAW), Jt.enableAttribute(r.color), jt.vertexAttribPointer(r.color, 3, jt.FLOAT, !1, 0, 0)), Jt.disableUnusedAttributes(), jt.drawArrays(jt.TRIANGLES, 0, t.count), t.count = 0;\n }, this.renderBufferDirect = function (t, i, n, r, a, o) {\n Jt.setMaterial(r);var s = _(t, i, r, a),\n l = n.id + \"_\" + s.id + \"_\" + (!0 === r.wireframe),\n c = !1;l !== st && (st = l, c = !0);var h = a.morphTargetInfluences;if (void 0 !== h) {\n for (var u = [], p = 0, m = h.length; p < m; p++) {\n var g = h[p];u.push([g, p]);\n }u.sort(d), u.length > 8 && (u.length = 8);for (var v = n.morphAttributes, p = 0, m = u.length; p < m; p++) {\n var g = u[p];if (Q[p] = g[0], 0 !== g[0]) {\n var x = g[1];!0 === r.morphTargets && v.position && n.addAttribute(\"morphTarget\" + p, v.position[x]), !0 === r.morphNormals && v.normal && n.addAttribute(\"morphNormal\" + p, v.normal[x]);\n } else !0 === r.morphTargets && n.removeAttribute(\"morphTarget\" + p), !0 === r.morphNormals && n.removeAttribute(\"morphNormal\" + p);\n }for (var p = u.length, y = Q.length; p < y; p++) {\n Q[p] = 0;\n }s.getUniforms().setValue(jt, \"morphTargetInfluences\", Q), c = !0;\n }var x = n.index,\n M = n.attributes.position,\n E = 1;!0 === r.wireframe && (x = se.getWireframeAttribute(n), E = 2);var b = ve;null !== x && (b = _e, b.setIndex(x)), c && (f(r, s, n), null !== x && jt.bindBuffer(jt.ELEMENT_ARRAY_BUFFER, oe.get(x).buffer));var w = 0;null !== x ? w = x.count : void 0 !== M && (w = M.count);var T = n.drawRange.start * E,\n S = n.drawRange.count * E,\n L = null !== o ? o.start * E : 0,\n A = null !== o ? o.count * E : 1 / 0,\n R = Math.max(T, L),\n P = Math.min(w, T + S, L + A) - 1,\n C = Math.max(0, P - R + 1);if (0 !== C) {\n if (a.isMesh) {\n if (!0 === r.wireframe) Jt.setLineWidth(r.wireframeLinewidth * e()), b.setMode(jt.LINES);else switch (a.drawMode) {case nn:\n b.setMode(jt.TRIANGLES);break;case rn:\n b.setMode(jt.TRIANGLE_STRIP);break;case an:\n b.setMode(jt.TRIANGLE_FAN);}\n } else if (a.isLine) {\n var U = r.linewidth;void 0 === U && (U = 1), Jt.setLineWidth(U * e()), a.isLineSegments ? b.setMode(jt.LINES) : a.isLineLoop ? b.setMode(jt.LINE_LOOP) : b.setMode(jt.LINE_STRIP);\n } else a.isPoints && b.setMode(jt.POINTS);n && n.isInstancedBufferGeometry ? n.maxInstancedCount > 0 && b.renderInstances(n, R, C) : b.render(R, C);\n }\n }, this.compile = function (t, e) {\n q = [], t.traverse(function (t) {\n t.isLight && q.push(t);\n }), U(q, e), t.traverse(function (e) {\n if (e.material) if (Array.isArray(e.material)) for (var i = 0; i < e.material.length; i++) {\n v(e.material[i], t.fog, e);\n } else v(e.material, t.fog, e);\n });\n }, this.render = function (t, e, i, n) {\n if (void 0 !== e && !0 !== e.isCamera) return void console.error(\"THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.\");st = \"\", ot = -1, lt = null, !0 === t.autoUpdate && t.updateMatrixWorld(), e.onBeforeRender(tt), null === e.parent && e.updateMatrixWorld(), e.matrixWorldInverse.getInverse(e.matrixWorld), Bt.multiplyMatrices(e.projectionMatrix, e.matrixWorldInverse), Rt.setFromMatrix(Bt), q.length = 0, K.length = 0, $.length = 0, Ot = this.localClippingEnabled, Ct = Pt.init(this.clippingPlanes, Ot, e), Z = ue.get(t, e), Z.init(), p(t, e, tt.sortObjects), Z.finish(), !0 === tt.sortObjects && Z.sort(), Ct && Pt.beginShadows(), C(q), ye.render(t, e), U(q, e), Ct && Pt.endShadows(), Xt.frame++, Xt.calls = 0, Xt.vertices = 0, Xt.faces = 0, Xt.points = 0, void 0 === i && (i = null), this.setRenderTarget(i);var r = t.background;null === r ? Jt.buffers.color.setClear(pt.r, pt.g, pt.b, mt, V) : r && r.isColor && (Jt.buffers.color.setClear(r.r, r.g, r.b, 1, V), n = !0), (this.autoClear || n) && this.clear(this.autoClearColor, this.autoClearDepth, this.autoClearStencil), r && r.isCubeTexture ? (void 0 === pe && (pe = new St(), ge = new Mt(new bt(5, 5, 5), new J({ uniforms: An.cube.uniforms, vertexShader: An.cube.vertexShader, fragmentShader: An.cube.fragmentShader, side: be, depthTest: !1, depthWrite: !1, fog: !1 }))), pe.projectionMatrix.copy(e.projectionMatrix), pe.matrixWorld.extractRotation(e.matrixWorld), pe.matrixWorldInverse.getInverse(pe.matrixWorld), ge.material.uniforms.tCube.value = r, ge.modelViewMatrix.multiplyMatrices(pe.matrixWorldInverse, ge.matrixWorld), le.update(ge), tt.renderBufferDirect(pe, null, ge.geometry, ge.material, ge, null)) : r && r.isTexture && (void 0 === de && (de = new Lt(-1, 1, 1, -1, 0, 1), fe = new Mt(new wt(2, 2), new ut({ depthTest: !1, depthWrite: !1, fog: !1 }))), fe.material.map = r, le.update(fe), tt.renderBufferDirect(de, null, fe.geometry, fe.material, fe, null));var a = Z.opaque,\n o = Z.transparent;if (t.overrideMaterial) {\n var s = t.overrideMaterial;a.length && m(a, t, e, s), o.length && m(o, t, e, s);\n } else a.length && m(a, t, e), o.length && m(o, t, e);Me.render(t, e), Ee.render(t, e, dt), i && ae.updateRenderTargetMipmap(i), Jt.buffers.depth.setTest(!0), Jt.buffers.depth.setMask(!0), Jt.buffers.color.setMask(!0), e.isArrayCamera && e.enabled && tt.setScissorTest(!1), e.onAfterRender(tt);\n }, this.setFaceCulling = function (t, e) {\n Jt.setCullFace(t), Jt.setFlipSided(e === xe);\n }, this.allocTextureUnit = N, this.setTexture2D = function () {\n var t = !1;return function (e, i) {\n e && e.isWebGLRenderTarget && (t || (console.warn(\"THREE.WebGLRenderer.setTexture2D: don't use render targets as textures. Use their .texture property instead.\"), t = !0), e = e.texture), ae.setTexture2D(e, i);\n };\n }(), this.setTexture = function () {\n var t = !1;return function (e, i) {\n t || (console.warn(\"THREE.WebGLRenderer: .setTexture is deprecated, use setTexture2D instead.\"), t = !0), ae.setTexture2D(e, i);\n };\n }(), this.setTextureCube = function () {\n var t = !1;return function (e, i) {\n e && e.isWebGLRenderTargetCube && (t || (console.warn(\"THREE.WebGLRenderer.setTextureCube: don't use cube render targets as textures. Use their .texture property instead.\"), t = !0), e = e.texture), e && e.isCubeTexture || Array.isArray(e.image) && 6 === e.image.length ? ae.setTextureCube(e, i) : ae.setTextureCubeDynamic(e, i);\n };\n }(), this.getRenderTarget = function () {\n return rt;\n }, this.setRenderTarget = function (t) {\n rt = t, t && void 0 === Qt.get(t).__webglFramebuffer && ae.setupRenderTarget(t);var e,\n i = t && t.isWebGLRenderTargetCube;if (t) {\n var n = Qt.get(t);e = i ? n.__webglFramebuffer[t.activeCubeFace] : n.__webglFramebuffer, ct.copy(t.scissor), ht = t.scissorTest, dt.copy(t.viewport);\n } else e = null, ct.copy(xt).multiplyScalar(_t), ht = Et, dt.copy(Tt).multiplyScalar(_t);if (at !== e && (jt.bindFramebuffer(jt.FRAMEBUFFER, e), at = e), Jt.scissor(ct), Jt.setScissorTest(ht), Jt.viewport(dt), i) {\n var r = Qt.get(t.texture);jt.framebufferTexture2D(jt.FRAMEBUFFER, jt.COLOR_ATTACHMENT0, jt.TEXTURE_CUBE_MAP_POSITIVE_X + t.activeCubeFace, r.__webglTexture, t.activeMipMapLevel);\n }\n }, this.readRenderTargetPixels = function (t, e, i, n, r, a) {\n if (!1 === (t && t.isWebGLRenderTarget)) return void console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.\");var o = Qt.get(t).__webglFramebuffer;if (o) {\n var s = !1;o !== at && (jt.bindFramebuffer(jt.FRAMEBUFFER, o), s = !0);try {\n var l = t.texture,\n c = l.format,\n h = l.type;if (c !== Hi && D(c) !== jt.getParameter(jt.IMPLEMENTATION_COLOR_READ_FORMAT)) return void console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.\");if (!(h === Ai || D(h) === jt.getParameter(jt.IMPLEMENTATION_COLOR_READ_TYPE) || h === Di && (qt.get(\"OES_texture_float\") || qt.get(\"WEBGL_color_buffer_float\")) || h === Ii && qt.get(\"EXT_color_buffer_half_float\"))) return void console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.\");jt.checkFramebufferStatus(jt.FRAMEBUFFER) === jt.FRAMEBUFFER_COMPLETE ? e >= 0 && e <= t.width - n && i >= 0 && i <= t.height - r && jt.readPixels(e, i, n, r, D(c), D(h), a) : console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete.\");\n } finally {\n s && jt.bindFramebuffer(jt.FRAMEBUFFER, at);\n }\n }\n };\n }function oe() {\n st.call(this), this.type = \"Scene\", this.background = null, this.fog = null, this.overrideMaterial = null, this.autoUpdate = !0;\n }function se(t, e, i) {\n var n = this,\n r = !1,\n a = 0,\n o = 0;this.onStart = void 0, this.onLoad = t, this.onProgress = e, this.onError = i, this.itemStart = function (t) {\n o++, !1 === r && void 0 !== n.onStart && n.onStart(t, a, o), r = !0;\n }, this.itemEnd = function (t) {\n a++, void 0 !== n.onProgress && n.onProgress(t, a, o), a === o && (r = !1, void 0 !== n.onLoad && n.onLoad());\n }, this.itemError = function (t) {\n void 0 !== n.onError && n.onError(t);\n };\n }function le(t) {\n this.manager = void 0 !== t ? t : Dn;\n }function ce(t, e, i, n, r, a, s, l, c, h, u, d) {\n o.call(this, null, a, s, l, c, h, n, r, u, d), this.image = { width: e, height: i }, this.mipmaps = t, this.flipY = !1, this.generateMipmaps = !1;\n }function he(t) {\n this.manager = void 0 !== t ? t : Dn, this._parser = null;\n }function ue(t) {\n this.manager = void 0 !== t ? t : Dn, this._parser = null;\n }function de(t) {\n this.manager = void 0 !== t ? t : Dn;\n }function fe(t) {\n this.manager = void 0 !== t ? t : Dn;\n }function pe(t) {\n this.manager = void 0 !== t ? t : Dn;\n }void 0 === Number.EPSILON && (Number.EPSILON = Math.pow(2, -52)), void 0 === Number.isInteger && (Number.isInteger = function (t) {\n return \"number\" == typeof t && isFinite(t) && Math.floor(t) === t;\n }), void 0 === Math.sign && (Math.sign = function (t) {\n return t < 0 ? -1 : t > 0 ? 1 : +t;\n }), void 0 === Function.prototype.name && Object.defineProperty(Function.prototype, \"name\", { get: function get() {\n return this.toString().match(/^\\s*function\\s*([^\\(\\s]*)/)[1];\n } }), void 0 === Object.assign && function () {\n Object.assign = function (t) {\n if (void 0 === t || null === t) throw new TypeError(\"Cannot convert undefined or null to object\");for (var e = Object(t), i = 1; i < arguments.length; i++) {\n var n = arguments[i];if (void 0 !== n && null !== n) for (var r in n) {\n Object.prototype.hasOwnProperty.call(n, r) && (e[r] = n[r]);\n }\n }return e;\n };\n }();var me = \"86dev\",\n ge = 0,\n ve = 1,\n _e = 2,\n xe = 0,\n ye = 1,\n Me = 2,\n Ee = 0,\n be = 1,\n we = 2,\n Te = 1,\n Se = 2,\n Le = 0,\n Ae = 0,\n Re = 1,\n Pe = 2,\n Ce = 3,\n Ue = 4,\n Ne = 5,\n De = 100,\n Ie = 101,\n Fe = 102,\n ze = 103,\n Oe = 104,\n Be = 200,\n Ge = 201,\n Ve = 202,\n He = 203,\n ke = 204,\n We = 205,\n Xe = 206,\n je = 207,\n Ye = 208,\n qe = 209,\n Ze = 210,\n Je = 0,\n Qe = 1,\n Ke = 2,\n $e = 3,\n ti = 4,\n ei = 5,\n ii = 6,\n ni = 7,\n ri = 0,\n ai = 1,\n oi = 2,\n si = 0,\n li = 1,\n ci = 2,\n hi = 3,\n ui = 4,\n di = 301,\n fi = 302,\n pi = 303,\n mi = 304,\n gi = 305,\n vi = 306,\n _i = 307,\n xi = 1e3,\n yi = 1001,\n Mi = 1002,\n Ei = 1003,\n bi = 1004,\n wi = 1005,\n Ti = 1006,\n Si = 1007,\n Li = 1008,\n Ai = 1009,\n Ri = 1010,\n Pi = 1011,\n Ci = 1012,\n Ui = 1013,\n Ni = 1014,\n Di = 1015,\n Ii = 1016,\n Fi = 1017,\n zi = 1018,\n Oi = 1019,\n Bi = 1020,\n Gi = 1021,\n Vi = 1022,\n Hi = 1023,\n ki = 1024,\n Wi = 1025,\n Xi = 1026,\n ji = 1027,\n Yi = 2001,\n qi = 2002,\n Zi = 2003,\n Ji = 2004,\n Qi = 2100,\n Ki = 2101,\n $i = 2102,\n tn = 2103,\n en = 2151,\n nn = 0,\n rn = 1,\n an = 2,\n on = 3e3,\n sn = 3001,\n ln = 3007,\n cn = 3002,\n hn = 3004,\n un = 3005,\n dn = 3006,\n fn = 3200,\n pn = 3201,\n mn = { DEG2RAD: Math.PI / 180, RAD2DEG: 180 / Math.PI, generateUUID: function () {\n var t,\n e = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\".split(\"\"),\n i = new Array(36),\n n = 0;return function () {\n for (var r = 0; r < 36; r++) {\n 8 === r || 13 === r || 18 === r || 23 === r ? i[r] = \"-\" : 14 === r ? i[r] = \"4\" : (n <= 2 && (n = 33554432 + 16777216 * Math.random() | 0), t = 15 & n, n >>= 4, i[r] = e[19 === r ? 3 & t | 8 : t]);\n }return i.join(\"\");\n };\n }(), clamp: function clamp(t, e, i) {\n return Math.max(e, Math.min(i, t));\n }, euclideanModulo: function euclideanModulo(t, e) {\n return (t % e + e) % e;\n }, mapLinear: function mapLinear(t, e, i, n, r) {\n return n + (t - e) * (r - n) / (i - e);\n }, lerp: function lerp(t, e, i) {\n return (1 - i) * t + i * e;\n }, smoothstep: function smoothstep(t, e, i) {\n return t <= e ? 0 : t >= i ? 1 : (t = (t - e) / (i - e)) * t * (3 - 2 * t);\n }, smootherstep: function smootherstep(t, e, i) {\n return t <= e ? 0 : t >= i ? 1 : (t = (t - e) / (i - e)) * t * t * (t * (6 * t - 15) + 10);\n }, randInt: function randInt(t, e) {\n return t + Math.floor(Math.random() * (e - t + 1));\n }, randFloat: function randFloat(t, e) {\n return t + Math.random() * (e - t);\n }, randFloatSpread: function randFloatSpread(t) {\n return t * (.5 - Math.random());\n }, degToRad: function degToRad(t) {\n return t * mn.DEG2RAD;\n }, radToDeg: function radToDeg(t) {\n return t * mn.RAD2DEG;\n }, isPowerOfTwo: function isPowerOfTwo(t) {\n return 0 == (t & t - 1) && 0 !== t;\n }, nearestPowerOfTwo: function nearestPowerOfTwo(t) {\n return Math.pow(2, Math.round(Math.log(t) / Math.LN2));\n }, nextPowerOfTwo: function nextPowerOfTwo(t) {\n return t--, t |= t >> 1, t |= t >> 2, t |= t >> 4, t |= t >> 8, t |= t >> 16, ++t;\n } };_extends(e, { slerp: function slerp(t, e, i, n) {\n return i.copy(t).slerp(e, n);\n }, slerpFlat: function slerpFlat(t, e, i, n, r, a, o) {\n var s = i[n + 0],\n l = i[n + 1],\n c = i[n + 2],\n h = i[n + 3],\n u = r[a + 0],\n d = r[a + 1],\n f = r[a + 2],\n p = r[a + 3];if (h !== p || s !== u || l !== d || c !== f) {\n var m = 1 - o,\n g = s * u + l * d + c * f + h * p,\n v = g >= 0 ? 1 : -1,\n _ = 1 - g * g;if (_ > Number.EPSILON) {\n var x = Math.sqrt(_),\n y = Math.atan2(x, g * v);m = Math.sin(m * y) / x, o = Math.sin(o * y) / x;\n }var M = o * v;if (s = s * m + u * M, l = l * m + d * M, c = c * m + f * M, h = h * m + p * M, m === 1 - o) {\n var E = 1 / Math.sqrt(s * s + l * l + c * c + h * h);s *= E, l *= E, c *= E, h *= E;\n }\n }t[e] = s, t[e + 1] = l, t[e + 2] = c, t[e + 3] = h;\n } }), Object.defineProperties(e.prototype, { x: { get: function get() {\n return this._x;\n }, set: function set(t) {\n this._x = t, this.onChangeCallback();\n } }, y: { get: function get() {\n return this._y;\n }, set: function set(t) {\n this._y = t, this.onChangeCallback();\n } }, z: { get: function get() {\n return this._z;\n }, set: function set(t) {\n this._z = t, this.onChangeCallback();\n } }, w: { get: function get() {\n return this._w;\n }, set: function set(t) {\n this._w = t, this.onChangeCallback();\n } } }), _extends(e.prototype, { set: function set(t, e, i, n) {\n return this._x = t, this._y = e, this._z = i, this._w = n, this.onChangeCallback(), this;\n }, clone: function clone() {\n return new this.constructor(this._x, this._y, this._z, this._w);\n }, copy: function copy(t) {\n return this._x = t.x, this._y = t.y, this._z = t.z, this._w = t.w, this.onChangeCallback(), this;\n }, setFromEuler: function setFromEuler(t, e) {\n if (!1 === (t && t.isEuler)) throw new Error(\"THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.\");var i = t._x,\n n = t._y,\n r = t._z,\n a = t.order,\n o = Math.cos,\n s = Math.sin,\n l = o(i / 2),\n c = o(n / 2),\n h = o(r / 2),\n u = s(i / 2),\n d = s(n / 2),\n f = s(r / 2);return \"XYZ\" === a ? (this._x = u * c * h + l * d * f, this._y = l * d * h - u * c * f, this._z = l * c * f + u * d * h, this._w = l * c * h - u * d * f) : \"YXZ\" === a ? (this._x = u * c * h + l * d * f, this._y = l * d * h - u * c * f, this._z = l * c * f - u * d * h, this._w = l * c * h + u * d * f) : \"ZXY\" === a ? (this._x = u * c * h - l * d * f, this._y = l * d * h + u * c * f, this._z = l * c * f + u * d * h, this._w = l * c * h - u * d * f) : \"ZYX\" === a ? (this._x = u * c * h - l * d * f, this._y = l * d * h + u * c * f, this._z = l * c * f - u * d * h, this._w = l * c * h + u * d * f) : \"YZX\" === a ? (this._x = u * c * h + l * d * f, this._y = l * d * h + u * c * f, this._z = l * c * f - u * d * h, this._w = l * c * h - u * d * f) : \"XZY\" === a && (this._x = u * c * h - l * d * f, this._y = l * d * h - u * c * f, this._z = l * c * f + u * d * h, this._w = l * c * h + u * d * f), !1 !== e && this.onChangeCallback(), this;\n }, setFromAxisAngle: function setFromAxisAngle(t, e) {\n var i = e / 2,\n n = Math.sin(i);return this._x = t.x * n, this._y = t.y * n, this._z = t.z * n, this._w = Math.cos(i), this.onChangeCallback(), this;\n }, setFromRotationMatrix: function setFromRotationMatrix(t) {\n var e,\n i = t.elements,\n n = i[0],\n r = i[4],\n a = i[8],\n o = i[1],\n s = i[5],\n l = i[9],\n c = i[2],\n h = i[6],\n u = i[10],\n d = n + s + u;return d > 0 ? (e = .5 / Math.sqrt(d + 1), this._w = .25 / e, this._x = (h - l) * e, this._y = (a - c) * e, this._z = (o - r) * e) : n > s && n > u ? (e = 2 * Math.sqrt(1 + n - s - u), this._w = (h - l) / e, this._x = .25 * e, this._y = (r + o) / e, this._z = (a + c) / e) : s > u ? (e = 2 * Math.sqrt(1 + s - n - u), this._w = (a - c) / e, this._x = (r + o) / e, this._y = .25 * e, this._z = (l + h) / e) : (e = 2 * Math.sqrt(1 + u - n - s), this._w = (o - r) / e, this._x = (a + c) / e, this._y = (l + h) / e, this._z = .25 * e), this.onChangeCallback(), this;\n }, setFromUnitVectors: function () {\n var t, e;return function (n, r) {\n return void 0 === t && (t = new i()), e = n.dot(r) + 1, e < 1e-6 ? (e = 0, Math.abs(n.x) > Math.abs(n.z) ? t.set(-n.y, n.x, 0) : t.set(0, -n.z, n.y)) : t.crossVectors(n, r), this._x = t.x, this._y = t.y, this._z = t.z, this._w = e, this.normalize();\n };\n }(), inverse: function inverse() {\n return this.conjugate().normalize();\n }, conjugate: function conjugate() {\n return this._x *= -1, this._y *= -1, this._z *= -1, this.onChangeCallback(), this;\n }, dot: function dot(t) {\n return this._x * t._x + this._y * t._y + this._z * t._z + this._w * t._w;\n }, lengthSq: function lengthSq() {\n return this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w;\n }, length: function length() {\n return Math.sqrt(this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w);\n }, normalize: function normalize() {\n var t = this.length();return 0 === t ? (this._x = 0, this._y = 0, this._z = 0, this._w = 1) : (t = 1 / t, this._x = this._x * t, this._y = this._y * t, this._z = this._z * t, this._w = this._w * t), this.onChangeCallback(), this;\n }, multiply: function multiply(t, e) {\n return void 0 !== e ? (console.warn(\"THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead.\"), this.multiplyQuaternions(t, e)) : this.multiplyQuaternions(this, t);\n }, premultiply: function premultiply(t) {\n return this.multiplyQuaternions(t, this);\n }, multiplyQuaternions: function multiplyQuaternions(t, e) {\n var i = t._x,\n n = t._y,\n r = t._z,\n a = t._w,\n o = e._x,\n s = e._y,\n l = e._z,\n c = e._w;return this._x = i * c + a * o + n * l - r * s, this._y = n * c + a * s + r * o - i * l, this._z = r * c + a * l + i * s - n * o, this._w = a * c - i * o - n * s - r * l, this.onChangeCallback(), this;\n }, slerp: function slerp(t, e) {\n if (0 === e) return this;if (1 === e) return this.copy(t);var i = this._x,\n n = this._y,\n r = this._z,\n a = this._w,\n o = a * t._w + i * t._x + n * t._y + r * t._z;if (o < 0 ? (this._w = -t._w, this._x = -t._x, this._y = -t._y, this._z = -t._z, o = -o) : this.copy(t), o >= 1) return this._w = a, this._x = i, this._y = n, this._z = r, this;var s = Math.sqrt(1 - o * o);if (Math.abs(s) < .001) return this._w = .5 * (a + this._w), this._x = .5 * (i + this._x), this._y = .5 * (n + this._y), this._z = .5 * (r + this._z), this;var l = Math.atan2(s, o),\n c = Math.sin((1 - e) * l) / s,\n h = Math.sin(e * l) / s;return this._w = a * c + this._w * h, this._x = i * c + this._x * h, this._y = n * c + this._y * h, this._z = r * c + this._z * h, this.onChangeCallback(), this;\n }, equals: function equals(t) {\n return t._x === this._x && t._y === this._y && t._z === this._z && t._w === this._w;\n }, fromArray: function fromArray(t, e) {\n return void 0 === e && (e = 0), this._x = t[e], this._y = t[e + 1], this._z = t[e + 2], this._w = t[e + 3], this.onChangeCallback(), this;\n }, toArray: function toArray(t, e) {\n return void 0 === t && (t = []), void 0 === e && (e = 0), t[e] = this._x, t[e + 1] = this._y, t[e + 2] = this._z, t[e + 3] = this._w, t;\n }, onChange: function onChange(t) {\n return this.onChangeCallback = t, this;\n }, onChangeCallback: function onChangeCallback() {} }), _extends(i.prototype, { isVector3: !0, set: function set(t, e, i) {\n return this.x = t, this.y = e, this.z = i, this;\n }, setScalar: function setScalar(t) {\n return this.x = t, this.y = t, this.z = t, this;\n }, setX: function setX(t) {\n return this.x = t, this;\n }, setY: function setY(t) {\n return this.y = t, this;\n }, setZ: function setZ(t) {\n return this.z = t, this;\n }, setComponent: function setComponent(t, e) {\n switch (t) {case 0:\n this.x = e;break;case 1:\n this.y = e;break;case 2:\n this.z = e;break;default:\n throw new Error(\"index is out of range: \" + t);}return this;\n }, getComponent: function getComponent(t) {\n switch (t) {case 0:\n return this.x;case 1:\n return this.y;case 2:\n return this.z;default:\n throw new Error(\"index is out of range: \" + t);}\n }, clone: function clone() {\n return new this.constructor(this.x, this.y, this.z);\n }, copy: function copy(t) {\n return this.x = t.x, this.y = t.y, this.z = t.z, this;\n }, add: function add(t, e) {\n return void 0 !== e ? (console.warn(\"THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead.\"), this.addVectors(t, e)) : (this.x += t.x, this.y += t.y, this.z += t.z, this);\n }, addScalar: function addScalar(t) {\n return this.x += t, this.y += t, this.z += t, this;\n }, addVectors: function addVectors(t, e) {\n return this.x = t.x + e.x, this.y = t.y + e.y, this.z = t.z + e.z, this;\n }, addScaledVector: function addScaledVector(t, e) {\n return this.x += t.x * e, this.y += t.y * e, this.z += t.z * e, this;\n }, sub: function sub(t, e) {\n return void 0 !== e ? (console.warn(\"THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.\"), this.subVectors(t, e)) : (this.x -= t.x, this.y -= t.y, this.z -= t.z, this);\n }, subScalar: function subScalar(t) {\n return this.x -= t, this.y -= t, this.z -= t, this;\n }, subVectors: function subVectors(t, e) {\n return this.x = t.x - e.x, this.y = t.y - e.y, this.z = t.z - e.z, this;\n }, multiply: function multiply(t, e) {\n return void 0 !== e ? (console.warn(\"THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead.\"), this.multiplyVectors(t, e)) : (this.x *= t.x, this.y *= t.y, this.z *= t.z, this);\n }, multiplyScalar: function multiplyScalar(t) {\n return this.x *= t, this.y *= t, this.z *= t, this;\n }, multiplyVectors: function multiplyVectors(t, e) {\n return this.x = t.x * e.x, this.y = t.y * e.y, this.z = t.z * e.z, this;\n }, applyEuler: function () {\n var t;return function (i) {\n return !1 === (i && i.isEuler) && console.error(\"THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order.\"), void 0 === t && (t = new e()), this.applyQuaternion(t.setFromEuler(i));\n };\n }(), applyAxisAngle: function () {\n var t;return function (i, n) {\n return void 0 === t && (t = new e()), this.applyQuaternion(t.setFromAxisAngle(i, n));\n };\n }(), applyMatrix3: function applyMatrix3(t) {\n var e = this.x,\n i = this.y,\n n = this.z,\n r = t.elements;return this.x = r[0] * e + r[3] * i + r[6] * n, this.y = r[1] * e + r[4] * i + r[7] * n, this.z = r[2] * e + r[5] * i + r[8] * n, this;\n }, applyMatrix4: function applyMatrix4(t) {\n var e = this.x,\n i = this.y,\n n = this.z,\n r = t.elements;this.x = r[0] * e + r[4] * i + r[8] * n + r[12], this.y = r[1] * e + r[5] * i + r[9] * n + r[13], this.z = r[2] * e + r[6] * i + r[10] * n + r[14];var a = r[3] * e + r[7] * i + r[11] * n + r[15];return this.divideScalar(a);\n }, applyQuaternion: function applyQuaternion(t) {\n var e = this.x,\n i = this.y,\n n = this.z,\n r = t.x,\n a = t.y,\n o = t.z,\n s = t.w,\n l = s * e + a * n - o * i,\n c = s * i + o * e - r * n,\n h = s * n + r * i - a * e,\n u = -r * e - a * i - o * n;return this.x = l * s + u * -r + c * -o - h * -a, this.y = c * s + u * -a + h * -r - l * -o, this.z = h * s + u * -o + l * -a - c * -r, this;\n }, project: function () {\n var t;return function (e) {\n return void 0 === t && (t = new n()), t.multiplyMatrices(e.projectionMatrix, t.getInverse(e.matrixWorld)), this.applyMatrix4(t);\n };\n }(), unproject: function () {\n var t;return function (e) {\n return void 0 === t && (t = new n()), t.multiplyMatrices(e.matrixWorld, t.getInverse(e.projectionMatrix)), this.applyMatrix4(t);\n };\n }(), transformDirection: function transformDirection(t) {\n var e = this.x,\n i = this.y,\n n = this.z,\n r = t.elements;return this.x = r[0] * e + r[4] * i + r[8] * n, this.y = r[1] * e + r[5] * i + r[9] * n, this.z = r[2] * e + r[6] * i + r[10] * n, this.normalize();\n }, divide: function divide(t) {\n return this.x /= t.x, this.y /= t.y, this.z /= t.z, this;\n }, divideScalar: function divideScalar(t) {\n return this.multiplyScalar(1 / t);\n }, min: function min(t) {\n return this.x = Math.min(this.x, t.x), this.y = Math.min(this.y, t.y), this.z = Math.min(this.z, t.z), this;\n }, max: function max(t) {\n return this.x = Math.max(this.x, t.x), this.y = Math.max(this.y, t.y), this.z = Math.max(this.z, t.z), this;\n }, clamp: function clamp(t, e) {\n return this.x = Math.max(t.x, Math.min(e.x, this.x)), this.y = Math.max(t.y, Math.min(e.y, this.y)), this.z = Math.max(t.z, Math.min(e.z, this.z)), this;\n }, clampScalar: function () {\n var t, e;return function (n, r) {\n return void 0 === t && (t = new i(), e = new i()), t.set(n, n, n), e.set(r, r, r), this.clamp(t, e);\n };\n }(), clampLength: function clampLength(t, e) {\n var i = this.length();return this.multiplyScalar(Math.max(t, Math.min(e, i)) / i);\n }, floor: function floor() {\n return this.x = Math.floor(this.x), this.y = Math.floor(this.y), this.z = Math.floor(this.z), this;\n }, ceil: function ceil() {\n return this.x = Math.ceil(this.x), this.y = Math.ceil(this.y), this.z = Math.ceil(this.z), this;\n }, round: function round() {\n return this.x = Math.round(this.x), this.y = Math.round(this.y), this.z = Math.round(this.z), this;\n }, roundToZero: function roundToZero() {\n return this.x = this.x < 0 ? Math.ceil(this.x) : Math.floor(this.x), this.y = this.y < 0 ? Math.ceil(this.y) : Math.floor(this.y), this.z = this.z < 0 ? Math.ceil(this.z) : Math.floor(this.z), this;\n }, negate: function negate() {\n return this.x = -this.x, this.y = -this.y, this.z = -this.z, this;\n }, dot: function dot(t) {\n return this.x * t.x + this.y * t.y + this.z * t.z;\n }, lengthSq: function lengthSq() {\n return this.x * this.x + this.y * this.y + this.z * this.z;\n }, length: function length() {\n return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);\n }, lengthManhattan: function lengthManhattan() {\n return Math.abs(this.x) + Math.abs(this.y) + Math.abs(this.z);\n }, normalize: function normalize() {\n return this.divideScalar(this.length());\n }, setLength: function setLength(t) {\n return this.multiplyScalar(t / this.length());\n }, lerp: function lerp(t, e) {\n return this.x += (t.x - this.x) * e, this.y += (t.y - this.y) * e, this.z += (t.z - this.z) * e, this;\n }, lerpVectors: function lerpVectors(t, e, i) {\n return this.subVectors(e, t).multiplyScalar(i).add(t);\n }, cross: function cross(t, e) {\n if (void 0 !== e) return console.warn(\"THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead.\"), this.crossVectors(t, e);var i = this.x,\n n = this.y,\n r = this.z;return this.x = n * t.z - r * t.y, this.y = r * t.x - i * t.z, this.z = i * t.y - n * t.x, this;\n }, crossVectors: function crossVectors(t, e) {\n var i = t.x,\n n = t.y,\n r = t.z,\n a = e.x,\n o = e.y,\n s = e.z;return this.x = n * s - r * o, this.y = r * a - i * s, this.z = i * o - n * a, this;\n }, projectOnVector: function projectOnVector(t) {\n var e = t.dot(this) / t.lengthSq();return this.copy(t).multiplyScalar(e);\n }, projectOnPlane: function () {\n var t;return function (e) {\n return void 0 === t && (t = new i()), t.copy(this).projectOnVector(e), this.sub(t);\n };\n }(), reflect: function () {\n var t;return function (e) {\n return void 0 === t && (t = new i()), this.sub(t.copy(e).multiplyScalar(2 * this.dot(e)));\n };\n }(), angleTo: function angleTo(t) {\n var e = this.dot(t) / Math.sqrt(this.lengthSq() * t.lengthSq());return Math.acos(mn.clamp(e, -1, 1));\n }, distanceTo: function distanceTo(t) {\n return Math.sqrt(this.distanceToSquared(t));\n }, distanceToSquared: function distanceToSquared(t) {\n var e = this.x - t.x,\n i = this.y - t.y,\n n = this.z - t.z;return e * e + i * i + n * n;\n }, distanceToManhattan: function distanceToManhattan(t) {\n return Math.abs(this.x - t.x) + Math.abs(this.y - t.y) + Math.abs(this.z - t.z);\n }, setFromSpherical: function setFromSpherical(t) {\n var e = Math.sin(t.phi) * t.radius;return this.x = e * Math.sin(t.theta), this.y = Math.cos(t.phi) * t.radius, this.z = e * Math.cos(t.theta), this;\n }, setFromCylindrical: function setFromCylindrical(t) {\n return this.x = t.radius * Math.sin(t.theta), this.y = t.y, this.z = t.radius * Math.cos(t.theta), this;\n }, setFromMatrixPosition: function setFromMatrixPosition(t) {\n return this.setFromMatrixColumn(t, 3);\n }, setFromMatrixScale: function setFromMatrixScale(t) {\n var e = this.setFromMatrixColumn(t, 0).length(),\n i = this.setFromMatrixColumn(t, 1).length(),\n n = this.setFromMatrixColumn(t, 2).length();return this.x = e, this.y = i, this.z = n, this;\n }, setFromMatrixColumn: function setFromMatrixColumn(t, e) {\n return this.fromArray(t.elements, 4 * e);\n }, equals: function equals(t) {\n return t.x === this.x && t.y === this.y && t.z === this.z;\n }, fromArray: function fromArray(t, e) {\n return void 0 === e && (e = 0), this.x = t[e], this.y = t[e + 1], this.z = t[e + 2], this;\n }, toArray: function toArray(t, e) {\n return void 0 === t && (t = []), void 0 === e && (e = 0), t[e] = this.x, t[e + 1] = this.y, t[e + 2] = this.z, t;\n }, fromBufferAttribute: function fromBufferAttribute(t, e, i) {\n return void 0 !== i && console.warn(\"THREE.Vector3: offset has been removed from .fromBufferAttribute().\"), this.x = t.getX(e), this.y = t.getY(e), this.z = t.getZ(e), this;\n } }), _extends(n.prototype, { isMatrix4: !0, set: function set(t, e, i, n, r, a, o, s, l, c, h, u, d, f, p, m) {\n var g = this.elements;return g[0] = t, g[4] = e, g[8] = i, g[12] = n, g[1] = r, g[5] = a, g[9] = o, g[13] = s, g[2] = l, g[6] = c, g[10] = h, g[14] = u, g[3] = d, g[7] = f, g[11] = p, g[15] = m, this;\n }, identity: function identity() {\n return this.set(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1), this;\n }, clone: function clone() {\n return new n().fromArray(this.elements);\n }, copy: function copy(t) {\n var e = this.elements,\n i = t.elements;return e[0] = i[0], e[1] = i[1], e[2] = i[2], e[3] = i[3], e[4] = i[4], e[5] = i[5], e[6] = i[6], e[7] = i[7], e[8] = i[8], e[9] = i[9], e[10] = i[10], e[11] = i[11], e[12] = i[12], e[13] = i[13], e[14] = i[14], e[15] = i[15], this;\n }, copyPosition: function copyPosition(t) {\n var e = this.elements,\n i = t.elements;return e[12] = i[12], e[13] = i[13], e[14] = i[14], this;\n }, extractBasis: function extractBasis(t, e, i) {\n return t.setFromMatrixColumn(this, 0), e.setFromMatrixColumn(this, 1), i.setFromMatrixColumn(this, 2), this;\n }, makeBasis: function makeBasis(t, e, i) {\n return this.set(t.x, e.x, i.x, 0, t.y, e.y, i.y, 0, t.z, e.z, i.z, 0, 0, 0, 0, 1), this;\n }, extractRotation: function () {\n var t;return function (e) {\n void 0 === t && (t = new i());var n = this.elements,\n r = e.elements,\n a = 1 / t.setFromMatrixColumn(e, 0).length(),\n o = 1 / t.setFromMatrixColumn(e, 1).length(),\n s = 1 / t.setFromMatrixColumn(e, 2).length();return n[0] = r[0] * a, n[1] = r[1] * a, n[2] = r[2] * a, n[4] = r[4] * o, n[5] = r[5] * o, n[6] = r[6] * o, n[8] = r[8] * s, n[9] = r[9] * s, n[10] = r[10] * s, this;\n };\n }(), makeRotationFromEuler: function makeRotationFromEuler(t) {\n !1 === (t && t.isEuler) && console.error(\"THREE.Matrix: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.\");var e = this.elements,\n i = t.x,\n n = t.y,\n r = t.z,\n a = Math.cos(i),\n o = Math.sin(i),\n s = Math.cos(n),\n l = Math.sin(n),\n c = Math.cos(r),\n h = Math.sin(r);if (\"XYZ\" === t.order) {\n var u = a * c,\n d = a * h,\n f = o * c,\n p = o * h;e[0] = s * c, e[4] = -s * h, e[8] = l, e[1] = d + f * l, e[5] = u - p * l, e[9] = -o * s, e[2] = p - u * l, e[6] = f + d * l, e[10] = a * s;\n } else if (\"YXZ\" === t.order) {\n var m = s * c,\n g = s * h,\n v = l * c,\n _ = l * h;e[0] = m + _ * o, e[4] = v * o - g, e[8] = a * l, e[1] = a * h, e[5] = a * c, e[9] = -o, e[2] = g * o - v, e[6] = _ + m * o, e[10] = a * s;\n } else if (\"ZXY\" === t.order) {\n var m = s * c,\n g = s * h,\n v = l * c,\n _ = l * h;e[0] = m - _ * o, e[4] = -a * h, e[8] = v + g * o, e[1] = g + v * o, e[5] = a * c, e[9] = _ - m * o, e[2] = -a * l, e[6] = o, e[10] = a * s;\n } else if (\"ZYX\" === t.order) {\n var u = a * c,\n d = a * h,\n f = o * c,\n p = o * h;e[0] = s * c, e[4] = f * l - d, e[8] = u * l + p, e[1] = s * h, e[5] = p * l + u, e[9] = d * l - f, e[2] = -l, e[6] = o * s, e[10] = a * s;\n } else if (\"YZX\" === t.order) {\n var x = a * s,\n y = a * l,\n M = o * s,\n E = o * l;e[0] = s * c, e[4] = E - x * h, e[8] = M * h + y, e[1] = h, e[5] = a * c, e[9] = -o * c, e[2] = -l * c, e[6] = y * h + M, e[10] = x - E * h;\n } else if (\"XZY\" === t.order) {\n var x = a * s,\n y = a * l,\n M = o * s,\n E = o * l;e[0] = s * c, e[4] = -h, e[8] = l * c, e[1] = x * h + E, e[5] = a * c, e[9] = y * h - M, e[2] = M * h - y, e[6] = o * c, e[10] = E * h + x;\n }return e[3] = 0, e[7] = 0, e[11] = 0, e[12] = 0, e[13] = 0, e[14] = 0, e[15] = 1, this;\n }, makeRotationFromQuaternion: function makeRotationFromQuaternion(t) {\n var e = this.elements,\n i = t._x,\n n = t._y,\n r = t._z,\n a = t._w,\n o = i + i,\n s = n + n,\n l = r + r,\n c = i * o,\n h = i * s,\n u = i * l,\n d = n * s,\n f = n * l,\n p = r * l,\n m = a * o,\n g = a * s,\n v = a * l;return e[0] = 1 - (d + p), e[4] = h - v, e[8] = u + g, e[1] = h + v, e[5] = 1 - (c + p), e[9] = f - m, e[2] = u - g, e[6] = f + m, e[10] = 1 - (c + d), e[3] = 0, e[7] = 0, e[11] = 0, e[12] = 0, e[13] = 0, e[14] = 0, e[15] = 1, this;\n }, lookAt: function () {\n var t, e, n;return function (r, a, o) {\n void 0 === t && (t = new i(), e = new i(), n = new i());var s = this.elements;return n.subVectors(r, a), 0 === n.lengthSq() && (n.z = 1), n.normalize(), t.crossVectors(o, n), 0 === t.lengthSq() && (n.z += 1e-4, t.crossVectors(o, n)), t.normalize(), e.crossVectors(n, t), s[0] = t.x, s[4] = e.x, s[8] = n.x, s[1] = t.y, s[5] = e.y, s[9] = n.y, s[2] = t.z, s[6] = e.z, s[10] = n.z, this;\n };\n }(), multiply: function multiply(t, e) {\n return void 0 !== e ? (console.warn(\"THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead.\"), this.multiplyMatrices(t, e)) : this.multiplyMatrices(this, t);\n }, premultiply: function premultiply(t) {\n return this.multiplyMatrices(t, this);\n }, multiplyMatrices: function multiplyMatrices(t, e) {\n var i = t.elements,\n n = e.elements,\n r = this.elements,\n a = i[0],\n o = i[4],\n s = i[8],\n l = i[12],\n c = i[1],\n h = i[5],\n u = i[9],\n d = i[13],\n f = i[2],\n p = i[6],\n m = i[10],\n g = i[14],\n v = i[3],\n _ = i[7],\n x = i[11],\n y = i[15],\n M = n[0],\n E = n[4],\n b = n[8],\n w = n[12],\n T = n[1],\n S = n[5],\n L = n[9],\n A = n[13],\n R = n[2],\n P = n[6],\n C = n[10],\n U = n[14],\n N = n[3],\n D = n[7],\n I = n[11],\n F = n[15];return r[0] = a * M + o * T + s * R + l * N, r[4] = a * E + o * S + s * P + l * D, r[8] = a * b + o * L + s * C + l * I, r[12] = a * w + o * A + s * U + l * F, r[1] = c * M + h * T + u * R + d * N, r[5] = c * E + h * S + u * P + d * D, r[9] = c * b + h * L + u * C + d * I, r[13] = c * w + h * A + u * U + d * F, r[2] = f * M + p * T + m * R + g * N, r[6] = f * E + p * S + m * P + g * D, r[10] = f * b + p * L + m * C + g * I, r[14] = f * w + p * A + m * U + g * F, r[3] = v * M + _ * T + x * R + y * N, r[7] = v * E + _ * S + x * P + y * D, r[11] = v * b + _ * L + x * C + y * I, r[15] = v * w + _ * A + x * U + y * F, this;\n }, multiplyScalar: function multiplyScalar(t) {\n var e = this.elements;return e[0] *= t, e[4] *= t, e[8] *= t, e[12] *= t, e[1] *= t, e[5] *= t, e[9] *= t, e[13] *= t, e[2] *= t, e[6] *= t, e[10] *= t, e[14] *= t, e[3] *= t, e[7] *= t, e[11] *= t, e[15] *= t, this;\n }, applyToBufferAttribute: function () {\n var t;return function (e) {\n void 0 === t && (t = new i());for (var n = 0, r = e.count; n < r; n++) {\n t.x = e.getX(n), t.y = e.getY(n), t.z = e.getZ(n), t.applyMatrix4(this), e.setXYZ(n, t.x, t.y, t.z);\n }return e;\n };\n }(), determinant: function determinant() {\n var t = this.elements,\n e = t[0],\n i = t[4],\n n = t[8],\n r = t[12],\n a = t[1],\n o = t[5],\n s = t[9],\n l = t[13],\n c = t[2],\n h = t[6],\n u = t[10],\n d = t[14];return t[3] * (+r * s * h - n * l * h - r * o * u + i * l * u + n * o * d - i * s * d) + t[7] * (+e * s * d - e * l * u + r * a * u - n * a * d + n * l * c - r * s * c) + t[11] * (+e * l * h - e * o * d - r * a * h + i * a * d + r * o * c - i * l * c) + t[15] * (-n * o * c - e * s * h + e * o * u + n * a * h - i * a * u + i * s * c);\n }, transpose: function transpose() {\n var t,\n e = this.elements;return t = e[1], e[1] = e[4], e[4] = t, t = e[2], e[2] = e[8], e[8] = t, t = e[6], e[6] = e[9], e[9] = t, t = e[3], e[3] = e[12], e[12] = t, t = e[7], e[7] = e[13], e[13] = t, t = e[11], e[11] = e[14], e[14] = t, this;\n }, setPosition: function setPosition(t) {\n var e = this.elements;return e[12] = t.x, e[13] = t.y, e[14] = t.z, this;\n }, getInverse: function getInverse(t, e) {\n var i = this.elements,\n n = t.elements,\n r = n[0],\n a = n[1],\n o = n[2],\n s = n[3],\n l = n[4],\n c = n[5],\n h = n[6],\n u = n[7],\n d = n[8],\n f = n[9],\n p = n[10],\n m = n[11],\n g = n[12],\n v = n[13],\n _ = n[14],\n x = n[15],\n y = f * _ * u - v * p * u + v * h * m - c * _ * m - f * h * x + c * p * x,\n M = g * p * u - d * _ * u - g * h * m + l * _ * m + d * h * x - l * p * x,\n E = d * v * u - g * f * u + g * c * m - l * v * m - d * c * x + l * f * x,\n b = g * f * h - d * v * h - g * c * p + l * v * p + d * c * _ - l * f * _,\n w = r * y + a * M + o * E + s * b;if (0 === w) {\n var T = \"THREE.Matrix4.getInverse(): can't invert matrix, determinant is 0\";if (!0 === e) throw new Error(T);return console.warn(T), this.identity();\n }var S = 1 / w;return i[0] = y * S, i[1] = (v * p * s - f * _ * s - v * o * m + a * _ * m + f * o * x - a * p * x) * S, i[2] = (c * _ * s - v * h * s + v * o * u - a * _ * u - c * o * x + a * h * x) * S, i[3] = (f * h * s - c * p * s - f * o * u + a * p * u + c * o * m - a * h * m) * S, i[4] = M * S, i[5] = (d * _ * s - g * p * s + g * o * m - r * _ * m - d * o * x + r * p * x) * S, i[6] = (g * h * s - l * _ * s - g * o * u + r * _ * u + l * o * x - r * h * x) * S, i[7] = (l * p * s - d * h * s + d * o * u - r * p * u - l * o * m + r * h * m) * S, i[8] = E * S, i[9] = (g * f * s - d * v * s - g * a * m + r * v * m + d * a * x - r * f * x) * S, i[10] = (l * v * s - g * c * s + g * a * u - r * v * u - l * a * x + r * c * x) * S, i[11] = (d * c * s - l * f * s - d * a * u + r * f * u + l * a * m - r * c * m) * S, i[12] = b * S, i[13] = (d * v * o - g * f * o + g * a * p - r * v * p - d * a * _ + r * f * _) * S, i[14] = (g * c * o - l * v * o - g * a * h + r * v * h + l * a * _ - r * c * _) * S, i[15] = (l * f * o - d * c * o + d * a * h - r * f * h - l * a * p + r * c * p) * S, this;\n }, scale: function scale(t) {\n var e = this.elements,\n i = t.x,\n n = t.y,\n r = t.z;return e[0] *= i, e[4] *= n, e[8] *= r, e[1] *= i, e[5] *= n, e[9] *= r, e[2] *= i, e[6] *= n, e[10] *= r, e[3] *= i, e[7] *= n, e[11] *= r, this;\n }, getMaxScaleOnAxis: function getMaxScaleOnAxis() {\n var t = this.elements,\n e = t[0] * t[0] + t[1] * t[1] + t[2] * t[2],\n i = t[4] * t[4] + t[5] * t[5] + t[6] * t[6],\n n = t[8] * t[8] + t[9] * t[9] + t[10] * t[10];return Math.sqrt(Math.max(e, i, n));\n }, makeTranslation: function makeTranslation(t, e, i) {\n return this.set(1, 0, 0, t, 0, 1, 0, e, 0, 0, 1, i, 0, 0, 0, 1), this;\n }, makeRotationX: function makeRotationX(t) {\n var e = Math.cos(t),\n i = Math.sin(t);return this.set(1, 0, 0, 0, 0, e, -i, 0, 0, i, e, 0, 0, 0, 0, 1), this;\n }, makeRotationY: function makeRotationY(t) {\n var e = Math.cos(t),\n i = Math.sin(t);return this.set(e, 0, i, 0, 0, 1, 0, 0, -i, 0, e, 0, 0, 0, 0, 1), this;\n }, makeRotationZ: function makeRotationZ(t) {\n var e = Math.cos(t),\n i = Math.sin(t);return this.set(e, -i, 0, 0, i, e, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1), this;\n }, makeRotationAxis: function makeRotationAxis(t, e) {\n var i = Math.cos(e),\n n = Math.sin(e),\n r = 1 - i,\n a = t.x,\n o = t.y,\n s = t.z,\n l = r * a,\n c = r * o;return this.set(l * a + i, l * o - n * s, l * s + n * o, 0, l * o + n * s, c * o + i, c * s - n * a, 0, l * s - n * o, c * s + n * a, r * s * s + i, 0, 0, 0, 0, 1), this;\n }, makeScale: function makeScale(t, e, i) {\n return this.set(t, 0, 0, 0, 0, e, 0, 0, 0, 0, i, 0, 0, 0, 0, 1), this;\n }, makeShear: function makeShear(t, e, i) {\n return this.set(1, e, i, 0, t, 1, i, 0, t, e, 1, 0, 0, 0, 0, 1), this;\n }, compose: function compose(t, e, i) {\n return this.makeRotationFromQuaternion(e), this.scale(i), this.setPosition(t), this;\n }, decompose: function () {\n var t, e;return function (r, a, o) {\n void 0 === t && (t = new i(), e = new n());var s = this.elements,\n l = t.set(s[0], s[1], s[2]).length(),\n c = t.set(s[4], s[5], s[6]).length(),\n h = t.set(s[8], s[9], s[10]).length();this.determinant() < 0 && (l = -l), r.x = s[12], r.y = s[13], r.z = s[14], e.copy(this);var u = 1 / l,\n d = 1 / c,\n f = 1 / h;return e.elements[0] *= u, e.elements[1] *= u, e.elements[2] *= u, e.elements[4] *= d, e.elements[5] *= d, e.elements[6] *= d, e.elements[8] *= f, e.elements[9] *= f, e.elements[10] *= f, a.setFromRotationMatrix(e), o.x = l, o.y = c, o.z = h, this;\n };\n }(), makePerspective: function makePerspective(t, e, i, n, r, a) {\n void 0 === a && console.warn(\"THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.\");var o = this.elements,\n s = 2 * r / (e - t),\n l = 2 * r / (i - n),\n c = (e + t) / (e - t),\n h = (i + n) / (i - n),\n u = -(a + r) / (a - r),\n d = -2 * a * r / (a - r);return o[0] = s, o[4] = 0, o[8] = c, o[12] = 0, o[1] = 0, o[5] = l, o[9] = h, o[13] = 0, o[2] = 0, o[6] = 0, o[10] = u, o[14] = d, o[3] = 0, o[7] = 0, o[11] = -1, o[15] = 0, this;\n }, makeOrthographic: function makeOrthographic(t, e, i, n, r, a) {\n var o = this.elements,\n s = 1 / (e - t),\n l = 1 / (i - n),\n c = 1 / (a - r),\n h = (e + t) * s,\n u = (i + n) * l,\n d = (a + r) * c;return o[0] = 2 * s, o[4] = 0, o[8] = 0, o[12] = -h, o[1] = 0, o[5] = 2 * l, o[9] = 0, o[13] = -u, o[2] = 0, o[6] = 0, o[10] = -2 * c, o[14] = -d, o[3] = 0, o[7] = 0, o[11] = 0, o[15] = 1, this;\n }, equals: function equals(t) {\n for (var e = this.elements, i = t.elements, n = 0; n < 16; n++) {\n if (e[n] !== i[n]) return !1;\n }return !0;\n }, fromArray: function fromArray(t, e) {\n void 0 === e && (e = 0);for (var i = 0; i < 16; i++) {\n this.elements[i] = t[i + e];\n }return this;\n }, toArray: function toArray(t, e) {\n void 0 === t && (t = []), void 0 === e && (e = 0);var i = this.elements;return t[e] = i[0], t[e + 1] = i[1], t[e + 2] = i[2], t[e + 3] = i[3], t[e + 4] = i[4], t[e + 5] = i[5], t[e + 6] = i[6], t[e + 7] = i[7], t[e + 8] = i[8], t[e + 9] = i[9], t[e + 10] = i[10], t[e + 11] = i[11], t[e + 12] = i[12], t[e + 13] = i[13], t[e + 14] = i[14], t[e + 15] = i[15], t;\n } }), _extends(r.prototype, { addEventListener: function addEventListener(t, e) {\n void 0 === this._listeners && (this._listeners = {});var i = this._listeners;void 0 === i[t] && (i[t] = []), -1 === i[t].indexOf(e) && i[t].push(e);\n }, hasEventListener: function hasEventListener(t, e) {\n if (void 0 === this._listeners) return !1;var i = this._listeners;return void 0 !== i[t] && -1 !== i[t].indexOf(e);\n }, removeEventListener: function removeEventListener(t, e) {\n if (void 0 !== this._listeners) {\n var i = this._listeners,\n n = i[t];if (void 0 !== n) {\n var r = n.indexOf(e);-1 !== r && n.splice(r, 1);\n }\n }\n }, dispatchEvent: function dispatchEvent(t) {\n if (void 0 !== this._listeners) {\n var e = this._listeners,\n i = e[t.type];if (void 0 !== i) {\n t.target = this;var n = [],\n r = 0,\n a = i.length;for (r = 0; r < a; r++) {\n n[r] = i[r];\n }for (r = 0; r < a; r++) {\n n[r].call(this, t);\n }\n }\n }\n } }), Object.defineProperties(a.prototype, { width: { get: function get() {\n return this.x;\n }, set: function set(t) {\n this.x = t;\n } }, height: { get: function get() {\n return this.y;\n }, set: function set(t) {\n this.y = t;\n } } }), _extends(a.prototype, { isVector2: !0, set: function set(t, e) {\n return this.x = t, this.y = e, this;\n }, setScalar: function setScalar(t) {\n return this.x = t, this.y = t, this;\n }, setX: function setX(t) {\n return this.x = t, this;\n }, setY: function setY(t) {\n return this.y = t, this;\n }, setComponent: function setComponent(t, e) {\n switch (t) {case 0:\n this.x = e;break;case 1:\n this.y = e;break;default:\n throw new Error(\"index is out of range: \" + t);}return this;\n }, getComponent: function getComponent(t) {\n switch (t) {case 0:\n return this.x;case 1:\n return this.y;default:\n throw new Error(\"index is out of range: \" + t);}\n }, clone: function clone() {\n return new this.constructor(this.x, this.y);\n }, copy: function copy(t) {\n return this.x = t.x, this.y = t.y, this;\n }, add: function add(t, e) {\n return void 0 !== e ? (console.warn(\"THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead.\"), this.addVectors(t, e)) : (this.x += t.x, this.y += t.y, this);\n }, addScalar: function addScalar(t) {\n return this.x += t, this.y += t, this;\n }, addVectors: function addVectors(t, e) {\n return this.x = t.x + e.x, this.y = t.y + e.y, this;\n }, addScaledVector: function addScaledVector(t, e) {\n return this.x += t.x * e, this.y += t.y * e, this;\n }, sub: function sub(t, e) {\n return void 0 !== e ? (console.warn(\"THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.\"), this.subVectors(t, e)) : (this.x -= t.x, this.y -= t.y, this);\n }, subScalar: function subScalar(t) {\n return this.x -= t, this.y -= t, this;\n }, subVectors: function subVectors(t, e) {\n return this.x = t.x - e.x, this.y = t.y - e.y, this;\n }, multiply: function multiply(t) {\n return this.x *= t.x, this.y *= t.y, this;\n }, multiplyScalar: function multiplyScalar(t) {\n return this.x *= t, this.y *= t, this;\n }, divide: function divide(t) {\n return this.x /= t.x, this.y /= t.y, this;\n }, divideScalar: function divideScalar(t) {\n return this.multiplyScalar(1 / t);\n }, min: function min(t) {\n return this.x = Math.min(this.x, t.x), this.y = Math.min(this.y, t.y), this;\n }, max: function max(t) {\n return this.x = Math.max(this.x, t.x), this.y = Math.max(this.y, t.y), this;\n }, clamp: function clamp(t, e) {\n return this.x = Math.max(t.x, Math.min(e.x, this.x)), this.y = Math.max(t.y, Math.min(e.y, this.y)), this;\n }, clampScalar: function () {\n var t, e;return function (i, n) {\n return void 0 === t && (t = new a(), e = new a()), t.set(i, i), e.set(n, n), this.clamp(t, e);\n };\n }(), clampLength: function clampLength(t, e) {\n var i = this.length();return this.multiplyScalar(Math.max(t, Math.min(e, i)) / i);\n }, floor: function floor() {\n return this.x = Math.floor(this.x), this.y = Math.floor(this.y), this;\n }, ceil: function ceil() {\n return this.x = Math.ceil(this.x), this.y = Math.ceil(this.y), this;\n }, round: function round() {\n return this.x = Math.round(this.x), this.y = Math.round(this.y), this;\n }, roundToZero: function roundToZero() {\n return this.x = this.x < 0 ? Math.ceil(this.x) : Math.floor(this.x), this.y = this.y < 0 ? Math.ceil(this.y) : Math.floor(this.y), this;\n }, negate: function negate() {\n return this.x = -this.x, this.y = -this.y, this;\n }, dot: function dot(t) {\n return this.x * t.x + this.y * t.y;\n }, lengthSq: function lengthSq() {\n return this.x * this.x + this.y * this.y;\n }, length: function length() {\n return Math.sqrt(this.x * this.x + this.y * this.y);\n }, lengthManhattan: function lengthManhattan() {\n return Math.abs(this.x) + Math.abs(this.y);\n }, normalize: function normalize() {\n return this.divideScalar(this.length());\n }, angle: function angle() {\n var t = Math.atan2(this.y, this.x);return t < 0 && (t += 2 * Math.PI), t;\n }, distanceTo: function distanceTo(t) {\n return Math.sqrt(this.distanceToSquared(t));\n }, distanceToSquared: function distanceToSquared(t) {\n var e = this.x - t.x,\n i = this.y - t.y;return e * e + i * i;\n }, distanceToManhattan: function distanceToManhattan(t) {\n return Math.abs(this.x - t.x) + Math.abs(this.y - t.y);\n }, setLength: function setLength(t) {\n return this.multiplyScalar(t / this.length());\n }, lerp: function lerp(t, e) {\n return this.x += (t.x - this.x) * e, this.y += (t.y - this.y) * e, this;\n }, lerpVectors: function lerpVectors(t, e, i) {\n return this.subVectors(e, t).multiplyScalar(i).add(t);\n }, equals: function equals(t) {\n return t.x === this.x && t.y === this.y;\n }, fromArray: function fromArray(t, e) {\n return void 0 === e && (e = 0), this.x = t[e], this.y = t[e + 1], this;\n }, toArray: function toArray(t, e) {\n return void 0 === t && (t = []), void 0 === e && (e = 0), t[e] = this.x, t[e + 1] = this.y, t;\n }, fromBufferAttribute: function fromBufferAttribute(t, e, i) {\n return void 0 !== i && console.warn(\"THREE.Vector2: offset has been removed from .fromBufferAttribute().\"), this.x = t.getX(e), this.y = t.getY(e), this;\n }, rotateAround: function rotateAround(t, e) {\n var i = Math.cos(e),\n n = Math.sin(e),\n r = this.x - t.x,\n a = this.y - t.y;return this.x = r * i - a * n + t.x, this.y = r * n + a * i + t.y, this;\n } });var gn = 0;o.DEFAULT_IMAGE = void 0, o.DEFAULT_MAPPING = 300, Object.defineProperty(o.prototype, \"needsUpdate\", { set: function set(t) {\n !0 === t && this.version++;\n } }), _extends(o.prototype, r.prototype, { constructor: o, isTexture: !0, clone: function clone() {\n return new this.constructor().copy(this);\n }, copy: function copy(t) {\n return this.name = t.name, this.image = t.image, this.mipmaps = t.mipmaps.slice(0), this.mapping = t.mapping, this.wrapS = t.wrapS, this.wrapT = t.wrapT, this.magFilter = t.magFilter, this.minFilter = t.minFilter, this.anisotropy = t.anisotropy, this.format = t.format, this.type = t.type, this.offset.copy(t.offset), this.repeat.copy(t.repeat), this.generateMipmaps = t.generateMipmaps, this.premultiplyAlpha = t.premultiplyAlpha, this.flipY = t.flipY, this.unpackAlignment = t.unpackAlignment, this.encoding = t.encoding, this;\n }, toJSON: function toJSON(t) {\n if (void 0 !== t.textures[this.uuid]) return t.textures[this.uuid];var e = { 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], wrap: [this.wrapS, this.wrapT], minFilter: this.minFilter, magFilter: this.magFilter, anisotropy: this.anisotropy, flipY: this.flipY };if (void 0 !== this.image) {\n var i = this.image;void 0 === i.uuid && (i.uuid = mn.generateUUID()), void 0 === t.images[i.uuid] && (t.images[i.uuid] = { uuid: i.uuid, url: function (t) {\n var e;return void 0 !== t.toDataURL ? e = t : (e = document.createElementNS(\"http://www.w3.org/1999/xhtml\", \"canvas\"), e.width = t.width, e.height = t.height, e.getContext(\"2d\").drawImage(t, 0, 0, t.width, t.height)), e.width > 2048 || e.height > 2048 ? e.toDataURL(\"image/jpeg\", .6) : e.toDataURL(\"image/png\");\n }(i) }), e.image = i.uuid;\n }return t.textures[this.uuid] = e, e;\n }, dispose: function dispose() {\n this.dispatchEvent({ type: \"dispose\" });\n }, transformUv: function transformUv(t) {\n if (300 === this.mapping) {\n if (t.multiply(this.repeat), t.add(this.offset), t.x < 0 || t.x > 1) switch (this.wrapS) {case xi:\n t.x = t.x - Math.floor(t.x);break;case yi:\n t.x = t.x < 0 ? 0 : 1;break;case Mi:\n 1 === Math.abs(Math.floor(t.x) % 2) ? t.x = Math.ceil(t.x) - t.x : t.x = t.x - Math.floor(t.x);}if (t.y < 0 || t.y > 1) switch (this.wrapT) {case xi:\n t.y = t.y - Math.floor(t.y);break;case yi:\n t.y = t.y < 0 ? 0 : 1;break;case Mi:\n 1 === Math.abs(Math.floor(t.y) % 2) ? t.y = Math.ceil(t.y) - t.y : t.y = t.y - Math.floor(t.y);}this.flipY && (t.y = 1 - t.y);\n }\n } }), s.prototype = Object.create(o.prototype), s.prototype.constructor = s, s.prototype.isDataTexture = !0, l.prototype = Object.create(o.prototype), l.prototype.constructor = l, l.prototype.isCubeTexture = !0, Object.defineProperty(l.prototype, \"images\", { get: function get() {\n return this.image;\n }, set: function set(t) {\n this.image = t;\n } });var vn = new o(),\n _n = new l(),\n xn = [],\n yn = [],\n Mn = new Float32Array(16),\n En = new Float32Array(9);B.prototype.setValue = function (t, e) {\n for (var i = this.seq, n = 0, r = i.length; n !== r; ++n) {\n var a = i[n];a.setValue(t, e[a.id]);\n }\n };var bn = /([\\w\\d_]+)(\\])?(\\[|\\.)?/g;H.prototype.setValue = function (t, e, i) {\n var n = this.map[e];void 0 !== n && n.setValue(t, i, this.renderer);\n }, H.prototype.setOptional = function (t, e, i) {\n var n = e[i];void 0 !== n && this.setValue(t, i, n);\n }, H.upload = function (t, e, i, n) {\n for (var r = 0, a = e.length; r !== a; ++r) {\n var o = e[r],\n s = i[o.id];!1 !== s.needsUpdate && o.setValue(t, s.value, n);\n }\n }, H.seqWithValue = function (t, e) {\n for (var i = [], n = 0, r = t.length; n !== r; ++n) {\n var a = t[n];a.id in e && i.push(a);\n }return i;\n }, _extends(k.prototype, { isVector4: !0, set: function set(t, e, i, n) {\n return this.x = t, this.y = e, this.z = i, this.w = n, this;\n }, setScalar: function setScalar(t) {\n return this.x = t, this.y = t, this.z = t, this.w = t, this;\n }, setX: function setX(t) {\n return this.x = t, this;\n }, setY: function setY(t) {\n return this.y = t, this;\n }, setZ: function setZ(t) {\n return this.z = t, this;\n }, setW: function setW(t) {\n return this.w = t, this;\n }, setComponent: function setComponent(t, e) {\n switch (t) {case 0:\n this.x = e;break;case 1:\n this.y = e;break;case 2:\n this.z = e;break;case 3:\n this.w = e;break;default:\n throw new Error(\"index is out of range: \" + t);}return this;\n }, getComponent: function getComponent(t) {\n switch (t) {case 0:\n return this.x;case 1:\n return this.y;case 2:\n return this.z;case 3:\n return this.w;default:\n throw new Error(\"index is out of range: \" + t);}\n }, clone: function clone() {\n return new this.constructor(this.x, this.y, this.z, this.w);\n }, copy: function copy(t) {\n return this.x = t.x, this.y = t.y, this.z = t.z, this.w = void 0 !== t.w ? t.w : 1, this;\n }, add: function add(t, e) {\n return void 0 !== e ? (console.warn(\"THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead.\"), this.addVectors(t, e)) : (this.x += t.x, this.y += t.y, this.z += t.z, this.w += t.w, this);\n }, addScalar: function addScalar(t) {\n return this.x += t, this.y += t, this.z += t, this.w += t, this;\n }, addVectors: function addVectors(t, e) {\n return this.x = t.x + e.x, this.y = t.y + e.y, this.z = t.z + e.z, this.w = t.w + e.w, this;\n }, addScaledVector: function addScaledVector(t, e) {\n return this.x += t.x * e, this.y += t.y * e, this.z += t.z * e, this.w += t.w * e, this;\n }, sub: function sub(t, e) {\n return void 0 !== e ? (console.warn(\"THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.\"), this.subVectors(t, e)) : (this.x -= t.x, this.y -= t.y, this.z -= t.z, this.w -= t.w, this);\n }, subScalar: function subScalar(t) {\n return this.x -= t, this.y -= t, this.z -= t, this.w -= t, this;\n }, subVectors: function subVectors(t, e) {\n return this.x = t.x - e.x, this.y = t.y - e.y, this.z = t.z - e.z, this.w = t.w - e.w, this;\n }, multiplyScalar: function multiplyScalar(t) {\n return this.x *= t, this.y *= t, this.z *= t, this.w *= t, this;\n }, applyMatrix4: function applyMatrix4(t) {\n var e = this.x,\n i = this.y,\n n = this.z,\n r = this.w,\n a = t.elements;return this.x = a[0] * e + a[4] * i + a[8] * n + a[12] * r, this.y = a[1] * e + a[5] * i + a[9] * n + a[13] * r, this.z = a[2] * e + a[6] * i + a[10] * n + a[14] * r, this.w = a[3] * e + a[7] * i + a[11] * n + a[15] * r, this;\n }, divideScalar: function divideScalar(t) {\n return this.multiplyScalar(1 / t);\n }, setAxisAngleFromQuaternion: function setAxisAngleFromQuaternion(t) {\n this.w = 2 * Math.acos(t.w);var e = Math.sqrt(1 - t.w * t.w);return e < 1e-4 ? (this.x = 1, this.y = 0, this.z = 0) : (this.x = t.x / e, this.y = t.y / e, this.z = t.z / e), this;\n }, setAxisAngleFromRotationMatrix: function setAxisAngleFromRotationMatrix(t) {\n var e,\n i,\n n,\n r,\n a = t.elements,\n o = a[0],\n s = a[4],\n l = a[8],\n c = a[1],\n h = a[5],\n u = a[9],\n d = a[2],\n f = a[6],\n p = a[10];if (Math.abs(s - c) < .01 && Math.abs(l - d) < .01 && Math.abs(u - f) < .01) {\n if (Math.abs(s + c) < .1 && Math.abs(l + d) < .1 && Math.abs(u + f) < .1 && Math.abs(o + h + p - 3) < .1) return this.set(1, 0, 0, 0), this;e = Math.PI;var m = (o + 1) / 2,\n g = (h + 1) / 2,\n v = (p + 1) / 2,\n _ = (s + c) / 4,\n x = (l + d) / 4,\n y = (u + f) / 4;return m > g && m > v ? m < .01 ? (i = 0, n = .707106781, r = .707106781) : (i = Math.sqrt(m), n = _ / i, r = x / i) : g > v ? g < .01 ? (i = .707106781, n = 0, r = .707106781) : (n = Math.sqrt(g), i = _ / n, r = y / n) : v < .01 ? (i = .707106781, n = .707106781, r = 0) : (r = Math.sqrt(v), i = x / r, n = y / r), this.set(i, n, r, e), this;\n }var M = Math.sqrt((f - u) * (f - u) + (l - d) * (l - d) + (c - s) * (c - s));return Math.abs(M) < .001 && (M = 1), this.x = (f - u) / M, this.y = (l - d) / M, this.z = (c - s) / M, this.w = Math.acos((o + h + p - 1) / 2), this;\n }, min: function min(t) {\n return this.x = Math.min(this.x, t.x), this.y = Math.min(this.y, t.y), this.z = Math.min(this.z, t.z), this.w = Math.min(this.w, t.w), this;\n }, max: function max(t) {\n return this.x = Math.max(this.x, t.x), this.y = Math.max(this.y, t.y), this.z = Math.max(this.z, t.z), this.w = Math.max(this.w, t.w), this;\n }, clamp: function clamp(t, e) {\n return this.x = Math.max(t.x, Math.min(e.x, this.x)), this.y = Math.max(t.y, Math.min(e.y, this.y)), this.z = Math.max(t.z, Math.min(e.z, this.z)), this.w = Math.max(t.w, Math.min(e.w, this.w)), this;\n }, clampScalar: function () {\n var t = new k(),\n e = new k();return function (i, n) {\n return t.set(i, i, i, i), e.set(n, n, n, n), this.clamp(t, e);\n };\n }(), floor: function floor() {\n return this.x = Math.floor(this.x), this.y = Math.floor(this.y), this.z = Math.floor(this.z), this.w = Math.floor(this.w), this;\n }, ceil: function ceil() {\n return this.x = Math.ceil(this.x), this.y = Math.ceil(this.y), this.z = Math.ceil(this.z), this.w = Math.ceil(this.w), this;\n }, round: function round() {\n return this.x = Math.round(this.x), this.y = Math.round(this.y), this.z = Math.round(this.z), this.w = Math.round(this.w), this;\n }, roundToZero: function roundToZero() {\n return this.x = this.x < 0 ? Math.ceil(this.x) : Math.floor(this.x), this.y = this.y < 0 ? Math.ceil(this.y) : Math.floor(this.y), this.z = this.z < 0 ? Math.ceil(this.z) : Math.floor(this.z), this.w = this.w < 0 ? Math.ceil(this.w) : Math.floor(this.w), this;\n }, negate: function negate() {\n return this.x = -this.x, this.y = -this.y, this.z = -this.z, this.w = -this.w, this;\n }, dot: function dot(t) {\n return this.x * t.x + this.y * t.y + this.z * t.z + this.w * t.w;\n }, lengthSq: function lengthSq() {\n return this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w;\n }, length: function length() {\n return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w);\n }, lengthManhattan: function lengthManhattan() {\n return Math.abs(this.x) + Math.abs(this.y) + Math.abs(this.z) + Math.abs(this.w);\n }, normalize: function normalize() {\n return this.divideScalar(this.length());\n }, setLength: function setLength(t) {\n return this.multiplyScalar(t / this.length());\n }, lerp: function lerp(t, e) {\n return this.x += (t.x - this.x) * e, this.y += (t.y - this.y) * e, this.z += (t.z - this.z) * e, this.w += (t.w - this.w) * e, this;\n }, lerpVectors: function lerpVectors(t, e, i) {\n return this.subVectors(e, t).multiplyScalar(i).add(t);\n }, equals: function equals(t) {\n return t.x === this.x && t.y === this.y && t.z === this.z && t.w === this.w;\n }, fromArray: function fromArray(t, e) {\n return void 0 === e && (e = 0), this.x = t[e], this.y = t[e + 1], this.z = t[e + 2], this.w = t[e + 3], this;\n }, toArray: function toArray(t, e) {\n return void 0 === t && (t = []), void 0 === e && (e = 0), t[e] = this.x, t[e + 1] = this.y, t[e + 2] = this.z, t[e + 3] = this.w, t;\n }, fromBufferAttribute: function fromBufferAttribute(t, e, i) {\n return void 0 !== i && console.warn(\"THREE.Vector4: offset has been removed from .fromBufferAttribute().\"), this.x = t.getX(e), this.y = t.getY(e), this.z = t.getZ(e), this.w = t.getW(e), this;\n } });var wn = { 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, 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 };_extends(W.prototype, { isColor: !0, r: 1, g: 1, b: 1, set: function set(t) {\n return t && t.isColor ? this.copy(t) : \"number\" == typeof t ? this.setHex(t) : \"string\" == typeof t && this.setStyle(t), this;\n }, setScalar: function setScalar(t) {\n return this.r = t, this.g = t, this.b = t, this;\n }, setHex: function setHex(t) {\n return t = Math.floor(t), this.r = (t >> 16 & 255) / 255, this.g = (t >> 8 & 255) / 255, this.b = (255 & t) / 255, this;\n }, setRGB: function setRGB(t, e, i) {\n return this.r = t, this.g = e, this.b = i, this;\n }, setHSL: function () {\n function t(t, e, i) {\n return i < 0 && (i += 1), i > 1 && (i -= 1), i < 1 / 6 ? t + 6 * (e - t) * i : i < .5 ? e : i < 2 / 3 ? t + 6 * (e - t) * (2 / 3 - i) : t;\n }return function (e, i, n) {\n if (e = mn.euclideanModulo(e, 1), i = mn.clamp(i, 0, 1), n = mn.clamp(n, 0, 1), 0 === i) this.r = this.g = this.b = n;else {\n var r = n <= .5 ? n * (1 + i) : n + i - n * i,\n a = 2 * n - r;this.r = t(a, r, e + 1 / 3), this.g = t(a, r, e), this.b = t(a, r, e - 1 / 3);\n }return this;\n };\n }(), setStyle: function setStyle(t) {\n function e(e) {\n void 0 !== e && parseFloat(e) < 1 && console.warn(\"THREE.Color: Alpha component of \" + t + \" will be ignored.\");\n }var i;if (i = /^((?:rgb|hsl)a?)\\(\\s*([^\\)]*)\\)/.exec(t)) {\n var n,\n r = i[1],\n a = i[2];switch (r) {case \"rgb\":case \"rgba\":\n if (n = /^(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(,\\s*([0-9]*\\.?[0-9]+)\\s*)?$/.exec(a)) return this.r = Math.min(255, parseInt(n[1], 10)) / 255, this.g = Math.min(255, parseInt(n[2], 10)) / 255, this.b = Math.min(255, parseInt(n[3], 10)) / 255, e(n[5]), this;if (n = /^(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(,\\s*([0-9]*\\.?[0-9]+)\\s*)?$/.exec(a)) return this.r = Math.min(100, parseInt(n[1], 10)) / 100, this.g = Math.min(100, parseInt(n[2], 10)) / 100, this.b = Math.min(100, parseInt(n[3], 10)) / 100, e(n[5]), this;break;case \"hsl\":case \"hsla\":\n if (n = /^([0-9]*\\.?[0-9]+)\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(,\\s*([0-9]*\\.?[0-9]+)\\s*)?$/.exec(a)) {\n var o = parseFloat(n[1]) / 360,\n s = parseInt(n[2], 10) / 100,\n l = parseInt(n[3], 10) / 100;return e(n[5]), this.setHSL(o, s, l);\n }}\n } else if (i = /^\\#([A-Fa-f0-9]+)$/.exec(t)) {\n var c = i[1],\n h = c.length;if (3 === h) return this.r = parseInt(c.charAt(0) + c.charAt(0), 16) / 255, this.g = parseInt(c.charAt(1) + c.charAt(1), 16) / 255, this.b = parseInt(c.charAt(2) + c.charAt(2), 16) / 255, this;if (6 === h) return this.r = parseInt(c.charAt(0) + c.charAt(1), 16) / 255, this.g = parseInt(c.charAt(2) + c.charAt(3), 16) / 255, this.b = parseInt(c.charAt(4) + c.charAt(5), 16) / 255, this;\n }if (t && t.length > 0) {\n var c = wn[t];void 0 !== c ? this.setHex(c) : console.warn(\"THREE.Color: Unknown color \" + t);\n }return this;\n }, clone: function clone() {\n return new this.constructor(this.r, this.g, this.b);\n }, copy: function copy(t) {\n return this.r = t.r, this.g = t.g, this.b = t.b, this;\n }, copyGammaToLinear: function copyGammaToLinear(t, e) {\n return void 0 === e && (e = 2), this.r = Math.pow(t.r, e), this.g = Math.pow(t.g, e), this.b = Math.pow(t.b, e), this;\n }, copyLinearToGamma: function copyLinearToGamma(t, e) {\n void 0 === e && (e = 2);var i = e > 0 ? 1 / e : 1;return this.r = Math.pow(t.r, i), this.g = Math.pow(t.g, i), this.b = Math.pow(t.b, i), this;\n }, convertGammaToLinear: function convertGammaToLinear() {\n var t = this.r,\n e = this.g,\n i = this.b;return this.r = t * t, this.g = e * e, this.b = i * i, this;\n }, convertLinearToGamma: function convertLinearToGamma() {\n return this.r = Math.sqrt(this.r), this.g = Math.sqrt(this.g), this.b = Math.sqrt(this.b), this;\n }, getHex: function getHex() {\n return 255 * this.r << 16 ^ 255 * this.g << 8 ^ 255 * this.b << 0;\n }, getHexString: function getHexString() {\n return (\"000000\" + this.getHex().toString(16)).slice(-6);\n }, getHSL: function getHSL(t) {\n var e,\n i,\n n = t || { h: 0, s: 0, l: 0 },\n r = this.r,\n a = this.g,\n o = this.b,\n s = Math.max(r, a, o),\n l = Math.min(r, a, o),\n c = (l + s) / 2;if (l === s) e = 0, i = 0;else {\n var h = s - l;switch (i = c <= .5 ? h / (s + l) : h / (2 - s - l), s) {case r:\n e = (a - o) / h + (a < o ? 6 : 0);break;case a:\n e = (o - r) / h + 2;break;case o:\n e = (r - a) / h + 4;}e /= 6;\n }return n.h = e, n.s = i, n.l = c, n;\n }, getStyle: function getStyle() {\n return \"rgb(\" + (255 * this.r | 0) + \",\" + (255 * this.g | 0) + \",\" + (255 * this.b | 0) + \")\";\n }, offsetHSL: function offsetHSL(t, e, i) {\n var n = this.getHSL();return n.h += t, n.s += e, n.l += i, this.setHSL(n.h, n.s, n.l), this;\n }, add: function add(t) {\n return this.r += t.r, this.g += t.g, this.b += t.b, this;\n }, addColors: function addColors(t, e) {\n return this.r = t.r + e.r, this.g = t.g + e.g, this.b = t.b + e.b, this;\n }, addScalar: function addScalar(t) {\n return this.r += t, this.g += t, this.b += t, this;\n }, sub: function sub(t) {\n return this.r = Math.max(0, this.r - t.r), this.g = Math.max(0, this.g - t.g), this.b = Math.max(0, this.b - t.b), this;\n }, multiply: function multiply(t) {\n return this.r *= t.r, this.g *= t.g, this.b *= t.b, this;\n }, multiplyScalar: function multiplyScalar(t) {\n return this.r *= t, this.g *= t, this.b *= t, this;\n }, lerp: function lerp(t, e) {\n return this.r += (t.r - this.r) * e, this.g += (t.g - this.g) * e, this.b += (t.b - this.b) * e, this;\n }, equals: function equals(t) {\n return t.r === this.r && t.g === this.g && t.b === this.b;\n }, fromArray: function fromArray(t, e) {\n return void 0 === e && (e = 0), this.r = t[e], this.g = t[e + 1], this.b = t[e + 2], this;\n }, toArray: function toArray(t, e) {\n return void 0 === t && (t = []), void 0 === e && (e = 0), t[e] = this.r, t[e + 1] = this.g, t[e + 2] = this.b, t;\n }, toJSON: function toJSON() {\n return this.getHex();\n } });var Tn = { common: { diffuse: { value: new W(15658734) }, opacity: { value: 1 }, map: { value: null }, offsetRepeat: { value: new k(0, 0, 1, 1) }, specularMap: { value: null }, alphaMap: { value: null }, envMap: { value: null }, flipEnvMap: { value: -1 }, reflectivity: { value: 1 }, refractionRatio: { value: .98 } }, 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 a(1, 1) } }, displacementmap: { displacementMap: { value: null }, displacementScale: { value: 1 }, displacementBias: { value: 0 } }, roughnessmap: { roughnessMap: { value: null } }, metalnessmap: { metalnessMap: { value: null } }, gradientmap: { gradientMap: { value: null } }, fog: { fogDensity: { value: 25e-5 }, fogNear: { value: 1 }, fogFar: { value: 2e3 }, fogColor: { value: new W(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: {} } }, pointShadowMap: { value: [] }, pointShadowMatrix: { value: [] }, hemisphereLights: { value: [], properties: { direction: {}, skyColor: {}, groundColor: {} } }, rectAreaLights: { value: [], properties: { color: {}, position: {}, width: {}, height: {} } } }, points: { diffuse: { value: new W(15658734) }, opacity: { value: 1 }, size: { value: 1 }, scale: { value: 1 }, map: { value: null }, offsetRepeat: { value: new k(0, 0, 1, 1) } } },\n Sn = { merge: function merge(t) {\n for (var e = {}, i = 0; i < t.length; i++) {\n var n = this.clone(t[i]);for (var r in n) {\n e[r] = n[r];\n }\n }return e;\n }, clone: function clone(t) {\n var e = {};for (var i in t) {\n e[i] = {};for (var n in t[i]) {\n var r = t[i][n];r && (r.isColor || r.isMatrix3 || r.isMatrix4 || r.isVector2 || r.isVector3 || r.isVector4 || r.isTexture) ? e[i][n] = r.clone() : Array.isArray(r) ? e[i][n] = r.slice() : e[i][n] = r;\n }\n }return e;\n } },\n Ln = { alphamap_fragment: \"#ifdef USE_ALPHAMAP\\n\\tdiffuseColor.a *= 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 < ALPHATEST ) discard;\\n#endif\\n\", aomap_fragment: \"#ifdef USE_AOMAP\\n\\tfloat ambientOcclusion = ( texture2D( aoMap, vUv2 ).r - 1.0 ) * aoMapIntensity + 1.0;\\n\\treflectedLight.indirectDiffuse *= ambientOcclusion;\\n\\t#if defined( USE_ENVMAP ) && defined( PHYSICAL )\\n\\t\\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\\n\\t\\treflectedLight.indirectSpecular *= 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 = vec3( position );\\n\", beginnormal_vertex: \"\\nvec3 objectNormal = vec3( normal );\\n\", bsdfs: \"float punctualLightIntensityToIrradianceFactor( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\\n\\tif( decayExponent > 0.0 ) {\\n#if defined ( PHYSICALLY_CORRECT_LIGHTS )\\n\\t\\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\\n\\t\\tfloat maxDistanceCutoffFactor = 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 = 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 = pow2( alpha );\\n\\tfloat gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\\n\\tfloat gv = 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 = pow2( alpha );\\n\\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\\n\\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\\n\\treturn 0.5 / max( gv + gl, EPSILON );\\n}\\nfloat D_GGX( const in float alpha, const in float dotNH ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\\n\\treturn RECIPROCAL_PI * a2 / pow2( denom );\\n}\\nvec3 BRDF_Specular_GGX( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float roughness ) {\\n\\tfloat alpha = pow2( roughness );\\n\\tvec3 halfDir = normalize( incidentLight.direction + geometry.viewDir );\\n\\tfloat dotNL = saturate( dot( geometry.normal, incidentLight.direction ) );\\n\\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\\n\\tfloat dotNH = saturate( dot( geometry.normal, halfDir ) );\\n\\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\\n\\tvec3 F = F_Schlick( specularColor, dotLH );\\n\\tfloat G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );\\n\\tfloat D = 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 = 64.0;\\n\\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\\n\\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\\n\\tfloat theta = acos( dot( N, V ) );\\n\\tvec2 uv = vec2(\\n\\t\\tsqrt( saturate( roughness ) ),\\n\\t\\tsaturate( theta / ( 0.5 * PI ) ) );\\n\\tuv = uv * LUT_SCALE + LUT_BIAS;\\n\\treturn uv;\\n}\\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\\n\\tfloat l = length( f );\\n\\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\\n}\\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\\n\\tfloat x = dot( v1, v2 );\\n\\tfloat y = abs( x );\\n\\tfloat a = 0.86267 + (0.49788 + 0.01436 * y ) * y;\\n\\tfloat b = 3.45068 + (4.18814 + y) * y;\\n\\tfloat v = a / b;\\n\\tfloat theta_sintheta = (x > 0.0) ? v : 0.5 * inversesqrt( 1.0 - x * x ) - v;\\n\\treturn cross( v1, v2 ) * theta_sintheta;\\n}\\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\\n\\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\\n\\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\\n\\tvec3 lightNormal = cross( v1, v2 );\\n\\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\\n\\tvec3 T1, T2;\\n\\tT1 = normalize( V - N * dot( V, N ) );\\n\\tT2 = - cross( N, T1 );\\n\\tmat3 mat = mInv * transpose( mat3( T1, T2, N ) );\\n\\tvec3 coords[ 4 ];\\n\\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\\n\\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\\n\\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\\n\\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\\n\\tcoords[ 0 ] = normalize( coords[ 0 ] );\\n\\tcoords[ 1 ] = normalize( coords[ 1 ] );\\n\\tcoords[ 2 ] = normalize( coords[ 2 ] );\\n\\tcoords[ 3 ] = normalize( coords[ 3 ] );\\n\\tvec3 vectorFormFactor = vec3( 0.0 );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\\n\\tvec3 result = vec3( LTC_ClippedSphereFormFactor( vectorFormFactor ) );\\n\\treturn result;\\n}\\nvec3 BRDF_Specular_GGX_Environment( const in GeometricContext geometry, const in vec3 specularColor, const in float roughness ) {\\n\\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\\n\\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\\n\\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\\n\\tvec4 r = roughness * c0 + c1;\\n\\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\\n\\tvec2 AB = 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 = normalize( incidentLight.direction + geometry.viewDir );\\n\\tfloat dotNH = saturate( dot( geometry.normal, halfDir ) );\\n\\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\\n\\tvec3 F = F_Schlick( specularColor, dotLH );\\n\\tfloat G = G_BlinnPhong_Implicit( );\\n\\tfloat D = 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 = dFdx( vUv );\\n\\t\\tvec2 dSTdy = dFdy( vUv );\\n\\t\\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\\n\\t\\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\\n\\t\\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\\n\\t\\treturn vec2( dBx, dBy );\\n\\t}\\n\\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy ) {\\n\\t\\tvec3 vSigmaX = dFdx( surf_pos );\\n\\t\\tvec3 vSigmaY = dFdy( surf_pos );\\n\\t\\tvec3 vN = surf_norm;\\n\\t\\tvec3 R1 = cross( vSigmaY, vN );\\n\\t\\tvec3 R2 = cross( vN, vSigmaX );\\n\\t\\tfloat fDet = dot( vSigmaX, R1 );\\n\\t\\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\\n\\t\\treturn normalize( abs( fDet ) * surf_norm - vGrad );\\n\\t}\\n#endif\\n\", clipping_planes_fragment: \"#if NUM_CLIPPING_PLANES > 0\\n\\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; ++ i ) {\\n\\t\\tvec4 plane = clippingPlanes[ i ];\\n\\t\\tif ( dot( vViewPosition, plane.xyz ) > plane.w ) discard;\\n\\t}\\n\\t\\t\\n\\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\\n\\t\\tbool clipped = true;\\n\\t\\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; ++ i ) {\\n\\t\\t\\tvec4 plane = clippingPlanes[ i ];\\n\\t\\t\\tclipped = ( dot( vViewPosition, plane.xyz ) > plane.w ) && clipped;\\n\\t\\t}\\n\\t\\tif ( clipped ) discard;\\n\\t\\n\\t#endif\\n#endif\\n\", clipping_planes_pars_fragment: \"#if NUM_CLIPPING_PLANES > 0\\n\\t#if ! defined( PHYSICAL ) && ! defined( PHONG )\\n\\t\\tvarying vec3 vViewPosition;\\n\\t#endif\\n\\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\\n#endif\\n\", clipping_planes_pars_vertex: \"#if NUM_CLIPPING_PLANES > 0 && ! defined( PHYSICAL ) && ! defined( PHONG )\\n\\tvarying vec3 vViewPosition;\\n#endif\\n\", clipping_planes_vertex: \"#if NUM_CLIPPING_PLANES > 0 && ! defined( PHYSICAL ) && ! defined( PHONG )\\n\\tvViewPosition = - mvPosition.xyz;\\n#endif\\n\", color_fragment: \"#ifdef USE_COLOR\\n\\tdiffuseColor.rgb *= 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 = 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 = 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 = 12.9898, b = 78.233, c = 43758.5453;\\n\\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\\n\\treturn fract(sin(sn) * c);\\n}\\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 = 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 transpose( const in mat3 v ) {\\n\\tmat3 tmp;\\n\\ttmp[0] = vec3(v[0].x, v[1].x, v[2].x);\\n\\ttmp[1] = vec3(v[0].y, v[1].y, v[2].y);\\n\\ttmp[2] = vec3(v[0].z, v[1].z, v[2].z);\\n\\treturn tmp;\\n}\\n\",\n cube_uv_reflection_fragment: \"#ifdef ENVMAP_TYPE_CUBE_UV\\n#define cubeUV_textureSize (1024.0)\\nint getFaceFromDirection(vec3 direction) {\\n\\tvec3 absDirection = abs(direction);\\n\\tint face = -1;\\n\\tif( absDirection.x > absDirection.z ) {\\n\\t\\tif(absDirection.x > absDirection.y )\\n\\t\\t\\tface = direction.x > 0.0 ? 0 : 3;\\n\\t\\telse\\n\\t\\t\\tface = direction.y > 0.0 ? 1 : 4;\\n\\t}\\n\\telse {\\n\\t\\tif(absDirection.z > absDirection.y )\\n\\t\\t\\tface = direction.z > 0.0 ? 2 : 5;\\n\\t\\telse\\n\\t\\t\\tface = direction.y > 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 = exp2(cubeUV_maxLods1 - roughnessLevel);\\n\\tfloat dxRoughness = dFdx(roughness);\\n\\tfloat dyRoughness = dFdy(roughness);\\n\\tvec3 dx = dFdx( vec * scale * dxRoughness );\\n\\tvec3 dy = dFdy( vec * scale * dyRoughness );\\n\\tfloat d = max( dot( dx, dx ), dot( dy, dy ) );\\n\\td = clamp(d, 1.0, cubeUV_rangeClamp);\\n\\tfloat mipLevel = 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 = roughnessLevel > cubeUV_maxLods2 - 3.0 ? 0.0 : mipLevel;\\n\\tfloat a = 16.0 * cubeUV_rcpTextureSize;\\n\\tvec2 exp2_packed = exp2( vec2( roughnessLevel, mipLevel ) );\\n\\tvec2 rcp_exp2_packed = vec2( 1.0 ) / exp2_packed;\\n\\tfloat powScale = exp2_packed.x * exp2_packed.y;\\n\\tfloat scale = rcp_exp2_packed.x * rcp_exp2_packed.y * 0.25;\\n\\tfloat mipOffset = 0.75*(1.0 - rcp_exp2_packed.y) * rcp_exp2_packed.x;\\n\\tbool bRes = mipLevel == 0.0;\\n\\tscale = bRes && (scale < a) ? a : scale;\\n\\tvec3 r;\\n\\tvec2 offset;\\n\\tint face = getFaceFromDirection(direction);\\n\\tfloat rcpPowScale = 1.0 / powScale;\\n\\tif( face == 0) {\\n\\t\\tr = vec3(direction.x, -direction.z, direction.y);\\n\\t\\toffset = vec2(0.0+mipOffset,0.75 * rcpPowScale);\\n\\t\\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\\n\\t}\\n\\telse if( face == 1) {\\n\\t\\tr = vec3(direction.y, direction.x, direction.z);\\n\\t\\toffset = vec2(scale+mipOffset, 0.75 * rcpPowScale);\\n\\t\\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\\n\\t}\\n\\telse if( face == 2) {\\n\\t\\tr = vec3(direction.z, direction.x, direction.y);\\n\\t\\toffset = vec2(2.0*scale+mipOffset, 0.75 * rcpPowScale);\\n\\t\\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\\n\\t}\\n\\telse if( face == 3) {\\n\\t\\tr = vec3(direction.x, direction.z, direction.y);\\n\\t\\toffset = vec2(0.0+mipOffset,0.5 * rcpPowScale);\\n\\t\\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\\n\\t}\\n\\telse if( face == 4) {\\n\\t\\tr = vec3(direction.y, direction.x, -direction.z);\\n\\t\\toffset = vec2(scale+mipOffset, 0.5 * rcpPowScale);\\n\\t\\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\\n\\t}\\n\\telse {\\n\\t\\tr = vec3(direction.z, -direction.x, direction.y);\\n\\t\\toffset = vec2(2.0*scale+mipOffset, 0.5 * rcpPowScale);\\n\\t\\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\\n\\t}\\n\\tr = normalize(r);\\n\\tfloat texelOffset = 0.5 * cubeUV_rcpTextureSize;\\n\\tvec2 s = ( r.yz / abs( r.x ) + vec2( 1.0 ) ) * 0.5;\\n\\tvec2 base = 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(vec3 reflectedDirection, float roughness ) {\\n\\tfloat roughnessVal = roughness* cubeUV_maxLods3;\\n\\tfloat r1 = floor(roughnessVal);\\n\\tfloat r2 = r1 + 1.0;\\n\\tfloat t = fract(roughnessVal);\\n\\tvec2 mipInfo = MipLevelInfo(reflectedDirection, r1, roughness);\\n\\tfloat s = mipInfo.y;\\n\\tfloat level0 = mipInfo.x;\\n\\tfloat level1 = level0 + 1.0;\\n\\tlevel1 = level1 > 5.0 ? 5.0 : level1;\\n\\tlevel0 += min( floor( s + 0.5 ), 5.0 );\\n\\tvec2 uv_10 = getCubeUV(reflectedDirection, r1, level0);\\n\\tvec4 color10 = envMapTexelToLinear(texture2D(envMap, uv_10));\\n\\tvec2 uv_20 = getCubeUV(reflectedDirection, r2, level0);\\n\\tvec4 color20 = envMapTexelToLinear(texture2D(envMap, uv_20));\\n\\tvec4 result = mix(color10, color20, t);\\n\\treturn vec4(result.rgb, 1.0);\\n}\\n#endif\\n\", defaultnormal_vertex: \"#ifdef FLIP_SIDED\\n\\tobjectNormal = -objectNormal;\\n#endif\\nvec3 transformedNormal = normalMatrix * objectNormal;\\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 += normal * ( texture2D( displacementMap, uv ).x * displacementScale + displacementBias );\\n#endif\\n\", emissivemap_fragment: \"#ifdef USE_EMISSIVEMAP\\n\\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\\n\\temissiveColor.rgb = emissiveMapTexelToLinear( emissiveColor ).rgb;\\n\\ttotalEmissiveRadiance *= emissiveColor.rgb;\\n#endif\\n\", emissivemap_pars_fragment: \"#ifdef USE_EMISSIVEMAP\\n\\tuniform sampler2D emissiveMap;\\n#endif\\n\", encodings_fragment: \" gl_FragColor = 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.xyz, vec3( gammaFactor ) ), value.w );\\n}\\nvec4 LinearToGamma( in vec4 value, in float gammaFactor ) {\\n\\treturn vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );\\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.w );\\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.w );\\n}\\nvec4 RGBEToLinear( in vec4 value ) {\\n\\treturn vec4( value.rgb * exp2( value.a * 255.0 - 128.0 ), 1.0 );\\n}\\nvec4 LinearToRGBE( in vec4 value ) {\\n\\tfloat maxComponent = max( max( value.r, value.g ), value.b );\\n\\tfloat fExp = clamp( ceil( log2( maxComponent ) ), -128.0, 127.0 );\\n\\treturn vec4( value.rgb / exp2( fExp ), ( fExp + 128.0 ) / 255.0 );\\n}\\nvec4 RGBMToLinear( in vec4 value, in float maxRange ) {\\n\\treturn vec4( value.xyz * value.w * maxRange, 1.0 );\\n}\\nvec4 LinearToRGBM( in vec4 value, in float maxRange ) {\\n\\tfloat maxRGB = max( value.x, max( value.g, value.b ) );\\n\\tfloat M = clamp( maxRGB / maxRange, 0.0, 1.0 );\\n\\tM = ceil( M * 255.0 ) / 255.0;\\n\\treturn vec4( value.rgb / ( M * maxRange ), M );\\n}\\nvec4 RGBDToLinear( in vec4 value, in float maxRange ) {\\n\\treturn vec4( value.rgb * ( ( maxRange / 255.0 ) / value.a ), 1.0 );\\n}\\nvec4 LinearToRGBD( in vec4 value, in float maxRange ) {\\n\\tfloat maxRGB = max( value.x, max( value.g, value.b ) );\\n\\tfloat D = max( maxRange / maxRGB, 1.0 );\\n\\tD = min( floor( D ) / 255.0, 1.0 );\\n\\treturn vec4( value.rgb * ( D * ( 255.0 / maxRange ) ), D );\\n}\\nconst mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );\\nvec4 LinearToLogLuv( in vec4 value ) {\\n\\tvec3 Xp_Y_XYZp = value.rgb * cLogLuvM;\\n\\tXp_Y_XYZp = max(Xp_Y_XYZp, vec3(1e-6, 1e-6, 1e-6));\\n\\tvec4 vResult;\\n\\tvResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;\\n\\tfloat Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0;\\n\\tvResult.w = fract(Le);\\n\\tvResult.z = (Le - (floor(vResult.w*255.0))/255.0)/255.0;\\n\\treturn vResult;\\n}\\nconst mat3 cLogLuvInverseM = mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 );\\nvec4 LogLuvToLinear( in vec4 value ) {\\n\\tfloat Le = value.z * 255.0 + value.w;\\n\\tvec3 Xp_Y_XYZp;\\n\\tXp_Y_XYZp.y = exp2((Le - 127.0) / 2.0);\\n\\tXp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;\\n\\tXp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;\\n\\tvec3 vRGB = 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 = normalize( vWorldPosition - cameraPosition );\\n\\t\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvec3 reflectVec = reflect( cameraToVertex, worldNormal );\\n\\t\\t#else\\n\\t\\t\\tvec3 reflectVec = refract( cameraToVertex, worldNormal, refractionRatio );\\n\\t\\t#endif\\n\\t#else\\n\\t\\tvec3 reflectVec = vReflect;\\n\\t#endif\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tvec4 envColor = textureCube( envMap, flipNormal * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\\n\\t#elif defined( ENVMAP_TYPE_EQUIREC )\\n\\t\\tvec2 sampleUV;\\n\\t\\tsampleUV.y = saturate( flipNormal * reflectVec.y * 0.5 + 0.5 );\\n\\t\\tsampleUV.x = atan( flipNormal * reflectVec.z, flipNormal * reflectVec.x ) * RECIPROCAL_PI2 + 0.5;\\n\\t\\tvec4 envColor = texture2D( envMap, sampleUV );\\n\\t#elif defined( ENVMAP_TYPE_SPHERE )\\n\\t\\tvec3 reflectView = flipNormal * normalize( ( viewMatrix * vec4( reflectVec, 0.0 ) ).xyz + vec3( 0.0, 0.0, 1.0 ) );\\n\\t\\tvec4 envColor = texture2D( envMap, reflectView.xy * 0.5 + 0.5 );\\n\\t#else\\n\\t\\tvec4 envColor = vec4( 0.0 );\\n\\t#endif\\n\\tenvColor = envMapTexelToLinear( envColor );\\n\\t#ifdef ENVMAP_BLENDING_MULTIPLY\\n\\t\\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\\n\\t#elif defined( ENVMAP_BLENDING_MIX )\\n\\t\\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\\n\\t#elif defined( ENVMAP_BLENDING_ADD )\\n\\t\\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\\n\\t#endif\\n#endif\\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 ) && ( 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\\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_vertex: \"#ifdef USE_ENVMAP\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\\n\\t\\tvWorldPosition = worldPosition.xyz;\\n\\t#else\\n\\t\\tvec3 cameraToVertex = normalize( worldPosition.xyz - cameraPosition );\\n\\t\\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvReflect = reflect( cameraToVertex, worldNormal );\\n\\t\\t#else\\n\\t\\t\\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\\n\\t\\t#endif\\n\\t#endif\\n#endif\\n\", fog_vertex: \"\\n#ifdef USE_FOG\\nfogDepth = -mvPosition.z;\\n#endif\", fog_pars_vertex: \"#ifdef USE_FOG\\n varying float fogDepth;\\n#endif\\n\", fog_fragment: \"#ifdef USE_FOG\\n\\t#ifdef FOG_EXP2\\n\\t\\tfloat fogFactor = whiteCompliment( exp2( - fogDensity * fogDensity * fogDepth * fogDepth * LOG2 ) );\\n\\t#else\\n\\t\\tfloat fogFactor = smoothstep( fogNear, fogFar, fogDepth );\\n\\t#endif\\n\\tgl_FragColor.rgb = 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 = dot( normal, lightDirection );\\n\\t\\tvec2 coord = 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 < 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 += 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 = vec3( 1.0 );\\nGeometricContext geometry;\\ngeometry.position = mvPosition.xyz;\\ngeometry.normal = normalize( transformedNormal );\\ngeometry.viewDir = normalize( -mvPosition.xyz );\\nGeometricContext backGeometry;\\nbackGeometry.position = geometry.position;\\nbackGeometry.normal = -geometry.normal;\\nbackGeometry.viewDir = geometry.viewDir;\\nvLightFront = vec3( 0.0 );\\n#ifdef DOUBLE_SIDED\\n\\tvLightBack = vec3( 0.0 );\\n#endif\\nIncidentLight directLight;\\nfloat dotNL;\\nvec3 directLightColor_Diffuse;\\n#if NUM_POINT_LIGHTS > 0\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tgetPointDirectLightIrradiance( pointLights[ i ], geometry, directLight );\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = PI * directLight.color;\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\\n\\t\\t#endif\\n\\t}\\n#endif\\n#if NUM_SPOT_LIGHTS > 0\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tgetSpotDirectLightIrradiance( spotLights[ i ], geometry, directLight );\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = PI * directLight.color;\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\\n\\t\\t#endif\\n\\t}\\n#endif\\n#if NUM_DIR_LIGHTS > 0\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tgetDirectionalDirectLightIrradiance( directionalLights[ i ], geometry, directLight );\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = PI * directLight.color;\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\\n\\t\\t#endif\\n\\t}\\n#endif\\n#if NUM_HEMI_LIGHTS > 0\\n\\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\n\\t\\tvLightFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry );\\n\\t\\t#endif\\n\\t}\\n#endif\\n\", lights_pars: \"uniform vec3 ambientLightColor;\\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\\n\\tvec3 irradiance = ambientLightColor;\\n\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\tirradiance *= PI;\\n\\t#endif\\n\\treturn irradiance;\\n}\\n#if NUM_DIR_LIGHTS > 0\\n\\tstruct DirectionalLight {\\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 DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\\n\\tvoid getDirectionalDirectLightIrradiance( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight directLight ) {\\n\\t\\tdirectLight.color = directionalLight.color;\\n\\t\\tdirectLight.direction = directionalLight.direction;\\n\\t\\tdirectLight.visible = true;\\n\\t}\\n#endif\\n#if NUM_POINT_LIGHTS > 0\\n\\tstruct PointLight {\\n\\t\\tvec3 position;\\n\\t\\tvec3 color;\\n\\t\\tfloat distance;\\n\\t\\tfloat decay;\\n\\t\\tint shadow;\\n\\t\\tfloat shadowBias;\\n\\t\\tfloat shadowRadius;\\n\\t\\tvec2 shadowMapSize;\\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 = pointLight.position - geometry.position;\\n\\t\\tdirectLight.direction = normalize( lVector );\\n\\t\\tfloat lightDistance = length( lVector );\\n\\t\\tdirectLight.color = pointLight.color;\\n\\t\\tdirectLight.color *= punctualLightIntensityToIrradianceFactor( lightDistance, pointLight.distance, pointLight.decay );\\n\\t\\tdirectLight.visible = ( directLight.color != vec3( 0.0 ) );\\n\\t}\\n#endif\\n#if NUM_SPOT_LIGHTS > 0\\n\\tstruct SpotLight {\\n\\t\\tvec3 position;\\n\\t\\tvec3 direction;\\n\\t\\tvec3 color;\\n\\t\\tfloat distance;\\n\\t\\tfloat decay;\\n\\t\\tfloat coneCos;\\n\\t\\tfloat penumbraCos;\\n\\t\\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 = spotLight.position - geometry.position;\\n\\t\\tdirectLight.direction = normalize( lVector );\\n\\t\\tfloat lightDistance = length( lVector );\\n\\t\\tfloat angleCos = dot( directLight.direction, spotLight.direction );\\n\\t\\tif ( angleCos > spotLight.coneCos ) {\\n\\t\\t\\tfloat spotEffect = smoothstep( spotLight.coneCos, spotLight.penumbraCos, angleCos );\\n\\t\\t\\tdirectLight.color = spotLight.color;\\n\\t\\t\\tdirectLight.color *= spotEffect * punctualLightIntensityToIrradianceFactor( lightDistance, spotLight.distance, spotLight.decay );\\n\\t\\t\\tdirectLight.visible = true;\\n\\t\\t} else {\\n\\t\\t\\tdirectLight.color = vec3( 0.0 );\\n\\t\\t\\tdirectLight.visible = false;\\n\\t\\t}\\n\\t}\\n#endif\\n#if NUM_RECT_AREA_LIGHTS > 0\\n\\tstruct RectAreaLight {\\n\\t\\tvec3 color;\\n\\t\\tvec3 position;\\n\\t\\tvec3 halfWidth;\\n\\t\\tvec3 halfHeight;\\n\\t};\\n\\tuniform sampler2D ltcMat;\\tuniform sampler2D ltcMag;\\n\\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\\n#endif\\n#if NUM_HEMI_LIGHTS > 0\\n\\tstruct HemisphereLight {\\n\\t\\tvec3 direction;\\n\\t\\tvec3 skyColor;\\n\\t\\tvec3 groundColor;\\n\\t};\\n\\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\\n\\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in GeometricContext geometry ) {\\n\\t\\tfloat dotNL = dot( geometry.normal, hemiLight.direction );\\n\\t\\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\\n\\t\\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\\n\\t\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\t\\tirradiance *= PI;\\n\\t\\t#endif\\n\\t\\treturn irradiance;\\n\\t}\\n#endif\\n#if defined( USE_ENVMAP ) && defined( PHYSICAL )\\n\\tvec3 getLightProbeIndirectIrradiance( const in GeometricContext geometry, const in int maxMIPLevel ) {\\n\\t\\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\t\\tvec3 queryVec = vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\\n\\t\\t\\t#ifdef TEXTURE_LOD_EXT\\n\\t\\t\\t\\tvec4 envMapColor = textureCubeLodEXT( envMap, queryVec, float( maxMIPLevel ) );\\n\\t\\t\\t#else\\n\\t\\t\\t\\tvec4 envMapColor = textureCube( envMap, queryVec, float( maxMIPLevel ) );\\n\\t\\t\\t#endif\\n\\t\\t\\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\\n\\t\\t#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\t\\tvec3 queryVec = vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\\n\\t\\t\\tvec4 envMapColor = textureCubeUV( queryVec, 1.0 );\\n\\t\\t#else\\n\\t\\t\\tvec4 envMapColor = 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 = float( maxMIPLevel );\\n\\t\\tfloat desiredMIPLevel = 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 = reflect( -geometry.viewDir, geometry.normal );\\n\\t\\t#else\\n\\t\\t\\tvec3 reflectVec = refract( -geometry.viewDir, geometry.normal, refractionRatio );\\n\\t\\t#endif\\n\\t\\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\\n\\t\\tfloat specularMIPLevel = getSpecularMIPLevel( blinnShininessExponent, maxMIPLevel );\\n\\t\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\t\\tvec3 queryReflectVec = vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\\n\\t\\t\\t#ifdef TEXTURE_LOD_EXT\\n\\t\\t\\t\\tvec4 envMapColor = textureCubeLodEXT( envMap, queryReflectVec, specularMIPLevel );\\n\\t\\t\\t#else\\n\\t\\t\\t\\tvec4 envMapColor = textureCube( envMap, queryReflectVec, specularMIPLevel );\\n\\t\\t\\t#endif\\n\\t\\t\\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\\n\\t\\t#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\t\\tvec3 queryReflectVec = vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\\n\\t\\t\\tvec4 envMapColor = textureCubeUV(queryReflectVec, BlinnExponentToGGXRoughness(blinnShininessExponent));\\n\\t\\t#elif defined( ENVMAP_TYPE_EQUIREC )\\n\\t\\t\\tvec2 sampleUV;\\n\\t\\t\\tsampleUV.y = saturate( reflectVec.y * 0.5 + 0.5 );\\n\\t\\t\\tsampleUV.x = atan( reflectVec.z, reflectVec.x ) * RECIPROCAL_PI2 + 0.5;\\n\\t\\t\\t#ifdef TEXTURE_LOD_EXT\\n\\t\\t\\t\\tvec4 envMapColor = texture2DLodEXT( envMap, sampleUV, specularMIPLevel );\\n\\t\\t\\t#else\\n\\t\\t\\t\\tvec4 envMapColor = texture2D( envMap, sampleUV, specularMIPLevel );\\n\\t\\t\\t#endif\\n\\t\\t\\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\\n\\t\\t#elif defined( ENVMAP_TYPE_SPHERE )\\n\\t\\t\\tvec3 reflectView = 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 = texture2DLodEXT( envMap, reflectView.xy * 0.5 + 0.5, specularMIPLevel );\\n\\t\\t\\t#else\\n\\t\\t\\t\\tvec4 envMapColor = texture2D( envMap, reflectView.xy * 0.5 + 0.5, specularMIPLevel );\\n\\t\\t\\t#endif\\n\\t\\t\\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\\n\\t\\t#endif\\n\\t\\treturn envMapColor.rgb * envMapIntensity;\\n\\t}\\n#endif\\n\", lights_phong_fragment: \"BlinnPhongMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\\nmaterial.specularColor = specular;\\nmaterial.specularShininess = shininess;\\nmaterial.specularStrength = 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 = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\\n\\t#else\\n\\t\\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\\n\\t\\tvec3 irradiance = dotNL * directLight.color;\\n\\t#endif\\n\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\tirradiance *= PI;\\n\\t#endif\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n\\treflectedLight.directSpecular += 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 += 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 = diffuseColor.rgb * ( 1.0 - metalnessFactor );\\nmaterial.specularRoughness = clamp( roughnessFactor, 0.04, 1.0 );\\n#ifdef STANDARD\\n\\tmaterial.specularColor = mix( vec3( DEFAULT_SPECULAR_COEFFICIENT ), diffuseColor.rgb, metalnessFactor );\\n#else\\n\\tmaterial.specularColor = mix( vec3( MAXIMUM_SPECULAR_COEFFICIENT * pow2( reflectivity ) ), diffuseColor.rgb, metalnessFactor );\\n\\tmaterial.clearCoat = saturate( clearCoat );\\tmaterial.clearCoatRoughness = 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 > 0\\n\\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\t\\tvec3 normal = geometry.normal;\\n\\t\\tvec3 viewDir = geometry.viewDir;\\n\\t\\tvec3 position = geometry.position;\\n\\t\\tvec3 lightPos = rectAreaLight.position;\\n\\t\\tvec3 halfWidth = rectAreaLight.halfWidth;\\n\\t\\tvec3 halfHeight = rectAreaLight.halfHeight;\\n\\t\\tvec3 lightColor = rectAreaLight.color;\\n\\t\\tfloat roughness = material.specularRoughness;\\n\\t\\tvec3 rectCoords[ 4 ];\\n\\t\\trectCoords[ 0 ] = lightPos - halfWidth - halfHeight;\\t\\trectCoords[ 1 ] = lightPos + halfWidth - halfHeight;\\n\\t\\trectCoords[ 2 ] = lightPos + halfWidth + halfHeight;\\n\\t\\trectCoords[ 3 ] = lightPos - halfWidth + halfHeight;\\n\\t\\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\\n\\t\\tfloat norm = texture2D( ltcMag, uv ).a;\\n\\t\\tvec4 t = texture2D( ltcMat, uv );\\n\\t\\tmat3 mInv = mat3(\\n\\t\\t\\tvec3( 1, 0, t.y ),\\n\\t\\t\\tvec3( 0, t.z, 0 ),\\n\\t\\t\\tvec3( t.w, 0, t.x )\\n\\t\\t);\\n\\t\\treflectedLight.directSpecular += lightColor * material.specularColor * norm * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\\n\\t\\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1 ), rectCoords );\\n\\t}\\n#endif\\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\tirradiance *= PI;\\n\\t#endif\\n\\t#ifndef STANDARD\\n\\t\\tfloat clearCoatDHR = material.clearCoat * clearCoatDHRApprox( material.clearCoatRoughness, dotNL );\\n\\t#else\\n\\t\\tfloat clearCoatDHR = 0.0;\\n\\t#endif\\n\\treflectedLight.directSpecular += ( 1.0 - clearCoatDHR ) * irradiance * BRDF_Specular_GGX( directLight, geometry, material.specularColor, material.specularRoughness );\\n\\treflectedLight.directDiffuse += ( 1.0 - clearCoatDHR ) * irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n\\t#ifndef STANDARD\\n\\t\\treflectedLight.directSpecular += 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 += 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 = saturate( dot( geometry.normal, geometry.viewDir ) );\\n\\t\\tfloat dotNL = dotNV;\\n\\t\\tfloat clearCoatDHR = material.clearCoat * clearCoatDHRApprox( material.clearCoatRoughness, dotNL );\\n\\t#else\\n\\t\\tfloat clearCoatDHR = 0.0;\\n\\t#endif\\n\\treflectedLight.indirectSpecular += ( 1.0 - clearCoatDHR ) * radiance * BRDF_Specular_GGX_Environment( geometry, material.specularColor, material.specularRoughness );\\n\\t#ifndef STANDARD\\n\\t\\treflectedLight.indirectSpecular += 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\",\n lights_template: \"\\nGeometricContext geometry;\\ngeometry.position = - vViewPosition;\\ngeometry.normal = normal;\\ngeometry.viewDir = normalize( vViewPosition );\\nIncidentLight directLight;\\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tPointLight pointLight;\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tpointLight = pointLights[ i ];\\n\\t\\tgetPointDirectLightIrradiance( pointLight, geometry, directLight );\\n\\t\\t#ifdef USE_SHADOWMAP\\n\\t\\tdirectLight.color *= all( bvec2( pointLight.shadow, directLight.visible ) ) ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\t}\\n#endif\\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tSpotLight spotLight;\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tspotLight = spotLights[ i ];\\n\\t\\tgetSpotDirectLightIrradiance( spotLight, geometry, directLight );\\n\\t\\t#ifdef USE_SHADOWMAP\\n\\t\\tdirectLight.color *= 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 > 0 ) && defined( RE_Direct )\\n\\tDirectionalLight directionalLight;\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tdirectionalLight = directionalLights[ i ];\\n\\t\\tgetDirectionalDirectLightIrradiance( directionalLight, geometry, directLight );\\n\\t\\t#ifdef USE_SHADOWMAP\\n\\t\\tdirectLight.color *= 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 > 0 ) && defined( RE_Direct_RectArea )\\n\\tRectAreaLight rectAreaLight;\\n\\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\\n\\t\\trectAreaLight = rectAreaLights[ i ];\\n\\t\\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\\n\\t}\\n#endif\\n#if defined( RE_IndirectDiffuse )\\n\\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\\n\\t#ifdef USE_LIGHTMAP\\n\\t\\tvec3 lightMapIrradiance = texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\\n\\t\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\t\\tlightMapIrradiance *= PI;\\n\\t\\t#endif\\n\\t\\tirradiance += lightMapIrradiance;\\n\\t#endif\\n\\t#if ( NUM_HEMI_LIGHTS > 0 )\\n\\t\\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\n\\t\\t\\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\\n\\t\\t}\\n\\t#endif\\n\\t#if defined( USE_ENVMAP ) && defined( PHYSICAL ) && defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\tirradiance += getLightProbeIndirectIrradiance( geometry, 8 );\\n\\t#endif\\n\\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\\n#endif\\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\\n\\tvec3 radiance = getLightProbeIndirectRadiance( geometry, Material_BlinnShininessExponent( material ), 8 );\\n\\t#ifndef STANDARD\\n\\t\\tvec3 clearCoatRadiance = getLightProbeIndirectRadiance( geometry, Material_ClearCoat_BlinnShininessExponent( material ), 8 );\\n\\t#else\\n\\t\\tvec3 clearCoatRadiance = vec3( 0.0 );\\n\\t#endif\\n\\tRE_IndirectSpecular( radiance, clearCoatRadiance, geometry, material, reflectedLight );\\n#endif\\n\", logdepthbuf_fragment: \"#if defined(USE_LOGDEPTHBUF) && defined(USE_LOGDEPTHBUF_EXT)\\n\\tgl_FragDepthEXT = log2(vFragDepth) * logDepthBufFC * 0.5;\\n#endif\", logdepthbuf_pars_fragment: \"#ifdef USE_LOGDEPTHBUF\\n\\tuniform float logDepthBufFC;\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\t\\tvarying float vFragDepth;\\n\\t#endif\\n#endif\\n\", logdepthbuf_pars_vertex: \"#ifdef USE_LOGDEPTHBUF\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\t\\tvarying float vFragDepth;\\n\\t#endif\\n\\tuniform float logDepthBufFC;\\n#endif\", logdepthbuf_vertex: \"#ifdef USE_LOGDEPTHBUF\\n\\tgl_Position.z = log2(max( EPSILON, gl_Position.w + 1.0 )) * logDepthBufFC;\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\t\\tvFragDepth = 1.0 + gl_Position.w;\\n\\t#else\\n\\t\\tgl_Position.z = (gl_Position.z - 1.0) * gl_Position.w;\\n\\t#endif\\n#endif\\n\", map_fragment: \"#ifdef USE_MAP\\n\\tvec4 texelColor = texture2D( map, vUv );\\n\\ttexelColor = mapTexelToLinear( texelColor );\\n\\tdiffuseColor *= texelColor;\\n#endif\\n\", map_pars_fragment: \"#ifdef USE_MAP\\n\\tuniform sampler2D map;\\n#endif\\n\", map_particle_fragment: \"#ifdef USE_MAP\\n\\tvec4 mapTexel = texture2D( map, vec2( gl_PointCoord.x, 1.0 - gl_PointCoord.y ) * offsetRepeat.zw + offsetRepeat.xy );\\n\\tdiffuseColor *= mapTexelToLinear( mapTexel );\\n#endif\\n\", map_particle_pars_fragment: \"#ifdef USE_MAP\\n\\tuniform vec4 offsetRepeat;\\n\\tuniform sampler2D map;\\n#endif\\n\", metalnessmap_fragment: \"float metalnessFactor = metalness;\\n#ifdef USE_METALNESSMAP\\n\\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\\n\\tmetalnessFactor *= texelMetalness.b;\\n#endif\\n\", metalnessmap_pars_fragment: \"#ifdef USE_METALNESSMAP\\n\\tuniform sampler2D metalnessMap;\\n#endif\", morphnormal_vertex: \"#ifdef USE_MORPHNORMALS\\n\\tobjectNormal += ( morphNormal0 - normal ) * morphTargetInfluences[ 0 ];\\n\\tobjectNormal += ( morphNormal1 - normal ) * morphTargetInfluences[ 1 ];\\n\\tobjectNormal += ( morphNormal2 - normal ) * morphTargetInfluences[ 2 ];\\n\\tobjectNormal += ( 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 += ( morphTarget0 - position ) * morphTargetInfluences[ 0 ];\\n\\ttransformed += ( morphTarget1 - position ) * morphTargetInfluences[ 1 ];\\n\\ttransformed += ( morphTarget2 - position ) * morphTargetInfluences[ 2 ];\\n\\ttransformed += ( morphTarget3 - position ) * morphTargetInfluences[ 3 ];\\n\\t#ifndef USE_MORPHNORMALS\\n\\ttransformed += ( morphTarget4 - position ) * morphTargetInfluences[ 4 ];\\n\\ttransformed += ( morphTarget5 - position ) * morphTargetInfluences[ 5 ];\\n\\ttransformed += ( morphTarget6 - position ) * morphTargetInfluences[ 6 ];\\n\\ttransformed += ( morphTarget7 - position ) * morphTargetInfluences[ 7 ];\\n\\t#endif\\n#endif\\n\", normal_flip: \"#ifdef DOUBLE_SIDED\\n\\tfloat flipNormal = ( float( gl_FrontFacing ) * 2.0 - 1.0 );\\n#else\\n\\tfloat flipNormal = 1.0;\\n#endif\\n\", normal_fragment: \"#ifdef FLAT_SHADED\\n\\tvec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) );\\n\\tvec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) );\\n\\tvec3 normal = normalize( cross( fdx, fdy ) );\\n#else\\n\\tvec3 normal = normalize( vNormal ) * flipNormal;\\n#endif\\n#ifdef USE_NORMALMAP\\n\\tnormal = perturbNormal2Arb( -vViewPosition, normal );\\n#elif defined( USE_BUMPMAP )\\n\\tnormal = perturbNormalArb( -vViewPosition, normal, dHdxy_fwd() );\\n#endif\\n\", normalmap_pars_fragment: \"#ifdef USE_NORMALMAP\\n\\tuniform sampler2D normalMap;\\n\\tuniform vec2 normalScale;\\n\\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm ) {\\n\\t\\tvec3 q0 = dFdx( eye_pos.xyz );\\n\\t\\tvec3 q1 = dFdy( eye_pos.xyz );\\n\\t\\tvec2 st0 = dFdx( vUv.st );\\n\\t\\tvec2 st1 = dFdy( vUv.st );\\n\\t\\tvec3 S = normalize( q0 * st1.t - q1 * st0.t );\\n\\t\\tvec3 T = normalize( -q0 * st1.s + q1 * st0.s );\\n\\t\\tvec3 N = normalize( surf_norm );\\n\\t\\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\\n\\t\\tmapN.xy = normalScale * mapN.xy;\\n\\t\\tmat3 tsn = mat3( S, T, N );\\n\\t\\treturn normalize( tsn * mapN );\\n\\t}\\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 1.0 - 2.0 * rgb.xyz;\\n}\\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\\nconst float ShiftRight8 = 1. / 256.;\\nvec4 packDepthToRGBA( const in float v ) {\\n\\tvec4 r = vec4( fract( v * PackFactors ), v );\\n\\tr.yzw -= r.xyz * ShiftRight8;\\treturn r * PackUpscale;\\n}\\nfloat unpackRGBAToDepth( const in vec4 v ) {\\n\\treturn dot( v, UnpackFactors );\\n}\\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 *= gl_FragColor.a;\\n#endif\\n\", project_vertex: \"#ifdef USE_SKINNING\\n\\tvec4 mvPosition = modelViewMatrix * skinned;\\n#else\\n\\tvec4 mvPosition = modelViewMatrix * vec4( transformed, 1.0 );\\n#endif\\ngl_Position = projectionMatrix * mvPosition;\\n\", dithering_fragment: \"#if defined( DITHERING )\\n gl_FragColor.rgb = dithering( gl_FragColor.rgb );\\n#endif\\n\", dithering_pars_fragment: \"#if defined( DITHERING )\\n\\tvec3 dithering( vec3 color ) {\\n\\t\\tfloat grid_position = rand( gl_FragCoord.xy );\\n\\t\\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\\n\\t\\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\\n\\t\\treturn color + dither_shift_RGB;\\n\\t}\\n#endif\\n\", roughnessmap_fragment: \"float roughnessFactor = roughness;\\n#ifdef USE_ROUGHNESSMAP\\n\\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\\n\\troughnessFactor *= 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 > 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 > 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 > 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 = vec2( 0.0, 1.0 );\\n\\t\\tvec2 texelSize = vec2( 1.0 ) / size;\\n\\t\\tvec2 centroidUV = floor( uv * size + 0.5 ) / size;\\n\\t\\tfloat lb = texture2DCompare( depths, centroidUV + texelSize * offset.xx, compare );\\n\\t\\tfloat lt = texture2DCompare( depths, centroidUV + texelSize * offset.xy, compare );\\n\\t\\tfloat rb = texture2DCompare( depths, centroidUV + texelSize * offset.yx, compare );\\n\\t\\tfloat rt = texture2DCompare( depths, centroidUV + texelSize * offset.yy, compare );\\n\\t\\tvec2 f = fract( uv * size + 0.5 );\\n\\t\\tfloat a = mix( lb, lt, f.y );\\n\\t\\tfloat b = mix( rb, rt, f.y );\\n\\t\\tfloat c = 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\\tshadowCoord.xyz /= shadowCoord.w;\\n\\t\\tshadowCoord.z += shadowBias;\\n\\t\\tbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\\n\\t\\tbool inFrustum = all( inFrustumVec );\\n\\t\\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\\n\\t\\tbool frustumTest = all( frustumTestVec );\\n\\t\\tif ( frustumTest ) {\\n\\t\\t#if defined( SHADOWMAP_TYPE_PCF )\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\\t\\t\\tfloat dx0 = - texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy0 = - texelSize.y * shadowRadius;\\n\\t\\t\\tfloat dx1 = + texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy1 = + texelSize.y * shadowRadius;\\n\\t\\t\\treturn (\\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 = vec2( 1.0 ) / shadowMapSize;\\n\\t\\t\\tfloat dx0 = - texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy0 = - texelSize.y * shadowRadius;\\n\\t\\t\\tfloat dx1 = + texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy1 = + texelSize.y * shadowRadius;\\n\\t\\t\\treturn (\\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\\treturn texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\\n\\t\\t#endif\\n\\t\\t}\\n\\t\\treturn 1.0;\\n\\t}\\n\\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\\n\\t\\tvec3 absV = abs( v );\\n\\t\\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\\n\\t\\tabsV *= scaleToCube;\\n\\t\\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\\n\\t\\tvec2 planar = v.xy;\\n\\t\\tfloat almostATexel = 1.5 * texelSizeY;\\n\\t\\tfloat almostOne = 1.0 - almostATexel;\\n\\t\\tif ( absV.z >= almostOne ) {\\n\\t\\t\\tif ( v.z > 0.0 )\\n\\t\\t\\t\\tplanar.x = 4.0 - v.x;\\n\\t\\t} else if ( absV.x >= almostOne ) {\\n\\t\\t\\tfloat signX = sign( v.x );\\n\\t\\t\\tplanar.x = v.z * signX + 2.0 * signX;\\n\\t\\t} else if ( absV.y >= almostOne ) {\\n\\t\\t\\tfloat signY = sign( v.y );\\n\\t\\t\\tplanar.x = v.x + 2.0 * signY + 2.0;\\n\\t\\t\\tplanar.y = v.z * signY - 2.0;\\n\\t\\t}\\n\\t\\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\\n\\t}\\n\\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\\n\\t\\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\\n\\t\\tvec3 lightToPosition = shadowCoord.xyz;\\n\\t\\tvec3 bd3D = normalize( lightToPosition );\\n\\t\\tfloat dp = ( length( lightToPosition ) - shadowBias ) / 1000.0;\\n\\t\\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT )\\n\\t\\t\\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\\n\\t\\t\\treturn (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\\n\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\t\\t#else\\n\\t\\t\\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\\n\\t\\t#endif\\n\\t}\\n#endif\\n\", shadowmap_pars_vertex: \"#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHTS > 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 > 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 > 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 > 0\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * worldPosition;\\n\\t}\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHTS > 0\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * worldPosition;\\n\\t}\\n\\t#endif\\n\\t#if NUM_POINT_LIGHTS > 0\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * worldPosition;\\n\\t}\\n\\t#endif\\n#endif\\n\", shadowmask_pars_fragment: \"float getShadowMask() {\\n\\tfloat shadow = 1.0;\\n\\t#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHTS > 0\\n\\tDirectionalLight directionalLight;\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tdirectionalLight = directionalLights[ i ];\\n\\t\\tshadow *= 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 > 0\\n\\tSpotLight spotLight;\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tspotLight = spotLights[ i ];\\n\\t\\tshadow *= 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 > 0\\n\\tPointLight pointLight;\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tpointLight = pointLights[ i ];\\n\\t\\tshadow *= bool( pointLight.shadow ) ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ] ) : 1.0;\\n\\t}\\n\\t#endif\\n\\t#endif\\n\\treturn shadow;\\n}\\n\", skinbase_vertex: \"#ifdef USE_SKINNING\\n\\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\\n\\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\\n\\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\\n\\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\\n#endif\", skinning_pars_vertex: \"#ifdef USE_SKINNING\\n\\tuniform mat4 bindMatrix;\\n\\tuniform mat4 bindMatrixInverse;\\n\\t#ifdef BONE_TEXTURE\\n\\t\\tuniform sampler2D boneTexture;\\n\\t\\tuniform int boneTextureSize;\\n\\t\\tmat4 getBoneMatrix( const in float i ) {\\n\\t\\t\\tfloat j = i * 4.0;\\n\\t\\t\\tfloat x = mod( j, float( boneTextureSize ) );\\n\\t\\t\\tfloat y = floor( j / float( boneTextureSize ) );\\n\\t\\t\\tfloat dx = 1.0 / float( boneTextureSize );\\n\\t\\t\\tfloat dy = 1.0 / float( boneTextureSize );\\n\\t\\t\\ty = dy * ( y + 0.5 );\\n\\t\\t\\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\\n\\t\\t\\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\\n\\t\\t\\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\\n\\t\\t\\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\\n\\t\\t\\tmat4 bone = mat4( v1, v2, v3, v4 );\\n\\t\\t\\treturn bone;\\n\\t\\t}\\n\\t#else\\n\\t\\tuniform mat4 boneMatrices[ MAX_BONES ];\\n\\t\\tmat4 getBoneMatrix( const in float i ) {\\n\\t\\t\\tmat4 bone = boneMatrices[ int(i) ];\\n\\t\\t\\treturn bone;\\n\\t\\t}\\n\\t#endif\\n#endif\\n\", skinning_vertex: \"#ifdef USE_SKINNING\\n\\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\\n\\tvec4 skinned = vec4( 0.0 );\\n\\tskinned += boneMatX * skinVertex * skinWeight.x;\\n\\tskinned += boneMatY * skinVertex * skinWeight.y;\\n\\tskinned += boneMatZ * skinVertex * skinWeight.z;\\n\\tskinned += boneMatW * skinVertex * skinWeight.w;\\n\\tskinned = bindMatrixInverse * skinned;\\n#endif\\n\", skinnormal_vertex: \"#ifdef USE_SKINNING\\n\\tmat4 skinMatrix = mat4( 0.0 );\\n\\tskinMatrix += skinWeight.x * boneMatX;\\n\\tskinMatrix += skinWeight.y * boneMatY;\\n\\tskinMatrix += skinWeight.z * boneMatZ;\\n\\tskinMatrix += skinWeight.w * boneMatW;\\n\\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\\n\\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\\n#endif\\n\", specularmap_fragment: \"float specularStrength;\\n#ifdef USE_SPECULARMAP\\n\\tvec4 texelSpecular = texture2D( specularMap, vUv );\\n\\tspecularStrength = texelSpecular.r;\\n#else\\n\\tspecularStrength = 1.0;\\n#endif\", specularmap_pars_fragment: \"#ifdef USE_SPECULARMAP\\n\\tuniform sampler2D specularMap;\\n#endif\", tonemapping_fragment: \"#if defined( TONE_MAPPING )\\n gl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\\n#endif\\n\", tonemapping_pars_fragment: \"#define saturate(a) clamp( a, 0.0, 1.0 )\\nuniform float toneMappingExposure;\\nuniform float toneMappingWhitePoint;\\nvec3 LinearToneMapping( vec3 color ) {\\n\\treturn toneMappingExposure * color;\\n}\\nvec3 ReinhardToneMapping( vec3 color ) {\\n\\tcolor *= toneMappingExposure;\\n\\treturn saturate( color / ( vec3( 1.0 ) + color ) );\\n}\\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 *= toneMappingExposure;\\n\\treturn saturate( Uncharted2Helper( color ) / Uncharted2Helper( vec3( toneMappingWhitePoint ) ) );\\n}\\nvec3 OptimizedCineonToneMapping( vec3 color ) {\\n\\tcolor *= toneMappingExposure;\\n\\tcolor = max( vec3( 0.0 ), color - 0.004 );\\n\\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\\n}\\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 vec4 offsetRepeat;\\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 = uv * offsetRepeat.zw + offsetRepeat.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 = uv2;\\n#endif\", worldpos_vertex: \"#if defined( USE_ENVMAP ) || defined( PHONG ) || defined( PHYSICAL ) || defined( LAMBERT ) || defined ( USE_SHADOWMAP )\\n\\t#ifdef USE_SKINNING\\n\\t\\tvec4 worldPosition = modelMatrix * skinned;\\n\\t#else\\n\\t\\tvec4 worldPosition = modelMatrix * vec4( transformed, 1.0 );\\n\\t#endif\\n#endif\\n\", cube_frag: \"uniform samplerCube tCube;\\nuniform float tFlip;\\nuniform float opacity;\\nvarying vec3 vWorldPosition;\\n#include \\nvoid main() {\\n\\tgl_FragColor = textureCube( tCube, vec3( tFlip * vWorldPosition.x, vWorldPosition.yz ) );\\n\\tgl_FragColor.a *= opacity;\\n}\\n\", cube_vert: \"varying vec3 vWorldPosition;\\n#include \\nvoid main() {\\n\\tvWorldPosition = transformDirection( position, modelMatrix );\\n\\t#include \\n\\t#include \\n}\\n\", depth_frag: \"#if DEPTH_PACKING == 3200\\n\\tuniform float opacity;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( 1.0 );\\n\\t#if DEPTH_PACKING == 3200\\n\\t\\tdiffuseColor.a = opacity;\\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#if DEPTH_PACKING == 3200\\n\\t\\tgl_FragColor = vec4( vec3( gl_FragCoord.z ), opacity );\\n\\t#elif DEPTH_PACKING == 3201\\n\\t\\tgl_FragColor = packDepthToRGBA( gl_FragCoord.z );\\n\\t#endif\\n}\\n\", depth_vert: \"#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\", distanceRGBA_frag: \"uniform vec3 lightPos;\\nvarying vec4 vWorldPosition;\\n#include \\n#include \\n#include \\nvoid main () {\\n\\t#include \\n\\tgl_FragColor = packDepthToRGBA( length( vWorldPosition.xyz - lightPos.xyz ) / 1000.0 );\\n}\\n\", distanceRGBA_vert: \"varying vec4 vWorldPosition;\\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvWorldPosition = worldPosition;\\n}\\n\", equirect_frag: \"uniform sampler2D tEquirect;\\nuniform float tFlip;\\nvarying vec3 vWorldPosition;\\n#include \\nvoid main() {\\n\\tvec3 direction = normalize( vWorldPosition );\\n\\tvec2 sampleUV;\\n\\tsampleUV.y = saturate( tFlip * direction.y * -0.5 + 0.5 );\\n\\tsampleUV.x = atan( direction.z, direction.x ) * RECIPROCAL_PI2 + 0.5;\\n\\tgl_FragColor = texture2D( tEquirect, sampleUV );\\n}\\n\", equirect_vert: \"varying vec3 vWorldPosition;\\n#include \\nvoid main() {\\n\\tvWorldPosition = transformDirection( position, modelMatrix );\\n\\t#include \\n\\t#include \\n}\\n\", linedashed_frag: \"uniform vec3 diffuse;\\nuniform float opacity;\\nuniform float dashSize;\\nuniform float totalSize;\\nvarying float vLineDistance;\\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\\n\\t\\tdiscard;\\n\\t}\\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\t#include \\n\\toutgoingLight = diffuseColor.rgb;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\", linedashed_vert: \"uniform float scale;\\nattribute float lineDistance;\\nvarying float vLineDistance;\\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvLineDistance = scale * lineDistance;\\n\\tvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\\n\\tgl_Position = projectionMatrix * mvPosition;\\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\", meshbasic_frag: \"uniform vec3 diffuse;\\nuniform float opacity;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\t#ifdef USE_LIGHTMAP\\n\\t\\treflectedLight.indirectDiffuse += texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\\n\\t#else\\n\\t\\treflectedLight.indirectDiffuse += vec3( 1.0 );\\n\\t#endif\\n\\t#include \\n\\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\\n\\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\\n\\t#include \\n\\t#include \\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\", meshbasic_vert: \"#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#ifdef USE_ENVMAP\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\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 \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\treflectedLight.indirectDiffuse = getAmbientLightIrradiance( ambientLightColor );\\n\\t#include \\n\\treflectedLight.indirectDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb );\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\treflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;\\n\\t#else\\n\\t\\treflectedLight.directDiffuse = vLightFront;\\n\\t#endif\\n\\treflectedLight.directDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb ) * getShadowMask();\\n\\t#include \\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\n\\t#include \\n\\t#include \\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\", meshlambert_vert: \"#define LAMBERT\\nvarying vec3 vLightFront;\\n#ifdef DOUBLE_SIDED\\n\\tvarying vec3 vLightBack;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\", meshphong_frag: \"#define PHONG\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform vec3 specular;\\nuniform float shininess;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\\n\\t#include \\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\", meshphong_vert: \"#define PHONG\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n#ifndef FLAT_SHADED\\n\\tvNormal = normalize( transformedNormal );\\n#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\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 \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\", meshphysical_vert: \"#define PHYSICAL\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n#ifndef FLAT_SHADED\\n\\tvNormal = normalize( transformedNormal );\\n#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\", normal_frag: \"#define NORMAL\\nuniform float opacity;\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP )\\n\\tvarying vec3 vViewPosition;\\n#endif\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\\n}\\n\", normal_vert: \"#define NORMAL\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP )\\n\\tvarying vec3 vViewPosition;\\n#endif\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n#ifndef FLAT_SHADED\\n\\tvNormal = normalize( transformedNormal );\\n#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP )\\n\\tvViewPosition = - mvPosition.xyz;\\n#endif\\n}\\n\", points_frag: \"uniform vec3 diffuse;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\toutgoingLight = diffuseColor.rgb;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\", points_vert: \"uniform float size;\\nuniform float scale;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#ifdef USE_SIZEATTENUATION\\n\\t\\tgl_PointSize = size * ( scale / - mvPosition.z );\\n\\t#else\\n\\t\\tgl_PointSize = size;\\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\", shadow_frag: \"uniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tgl_FragColor = vec4( 0.0, 0.0, 0.0, opacity * ( 1.0 - getShadowMask() ) );\\n}\\n\", shadow_vert: \"#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\" },\n An = { basic: { uniforms: Sn.merge([Tn.common, Tn.aomap, Tn.lightmap, Tn.fog]), vertexShader: Ln.meshbasic_vert, fragmentShader: Ln.meshbasic_frag }, lambert: { uniforms: Sn.merge([Tn.common, Tn.aomap, Tn.lightmap, Tn.emissivemap, Tn.fog, Tn.lights, { emissive: { value: new W(0) } }]), vertexShader: Ln.meshlambert_vert, fragmentShader: Ln.meshlambert_frag }, phong: { uniforms: Sn.merge([Tn.common, Tn.aomap, Tn.lightmap, Tn.emissivemap, Tn.bumpmap, Tn.normalmap, Tn.displacementmap, Tn.gradientmap, Tn.fog, Tn.lights, { emissive: { value: new W(0) }, specular: { value: new W(1118481) }, shininess: { value: 30 } }]), vertexShader: Ln.meshphong_vert, fragmentShader: Ln.meshphong_frag }, standard: { uniforms: Sn.merge([Tn.common, Tn.aomap, Tn.lightmap, Tn.emissivemap, Tn.bumpmap, Tn.normalmap, Tn.displacementmap, Tn.roughnessmap, Tn.metalnessmap, Tn.fog, Tn.lights, { emissive: { value: new W(0) }, roughness: { value: .5 }, metalness: { value: .5 }, envMapIntensity: { value: 1 } }]), vertexShader: Ln.meshphysical_vert, fragmentShader: Ln.meshphysical_frag }, points: { uniforms: Sn.merge([Tn.points, Tn.fog]), vertexShader: Ln.points_vert, fragmentShader: Ln.points_frag }, dashed: { uniforms: Sn.merge([Tn.common, Tn.fog, { scale: { value: 1 }, dashSize: { value: 1 }, totalSize: { value: 2 } }]), vertexShader: Ln.linedashed_vert, fragmentShader: Ln.linedashed_frag }, depth: { uniforms: Sn.merge([Tn.common, Tn.displacementmap]), vertexShader: Ln.depth_vert, fragmentShader: Ln.depth_frag }, normal: { uniforms: Sn.merge([Tn.common, Tn.bumpmap, Tn.normalmap, Tn.displacementmap, { opacity: { value: 1 } }]), vertexShader: Ln.normal_vert, fragmentShader: Ln.normal_frag }, cube: { uniforms: { tCube: { value: null }, tFlip: { value: -1 }, opacity: { value: 1 } }, vertexShader: Ln.cube_vert, fragmentShader: Ln.cube_frag }, equirect: { uniforms: { tEquirect: { value: null }, tFlip: { value: -1 } }, vertexShader: Ln.equirect_vert, fragmentShader: Ln.equirect_frag }, distanceRGBA: { uniforms: { lightPos: { value: new i() } }, vertexShader: Ln.distanceRGBA_vert, fragmentShader: Ln.distanceRGBA_frag } };An.physical = { uniforms: Sn.merge([An.standard.uniforms, { clearCoat: { value: 0 }, clearCoatRoughness: { value: 0 } }]), vertexShader: Ln.meshphysical_vert, fragmentShader: Ln.meshphysical_frag }, _extends(X.prototype, { set: function set(t, e) {\n return this.min.copy(t), this.max.copy(e), this;\n }, setFromPoints: function setFromPoints(t) {\n this.makeEmpty();for (var e = 0, i = t.length; e < i; e++) {\n this.expandByPoint(t[e]);\n }return this;\n }, setFromCenterAndSize: function () {\n var t = new a();return function (e, i) {\n var n = t.copy(i).multiplyScalar(.5);return this.min.copy(e).sub(n), this.max.copy(e).add(n), this;\n };\n }(), clone: function clone() {\n return new this.constructor().copy(this);\n }, copy: function copy(t) {\n return this.min.copy(t.min), this.max.copy(t.max), this;\n }, makeEmpty: function makeEmpty() {\n return this.min.x = this.min.y = 1 / 0, this.max.x = this.max.y = -1 / 0, this;\n }, isEmpty: function isEmpty() {\n return this.max.x < this.min.x || this.max.y < this.min.y;\n }, getCenter: function getCenter(t) {\n var e = t || new a();return this.isEmpty() ? e.set(0, 0) : e.addVectors(this.min, this.max).multiplyScalar(.5);\n }, getSize: function getSize(t) {\n var e = t || new a();return this.isEmpty() ? e.set(0, 0) : e.subVectors(this.max, this.min);\n }, expandByPoint: function expandByPoint(t) {\n return this.min.min(t), this.max.max(t), this;\n }, expandByVector: function expandByVector(t) {\n return this.min.sub(t), this.max.add(t), this;\n }, expandByScalar: function expandByScalar(t) {\n return this.min.addScalar(-t), this.max.addScalar(t), this;\n }, containsPoint: function containsPoint(t) {\n return !(t.x < this.min.x || t.x > this.max.x || t.y < this.min.y || t.y > this.max.y);\n }, containsBox: function containsBox(t) {\n return this.min.x <= t.min.x && t.max.x <= this.max.x && this.min.y <= t.min.y && t.max.y <= this.max.y;\n }, getParameter: function getParameter(t, e) {\n return (e || new a()).set((t.x - this.min.x) / (this.max.x - this.min.x), (t.y - this.min.y) / (this.max.y - this.min.y));\n }, intersectsBox: function intersectsBox(t) {\n return !(t.max.x < this.min.x || t.min.x > this.max.x || t.max.y < this.min.y || t.min.y > this.max.y);\n }, clampPoint: function clampPoint(t, e) {\n return (e || new a()).copy(t).clamp(this.min, this.max);\n }, distanceToPoint: function () {\n var t = new a();return function (e) {\n return t.copy(e).clamp(this.min, this.max).sub(e).length();\n };\n }(), intersect: function intersect(t) {\n return this.min.max(t.min), this.max.min(t.max), this;\n }, union: function union(t) {\n return this.min.min(t.min), this.max.max(t.max), this;\n }, translate: function translate(t) {\n return this.min.add(t), this.max.add(t), this;\n }, equals: function equals(t) {\n return t.min.equals(this.min) && t.max.equals(this.max);\n } }), _extends(q.prototype, r.prototype, { isWebGLRenderTarget: !0, setSize: function setSize(t, e) {\n this.width === t && this.height === e || (this.width = t, this.height = e, this.dispose()), this.viewport.set(0, 0, t, e), this.scissor.set(0, 0, t, e);\n }, clone: function clone() {\n return new this.constructor().copy(this);\n }, copy: function copy(t) {\n return this.width = t.width, this.height = t.height, this.viewport.copy(t.viewport), this.texture = t.texture.clone(), this.depthBuffer = t.depthBuffer, this.stencilBuffer = t.stencilBuffer, this.depthTexture = t.depthTexture, this;\n }, dispose: function dispose() {\n this.dispatchEvent({ type: \"dispose\" });\n } });var Rn = 0;_extends(Z.prototype, r.prototype, { isMaterial: !0, setValues: function setValues(t) {\n if (void 0 !== t) for (var e in t) {\n var i = t[e];if (void 0 !== i) {\n var n = this[e];void 0 !== n ? n && n.isColor ? n.set(i) : n && n.isVector3 && i && i.isVector3 ? n.copy(i) : this[e] = \"overdraw\" === e ? Number(i) : i : console.warn(\"THREE.\" + this.type + \": '\" + e + \"' is not a property of this material.\");\n } else console.warn(\"THREE.Material: '\" + e + \"' parameter is undefined.\");\n }\n }, toJSON: function toJSON(t) {\n function e(t) {\n var e = [];for (var i in t) {\n var n = t[i];delete n.metadata, e.push(n);\n }return e;\n }var i = void 0 === t;i && (t = { textures: {}, images: {} });var n = { metadata: { version: 4.5, type: \"Material\", generator: \"Material.toJSON\" } };if (n.uuid = this.uuid, n.type = this.type, \"\" !== this.name && (n.name = this.name), this.color && this.color.isColor && (n.color = this.color.getHex()), void 0 !== this.roughness && (n.roughness = this.roughness), void 0 !== this.metalness && (n.metalness = this.metalness), this.emissive && this.emissive.isColor && (n.emissive = this.emissive.getHex()), this.specular && this.specular.isColor && (n.specular = this.specular.getHex()), void 0 !== this.shininess && (n.shininess = this.shininess), void 0 !== this.clearCoat && (n.clearCoat = this.clearCoat), void 0 !== this.clearCoatRoughness && (n.clearCoatRoughness = this.clearCoatRoughness), this.map && this.map.isTexture && (n.map = this.map.toJSON(t).uuid), this.alphaMap && this.alphaMap.isTexture && (n.alphaMap = this.alphaMap.toJSON(t).uuid), this.lightMap && this.lightMap.isTexture && (n.lightMap = this.lightMap.toJSON(t).uuid), this.bumpMap && this.bumpMap.isTexture && (n.bumpMap = this.bumpMap.toJSON(t).uuid, n.bumpScale = this.bumpScale), this.normalMap && this.normalMap.isTexture && (n.normalMap = this.normalMap.toJSON(t).uuid, n.normalScale = this.normalScale.toArray()), this.displacementMap && this.displacementMap.isTexture && (n.displacementMap = this.displacementMap.toJSON(t).uuid, n.displacementScale = this.displacementScale, n.displacementBias = this.displacementBias), this.roughnessMap && this.roughnessMap.isTexture && (n.roughnessMap = this.roughnessMap.toJSON(t).uuid), this.metalnessMap && this.metalnessMap.isTexture && (n.metalnessMap = this.metalnessMap.toJSON(t).uuid), this.emissiveMap && this.emissiveMap.isTexture && (n.emissiveMap = this.emissiveMap.toJSON(t).uuid), this.specularMap && this.specularMap.isTexture && (n.specularMap = this.specularMap.toJSON(t).uuid), this.envMap && this.envMap.isTexture && (n.envMap = this.envMap.toJSON(t).uuid, n.reflectivity = this.reflectivity), this.gradientMap && this.gradientMap.isTexture && (n.gradientMap = this.gradientMap.toJSON(t).uuid), void 0 !== this.size && (n.size = this.size), void 0 !== this.sizeAttenuation && (n.sizeAttenuation = this.sizeAttenuation), this.blending !== Re && (n.blending = this.blending), this.shading !== Se && (n.shading = this.shading), this.side !== Ee && (n.side = this.side), this.vertexColors !== Le && (n.vertexColors = this.vertexColors), this.opacity < 1 && (n.opacity = this.opacity), !0 === this.transparent && (n.transparent = this.transparent), n.depthFunc = this.depthFunc, n.depthTest = this.depthTest, n.depthWrite = this.depthWrite, this.alphaTest > 0 && (n.alphaTest = this.alphaTest), !0 === this.premultipliedAlpha && (n.premultipliedAlpha = this.premultipliedAlpha), !0 === this.wireframe && (n.wireframe = this.wireframe), this.wireframeLinewidth > 1 && (n.wireframeLinewidth = this.wireframeLinewidth), \"round\" !== this.wireframeLinecap && (n.wireframeLinecap = this.wireframeLinecap), \"round\" !== this.wireframeLinejoin && (n.wireframeLinejoin = this.wireframeLinejoin), n.skinning = this.skinning, n.morphTargets = this.morphTargets, n.dithering = this.dithering, i) {\n var r = e(t.textures),\n a = e(t.images);r.length > 0 && (n.textures = r), a.length > 0 && (n.images = a);\n }return n;\n }, clone: function clone() {\n return new this.constructor().copy(this);\n }, copy: function copy(t) {\n this.name = t.name, this.fog = t.fog, this.lights = t.lights, this.blending = t.blending, this.side = t.side, this.shading = t.shading, this.vertexColors = t.vertexColors, this.opacity = t.opacity, this.transparent = t.transparent, this.blendSrc = t.blendSrc, this.blendDst = t.blendDst, this.blendEquation = t.blendEquation, this.blendSrcAlpha = t.blendSrcAlpha, this.blendDstAlpha = t.blendDstAlpha, this.blendEquationAlpha = t.blendEquationAlpha, this.depthFunc = t.depthFunc, this.depthTest = t.depthTest, this.depthWrite = t.depthWrite, this.colorWrite = t.colorWrite, this.precision = t.precision, this.polygonOffset = t.polygonOffset, this.polygonOffsetFactor = t.polygonOffsetFactor, this.polygonOffsetUnits = t.polygonOffsetUnits, this.dithering = t.dithering, this.alphaTest = t.alphaTest, this.premultipliedAlpha = t.premultipliedAlpha, this.overdraw = t.overdraw, this.visible = t.visible, this.clipShadows = t.clipShadows, this.clipIntersection = t.clipIntersection;var e = t.clippingPlanes,\n i = null;if (null !== e) {\n var n = e.length;i = new Array(n);for (var r = 0; r !== n; ++r) {\n i[r] = e[r].clone();\n }\n }return this.clippingPlanes = i, this;\n }, dispose: function dispose() {\n this.dispatchEvent({ type: \"dispose\" });\n } }), J.prototype = Object.create(Z.prototype), J.prototype.constructor = J, J.prototype.isShaderMaterial = !0, J.prototype.copy = function (t) {\n return Z.prototype.copy.call(this, t), this.fragmentShader = t.fragmentShader, this.vertexShader = t.vertexShader, this.uniforms = Sn.clone(t.uniforms), this.defines = t.defines, this.wireframe = t.wireframe, this.wireframeLinewidth = t.wireframeLinewidth, this.lights = t.lights, this.clipping = t.clipping, this.skinning = t.skinning, this.morphTargets = t.morphTargets, this.morphNormals = t.morphNormals, this.extensions = t.extensions, this;\n }, J.prototype.toJSON = function (t) {\n var e = Z.prototype.toJSON.call(this, t);return e.uniforms = this.uniforms, e.vertexShader = this.vertexShader, e.fragmentShader = this.fragmentShader, e;\n }, Q.prototype = Object.create(Z.prototype), Q.prototype.constructor = Q, Q.prototype.isMeshDepthMaterial = !0, Q.prototype.copy = function (t) {\n return Z.prototype.copy.call(this, t), this.depthPacking = t.depthPacking, this.skinning = t.skinning, this.morphTargets = t.morphTargets, this.map = t.map, this.alphaMap = t.alphaMap, this.displacementMap = t.displacementMap, this.displacementScale = t.displacementScale, this.displacementBias = t.displacementBias, this.wireframe = t.wireframe, this.wireframeLinewidth = t.wireframeLinewidth, this;\n }, _extends(K.prototype, { isBox3: !0, set: function set(t, e) {\n return this.min.copy(t), this.max.copy(e), this;\n }, setFromArray: function setFromArray(t) {\n for (var e = 1 / 0, i = 1 / 0, n = 1 / 0, r = -1 / 0, a = -1 / 0, o = -1 / 0, s = 0, l = t.length; s < l; s += 3) {\n var c = t[s],\n h = t[s + 1],\n u = t[s + 2];c < e && (e = c), h < i && (i = h), u < n && (n = u), c > r && (r = c), h > a && (a = h), u > o && (o = u);\n }return this.min.set(e, i, n), this.max.set(r, a, o), this;\n }, setFromBufferAttribute: function setFromBufferAttribute(t) {\n for (var e = 1 / 0, i = 1 / 0, n = 1 / 0, r = -1 / 0, a = -1 / 0, o = -1 / 0, s = 0, l = t.count; s < l; s++) {\n var c = t.getX(s),\n h = t.getY(s),\n u = t.getZ(s);c < e && (e = c), h < i && (i = h), u < n && (n = u), c > r && (r = c), h > a && (a = h), u > o && (o = u);\n }return this.min.set(e, i, n), this.max.set(r, a, o), this;\n }, setFromPoints: function setFromPoints(t) {\n this.makeEmpty();for (var e = 0, i = t.length; e < i; e++) {\n this.expandByPoint(t[e]);\n }return this;\n }, setFromCenterAndSize: function () {\n var t = new i();return function (e, i) {\n var n = t.copy(i).multiplyScalar(.5);return this.min.copy(e).sub(n), this.max.copy(e).add(n), this;\n };\n }(), setFromObject: function setFromObject(t) {\n return this.makeEmpty(), this.expandByObject(t);\n }, clone: function clone() {\n return new this.constructor().copy(this);\n }, copy: function copy(t) {\n return this.min.copy(t.min), this.max.copy(t.max), this;\n }, makeEmpty: function makeEmpty() {\n return this.min.x = this.min.y = this.min.z = 1 / 0, this.max.x = this.max.y = this.max.z = -1 / 0, this;\n }, isEmpty: function isEmpty() {\n return this.max.x < this.min.x || this.max.y < this.min.y || this.max.z < this.min.z;\n }, getCenter: function getCenter(t) {\n var e = t || new i();return this.isEmpty() ? e.set(0, 0, 0) : e.addVectors(this.min, this.max).multiplyScalar(.5);\n }, getSize: function getSize(t) {\n var e = t || new i();return this.isEmpty() ? e.set(0, 0, 0) : e.subVectors(this.max, this.min);\n }, expandByPoint: function expandByPoint(t) {\n return this.min.min(t), this.max.max(t), this;\n }, expandByVector: function expandByVector(t) {\n return this.min.sub(t), this.max.add(t), this;\n }, expandByScalar: function expandByScalar(t) {\n return this.min.addScalar(-t), this.max.addScalar(t), this;\n }, expandByObject: function () {\n var t = new i();return function (e) {\n var i = this;return e.updateMatrixWorld(!0), e.traverse(function (e) {\n var n,\n r,\n a = e.geometry;if (void 0 !== a) if (a.isGeometry) {\n var o = a.vertices;for (n = 0, r = o.length; n < r; n++) {\n t.copy(o[n]), t.applyMatrix4(e.matrixWorld), i.expandByPoint(t);\n }\n } else if (a.isBufferGeometry) {\n var s = a.attributes.position;if (void 0 !== s) for (n = 0, r = s.count; n < r; n++) {\n t.fromBufferAttribute(s, n).applyMatrix4(e.matrixWorld), i.expandByPoint(t);\n }\n }\n }), this;\n };\n }(), containsPoint: function containsPoint(t) {\n return !(t.x < this.min.x || t.x > this.max.x || t.y < this.min.y || t.y > this.max.y || t.z < this.min.z || t.z > this.max.z);\n }, containsBox: function containsBox(t) {\n return this.min.x <= t.min.x && t.max.x <= this.max.x && this.min.y <= t.min.y && t.max.y <= this.max.y && this.min.z <= t.min.z && t.max.z <= this.max.z;\n }, getParameter: function getParameter(t, e) {\n return (e || new i()).set((t.x - this.min.x) / (this.max.x - this.min.x), (t.y - this.min.y) / (this.max.y - this.min.y), (t.z - this.min.z) / (this.max.z - this.min.z));\n }, intersectsBox: function intersectsBox(t) {\n return !(t.max.x < this.min.x || t.min.x > this.max.x || t.max.y < this.min.y || t.min.y > this.max.y || t.max.z < this.min.z || t.min.z > this.max.z);\n }, intersectsSphere: function () {\n var t;return function (e) {\n return void 0 === t && (t = new i()), this.clampPoint(e.center, t), t.distanceToSquared(e.center) <= e.radius * e.radius;\n };\n }(), intersectsPlane: function intersectsPlane(t) {\n var e, i;return t.normal.x > 0 ? (e = t.normal.x * this.min.x, i = t.normal.x * this.max.x) : (e = t.normal.x * this.max.x, i = t.normal.x * this.min.x), t.normal.y > 0 ? (e += t.normal.y * this.min.y, i += t.normal.y * this.max.y) : (e += t.normal.y * this.max.y, i += t.normal.y * this.min.y), t.normal.z > 0 ? (e += t.normal.z * this.min.z, i += t.normal.z * this.max.z) : (e += t.normal.z * this.max.z, i += t.normal.z * this.min.z), e <= t.constant && i >= t.constant;\n }, clampPoint: function clampPoint(t, e) {\n return (e || new i()).copy(t).clamp(this.min, this.max);\n }, distanceToPoint: function () {\n var t = new i();return function (e) {\n return t.copy(e).clamp(this.min, this.max).sub(e).length();\n };\n }(), getBoundingSphere: function () {\n var t = new i();return function (e) {\n var i = e || new $();return this.getCenter(i.center), i.radius = .5 * this.getSize(t).length(), i;\n };\n }(), intersect: function intersect(t) {\n return this.min.max(t.min), this.max.min(t.max), this.isEmpty() && this.makeEmpty(), this;\n }, union: function union(t) {\n return this.min.min(t.min), this.max.max(t.max), this;\n }, applyMatrix4: function () {\n var t = [new i(), new i(), new i(), new i(), new i(), new i(), new i(), new i()];return function (e) {\n return this.isEmpty() ? this : (t[0].set(this.min.x, this.min.y, this.min.z).applyMatrix4(e), t[1].set(this.min.x, this.min.y, this.max.z).applyMatrix4(e), t[2].set(this.min.x, this.max.y, this.min.z).applyMatrix4(e), t[3].set(this.min.x, this.max.y, this.max.z).applyMatrix4(e), t[4].set(this.max.x, this.min.y, this.min.z).applyMatrix4(e), t[5].set(this.max.x, this.min.y, this.max.z).applyMatrix4(e), t[6].set(this.max.x, this.max.y, this.min.z).applyMatrix4(e), t[7].set(this.max.x, this.max.y, this.max.z).applyMatrix4(e), this.setFromPoints(t), this);\n };\n }(), translate: function translate(t) {\n return this.min.add(t), this.max.add(t), this;\n }, equals: function equals(t) {\n return t.min.equals(this.min) && t.max.equals(this.max);\n } }), _extends($.prototype, { set: function set(t, e) {\n return this.center.copy(t), this.radius = e, this;\n }, setFromPoints: function () {\n var t;return function (e, i) {\n void 0 === t && (t = new K());var n = this.center;void 0 !== i ? n.copy(i) : t.setFromPoints(e).getCenter(n);for (var r = 0, a = 0, o = e.length; a < o; a++) {\n r = Math.max(r, n.distanceToSquared(e[a]));\n }return this.radius = Math.sqrt(r), this;\n };\n }(), clone: function clone() {\n return new this.constructor().copy(this);\n }, copy: function copy(t) {\n return this.center.copy(t.center), this.radius = t.radius, this;\n }, empty: function empty() {\n return this.radius <= 0;\n }, containsPoint: function containsPoint(t) {\n return t.distanceToSquared(this.center) <= this.radius * this.radius;\n }, distanceToPoint: function distanceToPoint(t) {\n return t.distanceTo(this.center) - this.radius;\n }, intersectsSphere: function intersectsSphere(t) {\n var e = this.radius + t.radius;return t.center.distanceToSquared(this.center) <= e * e;\n }, intersectsBox: function intersectsBox(t) {\n return t.intersectsSphere(this);\n }, intersectsPlane: function intersectsPlane(t) {\n return Math.abs(this.center.dot(t.normal) - t.constant) <= this.radius;\n }, clampPoint: function clampPoint(t, e) {\n var n = this.center.distanceToSquared(t),\n r = e || new i();return r.copy(t), n > this.radius * this.radius && (r.sub(this.center).normalize(), r.multiplyScalar(this.radius).add(this.center)), r;\n }, getBoundingBox: function getBoundingBox(t) {\n var e = t || new K();return e.set(this.center, this.center), e.expandByScalar(this.radius), e;\n }, applyMatrix4: function applyMatrix4(t) {\n return this.center.applyMatrix4(t), this.radius = this.radius * t.getMaxScaleOnAxis(), this;\n }, translate: function translate(t) {\n return this.center.add(t), this;\n }, equals: function equals(t) {\n return t.center.equals(this.center) && t.radius === this.radius;\n } }), _extends(tt.prototype, { isMatrix3: !0, set: function set(t, e, i, n, r, a, o, s, l) {\n var c = this.elements;return c[0] = t, c[1] = n, c[2] = o, c[3] = e, c[4] = r, c[5] = s, c[6] = i, c[7] = a, c[8] = l, this;\n }, identity: function identity() {\n return this.set(1, 0, 0, 0, 1, 0, 0, 0, 1), this;\n }, clone: function clone() {\n return new this.constructor().fromArray(this.elements);\n }, copy: function copy(t) {\n var e = this.elements,\n i = t.elements;return e[0] = i[0], e[1] = i[1], e[2] = i[2], e[3] = i[3], e[4] = i[4], e[5] = i[5], e[6] = i[6], e[7] = i[7], e[8] = i[8], this;\n }, setFromMatrix4: function setFromMatrix4(t) {\n var e = t.elements;return this.set(e[0], e[4], e[8], e[1], e[5], e[9], e[2], e[6], e[10]), this;\n }, applyToBufferAttribute: function () {\n var t;return function (e) {\n void 0 === t && (t = new i());for (var n = 0, r = e.count; n < r; n++) {\n t.x = e.getX(n), t.y = e.getY(n), t.z = e.getZ(n), t.applyMatrix3(this), e.setXYZ(n, t.x, t.y, t.z);\n }return e;\n };\n }(), multiply: function multiply(t) {\n return this.multiplyMatrices(this, t);\n }, premultiply: function premultiply(t) {\n return this.multiplyMatrices(t, this);\n }, multiplyMatrices: function multiplyMatrices(t, e) {\n var i = t.elements,\n n = e.elements,\n r = this.elements,\n a = i[0],\n o = i[3],\n s = i[6],\n l = i[1],\n c = i[4],\n h = i[7],\n u = i[2],\n d = i[5],\n f = i[8],\n p = n[0],\n m = n[3],\n g = n[6],\n v = n[1],\n _ = n[4],\n x = n[7],\n y = n[2],\n M = n[5],\n E = n[8];return r[0] = a * p + o * v + s * y, r[3] = a * m + o * _ + s * M, r[6] = a * g + o * x + s * E, r[1] = l * p + c * v + h * y, r[4] = l * m + c * _ + h * M, r[7] = l * g + c * x + h * E, r[2] = u * p + d * v + f * y, r[5] = u * m + d * _ + f * M, r[8] = u * g + d * x + f * E, this;\n }, multiplyScalar: function multiplyScalar(t) {\n var e = this.elements;return e[0] *= t, e[3] *= t, e[6] *= t, e[1] *= t, e[4] *= t, e[7] *= t, e[2] *= t, e[5] *= t, e[8] *= t, this;\n }, determinant: function determinant() {\n var t = this.elements,\n e = t[0],\n i = t[1],\n n = t[2],\n r = t[3],\n a = t[4],\n o = t[5],\n s = t[6],\n l = t[7],\n c = t[8];return e * a * c - e * o * l - i * r * c + i * o * s + n * r * l - n * a * s;\n }, getInverse: function getInverse(t, e) {\n t && t.isMatrix4 && console.error(\"THREE.Matrix3.getInverse no longer takes a Matrix4 argument.\");var i = t.elements,\n n = this.elements,\n r = i[0],\n a = i[1],\n o = i[2],\n s = i[3],\n l = i[4],\n c = i[5],\n h = i[6],\n u = i[7],\n d = i[8],\n f = d * l - c * u,\n p = c * h - d * s,\n m = u * s - l * h,\n g = r * f + a * p + o * m;if (0 === g) {\n var v = \"THREE.Matrix3.getInverse(): can't invert matrix, determinant is 0\";if (!0 === e) throw new Error(v);return console.warn(v), this.identity();\n }var _ = 1 / g;return n[0] = f * _, n[1] = (o * u - d * a) * _, n[2] = (c * a - o * l) * _, n[3] = p * _, n[4] = (d * r - o * h) * _, n[5] = (o * s - c * r) * _, n[6] = m * _, n[7] = (a * h - u * r) * _, n[8] = (l * r - a * s) * _, this;\n }, transpose: function transpose() {\n var t,\n e = this.elements;return t = e[1], e[1] = e[3], e[3] = t, t = e[2], e[2] = e[6], e[6] = t, t = e[5], e[5] = e[7], e[7] = t, this;\n }, getNormalMatrix: function getNormalMatrix(t) {\n return this.setFromMatrix4(t).getInverse(this).transpose();\n }, transposeIntoArray: function transposeIntoArray(t) {\n var e = this.elements;return t[0] = e[0], t[1] = e[3], t[2] = e[6], t[3] = e[1], t[4] = e[4], t[5] = e[7], t[6] = e[2], t[7] = e[5], t[8] = e[8], this;\n }, equals: function equals(t) {\n for (var e = this.elements, i = t.elements, n = 0; n < 9; n++) {\n if (e[n] !== i[n]) return !1;\n }return !0;\n }, fromArray: function fromArray(t, e) {\n void 0 === e && (e = 0);for (var i = 0; i < 9; i++) {\n this.elements[i] = t[i + e];\n }return this;\n }, toArray: function toArray(t, e) {\n void 0 === t && (t = []), void 0 === e && (e = 0);var i = this.elements;return t[e] = i[0], t[e + 1] = i[1], t[e + 2] = i[2], t[e + 3] = i[3], t[e + 4] = i[4], t[e + 5] = i[5], t[e + 6] = i[6], t[e + 7] = i[7], t[e + 8] = i[8], t;\n } }), _extends(et.prototype, { set: function set(t, e) {\n return this.normal.copy(t), this.constant = e, this;\n }, setComponents: function setComponents(t, e, i, n) {\n return this.normal.set(t, e, i), this.constant = n, this;\n }, setFromNormalAndCoplanarPoint: function setFromNormalAndCoplanarPoint(t, e) {\n return this.normal.copy(t), this.constant = -e.dot(this.normal), this;\n }, setFromCoplanarPoints: function () {\n var t = new i(),\n e = new i();return function (i, n, r) {\n var a = t.subVectors(r, n).cross(e.subVectors(i, n)).normalize();return this.setFromNormalAndCoplanarPoint(a, i), this;\n };\n }(), clone: function clone() {\n return new this.constructor().copy(this);\n }, copy: function copy(t) {\n return this.normal.copy(t.normal), this.constant = t.constant, this;\n }, normalize: function normalize() {\n var t = 1 / this.normal.length();return this.normal.multiplyScalar(t), this.constant *= t, this;\n }, negate: function negate() {\n return this.constant *= -1, this.normal.negate(), this;\n }, distanceToPoint: function distanceToPoint(t) {\n return this.normal.dot(t) + this.constant;\n }, distanceToSphere: function distanceToSphere(t) {\n return this.distanceToPoint(t.center) - t.radius;\n }, projectPoint: function projectPoint(t, e) {\n return this.orthoPoint(t, e).sub(t).negate();\n }, orthoPoint: function orthoPoint(t, e) {\n var n = this.distanceToPoint(t);return (e || new i()).copy(this.normal).multiplyScalar(n);\n }, intersectLine: function () {\n var t = new i();return function (e, n) {\n var r = n || new i(),\n a = e.delta(t),\n o = this.normal.dot(a);if (0 !== o) {\n var s = -(e.start.dot(this.normal) + this.constant) / o;if (!(s < 0 || s > 1)) return r.copy(a).multiplyScalar(s).add(e.start);\n } else if (0 === this.distanceToPoint(e.start)) return r.copy(e.start);\n };\n }(), intersectsLine: function intersectsLine(t) {\n var e = this.distanceToPoint(t.start),\n i = this.distanceToPoint(t.end);return e < 0 && i > 0 || i < 0 && e > 0;\n }, intersectsBox: function intersectsBox(t) {\n return t.intersectsPlane(this);\n }, intersectsSphere: function intersectsSphere(t) {\n return t.intersectsPlane(this);\n }, coplanarPoint: function coplanarPoint(t) {\n return (t || new i()).copy(this.normal).multiplyScalar(-this.constant);\n }, applyMatrix4: function () {\n var t = new i(),\n e = new tt();return function (i, n) {\n var r = this.coplanarPoint(t).applyMatrix4(i),\n a = n || e.getNormalMatrix(i),\n o = this.normal.applyMatrix3(a).normalize();return this.constant = -r.dot(o), this;\n };\n }(), translate: function translate(t) {\n return this.constant = this.constant - t.dot(this.normal), this;\n }, equals: function equals(t) {\n return t.normal.equals(this.normal) && t.constant === this.constant;\n } }), _extends(it.prototype, { set: function set(t, e, i, n, r, a) {\n var o = this.planes;return o[0].copy(t), o[1].copy(e), o[2].copy(i), o[3].copy(n), o[4].copy(r), o[5].copy(a), this;\n }, clone: function clone() {\n return new this.constructor().copy(this);\n }, copy: function copy(t) {\n for (var e = this.planes, i = 0; i < 6; i++) {\n e[i].copy(t.planes[i]);\n }return this;\n }, setFromMatrix: function setFromMatrix(t) {\n var e = this.planes,\n i = t.elements,\n n = i[0],\n r = i[1],\n a = i[2],\n o = i[3],\n s = i[4],\n l = i[5],\n c = i[6],\n h = i[7],\n u = i[8],\n d = i[9],\n f = i[10],\n p = i[11],\n m = i[12],\n g = i[13],\n v = i[14],\n _ = i[15];return e[0].setComponents(o - n, h - s, p - u, _ - m).normalize(), e[1].setComponents(o + n, h + s, p + u, _ + m).normalize(), e[2].setComponents(o + r, h + l, p + d, _ + g).normalize(), e[3].setComponents(o - r, h - l, p - d, _ - g).normalize(), e[4].setComponents(o - a, h - c, p - f, _ - v).normalize(), e[5].setComponents(o + a, h + c, p + f, _ + v).normalize(), this;\n }, intersectsObject: function () {\n var t = new $();return function (e) {\n var i = e.geometry;return null === i.boundingSphere && i.computeBoundingSphere(), t.copy(i.boundingSphere).applyMatrix4(e.matrixWorld), this.intersectsSphere(t);\n };\n }(), intersectsSprite: function () {\n var t = new $();return function (e) {\n return t.center.set(0, 0, 0), t.radius = .7071067811865476, t.applyMatrix4(e.matrixWorld), this.intersectsSphere(t);\n };\n }(), intersectsSphere: function intersectsSphere(t) {\n for (var e = this.planes, i = t.center, n = -t.radius, r = 0; r < 6; r++) {\n if (e[r].distanceToPoint(i) < n) return !1;\n }return !0;\n }, intersectsBox: function () {\n var t = new i(),\n e = new i();return function (i) {\n for (var n = this.planes, r = 0; r < 6; r++) {\n var a = n[r];t.x = a.normal.x > 0 ? i.min.x : i.max.x, e.x = a.normal.x > 0 ? i.max.x : i.min.x, t.y = a.normal.y > 0 ? i.min.y : i.max.y, e.y = a.normal.y > 0 ? i.max.y : i.min.y, t.z = a.normal.z > 0 ? i.min.z : i.max.z, e.z = a.normal.z > 0 ? i.max.z : i.min.z;var o = a.distanceToPoint(t),\n s = a.distanceToPoint(e);if (o < 0 && s < 0) return !1;\n }return !0;\n };\n }(), containsPoint: function containsPoint(t) {\n for (var e = this.planes, i = 0; i < 6; i++) {\n if (e[i].distanceToPoint(t) < 0) return !1;\n }return !0;\n } }), _extends(rt.prototype, { set: function set(t, e) {\n return this.origin.copy(t), this.direction.copy(e), this;\n }, clone: function clone() {\n return new this.constructor().copy(this);\n }, copy: function copy(t) {\n return this.origin.copy(t.origin), this.direction.copy(t.direction), this;\n }, at: function at(t, e) {\n return (e || new i()).copy(this.direction).multiplyScalar(t).add(this.origin);\n }, lookAt: function lookAt(t) {\n return this.direction.copy(t).sub(this.origin).normalize(), this;\n }, recast: function () {\n var t = new i();return function (e) {\n return this.origin.copy(this.at(e, t)), this;\n };\n }(), closestPointToPoint: function closestPointToPoint(t, e) {\n var n = e || new i();n.subVectors(t, this.origin);var r = n.dot(this.direction);return r < 0 ? n.copy(this.origin) : n.copy(this.direction).multiplyScalar(r).add(this.origin);\n }, distanceToPoint: function distanceToPoint(t) {\n return Math.sqrt(this.distanceSqToPoint(t));\n }, distanceSqToPoint: function () {\n var t = new i();return function (e) {\n var i = t.subVectors(e, this.origin).dot(this.direction);return i < 0 ? this.origin.distanceToSquared(e) : (t.copy(this.direction).multiplyScalar(i).add(this.origin), t.distanceToSquared(e));\n };\n }(), distanceSqToSegment: function () {\n var t = new i(),\n e = new i(),\n n = new i();return function (i, r, a, o) {\n t.copy(i).add(r).multiplyScalar(.5), e.copy(r).sub(i).normalize(), n.copy(this.origin).sub(t);var s,\n l,\n c,\n h,\n u = .5 * i.distanceTo(r),\n d = -this.direction.dot(e),\n f = n.dot(this.direction),\n p = -n.dot(e),\n m = n.lengthSq(),\n g = Math.abs(1 - d * d);if (g > 0) {\n if (s = d * p - f, l = d * f - p, h = u * g, s >= 0) {\n if (l >= -h) {\n if (l <= h) {\n var v = 1 / g;s *= v, l *= v, c = s * (s + d * l + 2 * f) + l * (d * s + l + 2 * p) + m;\n } else l = u, s = Math.max(0, -(d * l + f)), c = -s * s + l * (l + 2 * p) + m;\n } else l = -u, s = Math.max(0, -(d * l + f)), c = -s * s + l * (l + 2 * p) + m;\n } else l <= -h ? (s = Math.max(0, -(-d * u + f)), l = s > 0 ? -u : Math.min(Math.max(-u, -p), u), c = -s * s + l * (l + 2 * p) + m) : l <= h ? (s = 0, l = Math.min(Math.max(-u, -p), u), c = l * (l + 2 * p) + m) : (s = Math.max(0, -(d * u + f)), l = s > 0 ? u : Math.min(Math.max(-u, -p), u), c = -s * s + l * (l + 2 * p) + m);\n } else l = d > 0 ? -u : u, s = Math.max(0, -(d * l + f)), c = -s * s + l * (l + 2 * p) + m;return a && a.copy(this.direction).multiplyScalar(s).add(this.origin), o && o.copy(e).multiplyScalar(l).add(t), c;\n };\n }(), intersectSphere: function () {\n var t = new i();return function (e, i) {\n t.subVectors(e.center, this.origin);var n = t.dot(this.direction),\n r = t.dot(t) - n * n,\n a = e.radius * e.radius;if (r > a) return null;var o = Math.sqrt(a - r),\n s = n - o,\n l = n + o;return s < 0 && l < 0 ? null : s < 0 ? this.at(l, i) : this.at(s, i);\n };\n }(), intersectsSphere: function intersectsSphere(t) {\n return this.distanceToPoint(t.center) <= t.radius;\n }, distanceToPlane: function distanceToPlane(t) {\n var e = t.normal.dot(this.direction);if (0 === e) return 0 === t.distanceToPoint(this.origin) ? 0 : null;var i = -(this.origin.dot(t.normal) + t.constant) / e;return i >= 0 ? i : null;\n }, intersectPlane: function intersectPlane(t, e) {\n var i = this.distanceToPlane(t);return null === i ? null : this.at(i, e);\n }, intersectsPlane: function intersectsPlane(t) {\n var e = t.distanceToPoint(this.origin);return 0 === e || t.normal.dot(this.direction) * e < 0;\n }, intersectBox: function intersectBox(t, e) {\n var i,\n n,\n r,\n a,\n o,\n s,\n l = 1 / this.direction.x,\n c = 1 / this.direction.y,\n h = 1 / this.direction.z,\n u = this.origin;return l >= 0 ? (i = (t.min.x - u.x) * l, n = (t.max.x - u.x) * l) : (i = (t.max.x - u.x) * l, n = (t.min.x - u.x) * l), c >= 0 ? (r = (t.min.y - u.y) * c, a = (t.max.y - u.y) * c) : (r = (t.max.y - u.y) * c, a = (t.min.y - u.y) * c), i > a || r > n ? null : ((r > i || i !== i) && (i = r), (a < n || n !== n) && (n = a), h >= 0 ? (o = (t.min.z - u.z) * h, s = (t.max.z - u.z) * h) : (o = (t.max.z - u.z) * h, s = (t.min.z - u.z) * h), i > s || o > n ? null : ((o > i || i !== i) && (i = o), (s < n || n !== n) && (n = s), n < 0 ? null : this.at(i >= 0 ? i : n, e)));\n }, intersectsBox: function () {\n var t = new i();return function (e) {\n return null !== this.intersectBox(e, t);\n };\n }(), intersectTriangle: function () {\n var t = new i(),\n e = new i(),\n n = new i(),\n r = new i();return function (i, a, o, s, l) {\n e.subVectors(a, i), n.subVectors(o, i), r.crossVectors(e, n);var c,\n h = this.direction.dot(r);if (h > 0) {\n if (s) return null;c = 1;\n } else {\n if (!(h < 0)) return null;c = -1, h = -h;\n }t.subVectors(this.origin, i);var u = c * this.direction.dot(n.crossVectors(t, n));if (u < 0) return null;var d = c * this.direction.dot(e.cross(t));if (d < 0) return null;if (u + d > h) return null;var f = -c * t.dot(r);return f < 0 ? null : this.at(f / h, l);\n };\n }(), applyMatrix4: function applyMatrix4(t) {\n return this.direction.add(this.origin).applyMatrix4(t), this.origin.applyMatrix4(t), this.direction.sub(this.origin), this.direction.normalize(), this;\n }, equals: function equals(t) {\n return t.origin.equals(this.origin) && t.direction.equals(this.direction);\n } }), at.RotationOrders = [\"XYZ\", \"YZX\", \"ZXY\", \"XZY\", \"YXZ\", \"ZYX\"], at.DefaultOrder = \"XYZ\", Object.defineProperties(at.prototype, { x: { get: function get() {\n return this._x;\n }, set: function set(t) {\n this._x = t, this.onChangeCallback();\n } }, y: { get: function get() {\n return this._y;\n }, set: function set(t) {\n this._y = t, this.onChangeCallback();\n } }, z: { get: function get() {\n return this._z;\n }, set: function set(t) {\n this._z = t, this.onChangeCallback();\n } }, order: { get: function get() {\n return this._order;\n }, set: function set(t) {\n this._order = t, this.onChangeCallback();\n } } }), _extends(at.prototype, { isEuler: !0, set: function set(t, e, i, n) {\n return this._x = t, this._y = e, this._z = i, this._order = n || this._order, this.onChangeCallback(), this;\n }, clone: function clone() {\n return new this.constructor(this._x, this._y, this._z, this._order);\n }, copy: function copy(t) {\n return this._x = t._x, this._y = t._y, this._z = t._z, this._order = t._order, this.onChangeCallback(), this;\n }, setFromRotationMatrix: function setFromRotationMatrix(t, e, i) {\n var n = mn.clamp,\n r = t.elements,\n a = r[0],\n o = r[4],\n s = r[8],\n l = r[1],\n c = r[5],\n h = r[9],\n u = r[2],\n d = r[6],\n f = r[10];return e = e || this._order, \"XYZ\" === e ? (this._y = Math.asin(n(s, -1, 1)), Math.abs(s) < .99999 ? (this._x = Math.atan2(-h, f), this._z = Math.atan2(-o, a)) : (this._x = Math.atan2(d, c), this._z = 0)) : \"YXZ\" === e ? (this._x = Math.asin(-n(h, -1, 1)), Math.abs(h) < .99999 ? (this._y = Math.atan2(s, f), this._z = Math.atan2(l, c)) : (this._y = Math.atan2(-u, a), this._z = 0)) : \"ZXY\" === e ? (this._x = Math.asin(n(d, -1, 1)), Math.abs(d) < .99999 ? (this._y = Math.atan2(-u, f), this._z = Math.atan2(-o, c)) : (this._y = 0, this._z = Math.atan2(l, a))) : \"ZYX\" === e ? (this._y = Math.asin(-n(u, -1, 1)), Math.abs(u) < .99999 ? (this._x = Math.atan2(d, f), this._z = Math.atan2(l, a)) : (this._x = 0, this._z = Math.atan2(-o, c))) : \"YZX\" === e ? (this._z = Math.asin(n(l, -1, 1)), Math.abs(l) < .99999 ? (this._x = Math.atan2(-h, c), this._y = Math.atan2(-u, a)) : (this._x = 0, this._y = Math.atan2(s, f))) : \"XZY\" === e ? (this._z = Math.asin(-n(o, -1, 1)), Math.abs(o) < .99999 ? (this._x = Math.atan2(d, c), this._y = Math.atan2(s, a)) : (this._x = Math.atan2(-h, f), this._y = 0)) : console.warn(\"THREE.Euler: .setFromRotationMatrix() given unsupported order: \" + e), this._order = e, !1 !== i && this.onChangeCallback(), this;\n }, setFromQuaternion: function () {\n var t;return function (e, i, r) {\n return void 0 === t && (t = new n()), t.makeRotationFromQuaternion(e), this.setFromRotationMatrix(t, i, r);\n };\n }(), setFromVector3: function setFromVector3(t, e) {\n return this.set(t.x, t.y, t.z, e || this._order);\n }, reorder: function () {\n var t = new e();return function (e) {\n return t.setFromEuler(this), this.setFromQuaternion(t, e);\n };\n }(), equals: function equals(t) {\n return t._x === this._x && t._y === this._y && t._z === this._z && t._order === this._order;\n }, fromArray: function fromArray(t) {\n return this._x = t[0], this._y = t[1], this._z = t[2], void 0 !== t[3] && (this._order = t[3]), this.onChangeCallback(), this;\n }, toArray: function toArray(t, e) {\n return void 0 === t && (t = []), void 0 === e && (e = 0), t[e] = this._x, t[e + 1] = this._y, t[e + 2] = this._z, t[e + 3] = this._order, t;\n }, toVector3: function toVector3(t) {\n return t ? t.set(this._x, this._y, this._z) : new i(this._x, this._y, this._z);\n }, onChange: function onChange(t) {\n return this.onChangeCallback = t, this;\n }, onChangeCallback: function onChangeCallback() {} }), _extends(ot.prototype, { set: function set(t) {\n this.mask = 1 << t | 0;\n }, enable: function enable(t) {\n this.mask |= 1 << t | 0;\n }, toggle: function toggle(t) {\n this.mask ^= 1 << t | 0;\n }, disable: function disable(t) {\n this.mask &= ~(1 << t | 0);\n }, test: function test(t) {\n return 0 != (this.mask & t.mask);\n } });var Pn = 0;st.DefaultUp = new i(0, 1, 0), st.DefaultMatrixAutoUpdate = !0, _extends(st.prototype, r.prototype, { isObject3D: !0, applyMatrix: function applyMatrix(t) {\n this.matrix.multiplyMatrices(t, this.matrix), this.matrix.decompose(this.position, this.quaternion, this.scale);\n }, setRotationFromAxisAngle: function setRotationFromAxisAngle(t, e) {\n this.quaternion.setFromAxisAngle(t, e);\n }, setRotationFromEuler: function setRotationFromEuler(t) {\n this.quaternion.setFromEuler(t, !0);\n }, setRotationFromMatrix: function setRotationFromMatrix(t) {\n this.quaternion.setFromRotationMatrix(t);\n }, setRotationFromQuaternion: function setRotationFromQuaternion(t) {\n this.quaternion.copy(t);\n }, rotateOnAxis: function () {\n var t = new e();return function (e, i) {\n return t.setFromAxisAngle(e, i), this.quaternion.multiply(t), this;\n };\n }(), rotateX: function () {\n var t = new i(1, 0, 0);return function (e) {\n return this.rotateOnAxis(t, e);\n };\n }(), rotateY: function () {\n var t = new i(0, 1, 0);return function (e) {\n return this.rotateOnAxis(t, e);\n };\n }(), rotateZ: function () {\n var t = new i(0, 0, 1);return function (e) {\n return this.rotateOnAxis(t, e);\n };\n }(), translateOnAxis: function () {\n var t = new i();return function (e, i) {\n return t.copy(e).applyQuaternion(this.quaternion), this.position.add(t.multiplyScalar(i)), this;\n };\n }(), translateX: function () {\n var t = new i(1, 0, 0);return function (e) {\n return this.translateOnAxis(t, e);\n };\n }(), translateY: function () {\n var t = new i(0, 1, 0);return function (e) {\n return this.translateOnAxis(t, e);\n };\n }(), translateZ: function () {\n var t = new i(0, 0, 1);return function (e) {\n return this.translateOnAxis(t, e);\n };\n }(), localToWorld: function localToWorld(t) {\n return t.applyMatrix4(this.matrixWorld);\n }, worldToLocal: function () {\n var t = new n();return function (e) {\n return e.applyMatrix4(t.getInverse(this.matrixWorld));\n };\n }(), lookAt: function () {\n var t = new n();return function (e) {\n this.isCamera ? t.lookAt(this.position, e, this.up) : t.lookAt(e, this.position, this.up), this.quaternion.setFromRotationMatrix(t);\n };\n }(), add: function add(t) {\n if (arguments.length > 1) {\n for (var e = 0; e < arguments.length; e++) {\n this.add(arguments[e]);\n }return this;\n }return t === this ? (console.error(\"THREE.Object3D.add: object can't be added as a child of itself.\", t), this) : (t && t.isObject3D ? (null !== t.parent && t.parent.remove(t), t.parent = this, t.dispatchEvent({ type: \"added\" }), this.children.push(t)) : console.error(\"THREE.Object3D.add: object not an instance of THREE.Object3D.\", t), this);\n }, remove: function remove(t) {\n if (arguments.length > 1) for (var e = 0; e < arguments.length; e++) {\n this.remove(arguments[e]);\n }var i = this.children.indexOf(t);-1 !== i && (t.parent = null, t.dispatchEvent({ type: \"removed\" }), this.children.splice(i, 1));\n }, getObjectById: function getObjectById(t) {\n return this.getObjectByProperty(\"id\", t);\n }, getObjectByName: function getObjectByName(t) {\n return this.getObjectByProperty(\"name\", t);\n }, getObjectByProperty: function getObjectByProperty(t, e) {\n if (this[t] === e) return this;for (var i = 0, n = this.children.length; i < n; i++) {\n var r = this.children[i],\n a = r.getObjectByProperty(t, e);if (void 0 !== a) return a;\n }\n }, getWorldPosition: function getWorldPosition(t) {\n var e = t || new i();return this.updateMatrixWorld(!0), e.setFromMatrixPosition(this.matrixWorld);\n }, getWorldQuaternion: function () {\n var t = new i(),\n n = new i();return function (i) {\n var r = i || new e();return this.updateMatrixWorld(!0), this.matrixWorld.decompose(t, r, n), r;\n };\n }(), getWorldRotation: function () {\n var t = new e();return function (e) {\n var i = e || new at();return this.getWorldQuaternion(t), i.setFromQuaternion(t, this.rotation.order, !1);\n };\n }(), getWorldScale: function () {\n var t = new i(),\n n = new e();return function (e) {\n var r = e || new i();return this.updateMatrixWorld(!0), this.matrixWorld.decompose(t, n, r), r;\n };\n }(), getWorldDirection: function () {\n var t = new e();return function (e) {\n var n = e || new i();return this.getWorldQuaternion(t), n.set(0, 0, 1).applyQuaternion(t);\n };\n }(), raycast: function raycast() {}, traverse: function traverse(t) {\n t(this);for (var e = this.children, i = 0, n = e.length; i < n; i++) {\n e[i].traverse(t);\n }\n }, traverseVisible: function traverseVisible(t) {\n if (!1 !== this.visible) {\n t(this);for (var e = this.children, i = 0, n = e.length; i < n; i++) {\n e[i].traverseVisible(t);\n }\n }\n }, traverseAncestors: function traverseAncestors(t) {\n var e = this.parent;null !== e && (t(e), e.traverseAncestors(t));\n }, updateMatrix: function updateMatrix() {\n this.matrix.compose(this.position, this.quaternion, this.scale), this.matrixWorldNeedsUpdate = !0;\n }, updateMatrixWorld: function updateMatrixWorld(t) {\n this.matrixAutoUpdate && this.updateMatrix(), (this.matrixWorldNeedsUpdate || t) && (null === this.parent ? this.matrixWorld.copy(this.matrix) : this.matrixWorld.multiplyMatrices(this.parent.matrixWorld, this.matrix), this.matrixWorldNeedsUpdate = !1, t = !0);for (var e = this.children, i = 0, n = e.length; i < n; i++) {\n e[i].updateMatrixWorld(t);\n }\n }, toJSON: function toJSON(t) {\n function e(e, i) {\n return void 0 === e[i.uuid] && (e[i.uuid] = i.toJSON(t)), i.uuid;\n }function i(t) {\n var e = [];for (var i in t) {\n var n = t[i];delete n.metadata, e.push(n);\n }return e;\n }var n = void 0 === t || \"\" === t,\n r = {};n && (t = { geometries: {}, materials: {}, textures: {}, images: {} }, r.metadata = { version: 4.5, type: \"Object\", generator: \"Object3D.toJSON\" });var a = {};if (a.uuid = this.uuid, a.type = this.type, \"\" !== this.name && (a.name = this.name), \"{}\" !== JSON.stringify(this.userData) && (a.userData = this.userData), !0 === this.castShadow && (a.castShadow = !0), !0 === this.receiveShadow && (a.receiveShadow = !0), !1 === this.visible && (a.visible = !1), a.matrix = this.matrix.toArray(), void 0 !== this.geometry && (a.geometry = e(t.geometries, this.geometry)), void 0 !== this.material) if (Array.isArray(this.material)) {\n for (var o = [], s = 0, l = this.material.length; s < l; s++) {\n o.push(e(t.materials, this.material[s]));\n }a.material = o;\n } else a.material = e(t.materials, this.material);if (this.children.length > 0) {\n a.children = [];for (var s = 0; s < this.children.length; s++) {\n a.children.push(this.children[s].toJSON(t).object);\n }\n }if (n) {\n var c = i(t.geometries),\n h = i(t.materials),\n u = i(t.textures),\n d = i(t.images);c.length > 0 && (r.geometries = c), h.length > 0 && (r.materials = h), u.length > 0 && (r.textures = u), d.length > 0 && (r.images = d);\n }return r.object = a, r;\n }, clone: function clone(t) {\n return new this.constructor().copy(this, t);\n }, copy: function copy(t, e) {\n if (void 0 === e && (e = !0), this.name = t.name, this.up.copy(t.up), this.position.copy(t.position), this.quaternion.copy(t.quaternion), this.scale.copy(t.scale), this.matrix.copy(t.matrix), this.matrixWorld.copy(t.matrixWorld), this.matrixAutoUpdate = t.matrixAutoUpdate, this.matrixWorldNeedsUpdate = t.matrixWorldNeedsUpdate, this.layers.mask = t.layers.mask, this.visible = t.visible, this.castShadow = t.castShadow, this.receiveShadow = t.receiveShadow, this.frustumCulled = t.frustumCulled, this.renderOrder = t.renderOrder, this.userData = JSON.parse(JSON.stringify(t.userData)), !0 === e) for (var i = 0; i < t.children.length; i++) {\n var n = t.children[i];this.add(n.clone());\n }return this;\n } }), _extends(lt.prototype, { set: function set(t, e) {\n return this.start.copy(t), this.end.copy(e), this;\n }, clone: function clone() {\n return new this.constructor().copy(this);\n }, copy: function copy(t) {\n return this.start.copy(t.start), this.end.copy(t.end), this;\n }, getCenter: function getCenter(t) {\n return (t || new i()).addVectors(this.start, this.end).multiplyScalar(.5);\n }, delta: function delta(t) {\n return (t || new i()).subVectors(this.end, this.start);\n }, distanceSq: function distanceSq() {\n return this.start.distanceToSquared(this.end);\n }, distance: function distance() {\n return this.start.distanceTo(this.end);\n }, at: function at(t, e) {\n var n = e || new i();return this.delta(n).multiplyScalar(t).add(this.start);\n }, closestPointToPointParameter: function () {\n var t = new i(),\n e = new i();return function (i, n) {\n t.subVectors(i, this.start), e.subVectors(this.end, this.start);var r = e.dot(e),\n a = e.dot(t),\n o = a / r;return n && (o = mn.clamp(o, 0, 1)), o;\n };\n }(), closestPointToPoint: function closestPointToPoint(t, e, n) {\n var r = this.closestPointToPointParameter(t, e),\n a = n || new i();return this.delta(a).multiplyScalar(r).add(this.start);\n }, applyMatrix4: function applyMatrix4(t) {\n return this.start.applyMatrix4(t), this.end.applyMatrix4(t), this;\n }, equals: function equals(t) {\n return t.start.equals(this.start) && t.end.equals(this.end);\n } }), _extends(ct, { normal: function () {\n var t = new i();return function (e, n, r, a) {\n var o = a || new i();o.subVectors(r, n), t.subVectors(e, n), o.cross(t);var s = o.lengthSq();return s > 0 ? o.multiplyScalar(1 / Math.sqrt(s)) : o.set(0, 0, 0);\n };\n }(), barycoordFromPoint: function () {\n var t = new i(),\n e = new i(),\n n = new i();return function (r, a, o, s, l) {\n t.subVectors(s, a), e.subVectors(o, a), n.subVectors(r, a);var c = t.dot(t),\n h = t.dot(e),\n u = t.dot(n),\n d = e.dot(e),\n f = e.dot(n),\n p = c * d - h * h,\n m = l || new i();if (0 === p) return m.set(-2, -1, -1);var g = 1 / p,\n v = (d * u - h * f) * g,\n _ = (c * f - h * u) * g;return m.set(1 - v - _, _, v);\n };\n }(), containsPoint: function () {\n var t = new i();return function (e, i, n, r) {\n var a = ct.barycoordFromPoint(e, i, n, r, t);return a.x >= 0 && a.y >= 0 && a.x + a.y <= 1;\n };\n }() }), _extends(ct.prototype, { set: function set(t, e, i) {\n return this.a.copy(t), this.b.copy(e), this.c.copy(i), this;\n }, setFromPointsAndIndices: function setFromPointsAndIndices(t, e, i, n) {\n return this.a.copy(t[e]), this.b.copy(t[i]), this.c.copy(t[n]), this;\n }, clone: function clone() {\n return new this.constructor().copy(this);\n }, copy: function copy(t) {\n return this.a.copy(t.a), this.b.copy(t.b), this.c.copy(t.c), this;\n }, area: function () {\n var t = new i(),\n e = new i();return function () {\n return t.subVectors(this.c, this.b), e.subVectors(this.a, this.b), .5 * t.cross(e).length();\n };\n }(), midpoint: function midpoint(t) {\n return (t || new i()).addVectors(this.a, this.b).add(this.c).multiplyScalar(1 / 3);\n }, normal: function normal(t) {\n return ct.normal(this.a, this.b, this.c, t);\n }, plane: function plane(t) {\n return (t || new et()).setFromCoplanarPoints(this.a, this.b, this.c);\n }, barycoordFromPoint: function barycoordFromPoint(t, e) {\n return ct.barycoordFromPoint(t, this.a, this.b, this.c, e);\n }, containsPoint: function containsPoint(t) {\n return ct.containsPoint(t, this.a, this.b, this.c);\n }, closestPointToPoint: function () {\n var t, e, n, r;return function (a, o) {\n void 0 === t && (t = new et(), e = [new lt(), new lt(), new lt()], n = new i(), r = new i());var s = o || new i(),\n l = 1 / 0;if (t.setFromCoplanarPoints(this.a, this.b, this.c), t.projectPoint(a, n), !0 === this.containsPoint(n)) s.copy(n);else {\n e[0].set(this.a, this.b), e[1].set(this.b, this.c), e[2].set(this.c, this.a);for (var c = 0; c < e.length; c++) {\n e[c].closestPointToPoint(n, !0, r);var h = n.distanceToSquared(r);h < l && (l = h, s.copy(r));\n }\n }return s;\n };\n }(), equals: function equals(t) {\n return t.a.equals(this.a) && t.b.equals(this.b) && t.c.equals(this.c);\n } }), _extends(ht.prototype, { clone: function clone() {\n return new this.constructor().copy(this);\n }, copy: function copy(t) {\n this.a = t.a, this.b = t.b, this.c = t.c, this.normal.copy(t.normal), this.color.copy(t.color), this.materialIndex = t.materialIndex;for (var e = 0, i = t.vertexNormals.length; e < i; e++) {\n this.vertexNormals[e] = t.vertexNormals[e].clone();\n }for (var e = 0, i = t.vertexColors.length; e < i; e++) {\n this.vertexColors[e] = t.vertexColors[e].clone();\n }return this;\n } }), ut.prototype = Object.create(Z.prototype), ut.prototype.constructor = ut, ut.prototype.isMeshBasicMaterial = !0, ut.prototype.copy = function (t) {\n return Z.prototype.copy.call(this, t), this.color.copy(t.color), this.map = t.map, this.lightMap = t.lightMap, this.lightMapIntensity = t.lightMapIntensity, this.aoMap = t.aoMap, this.aoMapIntensity = t.aoMapIntensity, this.specularMap = t.specularMap, this.alphaMap = t.alphaMap, this.envMap = t.envMap, this.combine = t.combine, this.reflectivity = t.reflectivity, this.refractionRatio = t.refractionRatio, this.wireframe = t.wireframe, this.wireframeLinewidth = t.wireframeLinewidth, this.wireframeLinecap = t.wireframeLinecap, this.wireframeLinejoin = t.wireframeLinejoin, this.skinning = t.skinning, this.morphTargets = t.morphTargets, this;\n }, Object.defineProperty(dt.prototype, \"needsUpdate\", { set: function set(t) {\n !0 === t && this.version++;\n } }), _extends(dt.prototype, { isBufferAttribute: !0, setArray: function setArray(t) {\n if (Array.isArray(t)) throw new TypeError(\"THREE.BufferAttribute: array should be a Typed Array.\");this.count = void 0 !== t ? t.length / this.itemSize : 0, this.array = t;\n }, setDynamic: function setDynamic(t) {\n return this.dynamic = t, this;\n }, copy: function copy(t) {\n return this.array = new t.array.constructor(t.array), this.itemSize = t.itemSize, this.count = t.count, this.normalized = t.normalized, this.dynamic = t.dynamic, this;\n }, copyAt: function copyAt(t, e, i) {\n t *= this.itemSize, i *= e.itemSize;for (var n = 0, r = this.itemSize; n < r; n++) {\n this.array[t + n] = e.array[i + n];\n }return this;\n }, copyArray: function copyArray(t) {\n return this.array.set(t), this;\n }, copyColorsArray: function copyColorsArray(t) {\n for (var e = this.array, i = 0, n = 0, r = t.length; n < r; n++) {\n var a = t[n];void 0 === a && (console.warn(\"THREE.BufferAttribute.copyColorsArray(): color is undefined\", n), a = new W()), e[i++] = a.r, e[i++] = a.g, e[i++] = a.b;\n }return this;\n }, copyIndicesArray: function copyIndicesArray(t) {\n for (var e = this.array, i = 0, n = 0, r = t.length; n < r; n++) {\n var a = t[n];e[i++] = a.a, e[i++] = a.b, e[i++] = a.c;\n }return this;\n }, copyVector2sArray: function copyVector2sArray(t) {\n for (var e = this.array, i = 0, n = 0, r = t.length; n < r; n++) {\n var o = t[n];void 0 === o && (console.warn(\"THREE.BufferAttribute.copyVector2sArray(): vector is undefined\", n), o = new a()), e[i++] = o.x, e[i++] = o.y;\n }return this;\n }, copyVector3sArray: function copyVector3sArray(t) {\n for (var e = this.array, n = 0, r = 0, a = t.length; r < a; r++) {\n var o = t[r];void 0 === o && (console.warn(\"THREE.BufferAttribute.copyVector3sArray(): vector is undefined\", r), o = new i()), e[n++] = o.x, e[n++] = o.y, e[n++] = o.z;\n }return this;\n }, copyVector4sArray: function copyVector4sArray(t) {\n for (var e = this.array, i = 0, n = 0, r = t.length; n < r; n++) {\n var a = t[n];void 0 === a && (console.warn(\"THREE.BufferAttribute.copyVector4sArray(): vector is undefined\", n), a = new k()), e[i++] = a.x, e[i++] = a.y, e[i++] = a.z, e[i++] = a.w;\n }return this;\n }, set: function set(t, e) {\n return void 0 === e && (e = 0), this.array.set(t, e), this;\n }, getX: function getX(t) {\n return this.array[t * this.itemSize];\n }, setX: function setX(t, e) {\n return this.array[t * this.itemSize] = e, this;\n }, getY: function getY(t) {\n return this.array[t * this.itemSize + 1];\n }, setY: function setY(t, e) {\n return this.array[t * this.itemSize + 1] = e, this;\n }, getZ: function getZ(t) {\n return this.array[t * this.itemSize + 2];\n }, setZ: function setZ(t, e) {\n return this.array[t * this.itemSize + 2] = e, this;\n }, getW: function getW(t) {\n return this.array[t * this.itemSize + 3];\n }, setW: function setW(t, e) {\n return this.array[t * this.itemSize + 3] = e, this;\n }, setXY: function setXY(t, e, i) {\n return t *= this.itemSize, this.array[t + 0] = e, this.array[t + 1] = i, this;\n }, setXYZ: function setXYZ(t, e, i, n) {\n return t *= this.itemSize, this.array[t + 0] = e, this.array[t + 1] = i, this.array[t + 2] = n, this;\n }, setXYZW: function setXYZW(t, e, i, n, r) {\n return t *= this.itemSize, this.array[t + 0] = e, this.array[t + 1] = i, this.array[t + 2] = n, this.array[t + 3] = r, this;\n }, onUpload: function onUpload(t) {\n return this.onUploadCallback = t, this;\n }, clone: function clone() {\n return new this.constructor(this.array, this.itemSize).copy(this);\n } }), ft.prototype = Object.create(dt.prototype), ft.prototype.constructor = ft, pt.prototype = Object.create(dt.prototype), pt.prototype.constructor = pt, mt.prototype = Object.create(dt.prototype), mt.prototype.constructor = mt, _extends(gt.prototype, { computeGroups: function computeGroups(t) {\n for (var e, i = [], n = void 0, r = t.faces, a = 0; a < r.length; a++) {\n var o = r[a];o.materialIndex !== n && (n = o.materialIndex, void 0 !== e && (e.count = 3 * a - e.start, i.push(e)), e = { start: 3 * a, materialIndex: n });\n }void 0 !== e && (e.count = 3 * a - e.start, i.push(e)), this.groups = i;\n }, fromGeometry: function fromGeometry(t) {\n var e,\n i = t.faces,\n n = t.vertices,\n r = t.faceVertexUvs,\n o = r[0] && r[0].length > 0,\n s = r[1] && r[1].length > 0,\n l = t.morphTargets,\n c = l.length;if (c > 0) {\n e = [];for (var h = 0; h < c; h++) {\n e[h] = [];\n }this.morphTargets.position = e;\n }var u,\n d = t.morphNormals,\n f = d.length;if (f > 0) {\n u = [];for (var h = 0; h < f; h++) {\n u[h] = [];\n }this.morphTargets.normal = u;\n }for (var p = t.skinIndices, m = t.skinWeights, g = p.length === n.length, v = m.length === n.length, h = 0; h < i.length; h++) {\n var _ = i[h];this.vertices.push(n[_.a], n[_.b], n[_.c]);var x = _.vertexNormals;if (3 === x.length) this.normals.push(x[0], x[1], x[2]);else {\n var y = _.normal;this.normals.push(y, y, y);\n }var M = _.vertexColors;if (3 === M.length) this.colors.push(M[0], M[1], M[2]);else {\n var E = _.color;this.colors.push(E, E, E);\n }if (!0 === o) {\n var b = r[0][h];void 0 !== b ? this.uvs.push(b[0], b[1], b[2]) : (console.warn(\"THREE.DirectGeometry.fromGeometry(): Undefined vertexUv \", h), this.uvs.push(new a(), new a(), new a()));\n }if (!0 === s) {\n var b = r[1][h];void 0 !== b ? this.uvs2.push(b[0], b[1], b[2]) : (console.warn(\"THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 \", h), this.uvs2.push(new a(), new a(), new a()));\n }for (var w = 0; w < c; w++) {\n var T = l[w].vertices;e[w].push(T[_.a], T[_.b], T[_.c]);\n }for (var w = 0; w < f; w++) {\n var S = d[w].vertexNormals[h];u[w].push(S.a, S.b, S.c);\n }g && this.skinIndices.push(p[_.a], p[_.b], p[_.c]), v && this.skinWeights.push(m[_.a], m[_.b], m[_.c]);\n }return this.computeGroups(t), this.verticesNeedUpdate = t.verticesNeedUpdate, this.normalsNeedUpdate = t.normalsNeedUpdate, this.colorsNeedUpdate = t.colorsNeedUpdate, this.uvsNeedUpdate = t.uvsNeedUpdate, this.groupsNeedUpdate = t.groupsNeedUpdate, this;\n } });var Cn = 0;_extends(xt.prototype, r.prototype, { isGeometry: !0, applyMatrix: function applyMatrix(t) {\n for (var e = new tt().getNormalMatrix(t), i = 0, n = this.vertices.length; i < n; i++) {\n this.vertices[i].applyMatrix4(t);\n }for (var i = 0, n = this.faces.length; i < n; i++) {\n var r = this.faces[i];r.normal.applyMatrix3(e).normalize();for (var a = 0, o = r.vertexNormals.length; a < o; a++) {\n r.vertexNormals[a].applyMatrix3(e).normalize();\n }\n }return null !== this.boundingBox && this.computeBoundingBox(), null !== this.boundingSphere && this.computeBoundingSphere(), this.verticesNeedUpdate = !0, this.normalsNeedUpdate = !0, this;\n }, rotateX: function () {\n var t;return function (e) {\n return void 0 === t && (t = new n()), t.makeRotationX(e), this.applyMatrix(t), this;\n };\n }(), rotateY: function () {\n var t;return function (e) {\n return void 0 === t && (t = new n()), t.makeRotationY(e), this.applyMatrix(t), this;\n };\n }(), rotateZ: function () {\n var t;return function (e) {\n return void 0 === t && (t = new n()), t.makeRotationZ(e), this.applyMatrix(t), this;\n };\n }(), translate: function () {\n var t;return function (e, i, r) {\n return void 0 === t && (t = new n()), t.makeTranslation(e, i, r), this.applyMatrix(t), this;\n };\n }(), scale: function () {\n var t;return function (e, i, r) {\n return void 0 === t && (t = new n()), t.makeScale(e, i, r), this.applyMatrix(t), this;\n };\n }(), lookAt: function () {\n var t;return function (e) {\n void 0 === t && (t = new st()), t.lookAt(e), t.updateMatrix(), this.applyMatrix(t.matrix);\n };\n }(), fromBufferGeometry: function fromBufferGeometry(t) {\n function e(t, e, i, r) {\n var a = void 0 !== l ? [d[t].clone(), d[e].clone(), d[i].clone()] : [],\n o = void 0 !== c ? [n.colors[t].clone(), n.colors[e].clone(), n.colors[i].clone()] : [],\n s = new ht(t, e, i, a, o, r);n.faces.push(s), void 0 !== h && n.faceVertexUvs[0].push([f[t].clone(), f[e].clone(), f[i].clone()]), void 0 !== u && n.faceVertexUvs[1].push([p[t].clone(), p[e].clone(), p[i].clone()]);\n }var n = this,\n r = null !== t.index ? t.index.array : void 0,\n o = t.attributes,\n s = o.position.array,\n l = void 0 !== o.normal ? o.normal.array : void 0,\n c = void 0 !== o.color ? o.color.array : void 0,\n h = void 0 !== o.uv ? o.uv.array : void 0,\n u = void 0 !== o.uv2 ? o.uv2.array : void 0;void 0 !== u && (this.faceVertexUvs[1] = []);for (var d = [], f = [], p = [], m = 0, g = 0; m < s.length; m += 3, g += 2) {\n n.vertices.push(new i(s[m], s[m + 1], s[m + 2])), void 0 !== l && d.push(new i(l[m], l[m + 1], l[m + 2])), void 0 !== c && n.colors.push(new W(c[m], c[m + 1], c[m + 2])), void 0 !== h && f.push(new a(h[g], h[g + 1])), void 0 !== u && p.push(new a(u[g], u[g + 1]));\n }var v = t.groups;if (v.length > 0) for (var m = 0; m < v.length; m++) {\n for (var _ = v[m], x = _.start, y = _.count, g = x, M = x + y; g < M; g += 3) {\n void 0 !== r ? e(r[g], r[g + 1], r[g + 2], _.materialIndex) : e(g, g + 1, g + 2, _.materialIndex);\n }\n } else if (void 0 !== r) for (var m = 0; m < r.length; m += 3) {\n e(r[m], r[m + 1], r[m + 2]);\n } else for (var m = 0; m < s.length / 3; m += 3) {\n e(m, m + 1, m + 2);\n }return this.computeFaceNormals(), null !== t.boundingBox && (this.boundingBox = t.boundingBox.clone()), null !== t.boundingSphere && (this.boundingSphere = t.boundingSphere.clone()), this;\n }, center: function center() {\n this.computeBoundingBox();var t = this.boundingBox.getCenter().negate();return this.translate(t.x, t.y, t.z), t;\n }, normalize: function normalize() {\n this.computeBoundingSphere();var t = this.boundingSphere.center,\n e = this.boundingSphere.radius,\n i = 0 === e ? 1 : 1 / e,\n r = new n();return r.set(i, 0, 0, -i * t.x, 0, i, 0, -i * t.y, 0, 0, i, -i * t.z, 0, 0, 0, 1), this.applyMatrix(r), this;\n }, computeFaceNormals: function computeFaceNormals() {\n for (var t = new i(), e = new i(), n = 0, r = this.faces.length; n < r; n++) {\n var a = this.faces[n],\n o = this.vertices[a.a],\n s = this.vertices[a.b],\n l = this.vertices[a.c];t.subVectors(l, s), e.subVectors(o, s), t.cross(e), t.normalize(), a.normal.copy(t);\n }\n }, computeVertexNormals: function computeVertexNormals(t) {\n void 0 === t && (t = !0);var e, n, r, a, o, s;for (s = new Array(this.vertices.length), e = 0, n = this.vertices.length; e < n; e++) {\n s[e] = new i();\n }if (t) {\n var l,\n c,\n h,\n u = new i(),\n d = new i();for (r = 0, a = this.faces.length; r < a; r++) {\n o = this.faces[r], l = this.vertices[o.a], c = this.vertices[o.b], h = this.vertices[o.c], u.subVectors(h, c), d.subVectors(l, c), u.cross(d), s[o.a].add(u), s[o.b].add(u), s[o.c].add(u);\n }\n } else for (this.computeFaceNormals(), r = 0, a = this.faces.length; r < a; r++) {\n o = this.faces[r], s[o.a].add(o.normal), s[o.b].add(o.normal), s[o.c].add(o.normal);\n }for (e = 0, n = this.vertices.length; e < n; e++) {\n s[e].normalize();\n }for (r = 0, a = this.faces.length; r < a; r++) {\n o = this.faces[r];var f = o.vertexNormals;3 === f.length ? (f[0].copy(s[o.a]), f[1].copy(s[o.b]), f[2].copy(s[o.c])) : (f[0] = s[o.a].clone(), f[1] = s[o.b].clone(), f[2] = s[o.c].clone());\n }this.faces.length > 0 && (this.normalsNeedUpdate = !0);\n }, computeFlatVertexNormals: function computeFlatVertexNormals() {\n var t, e, i;for (this.computeFaceNormals(), t = 0, e = this.faces.length; t < e; t++) {\n i = this.faces[t];var n = i.vertexNormals;3 === n.length ? (n[0].copy(i.normal), n[1].copy(i.normal), n[2].copy(i.normal)) : (n[0] = i.normal.clone(), n[1] = i.normal.clone(), n[2] = i.normal.clone());\n }\n this.faces.length > 0 && (this.normalsNeedUpdate = !0);\n }, computeMorphNormals: function computeMorphNormals() {\n var t, e, n, r, a;for (n = 0, r = this.faces.length; n < r; n++) {\n for (a = this.faces[n], a.__originalFaceNormal ? a.__originalFaceNormal.copy(a.normal) : a.__originalFaceNormal = a.normal.clone(), a.__originalVertexNormals || (a.__originalVertexNormals = []), t = 0, e = a.vertexNormals.length; t < e; t++) {\n a.__originalVertexNormals[t] ? a.__originalVertexNormals[t].copy(a.vertexNormals[t]) : a.__originalVertexNormals[t] = a.vertexNormals[t].clone();\n }\n }var o = new xt();for (o.faces = this.faces, t = 0, e = this.morphTargets.length; t < e; t++) {\n if (!this.morphNormals[t]) {\n this.morphNormals[t] = {}, this.morphNormals[t].faceNormals = [], this.morphNormals[t].vertexNormals = [];var s,\n l,\n c = this.morphNormals[t].faceNormals,\n h = this.morphNormals[t].vertexNormals;for (n = 0, r = this.faces.length; n < r; n++) {\n s = new i(), l = { a: new i(), b: new i(), c: new i() }, c.push(s), h.push(l);\n }\n }var u = this.morphNormals[t];o.vertices = this.morphTargets[t].vertices, o.computeFaceNormals(), o.computeVertexNormals();var s, l;for (n = 0, r = this.faces.length; n < r; n++) {\n a = this.faces[n], s = u.faceNormals[n], l = u.vertexNormals[n], s.copy(a.normal), l.a.copy(a.vertexNormals[0]), l.b.copy(a.vertexNormals[1]), l.c.copy(a.vertexNormals[2]);\n }\n }for (n = 0, r = this.faces.length; n < r; n++) {\n a = this.faces[n], a.normal = a.__originalFaceNormal, a.vertexNormals = a.__originalVertexNormals;\n }\n }, computeLineDistances: function computeLineDistances() {\n for (var t = 0, e = this.vertices, i = 0, n = e.length; i < n; i++) {\n i > 0 && (t += e[i].distanceTo(e[i - 1])), this.lineDistances[i] = t;\n }\n }, computeBoundingBox: function computeBoundingBox() {\n null === this.boundingBox && (this.boundingBox = new K()), this.boundingBox.setFromPoints(this.vertices);\n }, computeBoundingSphere: function computeBoundingSphere() {\n null === this.boundingSphere && (this.boundingSphere = new $()), this.boundingSphere.setFromPoints(this.vertices);\n }, merge: function merge(t, e, i) {\n if (!1 === (t && t.isGeometry)) return void console.error(\"THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.\", t);var n,\n r = this.vertices.length,\n a = this.vertices,\n o = t.vertices,\n s = this.faces,\n l = t.faces,\n c = this.faceVertexUvs[0],\n h = t.faceVertexUvs[0],\n u = this.colors,\n d = t.colors;void 0 === i && (i = 0), void 0 !== e && (n = new tt().getNormalMatrix(e));for (var f = 0, p = o.length; f < p; f++) {\n var m = o[f],\n g = m.clone();void 0 !== e && g.applyMatrix4(e), a.push(g);\n }for (var f = 0, p = d.length; f < p; f++) {\n u.push(d[f].clone());\n }for (f = 0, p = l.length; f < p; f++) {\n var v,\n _,\n x,\n y = l[f],\n M = y.vertexNormals,\n E = y.vertexColors;v = new ht(y.a + r, y.b + r, y.c + r), v.normal.copy(y.normal), void 0 !== n && v.normal.applyMatrix3(n).normalize();for (var b = 0, w = M.length; b < w; b++) {\n _ = M[b].clone(), void 0 !== n && _.applyMatrix3(n).normalize(), v.vertexNormals.push(_);\n }v.color.copy(y.color);for (var b = 0, w = E.length; b < w; b++) {\n x = E[b], v.vertexColors.push(x.clone());\n }v.materialIndex = y.materialIndex + i, s.push(v);\n }for (f = 0, p = h.length; f < p; f++) {\n var T = h[f],\n S = [];if (void 0 !== T) {\n for (var b = 0, w = T.length; b < w; b++) {\n S.push(T[b].clone());\n }c.push(S);\n }\n }\n }, mergeMesh: function mergeMesh(t) {\n if (!1 === (t && t.isMesh)) return void console.error(\"THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.\", t);t.matrixAutoUpdate && t.updateMatrix(), this.merge(t.geometry, t.matrix);\n }, mergeVertices: function mergeVertices() {\n var t,\n e,\n i,\n n,\n r,\n a,\n o,\n s,\n l = {},\n c = [],\n h = [],\n u = Math.pow(10, 4);for (i = 0, n = this.vertices.length; i < n; i++) {\n t = this.vertices[i], e = Math.round(t.x * u) + \"_\" + Math.round(t.y * u) + \"_\" + Math.round(t.z * u), void 0 === l[e] ? (l[e] = i, c.push(this.vertices[i]), h[i] = c.length - 1) : h[i] = h[l[e]];\n }var d = [];for (i = 0, n = this.faces.length; i < n; i++) {\n r = this.faces[i], r.a = h[r.a], r.b = h[r.b], r.c = h[r.c], a = [r.a, r.b, r.c];for (var f = 0; f < 3; f++) {\n if (a[f] === a[(f + 1) % 3]) {\n d.push(i);break;\n }\n }\n }for (i = d.length - 1; i >= 0; i--) {\n var p = d[i];for (this.faces.splice(p, 1), o = 0, s = this.faceVertexUvs.length; o < s; o++) {\n this.faceVertexUvs[o].splice(p, 1);\n }\n }var m = this.vertices.length - c.length;return this.vertices = c, m;\n }, sortFacesByMaterialIndex: function sortFacesByMaterialIndex() {\n function t(t, e) {\n return t.materialIndex - e.materialIndex;\n }for (var e = this.faces, i = e.length, n = 0; n < i; n++) {\n e[n]._id = n;\n }e.sort(t);var r,\n a,\n o = this.faceVertexUvs[0],\n s = this.faceVertexUvs[1];o && o.length === i && (r = []), s && s.length === i && (a = []);for (var n = 0; n < i; n++) {\n var l = e[n]._id;r && r.push(o[l]), a && a.push(s[l]);\n }r && (this.faceVertexUvs[0] = r), a && (this.faceVertexUvs[1] = a);\n }, toJSON: function toJSON() {\n function t(t, e, i) {\n return i ? t | 1 << e : t & ~(1 << e);\n }function e(t) {\n var e = t.x.toString() + t.y.toString() + t.z.toString();return void 0 !== d[e] ? d[e] : (d[e] = u.length / 3, u.push(t.x, t.y, t.z), d[e]);\n }function i(t) {\n var e = t.r.toString() + t.g.toString() + t.b.toString();return void 0 !== p[e] ? p[e] : (p[e] = f.length, f.push(t.getHex()), p[e]);\n }function n(t) {\n var e = t.x.toString() + t.y.toString();return void 0 !== g[e] ? g[e] : (g[e] = m.length / 2, m.push(t.x, t.y), g[e]);\n }var r = { metadata: { version: 4.5, type: \"Geometry\", generator: \"Geometry.toJSON\" } };if (r.uuid = this.uuid, r.type = this.type, \"\" !== this.name && (r.name = this.name), void 0 !== this.parameters) {\n var a = this.parameters;for (var o in a) {\n void 0 !== a[o] && (r[o] = a[o]);\n }return r;\n }for (var s = [], l = 0; l < this.vertices.length; l++) {\n var c = this.vertices[l];s.push(c.x, c.y, c.z);\n }for (var h = [], u = [], d = {}, f = [], p = {}, m = [], g = {}, l = 0; l < this.faces.length; l++) {\n var v = this.faces[l],\n _ = void 0 !== this.faceVertexUvs[0][l],\n x = v.normal.length() > 0,\n y = v.vertexNormals.length > 0,\n M = 1 !== v.color.r || 1 !== v.color.g || 1 !== v.color.b,\n E = v.vertexColors.length > 0,\n b = 0;if (b = t(b, 0, 0), b = t(b, 1, !0), b = t(b, 2, !1), b = t(b, 3, _), b = t(b, 4, x), b = t(b, 5, y), b = t(b, 6, M), b = t(b, 7, E), h.push(b), h.push(v.a, v.b, v.c), h.push(v.materialIndex), _) {\n var w = this.faceVertexUvs[0][l];h.push(n(w[0]), n(w[1]), n(w[2]));\n }if (x && h.push(e(v.normal)), y) {\n var T = v.vertexNormals;h.push(e(T[0]), e(T[1]), e(T[2]));\n }if (M && h.push(i(v.color)), E) {\n var S = v.vertexColors;h.push(i(S[0]), i(S[1]), i(S[2]));\n }\n }return r.data = {}, r.data.vertices = s, r.data.normals = u, f.length > 0 && (r.data.colors = f), m.length > 0 && (r.data.uvs = [m]), r.data.faces = h, r;\n }, clone: function clone() {\n return new xt().copy(this);\n }, copy: function copy(t) {\n var e, i, n, r, a, o;this.vertices = [], this.colors = [], this.faces = [], this.faceVertexUvs = [[]], this.morphTargets = [], this.morphNormals = [], this.skinWeights = [], this.skinIndices = [], this.lineDistances = [], this.boundingBox = null, this.boundingSphere = null, this.name = t.name;var s = t.vertices;for (e = 0, i = s.length; e < i; e++) {\n this.vertices.push(s[e].clone());\n }var l = t.colors;for (e = 0, i = l.length; e < i; e++) {\n this.colors.push(l[e].clone());\n }var c = t.faces;for (e = 0, i = c.length; e < i; e++) {\n this.faces.push(c[e].clone());\n }for (e = 0, i = t.faceVertexUvs.length; e < i; e++) {\n var h = t.faceVertexUvs[e];for (void 0 === this.faceVertexUvs[e] && (this.faceVertexUvs[e] = []), n = 0, r = h.length; n < r; n++) {\n var u = h[n],\n d = [];for (a = 0, o = u.length; a < o; a++) {\n var f = u[a];d.push(f.clone());\n }this.faceVertexUvs[e].push(d);\n }\n }var p = t.morphTargets;for (e = 0, i = p.length; e < i; e++) {\n var m = {};if (m.name = p[e].name, void 0 !== p[e].vertices) for (m.vertices = [], n = 0, r = p[e].vertices.length; n < r; n++) {\n m.vertices.push(p[e].vertices[n].clone());\n }if (void 0 !== p[e].normals) for (m.normals = [], n = 0, r = p[e].normals.length; n < r; n++) {\n m.normals.push(p[e].normals[n].clone());\n }this.morphTargets.push(m);\n }var g = t.morphNormals;for (e = 0, i = g.length; e < i; e++) {\n var v = {};if (void 0 !== g[e].vertexNormals) for (v.vertexNormals = [], n = 0, r = g[e].vertexNormals.length; n < r; n++) {\n var _ = g[e].vertexNormals[n],\n x = {};x.a = _.a.clone(), x.b = _.b.clone(), x.c = _.c.clone(), v.vertexNormals.push(x);\n }if (void 0 !== g[e].faceNormals) for (v.faceNormals = [], n = 0, r = g[e].faceNormals.length; n < r; n++) {\n v.faceNormals.push(g[e].faceNormals[n].clone());\n }this.morphNormals.push(v);\n }var y = t.skinWeights;for (e = 0, i = y.length; e < i; e++) {\n this.skinWeights.push(y[e].clone());\n }var M = t.skinIndices;for (e = 0, i = M.length; e < i; e++) {\n this.skinIndices.push(M[e].clone());\n }var E = t.lineDistances;for (e = 0, i = E.length; e < i; e++) {\n this.lineDistances.push(E[e]);\n }var b = t.boundingBox;null !== b && (this.boundingBox = b.clone());var w = t.boundingSphere;return null !== w && (this.boundingSphere = w.clone()), this.elementsNeedUpdate = t.elementsNeedUpdate, this.verticesNeedUpdate = t.verticesNeedUpdate, this.uvsNeedUpdate = t.uvsNeedUpdate, this.normalsNeedUpdate = t.normalsNeedUpdate, this.colorsNeedUpdate = t.colorsNeedUpdate, this.lineDistancesNeedUpdate = t.lineDistancesNeedUpdate, this.groupsNeedUpdate = t.groupsNeedUpdate, this;\n }, dispose: function dispose() {\n this.dispatchEvent({ type: \"dispose\" });\n } }), yt.MaxIndex = 65535, _extends(yt.prototype, r.prototype, { isBufferGeometry: !0, getIndex: function getIndex() {\n return this.index;\n }, setIndex: function setIndex(t) {\n Array.isArray(t) ? this.index = new (vt(t) > 65535 ? pt : ft)(t, 1) : this.index = t;\n }, addAttribute: function addAttribute(t, e) {\n return !1 === (e && e.isBufferAttribute) && !1 === (e && e.isInterleavedBufferAttribute) ? (console.warn(\"THREE.BufferGeometry: .addAttribute() now expects ( name, attribute ).\"), void this.addAttribute(t, new dt(arguments[1], arguments[2]))) : \"index\" === t ? (console.warn(\"THREE.BufferGeometry.addAttribute: Use .setIndex() for index attribute.\"), void this.setIndex(e)) : (this.attributes[t] = e, this);\n }, getAttribute: function getAttribute(t) {\n return this.attributes[t];\n }, removeAttribute: function removeAttribute(t) {\n return delete this.attributes[t], this;\n }, addGroup: function addGroup(t, e, i) {\n this.groups.push({ start: t, count: e, materialIndex: void 0 !== i ? i : 0 });\n }, clearGroups: function clearGroups() {\n this.groups = [];\n }, setDrawRange: function setDrawRange(t, e) {\n this.drawRange.start = t, this.drawRange.count = e;\n }, applyMatrix: function applyMatrix(t) {\n var e = this.attributes.position;void 0 !== e && (t.applyToBufferAttribute(e), e.needsUpdate = !0);var i = this.attributes.normal;if (void 0 !== i) {\n new tt().getNormalMatrix(t).applyToBufferAttribute(i), i.needsUpdate = !0;\n }return null !== this.boundingBox && this.computeBoundingBox(), null !== this.boundingSphere && this.computeBoundingSphere(), this;\n }, rotateX: function () {\n var t;return function (e) {\n return void 0 === t && (t = new n()), t.makeRotationX(e), this.applyMatrix(t), this;\n };\n }(), rotateY: function () {\n var t;return function (e) {\n return void 0 === t && (t = new n()), t.makeRotationY(e), this.applyMatrix(t), this;\n };\n }(), rotateZ: function () {\n var t;return function (e) {\n return void 0 === t && (t = new n()), t.makeRotationZ(e), this.applyMatrix(t), this;\n };\n }(), translate: function () {\n var t;return function (e, i, r) {\n return void 0 === t && (t = new n()), t.makeTranslation(e, i, r), this.applyMatrix(t), this;\n };\n }(), scale: function () {\n var t;return function (e, i, r) {\n return void 0 === t && (t = new n()), t.makeScale(e, i, r), this.applyMatrix(t), this;\n };\n }(), lookAt: function () {\n var t;return function (e) {\n void 0 === t && (t = new st()), t.lookAt(e), t.updateMatrix(), this.applyMatrix(t.matrix);\n };\n }(), center: function center() {\n this.computeBoundingBox();var t = this.boundingBox.getCenter().negate();return this.translate(t.x, t.y, t.z), t;\n }, setFromObject: function setFromObject(t) {\n var e = t.geometry;if (t.isPoints || t.isLine) {\n var i = new mt(3 * e.vertices.length, 3),\n n = new mt(3 * e.colors.length, 3);if (this.addAttribute(\"position\", i.copyVector3sArray(e.vertices)), this.addAttribute(\"color\", n.copyColorsArray(e.colors)), e.lineDistances && e.lineDistances.length === e.vertices.length) {\n var r = new mt(e.lineDistances.length, 1);this.addAttribute(\"lineDistance\", r.copyArray(e.lineDistances));\n }null !== e.boundingSphere && (this.boundingSphere = e.boundingSphere.clone()), null !== e.boundingBox && (this.boundingBox = e.boundingBox.clone());\n } else t.isMesh && e && e.isGeometry && this.fromGeometry(e);return this;\n }, updateFromObject: function updateFromObject(t) {\n var e = t.geometry;if (t.isMesh) {\n var i = e.__directGeometry;if (!0 === e.elementsNeedUpdate && (i = void 0, e.elementsNeedUpdate = !1), void 0 === i) return this.fromGeometry(e);i.verticesNeedUpdate = e.verticesNeedUpdate, i.normalsNeedUpdate = e.normalsNeedUpdate, i.colorsNeedUpdate = e.colorsNeedUpdate, i.uvsNeedUpdate = e.uvsNeedUpdate, i.groupsNeedUpdate = e.groupsNeedUpdate, e.verticesNeedUpdate = !1, e.normalsNeedUpdate = !1, e.colorsNeedUpdate = !1, e.uvsNeedUpdate = !1, e.groupsNeedUpdate = !1, e = i;\n }var n;return !0 === e.verticesNeedUpdate && (n = this.attributes.position, void 0 !== n && (n.copyVector3sArray(e.vertices), n.needsUpdate = !0), e.verticesNeedUpdate = !1), !0 === e.normalsNeedUpdate && (n = this.attributes.normal, void 0 !== n && (n.copyVector3sArray(e.normals), n.needsUpdate = !0), e.normalsNeedUpdate = !1), !0 === e.colorsNeedUpdate && (n = this.attributes.color, void 0 !== n && (n.copyColorsArray(e.colors), n.needsUpdate = !0), e.colorsNeedUpdate = !1), e.uvsNeedUpdate && (n = this.attributes.uv, void 0 !== n && (n.copyVector2sArray(e.uvs), n.needsUpdate = !0), e.uvsNeedUpdate = !1), e.lineDistancesNeedUpdate && (n = this.attributes.lineDistance, void 0 !== n && (n.copyArray(e.lineDistances), n.needsUpdate = !0), e.lineDistancesNeedUpdate = !1), e.groupsNeedUpdate && (e.computeGroups(t.geometry), this.groups = e.groups, e.groupsNeedUpdate = !1), this;\n }, fromGeometry: function fromGeometry(t) {\n return t.__directGeometry = new gt().fromGeometry(t), this.fromDirectGeometry(t.__directGeometry);\n }, fromDirectGeometry: function fromDirectGeometry(t) {\n var e = new Float32Array(3 * t.vertices.length);if (this.addAttribute(\"position\", new dt(e, 3).copyVector3sArray(t.vertices)), t.normals.length > 0) {\n var i = new Float32Array(3 * t.normals.length);this.addAttribute(\"normal\", new dt(i, 3).copyVector3sArray(t.normals));\n }if (t.colors.length > 0) {\n var n = new Float32Array(3 * t.colors.length);this.addAttribute(\"color\", new dt(n, 3).copyColorsArray(t.colors));\n }if (t.uvs.length > 0) {\n var r = new Float32Array(2 * t.uvs.length);this.addAttribute(\"uv\", new dt(r, 2).copyVector2sArray(t.uvs));\n }if (t.uvs2.length > 0) {\n var a = new Float32Array(2 * t.uvs2.length);this.addAttribute(\"uv2\", new dt(a, 2).copyVector2sArray(t.uvs2));\n }if (t.indices.length > 0) {\n var o = vt(t.indices) > 65535 ? Uint32Array : Uint16Array,\n s = new o(3 * t.indices.length);this.setIndex(new dt(s, 1).copyIndicesArray(t.indices));\n }this.groups = t.groups;for (var l in t.morphTargets) {\n for (var c = [], h = t.morphTargets[l], u = 0, d = h.length; u < d; u++) {\n var f = h[u],\n p = new mt(3 * f.length, 3);c.push(p.copyVector3sArray(f));\n }this.morphAttributes[l] = c;\n }if (t.skinIndices.length > 0) {\n var m = new mt(4 * t.skinIndices.length, 4);this.addAttribute(\"skinIndex\", m.copyVector4sArray(t.skinIndices));\n }if (t.skinWeights.length > 0) {\n var g = new mt(4 * t.skinWeights.length, 4);this.addAttribute(\"skinWeight\", g.copyVector4sArray(t.skinWeights));\n }return null !== t.boundingSphere && (this.boundingSphere = t.boundingSphere.clone()), null !== t.boundingBox && (this.boundingBox = t.boundingBox.clone()), this;\n }, computeBoundingBox: function computeBoundingBox() {\n null === this.boundingBox && (this.boundingBox = new K());var t = this.attributes.position;void 0 !== t ? this.boundingBox.setFromBufferAttribute(t) : this.boundingBox.makeEmpty(), (isNaN(this.boundingBox.min.x) || isNaN(this.boundingBox.min.y) || isNaN(this.boundingBox.min.z)) && console.error('THREE.BufferGeometry.computeBoundingBox: Computed min/max have NaN values. The \"position\" attribute is likely to have NaN values.', this);\n }, computeBoundingSphere: function () {\n var t = new K(),\n e = new i();return function () {\n null === this.boundingSphere && (this.boundingSphere = new $());var i = this.attributes.position;if (i) {\n var n = this.boundingSphere.center;t.setFromBufferAttribute(i), t.getCenter(n);for (var r = 0, a = 0, o = i.count; a < o; a++) {\n e.x = i.getX(a), e.y = i.getY(a), e.z = i.getZ(a), r = Math.max(r, n.distanceToSquared(e));\n }this.boundingSphere.radius = Math.sqrt(r), isNaN(this.boundingSphere.radius) && console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The \"position\" attribute is likely to have NaN values.', this);\n }\n };\n }(), computeFaceNormals: function computeFaceNormals() {}, computeVertexNormals: function computeVertexNormals() {\n var t = this.index,\n e = this.attributes,\n n = this.groups;if (e.position) {\n var r = e.position.array;if (void 0 === e.normal) this.addAttribute(\"normal\", new dt(new Float32Array(r.length), 3));else for (var a = e.normal.array, o = 0, s = a.length; o < s; o++) {\n a[o] = 0;\n }var l,\n c,\n h,\n u = e.normal.array,\n d = new i(),\n f = new i(),\n p = new i(),\n m = new i(),\n g = new i();if (t) {\n var v = t.array;0 === n.length && this.addGroup(0, v.length);for (var _ = 0, x = n.length; _ < x; ++_) {\n for (var y = n[_], M = y.start, E = y.count, o = M, s = M + E; o < s; o += 3) {\n l = 3 * v[o + 0], c = 3 * v[o + 1], h = 3 * v[o + 2], d.fromArray(r, l), f.fromArray(r, c), p.fromArray(r, h), m.subVectors(p, f), g.subVectors(d, f), m.cross(g), u[l] += m.x, u[l + 1] += m.y, u[l + 2] += m.z, u[c] += m.x, u[c + 1] += m.y, u[c + 2] += m.z, u[h] += m.x, u[h + 1] += m.y, u[h + 2] += m.z;\n }\n }\n } else for (var o = 0, s = r.length; o < s; o += 9) {\n d.fromArray(r, o), f.fromArray(r, o + 3), p.fromArray(r, o + 6), m.subVectors(p, f), g.subVectors(d, f), m.cross(g), u[o] = m.x, u[o + 1] = m.y, u[o + 2] = m.z, u[o + 3] = m.x, u[o + 4] = m.y, u[o + 5] = m.z, u[o + 6] = m.x, u[o + 7] = m.y, u[o + 8] = m.z;\n }this.normalizeNormals(), e.normal.needsUpdate = !0;\n }\n }, merge: function merge(t, e) {\n if (!1 === (t && t.isBufferGeometry)) return void console.error(\"THREE.BufferGeometry.merge(): geometry not an instance of THREE.BufferGeometry.\", t);void 0 === e && (e = 0);var i = this.attributes;for (var n in i) {\n if (void 0 !== t.attributes[n]) for (var r = i[n], a = r.array, o = t.attributes[n], s = o.array, l = o.itemSize, c = 0, h = l * e; c < s.length; c++, h++) {\n a[h] = s[c];\n }\n }return this;\n }, normalizeNormals: function normalizeNormals() {\n for (var t, e, i, n, r = this.attributes.normal, a = 0, o = r.count; a < o; a++) {\n t = r.getX(a), e = r.getY(a), i = r.getZ(a), n = 1 / Math.sqrt(t * t + e * e + i * i), r.setXYZ(a, t * n, e * n, i * n);\n }\n }, toNonIndexed: function toNonIndexed() {\n if (null === this.index) return console.warn(\"THREE.BufferGeometry.toNonIndexed(): Geometry is already non-indexed.\"), this;var t = new yt(),\n e = this.index.array,\n i = this.attributes;for (var n in i) {\n for (var r = i[n], a = r.array, o = r.itemSize, s = new a.constructor(e.length * o), l = 0, c = 0, h = 0, u = e.length; h < u; h++) {\n l = e[h] * o;for (var d = 0; d < o; d++) {\n s[c++] = a[l++];\n }\n }t.addAttribute(n, new dt(s, o));\n }return t;\n }, toJSON: function toJSON() {\n var t = { metadata: { version: 4.5, type: \"BufferGeometry\", generator: \"BufferGeometry.toJSON\" } };if (t.uuid = this.uuid, t.type = this.type, \"\" !== this.name && (t.name = this.name), void 0 !== this.parameters) {\n var e = this.parameters;for (var i in e) {\n void 0 !== e[i] && (t[i] = e[i]);\n }return t;\n }t.data = { attributes: {} };var n = this.index;if (null !== n) {\n var r = Array.prototype.slice.call(n.array);t.data.index = { type: n.array.constructor.name, array: r };\n }var a = this.attributes;for (var i in a) {\n var o = a[i],\n r = Array.prototype.slice.call(o.array);t.data.attributes[i] = { itemSize: o.itemSize, type: o.array.constructor.name, array: r, normalized: o.normalized };\n }var s = this.groups;s.length > 0 && (t.data.groups = JSON.parse(JSON.stringify(s)));var l = this.boundingSphere;return null !== l && (t.data.boundingSphere = { center: l.center.toArray(), radius: l.radius }), t;\n }, clone: function clone() {\n return new yt().copy(this);\n }, copy: function copy(t) {\n var e, i, n;this.index = null, this.attributes = {}, this.morphAttributes = {}, this.groups = [], this.boundingBox = null, this.boundingSphere = null, this.name = t.name;var r = t.index;null !== r && this.setIndex(r.clone());var a = t.attributes;for (e in a) {\n var o = a[e];this.addAttribute(e, o.clone());\n }var s = t.morphAttributes;for (e in s) {\n var l = [],\n c = s[e];for (i = 0, n = c.length; i < n; i++) {\n l.push(c[i].clone());\n }this.morphAttributes[e] = l;\n }var h = t.groups;for (i = 0, n = h.length; i < n; i++) {\n var u = h[i];this.addGroup(u.start, u.count, u.materialIndex);\n }var d = t.boundingBox;null !== d && (this.boundingBox = d.clone());var f = t.boundingSphere;return null !== f && (this.boundingSphere = f.clone()), this.drawRange.start = t.drawRange.start, this.drawRange.count = t.drawRange.count, this;\n }, dispose: function dispose() {\n this.dispatchEvent({ type: \"dispose\" });\n } }), Mt.prototype = _extends(Object.create(st.prototype), { constructor: Mt, isMesh: !0, setDrawMode: function setDrawMode(t) {\n this.drawMode = t;\n }, copy: function copy(t) {\n return st.prototype.copy.call(this, t), this.drawMode = t.drawMode, this;\n }, updateMorphTargets: function updateMorphTargets() {\n var t = this.geometry.morphTargets;if (void 0 !== t && t.length > 0) {\n this.morphTargetInfluences = [], this.morphTargetDictionary = {};for (var e = 0, i = t.length; e < i; e++) {\n this.morphTargetInfluences.push(0), this.morphTargetDictionary[t[e].name] = e;\n }\n }\n }, raycast: function () {\n function t(t, e, i, n, r, a, o) {\n return ct.barycoordFromPoint(t, e, i, n, _), r.multiplyScalar(_.x), a.multiplyScalar(_.y), o.multiplyScalar(_.z), r.add(a).add(o), r.clone();\n }function e(t, e, i, n, r, a, o) {\n var s = t.material;if (null === (s.side === be ? i.intersectTriangle(a, r, n, !0, o) : i.intersectTriangle(n, r, a, s.side !== we, o))) return null;y.copy(o), y.applyMatrix4(t.matrixWorld);var l = e.ray.origin.distanceTo(y);return l < e.near || l > e.far ? null : { distance: l, point: y.clone(), object: t };\n }function r(i, n, r, a, o, s, l, d) {\n c.fromBufferAttribute(a, s), h.fromBufferAttribute(a, l), u.fromBufferAttribute(a, d);var f = e(i, n, r, c, h, u, x);return f && (o && (m.fromBufferAttribute(o, s), g.fromBufferAttribute(o, l), v.fromBufferAttribute(o, d), f.uv = t(x, c, h, u, m, g, v)), f.face = new ht(s, l, d, ct.normal(c, h, u)), f.faceIndex = s), f;\n }var o = new n(),\n s = new rt(),\n l = new $(),\n c = new i(),\n h = new i(),\n u = new i(),\n d = new i(),\n f = new i(),\n p = new i(),\n m = new a(),\n g = new a(),\n v = new a(),\n _ = new i(),\n x = new i(),\n y = new i();return function (i, n) {\n var a = this.geometry,\n _ = this.material,\n y = this.matrixWorld;if (void 0 !== _ && (null === a.boundingSphere && a.computeBoundingSphere(), l.copy(a.boundingSphere), l.applyMatrix4(y), !1 !== i.ray.intersectsSphere(l) && (o.getInverse(y), s.copy(i.ray).applyMatrix4(o), null === a.boundingBox || !1 !== s.intersectsBox(a.boundingBox)))) {\n var M;if (a.isBufferGeometry) {\n var E,\n b,\n w,\n T,\n S,\n L = a.index,\n A = a.attributes.position,\n R = a.attributes.uv;if (null !== L) for (T = 0, S = L.count; T < S; T += 3) {\n E = L.getX(T), b = L.getX(T + 1), w = L.getX(T + 2), (M = r(this, i, s, A, R, E, b, w)) && (M.faceIndex = Math.floor(T / 3), n.push(M));\n } else for (T = 0, S = A.count; T < S; T += 3) {\n E = T, b = T + 1, w = T + 2, (M = r(this, i, s, A, R, E, b, w)) && (M.index = E, n.push(M));\n }\n } else if (a.isGeometry) {\n var P,\n C,\n U,\n N,\n D = Array.isArray(_),\n I = a.vertices,\n F = a.faces,\n z = a.faceVertexUvs[0];z.length > 0 && (N = z);for (var O = 0, B = F.length; O < B; O++) {\n var G = F[O],\n V = D ? _[G.materialIndex] : _;if (void 0 !== V) {\n if (P = I[G.a], C = I[G.b], U = I[G.c], !0 === V.morphTargets) {\n var H = a.morphTargets,\n k = this.morphTargetInfluences;c.set(0, 0, 0), h.set(0, 0, 0), u.set(0, 0, 0);for (var W = 0, X = H.length; W < X; W++) {\n var j = k[W];if (0 !== j) {\n var Y = H[W].vertices;c.addScaledVector(d.subVectors(Y[G.a], P), j), h.addScaledVector(f.subVectors(Y[G.b], C), j), u.addScaledVector(p.subVectors(Y[G.c], U), j);\n }\n }c.add(P), h.add(C), u.add(U), P = c, C = h, U = u;\n }if (M = e(this, i, s, P, C, U, x)) {\n if (N && N[O]) {\n var q = N[O];m.copy(q[0]), g.copy(q[1]), v.copy(q[2]), M.uv = t(x, P, C, U, m, g, v);\n }M.face = G, M.faceIndex = O, n.push(M);\n }\n }\n }\n }\n }\n };\n }(), clone: function clone() {\n return new this.constructor(this.geometry, this.material).copy(this);\n } }), Et.prototype = Object.create(xt.prototype), Et.prototype.constructor = Et, bt.prototype = Object.create(yt.prototype), bt.prototype.constructor = bt, wt.prototype = Object.create(yt.prototype), wt.prototype.constructor = wt, Tt.prototype = _extends(Object.create(st.prototype), { constructor: Tt, isCamera: !0, copy: function copy(t) {\n return st.prototype.copy.call(this, t), this.matrixWorldInverse.copy(t.matrixWorldInverse), this.projectionMatrix.copy(t.projectionMatrix), this;\n }, getWorldDirection: function () {\n var t = new e();return function (e) {\n var n = e || new i();return this.getWorldQuaternion(t), n.set(0, 0, -1).applyQuaternion(t);\n };\n }(), clone: function clone() {\n return new this.constructor().copy(this);\n } }), St.prototype = _extends(Object.create(Tt.prototype), { constructor: St, isPerspectiveCamera: !0, copy: function copy(t) {\n return Tt.prototype.copy.call(this, t), this.fov = t.fov, this.zoom = t.zoom, this.near = t.near, this.far = t.far, this.focus = t.focus, this.aspect = t.aspect, this.view = null === t.view ? null : _extends({}, t.view), this.filmGauge = t.filmGauge, this.filmOffset = t.filmOffset, this;\n }, setFocalLength: function setFocalLength(t) {\n var e = .5 * this.getFilmHeight() / t;this.fov = 2 * mn.RAD2DEG * Math.atan(e), this.updateProjectionMatrix();\n }, getFocalLength: function getFocalLength() {\n var t = Math.tan(.5 * mn.DEG2RAD * this.fov);return .5 * this.getFilmHeight() / t;\n }, getEffectiveFOV: function getEffectiveFOV() {\n return 2 * mn.RAD2DEG * Math.atan(Math.tan(.5 * mn.DEG2RAD * this.fov) / this.zoom);\n }, getFilmWidth: function getFilmWidth() {\n return this.filmGauge * Math.min(this.aspect, 1);\n }, getFilmHeight: function getFilmHeight() {\n return this.filmGauge / Math.max(this.aspect, 1);\n }, setViewOffset: function setViewOffset(t, e, i, n, r, a) {\n this.aspect = t / e, this.view = { fullWidth: t, fullHeight: e, offsetX: i, offsetY: n, width: r, height: a }, this.updateProjectionMatrix();\n }, clearViewOffset: function clearViewOffset() {\n this.view = null, this.updateProjectionMatrix();\n }, updateProjectionMatrix: function updateProjectionMatrix() {\n var t = this.near,\n e = t * Math.tan(.5 * mn.DEG2RAD * this.fov) / this.zoom,\n i = 2 * e,\n n = this.aspect * i,\n r = -.5 * n,\n a = this.view;if (null !== a) {\n var o = a.fullWidth,\n s = a.fullHeight;r += a.offsetX * n / o, e -= a.offsetY * i / s, n *= a.width / o, i *= a.height / s;\n }var l = this.filmOffset;0 !== l && (r += t * l / this.getFilmWidth()), this.projectionMatrix.makePerspective(r, r + n, e, e - i, t, this.far);\n }, toJSON: function toJSON(t) {\n var e = st.prototype.toJSON.call(this, t);return e.object.fov = this.fov, e.object.zoom = this.zoom, e.object.near = this.near, e.object.far = this.far, e.object.focus = this.focus, e.object.aspect = this.aspect, null !== this.view && (e.object.view = _extends({}, this.view)), e.object.filmGauge = this.filmGauge, e.object.filmOffset = this.filmOffset, e;\n } }), Lt.prototype = _extends(Object.create(Tt.prototype), { constructor: Lt, isOrthographicCamera: !0, copy: function copy(t) {\n return Tt.prototype.copy.call(this, t), this.left = t.left, this.right = t.right, this.top = t.top, this.bottom = t.bottom, this.near = t.near, this.far = t.far, this.zoom = t.zoom, this.view = null === t.view ? null : _extends({}, t.view), this;\n }, setViewOffset: function setViewOffset(t, e, i, n, r, a) {\n this.view = { fullWidth: t, fullHeight: e, offsetX: i, offsetY: n, width: r, height: a }, this.updateProjectionMatrix();\n }, clearViewOffset: function clearViewOffset() {\n this.view = null, this.updateProjectionMatrix();\n }, updateProjectionMatrix: function updateProjectionMatrix() {\n var t = (this.right - this.left) / (2 * this.zoom),\n e = (this.top - this.bottom) / (2 * this.zoom),\n i = (this.right + this.left) / 2,\n n = (this.top + this.bottom) / 2,\n r = i - t,\n a = i + t,\n o = n + e,\n s = n - e;if (null !== this.view) {\n var l = this.zoom / (this.view.width / this.view.fullWidth),\n c = this.zoom / (this.view.height / this.view.fullHeight),\n h = (this.right - this.left) / this.view.width,\n u = (this.top - this.bottom) / this.view.height;r += h * (this.view.offsetX / l), a = r + h * (this.view.width / l), o -= u * (this.view.offsetY / c), s = o - u * (this.view.height / c);\n }this.projectionMatrix.makeOrthographic(r, a, o, s, this.near, this.far);\n }, toJSON: function toJSON(t) {\n var e = st.prototype.toJSON.call(this, t);return e.object.zoom = this.zoom, e.object.left = this.left, e.object.right = this.right, e.object.top = this.top, e.object.bottom = this.bottom, e.object.near = this.near, e.object.far = this.far, null !== this.view && (e.object.view = _extends({}, this.view)), e;\n } });var Un = 0;oe.prototype = _extends(Object.create(st.prototype), { constructor: oe, copy: function copy(t, e) {\n return st.prototype.copy.call(this, t, e), null !== t.background && (this.background = t.background.clone()), null !== t.fog && (this.fog = t.fog.clone()), null !== t.overrideMaterial && (this.overrideMaterial = t.overrideMaterial.clone()), this.autoUpdate = t.autoUpdate, this.matrixAutoUpdate = t.matrixAutoUpdate, this;\n }, toJSON: function toJSON(t) {\n var e = st.prototype.toJSON.call(this, t);return null !== this.background && (e.object.background = this.background.toJSON(t)), null !== this.fog && (e.object.fog = this.fog.toJSON()), e;\n } });var Nn = { enabled: !1, files: {}, add: function add(t, e) {\n !1 !== this.enabled && (this.files[t] = e);\n }, get: function get(t) {\n if (!1 !== this.enabled) return this.files[t];\n }, remove: function remove(t) {\n delete this.files[t];\n }, clear: function clear() {\n this.files = {};\n } },\n Dn = new se();_extends(le.prototype, { load: function load(t, e, i, n) {\n void 0 === t && (t = \"\"), void 0 !== this.path && (t = this.path + t);var r = this,\n a = Nn.get(t);if (void 0 !== a) return r.manager.itemStart(t), setTimeout(function () {\n e && e(a), r.manager.itemEnd(t);\n }, 0), a;var o = /^data:(.*?)(;base64)?,(.*)$/,\n s = t.match(o);if (s) {\n var l = s[1],\n c = !!s[2],\n h = s[3];h = window.decodeURIComponent(h), c && (h = window.atob(h));try {\n var u,\n d = (this.responseType || \"\").toLowerCase();switch (d) {case \"arraybuffer\":case \"blob\":\n u = new ArrayBuffer(h.length);for (var f = new Uint8Array(u), p = 0; p < h.length; p++) {\n f[p] = h.charCodeAt(p);\n }\"blob\" === d && (u = new Blob([u], { type: l }));break;case \"document\":\n var m = new DOMParser();u = m.parseFromString(h, l);break;case \"json\":\n u = JSON.parse(h);break;default:\n u = h;}window.setTimeout(function () {\n e && e(u), r.manager.itemEnd(t);\n }, 0);\n } catch (e) {\n window.setTimeout(function () {\n n && n(e), r.manager.itemEnd(t), r.manager.itemError(t);\n }, 0);\n }\n } else {\n var g = new XMLHttpRequest();g.open(\"GET\", t, !0), g.addEventListener(\"load\", function (i) {\n var a = i.target.response;Nn.add(t, a), 200 === this.status ? (e && e(a), r.manager.itemEnd(t)) : 0 === this.status ? (console.warn(\"THREE.FileLoader: HTTP Status 0 received.\"), e && e(a), r.manager.itemEnd(t)) : (n && n(i), r.manager.itemEnd(t), r.manager.itemError(t));\n }, !1), void 0 !== i && g.addEventListener(\"progress\", function (t) {\n i(t);\n }, !1), g.addEventListener(\"error\", function (e) {\n n && n(e), r.manager.itemEnd(t), r.manager.itemError(t);\n }, !1), void 0 !== this.responseType && (g.responseType = this.responseType), void 0 !== this.withCredentials && (g.withCredentials = this.withCredentials), g.overrideMimeType && g.overrideMimeType(void 0 !== this.mimeType ? this.mimeType : \"text/plain\");for (var v in this.requestHeader) {\n g.setRequestHeader(v, this.requestHeader[v]);\n }g.send(null);\n }return r.manager.itemStart(t), g;\n }, setPath: function setPath(t) {\n return this.path = t, this;\n }, setResponseType: function setResponseType(t) {\n return this.responseType = t, this;\n }, setWithCredentials: function setWithCredentials(t) {\n return this.withCredentials = t, this;\n }, setMimeType: function setMimeType(t) {\n return this.mimeType = t, this;\n }, setRequestHeader: function setRequestHeader(t) {\n return this.requestHeader = t, this;\n } }), ce.prototype = Object.create(o.prototype), ce.prototype.constructor = ce, ce.prototype.isCompressedTexture = !0, _extends(he.prototype, { load: function load(t, e, i, n) {\n var r = this,\n a = [],\n o = new ce();o.image = a;var s = new le(this.manager);if (s.setPath(this.path), s.setResponseType(\"arraybuffer\"), Array.isArray(t)) for (var l = 0, c = 0, h = t.length; c < h; ++c) {\n !function (c) {\n s.load(t[c], function (t) {\n var i = r._parser(t, !0);a[c] = { width: i.width, height: i.height, format: i.format, mipmaps: i.mipmaps }, 6 === (l += 1) && (1 === i.mipmapCount && (o.minFilter = Ti), o.format = i.format, o.needsUpdate = !0, e && e(o));\n }, i, n);\n }(c);\n } else s.load(t, function (t) {\n var i = r._parser(t, !0);if (i.isCubemap) for (var n = i.mipmaps.length / i.mipmapCount, s = 0; s < n; s++) {\n a[s] = { mipmaps: [] };for (var l = 0; l < i.mipmapCount; l++) {\n a[s].mipmaps.push(i.mipmaps[s * i.mipmapCount + l]), a[s].format = i.format, a[s].width = i.width, a[s].height = i.height;\n }\n } else o.image.width = i.width, o.image.height = i.height, o.mipmaps = i.mipmaps;1 === i.mipmapCount && (o.minFilter = Ti), o.format = i.format, o.needsUpdate = !0, e && e(o);\n }, i, n);return o;\n }, setPath: function setPath(t) {\n return this.path = t, this;\n } }), _extends(ue.prototype, { load: function load(t, e, i, n) {\n var r = this,\n a = new s(),\n o = new le(this.manager);return o.setResponseType(\"arraybuffer\"), o.load(t, function (t) {\n var i = r._parser(t);i && (void 0 !== i.image ? a.image = i.image : void 0 !== i.data && (a.image.width = i.width, a.image.height = i.height, a.image.data = i.data), a.wrapS = void 0 !== i.wrapS ? i.wrapS : yi, a.wrapT = void 0 !== i.wrapT ? i.wrapT : yi, a.magFilter = void 0 !== i.magFilter ? i.magFilter : Ti, a.minFilter = void 0 !== i.minFilter ? i.minFilter : Li, a.anisotropy = void 0 !== i.anisotropy ? i.anisotropy : 1, void 0 !== i.format && (a.format = i.format), void 0 !== i.type && (a.type = i.type), void 0 !== i.mipmaps && (a.mipmaps = i.mipmaps), 1 === i.mipmapCount && (a.minFilter = Ti), a.needsUpdate = !0, e && e(a, i));\n }, i, n), a;\n } }), _extends(de.prototype, { load: function load(t, e, i, n) {\n void 0 === t && (t = \"\"), void 0 !== this.path && (t = this.path + t);var r = this,\n a = Nn.get(t);if (void 0 !== a) return r.manager.itemStart(t), setTimeout(function () {\n e && e(a), r.manager.itemEnd(t);\n }, 0), a;var o = document.createElementNS(\"http://www.w3.org/1999/xhtml\", \"img\");return o.addEventListener(\"load\", function () {\n Nn.add(t, this), e && e(this), r.manager.itemEnd(t);\n }, !1), o.addEventListener(\"error\", function (e) {\n n && n(e), r.manager.itemEnd(t), r.manager.itemError(t);\n }, !1), \"data:\" !== t.substr(0, 5) && void 0 !== this.crossOrigin && (o.crossOrigin = this.crossOrigin), r.manager.itemStart(t), o.src = t, o;\n }, setCrossOrigin: function setCrossOrigin(t) {\n return this.crossOrigin = t, this;\n }, setPath: function setPath(t) {\n return this.path = t, this;\n } }), _extends(fe.prototype, { load: function load(t, e, i, n) {\n var r = new l(),\n a = new de(this.manager);a.setCrossOrigin(this.crossOrigin), a.setPath(this.path);for (var o = 0, s = 0; s < t.length; ++s) {\n !function (i) {\n a.load(t[i], function (t) {\n r.images[i] = t, 6 == ++o && (r.needsUpdate = !0, e && e(r));\n }, void 0, n);\n }(s);\n }return r;\n }, setCrossOrigin: function setCrossOrigin(t) {\n return this.crossOrigin = t, this;\n }, setPath: function setPath(t) {\n return this.path = t, this;\n } }), _extends(pe.prototype, { load: function load(t, e, i, n) {\n var r = new de(this.manager);r.setCrossOrigin(this.crossOrigin), r.setPath(this.path);var a = new o();return a.image = r.load(t, function () {\n var i = t.search(/\\.(jpg|jpeg)$/) > 0 || 0 === t.search(/^data\\:image\\/jpeg/);a.format = i ? Vi : Hi, a.needsUpdate = !0, void 0 !== e && e(a);\n }, i, n), a;\n }, setCrossOrigin: function setCrossOrigin(t) {\n return this.crossOrigin = t, this;\n }, setPath: function setPath(t) {\n return this.path = t, this;\n } }), t.WebGLRenderer = ae, t.Scene = oe, t.Mesh = Mt, t.Texture = o, t.MeshBasicMaterial = ut, t.CompressedTextureLoader = he, t.DataTextureLoader = ue, t.CubeTextureLoader = fe, t.TextureLoader = pe, t.PerspectiveCamera = St, t.Math = mn, t.Vector3 = i, t.BoxGeometry = Et, t.BoxBufferGeometry = bt, Object.defineProperty(t, \"__esModule\", { value: !0 });\n});\n\n/***/ }),\n\n/***/ \"J/Fn\":\n/***/ (function(module, exports) {\n\nmodule.exports = {\"array\":[{\"market\":\"AR_es\",\"text\":{\"menushowtext\":\"\",\"menuhidetext\":\"\"},\"onix\":[{\"code\":\"CHE-2019-10-21_INT_OnyxHB_comp_Compositing_ARG\",\"version\":\"v005\",\"default\":true}]},{\"market\":\"BR_pt\",\"text\":{\"menushowtext\":\"\",\"menuhidetext\":\"\"},\"onix\":[{\"code\":\"CHE-2019-10-21_INT_OnyxHB_comp_Compositing_BRA\",\"version\":\"v005\",\"default\":true}]}]}\n\n/***/ }),\n\n/***/ \"JkW7\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n\n// EXTERNAL MODULE: ./style/_index.scss\nvar _index = __webpack_require__(\"N1wY\");\nvar _index_default = /*#__PURE__*/__webpack_require__.n(_index);\n\n// EXTERNAL MODULE: ../node_modules/preact/dist/preact.min.js\nvar preact_min = __webpack_require__(\"KM04\");\nvar preact_min_default = /*#__PURE__*/__webpack_require__.n(preact_min);\n\n// EXTERNAL MODULE: ./components/gemView/gemComponentsView/scss/gemComponentsView.scss\nvar gemComponentsView = __webpack_require__(\"PJ3B\");\nvar gemComponentsView_default = /*#__PURE__*/__webpack_require__.n(gemComponentsView);\n\n// EXTERNAL MODULE: ../node_modules/prop-types/index.js\nvar prop_types = __webpack_require__(\"5D9O\");\nvar prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);\n\n// CONCATENATED MODULE: ../node_modules/preact-compat/dist/preact-compat.es.js\n\n\n\n\nvar preact_compat_es_version = '15.1.0'; // trick libraries to think we are react\n\nvar ELEMENTS = 'a abbr address area article aside audio b base bdi bdo big blockquote body br button canvas caption cite code col colgroup data datalist dd del details dfn dialog div dl dt em embed fieldset figcaption figure footer form h1 h2 h3 h4 h5 h6 head header hgroup hr html i iframe img input ins kbd keygen label legend li link main map mark menu menuitem meta meter nav noscript object ol optgroup option output p param picture pre progress q rp rt ruby s samp script section select small source span strong style sub summary sup table tbody td textarea tfoot th thead time title tr track u ul var video wbr circle clipPath defs ellipse g image line linearGradient mask path pattern polygon polyline radialGradient rect stop svg text tspan'.split(' ');\n\nvar REACT_ELEMENT_TYPE = typeof Symbol !== 'undefined' && Symbol.for && Symbol.for('react.element') || 0xeac7;\n\nvar COMPONENT_WRAPPER_KEY = typeof Symbol !== 'undefined' && Symbol.for ? Symbol.for('__preactCompatWrapper') : '__preactCompatWrapper';\n\n// don't autobind these methods since they already have guaranteed context.\nvar AUTOBIND_BLACKLIST = {\n\tconstructor: 1,\n\trender: 1,\n\tshouldComponentUpdate: 1,\n\tcomponentWillReceiveProps: 1,\n\tcomponentWillUpdate: 1,\n\tcomponentDidUpdate: 1,\n\tcomponentWillMount: 1,\n\tcomponentDidMount: 1,\n\tcomponentWillUnmount: 1,\n\tcomponentDidUnmount: 1\n};\n\nvar CAMEL_PROPS = /^(?:accent|alignment|arabic|baseline|cap|clip|color|fill|flood|font|glyph|horiz|marker|overline|paint|stop|strikethrough|stroke|text|underline|unicode|units|v|vector|vert|word|writing|x)[A-Z]/;\n\nvar BYPASS_HOOK = {};\n\n/*global process*/\nvar DEV = false;\ntry {\n\tDEV = \"production\" !== 'production';\n} catch (e) {}\n\n// a component that renders nothing. Used to replace components for unmountComponentAtNode.\nfunction EmptyComponent() {\n\treturn null;\n}\n\n// make react think we're react.\nvar VNode = Object(preact_min[\"h\"])('a', null).constructor;\nVNode.prototype.$$typeof = REACT_ELEMENT_TYPE;\nVNode.prototype.preactCompatUpgraded = false;\nVNode.prototype.preactCompatNormalized = false;\n\nObject.defineProperty(VNode.prototype, 'type', {\n\tget: function get() {\n\t\treturn this.nodeName;\n\t},\n\tset: function set(v) {\n\t\tthis.nodeName = v;\n\t},\n\tconfigurable: true\n});\n\nObject.defineProperty(VNode.prototype, 'props', {\n\tget: function get() {\n\t\treturn this.attributes;\n\t},\n\tset: function set(v) {\n\t\tthis.attributes = v;\n\t},\n\tconfigurable: true\n});\n\nvar oldEventHook = preact_min[\"options\"].event;\npreact_min[\"options\"].event = function (e) {\n\tif (oldEventHook) {\n\t\te = oldEventHook(e);\n\t}\n\te.persist = Object;\n\te.nativeEvent = e;\n\treturn e;\n};\n\nvar oldVnodeHook = preact_min[\"options\"].vnode;\npreact_min[\"options\"].vnode = function (vnode) {\n\tif (!vnode.preactCompatUpgraded) {\n\t\tvnode.preactCompatUpgraded = true;\n\n\t\tvar tag = vnode.nodeName,\n\t\t attrs = vnode.attributes = vnode.attributes == null ? {} : extend({}, vnode.attributes);\n\n\t\tif (typeof tag === 'function') {\n\t\t\tif (tag[COMPONENT_WRAPPER_KEY] === true || tag.prototype && 'isReactComponent' in tag.prototype) {\n\t\t\t\tif (vnode.children && String(vnode.children) === '') {\n\t\t\t\t\tvnode.children = undefined;\n\t\t\t\t}\n\t\t\t\tif (vnode.children) {\n\t\t\t\t\tattrs.children = vnode.children;\n\t\t\t\t}\n\n\t\t\t\tif (!vnode.preactCompatNormalized) {\n\t\t\t\t\tnormalizeVNode(vnode);\n\t\t\t\t}\n\t\t\t\thandleComponentVNode(vnode);\n\t\t\t}\n\t\t} else {\n\t\t\tif (vnode.children && String(vnode.children) === '') {\n\t\t\t\tvnode.children = undefined;\n\t\t\t}\n\t\t\tif (vnode.children) {\n\t\t\t\tattrs.children = vnode.children;\n\t\t\t}\n\n\t\t\tif (attrs.defaultValue) {\n\t\t\t\tif (!attrs.value && attrs.value !== 0) {\n\t\t\t\t\tattrs.value = attrs.defaultValue;\n\t\t\t\t}\n\t\t\t\tdelete attrs.defaultValue;\n\t\t\t}\n\n\t\t\thandleElementVNode(vnode, attrs);\n\t\t}\n\t}\n\n\tif (oldVnodeHook) {\n\t\toldVnodeHook(vnode);\n\t}\n};\n\nfunction handleComponentVNode(vnode) {\n\tvar tag = vnode.nodeName,\n\t a = vnode.attributes;\n\n\tvnode.attributes = {};\n\tif (tag.defaultProps) {\n\t\textend(vnode.attributes, tag.defaultProps);\n\t}\n\tif (a) {\n\t\textend(vnode.attributes, a);\n\t}\n}\n\nfunction handleElementVNode(vnode, a) {\n\tvar shouldSanitize, attrs, i;\n\tif (a) {\n\t\tfor (i in a) {\n\t\t\tif (shouldSanitize = CAMEL_PROPS.test(i)) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (shouldSanitize) {\n\t\t\tattrs = vnode.attributes = {};\n\t\t\tfor (i in a) {\n\t\t\t\tif (a.hasOwnProperty(i)) {\n\t\t\t\t\tattrs[CAMEL_PROPS.test(i) ? i.replace(/([A-Z0-9])/, '-$1').toLowerCase() : i] = a[i];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n// proxy render() since React returns a Component reference.\nfunction render$1(vnode, parent, callback) {\n\tvar prev = parent && parent._preactCompatRendered && parent._preactCompatRendered.base;\n\n\t// ignore impossible previous renders\n\tif (prev && prev.parentNode !== parent) {\n\t\tprev = null;\n\t}\n\n\t// default to first Element child\n\tif (!prev && parent) {\n\t\tprev = parent.firstElementChild;\n\t}\n\n\t// remove unaffected siblings\n\tfor (var i = parent.childNodes.length; i--;) {\n\t\tif (parent.childNodes[i] !== prev) {\n\t\t\tparent.removeChild(parent.childNodes[i]);\n\t\t}\n\t}\n\n\tvar out = Object(preact_min[\"render\"])(vnode, parent, prev);\n\tif (parent) {\n\t\tparent._preactCompatRendered = out && (out._component || { base: out });\n\t}\n\tif (typeof callback === 'function') {\n\t\tcallback();\n\t}\n\treturn out && out._component || out;\n}\n\nvar ContextProvider = function ContextProvider() {};\n\nContextProvider.prototype.getChildContext = function () {\n\treturn this.props.context;\n};\nContextProvider.prototype.render = function (props) {\n\treturn props.children[0];\n};\n\nfunction renderSubtreeIntoContainer(parentComponent, vnode, container, callback) {\n\tvar wrap = Object(preact_min[\"h\"])(ContextProvider, { context: parentComponent.context }, vnode);\n\tvar renderContainer = render$1(wrap, container);\n\tvar component = renderContainer._component || renderContainer.base;\n\tif (callback) {\n\t\tcallback.call(component, renderContainer);\n\t}\n\treturn component;\n}\n\nfunction Portal(props) {\n\trenderSubtreeIntoContainer(this, props.vnode, props.container);\n}\n\nfunction createPortal(vnode, container) {\n\treturn Object(preact_min[\"h\"])(Portal, { vnode: vnode, container: container });\n}\n\nfunction unmountComponentAtNode(container) {\n\tvar existing = container._preactCompatRendered && container._preactCompatRendered.base;\n\tif (existing && existing.parentNode === container) {\n\t\tObject(preact_min[\"render\"])(Object(preact_min[\"h\"])(EmptyComponent), container, existing);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nvar ARR = [];\n\n// This API is completely unnecessary for Preact, so it's basically passthrough.\nvar Children = {\n\tmap: function map(children, fn, ctx) {\n\t\tif (children == null) {\n\t\t\treturn null;\n\t\t}\n\t\tchildren = Children.toArray(children);\n\t\tif (ctx && ctx !== children) {\n\t\t\tfn = fn.bind(ctx);\n\t\t}\n\t\treturn children.map(fn);\n\t},\n\tforEach: function forEach(children, fn, ctx) {\n\t\tif (children == null) {\n\t\t\treturn null;\n\t\t}\n\t\tchildren = Children.toArray(children);\n\t\tif (ctx && ctx !== children) {\n\t\t\tfn = fn.bind(ctx);\n\t\t}\n\t\tchildren.forEach(fn);\n\t},\n\tcount: function count(children) {\n\t\treturn children && children.length || 0;\n\t},\n\tonly: function only(children) {\n\t\tchildren = Children.toArray(children);\n\t\tif (children.length !== 1) {\n\t\t\tthrow new Error('Children.only() expects only one child.');\n\t\t}\n\t\treturn children[0];\n\t},\n\ttoArray: function toArray(children) {\n\t\tif (children == null) {\n\t\t\treturn [];\n\t\t}\n\t\treturn ARR.concat(children);\n\t}\n};\n\n/** Track current render() component for ref assignment */\nvar currentComponent;\n\nfunction createFactory(type) {\n\treturn createElement.bind(null, type);\n}\n\nvar DOM = {};\nfor (var preact_compat_es_i = ELEMENTS.length; preact_compat_es_i--;) {\n\tDOM[ELEMENTS[preact_compat_es_i]] = createFactory(ELEMENTS[preact_compat_es_i]);\n}\n\nfunction upgradeToVNodes(arr, offset) {\n\tfor (var i = offset || 0; i < arr.length; i++) {\n\t\tvar obj = arr[i];\n\t\tif (Array.isArray(obj)) {\n\t\t\tupgradeToVNodes(obj);\n\t\t} else if (obj && typeof obj === 'object' && !isValidElement(obj) && (obj.props && obj.type || obj.attributes && obj.nodeName || obj.children)) {\n\t\t\tarr[i] = createElement(obj.type || obj.nodeName, obj.props || obj.attributes, obj.children);\n\t\t}\n\t}\n}\n\nfunction isStatelessComponent(c) {\n\treturn typeof c === 'function' && !(c.prototype && c.prototype.render);\n}\n\n// wraps stateless functional components in a PropTypes validator\nfunction wrapStatelessComponent(WrappedComponent) {\n\treturn createClass({\n\t\tdisplayName: WrappedComponent.displayName || WrappedComponent.name,\n\t\trender: function render() {\n\t\t\treturn WrappedComponent(this.props, this.context);\n\t\t}\n\t});\n}\n\nfunction statelessComponentHook(Ctor) {\n\tvar Wrapped = Ctor[COMPONENT_WRAPPER_KEY];\n\tif (Wrapped) {\n\t\treturn Wrapped === true ? Ctor : Wrapped;\n\t}\n\n\tWrapped = wrapStatelessComponent(Ctor);\n\n\tObject.defineProperty(Wrapped, COMPONENT_WRAPPER_KEY, { configurable: true, value: true });\n\tWrapped.displayName = Ctor.displayName;\n\tWrapped.propTypes = Ctor.propTypes;\n\tWrapped.defaultProps = Ctor.defaultProps;\n\n\tObject.defineProperty(Ctor, COMPONENT_WRAPPER_KEY, { configurable: true, value: Wrapped });\n\n\treturn Wrapped;\n}\n\nfunction createElement() {\n\tvar args = [],\n\t len = arguments.length;\n\twhile (len--) {\n\t\targs[len] = arguments[len];\n\t}upgradeToVNodes(args, 2);\n\treturn normalizeVNode(preact_min[\"h\"].apply(void 0, args));\n}\n\nfunction normalizeVNode(vnode) {\n\tvnode.preactCompatNormalized = true;\n\n\tapplyClassName(vnode);\n\n\tif (isStatelessComponent(vnode.nodeName)) {\n\t\tvnode.nodeName = statelessComponentHook(vnode.nodeName);\n\t}\n\n\tvar ref = vnode.attributes.ref,\n\t type = ref && typeof ref;\n\tif (currentComponent && (type === 'string' || type === 'number')) {\n\t\tvnode.attributes.ref = createStringRefProxy(ref, currentComponent);\n\t}\n\n\tapplyEventNormalization(vnode);\n\n\treturn vnode;\n}\n\nfunction cloneElement$1(element, props) {\n\tvar children = [],\n\t len = arguments.length - 2;\n\twhile (len-- > 0) {\n\t\tchildren[len] = arguments[len + 2];\n\t}if (!isValidElement(element)) {\n\t\treturn element;\n\t}\n\tvar elementProps = element.attributes || element.props;\n\tvar node = Object(preact_min[\"h\"])(element.nodeName || element.type, extend({}, elementProps), element.children || elementProps && elementProps.children);\n\t// Only provide the 3rd argument if needed.\n\t// Arguments 3+ overwrite element.children in preactCloneElement\n\tvar cloneArgs = [node, props];\n\tif (children && children.length) {\n\t\tcloneArgs.push(children);\n\t} else if (props && props.children) {\n\t\tcloneArgs.push(props.children);\n\t}\n\treturn normalizeVNode(preact_min[\"cloneElement\"].apply(void 0, cloneArgs));\n}\n\nfunction isValidElement(element) {\n\treturn element && (element instanceof VNode || element.$$typeof === REACT_ELEMENT_TYPE);\n}\n\nfunction createStringRefProxy(name, component) {\n\treturn component._refProxies[name] || (component._refProxies[name] = function (resolved) {\n\t\tif (component && component.refs) {\n\t\t\tcomponent.refs[name] = resolved;\n\t\t\tif (resolved === null) {\n\t\t\t\tdelete component._refProxies[name];\n\t\t\t\tcomponent = null;\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction applyEventNormalization(ref) {\n\tvar nodeName = ref.nodeName;\n\tvar attributes = ref.attributes;\n\n\tif (!attributes || typeof nodeName !== 'string') {\n\t\treturn;\n\t}\n\tvar props = {};\n\tfor (var i in attributes) {\n\t\tprops[i.toLowerCase()] = i;\n\t}\n\tif (props.ondoubleclick) {\n\t\tattributes.ondblclick = attributes[props.ondoubleclick];\n\t\tdelete attributes[props.ondoubleclick];\n\t}\n\t// for *textual inputs* (incl textarea), normalize `onChange` -> `onInput`:\n\tif (props.onchange && (nodeName === 'textarea' || nodeName.toLowerCase() === 'input' && !/^fil|che|rad/i.test(attributes.type))) {\n\t\tvar normalized = props.oninput || 'oninput';\n\t\tif (!attributes[normalized]) {\n\t\t\tattributes[normalized] = multihook([attributes[normalized], attributes[props.onchange]]);\n\t\t\tdelete attributes[props.onchange];\n\t\t}\n\t}\n}\n\nfunction applyClassName(vnode) {\n\tvar a = vnode.attributes || (vnode.attributes = {});\n\tclassNameDescriptor.enumerable = 'className' in a;\n\tif (a.className) {\n\t\ta.class = a.className;\n\t}\n\tObject.defineProperty(a, 'className', classNameDescriptor);\n}\n\nvar classNameDescriptor = {\n\tconfigurable: true,\n\tget: function get() {\n\t\treturn this.class;\n\t},\n\tset: function set(v) {\n\t\tthis.class = v;\n\t}\n};\n\nfunction extend(base, props) {\n\tvar arguments$1 = arguments;\n\n\tfor (var i = 1, obj = void 0; i < arguments.length; i++) {\n\t\tif (obj = arguments$1[i]) {\n\t\t\tfor (var key in obj) {\n\t\t\t\tif (obj.hasOwnProperty(key)) {\n\t\t\t\t\tbase[key] = obj[key];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn base;\n}\n\nfunction shallowDiffers(a, b) {\n\tfor (var i in a) {\n\t\tif (!(i in b)) {\n\t\t\treturn true;\n\t\t}\n\t}\n\tfor (var i$1 in b) {\n\t\tif (a[i$1] !== b[i$1]) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\nfunction findDOMNode(component) {\n\treturn component && (component.base || component.nodeType === 1 && component) || null;\n}\n\nfunction F() {}\n\nfunction createClass(obj) {\n\tfunction cl(props, context) {\n\t\tbindAll(this);\n\t\tComponent$1.call(this, props, context, BYPASS_HOOK);\n\t\tnewComponentHook.call(this, props, context);\n\t}\n\n\tobj = extend({ constructor: cl }, obj);\n\n\t// We need to apply mixins here so that getDefaultProps is correctly mixed\n\tif (obj.mixins) {\n\t\tapplyMixins(obj, collateMixins(obj.mixins));\n\t}\n\tif (obj.statics) {\n\t\textend(cl, obj.statics);\n\t}\n\tif (obj.propTypes) {\n\t\tcl.propTypes = obj.propTypes;\n\t}\n\tif (obj.defaultProps) {\n\t\tcl.defaultProps = obj.defaultProps;\n\t}\n\tif (obj.getDefaultProps) {\n\t\tcl.defaultProps = obj.getDefaultProps.call(cl);\n\t}\n\n\tF.prototype = Component$1.prototype;\n\tcl.prototype = extend(new F(), obj);\n\n\tcl.displayName = obj.displayName || 'Component';\n\n\treturn cl;\n}\n\n// Flatten an Array of mixins to a map of method name to mixin implementations\nfunction collateMixins(mixins) {\n\tvar keyed = {};\n\tfor (var i = 0; i < mixins.length; i++) {\n\t\tvar mixin = mixins[i];\n\t\tfor (var key in mixin) {\n\t\t\tif (mixin.hasOwnProperty(key) && typeof mixin[key] === 'function') {\n\t\t\t\t(keyed[key] || (keyed[key] = [])).push(mixin[key]);\n\t\t\t}\n\t\t}\n\t}\n\treturn keyed;\n}\n\n// apply a mapping of Arrays of mixin methods to a component prototype\nfunction applyMixins(proto, mixins) {\n\tfor (var key in mixins) {\n\t\tif (mixins.hasOwnProperty(key)) {\n\t\t\tproto[key] = multihook(mixins[key].concat(proto[key] || ARR), key === 'getDefaultProps' || key === 'getInitialState' || key === 'getChildContext');\n\t\t}\n\t}\n}\n\nfunction bindAll(ctx) {\n\tfor (var i in ctx) {\n\t\tvar v = ctx[i];\n\t\tif (typeof v === 'function' && !v.__bound && !AUTOBIND_BLACKLIST.hasOwnProperty(i)) {\n\t\t\t(ctx[i] = v.bind(ctx)).__bound = true;\n\t\t}\n\t}\n}\n\nfunction callMethod(ctx, m, args) {\n\tif (typeof m === 'string') {\n\t\tm = ctx.constructor.prototype[m];\n\t}\n\tif (typeof m === 'function') {\n\t\treturn m.apply(ctx, args);\n\t}\n}\n\nfunction multihook(hooks, skipDuplicates) {\n\treturn function () {\n\t\tvar arguments$1 = arguments;\n\t\tvar this$1 = this;\n\n\t\tvar ret;\n\t\tfor (var i = 0; i < hooks.length; i++) {\n\t\t\tvar r = callMethod(this$1, hooks[i], arguments$1);\n\n\t\t\tif (skipDuplicates && r != null) {\n\t\t\t\tif (!ret) {\n\t\t\t\t\tret = {};\n\t\t\t\t}\n\t\t\t\tfor (var key in r) {\n\t\t\t\t\tif (r.hasOwnProperty(key)) {\n\t\t\t\t\t\tret[key] = r[key];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (typeof r !== 'undefined') {\n\t\t\t\tret = r;\n\t\t\t}\n\t\t}\n\t\treturn ret;\n\t};\n}\n\nfunction newComponentHook(props, context) {\n\tpropsHook.call(this, props, context);\n\tthis.componentWillReceiveProps = multihook([propsHook, this.componentWillReceiveProps || 'componentWillReceiveProps']);\n\tthis.render = multihook([propsHook, beforeRender, this.render || 'render', afterRender]);\n}\n\nfunction propsHook(props, context) {\n\tif (!props) {\n\t\treturn;\n\t}\n\n\t// React annoyingly special-cases single children, and some react components are ridiculously strict about this.\n\tvar c = props.children;\n\tif (c && Array.isArray(c) && c.length === 1 && (typeof c[0] === 'string' || typeof c[0] === 'function' || c[0] instanceof VNode)) {\n\t\tprops.children = c[0];\n\n\t\t// but its totally still going to be an Array.\n\t\tif (props.children && typeof props.children === 'object') {\n\t\t\tprops.children.length = 1;\n\t\t\tprops.children[0] = props.children;\n\t\t}\n\t}\n\n\t// add proptype checking\n\tif (DEV) {\n\t\tvar ctor = typeof this === 'function' ? this : this.constructor,\n\t\t propTypes = this.propTypes || ctor.propTypes;\n\t\tvar displayName = this.displayName || ctor.name;\n\n\t\tif (propTypes) {\n\t\t\tprop_types_default.a.checkPropTypes(propTypes, props, 'prop', displayName);\n\t\t}\n\t}\n}\n\nfunction beforeRender(props) {\n\tcurrentComponent = this;\n}\n\nfunction afterRender() {\n\tif (currentComponent === this) {\n\t\tcurrentComponent = null;\n\t}\n}\n\nfunction Component$1(props, context, opts) {\n\tpreact_min[\"Component\"].call(this, props, context);\n\tthis.state = this.getInitialState ? this.getInitialState() : {};\n\tthis.refs = {};\n\tthis._refProxies = {};\n\tif (opts !== BYPASS_HOOK) {\n\t\tnewComponentHook.call(this, props, context);\n\t}\n}\nextend(Component$1.prototype = new preact_min[\"Component\"](), {\n\tconstructor: Component$1,\n\n\tisReactComponent: {},\n\n\treplaceState: function replaceState(state, callback) {\n\t\tvar this$1 = this;\n\n\t\tthis.setState(state, callback);\n\t\tfor (var i in this$1.state) {\n\t\t\tif (!(i in state)) {\n\t\t\t\tdelete this$1.state[i];\n\t\t\t}\n\t\t}\n\t},\n\n\tgetDOMNode: function getDOMNode() {\n\t\treturn this.base;\n\t},\n\n\tisMounted: function isMounted() {\n\t\treturn !!this.base;\n\t}\n});\n\nfunction PureComponent(props, context) {\n\tComponent$1.call(this, props, context);\n}\nF.prototype = Component$1.prototype;\nPureComponent.prototype = new F();\nPureComponent.prototype.isPureReactComponent = true;\nPureComponent.prototype.shouldComponentUpdate = function (props, state) {\n\treturn shallowDiffers(this.props, props) || shallowDiffers(this.state, state);\n};\n\nfunction unstable_batchedUpdates(callback) {\n\tcallback();\n}\n\nvar index = {\n\tversion: preact_compat_es_version,\n\tDOM: DOM,\n\tPropTypes: prop_types_default.a,\n\tChildren: Children,\n\trender: render$1,\n\tcreateClass: createClass,\n\tcreatePortal: createPortal,\n\tcreateFactory: createFactory,\n\tcreateElement: createElement,\n\tcloneElement: cloneElement$1,\n\tisValidElement: isValidElement,\n\tfindDOMNode: findDOMNode,\n\tunmountComponentAtNode: unmountComponentAtNode,\n\tComponent: Component$1,\n\tPureComponent: PureComponent,\n\tunstable_renderSubtreeIntoContainer: renderSubtreeIntoContainer,\n\tunstable_batchedUpdates: unstable_batchedUpdates,\n\t__spread: extend\n};\n\n/* harmony default export */ var preact_compat_es = (index);\n\n//# sourceMappingURL=preact-compat.es.js.map\n// EXTERNAL MODULE: ./components/three.min.js\nvar three_min = __webpack_require__(\"Fwn5\");\nvar three_min_default = /*#__PURE__*/__webpack_require__.n(three_min);\n\n// EXTERNAL MODULE: ./components/three/scss/three.scss\nvar three = __webpack_require__(\"hZyK\");\nvar three_default = /*#__PURE__*/__webpack_require__.n(three);\n\n// CONCATENATED MODULE: ./components/gemView/gemThree/gemThree.js\n\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\n\nvar gemThree_Three = function (_Component) {\n _inherits(Three, _Component);\n\n function Three(props) {\n _classCallCheck(this, Three);\n\n var _this = _possibleConstructorReturn(this, _Component.call(this, props));\n\n _this.init = function () {\n var _this$props = _this.props,\n absPath = _this$props.absPath,\n interior = _this$props.interior,\n imgPath = _this$props.imgPath;\n // set init values for controls and positions\n\n var isUserInteracting = false;\n var onMouseDownMouseX = 0;\n var onMouseDownMouseY = 0;\n var lon = 180;\n var onMouseDownLon = 0;\n var lat = -15;\n var onMouseDownLat = 0;\n var phi = 0;\n var theta = 0;\n var target = new three_min[\"Vector3\"]();\n var loaded = 0;\n var startDistance = 0;\n var endDistance = 0;\n var devicePixelRatio = window.devicePixelRatio || 1;\n var logicalViewportWidth = window.innerWidth;\n var physicalViewportWidth = logicalViewportWidth * devicePixelRatio;\n\n var scene = new three_min[\"Scene\"]();\n var fovadjustment = _this.props.carline === 'camaro' ? 60 : 60;\n // anpassung am 2. wert vorgenommen weil wir sonst eine verschiebung haben. Dies kann sein das der alte Wert rein soll für das inerior Projekt\n var camera = new three_min[\"PerspectiveCamera\"](fovadjustment, 2.1, 0.8, 1100);\n // set init target\n target.x = 5;\n target.y = 5;\n target.z = 5;\n camera.lookAt(target);\n\n var code = interior ? interior.config[interior.index].code : 'image';\n var version = interior ? '_' + interior.config[interior.index].version : '';\n\n var noIndex = imgPath.replace('index.html', '');\n\n var correctImgPath = true ? noIndex : imgPath;\n\n var urls = [absPath + ('assets/images/' + correctImgPath + 'int/' + code + '_f' + version + '.jpg?imwidth=' + physicalViewportWidth), absPath + ('assets/images/' + correctImgPath + 'int/' + code + '_b' + version + '.jpg?imwidth=' + physicalViewportWidth), absPath + ('assets/images/' + correctImgPath + 'int/' + code + '_u' + version + '.jpg?imwidth=' + physicalViewportWidth), absPath + ('assets/images/' + correctImgPath + 'int/' + code + '_d' + version + '.jpg?imwidth=' + physicalViewportWidth), absPath + ('assets/images/' + correctImgPath + 'int/' + code + '_l' + version + '.jpg?imwidth=' + physicalViewportWidth), absPath + ('assets/images/' + correctImgPath + 'int/' + code + '_r' + version + '.jpg?imwidth=' + physicalViewportWidth)];\n\n var geometry = new three_min[\"BoxGeometry\"](300, 300, 300, 7, 7, 7);\n // load textures\n var textures = [new three_min[\"TextureLoader\"]().load(urls[0], _this.loadImage, undefined, _this.loadImage), new three_min[\"TextureLoader\"]().load(urls[1], _this.loadImage, undefined, _this.loadImage), new three_min[\"TextureLoader\"]().load(urls[2], _this.loadImage, undefined, _this.loadImage), new three_min[\"TextureLoader\"]().load(urls[3], _this.loadImage, undefined, _this.loadImage), new three_min[\"TextureLoader\"]().load(urls[4], _this.loadImage, undefined, _this.loadImage), new three_min[\"TextureLoader\"]().load(urls[5], _this.loadImage, undefined, _this.loadImage)];\n\n // add textures to mesh\n var material = [new three_min[\"MeshBasicMaterial\"]({ map: textures[0] }), new three_min[\"MeshBasicMaterial\"]({ map: textures[1] }), new three_min[\"MeshBasicMaterial\"]({ map: textures[2] }), new three_min[\"MeshBasicMaterial\"]({ map: textures[3] }), new three_min[\"MeshBasicMaterial\"]({ map: textures[4] }), new three_min[\"MeshBasicMaterial\"]({ map: textures[5] })];\n\n // combine texture and cube\n geometry.scale(-1, 1, 1);\n var mesh = new three_min[\"Mesh\"](geometry, material);\n\n scene.add(mesh);\n\n var renderer = new three_min[\"WebGLRenderer\"]();\n renderer.setClearColor(0xffffff, 1);\n renderer.setPixelRatio(window.devicePixelRatio);\n camera.aspect = _this.props.stageWidth / _this.props.stageHeight;\n camera.updateProjectionMatrix();\n renderer.setSize(_this.props.stageWidth, _this.props.stageHeight);\n\n _this.scene = scene;\n _this.camera = camera;\n _this.renderer = renderer;\n _this.material = material;\n _this.isUserInteracting = isUserInteracting;\n _this.onMouseDownMouseX = onMouseDownMouseX;\n _this.onMouseDownMouseY = onMouseDownMouseY;\n _this.lon = lon;\n _this.onMouseDownLon = onMouseDownLon;\n _this.lat = lat;\n _this.onMouseDownLat = onMouseDownLat;\n _this.phi = phi;\n _this.theta = theta;\n _this.target = target;\n _this.loaded = loaded;\n _this.startDistance = startDistance;\n _this.endDistance = endDistance;\n\n _this.mount.appendChild(_this.renderer.domElement);\n _this.start();\n };\n\n _this.start = _this.start.bind(_this);\n _this.stop = _this.stop.bind(_this);\n _this.animate = _this.animate.bind(_this);\n _this.onWindowResize = _this.onWindowResize.bind(_this);\n _this.onDocumentMouseDown = _this.onDocumentMouseDown.bind(_this);\n _this.onDocumentMouseUp = _this.onDocumentMouseUp.bind(_this);\n _this.onDocumentMouseMove = _this.onDocumentMouseMove.bind(_this);\n _this.onDocumentTouchStart = _this.onDocumentTouchStart.bind(_this);\n _this.onDocumentTouchMove = _this.onDocumentTouchMove.bind(_this);\n _this.update = _this.update.bind(_this);\n _this.loadImage = _this.loadImage.bind(_this);\n _this.fovMin = 30;\n _this.fovMax = 60;\n return _this;\n }\n\n Three.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _props = this.props,\n stageHeight = _props.stageHeight,\n stageWidth = _props.stageWidth,\n interior = _props.interior;\n\n if (prevProps.stageWidth !== stageWidth || prevProps.stageHeight !== stageHeight) {\n this.onWindowResize();\n } else if (interior && prevProps.interior.config[prevProps.interior.index] !== interior.config[interior.index]) {\n this.stop();\n this.mount.removeChild(this.renderer.domElement);\n this.frameId = undefined;\n this.init();\n }\n\n if (prevProps.zoomFactor !== this.props.zoomFactor) {\n if (this.props.zoomFactor !== 0) {\n this.zoomIn = this.props.zoomFactor > 0;\n // change zoomTo to change steps of zoomFactor\n this.zoomAnimating = true;\n this.zoomTo = this.camera.fov + this.props.zoomFactor;\n }\n }\n };\n // componentWi\n\n\n Three.prototype.componentDidMount = function componentDidMount() {\n document.addEventListener('mousedown', this.onDocumentMouseDown, false);\n document.addEventListener('mousemove', this.onDocumentMouseMove, false);\n document.addEventListener('mouseup', this.onDocumentMouseUp, false);\n document.addEventListener('touchstart', this.onDocumentTouchStart, false);\n document.addEventListener('touchmove', this.onDocumentTouchMove, {\n passive: false\n });\n window.addEventListener('resize', this.onWindowResize, false);\n this.init();\n };\n\n // callback loadHandling\n Three.prototype.loadImage = function loadImage() {\n this.props.loadHandling(6);\n };\n\n Three.prototype.componentWillUnmount = function componentWillUnmount() {\n this.stop();\n this.mount.removeChild(this.renderer.domElement);\n\n document.removeEventListener('mousedown', this.onDocumentMouseDown, false);\n document.removeEventListener('mousemove', this.onDocumentMouseMove, false);\n document.removeEventListener('mouseup', this.onDocumentMouseUp, false);\n document.removeEventListener('touchstart', this.onDocumentTouchStart, false);\n document.removeEventListener('touchmove', this.onDocumentTouchMove, false);\n window.removeEventListener('resize', this.onWindowResize, false);\n };\n\n Three.prototype.start = function start() {\n if (!this.frameId) {\n this.frameId = requestAnimationFrame(this.animate);\n }\n };\n\n Three.prototype.stop = function stop() {\n cancelAnimationFrame(this.frameId);\n };\n\n Three.prototype.animate = function animate() {\n this.update();\n this.renderScene();\n if (this.zoomAnimating) {\n this.clickZoom();\n }\n this.frameId = window.requestAnimationFrame(this.animate);\n };\n\n Three.prototype.renderScene = function renderScene() {\n this.renderer.render(this.scene, this.camera);\n };\n\n Three.prototype.onWindowResize = function onWindowResize() {\n this.camera.aspect = this.props.stageWidth / this.props.stageHeight;\n this.camera.updateProjectionMatrix();\n this.renderer.setSize(this.props.stageWidth, this.props.stageHeight);\n };\n\n // CONTROLS >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n\n\n Three.prototype.onDocumentMouseDown = function onDocumentMouseDown(event) {\n event.preventDefault();\n this.isUserInteracting = true;\n this.onPointerDownPointerX = event.clientX;\n this.onPointerDownPointerY = event.clientY;\n this.onPointerDownLon = this.lon;\n this.onPointerDownLat = this.lat;\n };\n\n Three.prototype.onDocumentMouseMove = function onDocumentMouseMove(event) {\n var _props2 = this.props,\n thumbbarHover = _props2.thumbbarHover,\n thumbbarOpen = _props2.thumbbarOpen;\n\n\n if (!thumbbarHover || !thumbbarOpen) {\n if (this.isUserInteracting) {\n this.lon = (this.onPointerDownPointerX - event.clientX) * 0.1 + this.onPointerDownLon;\n\n this.lat = (event.clientY - this.onPointerDownPointerY) * 0.1 + this.onPointerDownLat;\n }\n }\n };\n\n Three.prototype.onDocumentMouseUp = function onDocumentMouseUp() {\n this.isUserInteracting = false;\n };\n\n Three.prototype.onDocumentTouchStart = function onDocumentTouchStart(event) {\n if (event.touches.length === 1) {\n this.onPointerDownPointerX = event.touches[0].pageX;\n this.onPointerDownPointerY = event.touches[0].pageY;\n this.onPointerDownLon = this.lon;\n this.onPointerDownLat = this.lat;\n }\n\n if (event.touches.length === 2) {\n this.onPointerDownPointerX = event.touches[0].pageX;\n this.onPointerDownPointerY = event.touches[0].pageY;\n\n this.startDistance = this.endDistance = Math.hypot(event.touches[0].pageX - event.touches[1].pageX, event.touches[0].pageY - event.touches[1].pageY);\n }\n };\n\n Three.prototype.onDocumentTouchMove = function onDocumentTouchMove(event) {\n var _props3 = this.props,\n thumbbarHover = _props3.thumbbarHover,\n thumbbarOpen = _props3.thumbbarOpen;\n\n\n event.preventDefault();\n\n if (!thumbbarHover || !thumbbarOpen) {\n if (event.touches.length === 1) {\n this.lon = (this.onPointerDownPointerX - event.touches[0].pageX) * 0.1 + this.onPointerDownLon;\n\n this.lat = (event.touches[0].pageY - this.onPointerDownPointerY) * 0.1 + this.onPointerDownLat;\n }\n }\n };\n // CONTROLS <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n\n Three.prototype.update = function update() {\n var _props4 = this.props,\n thumbbarHover = _props4.thumbbarHover,\n thumbbarOpen = _props4.thumbbarOpen;\n\n if (!thumbbarHover || !thumbbarOpen || !this.isUserInteracting) {\n this.lat = Math.max(-85, Math.min(85, this.lat));\n this.phi = three_min[\"Math\"].degToRad(90 - this.lat);\n this.theta = three_min[\"Math\"].degToRad(this.lon);\n }\n this.target.x = 500 * Math.sin(this.phi) * Math.cos(this.theta);\n this.target.y = 500 * Math.cos(this.phi);\n this.target.z = 500 * Math.sin(this.phi) * Math.sin(this.theta);\n this.camera.lookAt(this.target);\n this.renderer.render(this.scene, this.camera);\n };\n\n Three.prototype.clickZoom = function clickZoom() {\n var fov = void 0;\n // change zoomSpeed for faster/slower zooming\n var zoomSpeed = this.zoomIn ? -1 : +1;\n if (this.camera.fov !== this.zoomTo && this.camera.fov >= this.fovMin && this.camera.fov <= this.fovMax) {\n fov = this.camera.fov + zoomSpeed * 0.5;\n this.camera.fov = three_min[\"Math\"].clamp(fov, this.fovMin, this.fovMax);\n this.camera.updateProjectionMatrix();\n } else {\n this.zoomTo = this.camera.fov;\n this.zoomAnimating = false;\n this.props.zoomStopped();\n }\n };\n\n Three.prototype.render = function render() {\n var _this2 = this;\n\n return Object(preact_min[\"h\"])('div', {\n className: three_default.a.interior,\n style: { width: '100%', height: '100%' },\n ref: function ref(mount) {\n _this2.mount = mount;\n }\n });\n };\n\n return Three;\n}(Component$1);\n\n\n// EXTERNAL MODULE: ./components/loadingbar/scss/loadingbar.scss\nvar loadingbar = __webpack_require__(\"awuE\");\nvar loadingbar_default = /*#__PURE__*/__webpack_require__.n(loadingbar);\n\n// CONCATENATED MODULE: ./components/loadingbar/loadingbar.js\n\n\n\nvar loadingbar_Loadingbar = function Loadingbar(_ref) {\n var percent = _ref.percent;\n\n return Object(preact_min[\"h\"])(\n 'div',\n { className: loadingbar_default.a.loadingbar },\n Object(preact_min[\"h\"])(\n 'div',\n { className: loadingbar_default.a.wrapper },\n Object(preact_min[\"h\"])('div', { className: loadingbar_default.a.bar, style: { width: percent + '%' } }),\n Object(preact_min[\"h\"])(\n 'div',\n { className: loadingbar_default.a.text },\n Object(preact_min[\"h\"])(\n 'span',\n null,\n Math.round(percent) + '%'\n )\n )\n )\n );\n};\n\n/* harmony default export */ var loadingbar_loadingbar = (loadingbar_Loadingbar);\n// EXTERNAL MODULE: ./components/gemView/gemZoomControls/scss/zoomcontrols.scss\nvar zoomcontrols = __webpack_require__(\"bGVC\");\nvar zoomcontrols_default = /*#__PURE__*/__webpack_require__.n(zoomcontrols);\n\n// EXTERNAL MODULE: ../node_modules/classnames/index.js\nvar classnames = __webpack_require__(\"9qb7\");\nvar classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);\n\n// CONCATENATED MODULE: ./components/gemView/gemZoomControls/zoomcontrols.js\n\n\n\n\nvar zoomcontrols_ZoomControls = function ZoomControls(_ref) {\n var zoomClicked = _ref.zoomClicked,\n zoomStatus = _ref.zoomStatus,\n top = _ref.top;\n\n return Object(preact_min[\"h\"])(\n 'div',\n { className: classnames_default()(zoomcontrols_default.a.buttonwrapper, top && zoomcontrols_default.a.top) },\n zoomStatus === true && Object(preact_min[\"h\"])(\n 'div',\n { className: classnames_default()(zoomcontrols_default.a.button, zoomcontrols_default.a.plus), onClick: function onClick() {\n return zoomClicked(1);\n } },\n Object(preact_min[\"h\"])('div', { className: zoomcontrols_default.a.icon })\n ),\n zoomStatus === false && Object(preact_min[\"h\"])(\n 'div',\n { className: classnames_default()(zoomcontrols_default.a.button, zoomcontrols_default.a.minus), onClick: function onClick() {\n return zoomClicked(-1);\n } },\n Object(preact_min[\"h\"])('div', { className: zoomcontrols_default.a.icon })\n )\n );\n};\n\n/* harmony default export */ var gemZoomControls_zoomcontrols = (zoomcontrols_ZoomControls);\n// EXTERNAL MODULE: ./config/config.json\nvar config = __webpack_require__(\"J/Fn\");\nvar config_default = /*#__PURE__*/__webpack_require__.n(config);\n\n// CONCATENATED MODULE: ./components/gemView/gemComponentsView/gemInteriorView/GemInteriorView.js\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n\n\nfunction GemInteriorView__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction GemInteriorView__possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction GemInteriorView__inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\n\n\n\n\nvar GemInteriorView_GemInteriorView = function (_Component) {\n GemInteriorView__inherits(GemInteriorView, _Component);\n\n function GemInteriorView(props) {\n GemInteriorView__classCallCheck(this, GemInteriorView);\n\n var _this = GemInteriorView__possibleConstructorReturn(this, _Component.call(this, props));\n\n _this.setUrlParams = function () {\n // all Carline and Request stuff are set to state\n var url = window.location.href.split('?')[0];\n // remove index.html if in url\n var noIndex = url.replace('index.html', '');\n // regex to find the correct parameters to build imagePath\n var path_regex = new RegExp(/([A-Z]{2})\\/([a-z]{2})\\/([A-Z]{2})\\/([A-Z|a-z]*)\\/([a-z|A-Z|_]{5,10})/);\n var params = url.split(path_regex);\n\n // console.log('PARAMS', params)\n var country = params[1];\n var lang = params[2];\n var carline = params[4];\n var bodystyle = params[5];\n var mobile = params[6];\n var imgPath = country + '/' + lang + '/' + params[3] + '/' + params[4] + '/' + bodystyle + mobile + '/';\n var absPath = true ? noIndex : window.location.origin + '/';\n\n var clearMobileParam = mobile.split(\"/\");\n\n _this.setState({\n imgPath: imgPath,\n carline: carline,\n country: country,\n lang: lang,\n absPath: absPath,\n mobile: clearMobileParam[1] === 'mobile' ? clearMobileParam[1] : ''\n });\n var marketConfig = config_default.a.array.find(function (market) {\n return market.market === country + '_' + lang;\n });\n marketConfig && marketConfig[carline] && _this.getConfig(marketConfig[carline]);\n if (_this.isInteriorOnly) {\n _this.setState({\n showtext: marketConfig.text.menushowtext,\n hidetext: marketConfig.text.menuhidetext\n });\n }\n };\n\n _this.getConfig = function (marketConfig) {\n // find defaultThumb Index\n var defaultThumbIndex = marketConfig.findIndex(function (thumb) {\n return thumb.default;\n });\n // set defaultThumb to state\n // get carline config from market\n _this.setState({\n interior: {\n config: marketConfig,\n index: defaultThumbIndex\n }\n });\n };\n\n _this.getVPwidth = function () {\n _this.setState({\n vw: Math.max(document.documentElement.clientWidth, window.innerWidth || 0),\n vh: Math.max(document.documentElement.clientHeight, window.innerHeight || 0)\n });\n };\n\n _this.loadHandling = function (amount) {\n var loading = _this.state.loading;\n\n _this.setState({\n loading: {\n imagesLoaded: loading.imagesLoaded + 1,\n percentLoaded: 100 / amount * (loading.imagesLoaded + 1),\n isLoaded: 100 / amount * (loading.imagesLoaded + 1) === 100\n }\n });\n };\n\n _this.resetLoad = function () {\n _this.setState({\n loading: {\n imagesLoaded: 0,\n isLoaded: false\n }\n });\n };\n\n _this.handleZoomClicked = function (factor) {\n _this.setState({ zooming: factor, zoom: !_this.state.zoom });\n };\n\n _this.handleZoomStopped = function () {\n _this.setState({ zooming: 0 });\n };\n\n _this.state = {\n loading: {\n imagesLoaded: 0,\n isLoaded: false,\n percentLoaded: 0\n },\n zooming: 0.5,\n zoom: true\n };\n _this.getVPwidth();\n\n _this.setUrlParams();\n return _this;\n }\n\n GemInteriorView.prototype.componentDidMount = function componentDidMount() {\n window.addEventListener('orientationchange', this.getVPwidth);\n window.addEventListener('resize', this.getVPwidth);\n };\n\n GemInteriorView.prototype.componentWillUnmount = function componentWillUnmount() {\n window.removeEventListener('orientationchange', this.getVPwidth);\n window.removeEventListener('resize', this.getVPwidth);\n };\n\n GemInteriorView.prototype.render = function render() {\n var _state = this.state,\n absPath = _state.absPath,\n imgPath = _state.imgPath,\n interior = _state.interior,\n lang = _state.lang,\n loading = _state.loading,\n vw = _state.vw;\n\n var size = document.body.offsetHeight;\n var input = void 0;\n if (this.isInteriorOnly) {\n input = Object(preact_min[\"h\"])(\n 'div',\n {\n id: 'interior'\n },\n Object(preact_min[\"h\"])('div', { 'class': gemComponentsView_default.a.threesixtyIcon }),\n !this.state.mobile && Object(preact_min[\"h\"])(gemZoomControls_zoomcontrols, {\n zoomClicked: this.handleZoomClicked,\n zoomFactor: this.state.zooming,\n zoomStatus: this.state.zoom\n }),\n Object(preact_min[\"h\"])(gemThree_Three, {\n stageWidth: vw,\n stageHeight: size,\n loadHandling: this.loadHandling,\n imgPath: imgPath,\n interior: interior,\n absPath: absPath,\n zoomStopped: this.handleZoomStopped,\n zoomFactor: this.state.zooming,\n isInteriorOnly: this.isInteriorOnly,\n carline: this.state.carline\n })\n );\n }\n\n return Object(preact_min[\"h\"])(\n 'div',\n { id: 'app' },\n loading.percentLoaded < 100 && Object(preact_min[\"h\"])(loadingbar_loadingbar, { percent: loading.percentLoaded }),\n input\n );\n };\n\n _createClass(GemInteriorView, [{\n key: 'isInteriorOnly',\n get: function get() {\n var carline = this.state.carline;\n\n return carline === 'onix';\n }\n }]);\n\n return GemInteriorView;\n}(preact_min[\"Component\"]);\n\n\n// CONCATENATED MODULE: ./components/gemView/gemComponentsView/GemComponentsView.js\n\n\n\n\n\nvar GemComponentsView_GemComponentsView = function GemComponentsView(_ref) {\n var className = _ref.className,\n vh = _ref.vh,\n vw = _ref.vw;\n\n\n var faktor = vw <= 678 ? 2.5 : 1.5;\n\n return Object(preact_min[\"h\"])(\n 'div',\n { className: classnames_default()(className, gemComponentsView_default.a.wrapper) },\n Object(preact_min[\"h\"])(GemInteriorView_GemInteriorView, {\n size: vh / faktor\n })\n );\n};\n\n/* harmony default export */ var gemComponentsView_GemComponentsView = (GemComponentsView_GemComponentsView);\n// EXTERNAL MODULE: ./components/gemView/scss/gemView.scss\nvar gemView = __webpack_require__(\"hJ0q\");\nvar gemView_default = /*#__PURE__*/__webpack_require__.n(gemView);\n\n// CONCATENATED MODULE: ./components/gemView/GemView.js\n\n\nfunction GemView__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction GemView__possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction GemView__inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\n\nvar GemView_GemView = function (_Component) {\n GemView__inherits(GemView, _Component);\n\n function GemView(props) {\n GemView__classCallCheck(this, GemView);\n\n var _this = GemView__possibleConstructorReturn(this, _Component.call(this, props));\n\n _this.getVPwidth = function () {\n _this.setState({\n vw: Math.max(document.documentElement.clientWidth, window.innerWidth || 0),\n vh: Math.max(document.documentElement.clientHeight, window.innerHeight || 0)\n });\n };\n\n _this.getVPwidth();\n\n window.addEventListener('resize', function () {\n _this.getVPwidth();\n });\n return _this;\n }\n\n GemView.prototype.render = function render() {\n var correctUrl = window.location.href.split('?')[0];\n var absPath = true ? correctUrl.replace('index.html', '') : window.location.origin + '/';\n\n var inlineStyle = void 0;\n console.log('DDD', correctUrl);\n\n if (this.state.vw >= 768) {\n inlineStyle = {\n height: this.state.vw / 2\n };\n } else {\n // For Mobile we have ratio of 4:3\n inlineStyle = {\n height: this.state.vw * 75 / 100\n };\n }\n return Object(preact_min[\"h\"])(\n 'div',\n { className: classnames_default()(gemView_default.a.wrapper), style: inlineStyle },\n Object(preact_min[\"h\"])(gemComponentsView_GemComponentsView, {\n className: gemView_default.a.componentsView,\n vh: this.state.vh,\n vw: this.state.vw\n })\n );\n };\n\n return GemView;\n}(preact_min[\"Component\"]);\n\n\n// CONCATENATED MODULE: ./components/app.js\n\n\n\nvar app__ref = Object(preact_min[\"h\"])(GemView_GemView, null);\n\nvar appComponent = function appComponent() {\n return app__ref;\n};\n\nvar App = appComponent;\n\n/* harmony default export */ var app = (App);\n// CONCATENATED MODULE: ./index.js\n\n\n\n/* harmony default export */ var index_0 = __webpack_exports__[\"default\"] = (app);\n\n/***/ }),\n\n/***/ \"KM04\":\n/***/ (function(module, exports, __webpack_require__) {\n\n!function () {\n \"use strict\";\n function e(e, t) {\n var n,\n o,\n r,\n i,\n l = M;for (i = arguments.length; i-- > 2;) {\n T.push(arguments[i]);\n }t && null != t.children && (T.length || T.push(t.children), delete t.children);while (T.length) {\n if ((o = T.pop()) && void 0 !== o.pop) for (i = o.length; i--;) {\n T.push(o[i]);\n } else \"boolean\" == typeof o && (o = null), (r = \"function\" != typeof e) && (null == o ? o = \"\" : \"number\" == typeof o ? o += \"\" : \"string\" != typeof o && (r = !1)), r && n ? l[l.length - 1] += o : l === M ? l = [o] : l.push(o), n = r;\n }var a = new S();return a.nodeName = e, a.children = l, a.attributes = null == t ? void 0 : t, a.key = null == t ? void 0 : t.key, void 0 !== L.vnode && L.vnode(a), a;\n }function t(e, t) {\n for (var n in t) {\n e[n] = t[n];\n }return e;\n }function n(n, o) {\n return e(n.nodeName, t(t({}, n.attributes), o), arguments.length > 2 ? [].slice.call(arguments, 2) : n.children);\n }function o(e) {\n !e.__d && (e.__d = !0) && 1 == D.push(e) && (L.debounceRendering || P)(r);\n }function r() {\n var e,\n t = D;D = [];while (e = t.pop()) {\n e.__d && C(e);\n }\n }function i(e, t, n) {\n return \"string\" == typeof t || \"number\" == typeof t ? void 0 !== e.splitText : \"string\" == typeof t.nodeName ? !e._componentConstructor && l(e, t.nodeName) : n || e._componentConstructor === t.nodeName;\n }function l(e, t) {\n return e.__n === t || e.nodeName.toLowerCase() === t.toLowerCase();\n }function a(e) {\n var n = t({}, e.attributes);n.children = e.children;var o = e.nodeName.defaultProps;if (void 0 !== o) for (var r in o) {\n void 0 === n[r] && (n[r] = o[r]);\n }return n;\n }function p(e, t) {\n var n = t ? document.createElementNS(\"http://www.w3.org/2000/svg\", e) : document.createElement(e);return n.__n = e, n;\n }function s(e) {\n var t = e.parentNode;t && t.removeChild(e);\n }function u(e, t, n, o, r) {\n if (\"className\" === t && (t = \"class\"), \"key\" === t) ;else if (\"ref\" === t) n && n(null), o && o(e);else if (\"class\" !== t || r) {\n if (\"style\" === t) {\n if (o && \"string\" != typeof o && \"string\" != typeof n || (e.style.cssText = o || \"\"), o && \"object\" == typeof o) {\n if (\"string\" != typeof n) for (var i in n) {\n i in o || (e.style[i] = \"\");\n }for (var i in o) {\n e.style[i] = \"number\" == typeof o[i] && !1 === W.test(i) ? o[i] + \"px\" : o[i];\n }\n }\n } else if (\"dangerouslySetInnerHTML\" === t) o && (e.innerHTML = o.__html || \"\");else if (\"o\" == t[0] && \"n\" == t[1]) {\n var l = t !== (t = t.replace(/Capture$/, \"\"));t = t.toLowerCase().substring(2), o ? n || e.addEventListener(t, c, l) : e.removeEventListener(t, c, l), (e.__l || (e.__l = {}))[t] = o;\n } else if (\"list\" !== t && \"type\" !== t && !r && t in e) {\n try {\n e[t] = null == o ? \"\" : o;\n } catch (e) {}null != o && !1 !== o || \"spellcheck\" == t || e.removeAttribute(t);\n } else {\n var a = r && t !== (t = t.replace(/^xlink:?/, \"\"));null == o || !1 === o ? a ? e.removeAttributeNS(\"http://www.w3.org/1999/xlink\", t.toLowerCase()) : e.removeAttribute(t) : \"function\" != typeof o && (a ? e.setAttributeNS(\"http://www.w3.org/1999/xlink\", t.toLowerCase(), o) : e.setAttribute(t, o));\n }\n } else e.className = o || \"\";\n }function c(e) {\n return this.__l[e.type](L.event && L.event(e) || e);\n }function _() {\n var e;while (e = E.pop()) {\n L.afterMount && L.afterMount(e), e.componentDidMount && e.componentDidMount();\n }\n }function d(e, t, n, o, r, i) {\n V++ || (A = null != r && void 0 !== r.ownerSVGElement, H = null != e && !(\"__preactattr_\" in e));var l = f(e, t, n, o, i);return r && l.parentNode !== r && r.appendChild(l), --V || (H = !1, i || _()), l;\n }function f(e, t, n, o, r) {\n var i = e,\n a = A;if (null != t && \"boolean\" != typeof t || (t = \"\"), \"string\" == typeof t || \"number\" == typeof t) return e && void 0 !== e.splitText && e.parentNode && (!e._component || r) ? e.nodeValue != t && (e.nodeValue = t) : (i = document.createTextNode(t), e && (e.parentNode && e.parentNode.replaceChild(i, e), m(e, !0))), i.__preactattr_ = !0, i;var s = t.nodeName;if (\"function\" == typeof s) return x(e, t, n, o);if (A = \"svg\" === s || \"foreignObject\" !== s && A, s += \"\", (!e || !l(e, s)) && (i = p(s, A), e)) {\n while (e.firstChild) {\n i.appendChild(e.firstChild);\n }e.parentNode && e.parentNode.replaceChild(i, e), m(e, !0);\n }var u = i.firstChild,\n c = i.__preactattr_,\n _ = t.children;if (null == c) {\n c = i.__preactattr_ = {};for (var d = i.attributes, f = d.length; f--;) {\n c[d[f].name] = d[f].value;\n }\n }return !H && _ && 1 === _.length && \"string\" == typeof _[0] && null != u && void 0 !== u.splitText && null == u.nextSibling ? u.nodeValue != _[0] && (u.nodeValue = _[0]) : (_ && _.length || null != u) && h(i, _, n, o, H || null != c.dangerouslySetInnerHTML), b(i, t.attributes, c), A = a, i;\n }function h(e, t, n, o, r) {\n var l,\n a,\n p,\n u,\n c,\n _ = e.childNodes,\n d = [],\n h = {},\n v = 0,\n b = 0,\n y = _.length,\n g = 0,\n w = t ? t.length : 0;if (0 !== y) for (var C = 0; C < y; C++) {\n var x = _[C],\n N = x.__preactattr_,\n k = w && N ? x._component ? x._component.__k : N.key : null;null != k ? (v++, h[k] = x) : (N || (void 0 !== x.splitText ? !r || x.nodeValue.trim() : r)) && (d[g++] = x);\n }if (0 !== w) for (var C = 0; C < w; C++) {\n u = t[C], c = null;var k = u.key;if (null != k) v && void 0 !== h[k] && (c = h[k], h[k] = void 0, v--);else if (b < g) for (l = b; l < g; l++) {\n if (void 0 !== d[l] && i(a = d[l], u, r)) {\n c = a, d[l] = void 0, l === g - 1 && g--, l === b && b++;break;\n }\n }c = f(c, u, n, o), p = _[C], c && c !== e && c !== p && (null == p ? e.appendChild(c) : c === p.nextSibling ? s(p) : e.insertBefore(c, p));\n }if (v) for (var C in h) {\n void 0 !== h[C] && m(h[C], !1);\n }while (b <= g) {\n void 0 !== (c = d[g--]) && m(c, !1);\n }\n }function m(e, t) {\n var n = e._component;n ? N(n) : (null != e.__preactattr_ && e.__preactattr_.ref && e.__preactattr_.ref(null), !1 !== t && null != e.__preactattr_ || s(e), v(e));\n }function v(e) {\n e = e.lastChild;while (e) {\n var t = e.previousSibling;m(e, !0), e = t;\n }\n }function b(e, t, n) {\n var o;for (o in n) {\n t && null != t[o] || null == n[o] || u(e, o, n[o], n[o] = void 0, A);\n }for (o in t) {\n \"children\" === o || \"innerHTML\" === o || o in n && t[o] === (\"value\" === o || \"checked\" === o ? e[o] : n[o]) || u(e, o, n[o], n[o] = t[o], A);\n }\n }function y(e, t, n) {\n var o,\n r = B.length;e.prototype && e.prototype.render ? (o = new e(t, n), k.call(o, t, n)) : (o = new k(t, n), o.constructor = e, o.render = g);while (r--) {\n if (B[r].constructor === e) return o.__b = B[r].__b, B.splice(r, 1), o;\n }return o;\n }function g(e, t, n) {\n return this.constructor(e, n);\n }function w(e, t, n, r, i) {\n e.__x || (e.__x = !0, e.__r = t.ref, e.__k = t.key, delete t.ref, delete t.key, void 0 === e.constructor.getDerivedStateFromProps && (!e.base || i ? e.componentWillMount && e.componentWillMount() : e.componentWillReceiveProps && e.componentWillReceiveProps(t, r)), r && r !== e.context && (e.__c || (e.__c = e.context), e.context = r), e.__p || (e.__p = e.props), e.props = t, e.__x = !1, 0 !== n && (1 !== n && !1 === L.syncComponentUpdates && e.base ? o(e) : C(e, 1, i)), e.__r && e.__r(e));\n }function C(e, n, o, r) {\n if (!e.__x) {\n var i,\n l,\n p,\n s = e.props,\n u = e.state,\n c = e.context,\n f = e.__p || s,\n h = e.__s || u,\n v = e.__c || c,\n b = e.base,\n g = e.__b,\n x = b || g,\n k = e._component,\n U = !1,\n S = v;if (e.constructor.getDerivedStateFromProps && (u = t(t({}, u), e.constructor.getDerivedStateFromProps(s, u)), e.state = u), b && (e.props = f, e.state = h, e.context = v, 2 !== n && e.shouldComponentUpdate && !1 === e.shouldComponentUpdate(s, u, c) ? U = !0 : e.componentWillUpdate && e.componentWillUpdate(s, u, c), e.props = s, e.state = u, e.context = c), e.__p = e.__s = e.__c = e.__b = null, e.__d = !1, !U) {\n i = e.render(s, u, c), e.getChildContext && (c = t(t({}, c), e.getChildContext())), b && e.getSnapshotBeforeUpdate && (S = e.getSnapshotBeforeUpdate(f, h));var T,\n M,\n P = i && i.nodeName;if (\"function\" == typeof P) {\n var W = a(i);l = k, l && l.constructor === P && W.key == l.__k ? w(l, W, 1, c, !1) : (T = l, e._component = l = y(P, W, c), l.__b = l.__b || g, l.__u = e, w(l, W, 0, c, !1), C(l, 1, o, !0)), M = l.base;\n } else p = x, T = k, T && (p = e._component = null), (x || 1 === n) && (p && (p._component = null), M = d(p, i, c, o || !b, x && x.parentNode, !0));if (x && M !== x && l !== k) {\n var D = x.parentNode;D && M !== D && (D.replaceChild(M, x), T || (x._component = null, m(x, !1)));\n }if (T && N(T), e.base = M, M && !r) {\n var A = e,\n H = e;while (H = H.__u) {\n (A = H).base = M;\n }M._component = A, M._componentConstructor = A.constructor;\n }\n }!b || o ? E.unshift(e) : U || (e.componentDidUpdate && e.componentDidUpdate(f, h, S), L.afterUpdate && L.afterUpdate(e));while (e.__h.length) {\n e.__h.pop().call(e);\n }V || r || _();\n }\n }function x(e, t, n, o) {\n var r = e && e._component,\n i = r,\n l = e,\n p = r && e._componentConstructor === t.nodeName,\n s = p,\n u = a(t);while (r && !s && (r = r.__u)) {\n s = r.constructor === t.nodeName;\n }return r && s && (!o || r._component) ? (w(r, u, 3, n, o), e = r.base) : (i && !p && (N(i), e = l = null), r = y(t.nodeName, u, n), e && !r.__b && (r.__b = e, l = null), w(r, u, 1, n, o), e = r.base, l && e !== l && (l._component = null, m(l, !1))), e;\n }function N(e) {\n L.beforeUnmount && L.beforeUnmount(e);var t = e.base;e.__x = !0, e.componentWillUnmount && e.componentWillUnmount(), e.base = null;var n = e._component;n ? N(n) : t && (t.__preactattr_ && t.__preactattr_.ref && t.__preactattr_.ref(null), e.__b = t, s(t), B.push(e), v(t)), e.__r && e.__r(null);\n }function k(e, t) {\n this.__d = !0, this.context = t, this.props = e, this.state = this.state || {}, this.__h = [];\n }function U(e, t, n) {\n return d(n, e, {}, !1, t, !1);\n }var S = function S() {},\n L = {},\n T = [],\n M = [],\n P = \"function\" == typeof Promise ? Promise.resolve().then.bind(Promise.resolve()) : setTimeout,\n W = /acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i,\n D = [],\n E = [],\n V = 0,\n A = !1,\n H = !1,\n B = [];t(k.prototype, { setState: function setState(e, n) {\n this.__s || (this.__s = this.state), this.state = t(t({}, this.state), \"function\" == typeof e ? e(this.state, this.props) : e), n && this.__h.push(n), o(this);\n }, forceUpdate: function forceUpdate(e) {\n e && this.__h.push(e), C(this, 2);\n }, render: function render() {} });var F = { h: e, createElement: e, cloneElement: n, Component: k, render: U, rerender: r, options: L }; true ? module.exports = F : self.preact = F;\n}();\n//# sourceMappingURL=preact.min.js.map\n\n/***/ }),\n\n/***/ \"N1wY\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ \"PJ3B\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\nmodule.exports = {\"wrapper\":\"wrapper__18SB1\",\"threesixtyIcon\":\"threesixtyIcon__13LGb\"};\n\n/***/ }),\n\n/***/ \"awuE\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\nmodule.exports = {\"loadingbar\":\"loadingbar__1i_Ce\",\"wrapper\":\"wrapper__YKePq\",\"text\":\"text__2eDrT\",\"bar\":\"bar__2vdW3\"};\n\n/***/ }),\n\n/***/ \"bGVC\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\nmodule.exports = {\"buttonwrapper\":\"buttonwrapper__L5ql7\",\"top\":\"top__2g32u\",\"button\":\"button__2tfzN\",\"icon\":\"icon__1KPqp\",\"plus\":\"plus___8rXC\",\"minus\":\"minus__SYQu1\"};\n\n/***/ }),\n\n/***/ \"hJ0q\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\nmodule.exports = {\"wrapper\":\"wrapper__2_82o\",\"intIcon\":\"intIcon__3eCrq\"};\n\n/***/ }),\n\n/***/ \"hZyK\":\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\nmodule.exports = {\"interior\":\"interior__201gV\",\"buttonwrapper\":\"buttonwrapper__3Okg2\",\"button\":\"button__1ctdy\",\"icon\":\"icon__1EL3y\"};\n\n/***/ }),\n\n/***/ \"pwNi\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _preact = __webpack_require__(\"KM04\");\n\nif (false) {\n\trequire('preact/devtools');\n} else if (false) {\n\tnavigator.serviceWorker.register(__webpack_public_path__ + 'sw.js');\n}\n\nvar interopDefault = function interopDefault(m) {\n\treturn m && m.default ? m.default : m;\n};\n\nvar app = interopDefault(__webpack_require__(\"JkW7\"));\n\nif (typeof app === 'function') {\n\tvar root = document.body.firstElementChild;\n\n\tvar init = function init() {\n\t\tvar app = interopDefault(__webpack_require__(\"JkW7\"));\n\t\troot = (0, _preact.render)((0, _preact.h)(app), document.body, root);\n\t};\n\n\tif (false) module.hot.accept('preact-cli-entrypoint', init);\n\n\tinit();\n}\n\n/***/ }),\n\n/***/ \"wVGV\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar ReactPropTypesSecret = __webpack_require__(\"Asjh\");\n\nfunction emptyFunction() {}\n\nmodule.exports = function () {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n/***/ })\n\n/******/ });\n\n\n// WEBPACK FOOTER //\n// bundle.e879e.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"./\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"pwNi\");\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 520a9ca80f6c50b4f679","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n// WEBPACK FOOTER //\n// ../node_modules/prop-types/index.js","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n// WEBPACK FOOTER //\n// ../node_modules/classnames/index.js","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n// WEBPACK FOOTER //\n// ../node_modules/prop-types/lib/ReactPropTypesSecret.js","// threejs.org/license\n!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?e(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],e):e(t.THREE=t.THREE||{})}(this,function(t){\"use strict\";function e(t,e,i,n){this._x=t||0,this._y=e||0,this._z=i||0,this._w=void 0!==n?n:1}function i(t,e,i){this.x=t||0,this.y=e||0,this.z=i||0}function n(){this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],arguments.length>0&&console.error(\"THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.\")}function r(){}function a(t,e){this.x=t||0,this.y=e||0}function o(t,e,i,n,r,s,l,c,h,u){Object.defineProperty(this,\"id\",{value:gn++}),this.uuid=mn.generateUUID(),this.name=\"\",this.image=void 0!==t?t:o.DEFAULT_IMAGE,this.mipmaps=[],this.mapping=void 0!==e?e:o.DEFAULT_MAPPING,this.wrapS=void 0!==i?i:yi,this.wrapT=void 0!==n?n:yi,this.magFilter=void 0!==r?r:Ti,this.minFilter=void 0!==s?s:Li,this.anisotropy=void 0!==h?h:1,this.format=void 0!==l?l:Hi,this.type=void 0!==c?c:Ai,this.offset=new a(0,0),this.repeat=new a(1,1),this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.encoding=void 0!==u?u:on,this.version=0,this.onUpdate=null}function s(t,e,i,n,r,a,s,l,c,h,u,d){o.call(this,null,a,s,l,c,h,n,r,u,d),this.image={data:t,width:e,height:i},this.magFilter=void 0!==c?c:Ei,this.minFilter=void 0!==h?h:Ei,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}function l(t,e,i,n,r,a,s,l,c,h){t=void 0!==t?t:[],e=void 0!==e?e:di,o.call(this,t,e,i,n,r,a,s,l,c,h),this.flipY=!1}function c(){this.seq=[],this.map={}}function h(t,e,i){var n=t[0];if(n<=0||n>0)return t;var r=e*i,a=xn[r];if(void 0===a&&(a=new Float32Array(r),xn[r]=a),0!==e){n.toArray(a,0);for(var o=1,s=0;o!==e;++o)s+=i,t[o].toArray(a,s)}return a}function u(t,e){var i=yn[e];void 0===i&&(i=new Int32Array(e),yn[e]=i);for(var n=0;n!==e;++n)i[n]=t.allocTextureUnit();return i}function d(t,e){t.uniform1f(this.addr,e)}function f(t,e){t.uniform1i(this.addr,e)}function p(t,e){void 0===e.x?t.uniform2fv(this.addr,e):t.uniform2f(this.addr,e.x,e.y)}function m(t,e){void 0!==e.x?t.uniform3f(this.addr,e.x,e.y,e.z):void 0!==e.r?t.uniform3f(this.addr,e.r,e.g,e.b):t.uniform3fv(this.addr,e)}function g(t,e){void 0===e.x?t.uniform4fv(this.addr,e):t.uniform4f(this.addr,e.x,e.y,e.z,e.w)}function v(t,e){t.uniformMatrix2fv(this.addr,!1,e.elements||e)}function _(t,e){void 0===e.elements?t.uniformMatrix3fv(this.addr,!1,e):(En.set(e.elements),t.uniformMatrix3fv(this.addr,!1,En))}function x(t,e){void 0===e.elements?t.uniformMatrix4fv(this.addr,!1,e):(Mn.set(e.elements),t.uniformMatrix4fv(this.addr,!1,Mn))}function y(t,e,i){var n=i.allocTextureUnit();t.uniform1i(this.addr,n),i.setTexture2D(e||vn,n)}function M(t,e,i){var n=i.allocTextureUnit();t.uniform1i(this.addr,n),i.setTextureCube(e||_n,n)}function E(t,e){t.uniform2iv(this.addr,e)}function b(t,e){t.uniform3iv(this.addr,e)}function w(t,e){t.uniform4iv(this.addr,e)}function T(t){switch(t){case 5126:return d;case 35664:return p;case 35665:return m;case 35666:return g;case 35674:return v;case 35675:return _;case 35676:return x;case 35678:return y;case 35680:return M;case 5124:case 35670:return f;case 35667:case 35671:return E;case 35668:case 35672:return b;case 35669:case 35673:return w}}function S(t,e){t.uniform1fv(this.addr,e)}function L(t,e){t.uniform1iv(this.addr,e)}function A(t,e){t.uniform2fv(this.addr,h(e,this.size,2))}function R(t,e){t.uniform3fv(this.addr,h(e,this.size,3))}function P(t,e){t.uniform4fv(this.addr,h(e,this.size,4))}function C(t,e){t.uniformMatrix2fv(this.addr,!1,h(e,this.size,4))}function U(t,e){t.uniformMatrix3fv(this.addr,!1,h(e,this.size,9))}function N(t,e){t.uniformMatrix4fv(this.addr,!1,h(e,this.size,16))}function D(t,e,i){var n=e.length,r=u(i,n);t.uniform1iv(this.addr,r);for(var a=0;a!==n;++a)i.setTexture2D(e[a]||vn,r[a])}function I(t,e,i){var n=e.length,r=u(i,n);t.uniform1iv(this.addr,r);for(var a=0;a!==n;++a)i.setTextureCube(e[a]||_n,r[a])}function F(t){switch(t){case 5126:return S;case 35664:return A;case 35665:return R;case 35666:return P;case 35674:return C;case 35675:return U;case 35676:return N;case 35678:return D;case 35680:return I;case 5124:case 35670:return L;case 35667:case 35671:return E;case 35668:case 35672:return b;case 35669:case 35673:return w}}function z(t,e,i){this.id=t,this.addr=i,this.setValue=T(e.type)}function O(t,e,i){this.id=t,this.addr=i,this.size=e.size,this.setValue=F(e.type)}function B(t){this.id=t,c.call(this)}function G(t,e){t.seq.push(e),t.map[e.id]=e}function V(t,e,i){var n=t.name,r=n.length;for(bn.lastIndex=0;;){var a=bn.exec(n),o=bn.lastIndex,s=a[1],l=\"]\"===a[2],c=a[3];if(l&&(s|=0),void 0===c||\"[\"===c&&o+2===r){G(i,void 0===c?new z(s,t,e):new O(s,t,e));break}var h=i.map,u=h[s];void 0===u&&(u=new B(s),G(i,u)),i=u}}function H(t,e,i){c.call(this),this.renderer=i;for(var n=t.getProgramParameter(e,t.ACTIVE_UNIFORMS),r=0;r.001&&C.scale>.001&&(b.x=C.x,b.y=C.y,b.z=C.z,M=C.size*C.scale/g.w,E.x=M*_,E.y=M,p.uniform3f(u.screenPosition,b.x,b.y,b.z),p.uniform2f(u.scale,E.x,E.y),p.uniform1f(u.rotation,C.rotation),p.uniform1f(u.opacity,C.opacity),p.uniform3f(u.color,C.color.r,C.color.g,C.color.b),m.setBlending(C.blending,C.blendEquation,C.blendSrc,C.blendDst),t.setTexture2D(C.texture,1),p.drawElements(p.TRIANGLES,6,p.UNSIGNED_SHORT,0))}}}m.enable(p.CULL_FACE),m.enable(p.DEPTH_TEST),m.buffers.depth.setMask(!0),t.resetGLState()}}}function Y(t,n){function r(){var t=new Float32Array([-.5,-.5,0,0,.5,-.5,1,0,.5,.5,1,1,-.5,.5,0,1]),e=new Uint16Array([0,1,2,0,2,3]);l=p.createBuffer(),c=p.createBuffer(),p.bindBuffer(p.ARRAY_BUFFER,l),p.bufferData(p.ARRAY_BUFFER,t,p.STATIC_DRAW),p.bindBuffer(p.ELEMENT_ARRAY_BUFFER,c),p.bufferData(p.ELEMENT_ARRAY_BUFFER,e,p.STATIC_DRAW),h=a(),u={position:p.getAttribLocation(h,\"position\"),uv:p.getAttribLocation(h,\"uv\")},d={uvOffset:p.getUniformLocation(h,\"uvOffset\"),uvScale:p.getUniformLocation(h,\"uvScale\"),rotation:p.getUniformLocation(h,\"rotation\"),scale:p.getUniformLocation(h,\"scale\"),color:p.getUniformLocation(h,\"color\"),map:p.getUniformLocation(h,\"map\"),opacity:p.getUniformLocation(h,\"opacity\"),modelViewMatrix:p.getUniformLocation(h,\"modelViewMatrix\"),projectionMatrix:p.getUniformLocation(h,\"projectionMatrix\"),fogType:p.getUniformLocation(h,\"fogType\"),fogDensity:p.getUniformLocation(h,\"fogDensity\"),fogNear:p.getUniformLocation(h,\"fogNear\"),fogFar:p.getUniformLocation(h,\"fogFar\"),fogColor:p.getUniformLocation(h,\"fogColor\"),alphaTest:p.getUniformLocation(h,\"alphaTest\")};var i=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"canvas\");i.width=8,i.height=8;var n=i.getContext(\"2d\");n.fillStyle=\"white\",n.fillRect(0,0,8,8),f=new o(i),f.needsUpdate=!0}function a(){var e=p.createProgram(),i=p.createShader(p.VERTEX_SHADER),n=p.createShader(p.FRAGMENT_SHADER);return p.shaderSource(i,[\"precision \"+t.getPrecision()+\" float;\",\"uniform mat4 modelViewMatrix;\",\"uniform mat4 projectionMatrix;\",\"uniform float rotation;\",\"uniform vec2 scale;\",\"uniform vec2 uvOffset;\",\"uniform vec2 uvScale;\",\"attribute vec2 position;\",\"attribute vec2 uv;\",\"varying vec2 vUV;\",\"void main() {\",\"vUV = uvOffset + uv * uvScale;\",\"vec2 alignedPosition = position * scale;\",\"vec2 rotatedPosition;\",\"rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\",\"rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\",\"vec4 finalPosition;\",\"finalPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\",\"finalPosition.xy += rotatedPosition;\",\"finalPosition = projectionMatrix * finalPosition;\",\"gl_Position = finalPosition;\",\"}\"].join(\"\\n\")),p.shaderSource(n,[\"precision \"+t.getPrecision()+\" float;\",\"uniform vec3 color;\",\"uniform sampler2D map;\",\"uniform float opacity;\",\"uniform int fogType;\",\"uniform vec3 fogColor;\",\"uniform float fogDensity;\",\"uniform float fogNear;\",\"uniform float fogFar;\",\"uniform float alphaTest;\",\"varying vec2 vUV;\",\"void main() {\",\"vec4 texture = texture2D( map, vUV );\",\"if ( texture.a < alphaTest ) discard;\",\"gl_FragColor = vec4( color * texture.xyz, texture.a * opacity );\",\"if ( fogType > 0 ) {\",\"float depth = gl_FragCoord.z / gl_FragCoord.w;\",\"float fogFactor = 0.0;\",\"if ( fogType == 1 ) {\",\"fogFactor = smoothstep( fogNear, fogFar, depth );\",\"} else {\",\"const float LOG2 = 1.442695;\",\"fogFactor = exp2( - fogDensity * fogDensity * depth * depth * LOG2 );\",\"fogFactor = 1.0 - clamp( fogFactor, 0.0, 1.0 );\",\"}\",\"gl_FragColor = mix( gl_FragColor, vec4( fogColor, gl_FragColor.w ), fogFactor );\",\"}\",\"}\"].join(\"\\n\")),p.compileShader(i),p.compileShader(n),p.attachShader(e,i),p.attachShader(e,n),p.linkProgram(e),e}function s(t,e){return t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.z!==e.z?e.z-t.z:e.id-t.id}var l,c,h,u,d,f,p=t.context,m=t.state,g=new i,v=new e,_=new i;this.render=function(e,i){if(0!==n.length){void 0===h&&r(),p.useProgram(h),m.initAttributes(),m.enableAttribute(u.position),m.enableAttribute(u.uv),m.disableUnusedAttributes(),m.disable(p.CULL_FACE),m.enable(p.BLEND),p.bindBuffer(p.ARRAY_BUFFER,l),p.vertexAttribPointer(u.position,2,p.FLOAT,!1,16,0),p.vertexAttribPointer(u.uv,2,p.FLOAT,!1,16,8),p.bindBuffer(p.ELEMENT_ARRAY_BUFFER,c),p.uniformMatrix4fv(d.projectionMatrix,!1,i.projectionMatrix.elements),m.activeTexture(p.TEXTURE0),p.uniform1i(d.map,0);var a=0,o=0,x=e.fog;x?(p.uniform3f(d.fogColor,x.color.r,x.color.g,x.color.b),x.isFog?(p.uniform1f(d.fogNear,x.near),p.uniform1f(d.fogFar,x.far),p.uniform1i(d.fogType,1),a=1,o=1):x.isFogExp2&&(p.uniform1f(d.fogDensity,x.density),p.uniform1i(d.fogType,2),a=2,o=2)):(p.uniform1i(d.fogType,0),a=0,o=0);for(var y=0,M=n.length;y0&&console.error(\"THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.\")}function et(t,e){this.normal=void 0!==t?t:new i(1,0,0),this.constant=void 0!==e?e:0}function it(t,e,i,n,r,a){this.planes=[void 0!==t?t:new et,void 0!==e?e:new et,void 0!==i?i:new et,void 0!==n?n:new et,void 0!==r?r:new et,void 0!==a?a:new et]}function nt(t,e,r,o){function s(e,i,n,r){var a=e.geometry,o=null,s=M,l=e.customDepthMaterial;if(n&&(s=E,l=e.customDistanceMaterial),l)o=l;else{var c=!1;i.morphTargets&&(a&&a.isBufferGeometry?c=a.morphAttributes&&a.morphAttributes.position&&a.morphAttributes.position.length>0:a&&a.isGeometry&&(c=a.morphTargets&&a.morphTargets.length>0)),e.isSkinnedMesh&&!1===i.skinning&&console.warn(\"THREE.WebGLShadowMap: THREE.SkinnedMesh with material.skinning set to false:\",e);var h=e.isSkinnedMesh&&i.skinning,u=0;c&&(u|=_),h&&(u|=x),o=s[u]}if(t.localClippingEnabled&&!0===i.clipShadows&&0!==i.clippingPlanes.length){var d=o.uuid,f=i.uuid,p=b[d];void 0===p&&(p={},b[d]=p);var m=p[f];void 0===m&&(m=o.clone(),p[f]=m),o=m}o.visible=i.visible,o.wireframe=i.wireframe;var g=i.side;return I.renderSingleSided&&g==we&&(g=Ee),I.renderReverseSided&&(g===Ee?g=be:g===be&&(g=Ee)),o.side=g,o.clipShadows=i.clipShadows,o.clippingPlanes=i.clippingPlanes,o.wireframeLinewidth=i.wireframeLinewidth,o.linewidth=i.linewidth,n&&void 0!==o.uniforms.lightPos&&o.uniforms.lightPos.value.copy(r),o}function l(e,i,n,a){if(!1!==e.visible){if(e.layers.test(i.layers)&&(e.isMesh||e.isLine||e.isPoints)&&e.castShadow&&(!e.frustumCulled||u.intersectsObject(e))){e.modelViewMatrix.multiplyMatrices(n.matrixWorldInverse,e.matrixWorld);var o=r.update(e),c=e.material;if(Array.isArray(c))for(var h=o.groups,d=0,f=h.length;de&&(e=t[i]);return e}function _t(){return Cn++}function xt(){Object.defineProperty(this,\"id\",{value:_t()}),this.uuid=mn.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.boundingBox=null,this.boundingSphere=null,this.elementsNeedUpdate=!1,this.verticesNeedUpdate=!1,this.uvsNeedUpdate=!1,this.normalsNeedUpdate=!1,this.colorsNeedUpdate=!1,this.lineDistancesNeedUpdate=!1,this.groupsNeedUpdate=!1}function yt(){Object.defineProperty(this,\"id\",{value:_t()}),this.uuid=mn.generateUUID(),this.name=\"\",this.type=\"BufferGeometry\",this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null,this.drawRange={start:0,count:1/0}}function Mt(t,e){st.call(this),this.type=\"Mesh\",this.geometry=void 0!==t?t:new yt,this.material=void 0!==e?e:new ut({color:16777215*Math.random()}),this.drawMode=nn,this.updateMorphTargets()}function Et(t,e,i,n,r,a){xt.call(this),this.type=\"BoxGeometry\",this.parameters={width:t,height:e,depth:i,widthSegments:n,heightSegments:r,depthSegments:a},this.fromBufferGeometry(new bt(t,e,i,n,r,a)),this.mergeVertices()}function bt(t,e,n,r,a,o){function s(t,e,n,r,a,o,s,m,g,v,_){var x,y,M=o/g,E=s/v,b=o/2,w=s/2,T=m/2,S=g+1,L=v+1,A=0,R=0,P=new i;for(y=0;y0?1:-1,u.push(P.x,P.y,P.z),d.push(x/g),d.push(1-y/v),A+=1}}for(y=0;y65535?pt:ft)(r,1),e.update(n,t.ELEMENT_ARRAY_BUFFER),l[i.id]=n,n}var s={},l={};return{get:r,update:a,getWireframeAttribute:o}}function Ft(){var t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];var n;switch(e.type){case\"DirectionalLight\":n={direction:new i,color:new W,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new a};break;case\"SpotLight\":n={position:new i,direction:new i,color:new W,distance:0,coneCos:0,penumbraCos:0,decay:0,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new a};break;case\"PointLight\":n={position:new i,color:new W,distance:0,decay:0,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new a};break;case\"HemisphereLight\":n={direction:new i,skyColor:new W,groundColor:new W};break;case\"RectAreaLight\":n={color:new W,position:new i,halfWidth:new i,halfHeight:new i}}return t[e.id]=n,n}}}function zt(t,e,i){function n(t){var n=i.frame,r=t.geometry,o=e.get(t,r);return a[o.id]!==n&&(r.isGeometry&&o.updateFromObject(t),e.update(o),a[o.id]=n),o}function r(){a={}}var a={};return{update:n,clear:r}}function Ot(t){for(var e=t.split(\"\\n\"),i=0;i\");return Zt(i)}var i=/^[ \\t]*#include +<([\\w\\d.]+)>/gm;return t.replace(i,e)}function Jt(t){function e(t,e,i,n){for(var r=\"\",a=parseInt(e);a0?t.gammaFactor:1,g=Wt(a,n,t.extensions),v=Xt(o),_=r.createProgram();i.isRawShaderMaterial?(f=[v,\"\\n\"].filter(Yt).join(\"\\n\"),p=[g,v,\"\\n\"].filter(Yt).join(\"\\n\")):(f=[\"precision \"+n.precision+\" float;\",\"precision \"+n.precision+\" int;\",\"#define SHADER_NAME \"+i.__webglShader.name,v,n.supportsVertexTextures?\"#define VERTEX_TEXTURES\":\"\",\"#define GAMMA_FACTOR \"+m,\"#define MAX_BONES \"+n.maxBones,n.useFog&&n.fog?\"#define USE_FOG\":\"\",n.useFog&&n.fogExp?\"#define FOG_EXP2\":\"\",n.map?\"#define USE_MAP\":\"\",n.envMap?\"#define USE_ENVMAP\":\"\",n.envMap?\"#define \"+u:\"\",n.lightMap?\"#define USE_LIGHTMAP\":\"\",n.aoMap?\"#define USE_AOMAP\":\"\",n.emissiveMap?\"#define USE_EMISSIVEMAP\":\"\",n.bumpMap?\"#define USE_BUMPMAP\":\"\",n.normalMap?\"#define USE_NORMALMAP\":\"\",n.displacementMap&&n.supportsVertexTextures?\"#define USE_DISPLACEMENTMAP\":\"\",n.specularMap?\"#define USE_SPECULARMAP\":\"\",n.roughnessMap?\"#define USE_ROUGHNESSMAP\":\"\",n.metalnessMap?\"#define USE_METALNESSMAP\":\"\",n.alphaMap?\"#define USE_ALPHAMAP\":\"\",n.vertexColors?\"#define USE_COLOR\":\"\",n.flatShading?\"#define FLAT_SHADED\":\"\",n.skinning?\"#define USE_SKINNING\":\"\",n.useVertexTexture?\"#define BONE_TEXTURE\":\"\",n.morphTargets?\"#define USE_MORPHTARGETS\":\"\",n.morphNormals&&!1===n.flatShading?\"#define USE_MORPHNORMALS\":\"\",n.doubleSided?\"#define DOUBLE_SIDED\":\"\",n.flipSided?\"#define FLIP_SIDED\":\"\",\"#define NUM_CLIPPING_PLANES \"+n.numClippingPlanes,n.shadowMapEnabled?\"#define USE_SHADOWMAP\":\"\",n.shadowMapEnabled?\"#define \"+c:\"\",n.sizeAttenuation?\"#define USE_SIZEATTENUATION\":\"\",n.logarithmicDepthBuffer?\"#define USE_LOGDEPTHBUF\":\"\",n.logarithmicDepthBuffer&&t.extensions.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(Yt).join(\"\\n\"),p=[g,\"precision \"+n.precision+\" float;\",\"precision \"+n.precision+\" int;\",\"#define SHADER_NAME \"+i.__webglShader.name,v,n.alphaTest?\"#define ALPHATEST \"+n.alphaTest:\"\",\"#define GAMMA_FACTOR \"+m,n.useFog&&n.fog?\"#define USE_FOG\":\"\",n.useFog&&n.fogExp?\"#define FOG_EXP2\":\"\",n.map?\"#define USE_MAP\":\"\",n.envMap?\"#define USE_ENVMAP\":\"\",n.envMap?\"#define \"+h:\"\",n.envMap?\"#define \"+u:\"\",n.envMap?\"#define \"+d:\"\",n.lightMap?\"#define USE_LIGHTMAP\":\"\",n.aoMap?\"#define USE_AOMAP\":\"\",n.emissiveMap?\"#define USE_EMISSIVEMAP\":\"\",n.bumpMap?\"#define USE_BUMPMAP\":\"\",n.normalMap?\"#define USE_NORMALMAP\":\"\",n.specularMap?\"#define USE_SPECULARMAP\":\"\",n.roughnessMap?\"#define USE_ROUGHNESSMAP\":\"\",n.metalnessMap?\"#define USE_METALNESSMAP\":\"\",n.alphaMap?\"#define USE_ALPHAMAP\":\"\",n.vertexColors?\"#define USE_COLOR\":\"\",n.gradientMap?\"#define USE_GRADIENTMAP\":\"\",n.flatShading?\"#define FLAT_SHADED\":\"\",n.doubleSided?\"#define DOUBLE_SIDED\":\"\",n.flipSided?\"#define FLIP_SIDED\":\"\",\"#define NUM_CLIPPING_PLANES \"+n.numClippingPlanes,\"#define UNION_CLIPPING_PLANES \"+(n.numClippingPlanes-n.numClipIntersection),n.shadowMapEnabled?\"#define USE_SHADOWMAP\":\"\",n.shadowMapEnabled?\"#define \"+c:\"\",n.premultipliedAlpha?\"#define PREMULTIPLIED_ALPHA\":\"\",n.physicallyCorrectLights?\"#define PHYSICALLY_CORRECT_LIGHTS\":\"\",n.logarithmicDepthBuffer?\"#define USE_LOGDEPTHBUF\":\"\",n.logarithmicDepthBuffer&&t.extensions.get(\"EXT_frag_depth\")?\"#define USE_LOGDEPTHBUF_EXT\":\"\",n.envMap&&t.extensions.get(\"EXT_shader_texture_lod\")?\"#define TEXTURE_LOD_EXT\":\"\",\"uniform mat4 viewMatrix;\",\"uniform vec3 cameraPosition;\",n.toneMapping!==si?\"#define TONE_MAPPING\":\"\",n.toneMapping!==si?Ln.tonemapping_pars_fragment:\"\",n.toneMapping!==si?kt(\"toneMapping\",n.toneMapping):\"\",n.dithering?\"#define DITHERING\":\"\",n.outputEncoding||n.mapEncoding||n.envMapEncoding||n.emissiveMapEncoding?Ln.encodings_pars_fragment:\"\",n.mapEncoding?Vt(\"mapTexelToLinear\",n.mapEncoding):\"\",n.envMapEncoding?Vt(\"envMapTexelToLinear\",n.envMapEncoding):\"\",n.emissiveMapEncoding?Vt(\"emissiveMapTexelToLinear\",n.emissiveMapEncoding):\"\",n.outputEncoding?Ht(\"linearToOutputTexel\",n.outputEncoding):\"\",n.depthPacking?\"#define DEPTH_PACKING \"+i.depthPacking:\"\",\"\\n\"].filter(Yt).join(\"\\n\")),s=Zt(s,n),s=qt(s,n),l=Zt(l,n),l=qt(l,n),i.isShaderMaterial||(s=Jt(s),l=Jt(l));var x=f+s,y=p+l,M=Bt(r,r.VERTEX_SHADER,x),E=Bt(r,r.FRAGMENT_SHADER,y);r.attachShader(_,M),r.attachShader(_,E),void 0!==i.index0AttributeName?r.bindAttribLocation(_,0,i.index0AttributeName):!0===n.morphTargets&&r.bindAttribLocation(_,0,\"position\"),r.linkProgram(_);var b=r.getProgramInfoLog(_),w=r.getShaderInfoLog(M),T=r.getShaderInfoLog(E),S=!0,L=!0;!1===r.getProgramParameter(_,r.LINK_STATUS)?(S=!1,console.error(\"THREE.WebGLProgram: shader error: \",r.getError(),\"gl.VALIDATE_STATUS\",r.getProgramParameter(_,r.VALIDATE_STATUS),\"gl.getProgramInfoLog\",b,w,T)):\"\"!==b?console.warn(\"THREE.WebGLProgram: gl.getProgramInfoLog()\",b):\"\"!==w&&\"\"!==T||(L=!1),L&&(this.diagnostics={runnable:S,material:i,programLog:b,vertexShader:{log:w,prefix:f},fragmentShader:{log:T,prefix:p}}),r.deleteShader(M),r.deleteShader(E);var A;this.getUniforms=function(){return void 0===A&&(A=new H(r,_,t)),A};var R;return this.getAttributes=function(){return void 0===R&&(R=jt(r,_)),R},this.destroy=function(){r.deleteProgram(_),this.program=void 0},Object.defineProperties(this,{uniforms:{get:function(){return console.warn(\"THREE.WebGLProgram: .uniforms is now .getUniforms().\"),this.getUniforms()}},attributes:{get:function(){return console.warn(\"THREE.WebGLProgram: .attributes is now .getAttributes().\"),this.getAttributes()}}}),this.id=Un++,this.code=e,this.usedTimes=1,this.program=_,this.vertexShader=M,this.fragmentShader=E,this}function Kt(t,e){function i(t){var i=t.skeleton,n=i.bones;if(e.floatVertexTextures)return 1024;var r=e.maxVertexUniforms,a=Math.floor((r-20)/4),o=Math.min(a,n.length);return o0,maxBones:d,useVertexTexture:e.floatVertexTextures,morphTargets:r.morphTargets,morphNormals:r.morphNormals,maxMorphTargets:t.maxMorphTargets,maxMorphNormals:t.maxMorphNormals,numDirLights:o.directional.length,numPointLights:o.point.length,numSpotLights:o.spot.length,numRectAreaLights:o.rectArea.length,numHemiLights:o.hemi.length,numClippingPlanes:l,numClipIntersection:c,dithering:r.dithering,shadowMapEnabled:t.shadowMap.enabled&&h.receiveShadow&&o.shadows.length>0,shadowMapType:t.shadowMap.type,toneMapping:t.toneMapping,physicallyCorrectLights:t.physicallyCorrectLights,premultipliedAlpha:r.premultipliedAlpha,alphaTest:r.alphaTest,doubleSided:r.side===we,flipSided:r.side===be,depthPacking:void 0!==r.depthPacking&&r.depthPacking}},this.getProgramCode=function(t,e){var i=[];if(e.shaderID?i.push(e.shaderID):(i.push(t.fragmentShader),i.push(t.vertexShader)),void 0!==t.defines)for(var n in t.defines)i.push(n),i.push(t.defines[n]);for(var r=0;re||t.height>e){var i=e/Math.max(t.width,t.height),n=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"canvas\");n.width=Math.floor(t.width*i),n.height=Math.floor(t.height*i);return n.getContext(\"2d\").drawImage(t,0,0,t.width,t.height,0,0,n.width,n.height),console.warn(\"THREE.WebGLRenderer: image is too big (\"+t.width+\"x\"+t.height+\"). Resized to \"+n.width+\"x\"+n.height,t),n}return t}function l(t){return mn.isPowerOfTwo(t.width)&&mn.isPowerOfTwo(t.height)}function c(t){if(t instanceof HTMLImageElement||t instanceof HTMLCanvasElement){var e=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"canvas\");e.width=mn.nearestPowerOfTwo(t.width),e.height=mn.nearestPowerOfTwo(t.height);return e.getContext(\"2d\").drawImage(t,0,0,e.width,e.height),console.warn(\"THREE.WebGLRenderer: image is not power of two (\"+t.width+\"x\"+t.height+\"). Resized to \"+e.width+\"x\"+e.height,t),e}return t}function h(t){return t.wrapS!==yi||t.wrapT!==yi||t.minFilter!==Ei&&t.minFilter!==Ti}function u(e){return e===Ei||e===bi||e===wi?t.NEAREST:t.LINEAR}function d(t){var e=t.target;e.removeEventListener(\"dispose\",d),p(e),o.textures--}function f(t){var e=t.target;e.removeEventListener(\"dispose\",f),m(e),o.textures--}function p(e){var i=n.get(e);if(e.image&&i.__image__webglTextureCube)t.deleteTexture(i.__image__webglTextureCube);else{if(void 0===i.__webglInit)return;t.deleteTexture(i.__webglTexture)}n.remove(e)}function m(e){var i=n.get(e),r=n.get(e.texture);if(e){if(void 0!==r.__webglTexture&&t.deleteTexture(r.__webglTexture),e.depthTexture&&e.depthTexture.dispose(),e.isWebGLRenderTargetCube)for(var a=0;a<6;a++)t.deleteFramebuffer(i.__webglFramebuffer[a]),i.__webglDepthbuffer&&t.deleteRenderbuffer(i.__webglDepthbuffer[a]);else t.deleteFramebuffer(i.__webglFramebuffer),i.__webglDepthbuffer&&t.deleteRenderbuffer(i.__webglDepthbuffer);n.remove(e.texture),n.remove(e)}}function g(e,r){var a=n.get(e);if(e.version>0&&a.__version!==e.version){var o=e.image;if(void 0===o)console.warn(\"THREE.WebGLRenderer: Texture marked for update but image is undefined\",e);else{if(!1!==o.complete)return void y(a,e,r);console.warn(\"THREE.WebGLRenderer: Texture marked for update but image is incomplete\",e)}}i.activeTexture(t.TEXTURE0+r),i.bindTexture(t.TEXTURE_2D,a.__webglTexture)}function v(e,c){var h=n.get(e);if(6===e.image.length)if(e.version>0&&h.__version!==e.version){h.__image__webglTextureCube||(e.addEventListener(\"dispose\",d),h.__image__webglTextureCube=t.createTexture(),o.textures++),i.activeTexture(t.TEXTURE0+c),i.bindTexture(t.TEXTURE_CUBE_MAP,h.__image__webglTextureCube),t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,e.flipY);for(var u=e&&e.isCompressedTexture,f=e.image[0]&&e.image[0].isDataTexture,p=[],m=0;m<6;m++)p[m]=u||f?f?e.image[m].image:e.image[m]:s(e.image[m],r.maxCubemapSize);var g=p[0],v=l(g),_=a(e.format),y=a(e.type);x(t.TEXTURE_CUBE_MAP,e,v);for(var m=0;m<6;m++)if(u)for(var M,E=p[m].mipmaps,b=0,w=E.length;b-1?i.compressedTexImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+m,b,_,M.width,M.height,0,M.data):console.warn(\"THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()\"):i.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+m,b,_,M.width,M.height,0,_,y,M.data);else f?i.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+m,0,_,p[m].width,p[m].height,0,_,y,p[m].data):i.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+m,0,_,_,y,p[m]);e.generateMipmaps&&v&&t.generateMipmap(t.TEXTURE_CUBE_MAP),h.__version=e.version,e.onUpdate&&e.onUpdate(e)}else i.activeTexture(t.TEXTURE0+c),i.bindTexture(t.TEXTURE_CUBE_MAP,h.__image__webglTextureCube)}function _(e,r){i.activeTexture(t.TEXTURE0+r),i.bindTexture(t.TEXTURE_CUBE_MAP,n.get(e).__webglTexture)}function x(i,o,s){var l;if(s?(t.texParameteri(i,t.TEXTURE_WRAP_S,a(o.wrapS)),t.texParameteri(i,t.TEXTURE_WRAP_T,a(o.wrapT)),t.texParameteri(i,t.TEXTURE_MAG_FILTER,a(o.magFilter)),t.texParameteri(i,t.TEXTURE_MIN_FILTER,a(o.minFilter))):(t.texParameteri(i,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(i,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),o.wrapS===yi&&o.wrapT===yi||console.warn(\"THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping.\",o),t.texParameteri(i,t.TEXTURE_MAG_FILTER,u(o.magFilter)),t.texParameteri(i,t.TEXTURE_MIN_FILTER,u(o.minFilter)),o.minFilter!==Ei&&o.minFilter!==Ti&&console.warn(\"THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.\",o)),l=e.get(\"EXT_texture_filter_anisotropic\")){if(o.type===Di&&null===e.get(\"OES_texture_float_linear\"))return;if(o.type===Ii&&null===e.get(\"OES_texture_half_float_linear\"))return;(o.anisotropy>1||n.get(o).__currentAnisotropy)&&(t.texParameterf(i,l.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(o.anisotropy,r.getMaxAnisotropy())),n.get(o).__currentAnisotropy=o.anisotropy)}}function y(e,n,u){void 0===e.__webglInit&&(e.__webglInit=!0,n.addEventListener(\"dispose\",d),e.__webglTexture=t.createTexture(),o.textures++),i.activeTexture(t.TEXTURE0+u),i.bindTexture(t.TEXTURE_2D,e.__webglTexture),t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,n.flipY),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,n.premultiplyAlpha),t.pixelStorei(t.UNPACK_ALIGNMENT,n.unpackAlignment);var f=s(n.image,r.maxTextureSize);h(n)&&!1===l(f)&&(f=c(f));var p=l(f),m=a(n.format),g=a(n.type);x(t.TEXTURE_2D,n,p);var v,_=n.mipmaps;if(n.isDepthTexture){var y=t.DEPTH_COMPONENT;if(n.type===Di){if(!L)throw new Error(\"Float Depth Texture only supported in WebGL2.0\");y=t.DEPTH_COMPONENT32F}else L&&(y=t.DEPTH_COMPONENT16);n.format===Xi&&y===t.DEPTH_COMPONENT&&n.type!==Ci&&n.type!==Ni&&(console.warn(\"THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture.\"),n.type=Ci,g=a(n.type)),n.format===ji&&(y=t.DEPTH_STENCIL,n.type!==Bi&&(console.warn(\"THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture.\"),n.type=Bi,g=a(n.type))),i.texImage2D(t.TEXTURE_2D,0,y,f.width,f.height,0,m,g,null)}else if(n.isDataTexture)if(_.length>0&&p){for(var M=0,E=_.length;M-1?i.compressedTexImage2D(t.TEXTURE_2D,M,m,v.width,v.height,0,v.data):console.warn(\"THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()\"):i.texImage2D(t.TEXTURE_2D,M,m,v.width,v.height,0,m,g,v.data);else if(_.length>0&&p){for(var M=0,E=_.length;M=1,nt=null,rt={},at=new k,ot=new k,st={};return st[t.TEXTURE_2D]=o(t.TEXTURE_2D,t.TEXTURE_2D,1),st[t.TEXTURE_CUBE_MAP]=o(t.TEXTURE_CUBE_MAP,t.TEXTURE_CUBE_MAP_POSITIVE_X,6),{buffers:{color:P,depth:C,stencil:U},init:s,initAttributes:l,enableAttribute:c,enableAttributeAndDivisor:h,disableUnusedAttributes:u,enable:d,disable:f,getCompressedTextureFormats:p,setBlending:m,setMaterial:g,setFlipSided:v,setCullFace:_,setLineWidth:x,setPolygonOffset:y,getScissorTest:M,setScissorTest:E,activeTexture:b,bindTexture:w,compressedTexImage2D:T,texImage2D:S,scissor:L,viewport:A,reset:R}}function ie(t,e,i){function n(){if(void 0!==a)return a;var i=e.get(\"EXT_texture_filter_anisotropic\");return a=null!==i?t.getParameter(i.MAX_TEXTURE_MAX_ANISOTROPY_EXT):0}function r(e){if(\"highp\"===e){if(t.getShaderPrecisionFormat(t.VERTEX_SHADER,t.HIGH_FLOAT).precision>0&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.HIGH_FLOAT).precision>0)return\"highp\";e=\"mediump\"}return\"mediump\"===e&&t.getShaderPrecisionFormat(t.VERTEX_SHADER,t.MEDIUM_FLOAT).precision>0&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.MEDIUM_FLOAT).precision>0?\"mediump\":\"lowp\"}var a,o=void 0!==i.precision?i.precision:\"highp\",s=r(o);s!==o&&(console.warn(\"THREE.WebGLRenderer:\",o,\"not supported, using\",s,\"instead.\"),o=s);var l=!0===i.logarithmicDepthBuffer&&!!e.get(\"EXT_frag_depth\"),c=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS),h=t.getParameter(t.MAX_VERTEX_TEXTURE_IMAGE_UNITS),u=t.getParameter(t.MAX_TEXTURE_SIZE),d=t.getParameter(t.MAX_CUBE_MAP_TEXTURE_SIZE),f=t.getParameter(t.MAX_VERTEX_ATTRIBS),p=t.getParameter(t.MAX_VERTEX_UNIFORM_VECTORS),m=t.getParameter(t.MAX_VARYING_VECTORS),g=t.getParameter(t.MAX_FRAGMENT_UNIFORM_VECTORS),v=h>0,_=!!e.get(\"OES_texture_float\");return{getMaxAnisotropy:n,getMaxPrecision:r,precision:o,logarithmicDepthBuffer:l,maxTextures:c,maxVertexTextures:h,maxTextureSize:u,maxCubemapSize:d,maxAttributes:f,maxVertexUniforms:p,maxVaryings:m,maxFragmentUniforms:g,vertexTextures:v,floatFragmentTextures:_,floatVertexTextures:v&&_}}function ne(t){var e={};return{get:function(i){if(void 0!==e[i])return e[i];var n;switch(i){case\"WEBGL_depth_texture\":n=t.getExtension(\"WEBGL_depth_texture\")||t.getExtension(\"MOZ_WEBGL_depth_texture\")||t.getExtension(\"WEBKIT_WEBGL_depth_texture\");break;case\"EXT_texture_filter_anisotropic\":n=t.getExtension(\"EXT_texture_filter_anisotropic\")||t.getExtension(\"MOZ_EXT_texture_filter_anisotropic\")||t.getExtension(\"WEBKIT_EXT_texture_filter_anisotropic\");break;case\"WEBGL_compressed_texture_s3tc\":n=t.getExtension(\"WEBGL_compressed_texture_s3tc\")||t.getExtension(\"MOZ_WEBGL_compressed_texture_s3tc\")||t.getExtension(\"WEBKIT_WEBGL_compressed_texture_s3tc\");break;case\"WEBGL_compressed_texture_pvrtc\":n=t.getExtension(\"WEBGL_compressed_texture_pvrtc\")||t.getExtension(\"WEBKIT_WEBGL_compressed_texture_pvrtc\");break;case\"WEBGL_compressed_texture_etc1\":n=t.getExtension(\"WEBGL_compressed_texture_etc1\");break;default:n=t.getExtension(i)}return null===n&&console.warn(\"THREE.WebGLRenderer: \"+i+\" extension not supported.\"),e[i]=n,n}}}function re(){function t(){c.value!==n&&(c.value=n,c.needsUpdate=r>0),i.numPlanes=r,i.numIntersection=0}function e(t,e,n,r){var a=null!==t?t.length:0,o=null;if(0!==a){if(o=c.value,!0!==r||null===o){var h=n+4*a,u=e.matrixWorldInverse;l.getNormalMatrix(u),(null===o||o.length=0){var c=r[s];if(void 0!==c){var h=c.normalized,u=c.itemSize,d=oe.get(c),f=d.buffer,p=d.type,m=d.bytesPerElement;if(c.isInterleavedBufferAttribute){var g=c.data,v=g.stride,_=c.offset;g&&g.isInstancedInterleavedBuffer?(Jt.enableAttributeAndDivisor(l,g.meshPerAttribute),void 0===i.maxInstancedCount&&(i.maxInstancedCount=g.meshPerAttribute*g.count)):Jt.enableAttribute(l),jt.bindBuffer(jt.ARRAY_BUFFER,f),jt.vertexAttribPointer(l,u,p,h,v*m,(n*v+_)*m)}else c.isInstancedBufferAttribute?(Jt.enableAttributeAndDivisor(l,c.meshPerAttribute),void 0===i.maxInstancedCount&&(i.maxInstancedCount=c.meshPerAttribute*c.count)):Jt.enableAttribute(l),jt.bindBuffer(jt.ARRAY_BUFFER,f),jt.vertexAttribPointer(l,u,p,h,0,n*u*m)}else if(void 0!==o){var x=o[s];if(void 0!==x)switch(x.length){case 2:jt.vertexAttrib2fv(l,x);break;case 3:jt.vertexAttrib3fv(l,x);break;case 4:jt.vertexAttrib4fv(l,x);break;default:jt.vertexAttrib1fv(l,x)}}}}Jt.disableUnusedAttributes()}function p(t,e,i){if(t.visible){if(t.layers.test(e.layers))if(t.isLight)q.push(t);else if(t.isSprite)t.frustumCulled&&!Rt.intersectsSprite(t)||K.push(t);else if(t.isLensFlare)$.push(t);else if(t.isImmediateRenderObject)i&&Gt.setFromMatrixPosition(t.matrixWorld).applyMatrix4(Bt),Z.push(t,null,t.material,Gt.z,null);else if((t.isMesh||t.isLine||t.isPoints)&&(t.isSkinnedMesh&&t.skeleton.update(),!t.frustumCulled||Rt.intersectsObject(t))){i&&Gt.setFromMatrixPosition(t.matrixWorld).applyMatrix4(Bt);var n=le.update(t),r=t.material;if(Array.isArray(r))for(var a=n.groups,o=0,s=a.length;o=0&&t.numSupportedMorphTargets++}if(t.morphNormals){t.numSupportedMorphNormals=0;for(var d=0;d=0&&t.numSupportedMorphNormals++}var f=n.__webglShader.uniforms;(t.isShaderMaterial||t.isRawShaderMaterial)&&!0!==t.clipping||(n.numClippingPlanes=Pt.numPlanes,n.numIntersection=Pt.numIntersection,f.clippingPlanes=Pt.uniform),n.fog=e,n.lightsHash=kt.hash,t.lights&&(f.ambientLightColor.value=kt.ambient,f.directionalLights.value=kt.directional,f.spotLights.value=kt.spot,f.rectAreaLights.value=kt.rectArea,f.pointLights.value=kt.point,f.hemisphereLights.value=kt.hemi,f.directionalShadowMap.value=kt.directionalShadowMap,f.directionalShadowMatrix.value=kt.directionalShadowMatrix,f.spotShadowMap.value=kt.spotShadowMap,f.spotShadowMatrix.value=kt.spotShadowMatrix,f.pointShadowMap.value=kt.pointShadowMap,f.pointShadowMatrix.value=kt.pointShadowMatrix);var p=n.program.getUniforms(),m=H.seqWithValue(p.seq,f);n.uniformsList=m}function _(t,e,i,n){ft=0;var r=Qt.get(i);if(Ct&&(Ot||t!==lt)){var a=t===lt&&i.id===ot;Pt.setState(i.clippingPlanes,i.clipIntersection,i.clipShadows,t,r,a)}!1===i.needsUpdate&&(void 0===r.program?i.needsUpdate=!0:i.fog&&r.fog!==e?i.needsUpdate=!0:i.lights&&r.lightsHash!==kt.hash?i.needsUpdate=!0:void 0===r.numClippingPlanes||r.numClippingPlanes===Pt.numPlanes&&r.numIntersection===Pt.numIntersection||(i.needsUpdate=!0)),i.needsUpdate&&(v(i,e,n),i.needsUpdate=!1);var o=!1,l=!1,c=!1,h=r.program,u=h.getUniforms(),d=r.__webglShader.uniforms;if(h.id!==et&&(jt.useProgram(h.program),et=h.id,o=!0,l=!0,c=!0),i.id!==ot&&(ot=i.id,l=!0),o||t!==lt){if(u.setValue(jt,\"projectionMatrix\",t.projectionMatrix),Zt.logarithmicDepthBuffer&&u.setValue(jt,\"logDepthBufFC\",2/(Math.log(t.far+1)/Math.LN2)),t!==lt&&(lt=t,l=!0,c=!0),i.isShaderMaterial||i.isMeshPhongMaterial||i.isMeshStandardMaterial||i.envMap){var f=u.map.cameraPosition;void 0!==f&&f.setValue(jt,Gt.setFromMatrixPosition(t.matrixWorld))}(i.isMeshPhongMaterial||i.isMeshLambertMaterial||i.isMeshBasicMaterial||i.isMeshStandardMaterial||i.isShaderMaterial||i.skinning)&&u.setValue(jt,\"viewMatrix\",t.matrixWorldInverse),u.setValue(jt,\"toneMappingExposure\",tt.toneMappingExposure),u.setValue(jt,\"toneMappingWhitePoint\",tt.toneMappingWhitePoint)}if(i.skinning){u.setOptional(jt,n,\"bindMatrix\"),u.setOptional(jt,n,\"bindMatrixInverse\");var p=n.skeleton;if(p){var m=p.bones;if(Zt.floatVertexTextures){if(void 0===p.boneTexture){var g=Math.sqrt(4*m.length);g=mn.nextPowerOfTwo(Math.ceil(g)),g=Math.max(g,4);var _=new Float32Array(g*g*4);_.set(p.boneMatrices);var C=new s(_,g,g,Hi,Di);p.boneMatrices=_,p.boneTexture=C,p.boneTextureSize=g}u.setValue(jt,\"boneTexture\",p.boneTexture),u.setValue(jt,\"boneTextureSize\",p.boneTextureSize)}else u.setOptional(jt,p,\"boneMatrices\")}}return l&&(i.lights&&P(d,c),e&&i.fog&&b(d,e),(i.isMeshBasicMaterial||i.isMeshLambertMaterial||i.isMeshPhongMaterial||i.isMeshStandardMaterial||i.isMeshNormalMaterial||i.isMeshDepthMaterial)&&x(d,i),i.isLineBasicMaterial?y(d,i):i.isLineDashedMaterial?(y(d,i),M(d,i)):i.isPointsMaterial?E(d,i):i.isMeshLambertMaterial?w(d,i):i.isMeshToonMaterial?S(d,i):i.isMeshPhongMaterial?T(d,i):i.isMeshPhysicalMaterial?A(d,i):i.isMeshStandardMaterial?L(d,i):i.isMeshDepthMaterial?i.displacementMap&&(d.displacementMap.value=i.displacementMap,d.displacementScale.value=i.displacementScale,d.displacementBias.value=i.displacementBias):i.isMeshNormalMaterial&&R(d,i),void 0!==d.ltcMat&&(d.ltcMat.value=Tn.LTC_MAT_TEXTURE),void 0!==d.ltcMag&&(d.ltcMag.value=Tn.LTC_MAG_TEXTURE),H.upload(jt,r.uniformsList,d,tt)),u.setValue(jt,\"modelViewMatrix\",n.modelViewMatrix),u.setValue(jt,\"normalMatrix\",n.normalMatrix),u.setValue(jt,\"modelMatrix\",n.matrixWorld),h}function x(t,e){t.opacity.value=e.opacity,t.diffuse.value=e.color,e.emissive&&t.emissive.value.copy(e.emissive).multiplyScalar(e.emissiveIntensity),t.map.value=e.map,t.specularMap.value=e.specularMap,t.alphaMap.value=e.alphaMap,e.lightMap&&(t.lightMap.value=e.lightMap,t.lightMapIntensity.value=e.lightMapIntensity),e.aoMap&&(t.aoMap.value=e.aoMap,t.aoMapIntensity.value=e.aoMapIntensity);var i;if(e.map?i=e.map:e.specularMap?i=e.specularMap:e.displacementMap?i=e.displacementMap:e.normalMap?i=e.normalMap:e.bumpMap?i=e.bumpMap:e.roughnessMap?i=e.roughnessMap:e.metalnessMap?i=e.metalnessMap:e.alphaMap?i=e.alphaMap:e.emissiveMap&&(i=e.emissiveMap),void 0!==i){i.isWebGLRenderTarget&&(i=i.texture);var n=i.offset,r=i.repeat;t.offsetRepeat.value.set(n.x,n.y,r.x,r.y)}t.envMap.value=e.envMap,t.flipEnvMap.value=e.envMap&&e.envMap.isCubeTexture?-1:1,t.reflectivity.value=e.reflectivity,t.refractionRatio.value=e.refractionRatio}function y(t,e){t.diffuse.value=e.color,t.opacity.value=e.opacity}function M(t,e){t.dashSize.value=e.dashSize,t.totalSize.value=e.dashSize+e.gapSize,t.scale.value=e.scale}function E(t,e){if(t.diffuse.value=e.color,t.opacity.value=e.opacity,t.size.value=e.size*_t,t.scale.value=.5*vt,t.map.value=e.map,null!==e.map){var i=e.map.offset,n=e.map.repeat;t.offsetRepeat.value.set(i.x,i.y,n.x,n.y)}}function b(t,e){t.fogColor.value=e.color,e.isFog?(t.fogNear.value=e.near,t.fogFar.value=e.far):e.isFogExp2&&(t.fogDensity.value=e.density)}function w(t,e){e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap)}function T(t,e){t.specular.value=e.specular,t.shininess.value=Math.max(e.shininess,1e-4),e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap),e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale),e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale)),e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}function S(t,e){T(t,e),e.gradientMap&&(t.gradientMap.value=e.gradientMap)}function L(t,e){t.roughness.value=e.roughness,t.metalness.value=e.metalness,e.roughnessMap&&(t.roughnessMap.value=e.roughnessMap),e.metalnessMap&&(t.metalnessMap.value=e.metalnessMap),e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap),e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale),e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale)),e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias),e.envMap&&(t.envMapIntensity.value=e.envMapIntensity)}function A(t,e){t.clearCoat.value=e.clearCoat,t.clearCoatRoughness.value=e.clearCoatRoughness,L(t,e)}function R(t,e){e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale),e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale)),e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}function P(t,e){t.ambientLightColor.needsUpdate=e,t.directionalLights.needsUpdate=e,t.pointLights.needsUpdate=e,t.spotLights.needsUpdate=e,t.rectAreaLights.needsUpdate=e,t.hemisphereLights.needsUpdate=e}function C(t){for(var e=0,i=0,n=t.length;i=Zt.maxTextures&&console.warn(\"WebGLRenderer: trying to use \"+t+\" texture units while this GPU supports only \"+Zt.maxTextures),ft+=1,t}function D(t){var e;if(t===xi)return jt.REPEAT;if(t===yi)return jt.CLAMP_TO_EDGE;if(t===Mi)return jt.MIRRORED_REPEAT;if(t===Ei)return jt.NEAREST;if(t===bi)return jt.NEAREST_MIPMAP_NEAREST;if(t===wi)return jt.NEAREST_MIPMAP_LINEAR;if(t===Ti)return jt.LINEAR;if(t===Si)return jt.LINEAR_MIPMAP_NEAREST;if(t===Li)return jt.LINEAR_MIPMAP_LINEAR;if(t===Ai)return jt.UNSIGNED_BYTE;if(t===Fi)return jt.UNSIGNED_SHORT_4_4_4_4;if(t===zi)return jt.UNSIGNED_SHORT_5_5_5_1;if(t===Oi)return jt.UNSIGNED_SHORT_5_6_5;if(t===Ri)return jt.BYTE;if(t===Pi)return jt.SHORT;if(t===Ci)return jt.UNSIGNED_SHORT;if(t===Ui)return jt.INT;if(t===Ni)return jt.UNSIGNED_INT;if(t===Di)return jt.FLOAT;if(t===Ii&&null!==(e=qt.get(\"OES_texture_half_float\")))return e.HALF_FLOAT_OES;if(t===Gi)return jt.ALPHA;if(t===Vi)return jt.RGB;if(t===Hi)return jt.RGBA;if(t===ki)return jt.LUMINANCE;if(t===Wi)return jt.LUMINANCE_ALPHA;if(t===Xi)return jt.DEPTH_COMPONENT;if(t===ji)return jt.DEPTH_STENCIL;if(t===De)return jt.FUNC_ADD;if(t===Ie)return jt.FUNC_SUBTRACT;if(t===Fe)return jt.FUNC_REVERSE_SUBTRACT;if(t===Be)return jt.ZERO;if(t===Ge)return jt.ONE;if(t===Ve)return jt.SRC_COLOR;if(t===He)return jt.ONE_MINUS_SRC_COLOR;if(t===ke)return jt.SRC_ALPHA;if(t===We)return jt.ONE_MINUS_SRC_ALPHA;if(t===Xe)return jt.DST_ALPHA;if(t===je)return jt.ONE_MINUS_DST_ALPHA;if(t===Ye)return jt.DST_COLOR;if(t===qe)return jt.ONE_MINUS_DST_COLOR;if(t===Ze)return jt.SRC_ALPHA_SATURATE;if((t===Yi||t===qi||t===Zi||t===Ji)&&null!==(e=qt.get(\"WEBGL_compressed_texture_s3tc\"))){if(t===Yi)return e.COMPRESSED_RGB_S3TC_DXT1_EXT;if(t===qi)return e.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(t===Zi)return e.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(t===Ji)return e.COMPRESSED_RGBA_S3TC_DXT5_EXT}if((t===Qi||t===Ki||t===$i||t===tn)&&null!==(e=qt.get(\"WEBGL_compressed_texture_pvrtc\"))){if(t===Qi)return e.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(t===Ki)return e.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(t===$i)return e.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(t===tn)return e.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(t===en&&null!==(e=qt.get(\"WEBGL_compressed_texture_etc1\")))return e.COMPRESSED_RGB_ETC1_WEBGL;if((t===ze||t===Oe)&&null!==(e=qt.get(\"EXT_blend_minmax\"))){if(t===ze)return e.MIN_EXT;if(t===Oe)return e.MAX_EXT}return t===Bi&&null!==(e=qt.get(\"WEBGL_depth_texture\"))?e.UNSIGNED_INT_24_8_WEBGL:0}console.log(\"THREE.WebGLRenderer\",me),t=t||{};var I=void 0!==t.canvas?t.canvas:document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"canvas\"),F=void 0!==t.context?t.context:null,z=void 0!==t.alpha&&t.alpha,O=void 0===t.depth||t.depth,B=void 0===t.stencil||t.stencil,G=void 0!==t.antialias&&t.antialias,V=void 0===t.premultipliedAlpha||t.premultipliedAlpha,X=void 0!==t.preserveDrawingBuffer&&t.preserveDrawingBuffer,q=[],Z=null,Q=new Float32Array(8),K=[],$=[];this.domElement=I,this.context=null,this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.gammaFactor=2,this.gammaInput=!1,this.gammaOutput=!1,this.physicallyCorrectLights=!1,this.toneMapping=li,this.toneMappingExposure=1,this.toneMappingWhitePoint=1,this.maxMorphTargets=8,this.maxMorphNormals=4;var tt=this,et=null,rt=null,at=null,ot=-1,st=\"\",lt=null,ct=new k,ht=null,dt=new k,ft=0,pt=new W(0),mt=0,gt=I.width,vt=I.height,_t=1,xt=new k(0,0,gt,vt),Et=!1,Tt=new k(0,0,gt,vt),Rt=new it,Pt=new re,Ct=!1,Ot=!1,Bt=new n,Gt=new i,Vt=new n,Ht=new n,kt={hash:\"\",ambient:[0,0,0],directional:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotShadowMap:[],spotShadowMatrix:[],rectArea:[],point:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],shadows:[]},Wt={geometries:0,textures:0},Xt={frame:0,calls:0,vertices:0,faces:0,points:0};this.info={render:Xt,memory:Wt,programs:null};var jt;try{var Yt={alpha:z,depth:O,stencil:B,antialias:G,premultipliedAlpha:V,preserveDrawingBuffer:X};if(null===(jt=F||I.getContext(\"webgl\",Yt)||I.getContext(\"experimental-webgl\",Yt)))throw null!==I.getContext(\"webgl\")?\"Error creating WebGL context with your selected attributes.\":\"Error creating WebGL context.\";void 0===jt.getShaderPrecisionFormat&&(jt.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}}),I.addEventListener(\"webglcontextlost\",o,!1)}catch(t){console.error(\"THREE.WebGLRenderer: \"+t)}var qt=new ne(jt);qt.get(\"WEBGL_depth_texture\"),qt.get(\"OES_texture_float\"),qt.get(\"OES_texture_float_linear\"),qt.get(\"OES_texture_half_float\"),qt.get(\"OES_texture_half_float_linear\"),qt.get(\"OES_standard_derivatives\"),qt.get(\"ANGLE_instanced_arrays\"),qt.get(\"OES_element_index_uint\")&&(yt.MaxIndex=4294967296);var Zt=new ie(jt,qt,t),Jt=new ee(jt,qt,D),Qt=new te,ae=new $t(jt,qt,Jt,Qt,Zt,D,Wt),oe=new At(jt),se=new It(jt,oe,Wt),le=new zt(jt,se,Xt),ce=new Kt(this,Zt),he=new Ft,ue=new Ut;this.info.programs=ce.programs;var de,fe,pe,ge,ve=new Dt(jt,qt,Xt),_e=new Nt(jt,qt,Xt);r(),this.context=jt,this.capabilities=Zt,this.extensions=qt,this.properties=Qt,this.state=Jt;var ye=new nt(this,kt,le,Zt);this.shadowMap=ye;var Me=new Y(this,K),Ee=new j(this,$);this.getContext=function(){return jt},this.getContextAttributes=function(){return jt.getContextAttributes()},this.forceContextLoss=function(){var t=qt.get(\"WEBGL_lose_context\");t&&t.loseContext()},this.getMaxAnisotropy=function(){return Zt.getMaxAnisotropy()},this.getPrecision=function(){return Zt.precision},this.getPixelRatio=function(){return _t},this.setPixelRatio=function(t){void 0!==t&&(_t=t,this.setSize(Tt.z,Tt.w,!1))},this.getSize=function(){return{width:gt,height:vt}},this.setSize=function(t,e,i){gt=t,vt=e,I.width=t*_t,I.height=e*_t,!1!==i&&(I.style.width=t+\"px\",I.style.height=e+\"px\"),this.setViewport(0,0,t,e)},this.setViewport=function(t,e,i,n){Jt.viewport(Tt.set(t,e,i,n))},this.setScissor=function(t,e,i,n){Jt.scissor(xt.set(t,e,i,n))},this.setScissorTest=function(t){Jt.setScissorTest(Et=t)},this.getClearColor=function(){return pt},this.setClearColor=function(t,e){pt.set(t),mt=void 0!==e?e:1,Jt.buffers.color.setClear(pt.r,pt.g,pt.b,mt,V)},this.getClearAlpha=function(){return mt},this.setClearAlpha=function(t){mt=t,Jt.buffers.color.setClear(pt.r,pt.g,pt.b,mt,V)},this.clear=function(t,e,i){var n=0;(void 0===t||t)&&(n|=jt.COLOR_BUFFER_BIT),(void 0===e||e)&&(n|=jt.DEPTH_BUFFER_BIT),(void 0===i||i)&&(n|=jt.STENCIL_BUFFER_BIT),jt.clear(n)},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.clearTarget=function(t,e,i,n){this.setRenderTarget(t),this.clear(e,i,n)},this.resetGLState=a,this.dispose=function(){I.removeEventListener(\"webglcontextlost\",o,!1),ue.dispose()},this.renderBufferImmediate=function(t,e,i){Jt.initAttributes();var n=Qt.get(t);t.hasPositions&&!n.position&&(n.position=jt.createBuffer()),t.hasNormals&&!n.normal&&(n.normal=jt.createBuffer()),t.hasUvs&&!n.uv&&(n.uv=jt.createBuffer()),t.hasColors&&!n.color&&(n.color=jt.createBuffer());var r=e.getAttributes();if(t.hasPositions&&(jt.bindBuffer(jt.ARRAY_BUFFER,n.position),jt.bufferData(jt.ARRAY_BUFFER,t.positionArray,jt.DYNAMIC_DRAW),Jt.enableAttribute(r.position),jt.vertexAttribPointer(r.position,3,jt.FLOAT,!1,0,0)),t.hasNormals){if(jt.bindBuffer(jt.ARRAY_BUFFER,n.normal),!i.isMeshPhongMaterial&&!i.isMeshStandardMaterial&&!i.isMeshNormalMaterial&&i.shading===Te)for(var a=0,o=3*t.count;a8&&(u.length=8);for(var v=n.morphAttributes,p=0,m=u.length;p0&&b.renderInstances(n,R,C):b.render(R,C)}},this.compile=function(t,e){q=[],t.traverse(function(t){t.isLight&&q.push(t)}),U(q,e),t.traverse(function(e){if(e.material)if(Array.isArray(e.material))for(var i=0;i=0&&e<=t.width-n&&i>=0&&i<=t.height-r&&jt.readPixels(e,i,n,r,D(c),D(h),a):console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete.\")}finally{s&&jt.bindFramebuffer(jt.FRAMEBUFFER,at)}}}}function oe(){st.call(this),this.type=\"Scene\",this.background=null,this.fog=null,this.overrideMaterial=null,this.autoUpdate=!0}function se(t,e,i){var n=this,r=!1,a=0,o=0;this.onStart=void 0,this.onLoad=t,this.onProgress=e,this.onError=i,this.itemStart=function(t){o++,!1===r&&void 0!==n.onStart&&n.onStart(t,a,o),r=!0},this.itemEnd=function(t){a++,void 0!==n.onProgress&&n.onProgress(t,a,o),a===o&&(r=!1,void 0!==n.onLoad&&n.onLoad())},this.itemError=function(t){void 0!==n.onError&&n.onError(t)}}function le(t){this.manager=void 0!==t?t:Dn}function ce(t,e,i,n,r,a,s,l,c,h,u,d){o.call(this,null,a,s,l,c,h,n,r,u,d),this.image={width:e,height:i},this.mipmaps=t,this.flipY=!1,this.generateMipmaps=!1}function he(t){this.manager=void 0!==t?t:Dn,this._parser=null}function ue(t){this.manager=void 0!==t?t:Dn,this._parser=null}function de(t){this.manager=void 0!==t?t:Dn}function fe(t){this.manager=void 0!==t?t:Dn}function pe(t){this.manager=void 0!==t?t:Dn}void 0===Number.EPSILON&&(Number.EPSILON=Math.pow(2,-52)),void 0===Number.isInteger&&(Number.isInteger=function(t){return\"number\"==typeof t&&isFinite(t)&&Math.floor(t)===t}),void 0===Math.sign&&(Math.sign=function(t){return t<0?-1:t>0?1:+t}),void 0===Function.prototype.name&&Object.defineProperty(Function.prototype,\"name\",{get:function(){return this.toString().match(/^\\s*function\\s*([^\\(\\s]*)/)[1]}}),void 0===Object.assign&&function(){Object.assign=function(t){if(void 0===t||null===t)throw new TypeError(\"Cannot convert undefined or null to object\");for(var e=Object(t),i=1;i>=4,i[r]=e[19===r?3&t|8:t]);return i.join(\"\")}}(),clamp:function(t,e,i){return Math.max(e,Math.min(i,t))},euclideanModulo:function(t,e){return(t%e+e)%e},mapLinear:function(t,e,i,n,r){return n+(t-e)*(r-n)/(i-e)},lerp:function(t,e,i){return(1-i)*t+i*e},smoothstep:function(t,e,i){return t<=e?0:t>=i?1:(t=(t-e)/(i-e))*t*(3-2*t)},smootherstep:function(t,e,i){return t<=e?0:t>=i?1:(t=(t-e)/(i-e))*t*t*(t*(6*t-15)+10)},randInt:function(t,e){return t+Math.floor(Math.random()*(e-t+1))},randFloat:function(t,e){return t+Math.random()*(e-t)},randFloatSpread:function(t){return t*(.5-Math.random())},degToRad:function(t){return t*mn.DEG2RAD},radToDeg:function(t){return t*mn.RAD2DEG},isPowerOfTwo:function(t){return 0==(t&t-1)&&0!==t},nearestPowerOfTwo:function(t){return Math.pow(2,Math.round(Math.log(t)/Math.LN2))},nextPowerOfTwo:function(t){return t--,t|=t>>1,t|=t>>2,t|=t>>4,t|=t>>8,t|=t>>16,++t}};Object.assign(e,{slerp:function(t,e,i,n){return i.copy(t).slerp(e,n)},slerpFlat:function(t,e,i,n,r,a,o){var s=i[n+0],l=i[n+1],c=i[n+2],h=i[n+3],u=r[a+0],d=r[a+1],f=r[a+2],p=r[a+3];if(h!==p||s!==u||l!==d||c!==f){var m=1-o,g=s*u+l*d+c*f+h*p,v=g>=0?1:-1,_=1-g*g;if(_>Number.EPSILON){var x=Math.sqrt(_),y=Math.atan2(x,g*v);m=Math.sin(m*y)/x,o=Math.sin(o*y)/x}var M=o*v;if(s=s*m+u*M,l=l*m+d*M,c=c*m+f*M,h=h*m+p*M,m===1-o){var E=1/Math.sqrt(s*s+l*l+c*c+h*h);s*=E,l*=E,c*=E,h*=E}}t[e]=s,t[e+1]=l,t[e+2]=c,t[e+3]=h}}),Object.defineProperties(e.prototype,{x:{get:function(){return this._x},set:function(t){this._x=t,this.onChangeCallback()}},y:{get:function(){return this._y},set:function(t){this._y=t,this.onChangeCallback()}},z:{get:function(){return this._z},set:function(t){this._z=t,this.onChangeCallback()}},w:{get:function(){return this._w},set:function(t){this._w=t,this.onChangeCallback()}}}),Object.assign(e.prototype,{set:function(t,e,i,n){return this._x=t,this._y=e,this._z=i,this._w=n,this.onChangeCallback(),this},clone:function(){return new this.constructor(this._x,this._y,this._z,this._w)},copy:function(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this.onChangeCallback(),this},setFromEuler:function(t,e){if(!1===(t&&t.isEuler))throw new Error(\"THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.\");var i=t._x,n=t._y,r=t._z,a=t.order,o=Math.cos,s=Math.sin,l=o(i/2),c=o(n/2),h=o(r/2),u=s(i/2),d=s(n/2),f=s(r/2);return\"XYZ\"===a?(this._x=u*c*h+l*d*f,this._y=l*d*h-u*c*f,this._z=l*c*f+u*d*h,this._w=l*c*h-u*d*f):\"YXZ\"===a?(this._x=u*c*h+l*d*f,this._y=l*d*h-u*c*f,this._z=l*c*f-u*d*h,this._w=l*c*h+u*d*f):\"ZXY\"===a?(this._x=u*c*h-l*d*f,this._y=l*d*h+u*c*f,this._z=l*c*f+u*d*h,this._w=l*c*h-u*d*f):\"ZYX\"===a?(this._x=u*c*h-l*d*f,this._y=l*d*h+u*c*f,this._z=l*c*f-u*d*h,this._w=l*c*h+u*d*f):\"YZX\"===a?(this._x=u*c*h+l*d*f,this._y=l*d*h+u*c*f,this._z=l*c*f-u*d*h,this._w=l*c*h-u*d*f):\"XZY\"===a&&(this._x=u*c*h-l*d*f,this._y=l*d*h-u*c*f,this._z=l*c*f+u*d*h,this._w=l*c*h+u*d*f),!1!==e&&this.onChangeCallback(),this},setFromAxisAngle:function(t,e){var i=e/2,n=Math.sin(i);return this._x=t.x*n,this._y=t.y*n,this._z=t.z*n,this._w=Math.cos(i),this.onChangeCallback(),this},setFromRotationMatrix:function(t){var e,i=t.elements,n=i[0],r=i[4],a=i[8],o=i[1],s=i[5],l=i[9],c=i[2],h=i[6],u=i[10],d=n+s+u;return d>0?(e=.5/Math.sqrt(d+1),this._w=.25/e,this._x=(h-l)*e,this._y=(a-c)*e,this._z=(o-r)*e):n>s&&n>u?(e=2*Math.sqrt(1+n-s-u),this._w=(h-l)/e,this._x=.25*e,this._y=(r+o)/e,this._z=(a+c)/e):s>u?(e=2*Math.sqrt(1+s-n-u),this._w=(a-c)/e,this._x=(r+o)/e,this._y=.25*e,this._z=(l+h)/e):(e=2*Math.sqrt(1+u-n-s),this._w=(o-r)/e,this._x=(a+c)/e,this._y=(l+h)/e,this._z=.25*e),this.onChangeCallback(),this},setFromUnitVectors:function(){var t,e;return function(n,r){return void 0===t&&(t=new i),e=n.dot(r)+1,e<1e-6?(e=0,Math.abs(n.x)>Math.abs(n.z)?t.set(-n.y,n.x,0):t.set(0,-n.z,n.y)):t.crossVectors(n,r),this._x=t.x,this._y=t.y,this._z=t.z,this._w=e,this.normalize()}}(),inverse:function(){return this.conjugate().normalize()},conjugate:function(){return this._x*=-1,this._y*=-1,this._z*=-1,this.onChangeCallback(),this},dot:function(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._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 t=this.length();return 0===t?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this.onChangeCallback(),this},multiply:function(t,e){return void 0!==e?(console.warn(\"THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead.\"),this.multiplyQuaternions(t,e)):this.multiplyQuaternions(this,t)},premultiply:function(t){return this.multiplyQuaternions(t,this)},multiplyQuaternions:function(t,e){var i=t._x,n=t._y,r=t._z,a=t._w,o=e._x,s=e._y,l=e._z,c=e._w;return this._x=i*c+a*o+n*l-r*s,this._y=n*c+a*s+r*o-i*l,this._z=r*c+a*l+i*s-n*o,this._w=a*c-i*o-n*s-r*l,this.onChangeCallback(),this},slerp:function(t,e){if(0===e)return this;if(1===e)return this.copy(t);var i=this._x,n=this._y,r=this._z,a=this._w,o=a*t._w+i*t._x+n*t._y+r*t._z;if(o<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,o=-o):this.copy(t),o>=1)return this._w=a,this._x=i,this._y=n,this._z=r,this;var s=Math.sqrt(1-o*o);if(Math.abs(s)<.001)return this._w=.5*(a+this._w),this._x=.5*(i+this._x),this._y=.5*(n+this._y),this._z=.5*(r+this._z),this;var l=Math.atan2(s,o),c=Math.sin((1-e)*l)/s,h=Math.sin(e*l)/s;return this._w=a*c+this._w*h,this._x=i*c+this._x*h,this._y=n*c+this._y*h,this._z=r*c+this._z*h,this.onChangeCallback(),this},equals:function(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w},fromArray:function(t,e){return void 0===e&&(e=0),this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this.onChangeCallback(),this},toArray:function(t,e){return void 0===t&&(t=[]),void 0===e&&(e=0),t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t},onChange:function(t){return this.onChangeCallback=t,this},onChangeCallback:function(){}}),Object.assign(i.prototype,{isVector3:!0,set:function(t,e,i){return this.x=t,this.y=e,this.z=i,this},setScalar:function(t){return this.x=t,this.y=t,this.z=t,this},setX:function(t){return this.x=t,this},setY:function(t){return this.y=t,this},setZ:function(t){return this.z=t,this},setComponent:function(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error(\"index is out of range: \"+t)}return this},getComponent:function(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error(\"index is out of range: \"+t)}},clone:function(){return new this.constructor(this.x,this.y,this.z)},copy:function(t){return this.x=t.x,this.y=t.y,this.z=t.z,this},add:function(t,e){return void 0!==e?(console.warn(\"THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead.\"),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this)},addScalar:function(t){return this.x+=t,this.y+=t,this.z+=t,this},addVectors:function(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this},addScaledVector:function(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this},sub:function(t,e){return void 0!==e?(console.warn(\"THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.\"),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this)},subScalar:function(t){return this.x-=t,this.y-=t,this.z-=t,this},subVectors:function(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this},multiply:function(t,e){return void 0!==e?(console.warn(\"THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead.\"),this.multiplyVectors(t,e)):(this.x*=t.x,this.y*=t.y,this.z*=t.z,this)},multiplyScalar:function(t){return this.x*=t,this.y*=t,this.z*=t,this},multiplyVectors:function(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this},applyEuler:function(){var t;return function(i){return!1===(i&&i.isEuler)&&console.error(\"THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order.\"),void 0===t&&(t=new e),this.applyQuaternion(t.setFromEuler(i))}}(),applyAxisAngle:function(){var t;return function(i,n){return void 0===t&&(t=new e),this.applyQuaternion(t.setFromAxisAngle(i,n))}}(),applyMatrix3:function(t){var e=this.x,i=this.y,n=this.z,r=t.elements;return this.x=r[0]*e+r[3]*i+r[6]*n,this.y=r[1]*e+r[4]*i+r[7]*n,this.z=r[2]*e+r[5]*i+r[8]*n,this},applyMatrix4:function(t){var e=this.x,i=this.y,n=this.z,r=t.elements;this.x=r[0]*e+r[4]*i+r[8]*n+r[12],this.y=r[1]*e+r[5]*i+r[9]*n+r[13],this.z=r[2]*e+r[6]*i+r[10]*n+r[14];var a=r[3]*e+r[7]*i+r[11]*n+r[15];return this.divideScalar(a)},applyQuaternion:function(t){var e=this.x,i=this.y,n=this.z,r=t.x,a=t.y,o=t.z,s=t.w,l=s*e+a*n-o*i,c=s*i+o*e-r*n,h=s*n+r*i-a*e,u=-r*e-a*i-o*n;return this.x=l*s+u*-r+c*-o-h*-a,this.y=c*s+u*-a+h*-r-l*-o,this.z=h*s+u*-o+l*-a-c*-r,this},project:function(){var t;return function(e){return void 0===t&&(t=new n),t.multiplyMatrices(e.projectionMatrix,t.getInverse(e.matrixWorld)),this.applyMatrix4(t)}}(),unproject:function(){var t;return function(e){return void 0===t&&(t=new n),t.multiplyMatrices(e.matrixWorld,t.getInverse(e.projectionMatrix)),this.applyMatrix4(t)}}(),transformDirection:function(t){var e=this.x,i=this.y,n=this.z,r=t.elements;return this.x=r[0]*e+r[4]*i+r[8]*n,this.y=r[1]*e+r[5]*i+r[9]*n,this.z=r[2]*e+r[6]*i+r[10]*n,this.normalize()},divide:function(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this},divideScalar:function(t){return this.multiplyScalar(1/t)},min:function(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this},max:function(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this},clamp:function(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this},clampScalar:function(){var t,e;return function(n,r){return void 0===t&&(t=new i,e=new i),t.set(n,n,n),e.set(r,r,r),this.clamp(t,e)}}(),clampLength:function(t,e){var i=this.length();return this.multiplyScalar(Math.max(t,Math.min(e,i))/i)},floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this},ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this},round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this},roundToZero:function(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this},negate:function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this},dot:function(t){return this.x*t.x+this.y*t.y+this.z*t.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)},lengthManhattan:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)},normalize:function(){return this.divideScalar(this.length())},setLength:function(t){return this.multiplyScalar(t/this.length())},lerp:function(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this},lerpVectors:function(t,e,i){return this.subVectors(e,t).multiplyScalar(i).add(t)},cross:function(t,e){if(void 0!==e)return console.warn(\"THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead.\"),this.crossVectors(t,e);var i=this.x,n=this.y,r=this.z;return this.x=n*t.z-r*t.y,this.y=r*t.x-i*t.z,this.z=i*t.y-n*t.x,this},crossVectors:function(t,e){var i=t.x,n=t.y,r=t.z,a=e.x,o=e.y,s=e.z;return this.x=n*s-r*o,this.y=r*a-i*s,this.z=i*o-n*a,this},projectOnVector:function(t){var e=t.dot(this)/t.lengthSq();return this.copy(t).multiplyScalar(e)},projectOnPlane:function(){var t;return function(e){return void 0===t&&(t=new i),t.copy(this).projectOnVector(e),this.sub(t)}}(),reflect:function(){var t;return function(e){return void 0===t&&(t=new i),this.sub(t.copy(e).multiplyScalar(2*this.dot(e)))}}(),angleTo:function(t){var e=this.dot(t)/Math.sqrt(this.lengthSq()*t.lengthSq());return Math.acos(mn.clamp(e,-1,1))},distanceTo:function(t){return Math.sqrt(this.distanceToSquared(t))},distanceToSquared:function(t){var e=this.x-t.x,i=this.y-t.y,n=this.z-t.z;return e*e+i*i+n*n},distanceToManhattan:function(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)},setFromSpherical:function(t){var e=Math.sin(t.phi)*t.radius;return this.x=e*Math.sin(t.theta),this.y=Math.cos(t.phi)*t.radius,this.z=e*Math.cos(t.theta),this},setFromCylindrical:function(t){return this.x=t.radius*Math.sin(t.theta),this.y=t.y,this.z=t.radius*Math.cos(t.theta),this},setFromMatrixPosition:function(t){return this.setFromMatrixColumn(t,3)},setFromMatrixScale:function(t){var e=this.setFromMatrixColumn(t,0).length(),i=this.setFromMatrixColumn(t,1).length(),n=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=i,this.z=n,this},setFromMatrixColumn:function(t,e){return this.fromArray(t.elements,4*e)},equals:function(t){return t.x===this.x&&t.y===this.y&&t.z===this.z},fromArray:function(t,e){return void 0===e&&(e=0),this.x=t[e],this.y=t[e+1],this.z=t[e+2],this},toArray:function(t,e){return void 0===t&&(t=[]),void 0===e&&(e=0),t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t},fromBufferAttribute:function(t,e,i){return void 0!==i&&console.warn(\"THREE.Vector3: offset has been removed from .fromBufferAttribute().\"),this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}}),Object.assign(n.prototype,{isMatrix4:!0,set:function(t,e,i,n,r,a,o,s,l,c,h,u,d,f,p,m){var g=this.elements;return g[0]=t,g[4]=e,g[8]=i,g[12]=n,g[1]=r,g[5]=a,g[9]=o,g[13]=s,g[2]=l,g[6]=c,g[10]=h,g[14]=u,g[3]=d,g[7]=f,g[11]=p,g[15]=m,this},identity:function(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this},clone:function(){return(new n).fromArray(this.elements)},copy:function(t){var e=this.elements,i=t.elements;return e[0]=i[0],e[1]=i[1],e[2]=i[2],e[3]=i[3],e[4]=i[4],e[5]=i[5],e[6]=i[6],e[7]=i[7],e[8]=i[8],e[9]=i[9],e[10]=i[10],e[11]=i[11],e[12]=i[12],e[13]=i[13],e[14]=i[14],e[15]=i[15],this},copyPosition:function(t){var e=this.elements,i=t.elements;return e[12]=i[12],e[13]=i[13],e[14]=i[14],this},extractBasis:function(t,e,i){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),i.setFromMatrixColumn(this,2),this},makeBasis:function(t,e,i){return this.set(t.x,e.x,i.x,0,t.y,e.y,i.y,0,t.z,e.z,i.z,0,0,0,0,1),this},extractRotation:function(){var t;return function(e){void 0===t&&(t=new i);var n=this.elements,r=e.elements,a=1/t.setFromMatrixColumn(e,0).length(),o=1/t.setFromMatrixColumn(e,1).length(),s=1/t.setFromMatrixColumn(e,2).length();return n[0]=r[0]*a,n[1]=r[1]*a,n[2]=r[2]*a,n[4]=r[4]*o,n[5]=r[5]*o,n[6]=r[6]*o,n[8]=r[8]*s,n[9]=r[9]*s,n[10]=r[10]*s,this}}(),makeRotationFromEuler:function(t){!1===(t&&t.isEuler)&&console.error(\"THREE.Matrix: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.\");var e=this.elements,i=t.x,n=t.y,r=t.z,a=Math.cos(i),o=Math.sin(i),s=Math.cos(n),l=Math.sin(n),c=Math.cos(r),h=Math.sin(r);if(\"XYZ\"===t.order){var u=a*c,d=a*h,f=o*c,p=o*h;e[0]=s*c,e[4]=-s*h,e[8]=l,e[1]=d+f*l,e[5]=u-p*l,e[9]=-o*s,e[2]=p-u*l,e[6]=f+d*l,e[10]=a*s}else if(\"YXZ\"===t.order){var m=s*c,g=s*h,v=l*c,_=l*h;e[0]=m+_*o,e[4]=v*o-g,e[8]=a*l,e[1]=a*h,e[5]=a*c,e[9]=-o,e[2]=g*o-v,e[6]=_+m*o,e[10]=a*s}else if(\"ZXY\"===t.order){var m=s*c,g=s*h,v=l*c,_=l*h;e[0]=m-_*o,e[4]=-a*h,e[8]=v+g*o,e[1]=g+v*o,e[5]=a*c,e[9]=_-m*o,e[2]=-a*l,e[6]=o,e[10]=a*s}else if(\"ZYX\"===t.order){var u=a*c,d=a*h,f=o*c,p=o*h;e[0]=s*c,e[4]=f*l-d,e[8]=u*l+p,e[1]=s*h,e[5]=p*l+u,e[9]=d*l-f,e[2]=-l,e[6]=o*s,e[10]=a*s}else if(\"YZX\"===t.order){var x=a*s,y=a*l,M=o*s,E=o*l;e[0]=s*c,e[4]=E-x*h,e[8]=M*h+y,e[1]=h,e[5]=a*c,e[9]=-o*c,e[2]=-l*c,e[6]=y*h+M,e[10]=x-E*h}else if(\"XZY\"===t.order){var x=a*s,y=a*l,M=o*s,E=o*l;e[0]=s*c,e[4]=-h,e[8]=l*c,e[1]=x*h+E,e[5]=a*c,e[9]=y*h-M,e[2]=M*h-y,e[6]=o*c,e[10]=E*h+x}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this},makeRotationFromQuaternion:function(t){var e=this.elements,i=t._x,n=t._y,r=t._z,a=t._w,o=i+i,s=n+n,l=r+r,c=i*o,h=i*s,u=i*l,d=n*s,f=n*l,p=r*l,m=a*o,g=a*s,v=a*l;return e[0]=1-(d+p),e[4]=h-v,e[8]=u+g,e[1]=h+v,e[5]=1-(c+p),e[9]=f-m,e[2]=u-g,e[6]=f+m,e[10]=1-(c+d),e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this},lookAt:function(){var t,e,n;return function(r,a,o){void 0===t&&(t=new i,e=new i,n=new i);var s=this.elements;return n.subVectors(r,a),0===n.lengthSq()&&(n.z=1),n.normalize(),t.crossVectors(o,n),0===t.lengthSq()&&(n.z+=1e-4,t.crossVectors(o,n)),t.normalize(),e.crossVectors(n,t),s[0]=t.x,s[4]=e.x,s[8]=n.x,s[1]=t.y,s[5]=e.y,s[9]=n.y,s[2]=t.z,s[6]=e.z,s[10]=n.z,this}}(),multiply:function(t,e){return void 0!==e?(console.warn(\"THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead.\"),this.multiplyMatrices(t,e)):this.multiplyMatrices(this,t)},premultiply:function(t){return this.multiplyMatrices(t,this)},multiplyMatrices:function(t,e){var i=t.elements,n=e.elements,r=this.elements,a=i[0],o=i[4],s=i[8],l=i[12],c=i[1],h=i[5],u=i[9],d=i[13],f=i[2],p=i[6],m=i[10],g=i[14],v=i[3],_=i[7],x=i[11],y=i[15],M=n[0],E=n[4],b=n[8],w=n[12],T=n[1],S=n[5],L=n[9],A=n[13],R=n[2],P=n[6],C=n[10],U=n[14],N=n[3],D=n[7],I=n[11],F=n[15];return r[0]=a*M+o*T+s*R+l*N,r[4]=a*E+o*S+s*P+l*D,r[8]=a*b+o*L+s*C+l*I,r[12]=a*w+o*A+s*U+l*F,r[1]=c*M+h*T+u*R+d*N,r[5]=c*E+h*S+u*P+d*D,r[9]=c*b+h*L+u*C+d*I,r[13]=c*w+h*A+u*U+d*F,r[2]=f*M+p*T+m*R+g*N,r[6]=f*E+p*S+m*P+g*D,r[10]=f*b+p*L+m*C+g*I,r[14]=f*w+p*A+m*U+g*F,r[3]=v*M+_*T+x*R+y*N,r[7]=v*E+_*S+x*P+y*D,r[11]=v*b+_*L+x*C+y*I,r[15]=v*w+_*A+x*U+y*F,this},multiplyScalar:function(t){var e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this},applyToBufferAttribute:function(){var t;return function(e){void 0===t&&(t=new i);for(var n=0,r=e.count;n2048||e.height>2048?e.toDataURL(\"image/jpeg\",.6):e.toDataURL(\"image/png\")}(i)}),e.image=i.uuid}return t.textures[this.uuid]=e,e},dispose:function(){this.dispatchEvent({type:\"dispose\"})},transformUv:function(t){if(300===this.mapping){if(t.multiply(this.repeat),t.add(this.offset),t.x<0||t.x>1)switch(this.wrapS){case xi:t.x=t.x-Math.floor(t.x);break;case yi:t.x=t.x<0?0:1;break;case Mi:1===Math.abs(Math.floor(t.x)%2)?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x)}if(t.y<0||t.y>1)switch(this.wrapT){case xi:t.y=t.y-Math.floor(t.y);break;case yi:t.y=t.y<0?0:1;break;case Mi:1===Math.abs(Math.floor(t.y)%2)?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y)}this.flipY&&(t.y=1-t.y)}}}),s.prototype=Object.create(o.prototype),s.prototype.constructor=s,s.prototype.isDataTexture=!0,l.prototype=Object.create(o.prototype),l.prototype.constructor=l,l.prototype.isCubeTexture=!0,Object.defineProperty(l.prototype,\"images\",{get:function(){return this.image},set:function(t){this.image=t}});var vn=new o,_n=new l,xn=[],yn=[],Mn=new Float32Array(16),En=new Float32Array(9);B.prototype.setValue=function(t,e){for(var i=this.seq,n=0,r=i.length;n!==r;++n){var a=i[n];a.setValue(t,e[a.id])}};var bn=/([\\w\\d_]+)(\\])?(\\[|\\.)?/g;H.prototype.setValue=function(t,e,i){var n=this.map[e];void 0!==n&&n.setValue(t,i,this.renderer)},H.prototype.setOptional=function(t,e,i){var n=e[i];void 0!==n&&this.setValue(t,i,n)},H.upload=function(t,e,i,n){for(var r=0,a=e.length;r!==a;++r){var o=e[r],s=i[o.id];!1!==s.needsUpdate&&o.setValue(t,s.value,n)}},H.seqWithValue=function(t,e){for(var i=[],n=0,r=t.length;n!==r;++n){var a=t[n];a.id in e&&i.push(a)}return i},Object.assign(k.prototype,{isVector4:!0,set:function(t,e,i,n){return this.x=t,this.y=e,this.z=i,this.w=n,this},setScalar:function(t){return this.x=t,this.y=t,this.z=t,this.w=t,this},setX:function(t){return this.x=t,this},setY:function(t){return this.y=t,this},setZ:function(t){return this.z=t,this},setW:function(t){return this.w=t,this},setComponent:function(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error(\"index is out of range: \"+t)}return this},getComponent:function(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error(\"index is out of range: \"+t)}},clone:function(){return new this.constructor(this.x,this.y,this.z,this.w)},copy:function(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=void 0!==t.w?t.w:1,this},add:function(t,e){return void 0!==e?(console.warn(\"THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead.\"),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this)},addScalar:function(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this},addVectors:function(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this},addScaledVector:function(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this},sub:function(t,e){return void 0!==e?(console.warn(\"THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.\"),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this)},subScalar:function(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this},subVectors:function(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this},multiplyScalar:function(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this},applyMatrix4:function(t){var e=this.x,i=this.y,n=this.z,r=this.w,a=t.elements;return this.x=a[0]*e+a[4]*i+a[8]*n+a[12]*r,this.y=a[1]*e+a[5]*i+a[9]*n+a[13]*r,this.z=a[2]*e+a[6]*i+a[10]*n+a[14]*r,this.w=a[3]*e+a[7]*i+a[11]*n+a[15]*r,this},divideScalar:function(t){return this.multiplyScalar(1/t)},setAxisAngleFromQuaternion:function(t){this.w=2*Math.acos(t.w);var e=Math.sqrt(1-t.w*t.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this},setAxisAngleFromRotationMatrix:function(t){var e,i,n,r,a=t.elements,o=a[0],s=a[4],l=a[8],c=a[1],h=a[5],u=a[9],d=a[2],f=a[6],p=a[10];if(Math.abs(s-c)<.01&&Math.abs(l-d)<.01&&Math.abs(u-f)<.01){if(Math.abs(s+c)<.1&&Math.abs(l+d)<.1&&Math.abs(u+f)<.1&&Math.abs(o+h+p-3)<.1)return this.set(1,0,0,0),this;e=Math.PI;var m=(o+1)/2,g=(h+1)/2,v=(p+1)/2,_=(s+c)/4,x=(l+d)/4,y=(u+f)/4;return m>g&&m>v?m<.01?(i=0,n=.707106781,r=.707106781):(i=Math.sqrt(m),n=_/i,r=x/i):g>v?g<.01?(i=.707106781,n=0,r=.707106781):(n=Math.sqrt(g),i=_/n,r=y/n):v<.01?(i=.707106781,n=.707106781,r=0):(r=Math.sqrt(v),i=x/r,n=y/r),this.set(i,n,r,e),this}var M=Math.sqrt((f-u)*(f-u)+(l-d)*(l-d)+(c-s)*(c-s));return Math.abs(M)<.001&&(M=1),this.x=(f-u)/M,this.y=(l-d)/M,this.z=(c-s)/M,this.w=Math.acos((o+h+p-1)/2),this},min:function(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this.w=Math.min(this.w,t.w),this},max:function(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this.w=Math.max(this.w,t.w),this},clamp:function(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this.w=Math.max(t.w,Math.min(e.w,this.w)),this},clampScalar:function(){var t=new k,e=new k;return function(i,n){return t.set(i,i,i,i),e.set(n,n,n,n),this.clamp(t,e)}}(),floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this},ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this},round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this},roundToZero:function(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this.w=this.w<0?Math.ceil(this.w):Math.floor(this.w),this},negate:function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this},dot:function(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.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)},lengthManhattan: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())},setLength:function(t){return this.multiplyScalar(t/this.length())},lerp:function(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this.w+=(t.w-this.w)*e,this},lerpVectors:function(t,e,i){return this.subVectors(e,t).multiplyScalar(i).add(t)},equals:function(t){return t.x===this.x&&t.y===this.y&&t.z===this.z&&t.w===this.w},fromArray:function(t,e){return void 0===e&&(e=0),this.x=t[e],this.y=t[e+1],this.z=t[e+2],this.w=t[e+3],this},toArray:function(t,e){return void 0===t&&(t=[]),void 0===e&&(e=0),t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t[e+3]=this.w,t},fromBufferAttribute:function(t,e,i){return void 0!==i&&console.warn(\"THREE.Vector4: offset has been removed from .fromBufferAttribute().\"),this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this.w=t.getW(e),this}});var wn={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,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(W.prototype,{isColor:!0,r:1,g:1,b:1,set:function(t){return t&&t.isColor?this.copy(t):\"number\"==typeof t?this.setHex(t):\"string\"==typeof t&&this.setStyle(t),this},setScalar:function(t){return this.r=t,this.g=t,this.b=t,this},setHex:function(t){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(255&t)/255,this},setRGB:function(t,e,i){return this.r=t,this.g=e,this.b=i,this},setHSL:function(){function t(t,e,i){return i<0&&(i+=1),i>1&&(i-=1),i<1/6?t+6*(e-t)*i:i<.5?e:i<2/3?t+6*(e-t)*(2/3-i):t}return function(e,i,n){if(e=mn.euclideanModulo(e,1),i=mn.clamp(i,0,1),n=mn.clamp(n,0,1),0===i)this.r=this.g=this.b=n;else{var r=n<=.5?n*(1+i):n+i-n*i,a=2*n-r;this.r=t(a,r,e+1/3),this.g=t(a,r,e),this.b=t(a,r,e-1/3)}return this}}(),setStyle:function(t){function e(e){void 0!==e&&parseFloat(e)<1&&console.warn(\"THREE.Color: Alpha component of \"+t+\" will be ignored.\")}var i;if(i=/^((?:rgb|hsl)a?)\\(\\s*([^\\)]*)\\)/.exec(t)){var n,r=i[1],a=i[2];switch(r){case\"rgb\":case\"rgba\":if(n=/^(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(,\\s*([0-9]*\\.?[0-9]+)\\s*)?$/.exec(a))return this.r=Math.min(255,parseInt(n[1],10))/255,this.g=Math.min(255,parseInt(n[2],10))/255,this.b=Math.min(255,parseInt(n[3],10))/255,e(n[5]),this;if(n=/^(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(,\\s*([0-9]*\\.?[0-9]+)\\s*)?$/.exec(a))return this.r=Math.min(100,parseInt(n[1],10))/100,this.g=Math.min(100,parseInt(n[2],10))/100,this.b=Math.min(100,parseInt(n[3],10))/100,e(n[5]),this;break;case\"hsl\":case\"hsla\":if(n=/^([0-9]*\\.?[0-9]+)\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(,\\s*([0-9]*\\.?[0-9]+)\\s*)?$/.exec(a)){var o=parseFloat(n[1])/360,s=parseInt(n[2],10)/100,l=parseInt(n[3],10)/100;return e(n[5]),this.setHSL(o,s,l)}}}else if(i=/^\\#([A-Fa-f0-9]+)$/.exec(t)){var c=i[1],h=c.length;if(3===h)return this.r=parseInt(c.charAt(0)+c.charAt(0),16)/255,this.g=parseInt(c.charAt(1)+c.charAt(1),16)/255,this.b=parseInt(c.charAt(2)+c.charAt(2),16)/255,this;if(6===h)return this.r=parseInt(c.charAt(0)+c.charAt(1),16)/255,this.g=parseInt(c.charAt(2)+c.charAt(3),16)/255,this.b=parseInt(c.charAt(4)+c.charAt(5),16)/255,this}if(t&&t.length>0){var c=wn[t];void 0!==c?this.setHex(c):console.warn(\"THREE.Color: Unknown color \"+t)}return this},clone:function(){return new this.constructor(this.r,this.g,this.b)},copy:function(t){return this.r=t.r,this.g=t.g,this.b=t.b,this},copyGammaToLinear:function(t,e){return void 0===e&&(e=2),this.r=Math.pow(t.r,e),this.g=Math.pow(t.g,e),this.b=Math.pow(t.b,e),this},copyLinearToGamma:function(t,e){void 0===e&&(e=2);var i=e>0?1/e:1;return this.r=Math.pow(t.r,i),this.g=Math.pow(t.g,i),this.b=Math.pow(t.b,i),this},convertGammaToLinear:function(){var t=this.r,e=this.g,i=this.b;return this.r=t*t,this.g=e*e,this.b=i*i,this},convertLinearToGamma:function(){return this.r=Math.sqrt(this.r),this.g=Math.sqrt(this.g),this.b=Math.sqrt(this.b),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(t){var e,i,n=t||{h:0,s:0,l:0},r=this.r,a=this.g,o=this.b,s=Math.max(r,a,o),l=Math.min(r,a,o),c=(l+s)/2;if(l===s)e=0,i=0;else{var h=s-l;switch(i=c<=.5?h/(s+l):h/(2-s-l),s){case r:e=(a-o)/h+(a 0.0 ) {\\n#if defined ( PHYSICALLY_CORRECT_LIGHTS )\\n\\t\\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\\n\\t\\tfloat maxDistanceCutoffFactor = 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 = 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 = pow2( alpha );\\n\\tfloat gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\\n\\tfloat gv = 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 = pow2( alpha );\\n\\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\\n\\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\\n\\treturn 0.5 / max( gv + gl, EPSILON );\\n}\\nfloat D_GGX( const in float alpha, const in float dotNH ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\\n\\treturn RECIPROCAL_PI * a2 / pow2( denom );\\n}\\nvec3 BRDF_Specular_GGX( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float roughness ) {\\n\\tfloat alpha = pow2( roughness );\\n\\tvec3 halfDir = normalize( incidentLight.direction + geometry.viewDir );\\n\\tfloat dotNL = saturate( dot( geometry.normal, incidentLight.direction ) );\\n\\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\\n\\tfloat dotNH = saturate( dot( geometry.normal, halfDir ) );\\n\\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\\n\\tvec3 F = F_Schlick( specularColor, dotLH );\\n\\tfloat G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );\\n\\tfloat D = 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 = 64.0;\\n\\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\\n\\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\\n\\tfloat theta = acos( dot( N, V ) );\\n\\tvec2 uv = vec2(\\n\\t\\tsqrt( saturate( roughness ) ),\\n\\t\\tsaturate( theta / ( 0.5 * PI ) ) );\\n\\tuv = uv * LUT_SCALE + LUT_BIAS;\\n\\treturn uv;\\n}\\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\\n\\tfloat l = length( f );\\n\\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\\n}\\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\\n\\tfloat x = dot( v1, v2 );\\n\\tfloat y = abs( x );\\n\\tfloat a = 0.86267 + (0.49788 + 0.01436 * y ) * y;\\n\\tfloat b = 3.45068 + (4.18814 + y) * y;\\n\\tfloat v = a / b;\\n\\tfloat theta_sintheta = (x > 0.0) ? v : 0.5 * inversesqrt( 1.0 - x * x ) - v;\\n\\treturn cross( v1, v2 ) * theta_sintheta;\\n}\\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\\n\\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\\n\\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\\n\\tvec3 lightNormal = cross( v1, v2 );\\n\\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\\n\\tvec3 T1, T2;\\n\\tT1 = normalize( V - N * dot( V, N ) );\\n\\tT2 = - cross( N, T1 );\\n\\tmat3 mat = mInv * transpose( mat3( T1, T2, N ) );\\n\\tvec3 coords[ 4 ];\\n\\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\\n\\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\\n\\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\\n\\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\\n\\tcoords[ 0 ] = normalize( coords[ 0 ] );\\n\\tcoords[ 1 ] = normalize( coords[ 1 ] );\\n\\tcoords[ 2 ] = normalize( coords[ 2 ] );\\n\\tcoords[ 3 ] = normalize( coords[ 3 ] );\\n\\tvec3 vectorFormFactor = vec3( 0.0 );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\\n\\tvec3 result = vec3( LTC_ClippedSphereFormFactor( vectorFormFactor ) );\\n\\treturn result;\\n}\\nvec3 BRDF_Specular_GGX_Environment( const in GeometricContext geometry, const in vec3 specularColor, const in float roughness ) {\\n\\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\\n\\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\\n\\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\\n\\tvec4 r = roughness * c0 + c1;\\n\\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\\n\\tvec2 AB = 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 = normalize( incidentLight.direction + geometry.viewDir );\\n\\tfloat dotNH = saturate( dot( geometry.normal, halfDir ) );\\n\\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\\n\\tvec3 F = F_Schlick( specularColor, dotLH );\\n\\tfloat G = G_BlinnPhong_Implicit( );\\n\\tfloat D = 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 = dFdx( vUv );\\n\\t\\tvec2 dSTdy = dFdy( vUv );\\n\\t\\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\\n\\t\\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\\n\\t\\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\\n\\t\\treturn vec2( dBx, dBy );\\n\\t}\\n\\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy ) {\\n\\t\\tvec3 vSigmaX = dFdx( surf_pos );\\n\\t\\tvec3 vSigmaY = dFdy( surf_pos );\\n\\t\\tvec3 vN = surf_norm;\\n\\t\\tvec3 R1 = cross( vSigmaY, vN );\\n\\t\\tvec3 R2 = cross( vN, vSigmaX );\\n\\t\\tfloat fDet = dot( vSigmaX, R1 );\\n\\t\\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\\n\\t\\treturn normalize( abs( fDet ) * surf_norm - vGrad );\\n\\t}\\n#endif\\n\",clipping_planes_fragment:\"#if NUM_CLIPPING_PLANES > 0\\n\\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; ++ i ) {\\n\\t\\tvec4 plane = clippingPlanes[ i ];\\n\\t\\tif ( dot( vViewPosition, plane.xyz ) > plane.w ) discard;\\n\\t}\\n\\t\\t\\n\\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\\n\\t\\tbool clipped = true;\\n\\t\\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; ++ i ) {\\n\\t\\t\\tvec4 plane = clippingPlanes[ i ];\\n\\t\\t\\tclipped = ( dot( vViewPosition, plane.xyz ) > plane.w ) && clipped;\\n\\t\\t}\\n\\t\\tif ( clipped ) discard;\\n\\t\\n\\t#endif\\n#endif\\n\",clipping_planes_pars_fragment:\"#if NUM_CLIPPING_PLANES > 0\\n\\t#if ! defined( PHYSICAL ) && ! defined( PHONG )\\n\\t\\tvarying vec3 vViewPosition;\\n\\t#endif\\n\\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\\n#endif\\n\",clipping_planes_pars_vertex:\"#if NUM_CLIPPING_PLANES > 0 && ! defined( PHYSICAL ) && ! defined( PHONG )\\n\\tvarying vec3 vViewPosition;\\n#endif\\n\",clipping_planes_vertex:\"#if NUM_CLIPPING_PLANES > 0 && ! defined( PHYSICAL ) && ! defined( PHONG )\\n\\tvViewPosition = - mvPosition.xyz;\\n#endif\\n\",color_fragment:\"#ifdef USE_COLOR\\n\\tdiffuseColor.rgb *= 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 = 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 = 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 = 12.9898, b = 78.233, c = 43758.5453;\\n\\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\\n\\treturn fract(sin(sn) * c);\\n}\\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 = 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 transpose( const in mat3 v ) {\\n\\tmat3 tmp;\\n\\ttmp[0] = vec3(v[0].x, v[1].x, v[2].x);\\n\\ttmp[1] = vec3(v[0].y, v[1].y, v[2].y);\\n\\ttmp[2] = vec3(v[0].z, v[1].z, v[2].z);\\n\\treturn tmp;\\n}\\n\",\ncube_uv_reflection_fragment:\"#ifdef ENVMAP_TYPE_CUBE_UV\\n#define cubeUV_textureSize (1024.0)\\nint getFaceFromDirection(vec3 direction) {\\n\\tvec3 absDirection = abs(direction);\\n\\tint face = -1;\\n\\tif( absDirection.x > absDirection.z ) {\\n\\t\\tif(absDirection.x > absDirection.y )\\n\\t\\t\\tface = direction.x > 0.0 ? 0 : 3;\\n\\t\\telse\\n\\t\\t\\tface = direction.y > 0.0 ? 1 : 4;\\n\\t}\\n\\telse {\\n\\t\\tif(absDirection.z > absDirection.y )\\n\\t\\t\\tface = direction.z > 0.0 ? 2 : 5;\\n\\t\\telse\\n\\t\\t\\tface = direction.y > 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 = exp2(cubeUV_maxLods1 - roughnessLevel);\\n\\tfloat dxRoughness = dFdx(roughness);\\n\\tfloat dyRoughness = dFdy(roughness);\\n\\tvec3 dx = dFdx( vec * scale * dxRoughness );\\n\\tvec3 dy = dFdy( vec * scale * dyRoughness );\\n\\tfloat d = max( dot( dx, dx ), dot( dy, dy ) );\\n\\td = clamp(d, 1.0, cubeUV_rangeClamp);\\n\\tfloat mipLevel = 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 = roughnessLevel > cubeUV_maxLods2 - 3.0 ? 0.0 : mipLevel;\\n\\tfloat a = 16.0 * cubeUV_rcpTextureSize;\\n\\tvec2 exp2_packed = exp2( vec2( roughnessLevel, mipLevel ) );\\n\\tvec2 rcp_exp2_packed = vec2( 1.0 ) / exp2_packed;\\n\\tfloat powScale = exp2_packed.x * exp2_packed.y;\\n\\tfloat scale = rcp_exp2_packed.x * rcp_exp2_packed.y * 0.25;\\n\\tfloat mipOffset = 0.75*(1.0 - rcp_exp2_packed.y) * rcp_exp2_packed.x;\\n\\tbool bRes = mipLevel == 0.0;\\n\\tscale = bRes && (scale < a) ? a : scale;\\n\\tvec3 r;\\n\\tvec2 offset;\\n\\tint face = getFaceFromDirection(direction);\\n\\tfloat rcpPowScale = 1.0 / powScale;\\n\\tif( face == 0) {\\n\\t\\tr = vec3(direction.x, -direction.z, direction.y);\\n\\t\\toffset = vec2(0.0+mipOffset,0.75 * rcpPowScale);\\n\\t\\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\\n\\t}\\n\\telse if( face == 1) {\\n\\t\\tr = vec3(direction.y, direction.x, direction.z);\\n\\t\\toffset = vec2(scale+mipOffset, 0.75 * rcpPowScale);\\n\\t\\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\\n\\t}\\n\\telse if( face == 2) {\\n\\t\\tr = vec3(direction.z, direction.x, direction.y);\\n\\t\\toffset = vec2(2.0*scale+mipOffset, 0.75 * rcpPowScale);\\n\\t\\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\\n\\t}\\n\\telse if( face == 3) {\\n\\t\\tr = vec3(direction.x, direction.z, direction.y);\\n\\t\\toffset = vec2(0.0+mipOffset,0.5 * rcpPowScale);\\n\\t\\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\\n\\t}\\n\\telse if( face == 4) {\\n\\t\\tr = vec3(direction.y, direction.x, -direction.z);\\n\\t\\toffset = vec2(scale+mipOffset, 0.5 * rcpPowScale);\\n\\t\\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\\n\\t}\\n\\telse {\\n\\t\\tr = vec3(direction.z, -direction.x, direction.y);\\n\\t\\toffset = vec2(2.0*scale+mipOffset, 0.5 * rcpPowScale);\\n\\t\\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\\n\\t}\\n\\tr = normalize(r);\\n\\tfloat texelOffset = 0.5 * cubeUV_rcpTextureSize;\\n\\tvec2 s = ( r.yz / abs( r.x ) + vec2( 1.0 ) ) * 0.5;\\n\\tvec2 base = 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(vec3 reflectedDirection, float roughness ) {\\n\\tfloat roughnessVal = roughness* cubeUV_maxLods3;\\n\\tfloat r1 = floor(roughnessVal);\\n\\tfloat r2 = r1 + 1.0;\\n\\tfloat t = fract(roughnessVal);\\n\\tvec2 mipInfo = MipLevelInfo(reflectedDirection, r1, roughness);\\n\\tfloat s = mipInfo.y;\\n\\tfloat level0 = mipInfo.x;\\n\\tfloat level1 = level0 + 1.0;\\n\\tlevel1 = level1 > 5.0 ? 5.0 : level1;\\n\\tlevel0 += min( floor( s + 0.5 ), 5.0 );\\n\\tvec2 uv_10 = getCubeUV(reflectedDirection, r1, level0);\\n\\tvec4 color10 = envMapTexelToLinear(texture2D(envMap, uv_10));\\n\\tvec2 uv_20 = getCubeUV(reflectedDirection, r2, level0);\\n\\tvec4 color20 = envMapTexelToLinear(texture2D(envMap, uv_20));\\n\\tvec4 result = mix(color10, color20, t);\\n\\treturn vec4(result.rgb, 1.0);\\n}\\n#endif\\n\",defaultnormal_vertex:\"#ifdef FLIP_SIDED\\n\\tobjectNormal = -objectNormal;\\n#endif\\nvec3 transformedNormal = normalMatrix * objectNormal;\\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 += normal * ( texture2D( displacementMap, uv ).x * displacementScale + displacementBias );\\n#endif\\n\",emissivemap_fragment:\"#ifdef USE_EMISSIVEMAP\\n\\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\\n\\temissiveColor.rgb = emissiveMapTexelToLinear( emissiveColor ).rgb;\\n\\ttotalEmissiveRadiance *= emissiveColor.rgb;\\n#endif\\n\",emissivemap_pars_fragment:\"#ifdef USE_EMISSIVEMAP\\n\\tuniform sampler2D emissiveMap;\\n#endif\\n\",encodings_fragment:\" gl_FragColor = 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.xyz, vec3( gammaFactor ) ), value.w );\\n}\\nvec4 LinearToGamma( in vec4 value, in float gammaFactor ) {\\n\\treturn vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );\\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.w );\\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.w );\\n}\\nvec4 RGBEToLinear( in vec4 value ) {\\n\\treturn vec4( value.rgb * exp2( value.a * 255.0 - 128.0 ), 1.0 );\\n}\\nvec4 LinearToRGBE( in vec4 value ) {\\n\\tfloat maxComponent = max( max( value.r, value.g ), value.b );\\n\\tfloat fExp = clamp( ceil( log2( maxComponent ) ), -128.0, 127.0 );\\n\\treturn vec4( value.rgb / exp2( fExp ), ( fExp + 128.0 ) / 255.0 );\\n}\\nvec4 RGBMToLinear( in vec4 value, in float maxRange ) {\\n\\treturn vec4( value.xyz * value.w * maxRange, 1.0 );\\n}\\nvec4 LinearToRGBM( in vec4 value, in float maxRange ) {\\n\\tfloat maxRGB = max( value.x, max( value.g, value.b ) );\\n\\tfloat M = clamp( maxRGB / maxRange, 0.0, 1.0 );\\n\\tM = ceil( M * 255.0 ) / 255.0;\\n\\treturn vec4( value.rgb / ( M * maxRange ), M );\\n}\\nvec4 RGBDToLinear( in vec4 value, in float maxRange ) {\\n\\treturn vec4( value.rgb * ( ( maxRange / 255.0 ) / value.a ), 1.0 );\\n}\\nvec4 LinearToRGBD( in vec4 value, in float maxRange ) {\\n\\tfloat maxRGB = max( value.x, max( value.g, value.b ) );\\n\\tfloat D = max( maxRange / maxRGB, 1.0 );\\n\\tD = min( floor( D ) / 255.0, 1.0 );\\n\\treturn vec4( value.rgb * ( D * ( 255.0 / maxRange ) ), D );\\n}\\nconst mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );\\nvec4 LinearToLogLuv( in vec4 value ) {\\n\\tvec3 Xp_Y_XYZp = value.rgb * cLogLuvM;\\n\\tXp_Y_XYZp = max(Xp_Y_XYZp, vec3(1e-6, 1e-6, 1e-6));\\n\\tvec4 vResult;\\n\\tvResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;\\n\\tfloat Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0;\\n\\tvResult.w = fract(Le);\\n\\tvResult.z = (Le - (floor(vResult.w*255.0))/255.0)/255.0;\\n\\treturn vResult;\\n}\\nconst mat3 cLogLuvInverseM = mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 );\\nvec4 LogLuvToLinear( in vec4 value ) {\\n\\tfloat Le = value.z * 255.0 + value.w;\\n\\tvec3 Xp_Y_XYZp;\\n\\tXp_Y_XYZp.y = exp2((Le - 127.0) / 2.0);\\n\\tXp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;\\n\\tXp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;\\n\\tvec3 vRGB = 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 = normalize( vWorldPosition - cameraPosition );\\n\\t\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvec3 reflectVec = reflect( cameraToVertex, worldNormal );\\n\\t\\t#else\\n\\t\\t\\tvec3 reflectVec = refract( cameraToVertex, worldNormal, refractionRatio );\\n\\t\\t#endif\\n\\t#else\\n\\t\\tvec3 reflectVec = vReflect;\\n\\t#endif\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tvec4 envColor = textureCube( envMap, flipNormal * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\\n\\t#elif defined( ENVMAP_TYPE_EQUIREC )\\n\\t\\tvec2 sampleUV;\\n\\t\\tsampleUV.y = saturate( flipNormal * reflectVec.y * 0.5 + 0.5 );\\n\\t\\tsampleUV.x = atan( flipNormal * reflectVec.z, flipNormal * reflectVec.x ) * RECIPROCAL_PI2 + 0.5;\\n\\t\\tvec4 envColor = texture2D( envMap, sampleUV );\\n\\t#elif defined( ENVMAP_TYPE_SPHERE )\\n\\t\\tvec3 reflectView = flipNormal * normalize( ( viewMatrix * vec4( reflectVec, 0.0 ) ).xyz + vec3( 0.0, 0.0, 1.0 ) );\\n\\t\\tvec4 envColor = texture2D( envMap, reflectView.xy * 0.5 + 0.5 );\\n\\t#else\\n\\t\\tvec4 envColor = vec4( 0.0 );\\n\\t#endif\\n\\tenvColor = envMapTexelToLinear( envColor );\\n\\t#ifdef ENVMAP_BLENDING_MULTIPLY\\n\\t\\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\\n\\t#elif defined( ENVMAP_BLENDING_MIX )\\n\\t\\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\\n\\t#elif defined( ENVMAP_BLENDING_ADD )\\n\\t\\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\\n\\t#endif\\n#endif\\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 ) && ( 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\\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_vertex:\"#ifdef USE_ENVMAP\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\\n\\t\\tvWorldPosition = worldPosition.xyz;\\n\\t#else\\n\\t\\tvec3 cameraToVertex = normalize( worldPosition.xyz - cameraPosition );\\n\\t\\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvReflect = reflect( cameraToVertex, worldNormal );\\n\\t\\t#else\\n\\t\\t\\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\\n\\t\\t#endif\\n\\t#endif\\n#endif\\n\",fog_vertex:\"\\n#ifdef USE_FOG\\nfogDepth = -mvPosition.z;\\n#endif\",fog_pars_vertex:\"#ifdef USE_FOG\\n varying float fogDepth;\\n#endif\\n\",fog_fragment:\"#ifdef USE_FOG\\n\\t#ifdef FOG_EXP2\\n\\t\\tfloat fogFactor = whiteCompliment( exp2( - fogDensity * fogDensity * fogDepth * fogDepth * LOG2 ) );\\n\\t#else\\n\\t\\tfloat fogFactor = smoothstep( fogNear, fogFar, fogDepth );\\n\\t#endif\\n\\tgl_FragColor.rgb = 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 = dot( normal, lightDirection );\\n\\t\\tvec2 coord = 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 < 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 += 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 = vec3( 1.0 );\\nGeometricContext geometry;\\ngeometry.position = mvPosition.xyz;\\ngeometry.normal = normalize( transformedNormal );\\ngeometry.viewDir = normalize( -mvPosition.xyz );\\nGeometricContext backGeometry;\\nbackGeometry.position = geometry.position;\\nbackGeometry.normal = -geometry.normal;\\nbackGeometry.viewDir = geometry.viewDir;\\nvLightFront = vec3( 0.0 );\\n#ifdef DOUBLE_SIDED\\n\\tvLightBack = vec3( 0.0 );\\n#endif\\nIncidentLight directLight;\\nfloat dotNL;\\nvec3 directLightColor_Diffuse;\\n#if NUM_POINT_LIGHTS > 0\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tgetPointDirectLightIrradiance( pointLights[ i ], geometry, directLight );\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = PI * directLight.color;\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\\n\\t\\t#endif\\n\\t}\\n#endif\\n#if NUM_SPOT_LIGHTS > 0\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tgetSpotDirectLightIrradiance( spotLights[ i ], geometry, directLight );\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = PI * directLight.color;\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\\n\\t\\t#endif\\n\\t}\\n#endif\\n#if NUM_DIR_LIGHTS > 0\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tgetDirectionalDirectLightIrradiance( directionalLights[ i ], geometry, directLight );\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = PI * directLight.color;\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\\n\\t\\t#endif\\n\\t}\\n#endif\\n#if NUM_HEMI_LIGHTS > 0\\n\\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\n\\t\\tvLightFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry );\\n\\t\\t#endif\\n\\t}\\n#endif\\n\",lights_pars:\"uniform vec3 ambientLightColor;\\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\\n\\tvec3 irradiance = ambientLightColor;\\n\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\tirradiance *= PI;\\n\\t#endif\\n\\treturn irradiance;\\n}\\n#if NUM_DIR_LIGHTS > 0\\n\\tstruct DirectionalLight {\\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 DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\\n\\tvoid getDirectionalDirectLightIrradiance( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight directLight ) {\\n\\t\\tdirectLight.color = directionalLight.color;\\n\\t\\tdirectLight.direction = directionalLight.direction;\\n\\t\\tdirectLight.visible = true;\\n\\t}\\n#endif\\n#if NUM_POINT_LIGHTS > 0\\n\\tstruct PointLight {\\n\\t\\tvec3 position;\\n\\t\\tvec3 color;\\n\\t\\tfloat distance;\\n\\t\\tfloat decay;\\n\\t\\tint shadow;\\n\\t\\tfloat shadowBias;\\n\\t\\tfloat shadowRadius;\\n\\t\\tvec2 shadowMapSize;\\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 = pointLight.position - geometry.position;\\n\\t\\tdirectLight.direction = normalize( lVector );\\n\\t\\tfloat lightDistance = length( lVector );\\n\\t\\tdirectLight.color = pointLight.color;\\n\\t\\tdirectLight.color *= punctualLightIntensityToIrradianceFactor( lightDistance, pointLight.distance, pointLight.decay );\\n\\t\\tdirectLight.visible = ( directLight.color != vec3( 0.0 ) );\\n\\t}\\n#endif\\n#if NUM_SPOT_LIGHTS > 0\\n\\tstruct SpotLight {\\n\\t\\tvec3 position;\\n\\t\\tvec3 direction;\\n\\t\\tvec3 color;\\n\\t\\tfloat distance;\\n\\t\\tfloat decay;\\n\\t\\tfloat coneCos;\\n\\t\\tfloat penumbraCos;\\n\\t\\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 = spotLight.position - geometry.position;\\n\\t\\tdirectLight.direction = normalize( lVector );\\n\\t\\tfloat lightDistance = length( lVector );\\n\\t\\tfloat angleCos = dot( directLight.direction, spotLight.direction );\\n\\t\\tif ( angleCos > spotLight.coneCos ) {\\n\\t\\t\\tfloat spotEffect = smoothstep( spotLight.coneCos, spotLight.penumbraCos, angleCos );\\n\\t\\t\\tdirectLight.color = spotLight.color;\\n\\t\\t\\tdirectLight.color *= spotEffect * punctualLightIntensityToIrradianceFactor( lightDistance, spotLight.distance, spotLight.decay );\\n\\t\\t\\tdirectLight.visible = true;\\n\\t\\t} else {\\n\\t\\t\\tdirectLight.color = vec3( 0.0 );\\n\\t\\t\\tdirectLight.visible = false;\\n\\t\\t}\\n\\t}\\n#endif\\n#if NUM_RECT_AREA_LIGHTS > 0\\n\\tstruct RectAreaLight {\\n\\t\\tvec3 color;\\n\\t\\tvec3 position;\\n\\t\\tvec3 halfWidth;\\n\\t\\tvec3 halfHeight;\\n\\t};\\n\\tuniform sampler2D ltcMat;\\tuniform sampler2D ltcMag;\\n\\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\\n#endif\\n#if NUM_HEMI_LIGHTS > 0\\n\\tstruct HemisphereLight {\\n\\t\\tvec3 direction;\\n\\t\\tvec3 skyColor;\\n\\t\\tvec3 groundColor;\\n\\t};\\n\\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\\n\\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in GeometricContext geometry ) {\\n\\t\\tfloat dotNL = dot( geometry.normal, hemiLight.direction );\\n\\t\\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\\n\\t\\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\\n\\t\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\t\\tirradiance *= PI;\\n\\t\\t#endif\\n\\t\\treturn irradiance;\\n\\t}\\n#endif\\n#if defined( USE_ENVMAP ) && defined( PHYSICAL )\\n\\tvec3 getLightProbeIndirectIrradiance( const in GeometricContext geometry, const in int maxMIPLevel ) {\\n\\t\\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\t\\tvec3 queryVec = vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\\n\\t\\t\\t#ifdef TEXTURE_LOD_EXT\\n\\t\\t\\t\\tvec4 envMapColor = textureCubeLodEXT( envMap, queryVec, float( maxMIPLevel ) );\\n\\t\\t\\t#else\\n\\t\\t\\t\\tvec4 envMapColor = textureCube( envMap, queryVec, float( maxMIPLevel ) );\\n\\t\\t\\t#endif\\n\\t\\t\\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\\n\\t\\t#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\t\\tvec3 queryVec = vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\\n\\t\\t\\tvec4 envMapColor = textureCubeUV( queryVec, 1.0 );\\n\\t\\t#else\\n\\t\\t\\tvec4 envMapColor = 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 = float( maxMIPLevel );\\n\\t\\tfloat desiredMIPLevel = 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 = reflect( -geometry.viewDir, geometry.normal );\\n\\t\\t#else\\n\\t\\t\\tvec3 reflectVec = refract( -geometry.viewDir, geometry.normal, refractionRatio );\\n\\t\\t#endif\\n\\t\\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\\n\\t\\tfloat specularMIPLevel = getSpecularMIPLevel( blinnShininessExponent, maxMIPLevel );\\n\\t\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\t\\tvec3 queryReflectVec = vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\\n\\t\\t\\t#ifdef TEXTURE_LOD_EXT\\n\\t\\t\\t\\tvec4 envMapColor = textureCubeLodEXT( envMap, queryReflectVec, specularMIPLevel );\\n\\t\\t\\t#else\\n\\t\\t\\t\\tvec4 envMapColor = textureCube( envMap, queryReflectVec, specularMIPLevel );\\n\\t\\t\\t#endif\\n\\t\\t\\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\\n\\t\\t#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\t\\tvec3 queryReflectVec = vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\\n\\t\\t\\tvec4 envMapColor = textureCubeUV(queryReflectVec, BlinnExponentToGGXRoughness(blinnShininessExponent));\\n\\t\\t#elif defined( ENVMAP_TYPE_EQUIREC )\\n\\t\\t\\tvec2 sampleUV;\\n\\t\\t\\tsampleUV.y = saturate( reflectVec.y * 0.5 + 0.5 );\\n\\t\\t\\tsampleUV.x = atan( reflectVec.z, reflectVec.x ) * RECIPROCAL_PI2 + 0.5;\\n\\t\\t\\t#ifdef TEXTURE_LOD_EXT\\n\\t\\t\\t\\tvec4 envMapColor = texture2DLodEXT( envMap, sampleUV, specularMIPLevel );\\n\\t\\t\\t#else\\n\\t\\t\\t\\tvec4 envMapColor = texture2D( envMap, sampleUV, specularMIPLevel );\\n\\t\\t\\t#endif\\n\\t\\t\\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\\n\\t\\t#elif defined( ENVMAP_TYPE_SPHERE )\\n\\t\\t\\tvec3 reflectView = 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 = texture2DLodEXT( envMap, reflectView.xy * 0.5 + 0.5, specularMIPLevel );\\n\\t\\t\\t#else\\n\\t\\t\\t\\tvec4 envMapColor = texture2D( envMap, reflectView.xy * 0.5 + 0.5, specularMIPLevel );\\n\\t\\t\\t#endif\\n\\t\\t\\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\\n\\t\\t#endif\\n\\t\\treturn envMapColor.rgb * envMapIntensity;\\n\\t}\\n#endif\\n\",lights_phong_fragment:\"BlinnPhongMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\\nmaterial.specularColor = specular;\\nmaterial.specularShininess = shininess;\\nmaterial.specularStrength = 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 = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\\n\\t#else\\n\\t\\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\\n\\t\\tvec3 irradiance = dotNL * directLight.color;\\n\\t#endif\\n\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\tirradiance *= PI;\\n\\t#endif\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n\\treflectedLight.directSpecular += 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 += 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 = diffuseColor.rgb * ( 1.0 - metalnessFactor );\\nmaterial.specularRoughness = clamp( roughnessFactor, 0.04, 1.0 );\\n#ifdef STANDARD\\n\\tmaterial.specularColor = mix( vec3( DEFAULT_SPECULAR_COEFFICIENT ), diffuseColor.rgb, metalnessFactor );\\n#else\\n\\tmaterial.specularColor = mix( vec3( MAXIMUM_SPECULAR_COEFFICIENT * pow2( reflectivity ) ), diffuseColor.rgb, metalnessFactor );\\n\\tmaterial.clearCoat = saturate( clearCoat );\\tmaterial.clearCoatRoughness = 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 > 0\\n\\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\t\\tvec3 normal = geometry.normal;\\n\\t\\tvec3 viewDir = geometry.viewDir;\\n\\t\\tvec3 position = geometry.position;\\n\\t\\tvec3 lightPos = rectAreaLight.position;\\n\\t\\tvec3 halfWidth = rectAreaLight.halfWidth;\\n\\t\\tvec3 halfHeight = rectAreaLight.halfHeight;\\n\\t\\tvec3 lightColor = rectAreaLight.color;\\n\\t\\tfloat roughness = material.specularRoughness;\\n\\t\\tvec3 rectCoords[ 4 ];\\n\\t\\trectCoords[ 0 ] = lightPos - halfWidth - halfHeight;\\t\\trectCoords[ 1 ] = lightPos + halfWidth - halfHeight;\\n\\t\\trectCoords[ 2 ] = lightPos + halfWidth + halfHeight;\\n\\t\\trectCoords[ 3 ] = lightPos - halfWidth + halfHeight;\\n\\t\\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\\n\\t\\tfloat norm = texture2D( ltcMag, uv ).a;\\n\\t\\tvec4 t = texture2D( ltcMat, uv );\\n\\t\\tmat3 mInv = mat3(\\n\\t\\t\\tvec3( 1, 0, t.y ),\\n\\t\\t\\tvec3( 0, t.z, 0 ),\\n\\t\\t\\tvec3( t.w, 0, t.x )\\n\\t\\t);\\n\\t\\treflectedLight.directSpecular += lightColor * material.specularColor * norm * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\\n\\t\\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1 ), rectCoords );\\n\\t}\\n#endif\\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\tirradiance *= PI;\\n\\t#endif\\n\\t#ifndef STANDARD\\n\\t\\tfloat clearCoatDHR = material.clearCoat * clearCoatDHRApprox( material.clearCoatRoughness, dotNL );\\n\\t#else\\n\\t\\tfloat clearCoatDHR = 0.0;\\n\\t#endif\\n\\treflectedLight.directSpecular += ( 1.0 - clearCoatDHR ) * irradiance * BRDF_Specular_GGX( directLight, geometry, material.specularColor, material.specularRoughness );\\n\\treflectedLight.directDiffuse += ( 1.0 - clearCoatDHR ) * irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n\\t#ifndef STANDARD\\n\\t\\treflectedLight.directSpecular += 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 += 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 = saturate( dot( geometry.normal, geometry.viewDir ) );\\n\\t\\tfloat dotNL = dotNV;\\n\\t\\tfloat clearCoatDHR = material.clearCoat * clearCoatDHRApprox( material.clearCoatRoughness, dotNL );\\n\\t#else\\n\\t\\tfloat clearCoatDHR = 0.0;\\n\\t#endif\\n\\treflectedLight.indirectSpecular += ( 1.0 - clearCoatDHR ) * radiance * BRDF_Specular_GGX_Environment( geometry, material.specularColor, material.specularRoughness );\\n\\t#ifndef STANDARD\\n\\t\\treflectedLight.indirectSpecular += 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\",\nlights_template:\"\\nGeometricContext geometry;\\ngeometry.position = - vViewPosition;\\ngeometry.normal = normal;\\ngeometry.viewDir = normalize( vViewPosition );\\nIncidentLight directLight;\\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tPointLight pointLight;\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tpointLight = pointLights[ i ];\\n\\t\\tgetPointDirectLightIrradiance( pointLight, geometry, directLight );\\n\\t\\t#ifdef USE_SHADOWMAP\\n\\t\\tdirectLight.color *= all( bvec2( pointLight.shadow, directLight.visible ) ) ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\t}\\n#endif\\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tSpotLight spotLight;\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tspotLight = spotLights[ i ];\\n\\t\\tgetSpotDirectLightIrradiance( spotLight, geometry, directLight );\\n\\t\\t#ifdef USE_SHADOWMAP\\n\\t\\tdirectLight.color *= 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 > 0 ) && defined( RE_Direct )\\n\\tDirectionalLight directionalLight;\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tdirectionalLight = directionalLights[ i ];\\n\\t\\tgetDirectionalDirectLightIrradiance( directionalLight, geometry, directLight );\\n\\t\\t#ifdef USE_SHADOWMAP\\n\\t\\tdirectLight.color *= 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 > 0 ) && defined( RE_Direct_RectArea )\\n\\tRectAreaLight rectAreaLight;\\n\\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\\n\\t\\trectAreaLight = rectAreaLights[ i ];\\n\\t\\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\\n\\t}\\n#endif\\n#if defined( RE_IndirectDiffuse )\\n\\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\\n\\t#ifdef USE_LIGHTMAP\\n\\t\\tvec3 lightMapIrradiance = texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\\n\\t\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\t\\tlightMapIrradiance *= PI;\\n\\t\\t#endif\\n\\t\\tirradiance += lightMapIrradiance;\\n\\t#endif\\n\\t#if ( NUM_HEMI_LIGHTS > 0 )\\n\\t\\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\n\\t\\t\\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\\n\\t\\t}\\n\\t#endif\\n\\t#if defined( USE_ENVMAP ) && defined( PHYSICAL ) && defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\tirradiance += getLightProbeIndirectIrradiance( geometry, 8 );\\n\\t#endif\\n\\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\\n#endif\\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\\n\\tvec3 radiance = getLightProbeIndirectRadiance( geometry, Material_BlinnShininessExponent( material ), 8 );\\n\\t#ifndef STANDARD\\n\\t\\tvec3 clearCoatRadiance = getLightProbeIndirectRadiance( geometry, Material_ClearCoat_BlinnShininessExponent( material ), 8 );\\n\\t#else\\n\\t\\tvec3 clearCoatRadiance = vec3( 0.0 );\\n\\t#endif\\n\\tRE_IndirectSpecular( radiance, clearCoatRadiance, geometry, material, reflectedLight );\\n#endif\\n\",logdepthbuf_fragment:\"#if defined(USE_LOGDEPTHBUF) && defined(USE_LOGDEPTHBUF_EXT)\\n\\tgl_FragDepthEXT = log2(vFragDepth) * logDepthBufFC * 0.5;\\n#endif\",logdepthbuf_pars_fragment:\"#ifdef USE_LOGDEPTHBUF\\n\\tuniform float logDepthBufFC;\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\t\\tvarying float vFragDepth;\\n\\t#endif\\n#endif\\n\",logdepthbuf_pars_vertex:\"#ifdef USE_LOGDEPTHBUF\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\t\\tvarying float vFragDepth;\\n\\t#endif\\n\\tuniform float logDepthBufFC;\\n#endif\",logdepthbuf_vertex:\"#ifdef USE_LOGDEPTHBUF\\n\\tgl_Position.z = log2(max( EPSILON, gl_Position.w + 1.0 )) * logDepthBufFC;\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\t\\tvFragDepth = 1.0 + gl_Position.w;\\n\\t#else\\n\\t\\tgl_Position.z = (gl_Position.z - 1.0) * gl_Position.w;\\n\\t#endif\\n#endif\\n\",map_fragment:\"#ifdef USE_MAP\\n\\tvec4 texelColor = texture2D( map, vUv );\\n\\ttexelColor = mapTexelToLinear( texelColor );\\n\\tdiffuseColor *= texelColor;\\n#endif\\n\",map_pars_fragment:\"#ifdef USE_MAP\\n\\tuniform sampler2D map;\\n#endif\\n\",map_particle_fragment:\"#ifdef USE_MAP\\n\\tvec4 mapTexel = texture2D( map, vec2( gl_PointCoord.x, 1.0 - gl_PointCoord.y ) * offsetRepeat.zw + offsetRepeat.xy );\\n\\tdiffuseColor *= mapTexelToLinear( mapTexel );\\n#endif\\n\",map_particle_pars_fragment:\"#ifdef USE_MAP\\n\\tuniform vec4 offsetRepeat;\\n\\tuniform sampler2D map;\\n#endif\\n\",metalnessmap_fragment:\"float metalnessFactor = metalness;\\n#ifdef USE_METALNESSMAP\\n\\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\\n\\tmetalnessFactor *= texelMetalness.b;\\n#endif\\n\",metalnessmap_pars_fragment:\"#ifdef USE_METALNESSMAP\\n\\tuniform sampler2D metalnessMap;\\n#endif\",morphnormal_vertex:\"#ifdef USE_MORPHNORMALS\\n\\tobjectNormal += ( morphNormal0 - normal ) * morphTargetInfluences[ 0 ];\\n\\tobjectNormal += ( morphNormal1 - normal ) * morphTargetInfluences[ 1 ];\\n\\tobjectNormal += ( morphNormal2 - normal ) * morphTargetInfluences[ 2 ];\\n\\tobjectNormal += ( 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 += ( morphTarget0 - position ) * morphTargetInfluences[ 0 ];\\n\\ttransformed += ( morphTarget1 - position ) * morphTargetInfluences[ 1 ];\\n\\ttransformed += ( morphTarget2 - position ) * morphTargetInfluences[ 2 ];\\n\\ttransformed += ( morphTarget3 - position ) * morphTargetInfluences[ 3 ];\\n\\t#ifndef USE_MORPHNORMALS\\n\\ttransformed += ( morphTarget4 - position ) * morphTargetInfluences[ 4 ];\\n\\ttransformed += ( morphTarget5 - position ) * morphTargetInfluences[ 5 ];\\n\\ttransformed += ( morphTarget6 - position ) * morphTargetInfluences[ 6 ];\\n\\ttransformed += ( morphTarget7 - position ) * morphTargetInfluences[ 7 ];\\n\\t#endif\\n#endif\\n\",normal_flip:\"#ifdef DOUBLE_SIDED\\n\\tfloat flipNormal = ( float( gl_FrontFacing ) * 2.0 - 1.0 );\\n#else\\n\\tfloat flipNormal = 1.0;\\n#endif\\n\",normal_fragment:\"#ifdef FLAT_SHADED\\n\\tvec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) );\\n\\tvec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) );\\n\\tvec3 normal = normalize( cross( fdx, fdy ) );\\n#else\\n\\tvec3 normal = normalize( vNormal ) * flipNormal;\\n#endif\\n#ifdef USE_NORMALMAP\\n\\tnormal = perturbNormal2Arb( -vViewPosition, normal );\\n#elif defined( USE_BUMPMAP )\\n\\tnormal = perturbNormalArb( -vViewPosition, normal, dHdxy_fwd() );\\n#endif\\n\",normalmap_pars_fragment:\"#ifdef USE_NORMALMAP\\n\\tuniform sampler2D normalMap;\\n\\tuniform vec2 normalScale;\\n\\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm ) {\\n\\t\\tvec3 q0 = dFdx( eye_pos.xyz );\\n\\t\\tvec3 q1 = dFdy( eye_pos.xyz );\\n\\t\\tvec2 st0 = dFdx( vUv.st );\\n\\t\\tvec2 st1 = dFdy( vUv.st );\\n\\t\\tvec3 S = normalize( q0 * st1.t - q1 * st0.t );\\n\\t\\tvec3 T = normalize( -q0 * st1.s + q1 * st0.s );\\n\\t\\tvec3 N = normalize( surf_norm );\\n\\t\\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\\n\\t\\tmapN.xy = normalScale * mapN.xy;\\n\\t\\tmat3 tsn = mat3( S, T, N );\\n\\t\\treturn normalize( tsn * mapN );\\n\\t}\\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 1.0 - 2.0 * rgb.xyz;\\n}\\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\\nconst float ShiftRight8 = 1. / 256.;\\nvec4 packDepthToRGBA( const in float v ) {\\n\\tvec4 r = vec4( fract( v * PackFactors ), v );\\n\\tr.yzw -= r.xyz * ShiftRight8;\\treturn r * PackUpscale;\\n}\\nfloat unpackRGBAToDepth( const in vec4 v ) {\\n\\treturn dot( v, UnpackFactors );\\n}\\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 *= gl_FragColor.a;\\n#endif\\n\",project_vertex:\"#ifdef USE_SKINNING\\n\\tvec4 mvPosition = modelViewMatrix * skinned;\\n#else\\n\\tvec4 mvPosition = modelViewMatrix * vec4( transformed, 1.0 );\\n#endif\\ngl_Position = projectionMatrix * mvPosition;\\n\",dithering_fragment:\"#if defined( DITHERING )\\n gl_FragColor.rgb = dithering( gl_FragColor.rgb );\\n#endif\\n\",dithering_pars_fragment:\"#if defined( DITHERING )\\n\\tvec3 dithering( vec3 color ) {\\n\\t\\tfloat grid_position = rand( gl_FragCoord.xy );\\n\\t\\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\\n\\t\\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\\n\\t\\treturn color + dither_shift_RGB;\\n\\t}\\n#endif\\n\",roughnessmap_fragment:\"float roughnessFactor = roughness;\\n#ifdef USE_ROUGHNESSMAP\\n\\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\\n\\troughnessFactor *= 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 > 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 > 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 > 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 = vec2( 0.0, 1.0 );\\n\\t\\tvec2 texelSize = vec2( 1.0 ) / size;\\n\\t\\tvec2 centroidUV = floor( uv * size + 0.5 ) / size;\\n\\t\\tfloat lb = texture2DCompare( depths, centroidUV + texelSize * offset.xx, compare );\\n\\t\\tfloat lt = texture2DCompare( depths, centroidUV + texelSize * offset.xy, compare );\\n\\t\\tfloat rb = texture2DCompare( depths, centroidUV + texelSize * offset.yx, compare );\\n\\t\\tfloat rt = texture2DCompare( depths, centroidUV + texelSize * offset.yy, compare );\\n\\t\\tvec2 f = fract( uv * size + 0.5 );\\n\\t\\tfloat a = mix( lb, lt, f.y );\\n\\t\\tfloat b = mix( rb, rt, f.y );\\n\\t\\tfloat c = 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\\tshadowCoord.xyz /= shadowCoord.w;\\n\\t\\tshadowCoord.z += shadowBias;\\n\\t\\tbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\\n\\t\\tbool inFrustum = all( inFrustumVec );\\n\\t\\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\\n\\t\\tbool frustumTest = all( frustumTestVec );\\n\\t\\tif ( frustumTest ) {\\n\\t\\t#if defined( SHADOWMAP_TYPE_PCF )\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\\t\\t\\tfloat dx0 = - texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy0 = - texelSize.y * shadowRadius;\\n\\t\\t\\tfloat dx1 = + texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy1 = + texelSize.y * shadowRadius;\\n\\t\\t\\treturn (\\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 = vec2( 1.0 ) / shadowMapSize;\\n\\t\\t\\tfloat dx0 = - texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy0 = - texelSize.y * shadowRadius;\\n\\t\\t\\tfloat dx1 = + texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy1 = + texelSize.y * shadowRadius;\\n\\t\\t\\treturn (\\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\\treturn texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\\n\\t\\t#endif\\n\\t\\t}\\n\\t\\treturn 1.0;\\n\\t}\\n\\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\\n\\t\\tvec3 absV = abs( v );\\n\\t\\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\\n\\t\\tabsV *= scaleToCube;\\n\\t\\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\\n\\t\\tvec2 planar = v.xy;\\n\\t\\tfloat almostATexel = 1.5 * texelSizeY;\\n\\t\\tfloat almostOne = 1.0 - almostATexel;\\n\\t\\tif ( absV.z >= almostOne ) {\\n\\t\\t\\tif ( v.z > 0.0 )\\n\\t\\t\\t\\tplanar.x = 4.0 - v.x;\\n\\t\\t} else if ( absV.x >= almostOne ) {\\n\\t\\t\\tfloat signX = sign( v.x );\\n\\t\\t\\tplanar.x = v.z * signX + 2.0 * signX;\\n\\t\\t} else if ( absV.y >= almostOne ) {\\n\\t\\t\\tfloat signY = sign( v.y );\\n\\t\\t\\tplanar.x = v.x + 2.0 * signY + 2.0;\\n\\t\\t\\tplanar.y = v.z * signY - 2.0;\\n\\t\\t}\\n\\t\\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\\n\\t}\\n\\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\\n\\t\\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\\n\\t\\tvec3 lightToPosition = shadowCoord.xyz;\\n\\t\\tvec3 bd3D = normalize( lightToPosition );\\n\\t\\tfloat dp = ( length( lightToPosition ) - shadowBias ) / 1000.0;\\n\\t\\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT )\\n\\t\\t\\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\\n\\t\\t\\treturn (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\\n\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\t\\t#else\\n\\t\\t\\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\\n\\t\\t#endif\\n\\t}\\n#endif\\n\",shadowmap_pars_vertex:\"#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHTS > 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 > 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 > 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 > 0\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * worldPosition;\\n\\t}\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHTS > 0\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * worldPosition;\\n\\t}\\n\\t#endif\\n\\t#if NUM_POINT_LIGHTS > 0\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * worldPosition;\\n\\t}\\n\\t#endif\\n#endif\\n\",shadowmask_pars_fragment:\"float getShadowMask() {\\n\\tfloat shadow = 1.0;\\n\\t#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHTS > 0\\n\\tDirectionalLight directionalLight;\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tdirectionalLight = directionalLights[ i ];\\n\\t\\tshadow *= 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 > 0\\n\\tSpotLight spotLight;\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tspotLight = spotLights[ i ];\\n\\t\\tshadow *= 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 > 0\\n\\tPointLight pointLight;\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tpointLight = pointLights[ i ];\\n\\t\\tshadow *= bool( pointLight.shadow ) ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ] ) : 1.0;\\n\\t}\\n\\t#endif\\n\\t#endif\\n\\treturn shadow;\\n}\\n\",skinbase_vertex:\"#ifdef USE_SKINNING\\n\\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\\n\\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\\n\\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\\n\\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\\n#endif\",skinning_pars_vertex:\"#ifdef USE_SKINNING\\n\\tuniform mat4 bindMatrix;\\n\\tuniform mat4 bindMatrixInverse;\\n\\t#ifdef BONE_TEXTURE\\n\\t\\tuniform sampler2D boneTexture;\\n\\t\\tuniform int boneTextureSize;\\n\\t\\tmat4 getBoneMatrix( const in float i ) {\\n\\t\\t\\tfloat j = i * 4.0;\\n\\t\\t\\tfloat x = mod( j, float( boneTextureSize ) );\\n\\t\\t\\tfloat y = floor( j / float( boneTextureSize ) );\\n\\t\\t\\tfloat dx = 1.0 / float( boneTextureSize );\\n\\t\\t\\tfloat dy = 1.0 / float( boneTextureSize );\\n\\t\\t\\ty = dy * ( y + 0.5 );\\n\\t\\t\\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\\n\\t\\t\\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\\n\\t\\t\\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\\n\\t\\t\\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\\n\\t\\t\\tmat4 bone = mat4( v1, v2, v3, v4 );\\n\\t\\t\\treturn bone;\\n\\t\\t}\\n\\t#else\\n\\t\\tuniform mat4 boneMatrices[ MAX_BONES ];\\n\\t\\tmat4 getBoneMatrix( const in float i ) {\\n\\t\\t\\tmat4 bone = boneMatrices[ int(i) ];\\n\\t\\t\\treturn bone;\\n\\t\\t}\\n\\t#endif\\n#endif\\n\",skinning_vertex:\"#ifdef USE_SKINNING\\n\\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\\n\\tvec4 skinned = vec4( 0.0 );\\n\\tskinned += boneMatX * skinVertex * skinWeight.x;\\n\\tskinned += boneMatY * skinVertex * skinWeight.y;\\n\\tskinned += boneMatZ * skinVertex * skinWeight.z;\\n\\tskinned += boneMatW * skinVertex * skinWeight.w;\\n\\tskinned = bindMatrixInverse * skinned;\\n#endif\\n\",skinnormal_vertex:\"#ifdef USE_SKINNING\\n\\tmat4 skinMatrix = mat4( 0.0 );\\n\\tskinMatrix += skinWeight.x * boneMatX;\\n\\tskinMatrix += skinWeight.y * boneMatY;\\n\\tskinMatrix += skinWeight.z * boneMatZ;\\n\\tskinMatrix += skinWeight.w * boneMatW;\\n\\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\\n\\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\\n#endif\\n\",specularmap_fragment:\"float specularStrength;\\n#ifdef USE_SPECULARMAP\\n\\tvec4 texelSpecular = texture2D( specularMap, vUv );\\n\\tspecularStrength = texelSpecular.r;\\n#else\\n\\tspecularStrength = 1.0;\\n#endif\",specularmap_pars_fragment:\"#ifdef USE_SPECULARMAP\\n\\tuniform sampler2D specularMap;\\n#endif\",tonemapping_fragment:\"#if defined( TONE_MAPPING )\\n gl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\\n#endif\\n\",tonemapping_pars_fragment:\"#define saturate(a) clamp( a, 0.0, 1.0 )\\nuniform float toneMappingExposure;\\nuniform float toneMappingWhitePoint;\\nvec3 LinearToneMapping( vec3 color ) {\\n\\treturn toneMappingExposure * color;\\n}\\nvec3 ReinhardToneMapping( vec3 color ) {\\n\\tcolor *= toneMappingExposure;\\n\\treturn saturate( color / ( vec3( 1.0 ) + color ) );\\n}\\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 *= toneMappingExposure;\\n\\treturn saturate( Uncharted2Helper( color ) / Uncharted2Helper( vec3( toneMappingWhitePoint ) ) );\\n}\\nvec3 OptimizedCineonToneMapping( vec3 color ) {\\n\\tcolor *= toneMappingExposure;\\n\\tcolor = max( vec3( 0.0 ), color - 0.004 );\\n\\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\\n}\\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 vec4 offsetRepeat;\\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 = uv * offsetRepeat.zw + offsetRepeat.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 = uv2;\\n#endif\",worldpos_vertex:\"#if defined( USE_ENVMAP ) || defined( PHONG ) || defined( PHYSICAL ) || defined( LAMBERT ) || defined ( USE_SHADOWMAP )\\n\\t#ifdef USE_SKINNING\\n\\t\\tvec4 worldPosition = modelMatrix * skinned;\\n\\t#else\\n\\t\\tvec4 worldPosition = modelMatrix * vec4( transformed, 1.0 );\\n\\t#endif\\n#endif\\n\",cube_frag:\"uniform samplerCube tCube;\\nuniform float tFlip;\\nuniform float opacity;\\nvarying vec3 vWorldPosition;\\n#include \\nvoid main() {\\n\\tgl_FragColor = textureCube( tCube, vec3( tFlip * vWorldPosition.x, vWorldPosition.yz ) );\\n\\tgl_FragColor.a *= opacity;\\n}\\n\",cube_vert:\"varying vec3 vWorldPosition;\\n#include \\nvoid main() {\\n\\tvWorldPosition = transformDirection( position, modelMatrix );\\n\\t#include \\n\\t#include \\n}\\n\",depth_frag:\"#if DEPTH_PACKING == 3200\\n\\tuniform float opacity;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( 1.0 );\\n\\t#if DEPTH_PACKING == 3200\\n\\t\\tdiffuseColor.a = opacity;\\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#if DEPTH_PACKING == 3200\\n\\t\\tgl_FragColor = vec4( vec3( gl_FragCoord.z ), opacity );\\n\\t#elif DEPTH_PACKING == 3201\\n\\t\\tgl_FragColor = packDepthToRGBA( gl_FragCoord.z );\\n\\t#endif\\n}\\n\",depth_vert:\"#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",distanceRGBA_frag:\"uniform vec3 lightPos;\\nvarying vec4 vWorldPosition;\\n#include \\n#include \\n#include \\nvoid main () {\\n\\t#include \\n\\tgl_FragColor = packDepthToRGBA( length( vWorldPosition.xyz - lightPos.xyz ) / 1000.0 );\\n}\\n\",distanceRGBA_vert:\"varying vec4 vWorldPosition;\\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvWorldPosition = worldPosition;\\n}\\n\",equirect_frag:\"uniform sampler2D tEquirect;\\nuniform float tFlip;\\nvarying vec3 vWorldPosition;\\n#include \\nvoid main() {\\n\\tvec3 direction = normalize( vWorldPosition );\\n\\tvec2 sampleUV;\\n\\tsampleUV.y = saturate( tFlip * direction.y * -0.5 + 0.5 );\\n\\tsampleUV.x = atan( direction.z, direction.x ) * RECIPROCAL_PI2 + 0.5;\\n\\tgl_FragColor = texture2D( tEquirect, sampleUV );\\n}\\n\",equirect_vert:\"varying vec3 vWorldPosition;\\n#include \\nvoid main() {\\n\\tvWorldPosition = transformDirection( position, modelMatrix );\\n\\t#include \\n\\t#include \\n}\\n\",linedashed_frag:\"uniform vec3 diffuse;\\nuniform float opacity;\\nuniform float dashSize;\\nuniform float totalSize;\\nvarying float vLineDistance;\\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\\n\\t\\tdiscard;\\n\\t}\\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\t#include \\n\\toutgoingLight = diffuseColor.rgb;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",linedashed_vert:\"uniform float scale;\\nattribute float lineDistance;\\nvarying float vLineDistance;\\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvLineDistance = scale * lineDistance;\\n\\tvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\\n\\tgl_Position = projectionMatrix * mvPosition;\\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",meshbasic_frag:\"uniform vec3 diffuse;\\nuniform float opacity;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\t#ifdef USE_LIGHTMAP\\n\\t\\treflectedLight.indirectDiffuse += texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\\n\\t#else\\n\\t\\treflectedLight.indirectDiffuse += vec3( 1.0 );\\n\\t#endif\\n\\t#include \\n\\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\\n\\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\\n\\t#include \\n\\t#include \\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",meshbasic_vert:\"#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#ifdef USE_ENVMAP\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",\nmeshlambert_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 \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\treflectedLight.indirectDiffuse = getAmbientLightIrradiance( ambientLightColor );\\n\\t#include \\n\\treflectedLight.indirectDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb );\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\treflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;\\n\\t#else\\n\\t\\treflectedLight.directDiffuse = vLightFront;\\n\\t#endif\\n\\treflectedLight.directDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb ) * getShadowMask();\\n\\t#include \\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\n\\t#include \\n\\t#include \\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",meshlambert_vert:\"#define LAMBERT\\nvarying vec3 vLightFront;\\n#ifdef DOUBLE_SIDED\\n\\tvarying vec3 vLightBack;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",meshphong_frag:\"#define PHONG\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform vec3 specular;\\nuniform float shininess;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\\n\\t#include \\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",meshphong_vert:\"#define PHONG\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n#ifndef FLAT_SHADED\\n\\tvNormal = normalize( transformedNormal );\\n#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\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 \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",meshphysical_vert:\"#define PHYSICAL\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n#ifndef FLAT_SHADED\\n\\tvNormal = normalize( transformedNormal );\\n#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",normal_frag:\"#define NORMAL\\nuniform float opacity;\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP )\\n\\tvarying vec3 vViewPosition;\\n#endif\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\\n}\\n\",normal_vert:\"#define NORMAL\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP )\\n\\tvarying vec3 vViewPosition;\\n#endif\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n#ifndef FLAT_SHADED\\n\\tvNormal = normalize( transformedNormal );\\n#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP )\\n\\tvViewPosition = - mvPosition.xyz;\\n#endif\\n}\\n\",points_frag:\"uniform vec3 diffuse;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\toutgoingLight = diffuseColor.rgb;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",points_vert:\"uniform float size;\\nuniform float scale;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#ifdef USE_SIZEATTENUATION\\n\\t\\tgl_PointSize = size * ( scale / - mvPosition.z );\\n\\t#else\\n\\t\\tgl_PointSize = size;\\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",shadow_frag:\"uniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tgl_FragColor = vec4( 0.0, 0.0, 0.0, opacity * ( 1.0 - getShadowMask() ) );\\n}\\n\",shadow_vert:\"#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\"},An={basic:{uniforms:Sn.merge([Tn.common,Tn.aomap,Tn.lightmap,Tn.fog]),vertexShader:Ln.meshbasic_vert,fragmentShader:Ln.meshbasic_frag},lambert:{uniforms:Sn.merge([Tn.common,Tn.aomap,Tn.lightmap,Tn.emissivemap,Tn.fog,Tn.lights,{emissive:{value:new W(0)}}]),vertexShader:Ln.meshlambert_vert,fragmentShader:Ln.meshlambert_frag},phong:{uniforms:Sn.merge([Tn.common,Tn.aomap,Tn.lightmap,Tn.emissivemap,Tn.bumpmap,Tn.normalmap,Tn.displacementmap,Tn.gradientmap,Tn.fog,Tn.lights,{emissive:{value:new W(0)},specular:{value:new W(1118481)},shininess:{value:30}}]),vertexShader:Ln.meshphong_vert,fragmentShader:Ln.meshphong_frag},standard:{uniforms:Sn.merge([Tn.common,Tn.aomap,Tn.lightmap,Tn.emissivemap,Tn.bumpmap,Tn.normalmap,Tn.displacementmap,Tn.roughnessmap,Tn.metalnessmap,Tn.fog,Tn.lights,{emissive:{value:new W(0)},roughness:{value:.5},metalness:{value:.5},envMapIntensity:{value:1}}]),vertexShader:Ln.meshphysical_vert,fragmentShader:Ln.meshphysical_frag},points:{uniforms:Sn.merge([Tn.points,Tn.fog]),vertexShader:Ln.points_vert,fragmentShader:Ln.points_frag},dashed:{uniforms:Sn.merge([Tn.common,Tn.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Ln.linedashed_vert,fragmentShader:Ln.linedashed_frag},depth:{uniforms:Sn.merge([Tn.common,Tn.displacementmap]),vertexShader:Ln.depth_vert,fragmentShader:Ln.depth_frag},normal:{uniforms:Sn.merge([Tn.common,Tn.bumpmap,Tn.normalmap,Tn.displacementmap,{opacity:{value:1}}]),vertexShader:Ln.normal_vert,fragmentShader:Ln.normal_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Ln.cube_vert,fragmentShader:Ln.cube_frag},equirect:{uniforms:{tEquirect:{value:null},tFlip:{value:-1}},vertexShader:Ln.equirect_vert,fragmentShader:Ln.equirect_frag},distanceRGBA:{uniforms:{lightPos:{value:new i}},vertexShader:Ln.distanceRGBA_vert,fragmentShader:Ln.distanceRGBA_frag}};An.physical={uniforms:Sn.merge([An.standard.uniforms,{clearCoat:{value:0},clearCoatRoughness:{value:0}}]),vertexShader:Ln.meshphysical_vert,fragmentShader:Ln.meshphysical_frag},Object.assign(X.prototype,{set:function(t,e){return this.min.copy(t),this.max.copy(e),this},setFromPoints:function(t){this.makeEmpty();for(var e=0,i=t.length;ethis.max.x||t.ythis.max.y)},containsBox:function(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y},getParameter:function(t,e){return(e||new a).set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y))},intersectsBox:function(t){return!(t.max.xthis.max.x||t.max.ythis.max.y)},clampPoint:function(t,e){return(e||new a).copy(t).clamp(this.min,this.max)},distanceToPoint:function(){var t=new a;return function(e){return t.copy(e).clamp(this.min,this.max).sub(e).length()}}(),intersect:function(t){return this.min.max(t.min),this.max.min(t.max),this},union:function(t){return this.min.min(t.min),this.max.max(t.max),this},translate:function(t){return this.min.add(t),this.max.add(t),this},equals:function(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}),Object.assign(q.prototype,r.prototype,{isWebGLRenderTarget:!0,setSize:function(t,e){this.width===t&&this.height===e||(this.width=t,this.height=e,this.dispose()),this.viewport.set(0,0,t,e),this.scissor.set(0,0,t,e)},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.width=t.width,this.height=t.height,this.viewport.copy(t.viewport),this.texture=t.texture.clone(),this.depthBuffer=t.depthBuffer,this.stencilBuffer=t.stencilBuffer,this.depthTexture=t.depthTexture,this},dispose:function(){this.dispatchEvent({type:\"dispose\"})}});var Rn=0;Object.assign(Z.prototype,r.prototype,{isMaterial:!0,setValues:function(t){if(void 0!==t)for(var e in t){var i=t[e];if(void 0!==i){var n=this[e];void 0!==n?n&&n.isColor?n.set(i):n&&n.isVector3&&i&&i.isVector3?n.copy(i):this[e]=\"overdraw\"===e?Number(i):i:console.warn(\"THREE.\"+this.type+\": '\"+e+\"' is not a property of this material.\")}else console.warn(\"THREE.Material: '\"+e+\"' parameter is undefined.\")}},toJSON:function(t){function e(t){var e=[];for(var i in t){var n=t[i];delete n.metadata,e.push(n)}return e}var i=void 0===t;i&&(t={textures:{},images:{}});var n={metadata:{version:4.5,type:\"Material\",generator:\"Material.toJSON\"}};if(n.uuid=this.uuid,n.type=this.type,\"\"!==this.name&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),void 0!==this.roughness&&(n.roughness=this.roughness),void 0!==this.metalness&&(n.metalness=this.metalness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),void 0!==this.shininess&&(n.shininess=this.shininess),void 0!==this.clearCoat&&(n.clearCoat=this.clearCoat),void 0!==this.clearCoatRoughness&&(n.clearCoatRoughness=this.clearCoatRoughness),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(t).uuid),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(t).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(t).uuid,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(t).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(t).uuid,n.reflectivity=this.reflectivity),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(t).uuid),void 0!==this.size&&(n.size=this.size),void 0!==this.sizeAttenuation&&(n.sizeAttenuation=this.sizeAttenuation),this.blending!==Re&&(n.blending=this.blending),this.shading!==Se&&(n.shading=this.shading),this.side!==Ee&&(n.side=this.side),this.vertexColors!==Le&&(n.vertexColors=this.vertexColors),this.opacity<1&&(n.opacity=this.opacity),!0===this.transparent&&(n.transparent=this.transparent),n.depthFunc=this.depthFunc,n.depthTest=this.depthTest,n.depthWrite=this.depthWrite,this.alphaTest>0&&(n.alphaTest=this.alphaTest),!0===this.premultipliedAlpha&&(n.premultipliedAlpha=this.premultipliedAlpha),!0===this.wireframe&&(n.wireframe=this.wireframe),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),\"round\"!==this.wireframeLinecap&&(n.wireframeLinecap=this.wireframeLinecap),\"round\"!==this.wireframeLinejoin&&(n.wireframeLinejoin=this.wireframeLinejoin),n.skinning=this.skinning,n.morphTargets=this.morphTargets,n.dithering=this.dithering,i){var r=e(t.textures),a=e(t.images);r.length>0&&(n.textures=r),a.length>0&&(n.images=a)}return n},clone:function(){return(new this.constructor).copy(this)},copy:function(t){this.name=t.name,this.fog=t.fog,this.lights=t.lights,this.blending=t.blending,this.side=t.side,this.shading=t.shading,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.premultipliedAlpha=t.premultipliedAlpha,this.overdraw=t.overdraw,this.visible=t.visible,this.clipShadows=t.clipShadows,this.clipIntersection=t.clipIntersection;var e=t.clippingPlanes,i=null;if(null!==e){var n=e.length;i=new Array(n);for(var r=0;r!==n;++r)i[r]=e[r].clone()}return this.clippingPlanes=i,this},dispose:function(){this.dispatchEvent({type:\"dispose\"})}}),J.prototype=Object.create(Z.prototype),J.prototype.constructor=J,J.prototype.isShaderMaterial=!0,J.prototype.copy=function(t){return Z.prototype.copy.call(this,t),this.fragmentShader=t.fragmentShader,this.vertexShader=t.vertexShader,this.uniforms=Sn.clone(t.uniforms),this.defines=t.defines,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.lights=t.lights,this.clipping=t.clipping,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this.extensions=t.extensions,this},J.prototype.toJSON=function(t){var e=Z.prototype.toJSON.call(this,t);return e.uniforms=this.uniforms,e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader,e},Q.prototype=Object.create(Z.prototype),Q.prototype.constructor=Q,Q.prototype.isMeshDepthMaterial=!0,Q.prototype.copy=function(t){return Z.prototype.copy.call(this,t),this.depthPacking=t.depthPacking,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this},Object.assign(K.prototype,{isBox3:!0,set:function(t,e){return this.min.copy(t),this.max.copy(e),this},setFromArray:function(t){for(var e=1/0,i=1/0,n=1/0,r=-1/0,a=-1/0,o=-1/0,s=0,l=t.length;sr&&(r=c),h>a&&(a=h),u>o&&(o=u)}return this.min.set(e,i,n),this.max.set(r,a,o),this},setFromBufferAttribute:function(t){for(var e=1/0,i=1/0,n=1/0,r=-1/0,a=-1/0,o=-1/0,s=0,l=t.count;sr&&(r=c),h>a&&(a=h),u>o&&(o=u)}return this.min.set(e,i,n),this.max.set(r,a,o),this},setFromPoints:function(t){this.makeEmpty();for(var e=0,i=t.length;ethis.max.x||t.ythis.max.y||t.zthis.max.z)},containsBox:function(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z},getParameter:function(t,e){return(e||new i).set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))},intersectsBox:function(t){return!(t.max.xthis.max.x||t.max.ythis.max.y||t.max.zthis.max.z)},intersectsSphere:function(){var t;return function(e){return void 0===t&&(t=new i),this.clampPoint(e.center,t),t.distanceToSquared(e.center)<=e.radius*e.radius}}(),intersectsPlane:function(t){var e,i;return t.normal.x>0?(e=t.normal.x*this.min.x,i=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,i=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,i+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,i+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,i+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,i+=t.normal.z*this.min.z),e<=t.constant&&i>=t.constant},clampPoint:function(t,e){return(e||new i).copy(t).clamp(this.min,this.max)},distanceToPoint:function(){var t=new i;return function(e){return t.copy(e).clamp(this.min,this.max).sub(e).length()}}(),getBoundingSphere:function(){var t=new i;return function(e){var i=e||new $;return this.getCenter(i.center),i.radius=.5*this.getSize(t).length(),i}}(),intersect:function(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this},union:function(t){return this.min.min(t.min),this.max.max(t.max),this},applyMatrix4:function(){var t=[new i,new i,new i,new i,new i,new i,new i,new i];return function(e){return this.isEmpty()?this:(t[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),t[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),t[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),t[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),t[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),t[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),t[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),t[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(t),this)}}(),translate:function(t){return this.min.add(t),this.max.add(t),this},equals:function(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}),Object.assign($.prototype,{set:function(t,e){return this.center.copy(t),this.radius=e,this},setFromPoints:function(){var t;return function(e,i){void 0===t&&(t=new K);var n=this.center;void 0!==i?n.copy(i):t.setFromPoints(e).getCenter(n);for(var r=0,a=0,o=e.length;athis.radius*this.radius&&(r.sub(this.center).normalize(),r.multiplyScalar(this.radius).add(this.center)),r},getBoundingBox:function(t){var e=t||new K;return e.set(this.center,this.center),e.expandByScalar(this.radius),e},applyMatrix4:function(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this},translate:function(t){return this.center.add(t),this},equals:function(t){return t.center.equals(this.center)&&t.radius===this.radius}}),Object.assign(tt.prototype,{isMatrix3:!0,set:function(t,e,i,n,r,a,o,s,l){var c=this.elements;return c[0]=t,c[1]=n,c[2]=o,c[3]=e,c[4]=r,c[5]=s,c[6]=i,c[7]=a,c[8]=l,this},identity:function(){return this.set(1,0,0,0,1,0,0,0,1),this},clone:function(){return(new this.constructor).fromArray(this.elements)},copy:function(t){var e=this.elements,i=t.elements;return e[0]=i[0],e[1]=i[1],e[2]=i[2],e[3]=i[3],e[4]=i[4],e[5]=i[5],e[6]=i[6],e[7]=i[7],e[8]=i[8],this},setFromMatrix4:function(t){var e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this},applyToBufferAttribute:function(){var t;return function(e){void 0===t&&(t=new i);for(var n=0,r=e.count;n1))return r.copy(a).multiplyScalar(s).add(e.start)}else if(0===this.distanceToPoint(e.start))return r.copy(e.start)}}(),intersectsLine:function(t){var e=this.distanceToPoint(t.start),i=this.distanceToPoint(t.end);return e<0&&i>0||i<0&&e>0},intersectsBox:function(t){return t.intersectsPlane(this)},intersectsSphere:function(t){return t.intersectsPlane(this)},coplanarPoint:function(t){return(t||new i).copy(this.normal).multiplyScalar(-this.constant)},applyMatrix4:function(){var t=new i,e=new tt;return function(i,n){var r=this.coplanarPoint(t).applyMatrix4(i),a=n||e.getNormalMatrix(i),o=this.normal.applyMatrix3(a).normalize();return this.constant=-r.dot(o),this}}(),translate:function(t){return this.constant=this.constant-t.dot(this.normal),this},equals:function(t){return t.normal.equals(this.normal)&&t.constant===this.constant}}),Object.assign(it.prototype,{set:function(t,e,i,n,r,a){var o=this.planes;return o[0].copy(t),o[1].copy(e),o[2].copy(i),o[3].copy(n),o[4].copy(r),o[5].copy(a),this},clone:function(){return(new this.constructor).copy(this)},copy:function(t){for(var e=this.planes,i=0;i<6;i++)e[i].copy(t.planes[i]);return this},setFromMatrix:function(t){var e=this.planes,i=t.elements,n=i[0],r=i[1],a=i[2],o=i[3],s=i[4],l=i[5],c=i[6],h=i[7],u=i[8],d=i[9],f=i[10],p=i[11],m=i[12],g=i[13],v=i[14],_=i[15];return e[0].setComponents(o-n,h-s,p-u,_-m).normalize(),e[1].setComponents(o+n,h+s,p+u,_+m).normalize(),e[2].setComponents(o+r,h+l,p+d,_+g).normalize(),e[3].setComponents(o-r,h-l,p-d,_-g).normalize(),e[4].setComponents(o-a,h-c,p-f,_-v).normalize(),e[5].setComponents(o+a,h+c,p+f,_+v).normalize(),this},intersectsObject:function(){var t=new $;return function(e){var i=e.geometry;return null===i.boundingSphere&&i.computeBoundingSphere(),t.copy(i.boundingSphere).applyMatrix4(e.matrixWorld),this.intersectsSphere(t)}}(),intersectsSprite:function(){var t=new $;return function(e){return t.center.set(0,0,0),t.radius=.7071067811865476,t.applyMatrix4(e.matrixWorld),this.intersectsSphere(t)}}(),intersectsSphere:function(t){for(var e=this.planes,i=t.center,n=-t.radius,r=0;r<6;r++){if(e[r].distanceToPoint(i)0?i.min.x:i.max.x,e.x=a.normal.x>0?i.max.x:i.min.x,t.y=a.normal.y>0?i.min.y:i.max.y,e.y=a.normal.y>0?i.max.y:i.min.y,t.z=a.normal.z>0?i.min.z:i.max.z,e.z=a.normal.z>0?i.max.z:i.min.z;var o=a.distanceToPoint(t),s=a.distanceToPoint(e);if(o<0&&s<0)return!1}return!0}}(),containsPoint:function(t){for(var e=this.planes,i=0;i<6;i++)if(e[i].distanceToPoint(t)<0)return!1;return!0}}),Object.assign(rt.prototype,{set:function(t,e){return this.origin.copy(t),this.direction.copy(e),this},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this},at:function(t,e){return(e||new i).copy(this.direction).multiplyScalar(t).add(this.origin)},lookAt:function(t){return this.direction.copy(t).sub(this.origin).normalize(),this},recast:function(){var t=new i;return function(e){return this.origin.copy(this.at(e,t)),this}}(),closestPointToPoint:function(t,e){var n=e||new i;n.subVectors(t,this.origin);var r=n.dot(this.direction);return r<0?n.copy(this.origin):n.copy(this.direction).multiplyScalar(r).add(this.origin)},distanceToPoint:function(t){return Math.sqrt(this.distanceSqToPoint(t))},distanceSqToPoint:function(){var t=new i;return function(e){var i=t.subVectors(e,this.origin).dot(this.direction);return i<0?this.origin.distanceToSquared(e):(t.copy(this.direction).multiplyScalar(i).add(this.origin),t.distanceToSquared(e))}}(),distanceSqToSegment:function(){var t=new i,e=new i,n=new i;return function(i,r,a,o){t.copy(i).add(r).multiplyScalar(.5),e.copy(r).sub(i).normalize(),n.copy(this.origin).sub(t);var s,l,c,h,u=.5*i.distanceTo(r),d=-this.direction.dot(e),f=n.dot(this.direction),p=-n.dot(e),m=n.lengthSq(),g=Math.abs(1-d*d);if(g>0)if(s=d*p-f,l=d*f-p,h=u*g,s>=0)if(l>=-h)if(l<=h){var v=1/g;s*=v,l*=v,c=s*(s+d*l+2*f)+l*(d*s+l+2*p)+m}else l=u,s=Math.max(0,-(d*l+f)),c=-s*s+l*(l+2*p)+m;else l=-u,s=Math.max(0,-(d*l+f)),c=-s*s+l*(l+2*p)+m;else l<=-h?(s=Math.max(0,-(-d*u+f)),l=s>0?-u:Math.min(Math.max(-u,-p),u),c=-s*s+l*(l+2*p)+m):l<=h?(s=0,l=Math.min(Math.max(-u,-p),u),c=l*(l+2*p)+m):(s=Math.max(0,-(d*u+f)),l=s>0?u:Math.min(Math.max(-u,-p),u),c=-s*s+l*(l+2*p)+m);else l=d>0?-u:u,s=Math.max(0,-(d*l+f)),c=-s*s+l*(l+2*p)+m;return a&&a.copy(this.direction).multiplyScalar(s).add(this.origin),o&&o.copy(e).multiplyScalar(l).add(t),c}}(),intersectSphere:function(){var t=new i;return function(e,i){t.subVectors(e.center,this.origin);var n=t.dot(this.direction),r=t.dot(t)-n*n,a=e.radius*e.radius;if(r>a)return null;var o=Math.sqrt(a-r),s=n-o,l=n+o;return s<0&&l<0?null:s<0?this.at(l,i):this.at(s,i)}}(),intersectsSphere:function(t){return this.distanceToPoint(t.center)<=t.radius},distanceToPlane:function(t){var e=t.normal.dot(this.direction);if(0===e)return 0===t.distanceToPoint(this.origin)?0:null;var i=-(this.origin.dot(t.normal)+t.constant)/e;return i>=0?i:null},intersectPlane:function(t,e){var i=this.distanceToPlane(t);return null===i?null:this.at(i,e)},intersectsPlane:function(t){var e=t.distanceToPoint(this.origin);return 0===e||t.normal.dot(this.direction)*e<0},intersectBox:function(t,e){var i,n,r,a,o,s,l=1/this.direction.x,c=1/this.direction.y,h=1/this.direction.z,u=this.origin;return l>=0?(i=(t.min.x-u.x)*l,n=(t.max.x-u.x)*l):(i=(t.max.x-u.x)*l,n=(t.min.x-u.x)*l),c>=0?(r=(t.min.y-u.y)*c,a=(t.max.y-u.y)*c):(r=(t.max.y-u.y)*c,a=(t.min.y-u.y)*c),i>a||r>n?null:((r>i||i!==i)&&(i=r),(a=0?(o=(t.min.z-u.z)*h,s=(t.max.z-u.z)*h):(o=(t.max.z-u.z)*h,s=(t.min.z-u.z)*h),i>s||o>n?null:((o>i||i!==i)&&(i=o),(s=0?i:n,e)))},intersectsBox:function(){var t=new i;return function(e){return null!==this.intersectBox(e,t)}}(),intersectTriangle:function(){var t=new i,e=new i,n=new i,r=new i;return function(i,a,o,s,l){e.subVectors(a,i),n.subVectors(o,i),r.crossVectors(e,n);var c,h=this.direction.dot(r);if(h>0){if(s)return null;c=1}else{if(!(h<0))return null;c=-1,h=-h}t.subVectors(this.origin,i);var u=c*this.direction.dot(n.crossVectors(t,n));if(u<0)return null;var d=c*this.direction.dot(e.cross(t));if(d<0)return null;if(u+d>h)return null;var f=-c*t.dot(r);return f<0?null:this.at(f/h,l)}}(),applyMatrix4:function(t){return this.direction.add(this.origin).applyMatrix4(t),this.origin.applyMatrix4(t),this.direction.sub(this.origin),this.direction.normalize(),this},equals:function(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}}),at.RotationOrders=[\"XYZ\",\"YZX\",\"ZXY\",\"XZY\",\"YXZ\",\"ZYX\"],at.DefaultOrder=\"XYZ\",Object.defineProperties(at.prototype,{x:{get:function(){return this._x},set:function(t){this._x=t,this.onChangeCallback()}},y:{get:function(){return this._y},set:function(t){this._y=t,this.onChangeCallback()}},z:{get:function(){return this._z},set:function(t){this._z=t,this.onChangeCallback()}},order:{get:function(){return this._order},set:function(t){this._order=t,this.onChangeCallback()}}}),Object.assign(at.prototype,{isEuler:!0,set:function(t,e,i,n){return this._x=t,this._y=e,this._z=i,this._order=n||this._order,this.onChangeCallback(),this},clone:function(){return new this.constructor(this._x,this._y,this._z,this._order)},copy:function(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this.onChangeCallback(),this},setFromRotationMatrix:function(t,e,i){var n=mn.clamp,r=t.elements,a=r[0],o=r[4],s=r[8],l=r[1],c=r[5],h=r[9],u=r[2],d=r[6],f=r[10];return e=e||this._order,\"XYZ\"===e?(this._y=Math.asin(n(s,-1,1)),Math.abs(s)<.99999?(this._x=Math.atan2(-h,f),this._z=Math.atan2(-o,a)):(this._x=Math.atan2(d,c),this._z=0)):\"YXZ\"===e?(this._x=Math.asin(-n(h,-1,1)),Math.abs(h)<.99999?(this._y=Math.atan2(s,f),this._z=Math.atan2(l,c)):(this._y=Math.atan2(-u,a),this._z=0)):\"ZXY\"===e?(this._x=Math.asin(n(d,-1,1)),Math.abs(d)<.99999?(this._y=Math.atan2(-u,f),this._z=Math.atan2(-o,c)):(this._y=0,this._z=Math.atan2(l,a))):\"ZYX\"===e?(this._y=Math.asin(-n(u,-1,1)),Math.abs(u)<.99999?(this._x=Math.atan2(d,f),this._z=Math.atan2(l,a)):(this._x=0,this._z=Math.atan2(-o,c))):\"YZX\"===e?(this._z=Math.asin(n(l,-1,1)),Math.abs(l)<.99999?(this._x=Math.atan2(-h,c),this._y=Math.atan2(-u,a)):(this._x=0,this._y=Math.atan2(s,f))):\"XZY\"===e?(this._z=Math.asin(-n(o,-1,1)),Math.abs(o)<.99999?(this._x=Math.atan2(d,c),this._y=Math.atan2(s,a)):(this._x=Math.atan2(-h,f),this._y=0)):console.warn(\"THREE.Euler: .setFromRotationMatrix() given unsupported order: \"+e),this._order=e,!1!==i&&this.onChangeCallback(),this},setFromQuaternion:function(){var t;return function(e,i,r){return void 0===t&&(t=new n),t.makeRotationFromQuaternion(e),this.setFromRotationMatrix(t,i,r)}}(),setFromVector3:function(t,e){return this.set(t.x,t.y,t.z,e||this._order)},reorder:function(){var t=new e;return function(e){return t.setFromEuler(this),this.setFromQuaternion(t,e)}}(),equals:function(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order},fromArray:function(t){return this._x=t[0],this._y=t[1],this._z=t[2],void 0!==t[3]&&(this._order=t[3]),this.onChangeCallback(),this},toArray:function(t,e){return void 0===t&&(t=[]),void 0===e&&(e=0),t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t},toVector3:function(t){return t?t.set(this._x,this._y,this._z):new i(this._x,this._y,this._z)},onChange:function(t){return this.onChangeCallback=t,this},onChangeCallback:function(){}}),Object.assign(ot.prototype,{set:function(t){this.mask=1<1){for(var e=0;e1)for(var e=0;e0){a.children=[];for(var s=0;s0&&(r.geometries=c),h.length>0&&(r.materials=h),u.length>0&&(r.textures=u),d.length>0&&(r.images=d)}return r.object=a,r},clone:function(t){return(new this.constructor).copy(this,t)},copy:function(t,e){if(void 0===e&&(e=!0),this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.userData=JSON.parse(JSON.stringify(t.userData)),!0===e)for(var i=0;i0?o.multiplyScalar(1/Math.sqrt(s)):o.set(0,0,0)}}(),barycoordFromPoint:function(){var t=new i,e=new i,n=new i;return function(r,a,o,s,l){t.subVectors(s,a),e.subVectors(o,a),n.subVectors(r,a);var c=t.dot(t),h=t.dot(e),u=t.dot(n),d=e.dot(e),f=e.dot(n),p=c*d-h*h,m=l||new i;if(0===p)return m.set(-2,-1,-1);var g=1/p,v=(d*u-h*f)*g,_=(c*f-h*u)*g;return m.set(1-v-_,_,v)}}(),containsPoint:function(){var t=new i;return function(e,i,n,r){var a=ct.barycoordFromPoint(e,i,n,r,t);return a.x>=0&&a.y>=0&&a.x+a.y<=1}}()}),Object.assign(ct.prototype,{set:function(t,e,i){return this.a.copy(t),this.b.copy(e),this.c.copy(i),this},setFromPointsAndIndices:function(t,e,i,n){return this.a.copy(t[e]),this.b.copy(t[i]),this.c.copy(t[n]),this},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this},area:function(){var t=new i,e=new i;return function(){return t.subVectors(this.c,this.b),e.subVectors(this.a,this.b),.5*t.cross(e).length()}}(),midpoint:function(t){return(t||new i).addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)},normal:function(t){return ct.normal(this.a,this.b,this.c,t)},plane:function(t){return(t||new et).setFromCoplanarPoints(this.a,this.b,this.c)},barycoordFromPoint:function(t,e){return ct.barycoordFromPoint(t,this.a,this.b,this.c,e)},containsPoint:function(t){return ct.containsPoint(t,this.a,this.b,this.c)},closestPointToPoint:function(){var t,e,n,r;return function(a,o){void 0===t&&(t=new et,e=[new lt,new lt,new lt],n=new i,r=new i);var s=o||new i,l=1/0;if(t.setFromCoplanarPoints(this.a,this.b,this.c),t.projectPoint(a,n),!0===this.containsPoint(n))s.copy(n);else{e[0].set(this.a,this.b),e[1].set(this.b,this.c),e[2].set(this.c,this.a);for(var c=0;c0,s=r[1]&&r[1].length>0,l=t.morphTargets,c=l.length;if(c>0){e=[];for(var h=0;h0){u=[];for(var h=0;h0)for(var m=0;m0&&(this.normalsNeedUpdate=!0)},computeFlatVertexNormals:function(){var t,e,i;for(this.computeFaceNormals(),t=0,e=this.faces.length;t0&&(this.normalsNeedUpdate=!0)},computeMorphNormals:function(){var t,e,n,r,a;for(n=0,r=this.faces.length;n0&&(t+=e[i].distanceTo(e[i-1])),this.lineDistances[i]=t},computeBoundingBox:function(){null===this.boundingBox&&(this.boundingBox=new K),this.boundingBox.setFromPoints(this.vertices)},computeBoundingSphere:function(){null===this.boundingSphere&&(this.boundingSphere=new $),this.boundingSphere.setFromPoints(this.vertices)},merge:function(t,e,i){if(!1===(t&&t.isGeometry))return void console.error(\"THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.\",t);var n,r=this.vertices.length,a=this.vertices,o=t.vertices,s=this.faces,l=t.faces,c=this.faceVertexUvs[0],h=t.faceVertexUvs[0],u=this.colors,d=t.colors;void 0===i&&(i=0),void 0!==e&&(n=(new tt).getNormalMatrix(e));for(var f=0,p=o.length;f=0;i--){var p=d[i];for(this.faces.splice(p,1),o=0,s=this.faceVertexUvs.length;o0,y=v.vertexNormals.length>0,M=1!==v.color.r||1!==v.color.g||1!==v.color.b,E=v.vertexColors.length>0,b=0;if(b=t(b,0,0),b=t(b,1,!0),b=t(b,2,!1),b=t(b,3,_),b=t(b,4,x),b=t(b,5,y),b=t(b,6,M),b=t(b,7,E),h.push(b),h.push(v.a,v.b,v.c),h.push(v.materialIndex),_){var w=this.faceVertexUvs[0][l];h.push(n(w[0]),n(w[1]),n(w[2]))}if(x&&h.push(e(v.normal)),y){var T=v.vertexNormals;h.push(e(T[0]),e(T[1]),e(T[2]))}if(M&&h.push(i(v.color)),E){var S=v.vertexColors;h.push(i(S[0]),i(S[1]),i(S[2]))}}return r.data={},r.data.vertices=s,r.data.normals=u,f.length>0&&(r.data.colors=f),m.length>0&&(r.data.uvs=[m]),r.data.faces=h,r},clone:function(){return(new xt).copy(this)},copy:function(t){var e,i,n,r,a,o;this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.name=t.name;var s=t.vertices;for(e=0,i=s.length;e65535?pt:ft)(t,1):this.index=t},addAttribute:function(t,e){return!1===(e&&e.isBufferAttribute)&&!1===(e&&e.isInterleavedBufferAttribute)?(console.warn(\"THREE.BufferGeometry: .addAttribute() now expects ( name, attribute ).\"),void this.addAttribute(t,new dt(arguments[1],arguments[2]))):\"index\"===t?(console.warn(\"THREE.BufferGeometry.addAttribute: Use .setIndex() for index attribute.\"),void this.setIndex(e)):(this.attributes[t]=e,this)},getAttribute:function(t){return this.attributes[t]},removeAttribute:function(t){return delete this.attributes[t],this},addGroup:function(t,e,i){this.groups.push({start:t,count:e,materialIndex:void 0!==i?i:0})},clearGroups:function(){this.groups=[]},setDrawRange:function(t,e){this.drawRange.start=t,this.drawRange.count=e},applyMatrix:function(t){var e=this.attributes.position;void 0!==e&&(t.applyToBufferAttribute(e),e.needsUpdate=!0);var i=this.attributes.normal;if(void 0!==i){(new tt).getNormalMatrix(t).applyToBufferAttribute(i),i.needsUpdate=!0}return null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this},rotateX:function(){var t;return function(e){return void 0===t&&(t=new n),t.makeRotationX(e),this.applyMatrix(t),this}}(),rotateY:function(){var t;return function(e){return void 0===t&&(t=new n),t.makeRotationY(e),this.applyMatrix(t),this}}(),rotateZ:function(){var t;return function(e){return void 0===t&&(t=new n),t.makeRotationZ(e),this.applyMatrix(t),this}}(),translate:function(){var t;return function(e,i,r){return void 0===t&&(t=new n),t.makeTranslation(e,i,r),this.applyMatrix(t),this}}(),scale:function(){var t;return function(e,i,r){return void 0===t&&(t=new n),t.makeScale(e,i,r),this.applyMatrix(t),this}}(),lookAt:function(){var t;return function(e){void 0===t&&(t=new st),t.lookAt(e),t.updateMatrix(),this.applyMatrix(t.matrix)}}(),center:function(){this.computeBoundingBox();var t=this.boundingBox.getCenter().negate();return this.translate(t.x,t.y,t.z),t},setFromObject:function(t){var e=t.geometry;if(t.isPoints||t.isLine){var i=new mt(3*e.vertices.length,3),n=new mt(3*e.colors.length,3);if(this.addAttribute(\"position\",i.copyVector3sArray(e.vertices)),this.addAttribute(\"color\",n.copyColorsArray(e.colors)),e.lineDistances&&e.lineDistances.length===e.vertices.length){var r=new mt(e.lineDistances.length,1);this.addAttribute(\"lineDistance\",r.copyArray(e.lineDistances))}null!==e.boundingSphere&&(this.boundingSphere=e.boundingSphere.clone()),null!==e.boundingBox&&(this.boundingBox=e.boundingBox.clone())}else t.isMesh&&e&&e.isGeometry&&this.fromGeometry(e);return this},updateFromObject:function(t){var e=t.geometry;if(t.isMesh){var i=e.__directGeometry;if(!0===e.elementsNeedUpdate&&(i=void 0,e.elementsNeedUpdate=!1),void 0===i)return this.fromGeometry(e);i.verticesNeedUpdate=e.verticesNeedUpdate,i.normalsNeedUpdate=e.normalsNeedUpdate,i.colorsNeedUpdate=e.colorsNeedUpdate,i.uvsNeedUpdate=e.uvsNeedUpdate,i.groupsNeedUpdate=e.groupsNeedUpdate,e.verticesNeedUpdate=!1,e.normalsNeedUpdate=!1,e.colorsNeedUpdate=!1,e.uvsNeedUpdate=!1,e.groupsNeedUpdate=!1,e=i}var n;return!0===e.verticesNeedUpdate&&(n=this.attributes.position,void 0!==n&&(n.copyVector3sArray(e.vertices),n.needsUpdate=!0),e.verticesNeedUpdate=!1),!0===e.normalsNeedUpdate&&(n=this.attributes.normal,void 0!==n&&(n.copyVector3sArray(e.normals),n.needsUpdate=!0),e.normalsNeedUpdate=!1),!0===e.colorsNeedUpdate&&(n=this.attributes.color,void 0!==n&&(n.copyColorsArray(e.colors),n.needsUpdate=!0),e.colorsNeedUpdate=!1),e.uvsNeedUpdate&&(n=this.attributes.uv,void 0!==n&&(n.copyVector2sArray(e.uvs),n.needsUpdate=!0),e.uvsNeedUpdate=!1),e.lineDistancesNeedUpdate&&(n=this.attributes.lineDistance,void 0!==n&&(n.copyArray(e.lineDistances),n.needsUpdate=!0),e.lineDistancesNeedUpdate=!1),e.groupsNeedUpdate&&(e.computeGroups(t.geometry),this.groups=e.groups,e.groupsNeedUpdate=!1),this},fromGeometry:function(t){return t.__directGeometry=(new gt).fromGeometry(t),this.fromDirectGeometry(t.__directGeometry)},fromDirectGeometry:function(t){var e=new Float32Array(3*t.vertices.length);if(this.addAttribute(\"position\",new dt(e,3).copyVector3sArray(t.vertices)),t.normals.length>0){var i=new Float32Array(3*t.normals.length);this.addAttribute(\"normal\",new dt(i,3).copyVector3sArray(t.normals))}if(t.colors.length>0){var n=new Float32Array(3*t.colors.length);this.addAttribute(\"color\",new dt(n,3).copyColorsArray(t.colors))}if(t.uvs.length>0){var r=new Float32Array(2*t.uvs.length);this.addAttribute(\"uv\",new dt(r,2).copyVector2sArray(t.uvs))}if(t.uvs2.length>0){var a=new Float32Array(2*t.uvs2.length);this.addAttribute(\"uv2\",new dt(a,2).copyVector2sArray(t.uvs2))}if(t.indices.length>0){var o=vt(t.indices)>65535?Uint32Array:Uint16Array,s=new o(3*t.indices.length);this.setIndex(new dt(s,1).copyIndicesArray(t.indices))}this.groups=t.groups;for(var l in t.morphTargets){for(var c=[],h=t.morphTargets[l],u=0,d=h.length;u0){var m=new mt(4*t.skinIndices.length,4);this.addAttribute(\"skinIndex\",m.copyVector4sArray(t.skinIndices))}if(t.skinWeights.length>0){var g=new mt(4*t.skinWeights.length,4);this.addAttribute(\"skinWeight\",g.copyVector4sArray(t.skinWeights))}return null!==t.boundingSphere&&(this.boundingSphere=t.boundingSphere.clone()),null!==t.boundingBox&&(this.boundingBox=t.boundingBox.clone()),this},computeBoundingBox:function(){null===this.boundingBox&&(this.boundingBox=new K);var t=this.attributes.position;void 0!==t?this.boundingBox.setFromBufferAttribute(t):this.boundingBox.makeEmpty(),(isNaN(this.boundingBox.min.x)||isNaN(this.boundingBox.min.y)||isNaN(this.boundingBox.min.z))&&console.error('THREE.BufferGeometry.computeBoundingBox: Computed min/max have NaN values. The \"position\" attribute is likely to have NaN values.',this)},computeBoundingSphere:function(){var t=new K,e=new i;return function(){null===this.boundingSphere&&(this.boundingSphere=new $);var i=this.attributes.position;if(i){var n=this.boundingSphere.center;t.setFromBufferAttribute(i),t.getCenter(n);for(var r=0,a=0,o=i.count;a0&&(t.data.groups=JSON.parse(JSON.stringify(s)));var l=this.boundingSphere;return null!==l&&(t.data.boundingSphere={center:l.center.toArray(),radius:l.radius}),t},clone:function(){return(new yt).copy(this)},copy:function(t){var e,i,n;this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null,this.name=t.name;var r=t.index;null!==r&&this.setIndex(r.clone());var a=t.attributes;for(e in a){var o=a[e];this.addAttribute(e,o.clone())}var s=t.morphAttributes;for(e in s){var l=[],c=s[e];for(i=0,n=c.length;i0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(var e=0,i=t.length;ee.far?null:{distance:l,point:y.clone(),object:t}}function r(i,n,r,a,o,s,l,d){c.fromBufferAttribute(a,s),h.fromBufferAttribute(a,l),u.fromBufferAttribute(a,d);var f=e(i,n,r,c,h,u,x);return f&&(o&&(m.fromBufferAttribute(o,s),g.fromBufferAttribute(o,l),v.fromBufferAttribute(o,d),f.uv=t(x,c,h,u,m,g,v)),f.face=new ht(s,l,d,ct.normal(c,h,u)),f.faceIndex=s),f}var o=new n,s=new rt,l=new $,c=new i,h=new i,u=new i,d=new i,f=new i,p=new i,m=new a,g=new a,v=new a,_=new i,x=new i,y=new i;return function(i,n){var a=this.geometry,_=this.material,y=this.matrixWorld;if(void 0!==_&&(null===a.boundingSphere&&a.computeBoundingSphere(),l.copy(a.boundingSphere),l.applyMatrix4(y),!1!==i.ray.intersectsSphere(l)&&(o.getInverse(y),s.copy(i.ray).applyMatrix4(o),null===a.boundingBox||!1!==s.intersectsBox(a.boundingBox)))){var M;if(a.isBufferGeometry){var E,b,w,T,S,L=a.index,A=a.attributes.position,R=a.attributes.uv;if(null!==L)for(T=0,S=L.count;T0&&(N=z);for(var O=0,B=F.length;O0||0===t.search(/^data\\:image\\/jpeg/);a.format=i?Vi:Hi,a.needsUpdate=!0,void 0!==e&&e(a)},i,n),a},setCrossOrigin:function(t){return this.crossOrigin=t,this},setPath:function(t){return this.path=t,this}}),t.WebGLRenderer=ae,t.Scene=oe,t.Mesh=Mt,t.Texture=o,t.MeshBasicMaterial=ut,t.CompressedTextureLoader=he,t.DataTextureLoader=ue,t.CubeTextureLoader=fe,t.TextureLoader=pe,t.PerspectiveCamera=St,t.Math=mn,t.Vector3=i,t.BoxGeometry=Et,t.BoxBufferGeometry=bt,Object.defineProperty(t,\"__esModule\",{value:!0})});\n\n\n\n// WEBPACK FOOTER //\n// ./components/three.min.js","module.exports = {\"array\":[{\"market\":\"AR_es\",\"text\":{\"menushowtext\":\"\",\"menuhidetext\":\"\"},\"onix\":[{\"code\":\"CHE-2019-10-21_INT_OnyxHB_comp_Compositing_ARG\",\"version\":\"v005\",\"default\":true}]},{\"market\":\"BR_pt\",\"text\":{\"menushowtext\":\"\",\"menuhidetext\":\"\"},\"onix\":[{\"code\":\"CHE-2019-10-21_INT_OnyxHB_comp_Compositing_BRA\",\"version\":\"v005\",\"default\":true}]}]}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./config/config.json\n// module id = J/Fn\n// module chunks = 0","import PropTypes from 'prop-types';\nexport { default as PropTypes } from 'prop-types';\nimport { render, cloneElement, h, Component, options } from 'preact';\n\nvar version = '15.1.0'; // trick libraries to think we are react\n\nvar ELEMENTS = 'a abbr address area article aside audio b base bdi bdo big blockquote body br button canvas caption cite code col colgroup data datalist dd del details dfn dialog div dl dt em embed fieldset figcaption figure footer form h1 h2 h3 h4 h5 h6 head header hgroup hr html i iframe img input ins kbd keygen label legend li link main map mark menu menuitem meta meter nav noscript object ol optgroup option output p param picture pre progress q rp rt ruby s samp script section select small source span strong style sub summary sup table tbody td textarea tfoot th thead time title tr track u ul var video wbr circle clipPath defs ellipse g image line linearGradient mask path pattern polygon polyline radialGradient rect stop svg text tspan'.split(' ');\n\nvar REACT_ELEMENT_TYPE = (typeof Symbol!=='undefined' && Symbol.for && Symbol.for('react.element')) || 0xeac7;\n\nvar COMPONENT_WRAPPER_KEY = (typeof Symbol!=='undefined' && Symbol.for) ? Symbol.for('__preactCompatWrapper') : '__preactCompatWrapper';\n\n// don't autobind these methods since they already have guaranteed context.\nvar AUTOBIND_BLACKLIST = {\n\tconstructor: 1,\n\trender: 1,\n\tshouldComponentUpdate: 1,\n\tcomponentWillReceiveProps: 1,\n\tcomponentWillUpdate: 1,\n\tcomponentDidUpdate: 1,\n\tcomponentWillMount: 1,\n\tcomponentDidMount: 1,\n\tcomponentWillUnmount: 1,\n\tcomponentDidUnmount: 1\n};\n\n\nvar CAMEL_PROPS = /^(?:accent|alignment|arabic|baseline|cap|clip|color|fill|flood|font|glyph|horiz|marker|overline|paint|stop|strikethrough|stroke|text|underline|unicode|units|v|vector|vert|word|writing|x)[A-Z]/;\n\n\nvar BYPASS_HOOK = {};\n\n/*global process*/\nvar DEV = false;\ntry {\n\tDEV = process.env.NODE_ENV!=='production';\n}\ncatch (e) {}\n\n// a component that renders nothing. Used to replace components for unmountComponentAtNode.\nfunction EmptyComponent() { return null; }\n\n\n\n// make react think we're react.\nvar VNode = h('a', null).constructor;\nVNode.prototype.$$typeof = REACT_ELEMENT_TYPE;\nVNode.prototype.preactCompatUpgraded = false;\nVNode.prototype.preactCompatNormalized = false;\n\nObject.defineProperty(VNode.prototype, 'type', {\n\tget: function() { return this.nodeName; },\n\tset: function(v) { this.nodeName = v; },\n\tconfigurable:true\n});\n\nObject.defineProperty(VNode.prototype, 'props', {\n\tget: function() { return this.attributes; },\n\tset: function(v) { this.attributes = v; },\n\tconfigurable:true\n});\n\n\n\nvar oldEventHook = options.event;\noptions.event = function (e) {\n\tif (oldEventHook) { e = oldEventHook(e); }\n\te.persist = Object;\n\te.nativeEvent = e;\n\treturn e;\n};\n\n\nvar oldVnodeHook = options.vnode;\noptions.vnode = function (vnode) {\n\tif (!vnode.preactCompatUpgraded) {\n\t\tvnode.preactCompatUpgraded = true;\n\n\t\tvar tag = vnode.nodeName,\n\t\t\tattrs = vnode.attributes = vnode.attributes==null ? {} : extend({}, vnode.attributes);\n\n\t\tif (typeof tag==='function') {\n\t\t\tif (tag[COMPONENT_WRAPPER_KEY]===true || (tag.prototype && 'isReactComponent' in tag.prototype)) {\n\t\t\t\tif (vnode.children && String(vnode.children)==='') { vnode.children = undefined; }\n\t\t\t\tif (vnode.children) { attrs.children = vnode.children; }\n\n\t\t\t\tif (!vnode.preactCompatNormalized) {\n\t\t\t\t\tnormalizeVNode(vnode);\n\t\t\t\t}\n\t\t\t\thandleComponentVNode(vnode);\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tif (vnode.children && String(vnode.children)==='') { vnode.children = undefined; }\n\t\t\tif (vnode.children) { attrs.children = vnode.children; }\n\n\t\t\tif (attrs.defaultValue) {\n\t\t\t\tif (!attrs.value && attrs.value!==0) {\n\t\t\t\t\tattrs.value = attrs.defaultValue;\n\t\t\t\t}\n\t\t\t\tdelete attrs.defaultValue;\n\t\t\t}\n\n\t\t\thandleElementVNode(vnode, attrs);\n\t\t}\n\t}\n\n\tif (oldVnodeHook) { oldVnodeHook(vnode); }\n};\n\nfunction handleComponentVNode(vnode) {\n\tvar tag = vnode.nodeName,\n\t\ta = vnode.attributes;\n\n\tvnode.attributes = {};\n\tif (tag.defaultProps) { extend(vnode.attributes, tag.defaultProps); }\n\tif (a) { extend(vnode.attributes, a); }\n}\n\nfunction handleElementVNode(vnode, a) {\n\tvar shouldSanitize, attrs, i;\n\tif (a) {\n\t\tfor (i in a) { if ((shouldSanitize = CAMEL_PROPS.test(i))) { break; } }\n\t\tif (shouldSanitize) {\n\t\t\tattrs = vnode.attributes = {};\n\t\t\tfor (i in a) {\n\t\t\t\tif (a.hasOwnProperty(i)) {\n\t\t\t\t\tattrs[ CAMEL_PROPS.test(i) ? i.replace(/([A-Z0-9])/, '-$1').toLowerCase() : i ] = a[i];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n\n// proxy render() since React returns a Component reference.\nfunction render$1(vnode, parent, callback) {\n\tvar prev = parent && parent._preactCompatRendered && parent._preactCompatRendered.base;\n\n\t// ignore impossible previous renders\n\tif (prev && prev.parentNode!==parent) { prev = null; }\n\n\t// default to first Element child\n\tif (!prev && parent) { prev = parent.firstElementChild; }\n\n\t// remove unaffected siblings\n\tfor (var i=parent.childNodes.length; i--; ) {\n\t\tif (parent.childNodes[i]!==prev) {\n\t\t\tparent.removeChild(parent.childNodes[i]);\n\t\t}\n\t}\n\n\tvar out = render(vnode, parent, prev);\n\tif (parent) { parent._preactCompatRendered = out && (out._component || { base: out }); }\n\tif (typeof callback==='function') { callback(); }\n\treturn out && out._component || out;\n}\n\n\nvar ContextProvider = function () {};\n\nContextProvider.prototype.getChildContext = function () {\n\treturn this.props.context;\n};\nContextProvider.prototype.render = function (props) {\n\treturn props.children[0];\n};\n\nfunction renderSubtreeIntoContainer(parentComponent, vnode, container, callback) {\n\tvar wrap = h(ContextProvider, { context: parentComponent.context }, vnode);\n\tvar renderContainer = render$1(wrap, container);\n\tvar component = renderContainer._component || renderContainer.base;\n\tif (callback) { callback.call(component, renderContainer); }\n\treturn component;\n}\n\nfunction Portal(props) {\n\trenderSubtreeIntoContainer(this, props.vnode, props.container);\n}\n\nfunction createPortal(vnode, container) {\n\treturn h(Portal, { vnode: vnode, container: container });\n}\n\n\nfunction unmountComponentAtNode(container) {\n\tvar existing = container._preactCompatRendered && container._preactCompatRendered.base;\n\tif (existing && existing.parentNode===container) {\n\t\trender(h(EmptyComponent), container, existing);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n\n\nvar ARR = [];\n\n// This API is completely unnecessary for Preact, so it's basically passthrough.\nvar Children = {\n\tmap: function(children, fn, ctx) {\n\t\tif (children == null) { return null; }\n\t\tchildren = Children.toArray(children);\n\t\tif (ctx && ctx!==children) { fn = fn.bind(ctx); }\n\t\treturn children.map(fn);\n\t},\n\tforEach: function(children, fn, ctx) {\n\t\tif (children == null) { return null; }\n\t\tchildren = Children.toArray(children);\n\t\tif (ctx && ctx!==children) { fn = fn.bind(ctx); }\n\t\tchildren.forEach(fn);\n\t},\n\tcount: function(children) {\n\t\treturn children && children.length || 0;\n\t},\n\tonly: function(children) {\n\t\tchildren = Children.toArray(children);\n\t\tif (children.length!==1) { throw new Error('Children.only() expects only one child.'); }\n\t\treturn children[0];\n\t},\n\ttoArray: function(children) {\n\t\tif (children == null) { return []; }\n\t\treturn ARR.concat(children);\n\t}\n};\n\n\n/** Track current render() component for ref assignment */\nvar currentComponent;\n\n\nfunction createFactory(type) {\n\treturn createElement.bind(null, type);\n}\n\n\nvar DOM = {};\nfor (var i=ELEMENTS.length; i--; ) {\n\tDOM[ELEMENTS[i]] = createFactory(ELEMENTS[i]);\n}\n\nfunction upgradeToVNodes(arr, offset) {\n\tfor (var i=offset || 0; i 0 ) children[ len ] = arguments[ len + 2 ];\n\n\tif (!isValidElement(element)) { return element; }\n\tvar elementProps = element.attributes || element.props;\n\tvar node = h(\n\t\telement.nodeName || element.type,\n\t\textend({}, elementProps),\n\t\telement.children || elementProps && elementProps.children\n\t);\n\t// Only provide the 3rd argument if needed.\n\t// Arguments 3+ overwrite element.children in preactCloneElement\n\tvar cloneArgs = [node, props];\n\tif (children && children.length) {\n\t\tcloneArgs.push(children);\n\t}\n\telse if (props && props.children) {\n\t\tcloneArgs.push(props.children);\n\t}\n\treturn normalizeVNode(cloneElement.apply(void 0, cloneArgs));\n}\n\n\nfunction isValidElement(element) {\n\treturn element && ((element instanceof VNode) || element.$$typeof===REACT_ELEMENT_TYPE);\n}\n\n\nfunction createStringRefProxy(name, component) {\n\treturn component._refProxies[name] || (component._refProxies[name] = function (resolved) {\n\t\tif (component && component.refs) {\n\t\t\tcomponent.refs[name] = resolved;\n\t\t\tif (resolved===null) {\n\t\t\t\tdelete component._refProxies[name];\n\t\t\t\tcomponent = null;\n\t\t\t}\n\t\t}\n\t});\n}\n\n\nfunction applyEventNormalization(ref) {\n\tvar nodeName = ref.nodeName;\n\tvar attributes = ref.attributes;\n\n\tif (!attributes || typeof nodeName!=='string') { return; }\n\tvar props = {};\n\tfor (var i in attributes) {\n\t\tprops[i.toLowerCase()] = i;\n\t}\n\tif (props.ondoubleclick) {\n\t\tattributes.ondblclick = attributes[props.ondoubleclick];\n\t\tdelete attributes[props.ondoubleclick];\n\t}\n\t// for *textual inputs* (incl textarea), normalize `onChange` -> `onInput`:\n\tif (props.onchange && (nodeName==='textarea' || (nodeName.toLowerCase()==='input' && !/^fil|che|rad/i.test(attributes.type)))) {\n\t\tvar normalized = props.oninput || 'oninput';\n\t\tif (!attributes[normalized]) {\n\t\t\tattributes[normalized] = multihook([attributes[normalized], attributes[props.onchange]]);\n\t\t\tdelete attributes[props.onchange];\n\t\t}\n\t}\n}\n\n\nfunction applyClassName(vnode) {\n\tvar a = vnode.attributes || (vnode.attributes = {});\n\tclassNameDescriptor.enumerable = 'className' in a;\n\tif (a.className) { a.class = a.className; }\n\tObject.defineProperty(a, 'className', classNameDescriptor);\n}\n\n\nvar classNameDescriptor = {\n\tconfigurable: true,\n\tget: function() { return this.class; },\n\tset: function(v) { this.class = v; }\n};\n\nfunction extend(base, props) {\n\tvar arguments$1 = arguments;\n\n\tfor (var i=1, obj = (void 0); i 0;\n // change zoomTo to change steps of zoomFactor\n this.zoomAnimating = true;\n this.zoomTo = this.camera.fov + this.props.zoomFactor;\n }\n }\n }\n // componentWi\n componentDidMount() {\n document.addEventListener('mousedown', this.onDocumentMouseDown, false);\n document.addEventListener('mousemove', this.onDocumentMouseMove, false);\n document.addEventListener('mouseup', this.onDocumentMouseUp, false);\n document.addEventListener('touchstart', this.onDocumentTouchStart, false);\n document.addEventListener('touchmove', this.onDocumentTouchMove, {\n passive: false\n });\n window.addEventListener('resize', this.onWindowResize, false);\n this.init();\n }\n\n init = () => {\n const { absPath, interior, imgPath } = this.props;\n // set init values for controls and positions\n const isUserInteracting = false;\n const onMouseDownMouseX = 0;\n const onMouseDownMouseY = 0;\n const lon = 180;\n const onMouseDownLon = 0;\n const lat = -15;\n const onMouseDownLat = 0;\n const phi = 0;\n const theta = 0;\n const target = new THREE.Vector3();\n const loaded = 0;\n const startDistance = 0;\n const endDistance = 0;\n const devicePixelRatio = window.devicePixelRatio || 1;\n const logicalViewportWidth = window.innerWidth;\n const physicalViewportWidth = logicalViewportWidth * devicePixelRatio;\n\n const scene = new THREE.Scene();\n const fovadjustment = this.props.carline === 'camaro' ? 60 : 60;\n // anpassung am 2. wert vorgenommen weil wir sonst eine verschiebung haben. Dies kann sein das der alte Wert rein soll für das inerior Projekt\n const camera = new THREE.PerspectiveCamera(fovadjustment, 2.1, 0.8, 1100);\n // set init target\n target.x = 5;\n target.y = 5;\n target.z = 5;\n camera.lookAt(target);\n\n const code = interior ? interior.config[interior.index].code : 'image';\n const version = interior\n ? `_${interior.config[interior.index].version}`\n : '';\n\n const noIndex = imgPath.replace('index.html', '');\n\n const correctImgPath =\n process.env.NODE_ENV === 'production'\n ? noIndex\n : imgPath;\n\n const urls = [\n absPath +\n `assets/images/${correctImgPath}int/${code}_f${version}.jpg?imwidth=${physicalViewportWidth}`,\n absPath +\n `assets/images/${correctImgPath}int/${code}_b${version}.jpg?imwidth=${physicalViewportWidth}`,\n absPath +\n `assets/images/${correctImgPath}int/${code}_u${version}.jpg?imwidth=${physicalViewportWidth}`,\n absPath +\n `assets/images/${correctImgPath}int/${code}_d${version}.jpg?imwidth=${physicalViewportWidth}`,\n absPath +\n `assets/images/${correctImgPath}int/${code}_l${version}.jpg?imwidth=${physicalViewportWidth}`,\n absPath +\n `assets/images/${correctImgPath}int/${code}_r${version}.jpg?imwidth=${physicalViewportWidth}`\n ];\n\n const geometry = new THREE.BoxGeometry(300, 300, 300, 7, 7, 7);\n // load textures\n const textures = [\n new THREE.TextureLoader().load(\n urls[0],\n this.loadImage,\n undefined,\n this.loadImage\n ),\n new THREE.TextureLoader().load(\n urls[1],\n this.loadImage,\n undefined,\n this.loadImage\n ),\n new THREE.TextureLoader().load(\n urls[2],\n this.loadImage,\n undefined,\n this.loadImage\n ),\n new THREE.TextureLoader().load(\n urls[3],\n this.loadImage,\n undefined,\n this.loadImage\n ),\n new THREE.TextureLoader().load(\n urls[4],\n this.loadImage,\n undefined,\n this.loadImage\n ),\n new THREE.TextureLoader().load(\n urls[5],\n this.loadImage,\n undefined,\n this.loadImage\n )\n ];\n\n // add textures to mesh\n const material = [\n new THREE.MeshBasicMaterial({ map: textures[0] }),\n new THREE.MeshBasicMaterial({ map: textures[1] }),\n new THREE.MeshBasicMaterial({ map: textures[2] }),\n new THREE.MeshBasicMaterial({ map: textures[3] }),\n new THREE.MeshBasicMaterial({ map: textures[4] }),\n new THREE.MeshBasicMaterial({ map: textures[5] })\n ];\n\n // combine texture and cube\n geometry.scale(-1, 1, 1);\n const mesh = new THREE.Mesh(geometry, material);\n\n scene.add(mesh);\n\n const renderer = new THREE.WebGLRenderer();\n renderer.setClearColor(0xffffff, 1);\n renderer.setPixelRatio(window.devicePixelRatio);\n camera.aspect = this.props.stageWidth / this.props.stageHeight;\n camera.updateProjectionMatrix();\n renderer.setSize(this.props.stageWidth, this.props.stageHeight);\n\n this.scene = scene;\n this.camera = camera;\n this.renderer = renderer;\n this.material = material;\n this.isUserInteracting = isUserInteracting;\n this.onMouseDownMouseX = onMouseDownMouseX;\n this.onMouseDownMouseY = onMouseDownMouseY;\n this.lon = lon;\n this.onMouseDownLon = onMouseDownLon;\n this.lat = lat;\n this.onMouseDownLat = onMouseDownLat;\n this.phi = phi;\n this.theta = theta;\n this.target = target;\n this.loaded = loaded;\n this.startDistance = startDistance;\n this.endDistance = endDistance;\n\n this.mount.appendChild(this.renderer.domElement);\n this.start();\n };\n\n // callback loadHandling\n loadImage() {\n this.props.loadHandling(6);\n }\n\n componentWillUnmount() {\n this.stop();\n this.mount.removeChild(this.renderer.domElement);\n\n document.removeEventListener('mousedown', this.onDocumentMouseDown, false);\n document.removeEventListener('mousemove', this.onDocumentMouseMove, false);\n document.removeEventListener('mouseup', this.onDocumentMouseUp, false);\n document.removeEventListener(\n 'touchstart',\n this.onDocumentTouchStart,\n false\n );\n document.removeEventListener('touchmove', this.onDocumentTouchMove, false);\n window.removeEventListener('resize', this.onWindowResize, false);\n }\n\n start() {\n if (!this.frameId) {\n this.frameId = requestAnimationFrame(this.animate);\n }\n }\n\n stop() {\n cancelAnimationFrame(this.frameId);\n }\n\n animate() {\n this.update();\n this.renderScene();\n if (this.zoomAnimating) {\n this.clickZoom();\n }\n this.frameId = window.requestAnimationFrame(this.animate);\n }\n\n renderScene() {\n this.renderer.render(this.scene, this.camera);\n }\n\n onWindowResize() {\n this.camera.aspect = this.props.stageWidth / this.props.stageHeight;\n this.camera.updateProjectionMatrix();\n this.renderer.setSize(this.props.stageWidth, this.props.stageHeight);\n }\n\n // CONTROLS >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n onDocumentMouseDown(event) {\n event.preventDefault();\n this.isUserInteracting = true;\n this.onPointerDownPointerX = event.clientX;\n this.onPointerDownPointerY = event.clientY;\n this.onPointerDownLon = this.lon;\n this.onPointerDownLat = this.lat;\n }\n\n onDocumentMouseMove(event) {\n const { thumbbarHover, thumbbarOpen } = this.props;\n\n if (!thumbbarHover || !thumbbarOpen) {\n if (this.isUserInteracting) {\n this.lon =\n (this.onPointerDownPointerX - event.clientX) * 0.1 +\n this.onPointerDownLon;\n\n this.lat =\n (event.clientY - this.onPointerDownPointerY) * 0.1 +\n this.onPointerDownLat;\n }\n }\n }\n\n onDocumentMouseUp() {\n this.isUserInteracting = false;\n }\n\n onDocumentTouchStart(event) {\n if (event.touches.length === 1) {\n this.onPointerDownPointerX = event.touches[0].pageX;\n this.onPointerDownPointerY = event.touches[0].pageY;\n this.onPointerDownLon = this.lon;\n this.onPointerDownLat = this.lat;\n }\n\n if (event.touches.length === 2) {\n this.onPointerDownPointerX = event.touches[0].pageX;\n this.onPointerDownPointerY = event.touches[0].pageY;\n\n this.startDistance = this.endDistance = Math.hypot(\n event.touches[0].pageX - event.touches[1].pageX,\n event.touches[0].pageY - event.touches[1].pageY\n );\n }\n }\n\n onDocumentTouchMove(event) {\n const { thumbbarHover, thumbbarOpen } = this.props;\n\n event.preventDefault();\n\n if (!thumbbarHover || !thumbbarOpen) {\n if (event.touches.length === 1) {\n this.lon =\n (this.onPointerDownPointerX - event.touches[0].pageX) * 0.1 +\n this.onPointerDownLon;\n\n this.lat =\n (event.touches[0].pageY - this.onPointerDownPointerY) * 0.1 +\n this.onPointerDownLat;\n }\n }\n }\n // CONTROLS <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n\n update() {\n const { thumbbarHover, thumbbarOpen } = this.props;\n if (!thumbbarHover || !thumbbarOpen || !this.isUserInteracting) {\n this.lat = Math.max(-85, Math.min(85, this.lat));\n this.phi = THREE.Math.degToRad(90 - this.lat);\n this.theta = THREE.Math.degToRad(this.lon);\n }\n this.target.x = 500 * Math.sin(this.phi) * Math.cos(this.theta);\n this.target.y = 500 * Math.cos(this.phi);\n this.target.z = 500 * Math.sin(this.phi) * Math.sin(this.theta);\n this.camera.lookAt(this.target);\n this.renderer.render(this.scene, this.camera);\n }\n\n clickZoom() {\n let fov;\n // change zoomSpeed for faster/slower zooming\n const zoomSpeed = this.zoomIn ? -1 : +1;\n if (\n this.camera.fov !== this.zoomTo &&\n (this.camera.fov >= this.fovMin && this.camera.fov <= this.fovMax)\n ) {\n fov = this.camera.fov + zoomSpeed * 0.5;\n this.camera.fov = THREE.Math.clamp(fov, this.fovMin, this.fovMax);\n this.camera.updateProjectionMatrix();\n } else {\n this.zoomTo = this.camera.fov;\n this.zoomAnimating = false;\n this.props.zoomStopped();\n }\n }\n\n render() {\n return (\n {\n this.mount = mount;\n }}\n />\n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./components/gemView/gemThree/gemThree.js","import s from './scss/loadingbar.scss';\n\nconst Loadingbar = ({ percent }) => {\n return (\n
\n
\n
\n
\n {`${Math.round(percent)}%`}\n
\n
\n
\n );\n};\n\nexport default Loadingbar;\n\n\n\n// WEBPACK FOOTER //\n// ./components/loadingbar/loadingbar.js","import s from './scss/zoomcontrols.scss';\nimport cn from 'classnames';\n\nconst ZoomControls = ({ zoomClicked, zoomStatus, top }) => {\n return (\n
\n {zoomStatus === true && (\n
zoomClicked(1)}>\n
\n
\n )}\n {zoomStatus === false && (\n
zoomClicked(-1)}>\n
\n
\n )}\n
\n );\n};\n\nexport default ZoomControls;\n\n\n\n// WEBPACK FOOTER //\n// ./components/gemView/gemZoomControls/zoomcontrols.js","import { h, Component } from 'preact';\nimport Three from '../../gemThree/gemThree';\nimport Loadingbar from '../../../loadingbar/loadingbar';\nimport ZoomControls from '../../gemZoomControls/zoomcontrols';\nimport config from '../../../../config/config.json';\nimport cn from 'classnames';\nimport s from '../scss/gemComponentsView.scss';\n\nexport default class GemInteriorView extends Component {\n constructor(props) {\n super(props);\n this.state = {\n loading: {\n imagesLoaded: 0,\n isLoaded: false,\n percentLoaded: 0\n },\n zooming: 0.5,\n zoom: true\n };\n this.getVPwidth();\n\n this.setUrlParams();\n }\n\n componentDidMount() {\n window.addEventListener('orientationchange', this.getVPwidth);\n window.addEventListener('resize', this.getVPwidth);\n }\n\n componentWillUnmount() {\n window.removeEventListener('orientationchange', this.getVPwidth);\n window.removeEventListener('resize', this.getVPwidth);\n }\n\n setUrlParams = () => {\n // all Carline and Request stuff are set to state\n const url = window.location.href.split('?')[0];\n // remove index.html if in url\n const noIndex = url.replace('index.html', '');\n // regex to find the correct parameters to build imagePath\n const path_regex = new RegExp(\n /([A-Z]{2})\\/([a-z]{2})\\/([A-Z]{2})\\/([A-Z|a-z]*)\\/([a-z|A-Z|_]{5,10})/\n );\n const params = url.split(path_regex);\n\n // console.log('PARAMS', params)\n const country = params[1];\n const lang = params[2];\n const carline = params[4];\n const bodystyle = params[5];\n const mobile = params[6];\n const imgPath =\n country +\n '/' +\n lang +\n '/' +\n params[3] +\n '/' +\n params[4] +\n '/' +\n bodystyle +\n mobile + '/';\n const absPath =\n process.env.NODE_ENV === 'production'\n ? noIndex\n : `${window.location.origin}/`;\n\n const clearMobileParam = mobile.split(\"/\")\n\n this.setState({\n imgPath,\n carline,\n country,\n lang,\n absPath,\n mobile: clearMobileParam[1] === 'mobile' ? clearMobileParam[1] : ''\n });\n const marketConfig = config.array.find(\n market => market.market === `${country}_${lang}`\n );\n marketConfig &&\n marketConfig[carline] &&\n this.getConfig(marketConfig[carline]);\n if (this.isInteriorOnly) {\n this.setState({\n showtext: marketConfig.text.menushowtext,\n hidetext: marketConfig.text.menuhidetext\n });\n }\n };\n\n getConfig = marketConfig => {\n // find defaultThumb Index\n const defaultThumbIndex = marketConfig.findIndex(thumb => thumb.default);\n // set defaultThumb to state\n // get carline config from market\n this.setState({\n interior: {\n config: marketConfig,\n index: defaultThumbIndex\n }\n });\n };\n\n getVPwidth = () => {\n this.setState({\n vw: Math.max(\n document.documentElement.clientWidth,\n window.innerWidth || 0\n ),\n vh: Math.max(\n document.documentElement.clientHeight,\n window.innerHeight || 0\n )\n });\n };\n\n loadHandling = amount => {\n const { loading } = this.state;\n this.setState({\n loading: {\n imagesLoaded: loading.imagesLoaded + 1,\n percentLoaded: (100 / amount) * (loading.imagesLoaded + 1),\n isLoaded: (100 / amount) * (loading.imagesLoaded + 1) === 100\n }\n });\n };\n\n resetLoad = () => {\n this.setState({\n loading: {\n imagesLoaded: 0,\n isLoaded: false\n }\n });\n };\n\n get isInteriorOnly() {\n const { carline } = this.state;\n return (\n carline === 'onix'\n );\n }\n\n handleZoomClicked = factor => {\n this.setState({ zooming: factor, zoom: !this.state.zoom });\n };\n\n handleZoomStopped = () => {\n this.setState({ zooming: 0 });\n };\n\n render() {\n const {\n absPath,\n imgPath,\n interior,\n lang,\n loading,\n vw,\n } = this.state;\n const size = document.body.offsetHeight;\n let input;\n if (this.isInteriorOnly) {\n input = (\n \n
\n {!this.state.mobile && }\n\n \n
\n );\n }\n\n return (\n
\n {loading.percentLoaded < 100 && (\n \n )}\n {input}\n
\n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./components/gemView/gemComponentsView/gemInteriorView/GemInteriorView.js","import s from './scss/gemComponentsView.scss';\nimport GemInteriorView from './gemInteriorView/GemInteriorView';\nimport cn from 'classnames';\n\nconst GemComponentsView = ({\n className,\n vh,\n vw\n}) => {\n\n const faktor = vw <= 678 ? 2.5 : 1.5;\n\n return (\n
\n \n
\n );\n};\n\nexport default GemComponentsView;\n\n\n\n// WEBPACK FOOTER //\n// ./components/gemView/gemComponentsView/GemComponentsView.js","import { h, Component } from 'preact';\nimport GemComponentsView from './gemComponentsView/GemComponentsView';\nimport s from './scss/gemView.scss';\nimport cn from 'classnames';\n\nexport default class GemView extends Component {\n constructor(props) {\n super(props);\n this.getVPwidth();\n\n window.addEventListener('resize', () => {\n this.getVPwidth();\n });\n }\n\n getVPwidth = () => {\n this.setState({\n vw: Math.max(\n document.documentElement.clientWidth,\n window.innerWidth || 0\n ),\n vh: Math.max(\n document.documentElement.clientHeight,\n window.innerHeight || 0\n )\n });\n };\n\n render() {\n const correctUrl = window.location.href.split('?')[0];\n const absPath =\n process.env.NODE_ENV === 'production'\n ? correctUrl.replace('index.html', '')\n : `${window.location.origin}/`;\n\n let inlineStyle;\n console.log('DDD', correctUrl)\n\n if (this.state.vw >= 768) {\n inlineStyle = {\n height: (this.state.vw / 2)\n };\n } else {\n // For Mobile we have ratio of 4:3\n inlineStyle = {\n height: (this.state.vw * 75) / 100\n };\n }\n return (\n
\n\n \n
\n );\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./components/gemView/GemView.js","import GemView from './gemView/GemView';\n\nconst appComponent = () => \n\nconst App = appComponent;\n\nexport default App;\n\n\n\n// WEBPACK FOOTER //\n// ./components/app.js","import './style/_index.scss';\nimport App from './components/app';\n\nexport default App;\n\n\n\n// WEBPACK FOOTER //\n// ./index.js","!function(){\"use strict\";function e(e,t){var n,o,r,i,l=M;for(i=arguments.length;i-- >2;)T.push(arguments[i]);t&&null!=t.children&&(T.length||T.push(t.children),delete t.children);while(T.length)if((o=T.pop())&&void 0!==o.pop)for(i=o.length;i--;)T.push(o[i]);else\"boolean\"==typeof o&&(o=null),(r=\"function\"!=typeof e)&&(null==o?o=\"\":\"number\"==typeof o?o+=\"\":\"string\"!=typeof o&&(r=!1)),r&&n?l[l.length-1]+=o:l===M?l=[o]:l.push(o),n=r;var a=new S;return a.nodeName=e,a.children=l,a.attributes=null==t?void 0:t,a.key=null==t?void 0:t.key,void 0!==L.vnode&&L.vnode(a),a}function t(e,t){for(var n in t)e[n]=t[n];return e}function n(n,o){return e(n.nodeName,t(t({},n.attributes),o),arguments.length>2?[].slice.call(arguments,2):n.children)}function o(e){!e.__d&&(e.__d=!0)&&1==D.push(e)&&(L.debounceRendering||P)(r)}function r(){var e,t=D;D=[];while(e=t.pop())e.__d&&C(e)}function i(e,t,n){return\"string\"==typeof t||\"number\"==typeof t?void 0!==e.splitText:\"string\"==typeof t.nodeName?!e._componentConstructor&&l(e,t.nodeName):n||e._componentConstructor===t.nodeName}function l(e,t){return e.__n===t||e.nodeName.toLowerCase()===t.toLowerCase()}function a(e){var n=t({},e.attributes);n.children=e.children;var o=e.nodeName.defaultProps;if(void 0!==o)for(var r in o)void 0===n[r]&&(n[r]=o[r]);return n}function p(e,t){var n=t?document.createElementNS(\"http://www.w3.org/2000/svg\",e):document.createElement(e);return n.__n=e,n}function s(e){var t=e.parentNode;t&&t.removeChild(e)}function u(e,t,n,o,r){if(\"className\"===t&&(t=\"class\"),\"key\"===t);else if(\"ref\"===t)n&&n(null),o&&o(e);else if(\"class\"!==t||r)if(\"style\"===t){if(o&&\"string\"!=typeof o&&\"string\"!=typeof n||(e.style.cssText=o||\"\"),o&&\"object\"==typeof o){if(\"string\"!=typeof n)for(var i in n)i in o||(e.style[i]=\"\");for(var i in o)e.style[i]=\"number\"==typeof o[i]&&!1===W.test(i)?o[i]+\"px\":o[i]}}else if(\"dangerouslySetInnerHTML\"===t)o&&(e.innerHTML=o.__html||\"\");else if(\"o\"==t[0]&&\"n\"==t[1]){var l=t!==(t=t.replace(/Capture$/,\"\"));t=t.toLowerCase().substring(2),o?n||e.addEventListener(t,c,l):e.removeEventListener(t,c,l),(e.__l||(e.__l={}))[t]=o}else if(\"list\"!==t&&\"type\"!==t&&!r&&t in e){try{e[t]=null==o?\"\":o}catch(e){}null!=o&&!1!==o||\"spellcheck\"==t||e.removeAttribute(t)}else{var a=r&&t!==(t=t.replace(/^xlink:?/,\"\"));null==o||!1===o?a?e.removeAttributeNS(\"http://www.w3.org/1999/xlink\",t.toLowerCase()):e.removeAttribute(t):\"function\"!=typeof o&&(a?e.setAttributeNS(\"http://www.w3.org/1999/xlink\",t.toLowerCase(),o):e.setAttribute(t,o))}else e.className=o||\"\"}function c(e){return this.__l[e.type](L.event&&L.event(e)||e)}function _(){var e;while(e=E.pop())L.afterMount&&L.afterMount(e),e.componentDidMount&&e.componentDidMount()}function d(e,t,n,o,r,i){V++||(A=null!=r&&void 0!==r.ownerSVGElement,H=null!=e&&!(\"__preactattr_\"in e));var l=f(e,t,n,o,i);return r&&l.parentNode!==r&&r.appendChild(l),--V||(H=!1,i||_()),l}function f(e,t,n,o,r){var i=e,a=A;if(null!=t&&\"boolean\"!=typeof t||(t=\"\"),\"string\"==typeof t||\"number\"==typeof t)return e&&void 0!==e.splitText&&e.parentNode&&(!e._component||r)?e.nodeValue!=t&&(e.nodeValue=t):(i=document.createTextNode(t),e&&(e.parentNode&&e.parentNode.replaceChild(i,e),m(e,!0))),i.__preactattr_=!0,i;var s=t.nodeName;if(\"function\"==typeof s)return x(e,t,n,o);if(A=\"svg\"===s||\"foreignObject\"!==s&&A,s+=\"\",(!e||!l(e,s))&&(i=p(s,A),e)){while(e.firstChild)i.appendChild(e.firstChild);e.parentNode&&e.parentNode.replaceChild(i,e),m(e,!0)}var u=i.firstChild,c=i.__preactattr_,_=t.children;if(null==c){c=i.__preactattr_={};for(var d=i.attributes,f=d.length;f--;)c[d[f].name]=d[f].value}return!H&&_&&1===_.length&&\"string\"==typeof _[0]&&null!=u&&void 0!==u.splitText&&null==u.nextSibling?u.nodeValue!=_[0]&&(u.nodeValue=_[0]):(_&&_.length||null!=u)&&h(i,_,n,o,H||null!=c.dangerouslySetInnerHTML),b(i,t.attributes,c),A=a,i}function h(e,t,n,o,r){var l,a,p,u,c,_=e.childNodes,d=[],h={},v=0,b=0,y=_.length,g=0,w=t?t.length:0;if(0!==y)for(var C=0;C m && m.default ? m.default : m;\n\nlet app = interopDefault(require('preact-cli-entrypoint'));\n\nif (typeof app === 'function') {\n\tlet root = document.body.firstElementChild;\n\n\tlet init = () => {\n\t\tlet app = interopDefault(require('preact-cli-entrypoint'));\n\t\troot = (0, _preact.render)((0, _preact.h)(app), document.body, root);\n\t};\n\n\tif (module.hot) module.hot.accept('preact-cli-entrypoint', init);\n\n\tinit();\n}\n\n\n// WEBPACK FOOTER //\n// ../node_modules/preact-cli/lib/lib/entry.js","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n// WEBPACK FOOTER //\n// ../node_modules/prop-types/factoryWithThrowingShims.js"],"sourceRoot":""}